@mono-agent/agent-app 0.3.0 → 0.4.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.
Files changed (186) hide show
  1. package/README.md +24 -10
  2. package/dist/adapter-send-tools-main.d.ts +3 -0
  3. package/dist/adapter-send-tools-main.d.ts.map +1 -0
  4. package/dist/adapter-send-tools-main.js +20 -0
  5. package/dist/adapter-send-tools-main.js.map +1 -0
  6. package/dist/adapter-send-tools.d.ts +125 -0
  7. package/dist/adapter-send-tools.d.ts.map +1 -0
  8. package/dist/adapter-send-tools.js +629 -0
  9. package/dist/adapter-send-tools.js.map +1 -0
  10. package/dist/app-config.d.ts +86 -26
  11. package/dist/app-config.d.ts.map +1 -1
  12. package/dist/app-config.js +284 -90
  13. package/dist/app-config.js.map +1 -1
  14. package/dist/app.d.ts +51 -20
  15. package/dist/app.d.ts.map +1 -1
  16. package/dist/app.js +889 -119
  17. package/dist/app.js.map +1 -1
  18. package/dist/artifact-retention.d.ts +32 -0
  19. package/dist/artifact-retention.d.ts.map +1 -0
  20. package/dist/artifact-retention.js +111 -0
  21. package/dist/artifact-retention.js.map +1 -0
  22. package/dist/audit-runs.d.ts +12 -0
  23. package/dist/audit-runs.d.ts.map +1 -0
  24. package/dist/audit-runs.js +68 -0
  25. package/dist/audit-runs.js.map +1 -0
  26. package/dist/backfill.d.ts +75 -0
  27. package/dist/backfill.d.ts.map +1 -0
  28. package/dist/backfill.js +350 -0
  29. package/dist/backfill.js.map +1 -0
  30. package/dist/background.d.ts +8 -5
  31. package/dist/background.d.ts.map +1 -1
  32. package/dist/background.js +279 -53
  33. package/dist/background.js.map +1 -1
  34. package/dist/broadcast-recorder.d.ts +27 -0
  35. package/dist/broadcast-recorder.d.ts.map +1 -0
  36. package/dist/broadcast-recorder.js +82 -0
  37. package/dist/broadcast-recorder.js.map +1 -0
  38. package/dist/channel-config-view.d.ts +28 -0
  39. package/dist/channel-config-view.d.ts.map +1 -0
  40. package/dist/channel-config-view.js +79 -0
  41. package/dist/channel-config-view.js.map +1 -0
  42. package/dist/channel-gate.d.ts +22 -0
  43. package/dist/channel-gate.d.ts.map +1 -0
  44. package/dist/channel-gate.js +35 -0
  45. package/dist/channel-gate.js.map +1 -0
  46. package/dist/channel-plugins.d.ts +39 -0
  47. package/dist/channel-plugins.d.ts.map +1 -0
  48. package/dist/channel-plugins.js +346 -0
  49. package/dist/channel-plugins.js.map +1 -0
  50. package/dist/channels.d.ts +62 -66
  51. package/dist/channels.d.ts.map +1 -1
  52. package/dist/channels.js +850 -120
  53. package/dist/channels.js.map +1 -1
  54. package/dist/cli.d.ts +103 -4
  55. package/dist/cli.d.ts.map +1 -1
  56. package/dist/cli.js +984 -112
  57. package/dist/cli.js.map +1 -1
  58. package/dist/config-reference.d.ts +24 -0
  59. package/dist/config-reference.d.ts.map +1 -0
  60. package/dist/config-reference.js +580 -0
  61. package/dist/config-reference.js.map +1 -0
  62. package/dist/configured-agent.d.ts +104 -0
  63. package/dist/configured-agent.d.ts.map +1 -0
  64. package/dist/configured-agent.js +578 -0
  65. package/dist/configured-agent.js.map +1 -0
  66. package/dist/consumer-contract.d.ts +36 -0
  67. package/dist/consumer-contract.d.ts.map +1 -0
  68. package/dist/consumer-contract.js +290 -0
  69. package/dist/consumer-contract.js.map +1 -0
  70. package/dist/doctor.d.ts +17 -0
  71. package/dist/doctor.d.ts.map +1 -1
  72. package/dist/doctor.js +392 -95
  73. package/dist/doctor.js.map +1 -1
  74. package/dist/index.d.ts +14 -6
  75. package/dist/index.d.ts.map +1 -1
  76. package/dist/index.js +7 -3
  77. package/dist/index.js.map +1 -1
  78. package/dist/init.d.ts +23 -7
  79. package/dist/init.d.ts.map +1 -1
  80. package/dist/init.js +91 -26
  81. package/dist/init.js.map +1 -1
  82. package/dist/install-skill.d.ts +1 -1
  83. package/dist/install-skill.js +2 -2
  84. package/dist/install-skill.js.map +1 -1
  85. package/dist/interaction-bridge.d.ts +72 -0
  86. package/dist/interaction-bridge.d.ts.map +1 -0
  87. package/dist/interaction-bridge.js +354 -0
  88. package/dist/interaction-bridge.js.map +1 -0
  89. package/dist/launchd.d.ts +0 -2
  90. package/dist/launchd.d.ts.map +1 -1
  91. package/dist/launchd.js +0 -2
  92. package/dist/launchd.js.map +1 -1
  93. package/dist/memory-command.d.ts +10 -0
  94. package/dist/memory-command.d.ts.map +1 -0
  95. package/dist/memory-command.js +649 -0
  96. package/dist/memory-command.js.map +1 -0
  97. package/dist/memory-recall-main.d.ts +3 -0
  98. package/dist/memory-recall-main.d.ts.map +1 -0
  99. package/dist/memory-recall-main.js +30 -0
  100. package/dist/memory-recall-main.js.map +1 -0
  101. package/dist/memory-recall.d.ts +147 -0
  102. package/dist/memory-recall.d.ts.map +1 -0
  103. package/dist/memory-recall.js +345 -0
  104. package/dist/memory-recall.js.map +1 -0
  105. package/dist/memory-rituals.d.ts +8 -11
  106. package/dist/memory-rituals.d.ts.map +1 -1
  107. package/dist/memory-rituals.js +26 -25
  108. package/dist/memory-rituals.js.map +1 -1
  109. package/dist/metrics.d.ts +13 -0
  110. package/dist/metrics.d.ts.map +1 -0
  111. package/dist/metrics.js +105 -0
  112. package/dist/metrics.js.map +1 -0
  113. package/dist/notify-destinations.d.ts +23 -0
  114. package/dist/notify-destinations.d.ts.map +1 -0
  115. package/dist/notify-destinations.js +79 -0
  116. package/dist/notify-destinations.js.map +1 -0
  117. package/dist/posted-message-index.d.ts +61 -0
  118. package/dist/posted-message-index.d.ts.map +1 -0
  119. package/dist/posted-message-index.js +178 -0
  120. package/dist/posted-message-index.js.map +1 -0
  121. package/dist/proactive-notify.d.ts +32 -0
  122. package/dist/proactive-notify.d.ts.map +1 -0
  123. package/dist/proactive-notify.js +62 -0
  124. package/dist/proactive-notify.js.map +1 -0
  125. package/dist/recipes/base.d.ts +15 -0
  126. package/dist/recipes/base.d.ts.map +1 -0
  127. package/dist/recipes/base.js +51 -0
  128. package/dist/recipes/base.js.map +1 -0
  129. package/dist/recipes/catalog.d.ts +4 -0
  130. package/dist/recipes/catalog.d.ts.map +1 -0
  131. package/dist/recipes/catalog.js +509 -0
  132. package/dist/recipes/catalog.js.map +1 -0
  133. package/dist/recipes/index.d.ts +11 -0
  134. package/dist/recipes/index.d.ts.map +1 -0
  135. package/dist/recipes/index.js +14 -0
  136. package/dist/recipes/index.js.map +1 -0
  137. package/dist/recipes/types.d.ts +70 -0
  138. package/dist/recipes/types.d.ts.map +1 -0
  139. package/dist/recipes/types.js +15 -0
  140. package/dist/recipes/types.js.map +1 -0
  141. package/dist/request-model-override.d.ts +67 -0
  142. package/dist/request-model-override.d.ts.map +1 -0
  143. package/dist/request-model-override.js +96 -0
  144. package/dist/request-model-override.js.map +1 -0
  145. package/dist/runs-health.d.ts +22 -0
  146. package/dist/runs-health.d.ts.map +1 -0
  147. package/dist/runs-health.js +144 -0
  148. package/dist/runs-health.js.map +1 -0
  149. package/dist/seen-conversations.d.ts +22 -0
  150. package/dist/seen-conversations.d.ts.map +1 -0
  151. package/dist/seen-conversations.js +120 -0
  152. package/dist/seen-conversations.js.map +1 -0
  153. package/dist/sessions.d.ts +21 -0
  154. package/dist/sessions.d.ts.map +1 -0
  155. package/dist/sessions.js +45 -0
  156. package/dist/sessions.js.map +1 -0
  157. package/dist/setup.d.ts +29 -0
  158. package/dist/setup.d.ts.map +1 -0
  159. package/dist/setup.js +97 -0
  160. package/dist/setup.js.map +1 -0
  161. package/dist/trigger-overrides.d.ts +17 -0
  162. package/dist/trigger-overrides.d.ts.map +1 -0
  163. package/dist/trigger-overrides.js +30 -0
  164. package/dist/trigger-overrides.js.map +1 -0
  165. package/dist/tui-command.d.ts +56 -0
  166. package/dist/tui-command.d.ts.map +1 -0
  167. package/dist/tui-command.js +160 -0
  168. package/dist/tui-command.js.map +1 -0
  169. package/dist/ui.d.ts +54 -0
  170. package/dist/ui.d.ts.map +1 -0
  171. package/dist/ui.js +157 -0
  172. package/dist/ui.js.map +1 -0
  173. package/dist/web-command.d.ts +39 -0
  174. package/dist/web-command.d.ts.map +1 -0
  175. package/dist/web-command.js +151 -0
  176. package/dist/web-command.js.map +1 -0
  177. package/package.json +22 -17
  178. package/schema/mono-agent.config.schema.json +1686 -0
  179. package/skills/mono-agent-composer/SKILL.md +38 -12
  180. package/skills/mono-agent-composer/agents/openai.yaml +4 -0
  181. package/skills/mono-agent-composer/references/config-blueprint.md +84 -31
  182. package/skills/mono-agent-composer/references/discovery-questions.md +49 -36
  183. package/skills/mono-agent-composer/references/feature-coverage.md +26 -19
  184. package/skills/mono-agent-composer/references/package-map.md +20 -22
  185. package/skills/mono-agent-composer/references/playbooks.md +209 -0
  186. package/skills/mono-agent-composer/references/validation.md +14 -5
@@ -0,0 +1,578 @@
1
+ import { createAgentHarness, createAgentResponder, createInMemoryHistoryStore, createToolPolicy, loadToolPolicyFromJsonFileSync, } from "@mono-agent/agent-harness";
2
+ import { resolve as resolvePath } from "node:path";
3
+ import { resolveSupermemoryContainer } from "@mono-agent/config";
4
+ import { createCompositeRunRecorder, createJsonlRunRecorder } from "@mono-agent/observability";
5
+ import { createPhoenixRunExporter } from "@mono-agent/observability/otel";
6
+ import { createBroadcastRunRecorder } from "./broadcast-recorder.js";
7
+ import { assertExecutionModeCompatible, createMonoRuntime, createPiOAuthApiKeyResolver, defaultExecutionModeForModel, modelReferenceKey, parseMonoRuntimeModelReference, runtimeOptionsForLocalProvider, } from "@mono-agent/runtime-adapter";
8
+ /**
9
+ * Build a recorder for one run. The JSONL recorder is always built first and
10
+ * returned unchanged when no exporter is configured, so default recording stays
11
+ * byte-identical. When an exporter is present the JSONL recorder is wrapped so
12
+ * export is best-effort and additive — exporter failures only surface as
13
+ * warnings and never change the run outcome.
14
+ */
15
+ function composeRunRecorder(deps, args) {
16
+ const jsonl = createJsonlRunRecorder({
17
+ runId: args.runId,
18
+ conversationId: args.conversationId,
19
+ artifactDir: deps.artifactDir,
20
+ ...(args.runKind === "memory" ? { artifactKind: "memory" } : {}),
21
+ ...(args.isolated === undefined ? {} : { isolated: args.isolated }),
22
+ ...(args.userInput === undefined ? {} : { userInput: args.userInput }),
23
+ ...(args.systemPrompt === undefined ? {} : { systemPrompt: args.systemPrompt }),
24
+ ...(args.source === undefined ? {} : { source: args.source }),
25
+ ...(args.sourceDetail === undefined ? {} : { sourceDetail: args.sourceDetail }),
26
+ });
27
+ const exporterCfg = deps.exporters[0];
28
+ if (exporterCfg === undefined) {
29
+ return withBroadcast(jsonl, deps, args);
30
+ }
31
+ const exporter = (deps.exporterFactory ?? createPhoenixRunExporter)(exporterCfg);
32
+ const context = {
33
+ runId: args.runId,
34
+ conversationId: args.conversationId,
35
+ ...(deps.observabilityContext?.sourceId === undefined
36
+ ? {}
37
+ : { sourceId: deps.observabilityContext.sourceId }),
38
+ ...(deps.observabilityContext?.sourceLabel === undefined
39
+ ? {}
40
+ : { sourceLabel: deps.observabilityContext.sourceLabel }),
41
+ ...(deps.observabilityContext?.configPath === undefined
42
+ ? {}
43
+ : { configPath: deps.observabilityContext.configPath }),
44
+ artifactDir: deps.artifactDir,
45
+ includeSensitiveData: exporterCfg.includeSensitiveData ?? false,
46
+ ...(args.userInput === undefined ? {} : { userInput: args.userInput }),
47
+ ...(args.runKind === undefined ? {} : { runKind: args.runKind }),
48
+ ...(args.memoryOperation === undefined ? {} : { memoryOperation: args.memoryOperation }),
49
+ };
50
+ const composite = createCompositeRunRecorder({
51
+ recorder: jsonl,
52
+ exporter,
53
+ context,
54
+ timeoutMs: exporterCfg.timeoutMs ?? 5000,
55
+ ...(deps.exporterWarn === undefined ? {} : { onWarning: deps.exporterWarn }),
56
+ });
57
+ return withBroadcast(composite, deps, args);
58
+ }
59
+ /**
60
+ * Wrap the composed recorder so runs are ALSO published to the live bus when one
61
+ * is configured. Outermost by design: it observes the authoritative final summary
62
+ * the inner recorder returns. A no-op passthrough when no bus is present.
63
+ */
64
+ function withBroadcast(recorder, deps, args) {
65
+ if (deps.runEventSink === undefined) {
66
+ return recorder;
67
+ }
68
+ return createBroadcastRunRecorder(recorder, deps.runEventSink, {
69
+ runId: args.runId,
70
+ conversationId: args.conversationId,
71
+ sourceId: deps.observabilityContext?.sourceId ?? "",
72
+ ...(deps.observabilityContext?.sourceLabel === undefined
73
+ ? {}
74
+ : { sourceLabel: deps.observabilityContext.sourceLabel }),
75
+ ...(args.source === undefined ? {} : { source: args.source }),
76
+ ...(args.sourceDetail === undefined ? {} : { sourceDetail: args.sourceDetail }),
77
+ });
78
+ }
79
+ /** Collect the recorder-composition deps from the host config + harness options. */
80
+ function recorderCompositionDeps(config, options) {
81
+ return {
82
+ artifactDir: config.artifacts.dir,
83
+ exporters: config.observability?.exporters ?? [],
84
+ ...(options.observabilityContext === undefined
85
+ ? {}
86
+ : { observabilityContext: options.observabilityContext }),
87
+ ...(options.exporterWarn === undefined ? {} : { exporterWarn: options.exporterWarn }),
88
+ ...(options.exporterFactory === undefined ? {} : { exporterFactory: options.exporterFactory }),
89
+ ...(options.runEventSink === undefined ? {} : { runEventSink: options.runEventSink }),
90
+ };
91
+ }
92
+ export function createConfiguredAgentRuntime(input) {
93
+ const config = isRuntimeOptions(input) ? input.config : input;
94
+ const options = isRuntimeOptions(input) ? input : undefined;
95
+ return createMonoRuntime({
96
+ ...runtimeHostOptionsForConfig(config),
97
+ ...(options?.sandboxEngine === undefined ? {} : { sandboxEngine: options.sandboxEngine }),
98
+ ...(fallbackChainForConfig(config, options)),
99
+ });
100
+ }
101
+ /**
102
+ * When backup models are configured, runs go through the agent-runtime fallback
103
+ * router with the effective primary model first. Fallback entries use their
104
+ * default execution mode.
105
+ */
106
+ function fallbackChainForConfig(config, options) {
107
+ const fallbackModels = config.runtime.fallbackModels;
108
+ if (fallbackModels === undefined || fallbackModels.length === 0) {
109
+ return {};
110
+ }
111
+ const primaryModel = options?.model ?? config.runtime.model;
112
+ const primaryExecutionMode = options?.executionMode ?? config.runtime.executionMode;
113
+ // Drop any fallback equal to the primary so a per-trigger override that happens
114
+ // to match a configured backup is not retried against itself before advancing.
115
+ const primaryKey = modelReferenceKey(primaryModel);
116
+ return {
117
+ fallbackChain: [
118
+ { model: primaryModel, executionMode: primaryExecutionMode },
119
+ ...fallbackModels.filter((model) => modelReferenceKey(model) !== primaryKey).map((model) => ({ model })),
120
+ ],
121
+ };
122
+ }
123
+ let memoryBujoModule;
124
+ let memorySearchModule;
125
+ const loadMemoryBujoModule = async () => (memoryBujoModule ??= await import("@mono-agent/memory/bujo"));
126
+ const loadMemorySearchModule = async () => (memorySearchModule ??= await import("@mono-agent/memory/search"));
127
+ export async function createConfiguredAgentHarness(options) {
128
+ const config = options.config;
129
+ const model = options.model ?? config.runtime.model;
130
+ const executionMode = options.executionMode ?? config.runtime.executionMode;
131
+ const runtime = options.runtime ?? createConfiguredAgentRuntime({
132
+ config,
133
+ model,
134
+ executionMode,
135
+ ...(options.sandboxEngine === undefined ? {} : { sandboxEngine: options.sandboxEngine }),
136
+ });
137
+ // The memory LLM must NOT ride the channel `runtime`: that runtime carries the
138
+ // channel fallback chain whose primary is `config.runtime.model`, and the
139
+ // fallback router overrides each run's per-call `model` — so reusing it would
140
+ // execute memory capture on `config.runtime.model` instead of
141
+ // `config.memory.llm.model`. createConfiguredMemory builds the memory LLM its own
142
+ // fallback-free runtime when no `memoryRuntime` is injected.
143
+ const memory = options.memory ?? (await createConfiguredMemory(config, {}));
144
+ const runtimeOptions = mergeStaticRuntimeOptions(runtimeOptionsForLocalProvider(model, config.providers?.local), configRuntimeFlags(config), options.sandboxEngine === undefined ? undefined : { sandboxEngine: options.sandboxEngine }, options.runtimeOptions);
145
+ const sessionOptions = {
146
+ mode: config.runtime.session.mode,
147
+ idleTimeoutMs: config.runtime.session.idleTimeoutMs,
148
+ ...(config.runtime.session.isolateProactive === undefined
149
+ ? {}
150
+ : { isolateProactive: config.runtime.session.isolateProactive }),
151
+ ...(options.onSessionEvent === undefined ? {} : { onSessionEvent: options.onSessionEvent }),
152
+ };
153
+ return createAgentHarness({
154
+ identityPath: config.context.identityPath,
155
+ ...(config.context.soulPath === undefined ? {} : { soulPath: config.context.soulPath }),
156
+ ...(config.context.skillsRoot === undefined ? {} : { skillsRoot: config.context.skillsRoot }),
157
+ ...(config.context.skillMaxBytes === undefined ? {} : { skillMaxBytes: config.context.skillMaxBytes }),
158
+ ...(config.context.skillDisclosure === undefined ? {} : { skillDisclosure: config.context.skillDisclosure }),
159
+ selectedSkills: config.context.selectedSkills,
160
+ runtime,
161
+ model,
162
+ executionMode,
163
+ cwd: config.runtime.workspace,
164
+ ...(config.runtime.effort === undefined ? {} : { effort: config.runtime.effort }),
165
+ ...(config.runtime.maxTurns === undefined ? {} : { maxTurns: config.runtime.maxTurns }),
166
+ ...(config.providers?.piNative?.piSessionsRoot === undefined
167
+ ? {}
168
+ : { piSessionsRoot: config.providers.piNative.piSessionsRoot }),
169
+ session: sessionOptions,
170
+ ...(config.concurrency?.maxConcurrentRuns === undefined && config.concurrency?.maxPendingRuns === undefined
171
+ ? {}
172
+ : {
173
+ concurrency: {
174
+ ...(config.concurrency?.maxConcurrentRuns === undefined
175
+ ? {}
176
+ : { maxConcurrentRuns: config.concurrency.maxConcurrentRuns }),
177
+ ...(config.concurrency?.maxPendingRuns === undefined
178
+ ? {}
179
+ : { maxPendingRuns: config.concurrency.maxPendingRuns }),
180
+ },
181
+ }),
182
+ runtimeOptions,
183
+ ...(options.runtimeOptionsForRequest === undefined
184
+ ? {}
185
+ : { runtimeOptionsForRequest: options.runtimeOptionsForRequest }),
186
+ ...(options.runtimeForModel === undefined ? {} : { runtimeForModel: options.runtimeForModel }),
187
+ ...(memory === undefined ? {} : { memory }),
188
+ memoryWriteMode: config.memory?.writeMode ?? "disabled",
189
+ historyStore: options.historyStore ?? createInMemoryHistoryStore({ maxMessages: historyMaxMessages(config.runtime.maxTurns) }),
190
+ // Inbound channel attachments are saved here (under the artifacts dir, which
191
+ // sits inside a sandbox-readable root) so the agent can open them by path.
192
+ attachmentsDir: resolvePath(config.artifacts.dir, "attachments"),
193
+ toolPolicy: createToolPolicy(toolPolicyInput(config)),
194
+ ...(config.sandbox === undefined ? {} : { sandboxPolicy: config.sandbox }),
195
+ recorderFactory: ({ runId, conversationId, userInput, source, sourceDetail, isolated }) => composeRunRecorder(recorderCompositionDeps(config, options), {
196
+ runId,
197
+ conversationId,
198
+ runKind: "channel",
199
+ ...(isolated === undefined ? {} : { isolated }),
200
+ ...(userInput === undefined ? {} : { userInput }),
201
+ ...(source === undefined ? {} : { source }),
202
+ ...(sourceDetail === undefined ? {} : { sourceDetail }),
203
+ }),
204
+ ...(options.createRunId === undefined ? {} : { createRunId: options.createRunId }),
205
+ ...(options.now === undefined ? {} : { now: options.now }),
206
+ });
207
+ }
208
+ export async function createConfiguredAgentResponder(options) {
209
+ const session = options.config.runtime.session;
210
+ return createAgentResponder({
211
+ harness: await createConfiguredAgentHarness(options),
212
+ ...(session.rollover === undefined ? {} : { rollover: session.rollover }),
213
+ ...(session.rolloverTimezone === undefined ? {} : { rolloverTimezone: session.rolloverTimezone }),
214
+ ...(session.rolloverNotice === undefined ? {} : { rolloverNotice: session.rolloverNotice }),
215
+ ...(options.now === undefined ? {} : { now: options.now }),
216
+ });
217
+ }
218
+ function historyMaxMessages(maxTurns) {
219
+ return maxTurns === undefined || maxTurns <= 0 ? 0 : maxTurns * 2;
220
+ }
221
+ // Bound embeddings calls so a slow/cold backend cannot stall a turn for the
222
+ // provider default (30s). The harness degrades recall to empty on timeout.
223
+ const DEFAULT_EMBEDDINGS_TIMEOUT_MS = 10_000;
224
+ export async function createConfiguredMemory(config, deps = {}) {
225
+ if (config.memory === undefined) {
226
+ return undefined;
227
+ }
228
+ const backend = config.memory.backend ?? "bujo";
229
+ if (backend === "supermemory") {
230
+ const sm = config.memory.supermemory;
231
+ if (sm === undefined) {
232
+ // Defensive: the loader already rejects this combination.
233
+ throw new Error("memory.backend 'supermemory' requires a memory.supermemory block.");
234
+ }
235
+ const { createSupermemoryStore } = await import("@mono-agent/memory-supermemory");
236
+ // External backend: `mode`/`embeddings`/`llm` are bujo-only and intentionally ignored. Recall +
237
+ // capture both go over the REST client; Supermemory extracts/consolidates server-side.
238
+ return createSupermemoryStore({
239
+ baseUrl: sm.baseUrl,
240
+ container: resolveSupermemoryContainer(config),
241
+ ...(sm.apiKey === undefined ? {} : { apiKey: sm.apiKey }),
242
+ ...(sm.timeoutMs === undefined ? {} : { timeoutMs: sm.timeoutMs }),
243
+ ...(config.memory.maxBytes === undefined ? {} : { maxBytes: config.memory.maxBytes }),
244
+ ...(deps.logger === undefined ? {} : { logger: deps.logger }),
245
+ });
246
+ }
247
+ const { mode, path: root, maxBytes, embeddings: embeddingsConfig, llm: llmConfig } = config.memory;
248
+ const bujo = await loadMemoryBujoModule();
249
+ if (mode === "lite") {
250
+ // Lite tier: FTS-only recall, no external deps.
251
+ return bujo.createBujoMemoryStore({
252
+ root,
253
+ ...(maxBytes !== undefined && { maxBytes }),
254
+ ...(deps.logger !== undefined && { logger: deps.logger }),
255
+ });
256
+ }
257
+ // journal and bujo tiers both need embeddings for hybrid recall. A bounded
258
+ // timeout keeps a slow backend (e.g. Ollama loading the model) from stalling
259
+ // the request, and the circuit breaker fast-fails after repeated failures so
260
+ // a sustained outage stops blocking recall entirely. The harness degrades
261
+ // recall to empty (with a memory_degraded warning) when this errors.
262
+ const search = await loadMemorySearchModule();
263
+ const embeddings = search.createCircuitBreakerEmbeddingProvider(search.createEmbeddingProvider({
264
+ provider: embeddingsConfig?.provider ?? "ollama",
265
+ model: embeddingsConfig?.model ?? "nomic-embed-text:v1.5",
266
+ ...(embeddingsConfig?.endpoint !== undefined && { endpoint: embeddingsConfig.endpoint }),
267
+ ...(embeddingsConfig?.apiKey !== undefined && { apiKey: embeddingsConfig.apiKey }),
268
+ timeoutMs: embeddingsConfig?.timeoutMs ?? DEFAULT_EMBEDDINGS_TIMEOUT_MS,
269
+ }), {
270
+ ...(embeddingsConfig?.circuitBreaker?.failureThreshold !== undefined && {
271
+ failureThreshold: embeddingsConfig.circuitBreaker.failureThreshold,
272
+ }),
273
+ ...(embeddingsConfig?.circuitBreaker?.cooldownMs !== undefined && {
274
+ cooldownMs: embeddingsConfig.circuitBreaker.cooldownMs,
275
+ }),
276
+ });
277
+ const dim = embeddingsConfig?.dim ?? 768;
278
+ if (mode === "journal") {
279
+ // Journal tier: hybrid recall + decay; no chat LLM.
280
+ return bujo.createBujoMemoryStore({
281
+ root,
282
+ embeddings,
283
+ dim,
284
+ ...(maxBytes !== undefined && { maxBytes }),
285
+ ...(deps.logger !== undefined && { logger: deps.logger }),
286
+ });
287
+ }
288
+ // bujo tier: full stack — embeddings + optional chat LLM for capture/reflect/migrate.
289
+ const recording = deps.observability === undefined
290
+ ? undefined
291
+ : recorderCompositionDeps(config, deps.observability);
292
+ const llm = configuredMemoryLlm(bujo, config, llmConfig, deps.memoryRuntime, recording);
293
+ return bujo.createBujoMemoryStore({
294
+ root,
295
+ embeddings,
296
+ dim,
297
+ ...(maxBytes !== undefined && { maxBytes }),
298
+ ...(llm === undefined ? {} : { llm }),
299
+ ...(deps.logger !== undefined && { logger: deps.logger }),
300
+ });
301
+ }
302
+ function runtimeHostOptionsForConfig(config) {
303
+ return {
304
+ workspace: config.runtime.workspace,
305
+ qaOutputDir: config.artifacts.dir,
306
+ ...(config.providers?.piAuthPath === undefined
307
+ ? {}
308
+ : { resolvePiApiKey: createPiOAuthApiKeyResolver({ path: config.providers.piAuthPath }) }),
309
+ };
310
+ }
311
+ function configuredMemoryLlm(bujo, config, llmConfig,
312
+ // Explicit memory-LLM runtime (tests). MUST be fallback-chain-free — see the
313
+ // `memoryRuntime` doc on createConfiguredMemory. When undefined the memory LLM
314
+ // builds its own fallback-free runtime so the per-call memory model is primary.
315
+ memoryRuntimeOverride, recording) {
316
+ if (llmConfig === undefined) {
317
+ return undefined;
318
+ }
319
+ if (llmConfig.provider === "ollama") {
320
+ // The ollama memory LLM does not ride `runtime.run`, so it is not recorded.
321
+ return bujo.createOllamaLlm({
322
+ model: llmConfig.model,
323
+ ...(llmConfig.endpoint !== undefined && { endpoint: llmConfig.endpoint }),
324
+ });
325
+ }
326
+ const model = parseMonoRuntimeModelReference(llmConfig.model);
327
+ const executionMode = llmConfig.executionMode ?? defaultExecutionModeForModel(model);
328
+ assertExecutionModeCompatible(model, executionMode);
329
+ if (executionMode !== "sdk") {
330
+ throw new Error("memory.llm provider agent-host supports SDK execution mode only.");
331
+ }
332
+ // NOTE: createMonoRuntime is called WITHOUT a fallbackChain here on purpose, so
333
+ // the per-call `model: config.memory.llm.model` is the sole/primary model. The
334
+ // channel runtime (which carries the fallback chain whose primary is
335
+ // `config.runtime.model`) is intentionally NOT reused — see the `memoryRuntime`
336
+ // doc on createConfiguredMemory.
337
+ const runtime = memoryRuntimeOverride ?? createMonoRuntime(runtimeHostOptionsForConfig(config));
338
+ return createAgentHostMemoryLlm({
339
+ runtime,
340
+ model,
341
+ executionMode,
342
+ cwd: config.runtime.workspace,
343
+ runtimeOptions: mergeStaticRuntimeOptions(runtimeOptionsForLocalProvider(model, config.providers?.local), configRuntimeFlags(config)),
344
+ // Per-call timeout; default 60s. Configurable so a slow local model can be
345
+ // given room on the heavier reconcile/entities steps.
346
+ ...(llmConfig.timeoutMs === undefined ? {} : { timeoutMs: llmConfig.timeoutMs }),
347
+ // `memory.llm.trace` (default on) gates recording; it only takes effect when
348
+ // the app threaded observability deps into createConfiguredMemory.
349
+ ...(recording !== undefined && llmConfig.trace !== false
350
+ ? { recording: { deps: recording, baseConversationId: MEMORY_CONVERSATION_ID } }
351
+ : {}),
352
+ });
353
+ }
354
+ const MEMORY_LLM_SYSTEM_PROMPT = [
355
+ "You are the private memory maintenance LLM for mono-agent.",
356
+ "Return only the requested JSON or plain text.",
357
+ "Do not use tools, inspect files, or perform external actions.",
358
+ ].join(" ");
359
+ /** Fallback conversation id for recorded memory LLM runs that carry no ritual label. */
360
+ const MEMORY_CONVERSATION_ID = "memory:bujo";
361
+ function createAgentHostMemoryLlm(options) {
362
+ const timeoutMs = options.timeoutMs ?? 60_000;
363
+ return {
364
+ id: `agent-host:${referenceOf(options.model)}`,
365
+ async complete(prompt, opts) {
366
+ const ctrl = new AbortController();
367
+ // Track whether OUR timeout fired vs an external abort. A provider that is slow or
368
+ // misconfigured (e.g. a dead OAuth token whose refresh hangs) trips this timeout and the
369
+ // runtime reports `cancelled` — without this flag the failure is mislabeled as a generic
370
+ // "run was cancelled", which is exactly what made a 10-day memory outage hard to diagnose.
371
+ let timedOut = false;
372
+ const timer = setTimeout(() => { timedOut = true; ctrl.abort(); }, timeoutMs);
373
+ const memoryOperation = memoryOperationFromLabel(opts?.label);
374
+ const recorder = options.recording === undefined
375
+ ? undefined
376
+ : composeRunRecorder(options.recording.deps, {
377
+ runId: createMemoryRunId(opts?.label),
378
+ conversationId: memoryConversationId(options.recording.baseConversationId, opts?.label),
379
+ userInput: prompt,
380
+ systemPrompt: MEMORY_LLM_SYSTEM_PROMPT,
381
+ runKind: "memory",
382
+ source: "memory",
383
+ ...(memoryOperation === undefined ? {} : { memoryOperation }),
384
+ ...(memoryOperation === undefined ? {} : { sourceDetail: memoryOperation }),
385
+ });
386
+ try {
387
+ await safeRecorderCall(() => recorder?.start?.());
388
+ let result;
389
+ try {
390
+ result = await options.runtime.run(MEMORY_LLM_SYSTEM_PROMPT, {
391
+ ...options.runtimeOptions,
392
+ model: options.model,
393
+ messages: [{ role: "user", content: prompt }],
394
+ abortSignal: ctrl.signal,
395
+ executionMode: options.executionMode,
396
+ cwd: options.cwd,
397
+ maxTurns: 1,
398
+ allowedTools: [],
399
+ disallowedTools: [],
400
+ mcpServers: {},
401
+ ...(recorder === undefined ? {} : { onEvent: (event) => { recorder.onEvent(event); } }),
402
+ });
403
+ }
404
+ catch (error) {
405
+ // `runtime.run` itself threw (e.g. the abort/timeout above) — record the
406
+ // failure, then surface a timeout distinctly from an external abort.
407
+ await safeRecorderCall(() => recorder?.fail(error));
408
+ if (timedOut) {
409
+ throw new Error(`agent-host memory LLM timed out after ${timeoutMs}ms (provider too slow or unavailable).`);
410
+ }
411
+ throw error;
412
+ }
413
+ // Record with the real outcome BEFORE textFromMemoryRuntimeResult, which throws
414
+ // on failureKind/error; recorder.finish() classifies failed/succeeded/cancelled itself.
415
+ await safeRecorderCall(() => recorder?.finish(result));
416
+ return textFromMemoryRuntimeResult(result, { timedOut, timeoutMs });
417
+ }
418
+ finally {
419
+ clearTimeout(timer);
420
+ }
421
+ },
422
+ };
423
+ }
424
+ /**
425
+ * Run a recorder lifecycle call best-effort. Recording is additive: a recorder
426
+ * or artifact-write failure must never mask the memory LLM's real result or error.
427
+ */
428
+ async function safeRecorderCall(fn) {
429
+ try {
430
+ await fn();
431
+ }
432
+ catch {
433
+ // Swallow: recording failures are non-fatal by design.
434
+ }
435
+ }
436
+ /** Build a `mem-`-prefixed run id (distinct from channel `run-` ids) with the ritual slug. */
437
+ function createMemoryRunId(label) {
438
+ return `mem-${memorySlug(label)}-${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 8)}`;
439
+ }
440
+ /** Conversation id for a recorded memory run: `memory:<label>` (per-ritual), else the base. */
441
+ function memoryConversationId(base, label) {
442
+ if (label !== undefined && label.length > 0) {
443
+ return `memory:${label}`;
444
+ }
445
+ return base ?? MEMORY_CONVERSATION_ID;
446
+ }
447
+ function memorySlug(label) {
448
+ const slug = (label ?? "bujo")
449
+ .toLowerCase()
450
+ .replace(/[^a-z0-9]+/gu, "-")
451
+ .replace(/^-+|-+$/gu, "");
452
+ return slug.length > 0 ? slug : "bujo";
453
+ }
454
+ /**
455
+ * Memory sub-operation for the `mono.agent.memory.operation` trace attribute.
456
+ * The ritual labels are `capture:distill` / `capture:reconcile` / `capture:entities`
457
+ * (take the part after the colon) and the bare `reflect` / `migrate` (verbatim).
458
+ */
459
+ function memoryOperationFromLabel(label) {
460
+ if (label === undefined || label.length === 0) {
461
+ return undefined;
462
+ }
463
+ const op = label.includes(":") ? label.slice(label.indexOf(":") + 1) : label;
464
+ return op.length > 0 ? op : undefined;
465
+ }
466
+ function textFromMemoryRuntimeResult(result, opts) {
467
+ if (result.cancelled === true) {
468
+ if (opts?.timedOut === true) {
469
+ throw new Error(`agent-host memory LLM timed out after ${opts.timeoutMs ?? "?"}ms (provider too slow or unavailable).`);
470
+ }
471
+ throw new Error("agent-host memory LLM run was cancelled.");
472
+ }
473
+ if (typeof result.failureKind === "string" && result.failureKind.length > 0) {
474
+ throw new Error(`agent-host memory LLM failed (${result.failureKind}): ${result.error ?? "unknown error"}`);
475
+ }
476
+ if (typeof result.error === "string" && result.error.length > 0) {
477
+ throw new Error(`agent-host memory LLM failed: ${result.error}`);
478
+ }
479
+ return typeof result.text === "string" ? result.text : "";
480
+ }
481
+ function referenceOf(model) {
482
+ return modelReferenceKey(model);
483
+ }
484
+ function mergeStaticRuntimeOptions(...optionsList) {
485
+ const merged = {};
486
+ for (const options of optionsList) {
487
+ if (options === undefined) {
488
+ continue;
489
+ }
490
+ for (const [key, value] of Object.entries(options)) {
491
+ if (value === undefined) {
492
+ continue;
493
+ }
494
+ if (key === "allowedTools" || key === "disallowedTools") {
495
+ merged[key] = mergeStringLists(merged[key], value);
496
+ continue;
497
+ }
498
+ if (key === "mcpServers") {
499
+ merged[key] = {
500
+ ...(isRecord(merged[key]) ? merged[key] : {}),
501
+ ...(isRecord(value) ? value : {}),
502
+ };
503
+ continue;
504
+ }
505
+ merged[key] = value;
506
+ }
507
+ }
508
+ return merged;
509
+ }
510
+ function mergeStringLists(current, next) {
511
+ const out = [];
512
+ for (const value of [...stringList(current), ...stringList(next)]) {
513
+ if (!out.includes(value)) {
514
+ out.push(value);
515
+ }
516
+ }
517
+ return out;
518
+ }
519
+ function stringList(value) {
520
+ return Array.isArray(value) ? value.filter((entry) => typeof entry === "string") : [];
521
+ }
522
+ function isRecord(value) {
523
+ return typeof value === "object" && value !== null && !Array.isArray(value);
524
+ }
525
+ function toolPolicyInput(config) {
526
+ if (config.tools.mcpConfigPath === undefined) {
527
+ return {
528
+ allowedTools: config.tools.allowedTools,
529
+ disallowedTools: config.tools.disallowedTools,
530
+ };
531
+ }
532
+ // SDK runtimes only consume inline mcpServers, so the referenced mcp.json is
533
+ // resolved here; the path is still forwarded for CLI runtimes that take it.
534
+ const filePolicy = loadToolPolicyFromJsonFileSync(config.tools.mcpConfigPath);
535
+ return {
536
+ allowedTools: config.tools.allowedTools,
537
+ disallowedTools: config.tools.disallowedTools,
538
+ mcpConfigPath: config.tools.mcpConfigPath,
539
+ ...(filePolicy.mcpServers === undefined ? {} : { mcpServers: filePolicy.mcpServers }),
540
+ };
541
+ }
542
+ function configRuntimeFlags(config) {
543
+ const { permissionMode } = config.runtime;
544
+ // NOTE: there is intentionally no reasoning-summary runtime option. The sole pi
545
+ // runtime (pi-native) derives reasoning from `effort` and does not consume an
546
+ // explicit summary level, and the codex/claude CLIs emit summaries
547
+ // unconditionally — so the former `piReasoningSummary` runtime option was dead
548
+ // plumbing and the `runtime.reasoningSummary` config field was removed.
549
+ const piNative = config.providers?.piNative;
550
+ // MCP call timeouts ride the runtime's `settings` bag (the same channel the
551
+ // agent loop reads via resolveAgentCompactionPolicy) — only when configured, so
552
+ // the runtime defaults (120s inactivity / 45 min total) stay authoritative.
553
+ const { mcpCallTimeoutMs, mcpCallMaxTotalTimeoutMs } = config.tools;
554
+ const settings = mcpCallTimeoutMs === undefined && mcpCallMaxTotalTimeoutMs === undefined
555
+ ? undefined
556
+ : {
557
+ ...(mcpCallTimeoutMs === undefined ? {} : { agent_mcp_call_timeout_ms: mcpCallTimeoutMs }),
558
+ ...(mcpCallMaxTotalTimeoutMs === undefined
559
+ ? {}
560
+ : { agent_mcp_call_max_total_timeout_ms: mcpCallMaxTotalTimeoutMs }),
561
+ };
562
+ if (permissionMode === undefined
563
+ && piNative?.piMaxRetries === undefined
564
+ && piNative?.maxRetryDelayMs === undefined
565
+ && settings === undefined) {
566
+ return undefined;
567
+ }
568
+ return {
569
+ ...(permissionMode === undefined ? {} : { permissionMode }),
570
+ ...(piNative?.piMaxRetries === undefined ? {} : { piMaxRetries: piNative.piMaxRetries }),
571
+ ...(piNative?.maxRetryDelayMs === undefined ? {} : { maxRetryDelayMs: piNative.maxRetryDelayMs }),
572
+ ...(settings === undefined ? {} : { settings }),
573
+ };
574
+ }
575
+ function isRuntimeOptions(value) {
576
+ return "config" in value;
577
+ }
578
+ //# sourceMappingURL=configured-agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configured-agent.js","sourceRoot":"","sources":["../src/configured-agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import { validateMonoAgentFolder } from "./doctor.js";
2
+ export declare const consumerContractNames: readonly ["local-agent-alpha", "local-agent-beta"];
3
+ export type ConsumerContractName = (typeof consumerContractNames)[number];
4
+ export interface ConsumerContractIssue {
5
+ readonly check: string;
6
+ readonly message: string;
7
+ }
8
+ export interface ConsumerContractSectionStatus {
9
+ readonly id: string;
10
+ readonly status: ValidationStatus;
11
+ }
12
+ export interface ConsumerContractFixtureOptions {
13
+ readonly name: ConsumerContractName;
14
+ readonly fixtureDir: string;
15
+ readonly env?: Record<string, string | undefined>;
16
+ }
17
+ export interface ConsumerContractFixtureResult {
18
+ readonly name: ConsumerContractName;
19
+ readonly ok: boolean;
20
+ readonly reportOk?: boolean;
21
+ readonly networkCallCount: number;
22
+ readonly sections: readonly ConsumerContractSectionStatus[];
23
+ readonly issues: readonly ConsumerContractIssue[];
24
+ }
25
+ export declare const consumerContractRunSummaryStatuses: {
26
+ running: true;
27
+ succeeded: true;
28
+ failed: true;
29
+ cancelled: true;
30
+ interrupted: true;
31
+ };
32
+ type ValidationReport = Awaited<ReturnType<typeof validateMonoAgentFolder>>;
33
+ type ValidationStatus = ValidationReport["sections"][number]["status"];
34
+ export declare function validateConsumerContractFixture(options: ConsumerContractFixtureOptions): Promise<ConsumerContractFixtureResult>;
35
+ export {};
36
+ //# sourceMappingURL=consumer-contract.d.ts.map