@jungjaehoon/mama-os 0.23.0 → 0.24.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -0
- package/README.md +1 -1
- package/dist/agent/agent-loop.d.ts +3 -6
- package/dist/agent/agent-loop.d.ts.map +1 -1
- package/dist/agent/agent-loop.js +466 -230
- package/dist/agent/agent-loop.js.map +1 -1
- package/dist/agent/code-act/constants.d.ts +2 -2
- package/dist/agent/code-act/constants.d.ts.map +1 -1
- package/dist/agent/code-act/constants.js +16 -9
- package/dist/agent/code-act/constants.js.map +1 -1
- package/dist/agent/code-act/host-bridge.d.ts +12 -11
- package/dist/agent/code-act/host-bridge.d.ts.map +1 -1
- package/dist/agent/code-act/host-bridge.js +92 -15
- package/dist/agent/code-act/host-bridge.js.map +1 -1
- package/dist/agent/code-act/index.d.ts +2 -0
- package/dist/agent/code-act/index.d.ts.map +1 -1
- package/dist/agent/code-act/index.js +5 -1
- package/dist/agent/code-act/index.js.map +1 -1
- package/dist/agent/code-act/tool-policy.d.ts +42 -0
- package/dist/agent/code-act/tool-policy.d.ts.map +1 -0
- package/dist/agent/code-act/tool-policy.js +122 -0
- package/dist/agent/code-act/tool-policy.js.map +1 -0
- package/dist/agent/code-act/type-definition-generator.d.ts +4 -3
- package/dist/agent/code-act/type-definition-generator.d.ts.map +1 -1
- package/dist/agent/code-act/type-definition-generator.js +26 -48
- package/dist/agent/code-act/type-definition-generator.js.map +1 -1
- package/dist/agent/codex-app-server-process.d.ts +116 -0
- package/dist/agent/codex-app-server-process.d.ts.map +1 -0
- package/dist/agent/codex-app-server-process.js +1382 -0
- package/dist/agent/codex-app-server-process.js.map +1 -0
- package/dist/agent/codex-home.d.ts +9 -0
- package/dist/agent/codex-home.d.ts.map +1 -1
- package/dist/agent/codex-home.js +626 -4
- package/dist/agent/codex-home.js.map +1 -1
- package/dist/agent/codex-thread-registry.d.ts +63 -0
- package/dist/agent/codex-thread-registry.d.ts.map +1 -0
- package/dist/agent/codex-thread-registry.js +433 -0
- package/dist/agent/codex-thread-registry.js.map +1 -0
- package/dist/agent/gateway-tool-executor.d.ts +2 -7
- package/dist/agent/gateway-tool-executor.d.ts.map +1 -1
- package/dist/agent/gateway-tool-executor.js +69 -84
- package/dist/agent/gateway-tool-executor.js.map +1 -1
- package/dist/agent/managed-agent-runtime-sync.d.ts.map +1 -1
- package/dist/agent/managed-agent-runtime-sync.js +0 -3
- package/dist/agent/managed-agent-runtime-sync.js.map +1 -1
- package/dist/agent/managed-agent-validation.js +1 -1
- package/dist/agent/managed-agent-validation.js.map +1 -1
- package/dist/agent/model-runner.d.ts +51 -3
- package/dist/agent/model-runner.d.ts.map +1 -1
- package/dist/agent/model-runner.js +1 -1
- package/dist/agent/model-runner.js.map +1 -1
- package/dist/agent/persistent-cli-adapter.d.ts +1 -0
- package/dist/agent/persistent-cli-adapter.d.ts.map +1 -1
- package/dist/agent/persistent-cli-adapter.js +3 -0
- package/dist/agent/persistent-cli-adapter.js.map +1 -1
- package/dist/agent/session-pool.d.ts +10 -3
- package/dist/agent/session-pool.d.ts.map +1 -1
- package/dist/agent/session-pool.js +23 -8
- package/dist/agent/session-pool.js.map +1 -1
- package/dist/agent/tool-registry.d.ts +14 -0
- package/dist/agent/tool-registry.d.ts.map +1 -1
- package/dist/agent/tool-registry.js +46 -7
- package/dist/agent/tool-registry.js.map +1 -1
- package/dist/agent/types.d.ts +44 -6
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/agent/types.js.map +1 -1
- package/dist/api/graph-api.d.ts.map +1 -1
- package/dist/api/graph-api.js +19 -7
- package/dist/api/graph-api.js.map +1 -1
- package/dist/cli/commands/init.d.ts +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +22 -14
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/run.d.ts.map +1 -1
- package/dist/cli/commands/run.js +7 -4
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli/commands/start.d.ts +12 -1
- package/dist/cli/commands/start.d.ts.map +1 -1
- package/dist/cli/commands/start.js +161 -27
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/commands/status.js +2 -2
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/config/config-manager.d.ts.map +1 -1
- package/dist/cli/config/config-manager.js +21 -4
- package/dist/cli/config/config-manager.js.map +1 -1
- package/dist/cli/config/types.d.ts +4 -4
- package/dist/cli/config/types.d.ts.map +1 -1
- package/dist/cli/config/types.js +1 -0
- package/dist/cli/config/types.js.map +1 -1
- package/dist/cli/index.js +2 -2
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/runtime/agent-loop-init.d.ts +1 -1
- package/dist/cli/runtime/agent-loop-init.d.ts.map +1 -1
- package/dist/cli/runtime/agent-loop-init.js +12 -11
- package/dist/cli/runtime/agent-loop-init.js.map +1 -1
- package/dist/cli/runtime/connector-init.d.ts.map +1 -1
- package/dist/cli/runtime/connector-init.js +13 -17
- package/dist/cli/runtime/connector-init.js.map +1 -1
- package/dist/cli/runtime/envelope-bootstrap.d.ts.map +1 -1
- package/dist/cli/runtime/envelope-bootstrap.js +13 -1
- package/dist/cli/runtime/envelope-bootstrap.js.map +1 -1
- package/dist/cli/runtime/gateway-init.d.ts +1 -1
- package/dist/cli/runtime/gateway-init.d.ts.map +1 -1
- package/dist/cli/runtime/gateway-init.js.map +1 -1
- package/dist/cli/runtime/mama-core-init.d.ts +2 -2
- package/dist/cli/runtime/mama-core-init.d.ts.map +1 -1
- package/dist/cli/runtime/mama-core-init.js +17 -0
- package/dist/cli/runtime/mama-core-init.js.map +1 -1
- package/dist/cli/runtime/memory-agent-init.d.ts +1 -1
- package/dist/cli/runtime/memory-agent-init.d.ts.map +1 -1
- package/dist/cli/runtime/memory-agent-init.js +16 -6
- package/dist/cli/runtime/memory-agent-init.js.map +1 -1
- package/dist/cli/runtime/types.d.ts +4 -26
- package/dist/cli/runtime/types.d.ts.map +1 -1
- package/dist/cli/runtime/utilities.js +2 -2
- package/dist/cli/runtime/utilities.js.map +1 -1
- package/dist/connectors/config-loader.d.ts +24 -0
- package/dist/connectors/config-loader.d.ts.map +1 -0
- package/dist/connectors/config-loader.js +205 -0
- package/dist/connectors/config-loader.js.map +1 -0
- package/dist/connectors/framework/types.d.ts +2 -0
- package/dist/connectors/framework/types.d.ts.map +1 -1
- package/dist/connectors/kagemusha/query-tools.js +2 -2
- package/dist/connectors/kagemusha/query-tools.js.map +1 -1
- package/dist/envelope/reactive-config.d.ts +2 -2
- package/dist/envelope/reactive-config.d.ts.map +1 -1
- package/dist/envelope/reactive-config.js +13 -6
- package/dist/envelope/reactive-config.js.map +1 -1
- package/dist/gateways/context-injector.d.ts +2 -1
- package/dist/gateways/context-injector.d.ts.map +1 -1
- package/dist/gateways/context-injector.js.map +1 -1
- package/dist/gateways/message-router.d.ts +9 -0
- package/dist/gateways/message-router.d.ts.map +1 -1
- package/dist/gateways/message-router.js +87 -18
- package/dist/gateways/message-router.js.map +1 -1
- package/dist/gateways/types.d.ts +1 -1
- package/dist/gateways/types.d.ts.map +1 -1
- package/dist/multi-agent/agent-process-manager.d.ts +9 -1
- package/dist/multi-agent/agent-process-manager.d.ts.map +1 -1
- package/dist/multi-agent/agent-process-manager.js +197 -49
- package/dist/multi-agent/agent-process-manager.js.map +1 -1
- package/dist/multi-agent/dashboard-agent-persona.js +4 -4
- package/dist/multi-agent/multi-agent-base.d.ts.map +1 -1
- package/dist/multi-agent/multi-agent-base.js +2 -1
- package/dist/multi-agent/multi-agent-base.js.map +1 -1
- package/dist/multi-agent/runtime-process.d.ts +18 -15
- package/dist/multi-agent/runtime-process.d.ts.map +1 -1
- package/dist/multi-agent/runtime-process.js +63 -59
- package/dist/multi-agent/runtime-process.js.map +1 -1
- package/dist/multi-agent/types.d.ts +13 -7
- package/dist/multi-agent/types.d.ts.map +1 -1
- package/dist/multi-agent/types.js.map +1 -1
- package/dist/multi-agent/workflow-engine.js +3 -3
- package/dist/multi-agent/workflow-engine.js.map +1 -1
- package/dist/multi-agent/workflow-types.d.ts +2 -2
- package/dist/multi-agent/workflow-types.d.ts.map +1 -1
- package/dist/operator/operator-trigger-loop.d.ts +3 -0
- package/dist/operator/operator-trigger-loop.d.ts.map +1 -1
- package/dist/operator/operator-trigger-loop.js +1 -0
- package/dist/operator/operator-trigger-loop.js.map +1 -1
- package/dist/operator/report-run.d.ts +4 -4
- package/dist/operator/situation-report.d.ts +3 -0
- package/dist/operator/situation-report.d.ts.map +1 -1
- package/dist/operator/situation-report.js +43 -26
- package/dist/operator/situation-report.js.map +1 -1
- package/dist/operator/trigger-author.d.ts +35 -1
- package/dist/operator/trigger-author.d.ts.map +1 -1
- package/dist/operator/trigger-author.js +73 -10
- package/dist/operator/trigger-author.js.map +1 -1
- package/dist/operator/worker-run.d.ts +31 -0
- package/dist/operator/worker-run.d.ts.map +1 -1
- package/dist/operator/worker-run.js +76 -1
- package/dist/operator/worker-run.js.map +1 -1
- package/dist/operator/workorder-consumer.d.ts +7 -4
- package/dist/operator/workorder-consumer.d.ts.map +1 -1
- package/dist/operator/workorder-consumer.js +8 -3
- package/dist/operator/workorder-consumer.js.map +1 -1
- package/dist/setup/setup-prompt.d.ts +1 -1
- package/dist/setup/setup-prompt.d.ts.map +1 -1
- package/dist/setup/setup-prompt.js +4 -5
- package/dist/setup/setup-prompt.js.map +1 -1
- package/dist/utils/untrusted-content.d.ts +1 -0
- package/dist/utils/untrusted-content.d.ts.map +1 -1
- package/dist/utils/untrusted-content.js +5 -0
- package/dist/utils/untrusted-content.js.map +1 -1
- package/package.json +1 -1
- package/public/viewer/js/modules/agents.js +13 -9
- package/public/viewer/js/modules/settings.js +15 -10
- package/public/viewer/src/modules/agents.ts +12 -10
- package/public/viewer/src/modules/settings.ts +17 -12
- package/public/viewer/src/utils/api.ts +2 -2
- package/templates/AGENTS.codex.md +2 -23
- package/templates/personas/conductor.md +1 -1
- package/dist/agent/codex-mcp-process.d.ts +0 -105
- package/dist/agent/codex-mcp-process.d.ts.map +0 -1
- package/dist/agent/codex-mcp-process.js +0 -748
- package/dist/agent/codex-mcp-process.js.map +0 -1
|
@@ -12,7 +12,7 @@ export interface InitOptions {
|
|
|
12
12
|
/** Skip Claude Code authentication check (for testing) */
|
|
13
13
|
skipAuthCheck?: boolean;
|
|
14
14
|
/** Preferred backend selection mode */
|
|
15
|
-
backend?: 'auto' | 'claude' | 'codex
|
|
15
|
+
backend?: 'auto' | 'claude' | 'codex';
|
|
16
16
|
}
|
|
17
17
|
/**
|
|
18
18
|
* Execute init command
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAiFH;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,sCAAsC;IACtC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,0DAA0D;IAC1D,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,uCAAuC;IACvC,OAAO,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAiFH;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,sCAAsC;IACtC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,0DAA0D;IAC1D,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,uCAAuC;IACvC,OAAO,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;CACvC;AAsDD;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwL1E"}
|
|
@@ -75,6 +75,10 @@ async function copyDefaultSkills(skillsDir) {
|
|
|
75
75
|
console.log(' (no template skills found)');
|
|
76
76
|
}
|
|
77
77
|
}
|
|
78
|
+
const DEFAULT_MODEL_BY_BACKEND = {
|
|
79
|
+
claude: 'claude-sonnet-4-6',
|
|
80
|
+
codex: 'gpt-5.4',
|
|
81
|
+
};
|
|
78
82
|
function resolvePreferredBackend(preferredBackend) {
|
|
79
83
|
const requestedBackend = resolveRequestedBackend(preferredBackend);
|
|
80
84
|
const codexAuthPaths = [(0, config_manager_js_1.expandPath)('~/.mama/.codex/auth.json'), (0, config_manager_js_1.expandPath)('~/.codex/auth.json')];
|
|
@@ -82,8 +86,8 @@ function resolvePreferredBackend(preferredBackend) {
|
|
|
82
86
|
const hasCodexAuth = Boolean(codexAuthPath);
|
|
83
87
|
const hasClaudeAuth = (0, index_js_1.getClaudeCodeAuthStatus)().loggedIn;
|
|
84
88
|
if (requestedBackend) {
|
|
85
|
-
if (requestedBackend === 'codex
|
|
86
|
-
return hasCodexAuth ? { backend: 'codex
|
|
89
|
+
if (requestedBackend === 'codex') {
|
|
90
|
+
return hasCodexAuth ? { backend: 'codex', codexAuthPath } : null;
|
|
87
91
|
}
|
|
88
92
|
return hasClaudeAuth ? { backend: 'claude' } : null;
|
|
89
93
|
}
|
|
@@ -91,7 +95,7 @@ function resolvePreferredBackend(preferredBackend) {
|
|
|
91
95
|
// - if only one backend is authenticated, use it
|
|
92
96
|
// - if both are authenticated, keep compatibility default (claude)
|
|
93
97
|
if (hasCodexAuth && !hasClaudeAuth) {
|
|
94
|
-
return { backend: 'codex
|
|
98
|
+
return { backend: 'codex', codexAuthPath };
|
|
95
99
|
}
|
|
96
100
|
if (hasClaudeAuth) {
|
|
97
101
|
return { backend: 'claude' };
|
|
@@ -99,10 +103,10 @@ function resolvePreferredBackend(preferredBackend) {
|
|
|
99
103
|
return null;
|
|
100
104
|
}
|
|
101
105
|
function resolveRequestedBackend(preferredBackend) {
|
|
102
|
-
if (preferredBackend === 'claude' || preferredBackend === 'codex
|
|
106
|
+
if (preferredBackend === 'claude' || preferredBackend === 'codex') {
|
|
103
107
|
return preferredBackend;
|
|
104
108
|
}
|
|
105
|
-
return process.env.MAMA_DEFAULT_BACKEND === 'codex
|
|
109
|
+
return process.env.MAMA_DEFAULT_BACKEND === 'codex' ||
|
|
106
110
|
process.env.MAMA_DEFAULT_BACKEND === 'claude'
|
|
107
111
|
? process.env.MAMA_DEFAULT_BACKEND
|
|
108
112
|
: undefined;
|
|
@@ -114,15 +118,15 @@ async function initCommand(options = {}) {
|
|
|
114
118
|
console.log('\n🔧 MAMA Standalone Initialization\n');
|
|
115
119
|
const requestedBackend = resolveRequestedBackend(options.backend);
|
|
116
120
|
let selectedBackend = {
|
|
117
|
-
backend: requestedBackend === 'codex
|
|
121
|
+
backend: requestedBackend === 'codex' ? 'codex' : 'claude',
|
|
118
122
|
};
|
|
119
123
|
if (!options.skipAuthCheck) {
|
|
120
124
|
process.stdout.write('Checking backend authentication (Codex/Claude)... ');
|
|
121
125
|
const resolved = resolvePreferredBackend(options.backend);
|
|
122
126
|
if (!resolved) {
|
|
123
127
|
console.log('❌');
|
|
124
|
-
if (requestedBackend === 'codex
|
|
125
|
-
console.error('\n⚠️ Requested backend "codex
|
|
128
|
+
if (requestedBackend === 'codex') {
|
|
129
|
+
console.error('\n⚠️ Requested backend "codex" is not authenticated.');
|
|
126
130
|
console.error(` Expected auth: ${(0, config_manager_js_1.expandPath)('~/.mama/.codex/auth.json')} or ${(0, config_manager_js_1.expandPath)('~/.codex/auth.json')}`);
|
|
127
131
|
console.error('\n Please run: codex login\n');
|
|
128
132
|
process.exit(1);
|
|
@@ -140,21 +144,21 @@ async function initCommand(options = {}) {
|
|
|
140
144
|
process.exit(1);
|
|
141
145
|
}
|
|
142
146
|
console.error('\n⚠️ No authenticated backend found.');
|
|
143
|
-
console.error(` Codex
|
|
147
|
+
console.error(` Codex auth: ${(0, config_manager_js_1.expandPath)('~/.mama/.codex/auth.json')} or ${(0, config_manager_js_1.expandPath)('~/.codex/auth.json')}`);
|
|
144
148
|
console.error(` Claude auth (legacy fallback): ${(0, config_manager_js_1.expandPath)('~/.claude/.credentials.json')}`);
|
|
145
149
|
console.error('\n Please authenticate one backend first:');
|
|
146
|
-
console.error(' - Codex
|
|
150
|
+
console.error(' - Codex: codex login');
|
|
147
151
|
console.error(' - Claude: claude auth login (or install from https://claude.ai/code)\n');
|
|
148
152
|
process.exit(1);
|
|
149
153
|
}
|
|
150
154
|
selectedBackend = resolved;
|
|
151
155
|
console.log('✓');
|
|
152
156
|
}
|
|
153
|
-
if (selectedBackend.backend === 'codex
|
|
157
|
+
if (selectedBackend.backend === 'codex') {
|
|
154
158
|
const authPathMsg = selectedBackend.codexAuthPath
|
|
155
159
|
? ` (auth detected at ${selectedBackend.codexAuthPath})`
|
|
156
160
|
: '';
|
|
157
|
-
console.log(`Selected backend: codex
|
|
161
|
+
console.log(`Selected backend: codex${authPathMsg}`);
|
|
158
162
|
}
|
|
159
163
|
else {
|
|
160
164
|
console.log('Selected backend: claude');
|
|
@@ -170,8 +174,12 @@ async function initCommand(options = {}) {
|
|
|
170
174
|
try {
|
|
171
175
|
const configPath = await (0, config_manager_js_1.createDefaultConfig)(options.force);
|
|
172
176
|
const config = await (0, config_manager_js_1.loadConfig)();
|
|
173
|
-
|
|
174
|
-
config.agent.backend = selectedBackend.backend
|
|
177
|
+
const defaultModel = DEFAULT_MODEL_BY_BACKEND[selectedBackend.backend];
|
|
178
|
+
config.agent.backend = selectedBackend.backend;
|
|
179
|
+
config.agent.model = defaultModel;
|
|
180
|
+
for (const role of Object.values(config.roles?.definitions ?? {})) {
|
|
181
|
+
role.model = defaultModel;
|
|
182
|
+
}
|
|
175
183
|
await (0, config_manager_js_1.saveConfig)(config);
|
|
176
184
|
if (options.skipAuthCheck && requestedBackend) {
|
|
177
185
|
console.log(`Auth check skipped; applied requested backend "${selectedBackend.backend}" to config.`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/run.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,wBAAwB;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/run.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,wBAAwB;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAkGnE"}
|
package/dist/cli/commands/run.js
CHANGED
|
@@ -23,7 +23,7 @@ async function runCommand(options) {
|
|
|
23
23
|
// Load config
|
|
24
24
|
let config;
|
|
25
25
|
try {
|
|
26
|
-
config = await (0, config_manager_js_1.
|
|
26
|
+
config = await (0, config_manager_js_1.initConfig)();
|
|
27
27
|
}
|
|
28
28
|
catch (error) {
|
|
29
29
|
console.error(`Failed to load configuration: ${error instanceof Error ? error.message : String(error)}\n`);
|
|
@@ -32,8 +32,8 @@ async function runCommand(options) {
|
|
|
32
32
|
const backend = config.agent.backend;
|
|
33
33
|
process.env.MAMA_BACKEND = backend;
|
|
34
34
|
let oauthManager;
|
|
35
|
-
if (backend === 'codex
|
|
36
|
-
console.log('✓ Codex
|
|
35
|
+
if (backend === 'codex') {
|
|
36
|
+
console.log('✓ Codex app-server backend (authentication handled by Codex login)');
|
|
37
37
|
oauthManager = new index_js_1.OAuthManager();
|
|
38
38
|
}
|
|
39
39
|
else {
|
|
@@ -96,7 +96,10 @@ async function runCommand(options) {
|
|
|
96
96
|
}
|
|
97
97
|
catch (error) {
|
|
98
98
|
console.error(`\n❌ Execution failed: ${error instanceof Error ? error.message : String(error)}\n`);
|
|
99
|
-
process.
|
|
99
|
+
process.exitCode = 1;
|
|
100
|
+
}
|
|
101
|
+
finally {
|
|
102
|
+
await agentLoop.stop();
|
|
100
103
|
}
|
|
101
104
|
}
|
|
102
105
|
//# sourceMappingURL=run.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/cli/commands/run.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAmBH,
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/cli/commands/run.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,11 +8,14 @@
|
|
|
8
8
|
* All heavy lifting is delegated to modules in ../runtime/.
|
|
9
9
|
*/
|
|
10
10
|
import { loadConfig } from '../config/config-manager.js';
|
|
11
|
-
import type { GatewayToolExecutionContext } from '../../agent/types.js';
|
|
11
|
+
import type { AgentContext, GatewayToolExecutionContext } from '../../agent/types.js';
|
|
12
12
|
import type { CodeActExecutionContext } from '../../api/graph-api-types.js';
|
|
13
13
|
import { type MemoryScopeRef } from '../../memory/scope-context.js';
|
|
14
14
|
import { type AgentPersonaConfig } from '../config/types.js';
|
|
15
15
|
import type { DBManagerAdapter as DatabaseAdapter } from '@jungjaehoon/mama-core';
|
|
16
|
+
import type { WorkOrderKind } from '../../operator/task-ledger.js';
|
|
17
|
+
type RuntimeBackend = 'claude' | 'codex';
|
|
18
|
+
export declare function requireRuntimeBackend(value: unknown): RuntimeBackend;
|
|
16
19
|
export declare function deriveCodeActToolPolicy(requestContext: CodeActExecutionContext | undefined, agentConfig: Omit<AgentPersonaConfig, 'id'> | undefined): {
|
|
17
20
|
allowedTools?: string[];
|
|
18
21
|
blockedTools?: string[];
|
|
@@ -27,7 +30,15 @@ export declare function resolveCodeActAgentPolicy(requestContext: CodeActExecuti
|
|
|
27
30
|
error?: string;
|
|
28
31
|
};
|
|
29
32
|
export declare function resolveCodeActRawConnectors(enabledConnectorNames: readonly string[] | undefined): string[];
|
|
33
|
+
export type DaemonRawConnectorPrincipal = 'api-code-act' | 'operator-report' | `workorder-${WorkOrderKind}`;
|
|
34
|
+
/**
|
|
35
|
+
* Trello contains owner-scoped project evidence. Among daemon-internal runs,
|
|
36
|
+
* only the host-issued board workorder may read it. Verified owner-console
|
|
37
|
+
* chat receives its separate route-scoped envelope in envelope-bootstrap.
|
|
38
|
+
*/
|
|
39
|
+
export declare function scopeDaemonRawConnectors(enabledConnectorNames: readonly string[] | undefined, principal: DaemonRawConnectorPrincipal): string[];
|
|
30
40
|
export declare function resolveCodeActMemoryScopes(baseScopes: readonly MemoryScopeRef[], adapter?: Pick<DatabaseAdapter, 'prepare'>): MemoryScopeRef[];
|
|
41
|
+
export declare function buildWorkOrderCodexAgentContext(kind: WorkOrderKind, model: string): AgentContext;
|
|
31
42
|
type CodeActModelRunAdapter = Pick<DatabaseAdapter, 'prepare'>;
|
|
32
43
|
type CodeActExecutionResultLike = {
|
|
33
44
|
success?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACL,UAAU,EAMX,MAAM,6BAA6B,CAAC;AAMrC,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":"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"}
|
|
@@ -45,10 +45,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
45
45
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
46
46
|
};
|
|
47
47
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
48
|
+
exports.requireRuntimeBackend = requireRuntimeBackend;
|
|
48
49
|
exports.deriveCodeActToolPolicy = deriveCodeActToolPolicy;
|
|
49
50
|
exports.resolveCodeActAgentPolicy = resolveCodeActAgentPolicy;
|
|
50
51
|
exports.resolveCodeActRawConnectors = resolveCodeActRawConnectors;
|
|
52
|
+
exports.scopeDaemonRawConnectors = scopeDaemonRawConnectors;
|
|
51
53
|
exports.resolveCodeActMemoryScopes = resolveCodeActMemoryScopes;
|
|
54
|
+
exports.buildWorkOrderCodexAgentContext = buildWorkOrderCodexAgentContext;
|
|
52
55
|
exports.bindCodeActParentModelRun = bindCodeActParentModelRun;
|
|
53
56
|
exports.finalizeCodeActParentModelRun = finalizeCodeActParentModelRun;
|
|
54
57
|
exports.failCodeActParentModelRun = failCodeActParentModelRun;
|
|
@@ -96,6 +99,12 @@ const debugLogger = __importStar(require("@jungjaehoon/mama-core/debug-logger"))
|
|
|
96
99
|
const mama_core_1 = require("@jungjaehoon/mama-core");
|
|
97
100
|
const { DebugLogger } = debugLogger;
|
|
98
101
|
const codeActLogger = new DebugLogger('CodeAct');
|
|
102
|
+
function requireRuntimeBackend(value) {
|
|
103
|
+
if (value === 'claude' || value === 'codex') {
|
|
104
|
+
return value;
|
|
105
|
+
}
|
|
106
|
+
throw new Error(`Unsupported agent backend: ${String(value)}`);
|
|
107
|
+
}
|
|
99
108
|
const TRUTHY_ENV_VALUES = new Set(['1', 'true', 'yes', 'on']);
|
|
100
109
|
const CODE_ACT_MUTATION_TOOLS = new Set([
|
|
101
110
|
'mama_save',
|
|
@@ -200,6 +209,18 @@ function resolveCodeActAgentPolicy(requestContext, agents, defaultAgentId) {
|
|
|
200
209
|
function resolveCodeActRawConnectors(enabledConnectorNames) {
|
|
201
210
|
return [...new Set((enabledConnectorNames ?? []).map((name) => name.trim()).filter(Boolean))];
|
|
202
211
|
}
|
|
212
|
+
/**
|
|
213
|
+
* Trello contains owner-scoped project evidence. Among daemon-internal runs,
|
|
214
|
+
* only the host-issued board workorder may read it. Verified owner-console
|
|
215
|
+
* chat receives its separate route-scoped envelope in envelope-bootstrap.
|
|
216
|
+
*/
|
|
217
|
+
function scopeDaemonRawConnectors(enabledConnectorNames, principal) {
|
|
218
|
+
const connectors = resolveCodeActRawConnectors(enabledConnectorNames);
|
|
219
|
+
if (principal === 'workorder-board') {
|
|
220
|
+
return connectors;
|
|
221
|
+
}
|
|
222
|
+
return connectors.filter((connector) => connector !== 'trello');
|
|
223
|
+
}
|
|
203
224
|
const CODE_ACT_RAW_MEMORY_SCOPE_LIMIT = 500;
|
|
204
225
|
const MEMORY_SCOPE_KINDS = new Set(['global', 'user', 'channel', 'project']);
|
|
205
226
|
function isMemoryScopeKind(value) {
|
|
@@ -264,6 +285,69 @@ function buildCodeActRole(policy) {
|
|
|
264
285
|
sensitiveAccess: false,
|
|
265
286
|
};
|
|
266
287
|
}
|
|
288
|
+
// Stage-2 workers are short-lived operator jobs, not standing multi-agent
|
|
289
|
+
// personas. Their permissions must therefore be complete on a default install
|
|
290
|
+
// and must not vary with optional legacy agent configuration.
|
|
291
|
+
const WORKORDER_CODE_ACT_POLICIES = {
|
|
292
|
+
board: {
|
|
293
|
+
roleName: 'workorder-board',
|
|
294
|
+
allowedTools: [
|
|
295
|
+
'agent_notices',
|
|
296
|
+
'context_compile',
|
|
297
|
+
'contract_no_update',
|
|
298
|
+
'kagemusha_entities',
|
|
299
|
+
'kagemusha_messages',
|
|
300
|
+
'kagemusha_overview',
|
|
301
|
+
'kagemusha_tasks',
|
|
302
|
+
'mama_search',
|
|
303
|
+
'report_publish',
|
|
304
|
+
'task_create',
|
|
305
|
+
'task_list',
|
|
306
|
+
'task_update',
|
|
307
|
+
],
|
|
308
|
+
},
|
|
309
|
+
wiki: {
|
|
310
|
+
roleName: 'workorder-wiki',
|
|
311
|
+
allowedTools: ['agent_notices', 'context_compile', 'mama_search', 'obsidian', 'wiki_publish'],
|
|
312
|
+
},
|
|
313
|
+
'memory-curation': {
|
|
314
|
+
roleName: 'workorder-memory-curation',
|
|
315
|
+
allowedTools: [
|
|
316
|
+
'agent_notices',
|
|
317
|
+
'kagemusha_entities',
|
|
318
|
+
'kagemusha_messages',
|
|
319
|
+
'mama_save',
|
|
320
|
+
'mama_search',
|
|
321
|
+
],
|
|
322
|
+
},
|
|
323
|
+
};
|
|
324
|
+
function buildWorkOrderCodexAgentContext(kind, model) {
|
|
325
|
+
const policy = WORKORDER_CODE_ACT_POLICIES[kind];
|
|
326
|
+
const blockedTools = [];
|
|
327
|
+
const allowedTools = uniqueToolList(['code_act', ...policy.allowedTools]);
|
|
328
|
+
return {
|
|
329
|
+
source: 'operator',
|
|
330
|
+
platform: 'cli',
|
|
331
|
+
roleName: policy.roleName,
|
|
332
|
+
role: {
|
|
333
|
+
allowedTools,
|
|
334
|
+
blockedTools,
|
|
335
|
+
allowedPaths: [],
|
|
336
|
+
systemControl: false,
|
|
337
|
+
sensitiveAccess: false,
|
|
338
|
+
model,
|
|
339
|
+
},
|
|
340
|
+
session: {
|
|
341
|
+
sessionId: `operator:worker:${kind}`,
|
|
342
|
+
channelId: `worker:${kind}`,
|
|
343
|
+
startedAt: new Date(),
|
|
344
|
+
},
|
|
345
|
+
capabilities: allowedTools,
|
|
346
|
+
limitations: blockedTools.map((tool) => `Cannot use ${tool}`),
|
|
347
|
+
tier: 2,
|
|
348
|
+
backend: 'codex',
|
|
349
|
+
};
|
|
350
|
+
}
|
|
267
351
|
function bindCodeActParentModelRun(adapter, executionContext, options) {
|
|
268
352
|
if (!executionContext?.envelope) {
|
|
269
353
|
return { executionContext, modelRunId: null };
|
|
@@ -348,12 +432,10 @@ async function startCommand(options = {}) {
|
|
|
348
432
|
console.error(`Failed to load config: ${error instanceof Error ? error.message : String(error)}\n`);
|
|
349
433
|
process.exit(1);
|
|
350
434
|
}
|
|
351
|
-
const
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
if (backend === 'codex' || backend === 'codex-mcp') {
|
|
356
|
-
console.log('✓ Codex-MCP backend (OAuth handled by Codex login)');
|
|
435
|
+
const backend = requireRuntimeBackend(config.agent.backend);
|
|
436
|
+
process.env.MAMA_BACKEND = backend;
|
|
437
|
+
if (backend === 'codex') {
|
|
438
|
+
console.log('✓ Codex app-server backend (authentication handled by Codex login)');
|
|
357
439
|
}
|
|
358
440
|
else {
|
|
359
441
|
console.log('✓ Claude CLI mode (OAuth token not needed)');
|
|
@@ -438,9 +520,7 @@ async function startCommand(options = {}) {
|
|
|
438
520
|
async function runAgentLoop(config, options = {}) {
|
|
439
521
|
// ── Phase 1: Foundation ───────────────────────────────────────────────────
|
|
440
522
|
const startupBackend = config.agent.backend;
|
|
441
|
-
const usesCodexBackend = startupBackend === 'codex' ||
|
|
442
|
-
startupBackend === 'codex-mcp' ||
|
|
443
|
-
(0, utilities_js_1.hasCodexBackendConfigured)(config);
|
|
523
|
+
const usesCodexBackend = startupBackend === 'codex' || (0, utilities_js_1.hasCodexBackendConfigured)(config);
|
|
444
524
|
if (usesCodexBackend) {
|
|
445
525
|
const codexCommand = (0, utilities_js_1.resolveCodexCommandForStartup)();
|
|
446
526
|
process.env.MAMA_CODEX_COMMAND = codexCommand;
|
|
@@ -493,15 +573,9 @@ async function runAgentLoop(config, options = {}) {
|
|
|
493
573
|
envelopeIssuanceMode: envelopeBootstrap.metadata.issuance,
|
|
494
574
|
metricsStore,
|
|
495
575
|
});
|
|
496
|
-
const
|
|
497
|
-
const rawBackend = config.agent.backend;
|
|
498
|
-
const isValidBackend = validBackends.includes(rawBackend);
|
|
499
|
-
const runtimeBackend = isValidBackend ? rawBackend : 'claude';
|
|
576
|
+
const runtimeBackend = requireRuntimeBackend(config.agent.backend);
|
|
500
577
|
process.env.MAMA_BACKEND = runtimeBackend;
|
|
501
|
-
|
|
502
|
-
console.warn(`[Config] Unknown backend "${rawBackend}", falling back to "claude"`);
|
|
503
|
-
}
|
|
504
|
-
const agentLoopBackend = runtimeBackend === 'codex' || runtimeBackend === 'codex-mcp' ? 'codex-mcp' : 'claude';
|
|
578
|
+
const agentLoopBackend = runtimeBackend;
|
|
505
579
|
// Initialize main agent loop + client (reasoning state is closure-scoped inside)
|
|
506
580
|
const { agentLoop, agentLoopClient } = (0, agent_loop_init_js_1.initMainAgentLoop)(config, oauthManager, db, metricsStore, agentLoopBackend, toolExecutor, {
|
|
507
581
|
...options,
|
|
@@ -580,7 +654,7 @@ async function runAgentLoop(config, options = {}) {
|
|
|
580
654
|
trigger_context: { user_text: '<api-code-act invocation>' },
|
|
581
655
|
scope: {
|
|
582
656
|
project_refs: [projectRef],
|
|
583
|
-
raw_connectors: codeActRawConnectors,
|
|
657
|
+
raw_connectors: scopeDaemonRawConnectors(codeActRawConnectors, 'api-code-act'),
|
|
584
658
|
memory_scopes: memoryScopes,
|
|
585
659
|
allowed_destinations: [],
|
|
586
660
|
},
|
|
@@ -870,6 +944,11 @@ async function runAgentLoop(config, options = {}) {
|
|
|
870
944
|
// started AFTER it - the boot invariant below enforces that ordering.
|
|
871
945
|
const { readStage2Flag } = await import('../../operator/workorder-publishers.js');
|
|
872
946
|
const stage2Flag = readStage2Flag();
|
|
947
|
+
// Validate the worker-run timeout override at boot (no-fallback): a malformed
|
|
948
|
+
// MAMA_WORKER_TIMEOUT_SECONDS must crash the daemon loudly, not silently
|
|
949
|
+
// revert worker runs to the 300s bound. Mirrors readStage2Flag above.
|
|
950
|
+
const { resolveWorkerRequestTimeoutMs } = await import('../../operator/worker-run.js');
|
|
951
|
+
resolveWorkerRequestTimeoutMs();
|
|
873
952
|
let workOrderConsumer = null;
|
|
874
953
|
gateways.push({
|
|
875
954
|
stop: async () => {
|
|
@@ -928,7 +1007,19 @@ async function runAgentLoop(config, options = {}) {
|
|
|
928
1007
|
loadBrief: (kind) => loadBrief(kind),
|
|
929
1008
|
noticeOwner: (summary) => messageRouter.enqueueOperatorNotice(summary),
|
|
930
1009
|
opsAlarm,
|
|
931
|
-
runOptionsFor: (wo) => {
|
|
1010
|
+
runOptionsFor: async (wo) => {
|
|
1011
|
+
// Worker prompt selects the provider's supported tool path: Claude's
|
|
1012
|
+
// text gateway or Codex's injected native host tools. Both avoid the
|
|
1013
|
+
// spawn-default code-act path, where per-run envelope/capture overrides
|
|
1014
|
+
// cannot reach (shadow-gate §8.2).
|
|
1015
|
+
const { buildWorkerSystemPrompt } = await import('../../operator/worker-run.js');
|
|
1016
|
+
const { getGatewayToolsPrompt } = await import('../../agent/agent-loop.js');
|
|
1017
|
+
const runOptions = {
|
|
1018
|
+
systemPrompt: buildWorkerSystemPrompt(getGatewayToolsPrompt(), runtimeBackend, wo.workKind),
|
|
1019
|
+
};
|
|
1020
|
+
if (runtimeBackend === 'codex') {
|
|
1021
|
+
runOptions.agentContext = buildWorkOrderCodexAgentContext(wo.workKind, config.agent.model);
|
|
1022
|
+
}
|
|
932
1023
|
if (stage2Flag === 'shadow') {
|
|
933
1024
|
// Shadow ≡ board only. A non-board order here (e.g. enqueued at
|
|
934
1025
|
// 'on' before a rollback) would run LIVE with no capture seam
|
|
@@ -942,9 +1033,41 @@ async function runAgentLoop(config, options = {}) {
|
|
|
942
1033
|
if (!shadowCapture) {
|
|
943
1034
|
throw new Error('[stage2] shadow capture publisher missing - refusing live publish');
|
|
944
1035
|
}
|
|
945
|
-
|
|
1036
|
+
runOptions.reportPublisherOverride = shadowCapture.publisher;
|
|
946
1037
|
}
|
|
947
|
-
|
|
1038
|
+
// Per-run scoped envelope (live-gate finding, 2026-07-18): gateway
|
|
1039
|
+
// 'model_tool' executions are envelope-gated, and workerRun is a new
|
|
1040
|
+
// caller class with no issuer - without this, every worker tool call
|
|
1041
|
+
// (incl. report_publish) dies 'envelope_missing'. Mirrors the report
|
|
1042
|
+
// lane's issuance (createPersonaReportAsk wiring below); issuance
|
|
1043
|
+
// failure rejects -> failWorkOrder (no envelope-less fallback run).
|
|
1044
|
+
if (envelopeBootstrap.envelopeAuthority && envelopeBootstrap.metadata.issuance !== 'off') {
|
|
1045
|
+
const projectId = (0, reactive_config_js_1.resolveReactiveProjectRoot)(config, process.env);
|
|
1046
|
+
const wallSeconds = Math.min(Math.max(Number(process.env.MAMA_REPORT_WALL_SECONDS) || 900, 60), 1800);
|
|
1047
|
+
runOptions.envelope = await envelopeBootstrap.envelopeAuthority.buildAndPersist({
|
|
1048
|
+
agent_id: `workorder-${wo.workKind}`,
|
|
1049
|
+
instance_id: (0, node_crypto_1.randomUUID)(),
|
|
1050
|
+
// 'watch' = daemon-internal issuing source (closed EnvelopeSource
|
|
1051
|
+
// union; enforcement authorizes on scope, never on source).
|
|
1052
|
+
source: 'watch',
|
|
1053
|
+
channel_id: `worker:${wo.workKind}`,
|
|
1054
|
+
trigger_context: { user_text: `<stage2 workorder ${wo.workKind}#${wo.id}>` },
|
|
1055
|
+
scope: {
|
|
1056
|
+
project_refs: [{ kind: 'project', id: projectId }],
|
|
1057
|
+
raw_connectors: scopeDaemonRawConnectors(codeActRawConnectors, `workorder-${wo.workKind}`),
|
|
1058
|
+
memory_scopes: resolveCodeActMemoryScopes((0, scope_context_js_1.deriveMemoryScopes)({
|
|
1059
|
+
source: 'operator',
|
|
1060
|
+
channelId: `worker:${wo.workKind}`,
|
|
1061
|
+
projectId,
|
|
1062
|
+
}), getAdapter()),
|
|
1063
|
+
allowed_destinations: [],
|
|
1064
|
+
},
|
|
1065
|
+
tier: 2,
|
|
1066
|
+
budget: { wall_seconds: wallSeconds },
|
|
1067
|
+
expires_at: new Date(Date.now() + wallSeconds * 1000 + 30_000).toISOString(),
|
|
1068
|
+
});
|
|
1069
|
+
}
|
|
1070
|
+
return Object.keys(runOptions).length > 0 ? runOptions : undefined;
|
|
948
1071
|
},
|
|
949
1072
|
onEvent: (event) => {
|
|
950
1073
|
// Telemetry replacement for executeValidatedRun's task_start/complete
|
|
@@ -1024,6 +1147,7 @@ async function runAgentLoop(config, options = {}) {
|
|
|
1024
1147
|
// Runs ONLY with MAMA_TRIGGER_LOOP=1. Placed after initConnectors (which feeds
|
|
1025
1148
|
// connector_event_index) and after mama-core initDB. Read-only: recall/surface/log.
|
|
1026
1149
|
if (process.env.MAMA_TRIGGER_LOOP === '1') {
|
|
1150
|
+
let stopTriggerAgentRuntime;
|
|
1027
1151
|
// Component isolation (PR #119 review): a trigger-loop bootstrap failure (bad import,
|
|
1028
1152
|
// DB permission, registry constructor) must not abort the whole daemon before Phase
|
|
1029
1153
|
// 10/11 - the gateways/viewer/agent serve independently of this optional leg. The
|
|
@@ -1033,7 +1157,7 @@ async function runAgentLoop(config, options = {}) {
|
|
|
1033
1157
|
const { ConnectorDeltaRepo } = await import('../../operator/connector-delta-repo.js');
|
|
1034
1158
|
const { TriggerRegistry } = await import('../../operator/trigger-registry.js');
|
|
1035
1159
|
const { createMamaMemoryPort } = await import('../../operator/mama-memory-port.js');
|
|
1036
|
-
const {
|
|
1160
|
+
const { createTriggerAgentRuntime } = await import('../../operator/trigger-author.js');
|
|
1037
1161
|
const { reviewTriggerCLI } = await import('../../operator/trigger-review.js');
|
|
1038
1162
|
const { ReportScheduler, FileReportScheduleStore, parseReportHours } = await import('../../operator/report-scheduler.js');
|
|
1039
1163
|
const { persistLastFullReport } = await import('../../operator/report-carry.js');
|
|
@@ -1057,15 +1181,22 @@ async function runAgentLoop(config, options = {}) {
|
|
|
1057
1181
|
const reportScheduler = reportOutput
|
|
1058
1182
|
? new ReportScheduler(fullReportHours, new FileReportScheduleStore((0, config_manager_js_1.expandPath)('~/.mama/operator/report-schedule-state.json')))
|
|
1059
1183
|
: undefined;
|
|
1184
|
+
const triggerAgentRuntime = createTriggerAgentRuntime(runtimeBackend, {
|
|
1185
|
+
model: config.agent.model,
|
|
1186
|
+
cwd: (0, config_manager_js_1.expandPath)(config.workspace?.path || '~/.mama/workspace'),
|
|
1187
|
+
command: process.env.MAMA_CODEX_COMMAND,
|
|
1188
|
+
});
|
|
1189
|
+
stopTriggerAgentRuntime = () => triggerAgentRuntime.stop();
|
|
1060
1190
|
const triggerLoop = new OperatorTriggerLoop({
|
|
1191
|
+
backend: runtimeBackend,
|
|
1061
1192
|
delta: new ConnectorDeltaRepo(getAdapter(), (0, config_manager_js_1.expandPath)('~/.mama/operator/trigger-loop-cursors.json')),
|
|
1062
1193
|
memory: createMamaMemoryPort(),
|
|
1063
1194
|
registry: triggerRegistry,
|
|
1064
1195
|
onChannelDelta: (channelKey, lines) => channelDeltaSink.current?.(channelKey, lines),
|
|
1065
|
-
askAgent:
|
|
1196
|
+
askAgent: triggerAgentRuntime.askAuthor,
|
|
1066
1197
|
// M2.2: reports go through the daemon's persona agent (system prompt, pinned model,
|
|
1067
1198
|
// session lanes) instead of the bare CLI - report tone comes from generation inputs.
|
|
1068
|
-
// JSON tasks (authoring/review)
|
|
1199
|
+
// JSON tasks (authoring/review) use a provider-specific, tool-free runtime.
|
|
1069
1200
|
// M3 (GAP1+GAP2): run reports in a dedicated persona session lane so the multi-turn gather
|
|
1070
1201
|
// loop is isolated from chat and continuous across cadences (runWithContent honors
|
|
1071
1202
|
// options.sessionKey - agent-loop.ts:879, no agent-loop internal change). Gateway
|
|
@@ -1096,11 +1227,12 @@ async function runAgentLoop(config, options = {}) {
|
|
|
1096
1227
|
channel_id: 'report',
|
|
1097
1228
|
trigger_context: { user_text: '<operator scheduled report>' },
|
|
1098
1229
|
scope: {
|
|
1099
|
-
// Reads:
|
|
1230
|
+
// Reads: enabled non-Trello raw connectors (kagemusha_* gathers) + memory scopes.
|
|
1231
|
+
// Trello is reserved for verified owner-console and workorder-board envelopes.
|
|
1100
1232
|
// covering mama_recall/mama_save. allowed_destinations stays [] - NO new
|
|
1101
1233
|
// send surface (constraint 2).
|
|
1102
1234
|
project_refs: [{ kind: 'project', id: projectId }],
|
|
1103
|
-
raw_connectors: codeActRawConnectors,
|
|
1235
|
+
raw_connectors: scopeDaemonRawConnectors(codeActRawConnectors, 'operator-report'),
|
|
1104
1236
|
memory_scopes: resolveCodeActMemoryScopes((0, scope_context_js_1.deriveMemoryScopes)({ source: 'operator', channelId: 'report', projectId }), getAdapter()),
|
|
1105
1237
|
allowed_destinations: [],
|
|
1106
1238
|
},
|
|
@@ -1127,7 +1259,7 @@ async function runAgentLoop(config, options = {}) {
|
|
|
1127
1259
|
log: (line) => console.log(line),
|
|
1128
1260
|
fullReportTag: OPERATOR_FULL_REPORT_TAG,
|
|
1129
1261
|
}),
|
|
1130
|
-
review: (trigger, context) => reviewTriggerCLI(trigger, context),
|
|
1262
|
+
review: (trigger, context) => reviewTriggerCLI(trigger, context, triggerAgentRuntime.askReview),
|
|
1131
1263
|
output: reportOutput,
|
|
1132
1264
|
reportScheduler,
|
|
1133
1265
|
// M2.3: the scheduled full report self-gathers via the persona agent's gateway tools
|
|
@@ -1175,6 +1307,7 @@ async function runAgentLoop(config, options = {}) {
|
|
|
1175
1307
|
stop: async () => {
|
|
1176
1308
|
triggerLoopNudge.current = null;
|
|
1177
1309
|
stopTriggerLoop();
|
|
1310
|
+
await triggerAgentRuntime.stop();
|
|
1178
1311
|
// The shared operator DB handle is closed by the unconditional stop
|
|
1179
1312
|
// hook above (single owner); nothing to close here.
|
|
1180
1313
|
},
|
|
@@ -1182,6 +1315,7 @@ async function runAgentLoop(config, options = {}) {
|
|
|
1182
1315
|
console.log('✓ Trigger loop enabled (MAMA_TRIGGER_LOOP=1, read-only surface mode)');
|
|
1183
1316
|
}
|
|
1184
1317
|
catch (error) {
|
|
1318
|
+
await stopTriggerAgentRuntime?.().catch(() => { });
|
|
1185
1319
|
console.error('[trigger-loop] FAILED to start - daemon continues WITHOUT the trigger loop. Fix and restart:', error);
|
|
1186
1320
|
}
|
|
1187
1321
|
}
|