exovault-mcp-server 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/auth.d.ts +41 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +236 -0
- package/dist/auth.js.map +1 -0
- package/dist/auto-session.d.ts +39 -0
- package/dist/auto-session.d.ts.map +1 -0
- package/dist/auto-session.js +128 -0
- package/dist/auto-session.js.map +1 -0
- package/dist/buffer-persistence.d.ts +35 -0
- package/dist/buffer-persistence.d.ts.map +1 -0
- package/dist/buffer-persistence.js +110 -0
- package/dist/buffer-persistence.js.map +1 -0
- package/dist/coerce-params.d.ts +36 -0
- package/dist/coerce-params.d.ts.map +1 -0
- package/dist/coerce-params.js +120 -0
- package/dist/coerce-params.js.map +1 -0
- package/dist/crypto.d.ts +39 -0
- package/dist/crypto.d.ts.map +1 -0
- package/dist/crypto.js +119 -0
- package/dist/crypto.js.map +1 -0
- package/dist/db.d.ts +350 -0
- package/dist/db.d.ts.map +1 -0
- package/dist/db.js +866 -0
- package/dist/db.js.map +1 -0
- package/dist/embedding-config.d.ts +11 -0
- package/dist/embedding-config.d.ts.map +1 -0
- package/dist/embedding-config.js +24 -0
- package/dist/embedding-config.js.map +1 -0
- package/dist/entity-extraction.d.ts +22 -0
- package/dist/entity-extraction.d.ts.map +1 -0
- package/dist/entity-extraction.js +140 -0
- package/dist/entity-extraction.js.map +1 -0
- package/dist/episodic-headline.d.ts +6 -0
- package/dist/episodic-headline.d.ts.map +1 -0
- package/dist/episodic-headline.js +62 -0
- package/dist/episodic-headline.js.map +1 -0
- package/dist/error-sanitizer.d.ts +20 -0
- package/dist/error-sanitizer.d.ts.map +1 -0
- package/dist/error-sanitizer.js +54 -0
- package/dist/error-sanitizer.js.map +1 -0
- package/dist/extraction-budget.d.ts +39 -0
- package/dist/extraction-budget.d.ts.map +1 -0
- package/dist/extraction-budget.js +122 -0
- package/dist/extraction-budget.js.map +1 -0
- package/dist/extraction-llm.d.ts +22 -0
- package/dist/extraction-llm.d.ts.map +1 -0
- package/dist/extraction-llm.js +32 -0
- package/dist/extraction-llm.js.map +1 -0
- package/dist/extraction-prompt.d.ts +40 -0
- package/dist/extraction-prompt.d.ts.map +1 -0
- package/dist/extraction-prompt.js +176 -0
- package/dist/extraction-prompt.js.map +1 -0
- package/dist/gateway-client.d.ts +303 -0
- package/dist/gateway-client.d.ts.map +1 -0
- package/dist/gateway-client.js +285 -0
- package/dist/gateway-client.js.map +1 -0
- package/dist/gateway-init.d.ts +32 -0
- package/dist/gateway-init.d.ts.map +1 -0
- package/dist/gateway-init.js +71 -0
- package/dist/gateway-init.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1242 -0
- package/dist/index.js.map +1 -0
- package/dist/infer-task-status.d.ts +7 -0
- package/dist/infer-task-status.d.ts.map +1 -0
- package/dist/infer-task-status.js +23 -0
- package/dist/infer-task-status.js.map +1 -0
- package/dist/normalize-agent-id.d.ts +21 -0
- package/dist/normalize-agent-id.d.ts.map +1 -0
- package/dist/normalize-agent-id.js +54 -0
- package/dist/normalize-agent-id.js.map +1 -0
- package/dist/openai.d.ts +14 -0
- package/dist/openai.d.ts.map +1 -0
- package/dist/openai.js +43 -0
- package/dist/openai.js.map +1 -0
- package/dist/rlm/actions.d.ts +31 -0
- package/dist/rlm/actions.d.ts.map +1 -0
- package/dist/rlm/actions.js +241 -0
- package/dist/rlm/actions.js.map +1 -0
- package/dist/rlm/benchmark.d.ts +2 -0
- package/dist/rlm/benchmark.d.ts.map +1 -0
- package/dist/rlm/benchmark.js +215 -0
- package/dist/rlm/benchmark.js.map +1 -0
- package/dist/rlm/execute.d.ts +13 -0
- package/dist/rlm/execute.d.ts.map +1 -0
- package/dist/rlm/execute.js +366 -0
- package/dist/rlm/execute.js.map +1 -0
- package/dist/rlm/index.d.ts +6 -0
- package/dist/rlm/index.d.ts.map +1 -0
- package/dist/rlm/index.js +147 -0
- package/dist/rlm/index.js.map +1 -0
- package/dist/rlm/profiles.d.ts +9 -0
- package/dist/rlm/profiles.d.ts.map +1 -0
- package/dist/rlm/profiles.js +46 -0
- package/dist/rlm/profiles.js.map +1 -0
- package/dist/rlm/types.d.ts +98 -0
- package/dist/rlm/types.d.ts.map +1 -0
- package/dist/rlm/types.js +6 -0
- package/dist/rlm/types.js.map +1 -0
- package/dist/rlm/verify.d.ts +13 -0
- package/dist/rlm/verify.d.ts.map +1 -0
- package/dist/rlm/verify.js +58 -0
- package/dist/rlm/verify.js.map +1 -0
- package/dist/rlm/writeback.d.ts +7 -0
- package/dist/rlm/writeback.d.ts.map +1 -0
- package/dist/rlm/writeback.js +77 -0
- package/dist/rlm/writeback.js.map +1 -0
- package/dist/scripts/backfill-memory-embeddings.d.ts +2 -0
- package/dist/scripts/backfill-memory-embeddings.d.ts.map +1 -0
- package/dist/scripts/backfill-memory-embeddings.js +153 -0
- package/dist/scripts/backfill-memory-embeddings.js.map +1 -0
- package/dist/session-buffer.d.ts +104 -0
- package/dist/session-buffer.d.ts.map +1 -0
- package/dist/session-buffer.js +466 -0
- package/dist/session-buffer.js.map +1 -0
- package/dist/session-dedup.d.ts +30 -0
- package/dist/session-dedup.d.ts.map +1 -0
- package/dist/session-dedup.js +67 -0
- package/dist/session-dedup.js.map +1 -0
- package/dist/session-flush.d.ts +81 -0
- package/dist/session-flush.d.ts.map +1 -0
- package/dist/session-flush.js +169 -0
- package/dist/session-flush.js.map +1 -0
- package/dist/session-lifecycle.d.ts +72 -0
- package/dist/session-lifecycle.d.ts.map +1 -0
- package/dist/session-lifecycle.js +247 -0
- package/dist/session-lifecycle.js.map +1 -0
- package/dist/setup.d.ts +2 -0
- package/dist/setup.d.ts.map +1 -0
- package/dist/setup.js +260 -0
- package/dist/setup.js.map +1 -0
- package/dist/stopwords.d.ts +2 -0
- package/dist/stopwords.d.ts.map +1 -0
- package/dist/stopwords.js +20 -0
- package/dist/stopwords.js.map +1 -0
- package/dist/strip-html.d.ts +5 -0
- package/dist/strip-html.d.ts.map +1 -0
- package/dist/strip-html.js +35 -0
- package/dist/strip-html.js.map +1 -0
- package/dist/task-completion-flush.d.ts +36 -0
- package/dist/task-completion-flush.d.ts.map +1 -0
- package/dist/task-completion-flush.js +97 -0
- package/dist/task-completion-flush.js.map +1 -0
- package/dist/task-lifecycle-types.d.ts +13 -0
- package/dist/task-lifecycle-types.d.ts.map +1 -0
- package/dist/task-lifecycle-types.js +12 -0
- package/dist/task-lifecycle-types.js.map +1 -0
- package/dist/task-lifecycle.d.ts +78 -0
- package/dist/task-lifecycle.d.ts.map +1 -0
- package/dist/task-lifecycle.js +256 -0
- package/dist/task-lifecycle.js.map +1 -0
- package/dist/tools/agent-messages.d.ts +26 -0
- package/dist/tools/agent-messages.d.ts.map +1 -0
- package/dist/tools/agent-messages.js +123 -0
- package/dist/tools/agent-messages.js.map +1 -0
- package/dist/tools/agent-tasks.d.ts +24 -0
- package/dist/tools/agent-tasks.d.ts.map +1 -0
- package/dist/tools/agent-tasks.js +162 -0
- package/dist/tools/agent-tasks.js.map +1 -0
- package/dist/tools/archive-memory.d.ts +2 -0
- package/dist/tools/archive-memory.d.ts.map +1 -0
- package/dist/tools/archive-memory.js +19 -0
- package/dist/tools/archive-memory.js.map +1 -0
- package/dist/tools/blind-index.d.ts +29 -0
- package/dist/tools/blind-index.d.ts.map +1 -0
- package/dist/tools/blind-index.js +53 -0
- package/dist/tools/blind-index.js.map +1 -0
- package/dist/tools/cleanup-memories.d.ts +44 -0
- package/dist/tools/cleanup-memories.d.ts.map +1 -0
- package/dist/tools/cleanup-memories.js +126 -0
- package/dist/tools/cleanup-memories.js.map +1 -0
- package/dist/tools/context-checkpoint.d.ts +28 -0
- package/dist/tools/context-checkpoint.d.ts.map +1 -0
- package/dist/tools/context-checkpoint.js +140 -0
- package/dist/tools/context-checkpoint.js.map +1 -0
- package/dist/tools/context-profiles.d.ts +67 -0
- package/dist/tools/context-profiles.d.ts.map +1 -0
- package/dist/tools/context-profiles.js +30 -0
- package/dist/tools/context-profiles.js.map +1 -0
- package/dist/tools/create-note.d.ts +2 -0
- package/dist/tools/create-note.d.ts.map +1 -0
- package/dist/tools/create-note.js +60 -0
- package/dist/tools/create-note.js.map +1 -0
- package/dist/tools/create-vault.d.ts +5 -0
- package/dist/tools/create-vault.d.ts.map +1 -0
- package/dist/tools/create-vault.js +121 -0
- package/dist/tools/create-vault.js.map +1 -0
- package/dist/tools/decrypt-helpers.d.ts +31 -0
- package/dist/tools/decrypt-helpers.d.ts.map +1 -0
- package/dist/tools/decrypt-helpers.js +33 -0
- package/dist/tools/decrypt-helpers.js.map +1 -0
- package/dist/tools/delete-note.d.ts +2 -0
- package/dist/tools/delete-note.d.ts.map +1 -0
- package/dist/tools/delete-note.js +21 -0
- package/dist/tools/delete-note.js.map +1 -0
- package/dist/tools/explore-graph.d.ts +11 -0
- package/dist/tools/explore-graph.d.ts.map +1 -0
- package/dist/tools/explore-graph.js +169 -0
- package/dist/tools/explore-graph.js.map +1 -0
- package/dist/tools/get-related-memories.d.ts +2 -0
- package/dist/tools/get-related-memories.d.ts.map +1 -0
- package/dist/tools/get-related-memories.js +59 -0
- package/dist/tools/get-related-memories.js.map +1 -0
- package/dist/tools/knowledge-links.d.ts +17 -0
- package/dist/tools/knowledge-links.d.ts.map +1 -0
- package/dist/tools/knowledge-links.js +102 -0
- package/dist/tools/knowledge-links.js.map +1 -0
- package/dist/tools/list-active-agents.d.ts +5 -0
- package/dist/tools/list-active-agents.d.ts.map +1 -0
- package/dist/tools/list-active-agents.js +15 -0
- package/dist/tools/list-active-agents.js.map +1 -0
- package/dist/tools/list-notes.d.ts +2 -0
- package/dist/tools/list-notes.d.ts.map +1 -0
- package/dist/tools/list-notes.js +19 -0
- package/dist/tools/list-notes.js.map +1 -0
- package/dist/tools/list-vaults.d.ts +2 -0
- package/dist/tools/list-vaults.d.ts.map +1 -0
- package/dist/tools/list-vaults.js +19 -0
- package/dist/tools/list-vaults.js.map +1 -0
- package/dist/tools/mmr.d.ts +18 -0
- package/dist/tools/mmr.d.ts.map +1 -0
- package/dist/tools/mmr.js +67 -0
- package/dist/tools/mmr.js.map +1 -0
- package/dist/tools/read-memories.d.ts +2 -0
- package/dist/tools/read-memories.d.ts.map +1 -0
- package/dist/tools/read-memories.js +46 -0
- package/dist/tools/read-memories.js.map +1 -0
- package/dist/tools/read-note.d.ts +2 -0
- package/dist/tools/read-note.d.ts.map +1 -0
- package/dist/tools/read-note.js +35 -0
- package/dist/tools/read-note.js.map +1 -0
- package/dist/tools/read-notes.d.ts +6 -0
- package/dist/tools/read-notes.d.ts.map +1 -0
- package/dist/tools/read-notes.js +45 -0
- package/dist/tools/read-notes.js.map +1 -0
- package/dist/tools/resolve-vault-id.d.ts +6 -0
- package/dist/tools/resolve-vault-id.d.ts.map +1 -0
- package/dist/tools/resolve-vault-id.js +7 -0
- package/dist/tools/resolve-vault-id.js.map +1 -0
- package/dist/tools/rrf.d.ts +28 -0
- package/dist/tools/rrf.d.ts.map +1 -0
- package/dist/tools/rrf.js +19 -0
- package/dist/tools/rrf.js.map +1 -0
- package/dist/tools/search-and-read.d.ts +11 -0
- package/dist/tools/search-and-read.d.ts.map +1 -0
- package/dist/tools/search-and-read.js +208 -0
- package/dist/tools/search-and-read.js.map +1 -0
- package/dist/tools/search-memories.d.ts +13 -0
- package/dist/tools/search-memories.d.ts.map +1 -0
- package/dist/tools/search-memories.js +272 -0
- package/dist/tools/search-memories.js.map +1 -0
- package/dist/tools/search-notes.d.ts +2 -0
- package/dist/tools/search-notes.d.ts.map +1 -0
- package/dist/tools/search-notes.js +94 -0
- package/dist/tools/search-notes.js.map +1 -0
- package/dist/tools/semantic-search.d.ts +7 -0
- package/dist/tools/semantic-search.d.ts.map +1 -0
- package/dist/tools/semantic-search.js +85 -0
- package/dist/tools/semantic-search.js.map +1 -0
- package/dist/tools/session-start.d.ts +24 -0
- package/dist/tools/session-start.d.ts.map +1 -0
- package/dist/tools/session-start.js +256 -0
- package/dist/tools/session-start.js.map +1 -0
- package/dist/tools/stale-tasks.d.ts +22 -0
- package/dist/tools/stale-tasks.d.ts.map +1 -0
- package/dist/tools/stale-tasks.js +39 -0
- package/dist/tools/stale-tasks.js.map +1 -0
- package/dist/tools/temporal-decay.d.ts +21 -0
- package/dist/tools/temporal-decay.d.ts.map +1 -0
- package/dist/tools/temporal-decay.js +32 -0
- package/dist/tools/temporal-decay.js.map +1 -0
- package/dist/tools/update-memory.d.ts +19 -0
- package/dist/tools/update-memory.d.ts.map +1 -0
- package/dist/tools/update-memory.js +230 -0
- package/dist/tools/update-memory.js.map +1 -0
- package/dist/tools/update-note.d.ts +2 -0
- package/dist/tools/update-note.d.ts.map +1 -0
- package/dist/tools/update-note.js +79 -0
- package/dist/tools/update-note.js.map +1 -0
- package/dist/tools/vault-instruction-template.d.ts +17 -0
- package/dist/tools/vault-instruction-template.d.ts.map +1 -0
- package/dist/tools/vault-instruction-template.js +77 -0
- package/dist/tools/vault-instruction-template.js.map +1 -0
- package/dist/tools/wiki-link-sync.d.ts +34 -0
- package/dist/tools/wiki-link-sync.d.ts.map +1 -0
- package/dist/tools/wiki-link-sync.js +132 -0
- package/dist/tools/wiki-link-sync.js.map +1 -0
- package/dist/tools/wrap-tool-handler.d.ts +8 -0
- package/dist/tools/wrap-tool-handler.d.ts.map +1 -0
- package/dist/tools/wrap-tool-handler.js +32 -0
- package/dist/tools/wrap-tool-handler.js.map +1 -0
- package/dist/tools/write-memory.d.ts +34 -0
- package/dist/tools/write-memory.d.ts.map +1 -0
- package/dist/tools/write-memory.js +359 -0
- package/dist/tools/write-memory.js.map +1 -0
- package/dist/usage.d.ts +11 -0
- package/dist/usage.d.ts.map +1 -0
- package/dist/usage.js +38 -0
- package/dist/usage.js.map +1 -0
- package/dist/wiki-link-parser.d.ts +27 -0
- package/dist/wiki-link-parser.d.ts.map +1 -0
- package/dist/wiki-link-parser.js +93 -0
- package/dist/wiki-link-parser.js.map +1 -0
- package/package.json +38 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Extraction LLM client — thin wrapper around AI SDK for session extraction.
|
|
3
|
+
*
|
|
4
|
+
* Creates a reusable client that calls generateText() with the compressed
|
|
5
|
+
* prompt and tracks token usage for budget enforcement.
|
|
6
|
+
*
|
|
7
|
+
* Uses the same pattern as rlm/execute.ts: createOpenAI + generateText.
|
|
8
|
+
*/
|
|
9
|
+
export interface ExtractionClientConfig {
|
|
10
|
+
apiKey: string;
|
|
11
|
+
baseUrl: string;
|
|
12
|
+
modelId: string;
|
|
13
|
+
}
|
|
14
|
+
export interface ExtractionResult {
|
|
15
|
+
text: string;
|
|
16
|
+
inputTokens: number;
|
|
17
|
+
outputTokens: number;
|
|
18
|
+
}
|
|
19
|
+
export interface ExtractionClient {
|
|
20
|
+
extract(prompt: string, maxOutputTokens: number): Promise<ExtractionResult>;
|
|
21
|
+
}
|
|
22
|
+
export declare function createExtractionClient(config: ExtractionClientConfig): ExtractionClient;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extraction-llm.d.ts","sourceRoot":"","sources":["../src/extraction-llm.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAC7E;AAID,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,sBAAsB,GAAG,gBAAgB,CAsBvF"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Extraction LLM client — thin wrapper around AI SDK for session extraction.
|
|
3
|
+
*
|
|
4
|
+
* Creates a reusable client that calls generateText() with the compressed
|
|
5
|
+
* prompt and tracks token usage for budget enforcement.
|
|
6
|
+
*
|
|
7
|
+
* Uses the same pattern as rlm/execute.ts: createOpenAI + generateText.
|
|
8
|
+
*/
|
|
9
|
+
import { generateText } from "ai";
|
|
10
|
+
import { createOpenAI } from "@ai-sdk/openai";
|
|
11
|
+
// ─── Factory ──────────────────────────────────────────────────────────
|
|
12
|
+
export function createExtractionClient(config) {
|
|
13
|
+
const provider = createOpenAI({
|
|
14
|
+
apiKey: config.apiKey,
|
|
15
|
+
baseURL: config.baseUrl,
|
|
16
|
+
});
|
|
17
|
+
const model = provider.chat(config.modelId);
|
|
18
|
+
return {
|
|
19
|
+
async extract(prompt, maxOutputTokens) {
|
|
20
|
+
const result = await generateText({
|
|
21
|
+
model,
|
|
22
|
+
prompt,
|
|
23
|
+
maxOutputTokens,
|
|
24
|
+
});
|
|
25
|
+
return {
|
|
26
|
+
text: result.text,
|
|
27
|
+
inputTokens: result.usage.inputTokens ?? 0,
|
|
28
|
+
outputTokens: result.usage.outputTokens ?? 0,
|
|
29
|
+
};
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extraction-llm.js","sourceRoot":"","sources":["../src/extraction-llm.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAoB9C,yEAAyE;AAEzE,MAAM,UAAU,sBAAsB,CAAC,MAA8B;IACnE,MAAM,QAAQ,GAAG,YAAY,CAAC;QAC5B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO,EAAE,MAAM,CAAC,OAAO;KACxB,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAE5C,OAAO;QACL,KAAK,CAAC,OAAO,CAAC,MAAc,EAAE,eAAuB;YACnD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC;gBAChC,KAAK;gBACL,MAAM;gBACN,eAAe;aAChB,CAAC,CAAC;YAEH,OAAO;gBACL,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC;gBAC1C,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC;aAC7C,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Extraction prompt builder + LLM output parser.
|
|
3
|
+
*
|
|
4
|
+
* Pure functions, zero I/O. Builds a compressed pipe-delimited prompt from
|
|
5
|
+
* session buffer data and parses LLM JSON output into validated memories.
|
|
6
|
+
*
|
|
7
|
+
* Token optimization:
|
|
8
|
+
* - Pipe-delimited format instead of JSON (~75% fewer input tokens)
|
|
9
|
+
* - Only write/search activities (skip reads/system)
|
|
10
|
+
* - Capped at last 20 activities, 150 chars per summary
|
|
11
|
+
* - Short-form schema hint: [{c,t,i,e,s}]
|
|
12
|
+
*/
|
|
13
|
+
import type { SessionBufferData } from "./session-buffer.js";
|
|
14
|
+
export interface ExtractedMemory {
|
|
15
|
+
content: string;
|
|
16
|
+
memoryType: string;
|
|
17
|
+
importance: number;
|
|
18
|
+
entities: string[];
|
|
19
|
+
summary: string;
|
|
20
|
+
}
|
|
21
|
+
/** Memory types allowed in extraction output (no episodic/correction). */
|
|
22
|
+
export declare const ALLOWED_MEMORY_TYPES: readonly ["fact", "skill", "preference", "constraint", "task"];
|
|
23
|
+
/** Maximum activities included in the prompt. */
|
|
24
|
+
export declare const MAX_ACTIVITIES = 20;
|
|
25
|
+
/** Maximum chars per summary in the prompt. */
|
|
26
|
+
export declare const MAX_SUMMARY_CHARS = 150;
|
|
27
|
+
/**
|
|
28
|
+
* Build a compressed prompt from session buffer data for LLM extraction.
|
|
29
|
+
* Filters to write/search activities only, uses pipe-delimited format.
|
|
30
|
+
*/
|
|
31
|
+
export declare function buildCompressedPrompt(data: SessionBufferData): {
|
|
32
|
+
prompt: string;
|
|
33
|
+
estimatedTokens: number;
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Parse LLM text output into validated ExtractedMemory[].
|
|
37
|
+
* Handles: raw JSON array, JSON in markdown fences, short-form + full-form keys.
|
|
38
|
+
* Returns null on total parse failure.
|
|
39
|
+
*/
|
|
40
|
+
export declare function parseExtractionResult(text: string): ExtractedMemory[] | null;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extraction-prompt.d.ts","sourceRoot":"","sources":["../src/extraction-prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAmB,MAAM,qBAAqB,CAAC;AAI9E,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAID,0EAA0E;AAC1E,eAAO,MAAM,oBAAoB,gEAMvB,CAAC;AAEX,iDAAiD;AACjD,eAAO,MAAM,cAAc,KAAK,CAAC;AAEjC,+CAA+C;AAC/C,eAAO,MAAM,iBAAiB,MAAM,CAAC;AAYrC;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,iBAAiB,GAAG;IAC9D,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;CACzB,CAqCA;AAuBD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,EAAE,GAAG,IAAI,CAwB5E"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Extraction prompt builder + LLM output parser.
|
|
3
|
+
*
|
|
4
|
+
* Pure functions, zero I/O. Builds a compressed pipe-delimited prompt from
|
|
5
|
+
* session buffer data and parses LLM JSON output into validated memories.
|
|
6
|
+
*
|
|
7
|
+
* Token optimization:
|
|
8
|
+
* - Pipe-delimited format instead of JSON (~75% fewer input tokens)
|
|
9
|
+
* - Only write/search activities (skip reads/system)
|
|
10
|
+
* - Capped at last 20 activities, 150 chars per summary
|
|
11
|
+
* - Short-form schema hint: [{c,t,i,e,s}]
|
|
12
|
+
*/
|
|
13
|
+
// ─── Constants ────────────────────────────────────────────────────────
|
|
14
|
+
/** Memory types allowed in extraction output (no episodic/correction). */
|
|
15
|
+
export const ALLOWED_MEMORY_TYPES = [
|
|
16
|
+
"fact",
|
|
17
|
+
"skill",
|
|
18
|
+
"preference",
|
|
19
|
+
"constraint",
|
|
20
|
+
"task",
|
|
21
|
+
];
|
|
22
|
+
/** Maximum activities included in the prompt. */
|
|
23
|
+
export const MAX_ACTIVITIES = 20;
|
|
24
|
+
/** Maximum chars per summary in the prompt. */
|
|
25
|
+
export const MAX_SUMMARY_CHARS = 150;
|
|
26
|
+
/** Maximum memories returned from a single extraction. */
|
|
27
|
+
const MAX_EXTRACTED_MEMORIES = 8;
|
|
28
|
+
/** Maximum chars for auto-generated summary from content. */
|
|
29
|
+
const MAX_AUTO_SUMMARY = 80;
|
|
30
|
+
const allowedSet = new Set(ALLOWED_MEMORY_TYPES);
|
|
31
|
+
// ─── buildCompressedPrompt ────────────────────────────────────────────
|
|
32
|
+
/**
|
|
33
|
+
* Build a compressed prompt from session buffer data for LLM extraction.
|
|
34
|
+
* Filters to write/search activities only, uses pipe-delimited format.
|
|
35
|
+
*/
|
|
36
|
+
export function buildCompressedPrompt(data) {
|
|
37
|
+
// Filter: only write/search activities
|
|
38
|
+
const relevant = data.activities.filter((a) => a.category === "write" || a.category === "search");
|
|
39
|
+
// Cap: last MAX_ACTIVITIES
|
|
40
|
+
const capped = relevant.slice(-MAX_ACTIVITIES);
|
|
41
|
+
// Format activity lines
|
|
42
|
+
const activityLines = capped.map((a) => formatActivity(a)).join("\n");
|
|
43
|
+
// Build the full prompt
|
|
44
|
+
const parts = [
|
|
45
|
+
`Agent: ${data.agentId}`,
|
|
46
|
+
`Session: ${capped.length} relevant calls (${data.activities.length} total)`,
|
|
47
|
+
];
|
|
48
|
+
if (data.memoriesWritten.length > 0) {
|
|
49
|
+
parts.push(`Already saved: ${data.memoriesWritten.length} memories`);
|
|
50
|
+
}
|
|
51
|
+
parts.push("");
|
|
52
|
+
parts.push("Activity log:");
|
|
53
|
+
if (activityLines.length > 0) {
|
|
54
|
+
parts.push(activityLines);
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
parts.push("(no write/search activity)");
|
|
58
|
+
}
|
|
59
|
+
parts.push("");
|
|
60
|
+
parts.push(EXTRACTION_INSTRUCTIONS);
|
|
61
|
+
const prompt = parts.join("\n");
|
|
62
|
+
const estimatedTokens = Math.ceil(prompt.length / 4);
|
|
63
|
+
return { prompt, estimatedTokens };
|
|
64
|
+
}
|
|
65
|
+
function formatActivity(a) {
|
|
66
|
+
const time = a.timestamp.slice(11, 16); // HH:MM
|
|
67
|
+
const input = truncate(a.inputSummary, MAX_SUMMARY_CHARS) ?? "";
|
|
68
|
+
const output = truncate(a.outputSummary, MAX_SUMMARY_CHARS) ?? "";
|
|
69
|
+
const parts = [a.tool, time, input, output].filter(Boolean);
|
|
70
|
+
return parts.join("|");
|
|
71
|
+
}
|
|
72
|
+
function truncate(s, max) {
|
|
73
|
+
if (!s)
|
|
74
|
+
return undefined;
|
|
75
|
+
return s.length > max ? s.slice(0, max) : s;
|
|
76
|
+
}
|
|
77
|
+
const EXTRACTION_INSTRUCTIONS = `Extract durable knowledge from the activity log above. Return a JSON array, max 8 items.
|
|
78
|
+
Each item uses short keys: {c: content, t: type, i: importance(1-5), e: [entities], s: summary}
|
|
79
|
+
Types: fact, skill, preference, constraint, task
|
|
80
|
+
Only extract knowledge NOT already saved. Skip ephemeral info.
|
|
81
|
+
Return [] if nothing worth extracting.`;
|
|
82
|
+
// ─── parseExtractionResult ────────────────────────────────────────────
|
|
83
|
+
/**
|
|
84
|
+
* Parse LLM text output into validated ExtractedMemory[].
|
|
85
|
+
* Handles: raw JSON array, JSON in markdown fences, short-form + full-form keys.
|
|
86
|
+
* Returns null on total parse failure.
|
|
87
|
+
*/
|
|
88
|
+
export function parseExtractionResult(text) {
|
|
89
|
+
if (!text || text.trim().length === 0)
|
|
90
|
+
return null;
|
|
91
|
+
const jsonStr = extractJsonArray(text);
|
|
92
|
+
if (!jsonStr)
|
|
93
|
+
return null;
|
|
94
|
+
let parsed;
|
|
95
|
+
try {
|
|
96
|
+
parsed = JSON.parse(jsonStr);
|
|
97
|
+
}
|
|
98
|
+
catch {
|
|
99
|
+
return null;
|
|
100
|
+
}
|
|
101
|
+
if (!Array.isArray(parsed))
|
|
102
|
+
return null;
|
|
103
|
+
const validated = [];
|
|
104
|
+
for (const item of parsed) {
|
|
105
|
+
if (typeof item !== "object" || item === null)
|
|
106
|
+
continue;
|
|
107
|
+
const mem = validateItem(item);
|
|
108
|
+
if (mem)
|
|
109
|
+
validated.push(mem);
|
|
110
|
+
if (validated.length >= MAX_EXTRACTED_MEMORIES)
|
|
111
|
+
break;
|
|
112
|
+
}
|
|
113
|
+
return validated;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Try to extract a JSON array string from text.
|
|
117
|
+
* Handles: raw JSON, markdown code fences, embedded arrays.
|
|
118
|
+
*/
|
|
119
|
+
function extractJsonArray(text) {
|
|
120
|
+
const trimmed = text.trim();
|
|
121
|
+
// Direct parse attempt
|
|
122
|
+
if (trimmed.startsWith("["))
|
|
123
|
+
return trimmed;
|
|
124
|
+
// Markdown code fences: ```json ... ``` or ``` ... ```
|
|
125
|
+
const fenceMatch = trimmed.match(/```(?:json)?\s*\n?([\s\S]*?)\n?\s*```/);
|
|
126
|
+
if (fenceMatch) {
|
|
127
|
+
const inner = fenceMatch[1].trim();
|
|
128
|
+
if (inner.startsWith("["))
|
|
129
|
+
return inner;
|
|
130
|
+
}
|
|
131
|
+
// Look for a JSON array anywhere in the text
|
|
132
|
+
const arrayMatch = trimmed.match(/\[[\s\S]*\]/);
|
|
133
|
+
if (arrayMatch)
|
|
134
|
+
return arrayMatch[0];
|
|
135
|
+
return null;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Validate and normalize a single item from the LLM output.
|
|
139
|
+
* Supports both short-form ({c,t,i,e,s}) and full-form ({content,memoryType,...}).
|
|
140
|
+
*/
|
|
141
|
+
function validateItem(item) {
|
|
142
|
+
// Resolve content (short or full form)
|
|
143
|
+
const content = asString(item.c) || asString(item.content);
|
|
144
|
+
if (!content)
|
|
145
|
+
return null;
|
|
146
|
+
// Resolve memoryType
|
|
147
|
+
const memoryType = asString(item.t) || asString(item.memoryType);
|
|
148
|
+
if (!memoryType || !allowedSet.has(memoryType))
|
|
149
|
+
return null;
|
|
150
|
+
// Resolve importance (default 3, clamp 1-5)
|
|
151
|
+
let importance = asNumber(item.i) ?? asNumber(item.importance) ?? 3;
|
|
152
|
+
importance = Math.max(1, Math.min(5, Math.round(importance)));
|
|
153
|
+
// Resolve entities (default [])
|
|
154
|
+
const rawEntities = item.e ?? item.entities;
|
|
155
|
+
const entities = Array.isArray(rawEntities)
|
|
156
|
+
? rawEntities.filter((e) => typeof e === "string")
|
|
157
|
+
: [];
|
|
158
|
+
// Resolve summary (default: truncated content)
|
|
159
|
+
let summary = asString(item.s) || asString(item.summary);
|
|
160
|
+
if (!summary) {
|
|
161
|
+
summary = content.length > MAX_AUTO_SUMMARY
|
|
162
|
+
? content.slice(0, MAX_AUTO_SUMMARY)
|
|
163
|
+
: content;
|
|
164
|
+
}
|
|
165
|
+
return { content, memoryType, importance, entities, summary };
|
|
166
|
+
}
|
|
167
|
+
function asString(v) {
|
|
168
|
+
if (typeof v === "string" && v.length > 0)
|
|
169
|
+
return v;
|
|
170
|
+
return undefined;
|
|
171
|
+
}
|
|
172
|
+
function asNumber(v) {
|
|
173
|
+
if (typeof v === "number" && !Number.isNaN(v))
|
|
174
|
+
return v;
|
|
175
|
+
return undefined;
|
|
176
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extraction-prompt.js","sourceRoot":"","sources":["../src/extraction-prompt.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gateway client for the ExoVault Agent Gateway HTTP API.
|
|
3
|
+
*
|
|
4
|
+
* When EXOVAULT_AGENT_KEY is configured, the MCP server routes all operations
|
|
5
|
+
* through this client instead of talking to Supabase directly.
|
|
6
|
+
* This ensures the agent key's lastUsedAt is touched on every request,
|
|
7
|
+
* enabling verification polling and unified activity tracking.
|
|
8
|
+
*/
|
|
9
|
+
export declare class GatewayError extends Error {
|
|
10
|
+
status: number;
|
|
11
|
+
body?: unknown | undefined;
|
|
12
|
+
constructor(message: string, status: number, body?: unknown | undefined);
|
|
13
|
+
}
|
|
14
|
+
export declare class GatewayClient {
|
|
15
|
+
private baseUrl;
|
|
16
|
+
private apiKey;
|
|
17
|
+
private sessionRunId?;
|
|
18
|
+
constructor(baseUrl: string, apiKey: string, sessionRunId?: string);
|
|
19
|
+
private request;
|
|
20
|
+
info(): Promise<{
|
|
21
|
+
userId: string;
|
|
22
|
+
integrationId: string;
|
|
23
|
+
agentType: string;
|
|
24
|
+
label: string;
|
|
25
|
+
scopes: string[];
|
|
26
|
+
vaultId: string | null;
|
|
27
|
+
allowedVaultIds: string[] | null;
|
|
28
|
+
restrictToVault: boolean;
|
|
29
|
+
vaultScopePresets?: Record<string, string | null>;
|
|
30
|
+
}>;
|
|
31
|
+
writeMemory(params: {
|
|
32
|
+
content: string;
|
|
33
|
+
memoryType?: string;
|
|
34
|
+
summary?: string;
|
|
35
|
+
vaultId?: string;
|
|
36
|
+
importance?: number;
|
|
37
|
+
confidence?: number;
|
|
38
|
+
agentId?: string;
|
|
39
|
+
agentType?: string;
|
|
40
|
+
modelId?: string;
|
|
41
|
+
agentRunId?: string;
|
|
42
|
+
sourceMessageId?: string;
|
|
43
|
+
writeReason?: string;
|
|
44
|
+
externalWriteId?: string;
|
|
45
|
+
expiresAt?: string;
|
|
46
|
+
metadata?: Record<string, unknown>;
|
|
47
|
+
relatedMemoryIds?: Array<{
|
|
48
|
+
memoryId: string;
|
|
49
|
+
relationType: string;
|
|
50
|
+
}>;
|
|
51
|
+
sourceNoteIds?: string[];
|
|
52
|
+
supersededById?: string;
|
|
53
|
+
entities?: string[];
|
|
54
|
+
dedup?: boolean;
|
|
55
|
+
}): Promise<string>;
|
|
56
|
+
searchMemories(params: {
|
|
57
|
+
query: string;
|
|
58
|
+
topK?: number;
|
|
59
|
+
threshold?: number;
|
|
60
|
+
vaultId?: string;
|
|
61
|
+
memoryType?: string;
|
|
62
|
+
includeArchived?: boolean;
|
|
63
|
+
entity?: string;
|
|
64
|
+
compact?: boolean;
|
|
65
|
+
}): Promise<string>;
|
|
66
|
+
readMemories(memoryIds: string[]): Promise<string>;
|
|
67
|
+
updateMemory(params: {
|
|
68
|
+
memoryId: string;
|
|
69
|
+
content?: string;
|
|
70
|
+
summary?: string;
|
|
71
|
+
memoryType?: string;
|
|
72
|
+
importance?: number;
|
|
73
|
+
confidence?: number;
|
|
74
|
+
entities?: string[];
|
|
75
|
+
relatedMemoryIds?: Array<{
|
|
76
|
+
memoryId: string;
|
|
77
|
+
relationType: string;
|
|
78
|
+
}>;
|
|
79
|
+
sourceNoteIds?: string[];
|
|
80
|
+
isArchived?: boolean;
|
|
81
|
+
metadata?: Record<string, unknown>;
|
|
82
|
+
}): Promise<string>;
|
|
83
|
+
archiveMemory(memoryId: string, archived?: boolean): Promise<string>;
|
|
84
|
+
getRelatedMemories(memoryId: string, limit?: number, vaultId?: string): Promise<string>;
|
|
85
|
+
listActiveAgents(sinceDays?: number, limit?: number): Promise<string>;
|
|
86
|
+
cleanupMemories(params: {
|
|
87
|
+
vaultId?: string;
|
|
88
|
+
maxEpisodicAgeDays?: number;
|
|
89
|
+
maxImportance?: number;
|
|
90
|
+
staleAfterDays?: number;
|
|
91
|
+
dryRun?: boolean;
|
|
92
|
+
}): Promise<string>;
|
|
93
|
+
sessionStart(params: {
|
|
94
|
+
vaultId?: string;
|
|
95
|
+
query?: string;
|
|
96
|
+
summaryOnly?: boolean;
|
|
97
|
+
mode?: string;
|
|
98
|
+
maxEpisodic?: number;
|
|
99
|
+
maxFacts?: number;
|
|
100
|
+
maxTasks?: number;
|
|
101
|
+
maxConstraints?: number;
|
|
102
|
+
includeDocuments?: string[];
|
|
103
|
+
}): Promise<string>;
|
|
104
|
+
contextCheckpoint(params: {
|
|
105
|
+
memories: Array<{
|
|
106
|
+
content: string;
|
|
107
|
+
memoryType?: string;
|
|
108
|
+
summary?: string;
|
|
109
|
+
importance?: number;
|
|
110
|
+
confidence?: number;
|
|
111
|
+
entities?: string[];
|
|
112
|
+
writeReason?: string;
|
|
113
|
+
relatedMemoryIds?: Array<{
|
|
114
|
+
memoryId: string;
|
|
115
|
+
relationType: string;
|
|
116
|
+
}>;
|
|
117
|
+
sourceNoteIds?: string[];
|
|
118
|
+
supersededById?: string;
|
|
119
|
+
}>;
|
|
120
|
+
sessionSummary?: string;
|
|
121
|
+
vaultId?: string;
|
|
122
|
+
agentId?: string;
|
|
123
|
+
modelId?: string;
|
|
124
|
+
agentRunId?: string;
|
|
125
|
+
dedup?: boolean;
|
|
126
|
+
}): Promise<string>;
|
|
127
|
+
listVaults(): Promise<string>;
|
|
128
|
+
listNotes(params: {
|
|
129
|
+
vaultId?: string;
|
|
130
|
+
limit?: number;
|
|
131
|
+
folderId?: string;
|
|
132
|
+
}): Promise<string>;
|
|
133
|
+
readNote(noteId: string): Promise<string>;
|
|
134
|
+
readNotes(noteIds: string[]): Promise<string>;
|
|
135
|
+
searchNotes(params: {
|
|
136
|
+
query: string;
|
|
137
|
+
vaultId?: string;
|
|
138
|
+
limit?: number;
|
|
139
|
+
}): Promise<string>;
|
|
140
|
+
createNote(params: {
|
|
141
|
+
vaultId?: string;
|
|
142
|
+
title: string;
|
|
143
|
+
content: string;
|
|
144
|
+
tags?: string[];
|
|
145
|
+
folderId?: string;
|
|
146
|
+
}): Promise<string>;
|
|
147
|
+
updateNote(params: {
|
|
148
|
+
noteId: string;
|
|
149
|
+
title?: string;
|
|
150
|
+
content?: string;
|
|
151
|
+
tags?: string[];
|
|
152
|
+
}): Promise<string>;
|
|
153
|
+
deleteNote(noteId: string): Promise<string>;
|
|
154
|
+
semanticSearch(params: {
|
|
155
|
+
query: string;
|
|
156
|
+
topK?: number;
|
|
157
|
+
threshold?: number;
|
|
158
|
+
vaultId?: string;
|
|
159
|
+
}): Promise<string>;
|
|
160
|
+
searchAndRead(params: {
|
|
161
|
+
query: string;
|
|
162
|
+
maxNotes?: number;
|
|
163
|
+
vaultId?: string;
|
|
164
|
+
}): Promise<string>;
|
|
165
|
+
listFolders(params: {
|
|
166
|
+
vaultId?: string;
|
|
167
|
+
}): Promise<string>;
|
|
168
|
+
createFolder(params: {
|
|
169
|
+
vaultId?: string;
|
|
170
|
+
name: string;
|
|
171
|
+
parentId?: string | null;
|
|
172
|
+
icon?: string;
|
|
173
|
+
}): Promise<string>;
|
|
174
|
+
moveNote(params: {
|
|
175
|
+
noteId: string;
|
|
176
|
+
folderId: string | null;
|
|
177
|
+
}): Promise<string>;
|
|
178
|
+
createVault(params: {
|
|
179
|
+
name: string;
|
|
180
|
+
icon?: string;
|
|
181
|
+
color?: string;
|
|
182
|
+
}): Promise<string>;
|
|
183
|
+
createTask(params: {
|
|
184
|
+
title: string;
|
|
185
|
+
description?: string;
|
|
186
|
+
vaultId?: string;
|
|
187
|
+
status?: string;
|
|
188
|
+
priority?: number;
|
|
189
|
+
agentId?: string;
|
|
190
|
+
agentRunId?: string;
|
|
191
|
+
assignedAgentId?: string;
|
|
192
|
+
doneWhen?: string;
|
|
193
|
+
dedup?: boolean;
|
|
194
|
+
externalWriteId?: string;
|
|
195
|
+
}): Promise<string>;
|
|
196
|
+
updateTask(params: {
|
|
197
|
+
taskId: string;
|
|
198
|
+
status?: string;
|
|
199
|
+
priority?: number;
|
|
200
|
+
assignedAgentId?: string | null;
|
|
201
|
+
doneWhen?: string | null;
|
|
202
|
+
}): Promise<string>;
|
|
203
|
+
listTasks(params: {
|
|
204
|
+
vaultId?: string;
|
|
205
|
+
status?: string;
|
|
206
|
+
assignedAgentId?: string;
|
|
207
|
+
limit?: number;
|
|
208
|
+
}): Promise<string>;
|
|
209
|
+
getLinks(params: {
|
|
210
|
+
nodeType: string;
|
|
211
|
+
nodeId: string;
|
|
212
|
+
direction?: string;
|
|
213
|
+
limit?: number;
|
|
214
|
+
}): Promise<string>;
|
|
215
|
+
addLink(params: {
|
|
216
|
+
sourceType: string;
|
|
217
|
+
sourceId: string;
|
|
218
|
+
targetType: string;
|
|
219
|
+
targetId: string;
|
|
220
|
+
relationType: string;
|
|
221
|
+
label?: string;
|
|
222
|
+
}): Promise<string>;
|
|
223
|
+
removeLink(linkId: string): Promise<string>;
|
|
224
|
+
exploreGraph(params: {
|
|
225
|
+
query?: string;
|
|
226
|
+
nodeId?: string;
|
|
227
|
+
nodeType?: "note" | "memory";
|
|
228
|
+
maxHops?: number;
|
|
229
|
+
maxNodes?: number;
|
|
230
|
+
vaultId?: string;
|
|
231
|
+
}): Promise<string>;
|
|
232
|
+
ingestTurn(params: {
|
|
233
|
+
content: string;
|
|
234
|
+
role: "user" | "assistant";
|
|
235
|
+
vaultId?: string;
|
|
236
|
+
agentId?: string;
|
|
237
|
+
agentRunId?: string;
|
|
238
|
+
signalThreshold?: number;
|
|
239
|
+
}): Promise<string>;
|
|
240
|
+
getSettings(vaultId?: string): Promise<string>;
|
|
241
|
+
updateSettings(params: {
|
|
242
|
+
vaultId?: string;
|
|
243
|
+
retention?: Record<string, number | null>;
|
|
244
|
+
autoLinking?: Record<string, boolean | number | null>;
|
|
245
|
+
lifecycle?: Record<string, boolean | number | null>;
|
|
246
|
+
documents?: Record<string, {
|
|
247
|
+
content: string;
|
|
248
|
+
inheritMode: string;
|
|
249
|
+
agentEditable?: boolean;
|
|
250
|
+
appendOnly?: boolean;
|
|
251
|
+
} | null>;
|
|
252
|
+
}): Promise<string>;
|
|
253
|
+
/**
|
|
254
|
+
* Record a tool call in the agent_sessions table. Fire-and-forget —
|
|
255
|
+
* errors are swallowed so tracking never blocks tool execution.
|
|
256
|
+
*/
|
|
257
|
+
trackSession(params: {
|
|
258
|
+
toolName: string;
|
|
259
|
+
agentRunId: string;
|
|
260
|
+
agentId?: string;
|
|
261
|
+
agentType?: string;
|
|
262
|
+
agentLabel?: string;
|
|
263
|
+
modelId?: string;
|
|
264
|
+
vaultId?: string;
|
|
265
|
+
inputSummary?: string;
|
|
266
|
+
outputSummary?: string;
|
|
267
|
+
}): Promise<void>;
|
|
268
|
+
sendMessage(params: {
|
|
269
|
+
targetId: string;
|
|
270
|
+
content: string;
|
|
271
|
+
category?: string;
|
|
272
|
+
priority?: number;
|
|
273
|
+
subject?: string;
|
|
274
|
+
vaultId?: string;
|
|
275
|
+
expiresInDays?: number;
|
|
276
|
+
metadata?: Record<string, unknown>;
|
|
277
|
+
}): Promise<string>;
|
|
278
|
+
ackMessage(messageId: string): Promise<string>;
|
|
279
|
+
readMessages(params: {
|
|
280
|
+
status?: string;
|
|
281
|
+
category?: string;
|
|
282
|
+
limit?: number;
|
|
283
|
+
includeBroadcast?: boolean;
|
|
284
|
+
vaultId?: string;
|
|
285
|
+
}): Promise<string>;
|
|
286
|
+
getPendingMessages(params: {
|
|
287
|
+
limit?: number;
|
|
288
|
+
vaultId?: string;
|
|
289
|
+
}): Promise<string>;
|
|
290
|
+
readDocument(params: {
|
|
291
|
+
documentType: "soul" | "instructions" | "skills" | "checks";
|
|
292
|
+
vaultId?: string;
|
|
293
|
+
}): Promise<string>;
|
|
294
|
+
readDocs(params: {
|
|
295
|
+
slug?: string;
|
|
296
|
+
list?: boolean;
|
|
297
|
+
}): Promise<string>;
|
|
298
|
+
updateDocument(params: {
|
|
299
|
+
vaultId?: string;
|
|
300
|
+
documentType: "instructions" | "skills" | "checks";
|
|
301
|
+
appendContent: string;
|
|
302
|
+
}): Promise<string>;
|
|
303
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gateway-client.d.ts","sourceRoot":"","sources":["../src/gateway-client.ts"],"names":[],"mappings":"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"}
|