@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 @@
|
|
|
1
|
+
{"version":3,"file":"memory-command.js","sourceRoot":"","sources":["../src/memory-command.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-recall-main.d.ts","sourceRoot":"","sources":["../src/memory-recall-main.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
3
|
+
import { createMemoryRecallServer, createRecallStore, memoryRecallSettingsFromEnv } from "./memory-recall.js";
|
|
4
|
+
async function main() {
|
|
5
|
+
const settings = memoryRecallSettingsFromEnv(process.env);
|
|
6
|
+
const store = await createRecallStore(settings);
|
|
7
|
+
const server = createMemoryRecallServer(store);
|
|
8
|
+
// Registering these listeners overrides Node's default terminate-on-signal, so we must exit
|
|
9
|
+
// explicitly. store.close() drains/closes the db before the process leaves.
|
|
10
|
+
const shutdown = () => {
|
|
11
|
+
void store
|
|
12
|
+
.close()
|
|
13
|
+
.catch((error) => {
|
|
14
|
+
// Don't let a failed close become an unhandled rejection; log to stderr (stdout is the MCP
|
|
15
|
+
// transport) and still exit so the signal isn't swallowed.
|
|
16
|
+
process.stderr.write(`mono-agent-memory-recall: shutdown close failed: ${error instanceof Error ? error.message : String(error)}\n`);
|
|
17
|
+
})
|
|
18
|
+
.finally(() => {
|
|
19
|
+
process.exit(0);
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
process.on("SIGINT", shutdown);
|
|
23
|
+
process.on("SIGTERM", shutdown);
|
|
24
|
+
await server.connect(new StdioServerTransport());
|
|
25
|
+
}
|
|
26
|
+
main().catch((error) => {
|
|
27
|
+
process.stderr.write(`mono-agent-memory-recall: fatal: ${error instanceof Error ? error.message : String(error)}\n`);
|
|
28
|
+
process.exitCode = 1;
|
|
29
|
+
});
|
|
30
|
+
//# sourceMappingURL=memory-recall-main.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-recall-main.js","sourceRoot":"","sources":["../src/memory-recall-main.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEjF,OAAO,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAE9G,KAAK,UAAU,IAAI;IACjB,MAAM,QAAQ,GAAG,2BAA2B,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1D,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;IAC/C,4FAA4F;IAC5F,4EAA4E;IAC5E,MAAM,QAAQ,GAAG,GAAS,EAAE;QAC1B,KAAK,KAAK;aACP,KAAK,EAAE;aACP,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YACxB,2FAA2F;YAC3F,2DAA2D;YAC3D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oDAAoD,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACvI,CAAC,CAAC;aACD,OAAO,CAAC,GAAG,EAAE;YACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IACF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAChC,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,oBAAoB,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IAC9B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oCAAoC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACrH,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
|
+
import type { MonoAgentConfig } from "@mono-agent/config";
|
|
3
|
+
/**
|
|
4
|
+
* Read-only memory recall, wired from the SINGLE `config.memory` block.
|
|
5
|
+
*
|
|
6
|
+
* When `config.memory.recallTool.enabled` is true, the app exposes a `memory_recall` MCP tool
|
|
7
|
+
* (server name {@link MEMORY_RECALL_MCP_SERVER_NAME}) to the agent. Recall needs only embeddings +
|
|
8
|
+
* FTS — no chat LLM — so the recall server is built with embeddings alone. When embeddings are
|
|
9
|
+
* absent (lite tier, or an explicit opt-in on a no-embeddings store) recall still serves FTS-only
|
|
10
|
+
* (lexical) results. Capture stays in-app (unchanged); this module never touches it.
|
|
11
|
+
*
|
|
12
|
+
* Embeddings parity with the in-app store (`createConfiguredMemory`): the recall child applies the
|
|
13
|
+
* SAME resilience wrapping — a per-call timeout plus a circuit breaker — so a slow/failing backend
|
|
14
|
+
* cannot stall or repeatedly block recall in the child process either.
|
|
15
|
+
*
|
|
16
|
+
* Secret handling: the raw embeddings api key is NOT copied into the recall child's env. When the
|
|
17
|
+
* key was sourced from a named environment variable (`apiKeyEnv`) we forward only the NAME and the
|
|
18
|
+
* child re-reads the value from its inherited process env at runtime. An inline literal key (no
|
|
19
|
+
* `apiKeyEnv`) still has to transit the child env as a value — that residual is documented on
|
|
20
|
+
* {@link memoryRecallMcpEnv}.
|
|
21
|
+
*
|
|
22
|
+
* A stdio MCP server is injected purely as an `mcpServers` entry via the per-request runtime
|
|
23
|
+
* options. MCP tools are not gated by `tools.allowedTools`, so no allowlist entry is required.
|
|
24
|
+
*/
|
|
25
|
+
export declare const MEMORY_RECALL_MCP_SERVER_NAME = "mono-agent-memory";
|
|
26
|
+
/** Circuit-breaker tuning carried into the recall child. Mirrors `config.memory.embeddings.circuitBreaker`. */
|
|
27
|
+
export interface MemoryRecallEmbeddingsCircuitBreaker {
|
|
28
|
+
readonly failureThreshold?: number;
|
|
29
|
+
readonly cooldownMs?: number;
|
|
30
|
+
}
|
|
31
|
+
/** Embeddings the recall server needs. Mirrors the resolved `config.memory.embeddings` slice. */
|
|
32
|
+
export interface MemoryRecallEmbeddings {
|
|
33
|
+
readonly provider: "ollama" | "openai";
|
|
34
|
+
readonly model: string;
|
|
35
|
+
readonly endpoint?: string;
|
|
36
|
+
/** Resolved key value. Only used as a last resort (inline apiKey, no apiKeyEnv). */
|
|
37
|
+
readonly apiKey?: string;
|
|
38
|
+
/** Name of the env var the key was read from; forwarded instead of the raw value when present. */
|
|
39
|
+
readonly apiKeyEnv?: string;
|
|
40
|
+
readonly dim?: number;
|
|
41
|
+
/** Per-call embeddings timeout in ms; mirrors the host default when unset (see createRecallStore). */
|
|
42
|
+
readonly timeoutMs?: number;
|
|
43
|
+
/** Circuit-breaker overrides; unset fields fall back to the breaker defaults. */
|
|
44
|
+
readonly circuitBreaker?: MemoryRecallEmbeddingsCircuitBreaker;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Supermemory params the recall child needs to build its REST client (external backend). The key is
|
|
48
|
+
* the RESOLVED value (the loader already turned any `apiKeyEnv` into a literal): unlike the embeddings
|
|
49
|
+
* path, recall forwards the value — not an env-var name — into the child's spec env, because the
|
|
50
|
+
* stdio child does NOT inherit the parent's full environment under every runtime (claude-sdk/codex-app
|
|
51
|
+
* pass only a POSIX safe-list), so a name-only handoff would silently fail to authenticate.
|
|
52
|
+
*/
|
|
53
|
+
export interface MemoryRecallSupermemory {
|
|
54
|
+
readonly baseUrl: string;
|
|
55
|
+
readonly container: string;
|
|
56
|
+
readonly apiKey?: string;
|
|
57
|
+
readonly timeoutMs?: number;
|
|
58
|
+
}
|
|
59
|
+
/** bujo recall: a memory root (+ optional embeddings for semantic ranking). */
|
|
60
|
+
export interface MemoryRecallBujoSettings {
|
|
61
|
+
/** Memory root directory (config.memory.path). */
|
|
62
|
+
readonly root: string;
|
|
63
|
+
/** Embeddings for semantic recall. Omitted for an FTS-only (lite) recall store. */
|
|
64
|
+
readonly embeddings?: MemoryRecallEmbeddings;
|
|
65
|
+
}
|
|
66
|
+
/** supermemory recall: search the external instance over REST. */
|
|
67
|
+
export interface MemoryRecallSupermemorySettings {
|
|
68
|
+
readonly supermemory: MemoryRecallSupermemory;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Recall settings — discriminated structurally by the presence of `supermemory`. The bujo shape is
|
|
72
|
+
* unchanged (root + optional embeddings) so existing configs and env round-trips stay byte-identical.
|
|
73
|
+
*/
|
|
74
|
+
export type MemoryRecallSettings = MemoryRecallBujoSettings | MemoryRecallSupermemorySettings;
|
|
75
|
+
/** Read-only recall surface the MCP server formats. Both backend stores satisfy it structurally. */
|
|
76
|
+
export interface RecallCapableStore {
|
|
77
|
+
recall(query: string, options?: {
|
|
78
|
+
readonly topK?: number;
|
|
79
|
+
readonly trackAccess?: boolean;
|
|
80
|
+
}): Promise<readonly {
|
|
81
|
+
readonly score: number;
|
|
82
|
+
readonly record: {
|
|
83
|
+
readonly id: string;
|
|
84
|
+
readonly text: string;
|
|
85
|
+
};
|
|
86
|
+
}[]>;
|
|
87
|
+
close(): Promise<void>;
|
|
88
|
+
}
|
|
89
|
+
export interface MemoryRecallRuntimeExtension {
|
|
90
|
+
readonly runtimeOptions: {
|
|
91
|
+
readonly mcpServers: Record<string, unknown>;
|
|
92
|
+
};
|
|
93
|
+
readonly cleanup: () => Promise<void>;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Bound embeddings calls in the recall child so a slow/cold backend cannot stall a turn for the
|
|
97
|
+
* provider default. Mirrors the in-app `createConfiguredMemory` host default (agent-host).
|
|
98
|
+
*/
|
|
99
|
+
export declare const DEFAULT_RECALL_EMBEDDINGS_TIMEOUT_MS = 10000;
|
|
100
|
+
/**
|
|
101
|
+
* Resolve recall settings from the single in-app memory block. Returns `undefined` (recall off) only
|
|
102
|
+
* when memory is unconfigured or the recall tool is disabled. When the operator explicitly enables
|
|
103
|
+
* recall on a no-embeddings store (lite tier), settings are returned WITHOUT embeddings so the child
|
|
104
|
+
* serves FTS-only recall — the config layer deliberately supports this forced-on opt-in.
|
|
105
|
+
*/
|
|
106
|
+
export declare function resolveMemoryRecallSettings(config: MonoAgentConfig): MemoryRecallSettings | undefined;
|
|
107
|
+
/**
|
|
108
|
+
* Re-read recall settings from the recall server's own environment (the stdio child process).
|
|
109
|
+
*
|
|
110
|
+
* Only `MONO_AGENT_MEMORY_PATH` is required. When the embeddings provider/model are both absent the
|
|
111
|
+
* child runs FTS-only (no embedding provider). When present, the embeddings slice — including the
|
|
112
|
+
* resilience knobs (timeout + circuit breaker) — is rehydrated. The api key is resolved from the
|
|
113
|
+
* inherited env var named by `MONO_AGENT_MEMORY_EMBEDDINGS_API_KEY_ENV` when set, falling back to a
|
|
114
|
+
* literal `MONO_AGENT_MEMORY_EMBEDDINGS_API_KEY` (the inline-key case).
|
|
115
|
+
*/
|
|
116
|
+
export declare function memoryRecallSettingsFromEnv(env: Record<string, string | undefined>): MemoryRecallSettings;
|
|
117
|
+
/**
|
|
118
|
+
* Env passed to the recall stdio child. Reuses the MONO_AGENT_MEMORY_* names the old memory-mcp used.
|
|
119
|
+
*
|
|
120
|
+
* With no embeddings the child runs FTS-only and only the memory path is emitted. The embeddings
|
|
121
|
+
* resilience knobs (timeout + circuit breaker) are forwarded so the child wraps its provider exactly
|
|
122
|
+
* like the in-app store. SECRET HANDLING (F13): when `apiKeyEnv` is present the env-var NAME is
|
|
123
|
+
* forwarded (NOT the value) and the child re-reads it from its inherited process env; the raw
|
|
124
|
+
* `MONO_AGENT_MEMORY_EMBEDDINGS_API_KEY` value is emitted ONLY for the inline-key residual (an inline
|
|
125
|
+
* `apiKey` with no `apiKeyEnv`), where there is no name to forward.
|
|
126
|
+
*/
|
|
127
|
+
export declare function memoryRecallMcpEnv(settings: MemoryRecallSettings): Record<string, string>;
|
|
128
|
+
export declare function memoryRecallMcpServerSpec(settings: MemoryRecallSettings, cwd: string): Record<string, unknown>;
|
|
129
|
+
/**
|
|
130
|
+
* Build the per-request runtime extension that injects the recall server. The cleanup is a no-op:
|
|
131
|
+
* the stdio child owns its store lifecycle and drains on signal (see memory-recall-main).
|
|
132
|
+
*/
|
|
133
|
+
export declare function createMemoryRecallRuntimeExtension(settings: MemoryRecallSettings, cwd: string): () => Promise<MemoryRecallRuntimeExtension>;
|
|
134
|
+
/**
|
|
135
|
+
* Build a RECALL-ONLY store: embeddings + FTS, no chat LLM (recall needs none, so capture/reflect
|
|
136
|
+
* stay disabled here). With no embeddings (lite tier / explicit FTS-only opt-in) the store is built
|
|
137
|
+
* without an embedding provider and serves FTS-only recall.
|
|
138
|
+
*
|
|
139
|
+
* The embedding provider is wrapped with the SAME resilience as the in-app store
|
|
140
|
+
* (`createConfiguredMemory`): a bounded per-call timeout (default
|
|
141
|
+
* {@link DEFAULT_RECALL_EMBEDDINGS_TIMEOUT_MS}) keeps a slow backend from stalling recall, and a
|
|
142
|
+
* circuit breaker fast-fails after repeated failures so a sustained outage stops blocking it.
|
|
143
|
+
*/
|
|
144
|
+
export declare function createRecallStore(settings: MemoryRecallSettings): Promise<RecallCapableStore>;
|
|
145
|
+
/** Register the single read-only `memory_recall` tool against a store (bujo or external backend). */
|
|
146
|
+
export declare function createMemoryRecallServer(store: RecallCapableStore): McpServer;
|
|
147
|
+
//# sourceMappingURL=memory-recall.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-recall.d.ts","sourceRoot":"","sources":["../src/memory-recall.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,345 @@
|
|
|
1
|
+
import process from "node:process";
|
|
2
|
+
import { fileURLToPath } from "node:url";
|
|
3
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
4
|
+
import { resolveSupermemoryContainer } from "@mono-agent/config";
|
|
5
|
+
import * as z from "zod/v4";
|
|
6
|
+
/**
|
|
7
|
+
* Read-only memory recall, wired from the SINGLE `config.memory` block.
|
|
8
|
+
*
|
|
9
|
+
* When `config.memory.recallTool.enabled` is true, the app exposes a `memory_recall` MCP tool
|
|
10
|
+
* (server name {@link MEMORY_RECALL_MCP_SERVER_NAME}) to the agent. Recall needs only embeddings +
|
|
11
|
+
* FTS — no chat LLM — so the recall server is built with embeddings alone. When embeddings are
|
|
12
|
+
* absent (lite tier, or an explicit opt-in on a no-embeddings store) recall still serves FTS-only
|
|
13
|
+
* (lexical) results. Capture stays in-app (unchanged); this module never touches it.
|
|
14
|
+
*
|
|
15
|
+
* Embeddings parity with the in-app store (`createConfiguredMemory`): the recall child applies the
|
|
16
|
+
* SAME resilience wrapping — a per-call timeout plus a circuit breaker — so a slow/failing backend
|
|
17
|
+
* cannot stall or repeatedly block recall in the child process either.
|
|
18
|
+
*
|
|
19
|
+
* Secret handling: the raw embeddings api key is NOT copied into the recall child's env. When the
|
|
20
|
+
* key was sourced from a named environment variable (`apiKeyEnv`) we forward only the NAME and the
|
|
21
|
+
* child re-reads the value from its inherited process env at runtime. An inline literal key (no
|
|
22
|
+
* `apiKeyEnv`) still has to transit the child env as a value — that residual is documented on
|
|
23
|
+
* {@link memoryRecallMcpEnv}.
|
|
24
|
+
*
|
|
25
|
+
* A stdio MCP server is injected purely as an `mcpServers` entry via the per-request runtime
|
|
26
|
+
* options. MCP tools are not gated by `tools.allowedTools`, so no allowlist entry is required.
|
|
27
|
+
*/
|
|
28
|
+
export const MEMORY_RECALL_MCP_SERVER_NAME = "mono-agent-memory";
|
|
29
|
+
function isSupermemorySettings(settings) {
|
|
30
|
+
return "supermemory" in settings;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Bound embeddings calls in the recall child so a slow/cold backend cannot stall a turn for the
|
|
34
|
+
* provider default. Mirrors the in-app `createConfiguredMemory` host default (agent-host).
|
|
35
|
+
*/
|
|
36
|
+
export const DEFAULT_RECALL_EMBEDDINGS_TIMEOUT_MS = 10_000;
|
|
37
|
+
/**
|
|
38
|
+
* Resolve recall settings from the single in-app memory block. Returns `undefined` (recall off) only
|
|
39
|
+
* when memory is unconfigured or the recall tool is disabled. When the operator explicitly enables
|
|
40
|
+
* recall on a no-embeddings store (lite tier), settings are returned WITHOUT embeddings so the child
|
|
41
|
+
* serves FTS-only recall — the config layer deliberately supports this forced-on opt-in.
|
|
42
|
+
*/
|
|
43
|
+
export function resolveMemoryRecallSettings(config) {
|
|
44
|
+
const memory = config.memory;
|
|
45
|
+
if (memory === undefined) {
|
|
46
|
+
return undefined;
|
|
47
|
+
}
|
|
48
|
+
if (memory.recallTool?.enabled !== true) {
|
|
49
|
+
return undefined;
|
|
50
|
+
}
|
|
51
|
+
if ((memory.backend ?? "bujo") === "supermemory") {
|
|
52
|
+
const sm = memory.supermemory;
|
|
53
|
+
if (sm === undefined) {
|
|
54
|
+
// Defensive: the loader already rejects backend "supermemory" without a block.
|
|
55
|
+
return undefined;
|
|
56
|
+
}
|
|
57
|
+
return {
|
|
58
|
+
supermemory: {
|
|
59
|
+
baseUrl: sm.baseUrl,
|
|
60
|
+
container: resolveSupermemoryContainer(config),
|
|
61
|
+
// The loader already resolved apiKeyEnv → apiKey, so forward the value (see type doc).
|
|
62
|
+
...(sm.apiKey === undefined ? {} : { apiKey: sm.apiKey }),
|
|
63
|
+
...(sm.timeoutMs === undefined ? {} : { timeoutMs: sm.timeoutMs }),
|
|
64
|
+
},
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
const embeddings = memory.embeddings;
|
|
68
|
+
if (embeddings === undefined) {
|
|
69
|
+
// Explicit opt-in without embeddings → FTS-only recall (no embedding provider built).
|
|
70
|
+
return { root: memory.path };
|
|
71
|
+
}
|
|
72
|
+
return {
|
|
73
|
+
root: memory.path,
|
|
74
|
+
embeddings: {
|
|
75
|
+
provider: embeddings.provider,
|
|
76
|
+
model: embeddings.model,
|
|
77
|
+
...(embeddings.endpoint === undefined ? {} : { endpoint: embeddings.endpoint }),
|
|
78
|
+
// Prefer forwarding the env-var NAME over the resolved secret value (F13): when apiKeyEnv is
|
|
79
|
+
// present the child re-reads the key from its inherited env, so the raw key never lands in the
|
|
80
|
+
// child's spec env. The literal apiKey is kept only as a fallback for the inline-key case.
|
|
81
|
+
...(embeddings.apiKeyEnv === undefined ? {} : { apiKeyEnv: embeddings.apiKeyEnv }),
|
|
82
|
+
...(embeddings.apiKey === undefined ? {} : { apiKey: embeddings.apiKey }),
|
|
83
|
+
...(embeddings.dim === undefined ? {} : { dim: embeddings.dim }),
|
|
84
|
+
...(embeddings.timeoutMs === undefined ? {} : { timeoutMs: embeddings.timeoutMs }),
|
|
85
|
+
...(embeddings.circuitBreaker === undefined ? {} : { circuitBreaker: embeddings.circuitBreaker }),
|
|
86
|
+
},
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Re-read recall settings from the recall server's own environment (the stdio child process).
|
|
91
|
+
*
|
|
92
|
+
* Only `MONO_AGENT_MEMORY_PATH` is required. When the embeddings provider/model are both absent the
|
|
93
|
+
* child runs FTS-only (no embedding provider). When present, the embeddings slice — including the
|
|
94
|
+
* resilience knobs (timeout + circuit breaker) — is rehydrated. The api key is resolved from the
|
|
95
|
+
* inherited env var named by `MONO_AGENT_MEMORY_EMBEDDINGS_API_KEY_ENV` when set, falling back to a
|
|
96
|
+
* literal `MONO_AGENT_MEMORY_EMBEDDINGS_API_KEY` (the inline-key case).
|
|
97
|
+
*/
|
|
98
|
+
export function memoryRecallSettingsFromEnv(env) {
|
|
99
|
+
if (optionalString(env.MONO_AGENT_MEMORY_BACKEND) === "supermemory") {
|
|
100
|
+
const baseUrl = optionalString(env.MONO_AGENT_MEMORY_SUPERMEMORY_BASE_URL);
|
|
101
|
+
if (baseUrl === undefined) {
|
|
102
|
+
throw new Error("memory-recall: missing required environment (MONO_AGENT_MEMORY_SUPERMEMORY_BASE_URL).");
|
|
103
|
+
}
|
|
104
|
+
// Container is forwarded by the parent's resolveSupermemoryContainer (always non-empty). A missing
|
|
105
|
+
// value in the child is a wiring bug, not a default — fail loud rather than search a wrong/empty
|
|
106
|
+
// namespace, mirroring the baseUrl check above.
|
|
107
|
+
const container = optionalString(env.MONO_AGENT_MEMORY_SUPERMEMORY_CONTAINER);
|
|
108
|
+
if (container === undefined) {
|
|
109
|
+
throw new Error("memory-recall: missing required environment (MONO_AGENT_MEMORY_SUPERMEMORY_CONTAINER).");
|
|
110
|
+
}
|
|
111
|
+
const apiKey = optionalString(env.MONO_AGENT_MEMORY_SUPERMEMORY_API_KEY);
|
|
112
|
+
const timeoutMs = parsePositiveInt(optionalString(env.MONO_AGENT_MEMORY_SUPERMEMORY_TIMEOUT_MS), "MONO_AGENT_MEMORY_SUPERMEMORY_TIMEOUT_MS");
|
|
113
|
+
return {
|
|
114
|
+
supermemory: {
|
|
115
|
+
baseUrl,
|
|
116
|
+
container,
|
|
117
|
+
...(apiKey === undefined ? {} : { apiKey }),
|
|
118
|
+
...(timeoutMs === undefined ? {} : { timeoutMs }),
|
|
119
|
+
},
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
const root = optionalString(env.MONO_AGENT_MEMORY_PATH);
|
|
123
|
+
if (root === undefined) {
|
|
124
|
+
throw new Error("memory-recall: missing required environment (MONO_AGENT_MEMORY_PATH).");
|
|
125
|
+
}
|
|
126
|
+
const provider = optionalString(env.MONO_AGENT_MEMORY_EMBEDDINGS_PROVIDER);
|
|
127
|
+
const model = optionalString(env.MONO_AGENT_MEMORY_EMBEDDINGS_MODEL);
|
|
128
|
+
if (provider === undefined && model === undefined) {
|
|
129
|
+
// No embeddings configured → FTS-only recall store.
|
|
130
|
+
return { root };
|
|
131
|
+
}
|
|
132
|
+
if (provider === undefined || model === undefined) {
|
|
133
|
+
throw new Error("memory-recall: incomplete embeddings environment (MONO_AGENT_MEMORY_EMBEDDINGS_PROVIDER and MONO_AGENT_MEMORY_EMBEDDINGS_MODEL must be set together).");
|
|
134
|
+
}
|
|
135
|
+
if (provider !== "ollama" && provider !== "openai") {
|
|
136
|
+
throw new Error(`memory-recall: unsupported MONO_AGENT_MEMORY_EMBEDDINGS_PROVIDER "${provider}" (expected "ollama" or "openai").`);
|
|
137
|
+
}
|
|
138
|
+
const endpoint = optionalString(env.MONO_AGENT_MEMORY_EMBEDDINGS_ENDPOINT);
|
|
139
|
+
const apiKeyEnv = optionalString(env.MONO_AGENT_MEMORY_EMBEDDINGS_API_KEY_ENV);
|
|
140
|
+
// Resolve the key from the named inherited var first (F13); fall back to a literal value.
|
|
141
|
+
const apiKey = (apiKeyEnv === undefined ? undefined : optionalString(env[apiKeyEnv])) ??
|
|
142
|
+
optionalString(env.MONO_AGENT_MEMORY_EMBEDDINGS_API_KEY);
|
|
143
|
+
const dim = parseDim(optionalString(env.MONO_AGENT_MEMORY_EMBEDDINGS_DIM));
|
|
144
|
+
const timeoutMs = parsePositiveInt(optionalString(env.MONO_AGENT_MEMORY_EMBEDDINGS_TIMEOUT_MS), "MONO_AGENT_MEMORY_EMBEDDINGS_TIMEOUT_MS");
|
|
145
|
+
const failureThreshold = parsePositiveInt(optionalString(env.MONO_AGENT_MEMORY_EMBEDDINGS_CIRCUIT_BREAKER_FAILURE_THRESHOLD), "MONO_AGENT_MEMORY_EMBEDDINGS_CIRCUIT_BREAKER_FAILURE_THRESHOLD");
|
|
146
|
+
const cooldownMs = parsePositiveInt(optionalString(env.MONO_AGENT_MEMORY_EMBEDDINGS_CIRCUIT_BREAKER_COOLDOWN_MS), "MONO_AGENT_MEMORY_EMBEDDINGS_CIRCUIT_BREAKER_COOLDOWN_MS");
|
|
147
|
+
const circuitBreaker = failureThreshold === undefined && cooldownMs === undefined
|
|
148
|
+
? undefined
|
|
149
|
+
: {
|
|
150
|
+
...(failureThreshold === undefined ? {} : { failureThreshold }),
|
|
151
|
+
...(cooldownMs === undefined ? {} : { cooldownMs }),
|
|
152
|
+
};
|
|
153
|
+
return {
|
|
154
|
+
root,
|
|
155
|
+
embeddings: {
|
|
156
|
+
provider,
|
|
157
|
+
model,
|
|
158
|
+
...(endpoint === undefined ? {} : { endpoint }),
|
|
159
|
+
...(apiKeyEnv === undefined ? {} : { apiKeyEnv }),
|
|
160
|
+
...(apiKey === undefined ? {} : { apiKey }),
|
|
161
|
+
...(dim === undefined ? {} : { dim }),
|
|
162
|
+
...(timeoutMs === undefined ? {} : { timeoutMs }),
|
|
163
|
+
...(circuitBreaker === undefined ? {} : { circuitBreaker }),
|
|
164
|
+
},
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Env passed to the recall stdio child. Reuses the MONO_AGENT_MEMORY_* names the old memory-mcp used.
|
|
169
|
+
*
|
|
170
|
+
* With no embeddings the child runs FTS-only and only the memory path is emitted. The embeddings
|
|
171
|
+
* resilience knobs (timeout + circuit breaker) are forwarded so the child wraps its provider exactly
|
|
172
|
+
* like the in-app store. SECRET HANDLING (F13): when `apiKeyEnv` is present the env-var NAME is
|
|
173
|
+
* forwarded (NOT the value) and the child re-reads it from its inherited process env; the raw
|
|
174
|
+
* `MONO_AGENT_MEMORY_EMBEDDINGS_API_KEY` value is emitted ONLY for the inline-key residual (an inline
|
|
175
|
+
* `apiKey` with no `apiKeyEnv`), where there is no name to forward.
|
|
176
|
+
*/
|
|
177
|
+
export function memoryRecallMcpEnv(settings) {
|
|
178
|
+
if (isSupermemorySettings(settings)) {
|
|
179
|
+
const sm = settings.supermemory;
|
|
180
|
+
// Forward the RESOLVED key value (not an env-var name): the recall stdio child does not inherit
|
|
181
|
+
// the parent's full env under claude-sdk/codex-app, so a name handoff would fail to authenticate.
|
|
182
|
+
// Same exposure class as the embeddings inline-key residual — the child is our own subprocess.
|
|
183
|
+
return {
|
|
184
|
+
MONO_AGENT_MEMORY_BACKEND: "supermemory",
|
|
185
|
+
MONO_AGENT_MEMORY_SUPERMEMORY_BASE_URL: sm.baseUrl,
|
|
186
|
+
MONO_AGENT_MEMORY_SUPERMEMORY_CONTAINER: sm.container,
|
|
187
|
+
...(sm.apiKey === undefined ? {} : { MONO_AGENT_MEMORY_SUPERMEMORY_API_KEY: sm.apiKey }),
|
|
188
|
+
...(sm.timeoutMs === undefined ? {} : { MONO_AGENT_MEMORY_SUPERMEMORY_TIMEOUT_MS: String(sm.timeoutMs) }),
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
const { embeddings } = settings;
|
|
192
|
+
if (embeddings === undefined) {
|
|
193
|
+
return { MONO_AGENT_MEMORY_PATH: settings.root };
|
|
194
|
+
}
|
|
195
|
+
// Forward the secret only as a last resort: prefer the env-var name passthrough.
|
|
196
|
+
const forwardLiteralApiKey = embeddings.apiKeyEnv === undefined && embeddings.apiKey !== undefined;
|
|
197
|
+
return {
|
|
198
|
+
MONO_AGENT_MEMORY_PATH: settings.root,
|
|
199
|
+
MONO_AGENT_MEMORY_EMBEDDINGS_PROVIDER: embeddings.provider,
|
|
200
|
+
MONO_AGENT_MEMORY_EMBEDDINGS_MODEL: embeddings.model,
|
|
201
|
+
...(embeddings.endpoint === undefined ? {} : { MONO_AGENT_MEMORY_EMBEDDINGS_ENDPOINT: embeddings.endpoint }),
|
|
202
|
+
...(embeddings.apiKeyEnv === undefined ? {} : { MONO_AGENT_MEMORY_EMBEDDINGS_API_KEY_ENV: embeddings.apiKeyEnv }),
|
|
203
|
+
...(forwardLiteralApiKey ? { MONO_AGENT_MEMORY_EMBEDDINGS_API_KEY: embeddings.apiKey } : {}),
|
|
204
|
+
...(embeddings.dim === undefined ? {} : { MONO_AGENT_MEMORY_EMBEDDINGS_DIM: String(embeddings.dim) }),
|
|
205
|
+
...(embeddings.timeoutMs === undefined ? {} : { MONO_AGENT_MEMORY_EMBEDDINGS_TIMEOUT_MS: String(embeddings.timeoutMs) }),
|
|
206
|
+
...(embeddings.circuitBreaker?.failureThreshold === undefined
|
|
207
|
+
? {}
|
|
208
|
+
: { MONO_AGENT_MEMORY_EMBEDDINGS_CIRCUIT_BREAKER_FAILURE_THRESHOLD: String(embeddings.circuitBreaker.failureThreshold) }),
|
|
209
|
+
...(embeddings.circuitBreaker?.cooldownMs === undefined
|
|
210
|
+
? {}
|
|
211
|
+
: { MONO_AGENT_MEMORY_EMBEDDINGS_CIRCUIT_BREAKER_COOLDOWN_MS: String(embeddings.circuitBreaker.cooldownMs) }),
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
export function memoryRecallMcpServerSpec(settings, cwd) {
|
|
215
|
+
return {
|
|
216
|
+
type: "stdio",
|
|
217
|
+
command: process.execPath,
|
|
218
|
+
args: [fileURLToPath(new URL("./memory-recall-main.js", import.meta.url))],
|
|
219
|
+
cwd,
|
|
220
|
+
env: memoryRecallMcpEnv(settings),
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Build the per-request runtime extension that injects the recall server. The cleanup is a no-op:
|
|
225
|
+
* the stdio child owns its store lifecycle and drains on signal (see memory-recall-main).
|
|
226
|
+
*/
|
|
227
|
+
export function createMemoryRecallRuntimeExtension(settings, cwd) {
|
|
228
|
+
return async () => ({
|
|
229
|
+
runtimeOptions: {
|
|
230
|
+
mcpServers: {
|
|
231
|
+
[MEMORY_RECALL_MCP_SERVER_NAME]: memoryRecallMcpServerSpec(settings, cwd),
|
|
232
|
+
},
|
|
233
|
+
},
|
|
234
|
+
cleanup: async () => { },
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Build a RECALL-ONLY store: embeddings + FTS, no chat LLM (recall needs none, so capture/reflect
|
|
239
|
+
* stay disabled here). With no embeddings (lite tier / explicit FTS-only opt-in) the store is built
|
|
240
|
+
* without an embedding provider and serves FTS-only recall.
|
|
241
|
+
*
|
|
242
|
+
* The embedding provider is wrapped with the SAME resilience as the in-app store
|
|
243
|
+
* (`createConfiguredMemory`): a bounded per-call timeout (default
|
|
244
|
+
* {@link DEFAULT_RECALL_EMBEDDINGS_TIMEOUT_MS}) keeps a slow backend from stalling recall, and a
|
|
245
|
+
* circuit breaker fast-fails after repeated failures so a sustained outage stops blocking it.
|
|
246
|
+
*/
|
|
247
|
+
export async function createRecallStore(settings) {
|
|
248
|
+
// The backend packages load lazily so importing this module (the app does, for
|
|
249
|
+
// the runtime extension + settings resolution) never pulls the SQLite/BuJo
|
|
250
|
+
// stack or the Supermemory client into the main process — only the spawned
|
|
251
|
+
// recall child pays for the backend it actually serves.
|
|
252
|
+
if (isSupermemorySettings(settings)) {
|
|
253
|
+
const { createSupermemoryStore } = await import("@mono-agent/memory-supermemory");
|
|
254
|
+
const sm = settings.supermemory;
|
|
255
|
+
return createSupermemoryStore({
|
|
256
|
+
baseUrl: sm.baseUrl,
|
|
257
|
+
container: sm.container,
|
|
258
|
+
...(sm.apiKey === undefined ? {} : { apiKey: sm.apiKey }),
|
|
259
|
+
...(sm.timeoutMs === undefined ? {} : { timeoutMs: sm.timeoutMs }),
|
|
260
|
+
});
|
|
261
|
+
}
|
|
262
|
+
const { createBujoMemoryStore } = await import("@mono-agent/memory/bujo");
|
|
263
|
+
const { embeddings } = settings;
|
|
264
|
+
if (embeddings === undefined) {
|
|
265
|
+
// FTS-only recall: no embedding provider, no dim (mirrors the lite-tier store shape).
|
|
266
|
+
return createBujoMemoryStore({ root: settings.root });
|
|
267
|
+
}
|
|
268
|
+
const providerConfig = {
|
|
269
|
+
provider: embeddings.provider,
|
|
270
|
+
model: embeddings.model,
|
|
271
|
+
...(embeddings.endpoint === undefined ? {} : { endpoint: embeddings.endpoint }),
|
|
272
|
+
...(embeddings.apiKey === undefined ? {} : { apiKey: embeddings.apiKey }),
|
|
273
|
+
timeoutMs: embeddings.timeoutMs ?? DEFAULT_RECALL_EMBEDDINGS_TIMEOUT_MS,
|
|
274
|
+
};
|
|
275
|
+
const breakerOptions = {
|
|
276
|
+
...(embeddings.circuitBreaker?.failureThreshold === undefined
|
|
277
|
+
? {}
|
|
278
|
+
: { failureThreshold: embeddings.circuitBreaker.failureThreshold }),
|
|
279
|
+
...(embeddings.circuitBreaker?.cooldownMs === undefined ? {} : { cooldownMs: embeddings.circuitBreaker.cooldownMs }),
|
|
280
|
+
};
|
|
281
|
+
const { createCircuitBreakerEmbeddingProvider, createEmbeddingProvider } = await import("@mono-agent/memory/search");
|
|
282
|
+
return createBujoMemoryStore({
|
|
283
|
+
root: settings.root,
|
|
284
|
+
embeddings: createCircuitBreakerEmbeddingProvider(createEmbeddingProvider(providerConfig), breakerOptions),
|
|
285
|
+
dim: embeddings.dim ?? 768,
|
|
286
|
+
});
|
|
287
|
+
}
|
|
288
|
+
/** Register the single read-only `memory_recall` tool against a store (bujo or external backend). */
|
|
289
|
+
export function createMemoryRecallServer(store) {
|
|
290
|
+
const server = new McpServer({ name: "agent-memory", version: "0.3.0" });
|
|
291
|
+
server.registerTool("memory_recall", {
|
|
292
|
+
title: "Recall from memory",
|
|
293
|
+
description: "Read-only hybrid (keyword + semantic) search over the agent's long-term memory. Call this proactively whenever you are missing context, unsure about a prior decision, or about to assume or ask the user for something that may already be recorded — recall first, then act.",
|
|
294
|
+
inputSchema: {
|
|
295
|
+
query: z.string().min(1).describe("Natural-language description of what to recall."),
|
|
296
|
+
limit: z.number().int().min(1).max(50).optional().describe("Max results (default 8)."),
|
|
297
|
+
},
|
|
298
|
+
}, async (args) => {
|
|
299
|
+
const topK = clampLimit(args.limit, 8);
|
|
300
|
+
const hits = await store.recall(args.query, { topK });
|
|
301
|
+
if (hits.length === 0) {
|
|
302
|
+
return { content: [{ type: "text", text: `No memories matched "${args.query}".` }], structuredContent: { hits: [] } };
|
|
303
|
+
}
|
|
304
|
+
const text = hits.map((hit) => `${hit.score.toFixed(3)} ${hit.record.text}`).join("\n");
|
|
305
|
+
return {
|
|
306
|
+
content: [{ type: "text", text }],
|
|
307
|
+
structuredContent: { hits: hits.map((hit) => ({ id: hit.record.id, score: hit.score, text: hit.record.text })) },
|
|
308
|
+
};
|
|
309
|
+
});
|
|
310
|
+
return server;
|
|
311
|
+
}
|
|
312
|
+
function clampLimit(limit, fallback) {
|
|
313
|
+
if (limit === undefined || !Number.isFinite(limit)) {
|
|
314
|
+
return fallback;
|
|
315
|
+
}
|
|
316
|
+
return Math.min(50, Math.max(1, Math.trunc(limit)));
|
|
317
|
+
}
|
|
318
|
+
function optionalString(value) {
|
|
319
|
+
if (value === undefined) {
|
|
320
|
+
return undefined;
|
|
321
|
+
}
|
|
322
|
+
const trimmed = value.trim();
|
|
323
|
+
return trimmed.length === 0 ? undefined : trimmed;
|
|
324
|
+
}
|
|
325
|
+
function parseDim(raw) {
|
|
326
|
+
if (raw === undefined) {
|
|
327
|
+
return undefined;
|
|
328
|
+
}
|
|
329
|
+
const parsed = Number(raw);
|
|
330
|
+
if (!Number.isInteger(parsed) || parsed <= 0) {
|
|
331
|
+
throw new Error(`memory-recall: invalid MONO_AGENT_MEMORY_EMBEDDINGS_DIM "${raw}" (expected a positive integer).`);
|
|
332
|
+
}
|
|
333
|
+
return parsed;
|
|
334
|
+
}
|
|
335
|
+
function parsePositiveInt(raw, name) {
|
|
336
|
+
if (raw === undefined) {
|
|
337
|
+
return undefined;
|
|
338
|
+
}
|
|
339
|
+
const parsed = Number(raw);
|
|
340
|
+
if (!Number.isInteger(parsed) || parsed <= 0) {
|
|
341
|
+
throw new Error(`memory-recall: invalid ${name} "${raw}" (expected a positive integer).`);
|
|
342
|
+
}
|
|
343
|
+
return parsed;
|
|
344
|
+
}
|
|
345
|
+
//# sourceMappingURL=memory-recall.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-recall.js","sourceRoot":"","sources":["../src/memory-recall.ts"],"names":[],"mappings":"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"}
|