aboutsummaryrefslogtreecommitdiff
path: root/modules/core/core-bundle.js
diff options
context:
space:
mode:
authorAgando <roduccomm@gmail.com>2026-10-18 14:05:18 +0200
committerAgando <roduccomm@gmail.com>2026-10-18 14:05:18 +0200
commit0d0d936e7b5cd41a31773069540b1ddb8836ef44 (patch)
tree273e7ee9a72453655119bf0f63efb9b61e193d7f /modules/core/core-bundle.js
parent526c420f4591f0a58f805b473fa76d3da2981eae (diff)
newOS4: interactive AI course (terminal module, portal, atlas, telemetry, daily maintenance+cron) + free store card
Diffstat (limited to 'modules/core/core-bundle.js')
-rw-r--r--modules/core/core-bundle.js12
1 files changed, 10 insertions, 2 deletions
diff --git a/modules/core/core-bundle.js b/modules/core/core-bundle.js
index dd86773..2714dd3 100644
--- a/modules/core/core-bundle.js
+++ b/modules/core/core-bundle.js
@@ -4283,9 +4283,17 @@ Only output XML function calls for tool tasks. If no tool is needed, answer norm
for (const modName in this.moduleManager.modules) {
const mod = this.moduleManager.modules[modName];
if (mod.commands && mod.commands[cmd]) {
+ if (cmd !== 'course') {
+ for (const _m of Object.values(this.moduleManager.modules)) {
+ if (typeof _m.onCommandStart === 'function') { try { _m.onCommandStart(cmd, args); } catch (_e) {} }
+ }
+ }
try { await mod.commands[cmd](args);
- // Notify tutorial module for quest tracking
- if (this.tutorialModule && cmd !== 'tutorial') this.tutorialModule.onCommandExecuted(cmd, args);
+ if (cmd !== 'tutorial' && cmd !== 'course') {
+ for (const _m of Object.values(this.moduleManager.modules)) {
+ if (typeof _m.onCommandExecuted === 'function') { try { _m.onCommandExecuted(cmd, args); } catch (_e) {} }
+ }
+ }
// Memory graph: record file access for read/file commands
if (cmd === 'cat' || cmd === 'view_module' || cmd === 'edit_module') {
try {