@jungjaehoon/mama-os 0.22.1 → 0.24.0

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.
Files changed (257) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/README.md +3 -1
  3. package/dist/agent/agent-loop.d.ts +3 -9
  4. package/dist/agent/agent-loop.d.ts.map +1 -1
  5. package/dist/agent/agent-loop.js +419 -216
  6. package/dist/agent/agent-loop.js.map +1 -1
  7. package/dist/agent/code-act/constants.d.ts +2 -2
  8. package/dist/agent/code-act/constants.d.ts.map +1 -1
  9. package/dist/agent/code-act/constants.js +16 -9
  10. package/dist/agent/code-act/constants.js.map +1 -1
  11. package/dist/agent/code-act/host-bridge.d.ts +12 -11
  12. package/dist/agent/code-act/host-bridge.d.ts.map +1 -1
  13. package/dist/agent/code-act/host-bridge.js +92 -15
  14. package/dist/agent/code-act/host-bridge.js.map +1 -1
  15. package/dist/agent/code-act/index.d.ts +2 -0
  16. package/dist/agent/code-act/index.d.ts.map +1 -1
  17. package/dist/agent/code-act/index.js +5 -1
  18. package/dist/agent/code-act/index.js.map +1 -1
  19. package/dist/agent/code-act/tool-policy.d.ts +42 -0
  20. package/dist/agent/code-act/tool-policy.d.ts.map +1 -0
  21. package/dist/agent/code-act/tool-policy.js +122 -0
  22. package/dist/agent/code-act/tool-policy.js.map +1 -0
  23. package/dist/agent/code-act/type-definition-generator.d.ts +4 -3
  24. package/dist/agent/code-act/type-definition-generator.d.ts.map +1 -1
  25. package/dist/agent/code-act/type-definition-generator.js +26 -48
  26. package/dist/agent/code-act/type-definition-generator.js.map +1 -1
  27. package/dist/agent/codex-app-server-process.d.ts +116 -0
  28. package/dist/agent/codex-app-server-process.d.ts.map +1 -0
  29. package/dist/agent/codex-app-server-process.js +1382 -0
  30. package/dist/agent/codex-app-server-process.js.map +1 -0
  31. package/dist/agent/codex-home.d.ts +9 -0
  32. package/dist/agent/codex-home.d.ts.map +1 -1
  33. package/dist/agent/codex-home.js +626 -4
  34. package/dist/agent/codex-home.js.map +1 -1
  35. package/dist/agent/codex-thread-registry.d.ts +63 -0
  36. package/dist/agent/codex-thread-registry.d.ts.map +1 -0
  37. package/dist/agent/codex-thread-registry.js +433 -0
  38. package/dist/agent/codex-thread-registry.js.map +1 -0
  39. package/dist/agent/gateway-tool-executor.d.ts +20 -7
  40. package/dist/agent/gateway-tool-executor.d.ts.map +1 -1
  41. package/dist/agent/gateway-tool-executor.js +254 -90
  42. package/dist/agent/gateway-tool-executor.js.map +1 -1
  43. package/dist/agent/gateway-tools.md +10 -5
  44. package/dist/agent/managed-agent-runtime-sync.d.ts.map +1 -1
  45. package/dist/agent/managed-agent-runtime-sync.js +0 -3
  46. package/dist/agent/managed-agent-runtime-sync.js.map +1 -1
  47. package/dist/agent/managed-agent-validation.js +1 -1
  48. package/dist/agent/managed-agent-validation.js.map +1 -1
  49. package/dist/agent/model-runner.d.ts +51 -3
  50. package/dist/agent/model-runner.d.ts.map +1 -1
  51. package/dist/agent/model-runner.js +1 -1
  52. package/dist/agent/model-runner.js.map +1 -1
  53. package/dist/agent/persistent-cli-adapter.d.ts +1 -0
  54. package/dist/agent/persistent-cli-adapter.d.ts.map +1 -1
  55. package/dist/agent/persistent-cli-adapter.js +3 -0
  56. package/dist/agent/persistent-cli-adapter.js.map +1 -1
  57. package/dist/agent/role-manager.d.ts +22 -1
  58. package/dist/agent/role-manager.d.ts.map +1 -1
  59. package/dist/agent/role-manager.js +39 -2
  60. package/dist/agent/role-manager.js.map +1 -1
  61. package/dist/agent/session-pool.d.ts +2 -2
  62. package/dist/agent/session-pool.d.ts.map +1 -1
  63. package/dist/agent/session-pool.js +6 -6
  64. package/dist/agent/session-pool.js.map +1 -1
  65. package/dist/agent/tool-registry.d.ts +14 -0
  66. package/dist/agent/tool-registry.d.ts.map +1 -1
  67. package/dist/agent/tool-registry.js +81 -12
  68. package/dist/agent/tool-registry.js.map +1 -1
  69. package/dist/agent/types.d.ts +49 -7
  70. package/dist/agent/types.d.ts.map +1 -1
  71. package/dist/agent/types.js.map +1 -1
  72. package/dist/api/graph-api.d.ts.map +1 -1
  73. package/dist/api/graph-api.js +62 -40
  74. package/dist/api/graph-api.js.map +1 -1
  75. package/dist/api/operator-tasks-handler.d.ts.map +1 -1
  76. package/dist/api/operator-tasks-handler.js +6 -2
  77. package/dist/api/operator-tasks-handler.js.map +1 -1
  78. package/dist/cli/commands/init.d.ts +1 -1
  79. package/dist/cli/commands/init.d.ts.map +1 -1
  80. package/dist/cli/commands/init.js +22 -14
  81. package/dist/cli/commands/init.js.map +1 -1
  82. package/dist/cli/commands/run.d.ts.map +1 -1
  83. package/dist/cli/commands/run.js +7 -4
  84. package/dist/cli/commands/run.js.map +1 -1
  85. package/dist/cli/commands/start.d.ts +2 -0
  86. package/dist/cli/commands/start.d.ts.map +1 -1
  87. package/dist/cli/commands/start.js +259 -23
  88. package/dist/cli/commands/start.js.map +1 -1
  89. package/dist/cli/commands/status.js +2 -2
  90. package/dist/cli/commands/status.js.map +1 -1
  91. package/dist/cli/config/config-manager.d.ts +0 -5
  92. package/dist/cli/config/config-manager.d.ts.map +1 -1
  93. package/dist/cli/config/config-manager.js +78 -6
  94. package/dist/cli/config/config-manager.js.map +1 -1
  95. package/dist/cli/config/types.d.ts +4 -4
  96. package/dist/cli/config/types.d.ts.map +1 -1
  97. package/dist/cli/config/types.js +36 -0
  98. package/dist/cli/config/types.js.map +1 -1
  99. package/dist/cli/index.js +2 -2
  100. package/dist/cli/index.js.map +1 -1
  101. package/dist/cli/runtime/agent-loop-init.d.ts +1 -1
  102. package/dist/cli/runtime/agent-loop-init.d.ts.map +1 -1
  103. package/dist/cli/runtime/agent-loop-init.js +106 -60
  104. package/dist/cli/runtime/agent-loop-init.js.map +1 -1
  105. package/dist/cli/runtime/api-routes-init.d.ts +3 -0
  106. package/dist/cli/runtime/api-routes-init.d.ts.map +1 -1
  107. package/dist/cli/runtime/api-routes-init.js +226 -51
  108. package/dist/cli/runtime/api-routes-init.js.map +1 -1
  109. package/dist/cli/runtime/connector-init.d.ts.map +1 -1
  110. package/dist/cli/runtime/connector-init.js +13 -17
  111. package/dist/cli/runtime/connector-init.js.map +1 -1
  112. package/dist/cli/runtime/envelope-bootstrap.d.ts.map +1 -1
  113. package/dist/cli/runtime/envelope-bootstrap.js +13 -1
  114. package/dist/cli/runtime/envelope-bootstrap.js.map +1 -1
  115. package/dist/cli/runtime/gateway-init.d.ts +1 -1
  116. package/dist/cli/runtime/gateway-init.d.ts.map +1 -1
  117. package/dist/cli/runtime/gateway-init.js +5 -0
  118. package/dist/cli/runtime/gateway-init.js.map +1 -1
  119. package/dist/cli/runtime/mama-core-init.d.ts +2 -2
  120. package/dist/cli/runtime/mama-core-init.d.ts.map +1 -1
  121. package/dist/cli/runtime/mama-core-init.js +17 -0
  122. package/dist/cli/runtime/mama-core-init.js.map +1 -1
  123. package/dist/cli/runtime/memory-agent-init.d.ts +1 -1
  124. package/dist/cli/runtime/memory-agent-init.d.ts.map +1 -1
  125. package/dist/cli/runtime/memory-agent-init.js +16 -6
  126. package/dist/cli/runtime/memory-agent-init.js.map +1 -1
  127. package/dist/cli/runtime/types.d.ts +4 -26
  128. package/dist/cli/runtime/types.d.ts.map +1 -1
  129. package/dist/cli/runtime/utilities.js +2 -2
  130. package/dist/cli/runtime/utilities.js.map +1 -1
  131. package/dist/connectors/config-loader.d.ts +24 -0
  132. package/dist/connectors/config-loader.d.ts.map +1 -0
  133. package/dist/connectors/config-loader.js +205 -0
  134. package/dist/connectors/config-loader.js.map +1 -0
  135. package/dist/connectors/framework/types.d.ts +2 -0
  136. package/dist/connectors/framework/types.d.ts.map +1 -1
  137. package/dist/connectors/kagemusha/query-tools.js +2 -2
  138. package/dist/connectors/kagemusha/query-tools.js.map +1 -1
  139. package/dist/envelope/reactive-config.d.ts +2 -2
  140. package/dist/envelope/reactive-config.d.ts.map +1 -1
  141. package/dist/envelope/reactive-config.js +36 -4
  142. package/dist/envelope/reactive-config.js.map +1 -1
  143. package/dist/gateways/context-injector.d.ts +2 -1
  144. package/dist/gateways/context-injector.d.ts.map +1 -1
  145. package/dist/gateways/context-injector.js.map +1 -1
  146. package/dist/gateways/message-router.d.ts +19 -1
  147. package/dist/gateways/message-router.d.ts.map +1 -1
  148. package/dist/gateways/message-router.js +179 -24
  149. package/dist/gateways/message-router.js.map +1 -1
  150. package/dist/gateways/telegram.d.ts.map +1 -1
  151. package/dist/gateways/telegram.js +13 -0
  152. package/dist/gateways/telegram.js.map +1 -1
  153. package/dist/gateways/types.d.ts +4 -1
  154. package/dist/gateways/types.d.ts.map +1 -1
  155. package/dist/memory/history-extractor.d.ts +0 -24
  156. package/dist/memory/history-extractor.d.ts.map +1 -1
  157. package/dist/memory/history-extractor.js +0 -132
  158. package/dist/memory/history-extractor.js.map +1 -1
  159. package/dist/memory/save-candidate-extractor.d.ts +3 -0
  160. package/dist/memory/save-candidate-extractor.d.ts.map +1 -1
  161. package/dist/memory/save-candidate-extractor.js +12 -1
  162. package/dist/memory/save-candidate-extractor.js.map +1 -1
  163. package/dist/memory/secret-filter.d.ts +22 -0
  164. package/dist/memory/secret-filter.d.ts.map +1 -0
  165. package/dist/memory/secret-filter.js +77 -0
  166. package/dist/memory/secret-filter.js.map +1 -0
  167. package/dist/multi-agent/agent-process-manager.d.ts +9 -1
  168. package/dist/multi-agent/agent-process-manager.d.ts.map +1 -1
  169. package/dist/multi-agent/agent-process-manager.js +197 -49
  170. package/dist/multi-agent/agent-process-manager.js.map +1 -1
  171. package/dist/multi-agent/multi-agent-base.d.ts.map +1 -1
  172. package/dist/multi-agent/multi-agent-base.js +2 -1
  173. package/dist/multi-agent/multi-agent-base.js.map +1 -1
  174. package/dist/multi-agent/runtime-process.d.ts +18 -15
  175. package/dist/multi-agent/runtime-process.d.ts.map +1 -1
  176. package/dist/multi-agent/runtime-process.js +63 -59
  177. package/dist/multi-agent/runtime-process.js.map +1 -1
  178. package/dist/multi-agent/types.d.ts +13 -7
  179. package/dist/multi-agent/types.d.ts.map +1 -1
  180. package/dist/multi-agent/types.js.map +1 -1
  181. package/dist/multi-agent/workflow-engine.js +3 -3
  182. package/dist/multi-agent/workflow-engine.js.map +1 -1
  183. package/dist/multi-agent/workflow-types.d.ts +2 -2
  184. package/dist/multi-agent/workflow-types.d.ts.map +1 -1
  185. package/dist/observability/code-audit.d.ts +4 -0
  186. package/dist/observability/code-audit.d.ts.map +1 -1
  187. package/dist/observability/code-audit.js +69 -0
  188. package/dist/observability/code-audit.js.map +1 -1
  189. package/dist/operator/briefs.d.ts +26 -0
  190. package/dist/operator/briefs.d.ts.map +1 -0
  191. package/dist/operator/briefs.js +128 -0
  192. package/dist/operator/briefs.js.map +1 -0
  193. package/dist/operator/operator-trigger-loop.d.ts +27 -0
  194. package/dist/operator/operator-trigger-loop.d.ts.map +1 -1
  195. package/dist/operator/operator-trigger-loop.js +72 -12
  196. package/dist/operator/operator-trigger-loop.js.map +1 -1
  197. package/dist/operator/report-carry.d.ts +29 -0
  198. package/dist/operator/report-carry.d.ts.map +1 -0
  199. package/dist/operator/report-carry.js +81 -0
  200. package/dist/operator/report-carry.js.map +1 -0
  201. package/dist/operator/report-run.d.ts +4 -4
  202. package/dist/operator/shadow-capture.d.ts +20 -0
  203. package/dist/operator/shadow-capture.d.ts.map +1 -0
  204. package/dist/operator/shadow-capture.js +34 -0
  205. package/dist/operator/shadow-capture.js.map +1 -0
  206. package/dist/operator/situation-report.d.ts +9 -0
  207. package/dist/operator/situation-report.d.ts.map +1 -1
  208. package/dist/operator/situation-report.js +56 -26
  209. package/dist/operator/situation-report.js.map +1 -1
  210. package/dist/operator/task-ledger.d.ts +90 -2
  211. package/dist/operator/task-ledger.d.ts.map +1 -1
  212. package/dist/operator/task-ledger.js +359 -23
  213. package/dist/operator/task-ledger.js.map +1 -1
  214. package/dist/operator/trigger-author.d.ts +35 -1
  215. package/dist/operator/trigger-author.d.ts.map +1 -1
  216. package/dist/operator/trigger-author.js +73 -10
  217. package/dist/operator/trigger-author.js.map +1 -1
  218. package/dist/operator/worker-run.d.ts +89 -0
  219. package/dist/operator/worker-run.d.ts.map +1 -0
  220. package/dist/operator/worker-run.js +127 -0
  221. package/dist/operator/worker-run.js.map +1 -0
  222. package/dist/operator/workorder-consumer.d.ts +121 -0
  223. package/dist/operator/workorder-consumer.d.ts.map +1 -0
  224. package/dist/operator/workorder-consumer.js +253 -0
  225. package/dist/operator/workorder-consumer.js.map +1 -0
  226. package/dist/operator/workorder-hooks.d.ts +30 -0
  227. package/dist/operator/workorder-hooks.d.ts.map +1 -0
  228. package/dist/operator/workorder-hooks.js +70 -0
  229. package/dist/operator/workorder-hooks.js.map +1 -0
  230. package/dist/operator/workorder-publishers.d.ts +68 -0
  231. package/dist/operator/workorder-publishers.d.ts.map +1 -0
  232. package/dist/operator/workorder-publishers.js +150 -0
  233. package/dist/operator/workorder-publishers.js.map +1 -0
  234. package/dist/security/security-monitor.d.ts +7 -0
  235. package/dist/security/security-monitor.d.ts.map +1 -1
  236. package/dist/security/security-monitor.js +17 -0
  237. package/dist/security/security-monitor.js.map +1 -1
  238. package/dist/setup/setup-prompt.d.ts +1 -1
  239. package/dist/setup/setup-prompt.d.ts.map +1 -1
  240. package/dist/setup/setup-prompt.js +4 -5
  241. package/dist/setup/setup-prompt.js.map +1 -1
  242. package/dist/utils/untrusted-content.d.ts +13 -0
  243. package/dist/utils/untrusted-content.d.ts.map +1 -1
  244. package/dist/utils/untrusted-content.js +43 -0
  245. package/dist/utils/untrusted-content.js.map +1 -1
  246. package/package.json +2 -2
  247. package/public/viewer/js/modules/agents.js +13 -9
  248. package/public/viewer/js/modules/settings.js +15 -10
  249. package/public/viewer/src/modules/agents.ts +12 -10
  250. package/public/viewer/src/modules/settings.ts +17 -12
  251. package/public/viewer/src/utils/api.ts +2 -2
  252. package/templates/AGENTS.codex.md +2 -23
  253. package/templates/personas/conductor.md +1 -1
  254. package/dist/agent/codex-mcp-process.d.ts +0 -105
  255. package/dist/agent/codex-mcp-process.d.ts.map +0 -1
  256. package/dist/agent/codex-mcp-process.js +0 -748
  257. package/dist/agent/codex-mcp-process.js.map +0 -1
@@ -18,10 +18,16 @@ exports.authorTriggers = authorTriggers;
18
18
  exports.buildAuthorPrompt = buildAuthorPrompt;
19
19
  exports.parseTriggerSpecs = parseTriggerSpecs;
20
20
  exports.validateTriggerSpec = validateTriggerSpec;
21
+ exports.createAskAgentCLI = createAskAgentCLI;
22
+ exports.createTriggerAgentRuntime = createTriggerAgentRuntime;
21
23
  const node_crypto_1 = require("node:crypto");
22
24
  const node_child_process_1 = require("node:child_process");
23
25
  const node_util_1 = require("node:util");
26
+ const runtime_process_js_1 = require("../multi-agent/runtime-process.js");
24
27
  const execFileAsync = (0, node_util_1.promisify)(node_child_process_1.execFile);
28
+ const TRIGGER_CODEX_SYSTEM_PROMPT = 'Return only the requested JSON value, with no prose or code fences.';
29
+ const TRIGGER_AUTHOR_SESSION_KEY = 'operator:trigger-author';
30
+ const TRIGGER_REVIEW_SESSION_KEY = 'operator:trigger-review';
25
31
  async function authorTriggers(events, registry, askAgent, opts = {}) {
26
32
  const existing = registry.listActive();
27
33
  const prompt = buildAuthorPrompt(events, existing);
@@ -152,17 +158,74 @@ function validateTriggerSpec(spec) {
152
158
  requiredEvidence: spec.requiredEvidence,
153
159
  };
154
160
  }
155
- /** Real agent: the local claude CLI (CLI-over-API). Used by the LLM eval, not unit tests. */
156
- const askAgentCLI = async (prompt) => {
157
- const { stdout } = await execFileAsync('claude', ['-p', prompt, '--output-format', 'json'], {
158
- maxBuffer: 16 * 1024 * 1024,
161
+ /** Build the legacy bare-Claude JSON runner while allowing command injection in tests. */
162
+ function createAskAgentCLI(execute = executeClaudeCLI) {
163
+ return async (prompt) => {
164
+ const { stdout } = await execute('claude', ['-p', prompt, '--output-format', 'json'], {
165
+ maxBuffer: 16 * 1024 * 1024,
166
+ });
167
+ const parsed = JSON.parse(stdout);
168
+ if (parsed.type === 'result' && typeof parsed.result === 'string')
169
+ return parsed.result;
170
+ throw new Error('claude CLI did not return a text result');
171
+ };
172
+ }
173
+ /** Real agent: the local claude CLI (CLI-over-API). Preserved for eval compatibility. */
174
+ exports.askAgentCLI = createAskAgentCLI();
175
+ /**
176
+ * Provider boundary for trigger authoring and review.
177
+ *
178
+ * Claude keeps the historical bare CLI path. Codex shares one app-server
179
+ * connection, but every structured task starts a fresh, isolated, read-only
180
+ * session and advertises no host tools.
181
+ */
182
+ function createTriggerAgentRuntime(backend, options = {}, dependencies = {}) {
183
+ if (backend === 'claude') {
184
+ const askClaude = dependencies.askClaude ?? exports.askAgentCLI;
185
+ return {
186
+ askAuthor: askClaude,
187
+ askReview: askClaude,
188
+ stop: async () => undefined,
189
+ };
190
+ }
191
+ const createCodexRuntime = dependencies.createCodexRuntime ??
192
+ ((runtimeOptions) => new runtime_process_js_1.CodexRuntimeProcess(runtimeOptions));
193
+ const runner = createCodexRuntime({
194
+ defaultSessionKey: TRIGGER_AUTHOR_SESSION_KEY,
195
+ model: options.model,
196
+ systemPrompt: TRIGGER_CODEX_SYSTEM_PROMPT,
197
+ cwd: options.cwd,
198
+ sandbox: 'read-only',
199
+ requestTimeout: options.requestTimeout,
200
+ command: options.command,
159
201
  });
160
- const parsed = JSON.parse(stdout);
161
- if (parsed.type === 'result' && typeof parsed.result === 'string')
162
- return parsed.result;
163
- throw new Error('claude CLI did not return a text result');
164
- };
165
- exports.askAgentCLI = askAgentCLI;
202
+ const askInSession = (sessionKey) => async (prompt) => {
203
+ const result = await runner.prompt(prompt, undefined, {
204
+ sessionKey,
205
+ resumeSession: false,
206
+ systemPrompt: TRIGGER_CODEX_SYSTEM_PROMPT,
207
+ });
208
+ if (typeof result.response !== 'string') {
209
+ throw new Error('Codex trigger agent did not return a text result');
210
+ }
211
+ return result.response;
212
+ };
213
+ let stopPromise;
214
+ return {
215
+ askAuthor: askInSession(TRIGGER_AUTHOR_SESSION_KEY),
216
+ askReview: askInSession(TRIGGER_REVIEW_SESSION_KEY),
217
+ stop: () => {
218
+ stopPromise ??= Promise.resolve().then(async () => {
219
+ await runner.stop();
220
+ });
221
+ return stopPromise;
222
+ },
223
+ };
224
+ }
225
+ async function executeClaudeCLI(file, args, options) {
226
+ const { stdout } = await execFileAsync(file, args, options);
227
+ return { stdout: String(stdout) };
228
+ }
166
229
  // ---- helpers ----
167
230
  function isObject(value) {
168
231
  return typeof value === 'object' && value !== null && !Array.isArray(value);
@@ -1 +1 @@
1
- {"version":3,"file":"trigger-author.js","sourceRoot":"","sources":["../../src/operator/trigger-author.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"trigger-author.js","sourceRoot":"","sources":["../../src/operator/trigger-author.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * workerRun - the operator's worker primitive (plan: owner-console v6 S0-T1).
3
+ *
4
+ * A worker is NOT a standing agent identity and NOT a delegate/native-Task
5
+ * subagent: it is a briefed, FRESH-session lane run - the same substrate the
6
+ * report lane already uses (LaneManager serialization, loud failure, result
7
+ * returned to the caller, gateway calls audited).
8
+ *
9
+ * CALLER CONTRACT (deadlock seal):
10
+ * - Callers must be HOST CODE running OUTSIDE any lane (scheduler ticks,
11
+ * work-order consumers, forwarder hooks).
12
+ * - NEVER call workerRun from inside an active lane run (an LLM run's tool
13
+ * handler, a report run, another worker): the parent holds its global lane
14
+ * slot for its whole duration, so a nested awaited lane run can queue
15
+ * behind its own parent forever.
16
+ *
17
+ * Concurrency: same-kind runs serialize on the `operator:worker:<kind>`
18
+ * session lane; ALL operator work (reports + workers) serializes on the
19
+ * 'operator' global lane, which is separate from chat 'main' so long worker
20
+ * runs never block owner replies.
21
+ */
22
+ import type { ContentBlock } from '../agent/types.js';
23
+ import type { BackendType } from '../agent/model-runner.js';
24
+ /** Identity fields workerRun owns - never overridable by callers (plan E7/G3). */
25
+ export interface WorkerIdentityOptions {
26
+ sessionKey: string;
27
+ source: string;
28
+ channelId: string;
29
+ freshSession: boolean;
30
+ }
31
+ export type WorkerRunnerOptions = WorkerIdentityOptions & Record<string, unknown>;
32
+ /** Minimal surface of AgentLoop.runWithContent that workerRun needs (DI seam). */
33
+ export interface WorkerRunner {
34
+ runWithContent(content: ContentBlock[], options: WorkerRunnerOptions): Promise<{
35
+ response: string;
36
+ }>;
37
+ }
38
+ export interface WorkerRunInput {
39
+ /** Worker kind (kebab-case, e.g. 'board', 'wiki', 'memory-curation'). */
40
+ kind: string;
41
+ /** Procedural brief (skill text) injected ahead of the work order. */
42
+ brief: string;
43
+ /** The work order payload the worker acts on. */
44
+ input: string;
45
+ /**
46
+ * Extra run options (e.g. the Stage-2 shadow capture-publisher override).
47
+ * Applied BEFORE the identity fields - identity always wins (plan E7/G3:
48
+ * an override must never move a worker onto another lane or reset another
49
+ * lane's fresh-session pool).
50
+ */
51
+ runOptions?: Record<string, unknown>;
52
+ }
53
+ /** Env override for the worker-run per-request CLI timeout, in whole seconds. */
54
+ export declare const WORKER_TIMEOUT_ENV = "MAMA_WORKER_TIMEOUT_SECONDS";
55
+ /**
56
+ * Default worker request timeout: 600s. Worker gather runs (board/wiki briefs)
57
+ * are long single model turns that overrun the 300s chat request bound - live
58
+ * shadow evidence killed 8 of 31 orders mid-run at 300s ("CLI error: Request
59
+ * timeout"). 600s is the plan's original per-kind number, un-dropped by that
60
+ * evidence.
61
+ */
62
+ export declare const DEFAULT_WORKER_TIMEOUT_SECONDS = 600;
63
+ /**
64
+ * Resolve the worker-run per-request CLI timeout in ms. Unset/empty -> the
65
+ * 600s default; any other value MUST be a positive integer number of seconds.
66
+ * A malformed value throws (no silent fallback: a typo must not quietly revert
67
+ * workers to the 300s bound this raise exists to lift). Mirrors the
68
+ * MAMA_STAGE2_WORKORDERS tri-state precedent (workorder-publishers.ts).
69
+ */
70
+ export declare function resolveWorkerRequestTimeoutMs(env?: NodeJS.ProcessEnv): number;
71
+ /**
72
+ * Worker-specific system prompt (shadow-gate finding §8.2): the spawn-default
73
+ * persona prompt carries code-act sandbox instructions, so worker tool calls
74
+ * went through POST /api/code-act - a server-side surface the per-run
75
+ * execution-context seam (envelope, capture override) cannot reach. A custom
76
+ * systemPrompt REPLACES the persona layers entirely (agent-loop.ts:484-486),
77
+ * so Claude workers advertise only the text-gateway syntax while Codex workers
78
+ * use the injected native host tools. Both routes reach the same in-process
79
+ * gateway executor where the per-run seam works.
80
+ */
81
+ export declare function buildWorkerSystemPrompt(gatewayToolsPrompt: string, backend?: BackendType): string;
82
+ export declare function buildWorkerSessionKey(kind: string): string;
83
+ /**
84
+ * Run a briefed worker on its own operator lane and return its output.
85
+ * Throws loudly on invalid input, runner failure, or an empty response -
86
+ * a worker never ends silently.
87
+ */
88
+ export declare function workerRun(runner: WorkerRunner, { kind, brief, input, runOptions }: WorkerRunInput): Promise<string>;
89
+ //# sourceMappingURL=worker-run.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-run.d.ts","sourceRoot":"","sources":["../../src/operator/worker-run.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D,kFAAkF;AAClF,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,MAAM,mBAAmB,GAAG,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAElF,kFAAkF;AAClF,MAAM,WAAW,YAAY;IAC3B,cAAc,CACZ,OAAO,EAAE,YAAY,EAAE,EACvB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,cAAc;IAC7B,yEAAyE;IACzE,IAAI,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAID,iFAAiF;AACjF,eAAO,MAAM,kBAAkB,gCAAgC,CAAC;AAEhE;;;;;;GAMG;AACH,eAAO,MAAM,8BAA8B,MAAM,CAAC;AAElD;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAY1F;AAED;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CACrC,kBAAkB,EAAE,MAAM,EAC1B,OAAO,GAAE,WAAsB,GAC9B,MAAM,CAiBR;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED;;;;GAIG;AACH,wBAAsB,SAAS,CAC7B,MAAM,EAAE,YAAY,EACpB,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,cAAc,GACjD,OAAO,CAAC,MAAM,CAAC,CAoCjB"}
@@ -0,0 +1,127 @@
1
+ "use strict";
2
+ /**
3
+ * workerRun - the operator's worker primitive (plan: owner-console v6 S0-T1).
4
+ *
5
+ * A worker is NOT a standing agent identity and NOT a delegate/native-Task
6
+ * subagent: it is a briefed, FRESH-session lane run - the same substrate the
7
+ * report lane already uses (LaneManager serialization, loud failure, result
8
+ * returned to the caller, gateway calls audited).
9
+ *
10
+ * CALLER CONTRACT (deadlock seal):
11
+ * - Callers must be HOST CODE running OUTSIDE any lane (scheduler ticks,
12
+ * work-order consumers, forwarder hooks).
13
+ * - NEVER call workerRun from inside an active lane run (an LLM run's tool
14
+ * handler, a report run, another worker): the parent holds its global lane
15
+ * slot for its whole duration, so a nested awaited lane run can queue
16
+ * behind its own parent forever.
17
+ *
18
+ * Concurrency: same-kind runs serialize on the `operator:worker:<kind>`
19
+ * session lane; ALL operator work (reports + workers) serializes on the
20
+ * 'operator' global lane, which is separate from chat 'main' so long worker
21
+ * runs never block owner replies.
22
+ */
23
+ Object.defineProperty(exports, "__esModule", { value: true });
24
+ exports.DEFAULT_WORKER_TIMEOUT_SECONDS = exports.WORKER_TIMEOUT_ENV = void 0;
25
+ exports.resolveWorkerRequestTimeoutMs = resolveWorkerRequestTimeoutMs;
26
+ exports.buildWorkerSystemPrompt = buildWorkerSystemPrompt;
27
+ exports.buildWorkerSessionKey = buildWorkerSessionKey;
28
+ exports.workerRun = workerRun;
29
+ const KIND_PATTERN = /^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/;
30
+ /** Env override for the worker-run per-request CLI timeout, in whole seconds. */
31
+ exports.WORKER_TIMEOUT_ENV = 'MAMA_WORKER_TIMEOUT_SECONDS';
32
+ /**
33
+ * Default worker request timeout: 600s. Worker gather runs (board/wiki briefs)
34
+ * are long single model turns that overrun the 300s chat request bound - live
35
+ * shadow evidence killed 8 of 31 orders mid-run at 300s ("CLI error: Request
36
+ * timeout"). 600s is the plan's original per-kind number, un-dropped by that
37
+ * evidence.
38
+ */
39
+ exports.DEFAULT_WORKER_TIMEOUT_SECONDS = 600;
40
+ /**
41
+ * Resolve the worker-run per-request CLI timeout in ms. Unset/empty -> the
42
+ * 600s default; any other value MUST be a positive integer number of seconds.
43
+ * A malformed value throws (no silent fallback: a typo must not quietly revert
44
+ * workers to the 300s bound this raise exists to lift). Mirrors the
45
+ * MAMA_STAGE2_WORKORDERS tri-state precedent (workorder-publishers.ts).
46
+ */
47
+ function resolveWorkerRequestTimeoutMs(env = process.env) {
48
+ const raw = (env[exports.WORKER_TIMEOUT_ENV] ?? '').trim();
49
+ if (raw === '') {
50
+ return exports.DEFAULT_WORKER_TIMEOUT_SECONDS * 1000;
51
+ }
52
+ const seconds = Number(raw);
53
+ if (!Number.isInteger(seconds) || seconds <= 0) {
54
+ throw new Error(`${exports.WORKER_TIMEOUT_ENV} must be a positive integer number of seconds (or unset), got: '${raw}'`);
55
+ }
56
+ return seconds * 1000;
57
+ }
58
+ /**
59
+ * Worker-specific system prompt (shadow-gate finding §8.2): the spawn-default
60
+ * persona prompt carries code-act sandbox instructions, so worker tool calls
61
+ * went through POST /api/code-act - a server-side surface the per-run
62
+ * execution-context seam (envelope, capture override) cannot reach. A custom
63
+ * systemPrompt REPLACES the persona layers entirely (agent-loop.ts:484-486),
64
+ * so Claude workers advertise only the text-gateway syntax while Codex workers
65
+ * use the injected native host tools. Both routes reach the same in-process
66
+ * gateway executor where the per-run seam works.
67
+ */
68
+ function buildWorkerSystemPrompt(gatewayToolsPrompt, backend = 'claude') {
69
+ const toolInstructions = backend === 'codex'
70
+ ? [
71
+ 'Follow the brief in the user message. Use the injected native host tools directly.',
72
+ 'Call them through the model tool interface; never emit Markdown or JavaScript substitutes.',
73
+ ]
74
+ : [
75
+ 'Follow the brief in the user message. Call tools ONLY via the tool_call JSON',
76
+ 'blocks documented below - no other execution mechanism exists in this session.',
77
+ ];
78
+ return [
79
+ 'You are a MAMA OS system worker. You execute exactly ONE work order and stop.',
80
+ ...toolInstructions,
81
+ 'Do not ask questions; finish with the exact final line your brief specifies.',
82
+ ...(backend === 'claude' ? ['', gatewayToolsPrompt.trim()] : []),
83
+ ].join('\n');
84
+ }
85
+ function buildWorkerSessionKey(kind) {
86
+ return `operator:worker:${kind}`;
87
+ }
88
+ /**
89
+ * Run a briefed worker on its own operator lane and return its output.
90
+ * Throws loudly on invalid input, runner failure, or an empty response -
91
+ * a worker never ends silently.
92
+ */
93
+ async function workerRun(runner, { kind, brief, input, runOptions }) {
94
+ if (!KIND_PATTERN.test(kind)) {
95
+ throw new Error(`[worker-run] invalid worker kind "${kind}" (expected kebab-case)`);
96
+ }
97
+ if (!brief.trim()) {
98
+ throw new Error(`[worker-run] empty brief for worker kind "${kind}"`);
99
+ }
100
+ if (!input.trim()) {
101
+ throw new Error(`[worker-run] empty input for worker kind "${kind}"`);
102
+ }
103
+ const prompt = `${brief.trim()}\n\n---\n\nWork order:\n${input.trim()}`;
104
+ const result = await runner.runWithContent([{ type: 'text', text: prompt }], {
105
+ // Raised per-run CLI request timeout for long gather runs. Placed BEFORE
106
+ // runOptions so an explicit caller override still wins; identity fields
107
+ // below always win (plan E7/G3). Chat runs never route through workerRun,
108
+ // so their request bound is untouched.
109
+ requestTimeoutMs: resolveWorkerRequestTimeoutMs(),
110
+ // runOptions: identity fields below always win (plan E7/G3).
111
+ ...(runOptions ?? {}),
112
+ sessionKey: buildWorkerSessionKey(kind),
113
+ // freshSession pool reset keys on source+channelId (agent-loop.ts) -
114
+ // both MUST be explicit per call or another lane's pool entry gets reset.
115
+ source: 'operator',
116
+ channelId: `worker:${kind}`,
117
+ // Workers are stateless: continuity lives in the brief + artifacts,
118
+ // never in session accumulation (owner principle: session = cache).
119
+ freshSession: true,
120
+ });
121
+ const response = result.response?.trim();
122
+ if (!response) {
123
+ throw new Error(`[worker-run] worker "${kind}" returned an empty response`);
124
+ }
125
+ return response;
126
+ }
127
+ //# sourceMappingURL=worker-run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-run.js","sourceRoot":"","sources":["../../src/operator/worker-run.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,121 @@
1
+ /**
2
+ * WorkOrderConsumer - the single host-code consumer of system workorders
3
+ * (Stage 2, plan S2-T3).
4
+ *
5
+ * A dedicated interval timer (60s default) claims pending workorders from the
6
+ * TaskLedger and runs each through workerRun on the operator lane. It runs
7
+ * UNCONDITIONALLY of MAMA_TRIGGER_LOOP (the publishers are unconditional, so
8
+ * coupling consumption to an opt-in loop would strand every workorder - plan
9
+ * A1 BLOCKER), gated only by MAMA_STAGE2_WORKORDERS=shadow|on.
10
+ *
11
+ * Serial consumption: one claim at a time, awaited to completion, with a tick
12
+ * re-entrancy guard (a 260s board run spans 4+ ticks - overlapping ticks skip,
13
+ * plan G4). Blocking bound = the runner's per-request timeout x maxTurns; no
14
+ * consumer-level watchdog (plan N2).
15
+ *
16
+ * Failure policy (plan G5/M4): failWorkOrder marks the row, then per-kind
17
+ * maxAttempts decides requeue (fresh row, attempts+1, same occurrence key)
18
+ * vs retries-exhausted (owner alarm, deduped per kind). Boot recovery routes
19
+ * stale in_progress claims (crash artifacts) through the SAME policy, with a
20
+ * separate stale-claim alarm.
21
+ *
22
+ * Completion hooks (plan E3/E4): per-kind before/after seams re-home the
23
+ * post-run host effects the legacy closures owned (board bracket
24
+ * verification, promotion event re-emission, wiki noUpdate reading). Hook
25
+ * errors are LOUD but never fail a completed run (observe, never block).
26
+ */
27
+ import type { WorkOrderKind, WorkOrderRecord, EnqueueWorkOrderInput } from './task-ledger.js';
28
+ import { type WorkerRunner } from './worker-run.js';
29
+ export interface WorkOrderLedgerPort {
30
+ claimNextWorkOrder(): WorkOrderRecord | null;
31
+ completeWorkOrder(id: number): void;
32
+ failWorkOrder(id: number, reason: string): void;
33
+ /** Atomic fail+replacement (retry) - one transaction (PR bot round). */
34
+ requeueWorkOrder(wo: WorkOrderRecord, reason: string): WorkOrderRecord;
35
+ enqueueWorkOrder(order: EnqueueWorkOrderInput): WorkOrderRecord;
36
+ listStaleClaims(): WorkOrderRecord[];
37
+ countPendingWorkOrders(): number;
38
+ }
39
+ /** Active owner alarm channel (telegram via the ops sink; may be unconfigured). */
40
+ export interface OpsAlarmSink {
41
+ configured: boolean;
42
+ send(line: string): Promise<void>;
43
+ }
44
+ export interface WorkOrderHook {
45
+ /** Bracket 'before' state (e.g. verifier snapshot at claim time). */
46
+ before?: (wo: WorkOrderRecord) => unknown;
47
+ /** Post-run effects (verification, event re-emission, outcome reading). */
48
+ after?: (wo: WorkOrderRecord, response: string, beforeState: unknown) => void;
49
+ }
50
+ export interface WorkOrderConsumerEvent {
51
+ type: 'complete' | 'failed' | 'requeued' | 'exhausted' | 'stale-claim';
52
+ workKind: WorkOrderKind;
53
+ workOrderId: number;
54
+ reason?: string;
55
+ }
56
+ export interface WorkOrderConsumerDeps {
57
+ ledger: WorkOrderLedgerPort;
58
+ runner: WorkerRunner;
59
+ /** null = brief missing -> the workorder fails loudly (never a silent skip). */
60
+ loadBrief: (kind: WorkOrderKind) => string | null;
61
+ /** Passive owner surface (AgentNoticeQueue via MessageRouter accessor). */
62
+ noticeOwner: (summary: string) => void;
63
+ opsAlarm: OpsAlarmSink;
64
+ /** Telemetry seam (agent_activity / eventBus) - optional. */
65
+ onEvent?: (event: WorkOrderConsumerEvent) => void;
66
+ /**
67
+ * Per-order extra run options (Stage-2: per-run envelope issuance + the
68
+ * shadow capture-publisher override). May be async - envelope issuance
69
+ * persists to the DB. A THROW/REJECT here fails the order loudly - at
70
+ * shadow, a missing capture publisher must never fall through to a live
71
+ * publish (plan T4 AC), and a run without an envelope would have every
72
+ * model_tool call denied 'envelope_missing'.
73
+ */
74
+ runOptionsFor?: (wo: WorkOrderRecord) => Record<string, unknown> | undefined | Promise<Record<string, unknown> | undefined>;
75
+ log?: (line: string) => void;
76
+ tickMs?: number;
77
+ now?: () => number;
78
+ }
79
+ /** Per-kind retry budget: attempts start at 1; board/promotion self-heal on
80
+ * the next publish cycle, wiki events do not re-fire so it retries once. */
81
+ export declare const WORKORDER_MAX_ATTEMPTS: Record<WorkOrderKind, number>;
82
+ export declare class WorkOrderConsumer {
83
+ private readonly deps;
84
+ private readonly hooks;
85
+ private readonly lastAlarmAt;
86
+ private timer;
87
+ private consuming;
88
+ private activeTick;
89
+ constructor(deps: WorkOrderConsumerDeps);
90
+ registerHook(kind: WorkOrderKind, hook: WorkOrderHook): void;
91
+ /**
92
+ * Boot recovery (plan C4/M4): in_progress system rows are crash artifacts
93
+ * (single serial consumer). Each routes through the SAME failure policy
94
+ * (a crashed wiki batch requeues once; board/promotion do not), plus a
95
+ * separate stale-claim alarm.
96
+ */
97
+ bootRecover(): void;
98
+ start(): void;
99
+ isStarted(): boolean;
100
+ /** Graceful: awaits an in-flight tick so shutdown does not race the
101
+ * operator-DB close into "database is not open" noise (review m4). */
102
+ stop(): Promise<void>;
103
+ /**
104
+ * Drain pending workorders serially: claim -> await -> next claim. Returns
105
+ * 'skipped' when a previous tick is still consuming (re-entrancy guard,
106
+ * plan G4) - long runs span multiple tick firings.
107
+ */
108
+ tick(): Promise<'drained' | 'skipped'>;
109
+ private runOne;
110
+ /**
111
+ * Failure policy layer (plan G5): mark failed, then requeue (attempts+1,
112
+ * fresh row, same occurrence key - the terminal row freed it) or declare
113
+ * retries-exhausted with an owner alarm.
114
+ */
115
+ private handleFailure;
116
+ /** Owner alarm: passive notice + active telegram, deduped per kind (6h). */
117
+ private alarm;
118
+ private emitEvent;
119
+ private log;
120
+ }
121
+ //# sourceMappingURL=workorder-consumer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workorder-consumer.d.ts","sourceRoot":"","sources":["../../src/operator/workorder-consumer.ts"],"names":[],"mappings":"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"}