@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.
- package/README.md +24 -10
- package/dist/adapter-send-tools-main.d.ts +3 -0
- package/dist/adapter-send-tools-main.d.ts.map +1 -0
- package/dist/adapter-send-tools-main.js +20 -0
- package/dist/adapter-send-tools-main.js.map +1 -0
- package/dist/adapter-send-tools.d.ts +125 -0
- package/dist/adapter-send-tools.d.ts.map +1 -0
- package/dist/adapter-send-tools.js +629 -0
- package/dist/adapter-send-tools.js.map +1 -0
- package/dist/app-config.d.ts +86 -26
- package/dist/app-config.d.ts.map +1 -1
- package/dist/app-config.js +284 -90
- package/dist/app-config.js.map +1 -1
- package/dist/app.d.ts +51 -20
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +889 -119
- package/dist/app.js.map +1 -1
- package/dist/artifact-retention.d.ts +32 -0
- package/dist/artifact-retention.d.ts.map +1 -0
- package/dist/artifact-retention.js +111 -0
- package/dist/artifact-retention.js.map +1 -0
- package/dist/audit-runs.d.ts +12 -0
- package/dist/audit-runs.d.ts.map +1 -0
- package/dist/audit-runs.js +68 -0
- package/dist/audit-runs.js.map +1 -0
- package/dist/backfill.d.ts +75 -0
- package/dist/backfill.d.ts.map +1 -0
- package/dist/backfill.js +350 -0
- package/dist/backfill.js.map +1 -0
- package/dist/background.d.ts +8 -5
- package/dist/background.d.ts.map +1 -1
- package/dist/background.js +279 -53
- package/dist/background.js.map +1 -1
- package/dist/broadcast-recorder.d.ts +27 -0
- package/dist/broadcast-recorder.d.ts.map +1 -0
- package/dist/broadcast-recorder.js +82 -0
- package/dist/broadcast-recorder.js.map +1 -0
- package/dist/channel-config-view.d.ts +28 -0
- package/dist/channel-config-view.d.ts.map +1 -0
- package/dist/channel-config-view.js +79 -0
- package/dist/channel-config-view.js.map +1 -0
- package/dist/channel-gate.d.ts +22 -0
- package/dist/channel-gate.d.ts.map +1 -0
- package/dist/channel-gate.js +35 -0
- package/dist/channel-gate.js.map +1 -0
- package/dist/channel-plugins.d.ts +39 -0
- package/dist/channel-plugins.d.ts.map +1 -0
- package/dist/channel-plugins.js +346 -0
- package/dist/channel-plugins.js.map +1 -0
- package/dist/channels.d.ts +62 -66
- package/dist/channels.d.ts.map +1 -1
- package/dist/channels.js +850 -120
- package/dist/channels.js.map +1 -1
- package/dist/cli.d.ts +103 -4
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +984 -112
- package/dist/cli.js.map +1 -1
- package/dist/config-reference.d.ts +24 -0
- package/dist/config-reference.d.ts.map +1 -0
- package/dist/config-reference.js +580 -0
- package/dist/config-reference.js.map +1 -0
- package/dist/configured-agent.d.ts +104 -0
- package/dist/configured-agent.d.ts.map +1 -0
- package/dist/configured-agent.js +578 -0
- package/dist/configured-agent.js.map +1 -0
- package/dist/consumer-contract.d.ts +36 -0
- package/dist/consumer-contract.d.ts.map +1 -0
- package/dist/consumer-contract.js +290 -0
- package/dist/consumer-contract.js.map +1 -0
- package/dist/doctor.d.ts +17 -0
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js +392 -95
- package/dist/doctor.js.map +1 -1
- package/dist/index.d.ts +14 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -3
- package/dist/index.js.map +1 -1
- package/dist/init.d.ts +23 -7
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +91 -26
- package/dist/init.js.map +1 -1
- package/dist/install-skill.d.ts +1 -1
- package/dist/install-skill.js +2 -2
- package/dist/install-skill.js.map +1 -1
- package/dist/interaction-bridge.d.ts +72 -0
- package/dist/interaction-bridge.d.ts.map +1 -0
- package/dist/interaction-bridge.js +354 -0
- package/dist/interaction-bridge.js.map +1 -0
- package/dist/launchd.d.ts +0 -2
- package/dist/launchd.d.ts.map +1 -1
- package/dist/launchd.js +0 -2
- package/dist/launchd.js.map +1 -1
- package/dist/memory-command.d.ts +10 -0
- package/dist/memory-command.d.ts.map +1 -0
- package/dist/memory-command.js +649 -0
- package/dist/memory-command.js.map +1 -0
- package/dist/memory-recall-main.d.ts +3 -0
- package/dist/memory-recall-main.d.ts.map +1 -0
- package/dist/memory-recall-main.js +30 -0
- package/dist/memory-recall-main.js.map +1 -0
- package/dist/memory-recall.d.ts +147 -0
- package/dist/memory-recall.d.ts.map +1 -0
- package/dist/memory-recall.js +345 -0
- package/dist/memory-recall.js.map +1 -0
- package/dist/memory-rituals.d.ts +8 -11
- package/dist/memory-rituals.d.ts.map +1 -1
- package/dist/memory-rituals.js +26 -25
- package/dist/memory-rituals.js.map +1 -1
- package/dist/metrics.d.ts +13 -0
- package/dist/metrics.d.ts.map +1 -0
- package/dist/metrics.js +105 -0
- package/dist/metrics.js.map +1 -0
- package/dist/notify-destinations.d.ts +23 -0
- package/dist/notify-destinations.d.ts.map +1 -0
- package/dist/notify-destinations.js +79 -0
- package/dist/notify-destinations.js.map +1 -0
- package/dist/posted-message-index.d.ts +61 -0
- package/dist/posted-message-index.d.ts.map +1 -0
- package/dist/posted-message-index.js +178 -0
- package/dist/posted-message-index.js.map +1 -0
- package/dist/proactive-notify.d.ts +32 -0
- package/dist/proactive-notify.d.ts.map +1 -0
- package/dist/proactive-notify.js +62 -0
- package/dist/proactive-notify.js.map +1 -0
- package/dist/recipes/base.d.ts +15 -0
- package/dist/recipes/base.d.ts.map +1 -0
- package/dist/recipes/base.js +51 -0
- package/dist/recipes/base.js.map +1 -0
- package/dist/recipes/catalog.d.ts +4 -0
- package/dist/recipes/catalog.d.ts.map +1 -0
- package/dist/recipes/catalog.js +509 -0
- package/dist/recipes/catalog.js.map +1 -0
- package/dist/recipes/index.d.ts +11 -0
- package/dist/recipes/index.d.ts.map +1 -0
- package/dist/recipes/index.js +14 -0
- package/dist/recipes/index.js.map +1 -0
- package/dist/recipes/types.d.ts +70 -0
- package/dist/recipes/types.d.ts.map +1 -0
- package/dist/recipes/types.js +15 -0
- package/dist/recipes/types.js.map +1 -0
- package/dist/request-model-override.d.ts +67 -0
- package/dist/request-model-override.d.ts.map +1 -0
- package/dist/request-model-override.js +96 -0
- package/dist/request-model-override.js.map +1 -0
- package/dist/runs-health.d.ts +22 -0
- package/dist/runs-health.d.ts.map +1 -0
- package/dist/runs-health.js +144 -0
- package/dist/runs-health.js.map +1 -0
- package/dist/seen-conversations.d.ts +22 -0
- package/dist/seen-conversations.d.ts.map +1 -0
- package/dist/seen-conversations.js +120 -0
- package/dist/seen-conversations.js.map +1 -0
- package/dist/sessions.d.ts +21 -0
- package/dist/sessions.d.ts.map +1 -0
- package/dist/sessions.js +45 -0
- package/dist/sessions.js.map +1 -0
- package/dist/setup.d.ts +29 -0
- package/dist/setup.d.ts.map +1 -0
- package/dist/setup.js +97 -0
- package/dist/setup.js.map +1 -0
- package/dist/trigger-overrides.d.ts +17 -0
- package/dist/trigger-overrides.d.ts.map +1 -0
- package/dist/trigger-overrides.js +30 -0
- package/dist/trigger-overrides.js.map +1 -0
- package/dist/tui-command.d.ts +56 -0
- package/dist/tui-command.d.ts.map +1 -0
- package/dist/tui-command.js +160 -0
- package/dist/tui-command.js.map +1 -0
- package/dist/ui.d.ts +54 -0
- package/dist/ui.d.ts.map +1 -0
- package/dist/ui.js +157 -0
- package/dist/ui.js.map +1 -0
- package/dist/web-command.d.ts +39 -0
- package/dist/web-command.d.ts.map +1 -0
- package/dist/web-command.js +151 -0
- package/dist/web-command.js.map +1 -0
- package/package.json +22 -17
- package/schema/mono-agent.config.schema.json +1686 -0
- package/skills/mono-agent-composer/SKILL.md +38 -12
- package/skills/mono-agent-composer/agents/openai.yaml +4 -0
- package/skills/mono-agent-composer/references/config-blueprint.md +84 -31
- package/skills/mono-agent-composer/references/discovery-questions.md +49 -36
- package/skills/mono-agent-composer/references/feature-coverage.md +26 -19
- package/skills/mono-agent-composer/references/package-map.md +20 -22
- package/skills/mono-agent-composer/references/playbooks.md +209 -0
- 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
|