skillscript-runtime 0.13.8 → 0.14.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 +12 -12
- package/dist/bootstrap.d.ts +13 -13
- package/dist/bootstrap.d.ts.map +1 -1
- package/dist/bootstrap.js +31 -31
- package/dist/bootstrap.js.map +1 -1
- package/dist/cli.js +6 -6
- package/dist/cli.js.map +1 -1
- package/dist/compile.js +2 -2
- package/dist/compile.js.map +1 -1
- package/dist/connectors/config.d.ts +4 -4
- package/dist/connectors/config.d.ts.map +1 -1
- package/dist/connectors/config.js +7 -7
- package/dist/connectors/config.js.map +1 -1
- package/dist/connectors/data-store-mcp.d.ts +29 -0
- package/dist/connectors/data-store-mcp.d.ts.map +1 -0
- package/dist/connectors/{memory-store-mcp.js → data-store-mcp.js} +56 -31
- package/dist/connectors/data-store-mcp.js.map +1 -0
- package/dist/connectors/{memory-store.d.ts → data-store.d.ts} +12 -12
- package/dist/connectors/data-store.d.ts.map +1 -0
- package/dist/connectors/{memory-store.js → data-store.js} +7 -7
- package/dist/connectors/data-store.js.map +1 -0
- package/dist/connectors/filter-enforcement.d.ts +18 -0
- package/dist/connectors/filter-enforcement.d.ts.map +1 -0
- package/dist/connectors/filter-enforcement.js +57 -0
- package/dist/connectors/filter-enforcement.js.map +1 -0
- package/dist/connectors/index.d.ts +5 -5
- package/dist/connectors/index.d.ts.map +1 -1
- package/dist/connectors/index.js +7 -7
- package/dist/connectors/index.js.map +1 -1
- package/dist/connectors/local-model-mcp.js +1 -1
- package/dist/connectors/local-model-mcp.js.map +1 -1
- package/dist/connectors/registry.d.ts +10 -10
- package/dist/connectors/registry.d.ts.map +1 -1
- package/dist/connectors/registry.js +11 -11
- package/dist/connectors/registry.js.map +1 -1
- package/dist/connectors/sqlite-skill-store.js +1 -1
- package/dist/connectors/sqlite-skill-store.js.map +1 -1
- package/dist/connectors/types.d.ts +36 -23
- package/dist/connectors/types.d.ts.map +1 -1
- package/dist/connectors/types.js +2 -2
- package/dist/connectors/types.js.map +1 -1
- package/dist/dashboard/spa/app.js +2 -2
- package/dist/errors.d.ts +43 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +70 -4
- package/dist/errors.js.map +1 -1
- package/dist/help-content.js +27 -27
- package/dist/help-content.js.map +1 -1
- package/dist/index.d.ts +5 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/lint.d.ts.map +1 -1
- package/dist/lint.js +48 -56
- package/dist/lint.js.map +1 -1
- package/dist/mcp-server.d.ts +1 -1
- package/dist/mcp-server.d.ts.map +1 -1
- package/dist/mcp-server.js +19 -16
- package/dist/mcp-server.js.map +1 -1
- package/dist/mutation-gate.d.ts +61 -0
- package/dist/mutation-gate.d.ts.map +1 -0
- package/dist/mutation-gate.js +89 -0
- package/dist/mutation-gate.js.map +1 -0
- package/dist/runtime-config.d.ts +2 -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 +59 -17
- package/dist/runtime.js.map +1 -1
- package/dist/skill-manager.js +1 -1
- package/dist/skill-manager.js.map +1 -1
- package/dist/testing/conformance.d.ts +8 -8
- package/dist/testing/conformance.d.ts.map +1 -1
- package/dist/testing/conformance.js +8 -8
- package/dist/testing/conformance.js.map +1 -1
- package/dist/testing/index.d.ts +2 -2
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +1 -1
- package/dist/testing/index.js.map +1 -1
- package/dist/trace.d.ts +3 -3
- package/docs/adopter-playbook.md +85 -41
- package/docs/configuration.md +8 -8
- package/docs/connector-contract-reference.md +9 -9
- package/docs/language-reference.md +38 -63
- package/docs/sqlite-skill-store.md +2 -2
- package/examples/README.md +5 -5
- package/examples/connectors/{MemoryStoreTemplate/MemoryStoreTemplate.ts → DataStoreTemplate/DataStoreTemplate.ts} +56 -43
- package/examples/connectors/{MemoryStoreTemplate → DataStoreTemplate}/README.md +39 -39
- package/examples/connectors/LocalModelTemplate/README.md +1 -1
- package/examples/connectors/McpConnectorTemplate/McpConnectorTemplate.ts +2 -2
- package/examples/connectors/McpConnectorTemplate/README.md +5 -5
- package/examples/connectors/README.md +3 -3
- package/examples/connectors/SkillStoreTemplate/README.md +1 -1
- package/examples/connectors/SkillStoreTemplate/SkillStoreTemplate.ts +1 -1
- package/examples/custom-bootstrap.example.ts +15 -8
- package/examples/onboarding-scaffold/README.md +9 -10
- package/examples/onboarding-scaffold/bootstrap.ts +18 -13
- package/examples/onboarding-scaffold/connectors.json +1 -1
- package/examples/onboarding-scaffold/{file-memory-store.ts → file-data-store.ts} +34 -23
- package/examples/programmatic-trace-demo.mjs +1 -1
- package/examples/skillscripts/classify-support-ticket.skill.md +9 -8
- package/examples/skillscripts/cut-release-tag.skill.md +6 -6
- package/examples/skillscripts/doc-qa-with-citations.skill.md +3 -3
- package/examples/skillscripts/feedback-sentiment-scan.skill.md +9 -8
- package/examples/skillscripts/hello.skill.provenance.json +1 -1
- package/examples/skillscripts/morning-brief.skill.md +3 -3
- package/examples/skillscripts/service-health-watch.skill.md +5 -4
- package/package.json +1 -1
- package/scaffold/config.toml +6 -4
- package/scaffold/connectors.json +3 -3
- package/dist/connectors/memory-store-mcp.d.ts +0 -20
- package/dist/connectors/memory-store-mcp.d.ts.map +0 -1
- package/dist/connectors/memory-store-mcp.js.map +0 -1
- package/dist/connectors/memory-store.d.ts.map +0 -1
- package/dist/connectors/memory-store.js.map +0 -1
- /package/examples/onboarding-scaffold/{memory.example.json → data.example.json} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
// v0.7.2 — `
|
|
2
|
-
// `
|
|
3
|
-
// `$
|
|
1
|
+
// v0.7.2 — `DataStoreMcpConnector`. Bridge class that exposes a registered
|
|
2
|
+
// `DataStore` instance as an `McpConnector`, so the canonical
|
|
3
|
+
// `$ data_read mode=... query=... limit=N` MCP-dispatch path works in default
|
|
4
4
|
// deployments without adopter wiring.
|
|
5
5
|
//
|
|
6
6
|
// Per Perry's v0.7.2 kickoff (d284763f) + Scott's substrate-portability
|
|
@@ -11,34 +11,35 @@
|
|
|
11
11
|
//
|
|
12
12
|
// $ <connector_name> mode="fts|semantic|rerank" query="..." limit=N [...extras] -> R
|
|
13
13
|
//
|
|
14
|
-
// where R is `{items:
|
|
14
|
+
// where R is `{items: PortableData[]}` envelope (consistent with the
|
|
15
15
|
// object-iteration-advisory hint pattern: cold authors write
|
|
16
16
|
// `foreach M in ${R.items}`).
|
|
17
17
|
//
|
|
18
|
-
// Explicitly NOT in this bridge: `
|
|
18
|
+
// Explicitly NOT in this bridge: `data_write`, by-id lookup, thread
|
|
19
19
|
// operations, introspection / traversal / promote / reinforce. Those
|
|
20
20
|
// are substrate-specific and adopter-wired via the dotted form
|
|
21
21
|
// (e.g., `$ amp.amp_write_memory ...`).
|
|
22
22
|
//
|
|
23
23
|
// Substrate-portability: skills written against this bridge's shape
|
|
24
|
-
// work across any `
|
|
25
|
-
// `
|
|
26
|
-
// substrates implement `
|
|
24
|
+
// work across any `DataStore` interface impl. The bundled
|
|
25
|
+
// `SqliteDataStore` is the reference impl; adopters with FTS-style
|
|
26
|
+
// substrates implement `DataStore` and the bridge transparently
|
|
27
27
|
// wraps. Fundamentally-different substrates (vector DBs, embedding-
|
|
28
28
|
// based stores) wire under different connector names with their own
|
|
29
29
|
// surface — this bridge stays canonical FTS-flavored.
|
|
30
30
|
//
|
|
31
|
-
// Wiring: auto-registered at bootstrap as connector instance "
|
|
32
|
-
// pointing at the "default"
|
|
33
|
-
// by re-registering "
|
|
31
|
+
// Wiring: auto-registered at bootstrap as connector instance "data_read"
|
|
32
|
+
// pointing at the "default" DataStore registration. Adopters override
|
|
33
|
+
// by re-registering "data_read" with their own bridge instance OR a
|
|
34
34
|
// different MCP connector entirely.
|
|
35
|
+
import { enforceSupportedFilters } from "./filter-enforcement.js";
|
|
35
36
|
const CONTRACT_VERSION = "1.0.0";
|
|
36
|
-
export class
|
|
37
|
-
|
|
37
|
+
export class DataStoreMcpConnector {
|
|
38
|
+
dataStore;
|
|
38
39
|
static staticCapabilities() {
|
|
39
40
|
return {
|
|
40
41
|
connector_type: "mcp_connector",
|
|
41
|
-
implementation: "
|
|
42
|
+
implementation: "DataStoreMcpConnector",
|
|
42
43
|
contract_version: CONTRACT_VERSION,
|
|
43
44
|
features: {
|
|
44
45
|
supports_identity_propagation: false,
|
|
@@ -46,30 +47,46 @@ export class MemoryStoreMcpConnector {
|
|
|
46
47
|
supports_batch: false,
|
|
47
48
|
// v0.13.0 — dropped `supports_write` (substrate leakage at bridge layer).
|
|
48
49
|
// The bridge inherits write capability transitively from the wrapped
|
|
49
|
-
//
|
|
50
|
+
// DataStore via `staticTools().includes("data_write")`.
|
|
50
51
|
},
|
|
51
52
|
};
|
|
52
53
|
}
|
|
53
54
|
/**
|
|
54
55
|
* v0.9.1 — declared tool surface. The bridge dispatches two canonical
|
|
55
|
-
* tools: `query` (read) and `
|
|
56
|
-
* name-matches and uses dispatchQuery; bare `$
|
|
56
|
+
* tools: `query` (read) and `data_write` (write). Bare-form `$ data_read`
|
|
57
|
+
* name-matches and uses dispatchQuery; bare `$ data_write` uses
|
|
57
58
|
* dispatchWrite (same bridge instance registered under both names).
|
|
58
|
-
* Qualified `$
|
|
59
|
+
* Qualified `$ data_read.query` / `$ data_read.data_write` validate
|
|
59
60
|
* against this list; other tool names fail lint with `unknown-tool-on-connector`.
|
|
60
61
|
*/
|
|
61
62
|
static staticTools() {
|
|
62
|
-
return ["query", "
|
|
63
|
+
return ["query", "data_write"];
|
|
63
64
|
}
|
|
64
|
-
constructor(
|
|
65
|
-
this.
|
|
65
|
+
constructor(dataStore) {
|
|
66
|
+
this.dataStore = dataStore;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* v0.14.1 — cached `supported_filters` list from the wrapped DataStore's
|
|
70
|
+
* manifest. Lazily fetched on first dispatchQuery so the enforcement
|
|
71
|
+
* path doesn't pay an async call per query. The substrate's
|
|
72
|
+
* supported_filters set is static-per-instance (declared at manifest
|
|
73
|
+
* time, not per-call), so caching is safe.
|
|
74
|
+
*/
|
|
75
|
+
supportedFiltersCache;
|
|
76
|
+
async resolveSupportedFilters() {
|
|
77
|
+
if (this.supportedFiltersCache !== undefined)
|
|
78
|
+
return this.supportedFiltersCache;
|
|
79
|
+
const m = await this.dataStore.manifest();
|
|
80
|
+
const manifest = m.manifest;
|
|
81
|
+
this.supportedFiltersCache = manifest?.supported_filters ?? [];
|
|
82
|
+
return this.supportedFiltersCache;
|
|
66
83
|
}
|
|
67
84
|
async call(toolName, args, _ctxOverrides) {
|
|
68
85
|
// v0.8.0 — toolName discrimination. The same bridge instance can be
|
|
69
|
-
// registered under multiple connector names (e.g., "
|
|
86
|
+
// registered under multiple connector names (e.g., "data_read" + "data_write")
|
|
70
87
|
// so bare-form dispatch via name-match routes both to this impl. The
|
|
71
88
|
// toolName tells us which substrate method to invoke.
|
|
72
|
-
if (toolName === "
|
|
89
|
+
if (toolName === "data_write") {
|
|
73
90
|
return this.dispatchWrite(args);
|
|
74
91
|
}
|
|
75
92
|
return this.dispatchQuery(args);
|
|
@@ -77,7 +94,7 @@ export class MemoryStoreMcpConnector {
|
|
|
77
94
|
async dispatchQuery(args) {
|
|
78
95
|
const query = typeof args["query"] === "string" ? args["query"] : "";
|
|
79
96
|
if (query === "") {
|
|
80
|
-
throw new Error("
|
|
97
|
+
throw new Error("DataStoreMcpConnector: `query` kwarg is required and must be a non-empty string.");
|
|
81
98
|
}
|
|
82
99
|
const mode = typeof args["mode"] === "string" && args["mode"] !== "" ? args["mode"] : "fts";
|
|
83
100
|
let limit = 10;
|
|
@@ -98,19 +115,27 @@ export class MemoryStoreMcpConnector {
|
|
|
98
115
|
continue;
|
|
99
116
|
filters[k] = v;
|
|
100
117
|
}
|
|
101
|
-
|
|
118
|
+
// v0.14.1 — strict-filters enforcement at the bridge boundary. Filter
|
|
119
|
+
// keys outside the substrate's declared `supported_filters` manifest
|
|
120
|
+
// throw `UnsupportedFilterError` unless the caller opted out via
|
|
121
|
+
// `permissive_filters: true`. Closes the silent-scope-leak class
|
|
122
|
+
// (substrate silently drops unknown filters; caller assumes filtering
|
|
123
|
+
// happened). Sibling to the F1 mutation-gate runtime enforcement.
|
|
124
|
+
const supported = await this.resolveSupportedFilters();
|
|
125
|
+
enforceSupportedFilters(filters, supported, "DataStoreMcpConnector");
|
|
126
|
+
const items = await this.dataStore.query(filters);
|
|
102
127
|
// Envelope-wrap per the canonical contract. Cold-author iteration
|
|
103
128
|
// pattern: `foreach M in ${R.items}` (consistent with the v0.7.2
|
|
104
129
|
// object-iteration-advisory's hint).
|
|
105
130
|
return { items };
|
|
106
131
|
}
|
|
107
132
|
async dispatchWrite(args) {
|
|
108
|
-
// v0.8.0 — canonical `$
|
|
133
|
+
// v0.8.0 — canonical `$ data_write content=... [recipients=...] [tags=...]
|
|
109
134
|
// [expires_at=N] [metadata={...}] -> R` shape. Returns the substrate-
|
|
110
135
|
// assigned `{id, created_at}`.
|
|
111
136
|
const content = typeof args["content"] === "string" ? args["content"] : "";
|
|
112
137
|
if (content === "") {
|
|
113
|
-
throw new Error("
|
|
138
|
+
throw new Error("DataStoreMcpConnector: `content` kwarg is required for data_write and must be a non-empty string.");
|
|
114
139
|
}
|
|
115
140
|
const entry = { content };
|
|
116
141
|
if (Array.isArray(args["tags"]) && args["tags"].every((t) => typeof t === "string")) {
|
|
@@ -125,17 +150,17 @@ export class MemoryStoreMcpConnector {
|
|
|
125
150
|
if (args["metadata"] !== undefined && args["metadata"] !== null && typeof args["metadata"] === "object" && !Array.isArray(args["metadata"])) {
|
|
126
151
|
entry.metadata = args["metadata"];
|
|
127
152
|
}
|
|
128
|
-
return this.
|
|
153
|
+
return this.dataStore.write(entry);
|
|
129
154
|
}
|
|
130
155
|
async manifest() {
|
|
131
|
-
const msManifest = await this.
|
|
156
|
+
const msManifest = await this.dataStore.manifest();
|
|
132
157
|
return {
|
|
133
158
|
capabilities_version: "1",
|
|
134
159
|
manifest: {
|
|
135
|
-
kind: "
|
|
160
|
+
kind: "data-store-bridge",
|
|
136
161
|
wraps: msManifest.manifest ?? {},
|
|
137
162
|
},
|
|
138
163
|
};
|
|
139
164
|
}
|
|
140
165
|
}
|
|
141
|
-
//# sourceMappingURL=
|
|
166
|
+
//# sourceMappingURL=data-store-mcp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-store-mcp.js","sourceRoot":"","sources":["../../src/connectors/data-store-mcp.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { DataStore, DataWrite, DataWriteRecord, PortableData, QueryFilters, DataStoreCapabilities, ManifestInfo } from "./types.js";
|
|
2
2
|
/**
|
|
3
|
-
* SQLite-backed
|
|
3
|
+
* SQLite-backed DataStore. Schema:
|
|
4
4
|
*
|
|
5
5
|
* memories(
|
|
6
6
|
* id TEXT PRIMARY KEY,
|
|
@@ -22,13 +22,13 @@ import type { MemoryStore, MemoryWrite, MemoryWriteRecord, PortableMemory, Query
|
|
|
22
22
|
* agent/vault scoping wrap the contract in a separate adapter; the
|
|
23
23
|
* filesystem-default store has no agents and open visibility.
|
|
24
24
|
*/
|
|
25
|
-
export interface
|
|
25
|
+
export interface SqliteDataStoreConfig {
|
|
26
26
|
dbPath: string;
|
|
27
27
|
}
|
|
28
|
-
export declare class
|
|
29
|
-
static staticCapabilities():
|
|
28
|
+
export declare class SqliteDataStore implements DataStore {
|
|
29
|
+
static staticCapabilities(): DataStoreCapabilities;
|
|
30
30
|
private readonly db;
|
|
31
|
-
constructor(config:
|
|
31
|
+
constructor(config: SqliteDataStoreConfig);
|
|
32
32
|
private bootstrap;
|
|
33
33
|
/**
|
|
34
34
|
* v0.13.0 — one-time backfill on bootstrap. If memory_tags is empty AND
|
|
@@ -38,17 +38,17 @@ export declare class SqliteMemoryStore implements MemoryStore {
|
|
|
38
38
|
* without an explicit migration step.
|
|
39
39
|
*/
|
|
40
40
|
private backfillMemoryTags;
|
|
41
|
-
get(id: string): Promise<
|
|
42
|
-
query(filters: QueryFilters): Promise<
|
|
43
|
-
manifest(): Promise<ManifestInfo<"
|
|
41
|
+
get(id: string): Promise<PortableData | null>;
|
|
42
|
+
query(filters: QueryFilters): Promise<PortableData[]>;
|
|
43
|
+
manifest(): Promise<ManifestInfo<"data_store">>;
|
|
44
44
|
/**
|
|
45
|
-
* v0.8.0 — `
|
|
45
|
+
* v0.8.0 — `DataStore.write()` impl. Generates a substrate id; persists
|
|
46
46
|
* via the existing `upsert()` schema with tags + metadata. The `summary`
|
|
47
47
|
* field defaults to the first line of content (per the v0.7.x convention
|
|
48
48
|
* — adopters who want richer summaries pre-compose and pass via metadata).
|
|
49
49
|
* Recipients hint is stored in metadata for substrates that key alerts off it.
|
|
50
50
|
*/
|
|
51
|
-
write(entry:
|
|
51
|
+
write(entry: DataWrite): Promise<DataWriteRecord>;
|
|
52
52
|
/** Helper for tests/seeding — insert a memory. */
|
|
53
53
|
upsert(memory: {
|
|
54
54
|
id: string;
|
|
@@ -79,4 +79,4 @@ export declare class SqliteMemoryStore implements MemoryStore {
|
|
|
79
79
|
*/
|
|
80
80
|
private sanitizeFtsQuery;
|
|
81
81
|
}
|
|
82
|
-
//# sourceMappingURL=
|
|
82
|
+
//# sourceMappingURL=data-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-store.d.ts","sourceRoot":"","sources":["../../src/connectors/data-store.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,SAAS,EACT,SAAS,EACT,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,qBAAqB,EACrB,YAAY,EACb,MAAM,YAAY,CAAC;AAgCpB;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,eAAgB,YAAW,SAAS;IAC/C,MAAM,CAAC,kBAAkB,IAAI,qBAAqB;IAiBlD,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAe;gBAEtB,MAAM,EAAE,qBAAqB;IAQzC,OAAO,CAAC,SAAS;IAwCjB;;;;;;OAMG;IACH,OAAO,CAAC,kBAAkB;IAgBpB,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAQ7C,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAqCrD,QAAQ,IAAI,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;IAkBrD;;;;;;OAMG;IACG,KAAK,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,eAAe,CAAC;IAoBvD,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"}
|
|
@@ -23,11 +23,11 @@ const requireNode = createRequire(import.meta.url);
|
|
|
23
23
|
function loadDatabaseSync() {
|
|
24
24
|
return requireNode("node:sqlite").DatabaseSync;
|
|
25
25
|
}
|
|
26
|
-
export class
|
|
26
|
+
export class SqliteDataStore {
|
|
27
27
|
static staticCapabilities() {
|
|
28
28
|
return {
|
|
29
|
-
connector_type: "
|
|
30
|
-
implementation: "
|
|
29
|
+
connector_type: "data_store",
|
|
30
|
+
implementation: "SqliteDataStore",
|
|
31
31
|
contract_version: CONTRACT_VERSION,
|
|
32
32
|
features: {
|
|
33
33
|
supports_writes: true,
|
|
@@ -110,7 +110,7 @@ export class SqliteMemoryStore {
|
|
|
110
110
|
`);
|
|
111
111
|
}
|
|
112
112
|
// v0.13.8 — direct lookup by id. Mirrors `SqliteSkillStore.skillRow` shape
|
|
113
|
-
// but returns `null` on miss instead of throwing (per
|
|
113
|
+
// but returns `null` on miss instead of throwing (per DataStore's empty-set
|
|
114
114
|
// convention, distinct from SkillStore's throw-on-miss).
|
|
115
115
|
async get(id) {
|
|
116
116
|
const row = this.db.prepare("SELECT id, summary, detail, tags, created_at, metadata FROM memories WHERE id = $id").get({ $id: id });
|
|
@@ -121,7 +121,7 @@ export class SqliteMemoryStore {
|
|
|
121
121
|
async query(filters) {
|
|
122
122
|
const { query, limit, mode } = filters;
|
|
123
123
|
if (mode !== "fts") {
|
|
124
|
-
throw new Error(`
|
|
124
|
+
throw new Error(`SqliteDataStore: mode '${mode}' not supported in T1 baseline. Use 'fts'. ` +
|
|
125
125
|
`Semantic / rerank land alongside the embedding pipeline in a follow-up thread.`);
|
|
126
126
|
}
|
|
127
127
|
if (!query || query.trim() === "") {
|
|
@@ -166,7 +166,7 @@ export class SqliteMemoryStore {
|
|
|
166
166
|
};
|
|
167
167
|
}
|
|
168
168
|
/**
|
|
169
|
-
* v0.8.0 — `
|
|
169
|
+
* v0.8.0 — `DataStore.write()` impl. Generates a substrate id; persists
|
|
170
170
|
* via the existing `upsert()` schema with tags + metadata. The `summary`
|
|
171
171
|
* field defaults to the first line of content (per the v0.7.x convention
|
|
172
172
|
* — adopters who want richer summaries pre-compose and pass via metadata).
|
|
@@ -277,4 +277,4 @@ function safeParseJson(s) {
|
|
|
277
277
|
return null;
|
|
278
278
|
}
|
|
279
279
|
}
|
|
280
|
-
//# sourceMappingURL=
|
|
280
|
+
//# sourceMappingURL=data-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-store.js","sourceRoot":"","sources":["../../src/connectors/data-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { QueryFilters } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Validate a `QueryFilters` object against the substrate's declared
|
|
4
|
+
* `supported_filters` set. Throws `UnsupportedFilterError` when any
|
|
5
|
+
* non-base-shape key is absent from `supportedKeys`, unless the caller
|
|
6
|
+
* passed `permissive_filters: true` on the query.
|
|
7
|
+
*
|
|
8
|
+
* Empty / undefined `supportedKeys` means the substrate hasn't declared
|
|
9
|
+
* any extension filters — under strict default, every non-base key
|
|
10
|
+
* throws. Adopters who don't know what their substrate supports should
|
|
11
|
+
* either query the manifest or pass `permissive_filters: true`.
|
|
12
|
+
*
|
|
13
|
+
* Bundle-side: called by `DataStoreMcpConnector.dispatchQuery` before
|
|
14
|
+
* forwarding to `dataStore.query()`. Custom McpConnector forks that
|
|
15
|
+
* expose retrieval surfaces should call the same helper.
|
|
16
|
+
*/
|
|
17
|
+
export declare function enforceSupportedFilters(filters: QueryFilters, supportedKeys: readonly string[] | undefined, substrateName: string, target?: string): void;
|
|
18
|
+
//# sourceMappingURL=filter-enforcement.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filter-enforcement.d.ts","sourceRoot":"","sources":["../../src/connectors/filter-enforcement.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAe/C;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,YAAY,EACrB,aAAa,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,EAC5C,aAAa,EAAE,MAAM,EACrB,MAAM,CAAC,EAAE,MAAM,GACd,IAAI,CAWN"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
// v0.14.1 — Substrate-side strict-filters enforcement for `$ data_read`
|
|
2
|
+
// query dispatch. Closes the silent-scope-leak class surfaced by the
|
|
3
|
+
// Phase 1 v4 cold-adopter dogfood: pre-v0.14.1, substrates silently
|
|
4
|
+
// dropped filter keys outside their declared `supported_filters` manifest,
|
|
5
|
+
// so authors who wrote `query=... vault=...` against a substrate that
|
|
6
|
+
// didn't honor `vault` got back unscoped results. Now: strict default at
|
|
7
|
+
// the bridge boundary throws `UnsupportedFilterError`; adopters opt out
|
|
8
|
+
// per-call with `permissive_filters: true`.
|
|
9
|
+
//
|
|
10
|
+
// Pattern: defaults-over-knobs for security-relevant surfaces (sibling to
|
|
11
|
+
// the F1 mutation-gate runtime enforcement). Aware adopters opt out;
|
|
12
|
+
// naive adopters get protection.
|
|
13
|
+
import { UnsupportedFilterError } from "../errors.js";
|
|
14
|
+
/**
|
|
15
|
+
* Base shape keys defined on the `QueryFilters` contract surface. The
|
|
16
|
+
* enforcer ignores these — they're the canonical query shape, not
|
|
17
|
+
* substrate-specific extensions. Adopter filters outside this set are
|
|
18
|
+
* checked against the substrate's `supported_filters` manifest.
|
|
19
|
+
*/
|
|
20
|
+
const BASE_QUERY_FILTER_KEYS = new Set([
|
|
21
|
+
"query",
|
|
22
|
+
"limit",
|
|
23
|
+
"mode",
|
|
24
|
+
"permissive_filters",
|
|
25
|
+
]);
|
|
26
|
+
/**
|
|
27
|
+
* Validate a `QueryFilters` object against the substrate's declared
|
|
28
|
+
* `supported_filters` set. Throws `UnsupportedFilterError` when any
|
|
29
|
+
* non-base-shape key is absent from `supportedKeys`, unless the caller
|
|
30
|
+
* passed `permissive_filters: true` on the query.
|
|
31
|
+
*
|
|
32
|
+
* Empty / undefined `supportedKeys` means the substrate hasn't declared
|
|
33
|
+
* any extension filters — under strict default, every non-base key
|
|
34
|
+
* throws. Adopters who don't know what their substrate supports should
|
|
35
|
+
* either query the manifest or pass `permissive_filters: true`.
|
|
36
|
+
*
|
|
37
|
+
* Bundle-side: called by `DataStoreMcpConnector.dispatchQuery` before
|
|
38
|
+
* forwarding to `dataStore.query()`. Custom McpConnector forks that
|
|
39
|
+
* expose retrieval surfaces should call the same helper.
|
|
40
|
+
*/
|
|
41
|
+
export function enforceSupportedFilters(filters, supportedKeys, substrateName, target) {
|
|
42
|
+
if (filters.permissive_filters === true)
|
|
43
|
+
return;
|
|
44
|
+
const supported = new Set(supportedKeys ?? []);
|
|
45
|
+
const unsupported = [];
|
|
46
|
+
for (const key of Object.keys(filters)) {
|
|
47
|
+
if (BASE_QUERY_FILTER_KEYS.has(key))
|
|
48
|
+
continue;
|
|
49
|
+
if (supported.has(key))
|
|
50
|
+
continue;
|
|
51
|
+
unsupported.push(key);
|
|
52
|
+
}
|
|
53
|
+
if (unsupported.length === 0)
|
|
54
|
+
return;
|
|
55
|
+
throw new UnsupportedFilterError(unsupported, [...supported], substrateName, target);
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=filter-enforcement.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filter-enforcement.js","sourceRoot":"","sources":["../../src/connectors/filter-enforcement.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,qEAAqE;AACrE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,yEAAyE;AACzE,wEAAwE;AACxE,4CAA4C;AAC5C,EAAE;AACF,0EAA0E;AAC1E,qEAAqE;AACrE,iCAAiC;AAEjC,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAGtD;;;;;GAKG;AACH,MAAM,sBAAsB,GAAwB,IAAI,GAAG,CAAC;IAC1D,OAAO;IACP,OAAO;IACP,MAAM;IACN,oBAAoB;CACrB,CAAC,CAAC;AAEH;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,uBAAuB,CACrC,OAAqB,EACrB,aAA4C,EAC5C,aAAqB,EACrB,MAAe;IAEf,IAAI,OAAO,CAAC,kBAAkB,KAAK,IAAI;QAAE,OAAO;IAChD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC;IAC/C,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACvC,IAAI,sBAAsB,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QAC9C,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QACjC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IACD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IACrC,MAAM,IAAI,sBAAsB,CAAC,WAAW,EAAE,CAAC,GAAG,SAAS,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;AACvF,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export type { SkillStore, SkillStoreClass, SkillSource, SkillMeta, SkillStatus, SkillFilter, VersionInfo,
|
|
2
|
-
export {
|
|
1
|
+
export type { SkillStore, SkillStoreClass, SkillSource, SkillMeta, SkillStatus, SkillFilter, VersionInfo, DataStore, DataStoreClass, PortableData, QueryFilters, DataWrite, DataWriteRecord, LocalModel, LocalModelClass, McpConnector, McpConnectorClass, McpDispatchCtx, StaticCapabilities, ManifestInfo, ConnectorType, CuratedDataField, SkillStoreCapabilities, DataStoreCapabilities, LocalModelCapabilities, McpConnectorCapabilities, AgentConnectorCapabilities, SkillStoreManifest, DataStoreManifest, LocalModelManifest, McpConnectorManifest, } from "./types.js";
|
|
2
|
+
export { CURATED_DATA_FIELDS, VALID_SKILL_STATUSES, isSkillStatus } from "./types.js";
|
|
3
3
|
export type { AgentConnector, AgentConnectorClass, AgentDescriptor, AgentStatus, DeliveryPayload, DeliveryReceipt, DeliveryMeta, RequestResponseOpts, Response, WakeOpts, WakeReceipt, } from "./agent.js";
|
|
4
4
|
export { Registry } from "./registry.js";
|
|
5
5
|
export { FilesystemSkillStore } from "./skill-store.js";
|
|
@@ -7,13 +7,13 @@ export { SqliteSkillStore } from "./sqlite-skill-store.js";
|
|
|
7
7
|
export type { SqliteSkillStoreConfig } from "./sqlite-skill-store.js";
|
|
8
8
|
export { OllamaLocalModel } from "./local-model.js";
|
|
9
9
|
export type { OllamaConfig } from "./local-model.js";
|
|
10
|
-
export {
|
|
11
|
-
export type {
|
|
10
|
+
export { SqliteDataStore } from "./data-store.js";
|
|
11
|
+
export type { SqliteDataStoreConfig } from "./data-store.js";
|
|
12
12
|
export { CallbackMcpConnector } from "./mcp.js";
|
|
13
13
|
export type { DispatchFn } from "./mcp.js";
|
|
14
14
|
export { NoOpAgentConnector } from "./agent-noop.js";
|
|
15
15
|
export { LocalModelMcpConnector } from "./local-model-mcp.js";
|
|
16
|
-
export {
|
|
16
|
+
export { DataStoreMcpConnector } from "./data-store-mcp.js";
|
|
17
17
|
export { registerConnectorClass, unregisterConnectorClass, getConnectorClass, listKnownConnectorClasses, loadConnectorsConfig, } from "./config.js";
|
|
18
18
|
export type { ConnectorClassEntry, ConfiguredConnector, LoadConnectorsConfigOpts, LoadConnectorsConfigResult, SubstrateChoice, SubstrateConfig, } from "./config.js";
|
|
19
19
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/connectors/index.ts"],"names":[],"mappings":"AAYA,YAAY,EACV,UAAU,EACV,eAAe,EACf,WAAW,EACX,SAAS,EACT,WAAW,EACX,WAAW,EACX,WAAW,EACX,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/connectors/index.ts"],"names":[],"mappings":"AAYA,YAAY,EACV,UAAU,EACV,eAAe,EACf,WAAW,EACX,SAAS,EACT,WAAW,EACX,WAAW,EACX,WAAW,EACX,SAAS,EACT,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,eAAe,EACf,UAAU,EACV,eAAe,EACf,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,gBAAgB,EAMhB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,EACxB,0BAA0B,EAG1B,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEtF,YAAY,EACV,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,WAAW,EACX,eAAe,EACf,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,QAAQ,EACR,QAAQ,EACR,WAAW,GACZ,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,YAAY,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,YAAY,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAChD,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAKrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAO5D,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,iBAAiB,EACjB,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,mBAAmB,EACnB,mBAAmB,EACnB,wBAAwB,EACxB,0BAA0B,EAC1B,eAAe,EACf,eAAe,GAChB,MAAM,aAAa,CAAC"}
|
package/dist/connectors/index.js
CHANGED
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
// `skillscript-runtime/connectors` entry point. Adapter authors implementing
|
|
2
2
|
// custom substrate backings import the connector contracts from here:
|
|
3
3
|
//
|
|
4
|
-
// import { type SkillStore, type
|
|
4
|
+
// import { type SkillStore, type DataStore } from "skillscript-runtime/connectors";
|
|
5
5
|
// class MySkillStore implements SkillStore { ... }
|
|
6
6
|
//
|
|
7
7
|
// Bundled reference implementations (FilesystemSkillStore, SqliteSkillStore,
|
|
8
|
-
//
|
|
8
|
+
// SqliteDataStore, OllamaLocalModel, CallbackMcpConnector) are also
|
|
9
9
|
// re-exported for embedders who want a one-import wiring path. v0.10 base
|
|
10
|
-
// config: SkillStore = filesystem,
|
|
10
|
+
// config: SkillStore = filesystem, DataStore = sqlite, LocalModel = null;
|
|
11
11
|
// see docs/configuration.md for substrate selection via connectors.json.
|
|
12
|
-
export {
|
|
12
|
+
export { CURATED_DATA_FIELDS, VALID_SKILL_STATUSES, isSkillStatus } from "./types.js";
|
|
13
13
|
export { Registry } from "./registry.js";
|
|
14
14
|
export { FilesystemSkillStore } from "./skill-store.js";
|
|
15
15
|
export { SqliteSkillStore } from "./sqlite-skill-store.js";
|
|
16
16
|
export { OllamaLocalModel } from "./local-model.js";
|
|
17
|
-
export {
|
|
17
|
+
export { SqliteDataStore } from "./data-store.js";
|
|
18
18
|
export { CallbackMcpConnector } from "./mcp.js";
|
|
19
19
|
export { NoOpAgentConnector } from "./agent-noop.js";
|
|
20
20
|
// v0.7.2 — typed-contract → MCP bridge classes. Wrap LocalModel /
|
|
21
|
-
//
|
|
21
|
+
// DataStore impls as McpConnector for canonical `$ llm` / `$ data_read`
|
|
22
22
|
// dispatch surfaces.
|
|
23
23
|
export { LocalModelMcpConnector } from "./local-model-mcp.js";
|
|
24
|
-
export {
|
|
24
|
+
export { DataStoreMcpConnector } from "./data-store-mcp.js";
|
|
25
25
|
// v0.7.3 — adopter-extensible connector class registry. Adopters with a
|
|
26
26
|
// custom `McpConnector` class that's JSON-instantiable via `connectors.json`
|
|
27
27
|
// call `registerConnectorClass(name, entry)` from their bootstrap BEFORE
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/connectors/index.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,sEAAsE;AACtE,EAAE;AACF,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/connectors/index.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,sEAAsE;AACtE,EAAE;AACF,sFAAsF;AACtF,qDAAqD;AACrD,EAAE;AACF,6EAA6E;AAC7E,oEAAoE;AACpE,0EAA0E;AAC1E,0EAA0E;AAC1E,yEAAyE;AA0CzE,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAgBtF,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAEhD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,kEAAkE;AAClE,wEAAwE;AACxE,qBAAqB;AACrB,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,wEAAwE;AACxE,6EAA6E;AAC7E,yEAAyE;AACzE,yEAAyE;AACzE,kDAAkD;AAClD,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,iBAAiB,EACjB,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,aAAa,CAAC"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
//
|
|
5
5
|
// Per Perry's v0.7.2 kickoff (d284763f) + Scott's substrate-portability
|
|
6
6
|
// architectural decision (831c2661 thread). This bridge — together with
|
|
7
|
-
// `
|
|
7
|
+
// `DataStoreMcpConnector` — defines the canonical MCP-dispatch contract
|
|
8
8
|
// for the LLM op class:
|
|
9
9
|
//
|
|
10
10
|
// $ <connector_name> prompt="..." [maxTokens=N] [model="..."] -> R
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-model-mcp.js","sourceRoot":"","sources":["../../src/connectors/local-model-mcp.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,kFAAkF;AAClF,yEAAyE;AACzE,EAAE;AACF,wEAAwE;AACxE,wEAAwE;AACxE,
|
|
1
|
+
{"version":3,"file":"local-model-mcp.js","sourceRoot":"","sources":["../../src/connectors/local-model-mcp.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,kFAAkF;AAClF,yEAAyE;AACzE,EAAE;AACF,wEAAwE;AACxE,wEAAwE;AACxE,wEAAwE;AACxE,wBAAwB;AACxB,EAAE;AACF,qEAAqE;AACrE,EAAE;AACF,qEAAqE;AACrE,qEAAqE;AACrE,qEAAqE;AACrE,oEAAoE;AACpE,sEAAsE;AACtE,qEAAqE;AACrE,iBAAiB;AACjB,EAAE;AACF,mEAAmE;AACnE,uEAAuE;AACvE,wEAAwE;AACxE,0BAA0B;AAU1B,MAAM,gBAAgB,GAAG,OAAO,CAAC;AAEjC,MAAM,OAAO,sBAAsB;IAyBJ;IAxB7B,MAAM,CAAC,kBAAkB;QACvB,OAAO;YACL,cAAc,EAAE,eAAe;YAC/B,cAAc,EAAE,wBAAwB;YACxC,gBAAgB,EAAE,gBAAgB;YAClC,QAAQ,EAAE;gBACR,6BAA6B,EAAE,KAAK;gBACpC,4BAA4B,EAAE,KAAK;gBACnC,cAAc,EAAE,KAAK;aACtB;SACF,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,WAAW;QAChB,OAAO,CAAC,QAAQ,CAAC,CAAC;IACpB,CAAC;IAED,YAA6B,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAAG,CAAC;IAEvD,KAAK,CAAC,IAAI,CACR,SAAiB,EACjB,IAA6B,EAC7B,aAA8B;QAE9B,MAAM,MAAM,GAAG,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,IAAI,MAAM,KAAK,EAAE,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,oFAAoF,CAAC,CAAC;QACxG,CAAC;QACD,MAAM,IAAI,GAA2C,EAAE,CAAC;QACxD,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;QACvC,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YACzD,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC;QAChC,CAAC;aAAM,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;YAC5C,MAAM,CAAC,GAAG,QAAQ,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;YACrC,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;gBAAE,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACtD,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/B,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,EAAE;YAAE,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;QAC3E,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;QACpD,OAAO;YACL,oBAAoB,EAAE,GAAG;YACzB,QAAQ,EAAE;gBACR,IAAI,EAAE,oBAAoB;gBAC1B,KAAK,EAAE,UAAU,CAAC,QAAQ,IAAI,EAAE;aACjC;SACF,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import type { SkillStore, SkillStoreClass,
|
|
1
|
+
import type { SkillStore, SkillStoreClass, DataStore, DataStoreClass, LocalModel, LocalModelClass, McpConnector, McpConnectorClass, StaticCapabilities } from "./types.js";
|
|
2
2
|
import type { AgentConnector, AgentConnectorClass } from "./agent.js";
|
|
3
3
|
export declare class Registry {
|
|
4
4
|
private skillStores;
|
|
5
|
-
private
|
|
5
|
+
private dataStores;
|
|
6
6
|
private localModels;
|
|
7
7
|
private mcpConnectors;
|
|
8
8
|
private agentConnectors;
|
|
9
9
|
registerSkillStore(name: string, instance: SkillStore): void;
|
|
10
|
-
|
|
10
|
+
registerDataStore(name: string, instance: DataStore): void;
|
|
11
11
|
registerLocalModel(name: string, instance: LocalModel): void;
|
|
12
12
|
registerMcpConnector(name: string, instance: McpConnector, allowedTools?: string[]): void;
|
|
13
13
|
/**
|
|
@@ -34,7 +34,7 @@ export declare class Registry {
|
|
|
34
34
|
*/
|
|
35
35
|
registerAgentConnector(name: string, instance: AgentConnector): Promise<void>;
|
|
36
36
|
getSkillStore(name?: string): SkillStore;
|
|
37
|
-
|
|
37
|
+
getDataStore(name?: string): DataStore;
|
|
38
38
|
getLocalModel(name?: string): LocalModel;
|
|
39
39
|
getMcpConnector(name?: string): McpConnector;
|
|
40
40
|
/**
|
|
@@ -56,7 +56,7 @@ export declare class Registry {
|
|
|
56
56
|
*/
|
|
57
57
|
getAgentConnectorOrDefault(name?: string): AgentConnector;
|
|
58
58
|
getSkillStoreClass(name?: string): SkillStoreClass;
|
|
59
|
-
|
|
59
|
+
getDataStoreClass(name?: string): DataStoreClass;
|
|
60
60
|
getLocalModelClass(name?: string): LocalModelClass;
|
|
61
61
|
getMcpConnectorClass(name?: string): McpConnectorClass;
|
|
62
62
|
/**
|
|
@@ -74,7 +74,7 @@ export declare class Registry {
|
|
|
74
74
|
*/
|
|
75
75
|
getAgentConnectorClassOrDefault(name?: string): AgentConnectorClass;
|
|
76
76
|
listSkillStoreClasses(): SkillStoreClass[];
|
|
77
|
-
|
|
77
|
+
listDataStoreClasses(): DataStoreClass[];
|
|
78
78
|
listLocalModelClasses(): LocalModelClass[];
|
|
79
79
|
listMcpConnectorClasses(): McpConnectorClass[];
|
|
80
80
|
listAgentConnectorClasses(): AgentConnectorClass[];
|
|
@@ -83,10 +83,10 @@ export declare class Registry {
|
|
|
83
83
|
instance: SkillStore;
|
|
84
84
|
ctor: SkillStoreClass;
|
|
85
85
|
}>;
|
|
86
|
-
|
|
86
|
+
listDataStores(): Array<{
|
|
87
87
|
name: string;
|
|
88
|
-
instance:
|
|
89
|
-
ctor:
|
|
88
|
+
instance: DataStore;
|
|
89
|
+
ctor: DataStoreClass;
|
|
90
90
|
}>;
|
|
91
91
|
listLocalModels(): Array<{
|
|
92
92
|
name: string;
|
|
@@ -112,7 +112,7 @@ export declare class Registry {
|
|
|
112
112
|
*/
|
|
113
113
|
getAllStaticCapabilities(): StaticCapabilities[];
|
|
114
114
|
hasSkillStore(name?: string): boolean;
|
|
115
|
-
|
|
115
|
+
hasDataStore(name?: string): boolean;
|
|
116
116
|
hasLocalModel(name?: string): boolean;
|
|
117
117
|
hasMcpConnector(name?: string): boolean;
|
|
118
118
|
hasAgentConnector(name?: string): boolean;
|
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/connectors/registry.ts"],"names":[],"mappings":"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"}
|