skillscript-runtime 0.10.0 → 0.13.2
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 +18 -42
- package/dist/bootstrap.d.ts.map +1 -1
- package/dist/bootstrap.js +18 -8
- package/dist/bootstrap.js.map +1 -1
- package/dist/cli.js +5 -6
- package/dist/cli.js.map +1 -1
- package/dist/connectors/agent-noop.d.ts +2 -2
- package/dist/connectors/agent-noop.d.ts.map +1 -1
- package/dist/connectors/index.d.ts.map +1 -1
- package/dist/connectors/index.js +5 -3
- package/dist/connectors/index.js.map +1 -1
- package/dist/connectors/local-model-mcp.d.ts +3 -3
- package/dist/connectors/local-model-mcp.d.ts.map +1 -1
- package/dist/connectors/local-model.d.ts +30 -11
- package/dist/connectors/local-model.d.ts.map +1 -1
- package/dist/connectors/local-model.js +44 -12
- package/dist/connectors/local-model.js.map +1 -1
- package/dist/connectors/mcp-remote.d.ts +3 -3
- package/dist/connectors/mcp-remote.d.ts.map +1 -1
- package/dist/connectors/mcp.d.ts +3 -3
- package/dist/connectors/mcp.d.ts.map +1 -1
- package/dist/connectors/memory-store-mcp.d.ts +3 -3
- package/dist/connectors/memory-store-mcp.d.ts.map +1 -1
- package/dist/connectors/memory-store-mcp.js +3 -1
- package/dist/connectors/memory-store-mcp.js.map +1 -1
- package/dist/connectors/memory-store.d.ts +26 -6
- package/dist/connectors/memory-store.d.ts.map +1 -1
- package/dist/connectors/memory-store.js +84 -15
- package/dist/connectors/memory-store.js.map +1 -1
- package/dist/connectors/registry.d.ts +28 -5
- package/dist/connectors/registry.d.ts.map +1 -1
- package/dist/connectors/registry.js +34 -11
- package/dist/connectors/registry.js.map +1 -1
- package/dist/connectors/skill-store.d.ts +3 -3
- package/dist/connectors/skill-store.d.ts.map +1 -1
- package/dist/connectors/sqlite-skill-store.d.ts +27 -3
- package/dist/connectors/sqlite-skill-store.d.ts.map +1 -1
- package/dist/connectors/sqlite-skill-store.js +85 -58
- package/dist/connectors/sqlite-skill-store.js.map +1 -1
- package/dist/connectors/types.d.ts +86 -9
- package/dist/connectors/types.d.ts.map +1 -1
- package/dist/connectors/types.js.map +1 -1
- package/dist/errors.d.ts +6 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +8 -0
- package/dist/errors.js.map +1 -1
- package/dist/runtime-config.d.ts +0 -2
- package/dist/runtime-config.d.ts.map +1 -1
- package/dist/runtime-config.js +1 -1
- package/dist/runtime-config.js.map +1 -1
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +24 -29
- package/dist/runtime.js.map +1 -1
- package/dist/testing/conformance.d.ts.map +1 -1
- package/dist/testing/conformance.js +12 -6
- package/dist/testing/conformance.js.map +1 -1
- package/examples/README.md +13 -13
- package/examples/connectors/LocalModelTemplate/LocalModelTemplate.ts +138 -0
- package/examples/connectors/LocalModelTemplate/README.md +134 -0
- package/examples/connectors/McpConnectorTemplate/McpConnectorTemplate.ts +200 -0
- package/examples/connectors/McpConnectorTemplate/README.md +153 -0
- package/examples/connectors/MemoryStoreTemplate/MemoryStoreTemplate.ts +155 -0
- package/examples/connectors/MemoryStoreTemplate/README.md +169 -0
- package/examples/connectors/README.md +47 -0
- package/examples/connectors/SkillStoreTemplate/README.md +143 -0
- package/examples/connectors/SkillStoreTemplate/SkillStoreTemplate.ts +199 -0
- package/examples/{hello.skill.provenance.json → skillscripts/hello.skill.provenance.json} +1 -1
- package/package.json +1 -1
- package/scaffold/config.toml +8 -12
- package/scaffold/connectors.json +4 -4
- /package/examples/{classify-support-ticket.skill.md → skillscripts/classify-support-ticket.skill.md} +0 -0
- /package/examples/{cut-release-tag.skill.md → skillscripts/cut-release-tag.skill.md} +0 -0
- /package/examples/{doc-qa-with-citations.skill.md → skillscripts/doc-qa-with-citations.skill.md} +0 -0
- /package/examples/{feedback-sentiment-scan.skill.md → skillscripts/feedback-sentiment-scan.skill.md} +0 -0
- /package/examples/{hello.skill.md → skillscripts/hello.skill.md} +0 -0
- /package/examples/{morning-brief.skill.md → skillscripts/morning-brief.skill.md} +0 -0
- /package/examples/{queue-length-monitor.skill.md → skillscripts/queue-length-monitor.skill.md} +0 -0
- /package/examples/{service-health-watch.skill.md → skillscripts/service-health-watch.skill.md} +0 -0
- /package/examples/{youtrack-morning-sweep.skill.md → skillscripts/youtrack-morning-sweep.skill.md} +0 -0
|
@@ -1,16 +1,27 @@
|
|
|
1
|
-
import type { LocalModel,
|
|
1
|
+
import type { LocalModel, LocalModelCapabilities, ManifestInfo } from "./types.js";
|
|
2
2
|
/**
|
|
3
|
-
* Ollama HTTP client.
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
3
|
+
* Ollama HTTP client. Bundled reference implementation of `LocalModel` —
|
|
4
|
+
* wraps `POST /api/generate` against a running Ollama instance.
|
|
5
|
+
*
|
|
6
|
+
* Wired via `substrate.local_model: "ollama"` (or `{type: "ollama", config: {...}}`)
|
|
7
|
+
* in `connectors.json`. Default is no LocalModel wired; adopters opt in.
|
|
7
8
|
*
|
|
8
9
|
* Configuration:
|
|
9
|
-
* - `baseUrl` — Ollama endpoint
|
|
10
|
+
* - `baseUrl` — Ollama endpoint. Default `http://localhost:11434` (Ollama
|
|
11
|
+
* convention). Can be set via the `OLLAMA_BASE_URL` env var or
|
|
12
|
+
* `substrate.local_model.config.baseUrl` in `connectors.json`.
|
|
10
13
|
* - `defaultModelTag` — the Ollama model tag this instance dispatches to
|
|
11
|
-
* (e.g. `gemma2:9b`).
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
+
* (e.g. `gemma2:9b`, `llama3.1:8b`, `qwen2.5:7b`). **Required** — must
|
|
15
|
+
* be a model already pulled on the Ollama instance. v0.13.1 made this
|
|
16
|
+
* required after observing silent defaults could target a model the
|
|
17
|
+
* adopter hadn't pulled.
|
|
18
|
+
* - `timeoutMs` — per-call timeout. Default 60s. Per-op overrides via the
|
|
19
|
+
* `# Timeout:` header.
|
|
20
|
+
*
|
|
21
|
+
* Adopters wanting OpenAI-compat, Anthropic-compat, vLLM, TGI, or any other
|
|
22
|
+
* LocalModel substrate fork `examples/connectors/LocalModelTemplate/` and
|
|
23
|
+
* register their impl programmatically (substrate `custom` form via
|
|
24
|
+
* `connectors.json` is deferred until async-bootstrap support lands).
|
|
14
25
|
*/
|
|
15
26
|
export interface OllamaConfig {
|
|
16
27
|
baseUrl?: string;
|
|
@@ -18,11 +29,19 @@ export interface OllamaConfig {
|
|
|
18
29
|
timeoutMs?: number;
|
|
19
30
|
}
|
|
20
31
|
export declare class OllamaLocalModel implements LocalModel {
|
|
21
|
-
static staticCapabilities():
|
|
32
|
+
static staticCapabilities(): LocalModelCapabilities;
|
|
22
33
|
private readonly baseUrl;
|
|
23
34
|
private readonly defaultModelTag;
|
|
24
35
|
private readonly timeoutMs;
|
|
36
|
+
/**
|
|
37
|
+
* v0.13.0 — manifest cache now distinguishes success from failure.
|
|
38
|
+
* On success: `{ version, models, fetchError: null }`. On failure:
|
|
39
|
+
* `{ version, models: [], fetchError: <message> }` — and we DO NOT cache
|
|
40
|
+
* the failure (next `manifest()` call retries the fetch). Closes the
|
|
41
|
+
* silent-empty-array footgun from the prior `.catch(() => [])` pattern.
|
|
42
|
+
*/
|
|
25
43
|
private manifestCache;
|
|
44
|
+
private lastFetchErrorLogged;
|
|
26
45
|
constructor(config: OllamaConfig);
|
|
27
46
|
run(prompt: string, opts: {
|
|
28
47
|
maxTokens?: number;
|
|
@@ -34,7 +53,7 @@ export declare class OllamaLocalModel implements LocalModel {
|
|
|
34
53
|
* call) flushes it. Authors don't add new models often enough to justify
|
|
35
54
|
* polling on every dispatch.
|
|
36
55
|
*/
|
|
37
|
-
manifest(): Promise<ManifestInfo
|
|
56
|
+
manifest(): Promise<ManifestInfo<"local_model">>;
|
|
38
57
|
invalidateManifest(): void;
|
|
39
58
|
private fetchInstalledModels;
|
|
40
59
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-model.d.ts","sourceRoot":"","sources":["../../src/connectors/local-model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"local-model.d.ts","sourceRoot":"","sources":["../../src/connectors/local-model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAKnF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,gBAAiB,YAAW,UAAU;IACjD,MAAM,CAAC,kBAAkB,IAAI,sBAAsB;IAcnD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC;;;;;;OAMG;IACH,OAAO,CAAC,aAAa,CAAwE;IAC7F,OAAO,CAAC,oBAAoB,CAAuB;gBAEvC,MAAM,EAAE,YAAY;IAM1B,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAuCxF;;;;;OAKG;IACG,QAAQ,IAAI,OAAO,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;IAsCtD,kBAAkB,IAAI,IAAI;YAIZ,oBAAoB;CAiBnC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { messageOf } from "../errors.js";
|
|
1
2
|
const CONTRACT_VERSION = "1.0.0";
|
|
2
3
|
export class OllamaLocalModel {
|
|
3
4
|
static staticCapabilities() {
|
|
@@ -16,7 +17,15 @@ export class OllamaLocalModel {
|
|
|
16
17
|
baseUrl;
|
|
17
18
|
defaultModelTag;
|
|
18
19
|
timeoutMs;
|
|
20
|
+
/**
|
|
21
|
+
* v0.13.0 — manifest cache now distinguishes success from failure.
|
|
22
|
+
* On success: `{ version, models, fetchError: null }`. On failure:
|
|
23
|
+
* `{ version, models: [], fetchError: <message> }` — and we DO NOT cache
|
|
24
|
+
* the failure (next `manifest()` call retries the fetch). Closes the
|
|
25
|
+
* silent-empty-array footgun from the prior `.catch(() => [])` pattern.
|
|
26
|
+
*/
|
|
19
27
|
manifestCache = null;
|
|
28
|
+
lastFetchErrorLogged = null;
|
|
20
29
|
constructor(config) {
|
|
21
30
|
this.baseUrl = config.baseUrl ?? "http://localhost:11434";
|
|
22
31
|
this.defaultModelTag = config.defaultModelTag;
|
|
@@ -68,17 +77,39 @@ export class OllamaLocalModel {
|
|
|
68
77
|
* polling on every dispatch.
|
|
69
78
|
*/
|
|
70
79
|
async manifest() {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
80
|
+
let models;
|
|
81
|
+
let fetchError = null;
|
|
82
|
+
if (this.manifestCache !== null) {
|
|
83
|
+
// Successful fetch was cached; reuse until `invalidateManifest()`.
|
|
84
|
+
models = this.manifestCache.models;
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
// No cached success — try to fetch. On failure, surface the error in
|
|
88
|
+
// the manifest (don't cache) so adopters see WHY the model list is
|
|
89
|
+
// empty + the next call retries.
|
|
90
|
+
try {
|
|
91
|
+
models = await this.fetchInstalledModels();
|
|
92
|
+
this.manifestCache = { version: "1", models, fetchError: null };
|
|
93
|
+
}
|
|
94
|
+
catch (err) {
|
|
95
|
+
models = [];
|
|
96
|
+
fetchError = messageOf(err);
|
|
97
|
+
// v0.13.0 — log once per unique error so live ops + dev sees it,
|
|
98
|
+
// but don't spam on every dashboard refresh. Deduped by message.
|
|
99
|
+
if (fetchError !== this.lastFetchErrorLogged) {
|
|
100
|
+
process.stderr.write(`[OllamaLocalModel] manifest fetch failed against ${this.baseUrl}/api/tags: ${fetchError}\n`);
|
|
101
|
+
this.lastFetchErrorLogged = fetchError;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
74
104
|
}
|
|
75
105
|
return {
|
|
76
|
-
capabilities_version:
|
|
106
|
+
capabilities_version: "1",
|
|
77
107
|
manifest: {
|
|
78
108
|
kind: "ollama",
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
models_available:
|
|
109
|
+
endpoint: this.baseUrl,
|
|
110
|
+
default_model: this.defaultModelTag,
|
|
111
|
+
models_available: models,
|
|
112
|
+
...(fetchError !== null ? { fetch_error: fetchError } : {}),
|
|
82
113
|
},
|
|
83
114
|
};
|
|
84
115
|
}
|
|
@@ -90,14 +121,15 @@ export class OllamaLocalModel {
|
|
|
90
121
|
const t = setTimeout(() => controller.abort(), 5_000);
|
|
91
122
|
try {
|
|
92
123
|
const resp = await fetch(`${this.baseUrl}/api/tags`, { signal: controller.signal });
|
|
93
|
-
if (!resp.ok)
|
|
94
|
-
return []
|
|
124
|
+
if (!resp.ok) {
|
|
125
|
+
// v0.13.0 — was `return []` (silent). Now throws so manifest() can
|
|
126
|
+
// surface the HTTP failure in `fetch_error` instead of caching an
|
|
127
|
+
// empty model list and pretending Ollama replied successfully.
|
|
128
|
+
throw new Error(`HTTP ${resp.status} ${resp.statusText} from ${this.baseUrl}/api/tags`);
|
|
129
|
+
}
|
|
95
130
|
const data = (await resp.json());
|
|
96
131
|
return (data.models ?? []).map((m) => m.name ?? "").filter(Boolean);
|
|
97
132
|
}
|
|
98
|
-
catch {
|
|
99
|
-
return [];
|
|
100
|
-
}
|
|
101
133
|
finally {
|
|
102
134
|
clearTimeout(t);
|
|
103
135
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-model.js","sourceRoot":"","sources":["../../src/connectors/local-model.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"local-model.js","sourceRoot":"","sources":["../../src/connectors/local-model.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { McpConnector, McpDispatchCtx,
|
|
1
|
+
import type { McpConnector, McpDispatchCtx, McpConnectorCapabilities, ManifestInfo } from "./types.js";
|
|
2
2
|
/** Wire-format options for stdio framing between this process and the spawned MCP child. */
|
|
3
3
|
export type RemoteMcpFraming = "lsp" | "newline";
|
|
4
4
|
/**
|
|
@@ -32,7 +32,7 @@ export declare class RemoteMcpDispatchError extends Error {
|
|
|
32
32
|
}
|
|
33
33
|
export declare class RemoteMcpConnector implements McpConnector {
|
|
34
34
|
private readonly config;
|
|
35
|
-
static staticCapabilities():
|
|
35
|
+
static staticCapabilities(): McpConnectorCapabilities;
|
|
36
36
|
/**
|
|
37
37
|
* Closed-set registry factory. Validates config shape, constructs the
|
|
38
38
|
* instance. The spawn + handshake are deferred to first dispatch (or
|
|
@@ -60,7 +60,7 @@ export declare class RemoteMcpConnector implements McpConnector {
|
|
|
60
60
|
start(): Promise<unknown>;
|
|
61
61
|
private doStart;
|
|
62
62
|
call(toolName: string, args: Record<string, unknown>, _ctxOverrides?: McpDispatchCtx): Promise<unknown>;
|
|
63
|
-
manifest(): Promise<ManifestInfo
|
|
63
|
+
manifest(): Promise<ManifestInfo<"mcp_connector">>;
|
|
64
64
|
/**
|
|
65
65
|
* Graceful shutdown. Best-effort `shutdown` JSON-RPC request, then
|
|
66
66
|
* SIGTERM, then SIGKILL fallback after `shutdownTimeoutMs`. Idempotent.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-remote.d.ts","sourceRoot":"","sources":["../../src/connectors/mcp-remote.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EACV,YAAY,EACZ,cAAc,EACd,
|
|
1
|
+
{"version":3,"file":"mcp-remote.d.ts","sourceRoot":"","sources":["../../src/connectors/mcp-remote.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EACV,YAAY,EACZ,cAAc,EACd,wBAAwB,EACxB,YAAY,EACb,MAAM,YAAY,CAAC;AAIpB,4FAA4F;AAC5F,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,SAAS,CAAC;AAEjD;;;;;;;GAOG;AACH,MAAM,WAAW,eAAe;IAC9B,0EAA0E;IAC1E,OAAO,EAAE,MAAM,CAAC;IAChB,6CAA6C;IAC7C,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,2EAA2E;IAC3E,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,kDAAkD;IAClD,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,+EAA+E;IAC/E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,6EAA6E;IAC7E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qFAAqF;IACrF,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAsBD,iFAAiF;AACjF,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,SAAgB,WAAW,EAAE,OAAO,CAAC;gBACzB,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,OAAO;CAKnD;AAED,qBAAa,kBAAmB,YAAW,YAAY;IAgEzC,OAAO,CAAC,QAAQ,CAAC,MAAM;IA/DnC,MAAM,CAAC,kBAAkB,IAAI,wBAAwB;IAarD;;;;;OAKG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,kBAAkB;IAgCtE,OAAO,CAAC,KAAK,CAA2B;IACxC,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,OAAO,CAA2C;IAC1D,OAAO,CAAC,aAAa,CAAmB;IACxC,OAAO,CAAC,iBAAiB,CAA+B;IACxD,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,UAAU,CAAoB;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;IAC3C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;gBAEd,MAAM,EAAE,eAAe;IAOpD;;;;OAIG;IACH,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC;YAMX,OAAO;IAoDf,IAAI,CACR,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,aAAa,CAAC,EAAE,cAAc,GAC7B,OAAO,CAAC,OAAO,CAAC;IA2Bb,QAAQ,IAAI,OAAO,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;IAcxD;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA0B9B,uFAAuF;IACvF,iBAAiB,IAAI,SAAS,MAAM,EAAE;IAMtC,OAAO,CAAC,WAAW;IA+BnB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,QAAQ;IAoBhB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,oBAAoB;IAoB5B,OAAO,CAAC,gBAAgB;CAOzB"}
|
package/dist/connectors/mcp.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { McpConnector, McpDispatchCtx,
|
|
1
|
+
import type { McpConnector, McpDispatchCtx, McpConnectorCapabilities, ManifestInfo } from "./types.js";
|
|
2
2
|
/**
|
|
3
3
|
* Callback-based McpConnector. Wraps a user-supplied dispatch function and
|
|
4
4
|
* surfaces it through the McpConnector contract. Useful for:
|
|
@@ -14,9 +14,9 @@ import type { McpConnector, McpDispatchCtx, StaticCapabilities, ManifestInfo } f
|
|
|
14
14
|
export type DispatchFn = (toolName: string, args: Record<string, unknown>, ctxOverrides?: McpDispatchCtx) => Promise<unknown>;
|
|
15
15
|
export declare class CallbackMcpConnector implements McpConnector {
|
|
16
16
|
private readonly dispatchFn;
|
|
17
|
-
static staticCapabilities():
|
|
17
|
+
static staticCapabilities(): McpConnectorCapabilities;
|
|
18
18
|
constructor(dispatchFn: DispatchFn);
|
|
19
19
|
call(toolName: string, args: Record<string, unknown>, ctxOverrides?: McpDispatchCtx): Promise<unknown>;
|
|
20
|
-
manifest(): Promise<ManifestInfo
|
|
20
|
+
manifest(): Promise<ManifestInfo<"mcp_connector">>;
|
|
21
21
|
}
|
|
22
22
|
//# sourceMappingURL=mcp.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/connectors/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,cAAc,EACd,
|
|
1
|
+
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/connectors/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,cAAc,EACd,wBAAwB,EACxB,YAAY,EACb,MAAM,YAAY,CAAC;AAIpB;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,UAAU,GAAG,CACvB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,YAAY,CAAC,EAAE,cAAc,KAC1B,OAAO,CAAC,OAAO,CAAC,CAAC;AAEtB,qBAAa,oBAAqB,YAAW,YAAY;IAc3C,OAAO,CAAC,QAAQ,CAAC,UAAU;IAbvC,MAAM,CAAC,kBAAkB,IAAI,wBAAwB;gBAaxB,UAAU,EAAE,UAAU;IAEnD,IAAI,CACF,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,YAAY,CAAC,EAAE,cAAc,GAC5B,OAAO,CAAC,OAAO,CAAC;IAIb,QAAQ,IAAI,OAAO,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;CAQzD"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { McpConnector, McpDispatchCtx,
|
|
1
|
+
import type { McpConnector, McpDispatchCtx, McpConnectorCapabilities, ManifestInfo, MemoryStore } from "./types.js";
|
|
2
2
|
export declare class MemoryStoreMcpConnector implements McpConnector {
|
|
3
3
|
private readonly memoryStore;
|
|
4
|
-
static staticCapabilities():
|
|
4
|
+
static staticCapabilities(): McpConnectorCapabilities;
|
|
5
5
|
/**
|
|
6
6
|
* v0.9.1 — declared tool surface. The bridge dispatches two canonical
|
|
7
7
|
* tools: `query` (read) and `memory_write` (write). Bare-form `$ memory`
|
|
@@ -15,6 +15,6 @@ export declare class MemoryStoreMcpConnector implements McpConnector {
|
|
|
15
15
|
call(toolName: string, args: Record<string, unknown>, _ctxOverrides?: McpDispatchCtx): Promise<unknown>;
|
|
16
16
|
private dispatchQuery;
|
|
17
17
|
private dispatchWrite;
|
|
18
|
-
manifest(): Promise<ManifestInfo
|
|
18
|
+
manifest(): Promise<ManifestInfo<"mcp_connector">>;
|
|
19
19
|
}
|
|
20
20
|
//# sourceMappingURL=memory-store-mcp.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-store-mcp.d.ts","sourceRoot":"","sources":["../../src/connectors/memory-store-mcp.ts"],"names":[],"mappings":"AAmCA,OAAO,KAAK,EACV,YAAY,EACZ,cAAc,EACd,
|
|
1
|
+
{"version":3,"file":"memory-store-mcp.d.ts","sourceRoot":"","sources":["../../src/connectors/memory-store-mcp.ts"],"names":[],"mappings":"AAmCA,OAAO,KAAK,EACV,YAAY,EACZ,cAAc,EACd,wBAAwB,EACxB,YAAY,EACZ,WAAW,EAGZ,MAAM,YAAY,CAAC;AAIpB,qBAAa,uBAAwB,YAAW,YAAY;IA6B9C,OAAO,CAAC,QAAQ,CAAC,WAAW;IA5BxC,MAAM,CAAC,kBAAkB,IAAI,wBAAwB;IAgBrD;;;;;;;OAOG;IACH,MAAM,CAAC,WAAW,IAAI,MAAM,EAAE;gBAID,WAAW,EAAE,WAAW;IAE/C,IAAI,CACR,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,aAAa,CAAC,EAAE,cAAc,GAC7B,OAAO,CAAC,OAAO,CAAC;YAWL,aAAa;YA4Bb,aAAa;IAwBrB,QAAQ,IAAI,OAAO,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;CAUzD"}
|
|
@@ -44,7 +44,9 @@ export class MemoryStoreMcpConnector {
|
|
|
44
44
|
supports_identity_propagation: false,
|
|
45
45
|
supports_streaming_responses: false,
|
|
46
46
|
supports_batch: false,
|
|
47
|
-
supports_write
|
|
47
|
+
// v0.13.0 — dropped `supports_write` (substrate leakage at bridge layer).
|
|
48
|
+
// The bridge inherits write capability transitively from the wrapped
|
|
49
|
+
// MemoryStore via `staticTools().includes("memory_write")`.
|
|
48
50
|
},
|
|
49
51
|
};
|
|
50
52
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-store-mcp.js","sourceRoot":"","sources":["../../src/connectors/memory-store-mcp.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,gEAAgE;AAChE,2EAA2E;AAC3E,sCAAsC;AACtC,EAAE;AACF,wEAAwE;AACxE,yEAAyE;AACzE,yBAAyB;AACzB,EAAE;AACF,2EAA2E;AAC3E,EAAE;AACF,uFAAuF;AACvF,EAAE;AACF,uEAAuE;AACvE,6DAA6D;AAC7D,8BAA8B;AAC9B,EAAE;AACF,sEAAsE;AACtE,qEAAqE;AACrE,+DAA+D;AAC/D,wCAAwC;AACxC,EAAE;AACF,oEAAoE;AACpE,4DAA4D;AAC5D,qEAAqE;AACrE,kEAAkE;AAClE,oEAAoE;AACpE,oEAAoE;AACpE,sDAAsD;AACtD,EAAE;AACF,sEAAsE;AACtE,wEAAwE;AACxE,iEAAiE;AACjE,oCAAoC;AAYpC,MAAM,gBAAgB,GAAG,OAAO,CAAC;AAEjC,MAAM,OAAO,uBAAuB;
|
|
1
|
+
{"version":3,"file":"memory-store-mcp.js","sourceRoot":"","sources":["../../src/connectors/memory-store-mcp.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { MemoryStore, MemoryWrite, MemoryWriteRecord, PortableMemory, QueryFilters,
|
|
1
|
+
import type { MemoryStore, MemoryWrite, MemoryWriteRecord, PortableMemory, QueryFilters, MemoryStoreCapabilities, ManifestInfo } from "./types.js";
|
|
2
2
|
/**
|
|
3
3
|
* SQLite-backed MemoryStore. Schema:
|
|
4
4
|
*
|
|
@@ -26,12 +26,20 @@ export interface SqliteMemoryStoreConfig {
|
|
|
26
26
|
dbPath: string;
|
|
27
27
|
}
|
|
28
28
|
export declare class SqliteMemoryStore implements MemoryStore {
|
|
29
|
-
static staticCapabilities():
|
|
29
|
+
static staticCapabilities(): MemoryStoreCapabilities;
|
|
30
30
|
private readonly db;
|
|
31
31
|
constructor(config: SqliteMemoryStoreConfig);
|
|
32
32
|
private bootstrap;
|
|
33
|
+
/**
|
|
34
|
+
* v0.13.0 — one-time backfill on bootstrap. If memory_tags is empty AND
|
|
35
|
+
* memories has tags-bearing rows (pre-v0.13 data), populate from the JSON
|
|
36
|
+
* column. Idempotent: subsequent bootstraps find memory_tags non-empty and
|
|
37
|
+
* skip. Adopters migrating from earlier versions get indexed tag filters
|
|
38
|
+
* without an explicit migration step.
|
|
39
|
+
*/
|
|
40
|
+
private backfillMemoryTags;
|
|
33
41
|
query(filters: QueryFilters): Promise<PortableMemory[]>;
|
|
34
|
-
manifest(): Promise<ManifestInfo
|
|
42
|
+
manifest(): Promise<ManifestInfo<"memory_store">>;
|
|
35
43
|
/**
|
|
36
44
|
* v0.8.0 — `MemoryStore.write()` impl. Generates a substrate id; persists
|
|
37
45
|
* via the existing `upsert()` schema with tags + metadata. The `summary`
|
|
@@ -52,9 +60,21 @@ export declare class SqliteMemoryStore implements MemoryStore {
|
|
|
52
60
|
close(): void;
|
|
53
61
|
private rowToMemory;
|
|
54
62
|
/**
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
63
|
+
* v0.13.0 — sanitize a query string for FTS5 MATCH.
|
|
64
|
+
*
|
|
65
|
+
* Default behavior: split on whitespace, quote each token. FTS5 sees N
|
|
66
|
+
* literal phrase tokens AND'd together. **Boolean operators like `OR` /
|
|
67
|
+
* `NOT` / `NEAR` are NOT supported** — they're quoted as literal phrase
|
|
68
|
+
* tokens and become a search for those words. This is a deliberate
|
|
69
|
+
* safety stance over arbitrary user input.
|
|
70
|
+
*
|
|
71
|
+
* Escape hatch: prefix the query with `raw:` and the rest passes through
|
|
72
|
+
* verbatim. Caller takes responsibility for FTS5 syntax + injection
|
|
73
|
+
* safety. Example: `raw:foo OR bar`.
|
|
74
|
+
*
|
|
75
|
+
* Pre-v0.13 docstring claimed "pre-quoted" passed through; that wasn't
|
|
76
|
+
* accurate (the tokenizer re-quoted). The `raw:` prefix is the actual
|
|
77
|
+
* escape hatch.
|
|
58
78
|
*/
|
|
59
79
|
private sanitizeFtsQuery;
|
|
60
80
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-store.d.ts","sourceRoot":"","sources":["../../src/connectors/memory-store.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,
|
|
1
|
+
{"version":3,"file":"memory-store.d.ts","sourceRoot":"","sources":["../../src/connectors/memory-store.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,uBAAuB,EACvB,YAAY,EACb,MAAM,YAAY,CAAC;AAgCpB;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,iBAAkB,YAAW,WAAW;IACnD,MAAM,CAAC,kBAAkB,IAAI,uBAAuB;IAiBpD,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAe;gBAEtB,MAAM,EAAE,uBAAuB;IAQ3C,OAAO,CAAC,SAAS;IAwCjB;;;;;;OAMG;IACH,OAAO,CAAC,kBAAkB;IAapB,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAqCvD,QAAQ,IAAI,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;IAkBvD;;;;;;OAMG;IACG,KAAK,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAoB3D,kDAAkD;IAClD,MAAM,CAAC,MAAM,EAAE;QACb,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;QACvB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACpC,GAAG,IAAI;IA6BR,KAAK,IAAI,IAAI;IAIb,OAAO,CAAC,WAAW;IAiBnB;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,gBAAgB;CAUzB"}
|
|
@@ -72,6 +72,41 @@ export class SqliteMemoryStore {
|
|
|
72
72
|
INSERT INTO memories_fts(memories_fts, rowid, summary, detail) VALUES('delete', old.rowid, old.summary, old.detail);
|
|
73
73
|
INSERT INTO memories_fts(rowid, summary, detail) VALUES (new.rowid, new.summary, new.detail);
|
|
74
74
|
END;
|
|
75
|
+
-- v0.13.0 — normalized tag relation. Pre-v0.13 tag filter was a JS-side
|
|
76
|
+
-- substring scan over the JSON tags column (linear, wrong-ranked).
|
|
77
|
+
-- Relation lets SQL push tag predicates into indexed lookups + EXISTS
|
|
78
|
+
-- semantics. FK + ON DELETE CASCADE keeps the relation in sync when
|
|
79
|
+
-- memories rows are removed (FTS triggers stay separate).
|
|
80
|
+
CREATE TABLE IF NOT EXISTS memory_tags (
|
|
81
|
+
memory_id TEXT NOT NULL,
|
|
82
|
+
tag TEXT NOT NULL,
|
|
83
|
+
PRIMARY KEY (memory_id, tag),
|
|
84
|
+
FOREIGN KEY (memory_id) REFERENCES memories(id) ON DELETE CASCADE
|
|
85
|
+
);
|
|
86
|
+
CREATE INDEX IF NOT EXISTS memory_tags_tag_idx ON memory_tags(tag);
|
|
87
|
+
PRAGMA foreign_keys = ON;
|
|
88
|
+
`);
|
|
89
|
+
this.backfillMemoryTags();
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* v0.13.0 — one-time backfill on bootstrap. If memory_tags is empty AND
|
|
93
|
+
* memories has tags-bearing rows (pre-v0.13 data), populate from the JSON
|
|
94
|
+
* column. Idempotent: subsequent bootstraps find memory_tags non-empty and
|
|
95
|
+
* skip. Adopters migrating from earlier versions get indexed tag filters
|
|
96
|
+
* without an explicit migration step.
|
|
97
|
+
*/
|
|
98
|
+
backfillMemoryTags() {
|
|
99
|
+
const have = this.db.prepare("SELECT COUNT(*) AS c FROM memory_tags").get().c;
|
|
100
|
+
if (have > 0)
|
|
101
|
+
return;
|
|
102
|
+
const hasJson = this.db.prepare("SELECT COUNT(*) AS c FROM memories WHERE tags IS NOT NULL").get().c;
|
|
103
|
+
if (hasJson === 0)
|
|
104
|
+
return;
|
|
105
|
+
this.db.exec(`
|
|
106
|
+
INSERT OR IGNORE INTO memory_tags (memory_id, tag)
|
|
107
|
+
SELECT m.id, je.value
|
|
108
|
+
FROM memories m, json_each(m.tags) je
|
|
109
|
+
WHERE m.tags IS NOT NULL;
|
|
75
110
|
`);
|
|
76
111
|
}
|
|
77
112
|
async query(filters) {
|
|
@@ -85,19 +120,24 @@ export class SqliteMemoryStore {
|
|
|
85
120
|
return rows.map((r) => this.rowToMemory(r, undefined));
|
|
86
121
|
}
|
|
87
122
|
const sanitized = this.sanitizeFtsQuery(query);
|
|
123
|
+
// v0.13.0 — push tag filter into SQL via EXISTS join on memory_tags
|
|
124
|
+
// relation. Exact match (was JS substring scan; semantic change). Reduces
|
|
125
|
+
// a linear-time JS filter to an indexed lookup; ranking still by FTS
|
|
126
|
+
// score (tags don't influence relevance, just inclusion).
|
|
127
|
+
const tagFilter = filters["domain_tags"];
|
|
128
|
+
const params = { $q: sanitized, $limit: limit };
|
|
129
|
+
let tagJoin = "";
|
|
130
|
+
if (typeof tagFilter === "string" && tagFilter !== "") {
|
|
131
|
+
tagJoin = "AND EXISTS (SELECT 1 FROM memory_tags mt WHERE mt.memory_id = m.id AND mt.tag = $tag)";
|
|
132
|
+
params["$tag"] = tagFilter;
|
|
133
|
+
}
|
|
88
134
|
const rows = this.db.prepare(`SELECT m.id, m.summary, m.detail, m.tags, m.created_at, m.metadata, bm25(memories_fts) AS score
|
|
89
135
|
FROM memories_fts
|
|
90
136
|
JOIN memories m ON memories_fts.rowid = m.rowid
|
|
91
|
-
WHERE memories_fts MATCH $q
|
|
137
|
+
WHERE memories_fts MATCH $q ${tagJoin}
|
|
92
138
|
ORDER BY score
|
|
93
|
-
LIMIT $limit`).all(
|
|
94
|
-
|
|
95
|
-
// Optional substring filter on domain_tags. Stored as a JSON-stringified array.
|
|
96
|
-
if (typeof filters["domain_tags"] === "string" && filters["domain_tags"] !== "") {
|
|
97
|
-
const needle = filters["domain_tags"];
|
|
98
|
-
return results.filter((m) => Array.isArray(m.domain_tags) && m.domain_tags.some((t) => t.includes(needle)));
|
|
99
|
-
}
|
|
100
|
-
return results;
|
|
139
|
+
LIMIT $limit`).all(params);
|
|
140
|
+
return rows.map((r) => this.rowToMemory(r, r["score"]));
|
|
101
141
|
}
|
|
102
142
|
async manifest() {
|
|
103
143
|
return {
|
|
@@ -107,7 +147,12 @@ export class SqliteMemoryStore {
|
|
|
107
147
|
supported_modes: ["fts"],
|
|
108
148
|
score_range: "unbounded",
|
|
109
149
|
supported_filters: ["domain_tags"],
|
|
110
|
-
|
|
150
|
+
// v0.13.0 — `domain_tags` filter pushed into SQL via memory_tags
|
|
151
|
+
// relation; exact match semantic (was substring scan pre-v0.13).
|
|
152
|
+
tag_filter_semantic: "exact match via indexed memory_tags relation",
|
|
153
|
+
// v0.13.0 — `query` field is phrase-tokens by default; prefix with
|
|
154
|
+
// `raw:` for adopter-explicit FTS5 syntax.
|
|
155
|
+
fts_query_semantic: "phrase-tokens (boolean ops disabled); use `raw:` prefix for FTS5 syntax",
|
|
111
156
|
},
|
|
112
157
|
};
|
|
113
158
|
}
|
|
@@ -141,7 +186,8 @@ export class SqliteMemoryStore {
|
|
|
141
186
|
}
|
|
142
187
|
/** Helper for tests/seeding — insert a memory. */
|
|
143
188
|
upsert(memory) {
|
|
144
|
-
const
|
|
189
|
+
const tagList = memory.domain_tags ?? [];
|
|
190
|
+
const tagsJson = tagList.length > 0 ? JSON.stringify(tagList) : null;
|
|
145
191
|
const metadata = memory.metadata ? JSON.stringify(memory.metadata) : null;
|
|
146
192
|
const createdAt = memory.created_at ?? Math.floor(Date.now() / 1000);
|
|
147
193
|
this.db.prepare(`INSERT INTO memories (id, summary, detail, tags, created_at, metadata)
|
|
@@ -151,10 +197,18 @@ export class SqliteMemoryStore {
|
|
|
151
197
|
$id: memory.id,
|
|
152
198
|
$summary: memory.summary,
|
|
153
199
|
$detail: memory.detail ?? null,
|
|
154
|
-
$tags:
|
|
200
|
+
$tags: tagsJson,
|
|
155
201
|
$createdAt: createdAt,
|
|
156
202
|
$metadata: metadata,
|
|
157
203
|
});
|
|
204
|
+
// v0.13.0 — maintain the memory_tags relation. Clear + reinsert keeps
|
|
205
|
+
// upsert semantics clean (tag list is canonical per call).
|
|
206
|
+
this.db.prepare("DELETE FROM memory_tags WHERE memory_id = $id").run({ $id: memory.id });
|
|
207
|
+
if (tagList.length > 0) {
|
|
208
|
+
const ins = this.db.prepare("INSERT OR IGNORE INTO memory_tags (memory_id, tag) VALUES ($id, $tag)");
|
|
209
|
+
for (const tag of tagList)
|
|
210
|
+
ins.run({ $id: memory.id, $tag: tag });
|
|
211
|
+
}
|
|
158
212
|
}
|
|
159
213
|
close() {
|
|
160
214
|
this.db.close();
|
|
@@ -179,11 +233,26 @@ export class SqliteMemoryStore {
|
|
|
179
233
|
return memory;
|
|
180
234
|
}
|
|
181
235
|
/**
|
|
182
|
-
*
|
|
183
|
-
*
|
|
184
|
-
*
|
|
236
|
+
* v0.13.0 — sanitize a query string for FTS5 MATCH.
|
|
237
|
+
*
|
|
238
|
+
* Default behavior: split on whitespace, quote each token. FTS5 sees N
|
|
239
|
+
* literal phrase tokens AND'd together. **Boolean operators like `OR` /
|
|
240
|
+
* `NOT` / `NEAR` are NOT supported** — they're quoted as literal phrase
|
|
241
|
+
* tokens and become a search for those words. This is a deliberate
|
|
242
|
+
* safety stance over arbitrary user input.
|
|
243
|
+
*
|
|
244
|
+
* Escape hatch: prefix the query with `raw:` and the rest passes through
|
|
245
|
+
* verbatim. Caller takes responsibility for FTS5 syntax + injection
|
|
246
|
+
* safety. Example: `raw:foo OR bar`.
|
|
247
|
+
*
|
|
248
|
+
* Pre-v0.13 docstring claimed "pre-quoted" passed through; that wasn't
|
|
249
|
+
* accurate (the tokenizer re-quoted). The `raw:` prefix is the actual
|
|
250
|
+
* escape hatch.
|
|
185
251
|
*/
|
|
186
252
|
sanitizeFtsQuery(q) {
|
|
253
|
+
if (q.startsWith("raw:")) {
|
|
254
|
+
return q.slice(4).trim();
|
|
255
|
+
}
|
|
187
256
|
return q
|
|
188
257
|
.split(/\s+/)
|
|
189
258
|
.filter((s) => s.length > 0)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-store.js","sourceRoot":"","sources":["../../src/connectors/memory-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAWzC,SAAS,gBAAgB;IACvB,OAAO,UAAU,EAAE,CAAC;AACtB,CAAC;AAED,MAAM,gBAAgB,GAAG,OAAO,CAAC;AAEjC;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAOnD,SAAS,gBAAgB;IACvB,OAAQ,WAAW,CAAC,aAAa,CAAwC,CAAC,YAAY,CAAC;AACzF,CAAC;AA6BD,MAAM,OAAO,iBAAiB;IAC5B,MAAM,CAAC,kBAAkB;QACvB,OAAO;YACL,cAAc,EAAE,cAAc;YAC9B,cAAc,EAAE,mBAAmB;YACnC,gBAAgB,EAAE,gBAAgB;YAClC,QAAQ,EAAE;gBACR,eAAe,EAAE,IAAI;gBACrB,mBAAmB,EAAE,IAAI;gBACzB,iBAAiB,EAAE,KAAK;gBACxB,eAAe,EAAE,KAAK;gBACtB,6BAA6B,EAAE,KAAK;gBACpC,gBAAgB,EAAE,KAAK;gBACvB,oBAAoB,EAAE,KAAK;aAC5B;SACF,CAAC;IACJ,CAAC;IAEgB,EAAE,CAAe;IAElC,YAAY,MAA+B;QACzC,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,MAAM,YAAY,GAAG,gBAAgB,EAAE,CAAC;QACxC,IAAI,CAAC,EAAE,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAEO,SAAS;QACf,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC
|
|
1
|
+
{"version":3,"file":"memory-store.js","sourceRoot":"","sources":["../../src/connectors/memory-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,18 +38,41 @@ export declare class Registry {
|
|
|
38
38
|
getLocalModel(name?: string): LocalModel;
|
|
39
39
|
getMcpConnector(name?: string): McpConnector;
|
|
40
40
|
/**
|
|
41
|
-
* Returns the registered AgentConnector
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
*
|
|
41
|
+
* Returns the registered AgentConnector. Throws when missing — symmetric
|
|
42
|
+
* with `getSkillStore` / `getMcpConnector` / etc. v0.13.0 — was silent
|
|
43
|
+
* NoOp fallback; that pattern hid wiring gaps until prod (skills with
|
|
44
|
+
* `# Output: agent:` ran "successfully" in dev with no real delivery).
|
|
45
|
+
* Callers that want graceful-no-op behavior use
|
|
46
|
+
* `getAgentConnectorOrDefault()` explicitly.
|
|
46
47
|
*/
|
|
47
48
|
getAgentConnector(name?: string): AgentConnector;
|
|
49
|
+
/**
|
|
50
|
+
* Returns the registered AgentConnector, or `NoOpAgentConnector` when none
|
|
51
|
+
* is wired. Use this when you genuinely want the no-op default (test rigs,
|
|
52
|
+
* runtime dispatch paths that pair the return with a separate
|
|
53
|
+
* `hasAgentConnector()` check to record `delivery_skipped`). v0.13.0 —
|
|
54
|
+
* explicit opt-in replaces the silent fallback of pre-v0.13
|
|
55
|
+
* `getAgentConnector()`.
|
|
56
|
+
*/
|
|
57
|
+
getAgentConnectorOrDefault(name?: string): AgentConnector;
|
|
48
58
|
getSkillStoreClass(name?: string): SkillStoreClass;
|
|
49
59
|
getMemoryStoreClass(name?: string): MemoryStoreClass;
|
|
50
60
|
getLocalModelClass(name?: string): LocalModelClass;
|
|
51
61
|
getMcpConnectorClass(name?: string): McpConnectorClass;
|
|
62
|
+
/**
|
|
63
|
+
* Returns the registered AgentConnector class. Throws when missing —
|
|
64
|
+
* symmetric with the other `get*Class` methods. v0.13.0 — was silent
|
|
65
|
+
* fallback to `NoOpAgentConnector` via `as unknown as` cast; the cast
|
|
66
|
+
* masked any interface drift.
|
|
67
|
+
*/
|
|
52
68
|
getAgentConnectorClass(name?: string): AgentConnectorClass;
|
|
69
|
+
/**
|
|
70
|
+
* Returns the registered AgentConnector class, or `NoOpAgentConnector`
|
|
71
|
+
* when none is wired. Direct typing — no `unknown` cast. If
|
|
72
|
+
* `NoOpAgentConnector` ever drifts from `AgentConnectorClass`, the
|
|
73
|
+
* compiler tells us here.
|
|
74
|
+
*/
|
|
75
|
+
getAgentConnectorClassOrDefault(name?: string): AgentConnectorClass;
|
|
53
76
|
listSkillStoreClasses(): SkillStoreClass[];
|
|
54
77
|
listMemoryStoreClasses(): MemoryStoreClass[];
|
|
55
78
|
listLocalModelClasses(): LocalModelClass[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/connectors/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,UAAU,EACV,eAAe,EACf,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAyCtE,qBAAa,QAAQ;IACnB,OAAO,CAAC,WAAW,CAAyD;IAC5E,OAAO,CAAC,YAAY,CAA2D;IAC/E,OAAO,CAAC,WAAW,CAAyD;IAC5E,OAAO,CAAC,aAAa,CAA+B;IACpD,OAAO,CAAC,eAAe,CAAiE;IAIxF,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,GAAG,IAAI;IAI5D,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,GAAG,IAAI;IAI9D,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,GAAG,IAAI;IAI5D,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI;IAQzF;;;;OAIG;IACH,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS;IAI/D,8FAA8F;IAC9F,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO;IAMtD;;;;;OAKG;IACH,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAIhE;;;;;;OAMG;IACG,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAcnF,aAAa,CAAC,IAAI,SAAY,GAAG,UAAU;IAG3C,cAAc,CAAC,IAAI,SAAY,GAAG,WAAW;IAG7C,aAAa,CAAC,IAAI,SAAY,GAAG,UAAU;IAG3C,eAAe,CAAC,IAAI,SAAY,GAAG,YAAY;IAG/C
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/connectors/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,UAAU,EACV,eAAe,EACf,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAyCtE,qBAAa,QAAQ;IACnB,OAAO,CAAC,WAAW,CAAyD;IAC5E,OAAO,CAAC,YAAY,CAA2D;IAC/E,OAAO,CAAC,WAAW,CAAyD;IAC5E,OAAO,CAAC,aAAa,CAA+B;IACpD,OAAO,CAAC,eAAe,CAAiE;IAIxF,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,GAAG,IAAI;IAI5D,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,GAAG,IAAI;IAI9D,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,GAAG,IAAI;IAI5D,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI;IAQzF;;;;OAIG;IACH,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS;IAI/D,8FAA8F;IAC9F,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO;IAMtD;;;;;OAKG;IACH,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAIhE;;;;;;OAMG;IACG,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAcnF,aAAa,CAAC,IAAI,SAAY,GAAG,UAAU;IAG3C,cAAc,CAAC,IAAI,SAAY,GAAG,WAAW;IAG7C,aAAa,CAAC,IAAI,SAAY,GAAG,UAAU;IAG3C,eAAe,CAAC,IAAI,SAAY,GAAG,YAAY;IAG/C;;;;;;;OAOG;IACH,iBAAiB,CAAC,IAAI,SAAY,GAAG,cAAc;IAInD;;;;;;;OAOG;IACH,0BAA0B,CAAC,IAAI,SAAY,GAAG,cAAc;IAO5D,kBAAkB,CAAC,IAAI,SAAY,GAAG,eAAe;IAGrD,mBAAmB,CAAC,IAAI,SAAY,GAAG,gBAAgB;IAGvD,kBAAkB,CAAC,IAAI,SAAY,GAAG,eAAe;IAGrD,oBAAoB,CAAC,IAAI,SAAY,GAAG,iBAAiB;IAGzD;;;;;OAKG;IACH,sBAAsB,CAAC,IAAI,SAAY,GAAG,mBAAmB;IAI7D;;;;;OAKG;IACH,+BAA+B,CAAC,IAAI,SAAY,GAAG,mBAAmB;IAOtE,qBAAqB,IAAI,eAAe,EAAE;IAC1C,sBAAsB,IAAI,gBAAgB,EAAE;IAC5C,qBAAqB,IAAI,eAAe,EAAE;IAC1C,uBAAuB,IAAI,iBAAiB,EAAE;IAC9C,yBAAyB,IAAI,mBAAmB,EAAE;IAOlD,eAAe,IAAI,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,UAAU,CAAC;QAAC,IAAI,EAAE,eAAe,CAAA;KAAE,CAAC;IACvF,gBAAgB,IAAI,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,WAAW,CAAC;QAAC,IAAI,EAAE,gBAAgB,CAAA;KAAE,CAAC;IAC1F,eAAe,IAAI,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,UAAU,CAAC;QAAC,IAAI,EAAE,eAAe,CAAA;KAAE,CAAC;IACvF,iBAAiB,IAAI,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,YAAY,CAAC;QAAC,IAAI,EAAE,iBAAiB,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAYtH,mBAAmB,IAAI,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,cAAc,CAAC;QAAC,IAAI,EAAE,mBAAmB,CAAA;KAAE,CAAC;IAInG;;;;;OAKG;IACH,wBAAwB,IAAI,kBAAkB,EAAE;IAYhD,aAAa,CAAC,IAAI,SAAY,GAAG,OAAO;IACxC,cAAc,CAAC,IAAI,SAAY,GAAG,OAAO;IACzC,aAAa,CAAC,IAAI,SAAY,GAAG,OAAO;IACxC,eAAe,CAAC,IAAI,SAAY,GAAG,OAAO;IAC1C,iBAAiB,CAAC,IAAI,SAAY,GAAG,OAAO;CAC7C"}
|