@aionis/substrate 0.1.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.
Files changed (61) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/LICENSE +201 -0
  3. package/README.md +222 -0
  4. package/dist/backup.d.ts +38 -0
  5. package/dist/backup.d.ts.map +1 -0
  6. package/dist/backup.js +203 -0
  7. package/dist/backup.js.map +1 -0
  8. package/dist/event-log.d.ts +18 -0
  9. package/dist/event-log.d.ts.map +1 -0
  10. package/dist/event-log.js +157 -0
  11. package/dist/event-log.js.map +1 -0
  12. package/dist/file-substrate.d.ts +7 -0
  13. package/dist/file-substrate.d.ts.map +1 -0
  14. package/dist/file-substrate.js +409 -0
  15. package/dist/file-substrate.js.map +1 -0
  16. package/dist/index.d.ts +9 -0
  17. package/dist/index.d.ts.map +1 -0
  18. package/dist/index.js +9 -0
  19. package/dist/index.js.map +1 -0
  20. package/dist/runtime-reference-corpus.d.ts +76 -0
  21. package/dist/runtime-reference-corpus.d.ts.map +1 -0
  22. package/dist/runtime-reference-corpus.js +308 -0
  23. package/dist/runtime-reference-corpus.js.map +1 -0
  24. package/dist/runtime-snapshot-corpus.d.ts +53 -0
  25. package/dist/runtime-snapshot-corpus.d.ts.map +1 -0
  26. package/dist/runtime-snapshot-corpus.js +176 -0
  27. package/dist/runtime-snapshot-corpus.js.map +1 -0
  28. package/dist/runtime-snapshot-importer.d.ts +27 -0
  29. package/dist/runtime-snapshot-importer.d.ts.map +1 -0
  30. package/dist/runtime-snapshot-importer.js +571 -0
  31. package/dist/runtime-snapshot-importer.js.map +1 -0
  32. package/dist/runtime-snapshot-parity.d.ts +40 -0
  33. package/dist/runtime-snapshot-parity.d.ts.map +1 -0
  34. package/dist/runtime-snapshot-parity.js +217 -0
  35. package/dist/runtime-snapshot-parity.js.map +1 -0
  36. package/dist/search.d.ts +3 -0
  37. package/dist/search.d.ts.map +1 -0
  38. package/dist/search.js +157 -0
  39. package/dist/search.js.map +1 -0
  40. package/dist/sqlite-substrate.d.ts +7 -0
  41. package/dist/sqlite-substrate.d.ts.map +1 -0
  42. package/dist/sqlite-substrate.js +666 -0
  43. package/dist/sqlite-substrate.js.map +1 -0
  44. package/dist/types.d.ts +253 -0
  45. package/dist/types.d.ts.map +1 -0
  46. package/dist/types.js +2 -0
  47. package/dist/types.js.map +1 -0
  48. package/docs/ADAPTER_CONTRACT.md +155 -0
  49. package/docs/API_USAGE.md +225 -0
  50. package/docs/BACKUP_RESTORE.md +108 -0
  51. package/docs/CHECKPOINT_COMPACTION.md +75 -0
  52. package/docs/EXTERNAL_ADMISSION_PARITY.md +98 -0
  53. package/docs/RUNTIME_DUAL_WRITE_EXPERIMENT.md +132 -0
  54. package/docs/RUNTIME_MAPPING.md +69 -0
  55. package/docs/RUNTIME_REFERENCE_CORPUS.md +129 -0
  56. package/docs/RUNTIME_SNAPSHOT_CORPUS.md +81 -0
  57. package/docs/RUNTIME_SNAPSHOT_IMPORT.md +120 -0
  58. package/docs/STORE_CONTRACT.md +181 -0
  59. package/examples/basic/README.md +19 -0
  60. package/examples/basic/index.mjs +112 -0
  61. package/package.json +65 -0
@@ -0,0 +1,217 @@
1
+ import { mkdtemp, readFile, mkdir, rm, writeFile } from "node:fs/promises";
2
+ import { dirname, join, resolve } from "node:path";
3
+ import { tmpdir } from "node:os";
4
+ import { importRuntimeLiteSnapshot, } from "./runtime-snapshot-importer.js";
5
+ import { openSqliteAionisSubstrate } from "./sqlite-substrate.js";
6
+ function emptySurfaces() {
7
+ return {
8
+ use_now: [],
9
+ inspect_before_use: [],
10
+ do_not_use: [],
11
+ rehydrate: [],
12
+ };
13
+ }
14
+ function uniqueStrings(values) {
15
+ return Array.from(new Set(values
16
+ .filter((value) => typeof value === "string")
17
+ .map((value) => value.trim())
18
+ .filter(Boolean)));
19
+ }
20
+ function asRecord(value) {
21
+ return value && typeof value === "object" && !Array.isArray(value) ? value : null;
22
+ }
23
+ function stringArray(value) {
24
+ return Array.isArray(value) ? uniqueStrings(value) : [];
25
+ }
26
+ function rehydrateIds(value) {
27
+ if (!Array.isArray(value))
28
+ return [];
29
+ const ids = [];
30
+ for (const item of value) {
31
+ if (typeof item === "string") {
32
+ ids.push(item);
33
+ continue;
34
+ }
35
+ const record = asRecord(item);
36
+ const id = record?.memory_id ?? record?.memoryId ?? record?.id;
37
+ if (typeof id === "string")
38
+ ids.push(id);
39
+ }
40
+ return uniqueStrings(ids);
41
+ }
42
+ function mergeSurfaces(target, source) {
43
+ for (const bucket of Object.keys(target)) {
44
+ target[bucket] = uniqueStrings([...(target[bucket] ?? []), ...(source[bucket] ?? [])]);
45
+ }
46
+ }
47
+ function findNestedRecords(value, key, out = []) {
48
+ const record = asRecord(value);
49
+ if (record) {
50
+ const candidate = asRecord(record[key]);
51
+ if (candidate)
52
+ out.push(candidate);
53
+ for (const nested of Object.values(record)) {
54
+ findNestedRecords(nested, key, out);
55
+ }
56
+ }
57
+ else if (Array.isArray(value)) {
58
+ for (const item of value)
59
+ findNestedRecords(item, key, out);
60
+ }
61
+ return out;
62
+ }
63
+ function surfacesFromAgentContext(agentContext) {
64
+ return {
65
+ use_now: stringArray(agentContext.use_now_memory_ids),
66
+ inspect_before_use: stringArray(agentContext.inspect_before_use_memory_ids),
67
+ do_not_use: stringArray(agentContext.do_not_use_memory_ids),
68
+ rehydrate: uniqueStrings([
69
+ ...stringArray(agentContext.rehydrate_memory_ids),
70
+ ...rehydrateIds(agentContext.rehydrate_hints),
71
+ ]),
72
+ };
73
+ }
74
+ function surfacesFromDecisionTrace(trace) {
75
+ const surfaces = emptySurfaces();
76
+ const decisions = Array.isArray(trace.memory_decisions) ? trace.memory_decisions : [];
77
+ for (const item of decisions) {
78
+ const decision = asRecord(item);
79
+ if (!decision)
80
+ continue;
81
+ const memoryId = decision.memory_id ?? decision.memoryId;
82
+ const surface = decision.agent_surface ?? decision.admission_action;
83
+ if (typeof memoryId !== "string" || typeof surface !== "string")
84
+ continue;
85
+ if (surface === "use_now" || surface === "inspect_before_use" || surface === "do_not_use" || surface === "rehydrate") {
86
+ surfaces[surface].push(memoryId);
87
+ }
88
+ }
89
+ for (const bucket of Object.keys(surfaces)) {
90
+ surfaces[bucket] = uniqueStrings(surfaces[bucket]);
91
+ }
92
+ return surfaces;
93
+ }
94
+ export function extractRuntimeReferenceSurfaces(value) {
95
+ const surfaces = emptySurfaces();
96
+ const root = asRecord(value);
97
+ if (root) {
98
+ if (Array.isArray(root.use_now_memory_ids)
99
+ || Array.isArray(root.inspect_before_use_memory_ids)
100
+ || Array.isArray(root.do_not_use_memory_ids)
101
+ || Array.isArray(root.rehydrate_hints)) {
102
+ mergeSurfaces(surfaces, surfacesFromAgentContext(root));
103
+ }
104
+ if (Array.isArray(root.memory_decisions)) {
105
+ mergeSurfaces(surfaces, surfacesFromDecisionTrace(root));
106
+ }
107
+ }
108
+ for (const agentContext of findNestedRecords(value, "agent_context")) {
109
+ mergeSurfaces(surfaces, surfacesFromAgentContext(agentContext));
110
+ }
111
+ for (const trace of findNestedRecords(value, "memory_decision_trace")) {
112
+ mergeSurfaces(surfaces, surfacesFromDecisionTrace(trace));
113
+ }
114
+ return surfaces;
115
+ }
116
+ function contextSurfaces(context) {
117
+ return {
118
+ use_now: context.use_now.map((node) => node.id),
119
+ inspect_before_use: context.inspect_before_use.map((node) => node.id),
120
+ do_not_use: context.do_not_use.map((node) => node.id),
121
+ rehydrate: context.rehydrate.map((node) => node.id),
122
+ };
123
+ }
124
+ function sorted(values) {
125
+ return [...values].sort((a, b) => a.localeCompare(b));
126
+ }
127
+ function bucketReport(bucket, substrate, runtimeReference) {
128
+ const substrateSet = new Set(substrate);
129
+ const referenceSet = new Set(runtimeReference);
130
+ const matched = sorted(runtimeReference.filter((id) => substrateSet.has(id)));
131
+ const missingFromSubstrate = sorted(runtimeReference.filter((id) => !substrateSet.has(id)));
132
+ const extraInSubstrate = sorted(substrate.filter((id) => !referenceSet.has(id)));
133
+ return {
134
+ bucket,
135
+ substrate: sorted(substrate),
136
+ runtimeReference: sorted(runtimeReference),
137
+ matched,
138
+ missingFromSubstrate,
139
+ extraInSubstrate,
140
+ exact: missingFromSubstrate.length === 0 && extraInSubstrate.length === 0,
141
+ };
142
+ }
143
+ export function compareSurfaces(substrate, runtimeReference) {
144
+ return Object.keys(substrate).map((bucket) => bucketReport(bucket, substrate[bucket], runtimeReference[bucket]));
145
+ }
146
+ async function readReference(path) {
147
+ const parsed = JSON.parse(await readFile(path, "utf8"));
148
+ return extractRuntimeReferenceSurfaces(parsed);
149
+ }
150
+ async function openTarget(options) {
151
+ if (options.targetPath) {
152
+ const targetPath = resolve(options.targetPath);
153
+ await mkdir(dirname(targetPath), { recursive: true });
154
+ return { store: await openSqliteAionisSubstrate({ path: targetPath }), targetPath, cleanup: async () => undefined };
155
+ }
156
+ const dir = await mkdtemp(join(tmpdir(), "aionis-substrate-parity-"));
157
+ const targetPath = join(dir, "substrate.sqlite");
158
+ return {
159
+ store: await openSqliteAionisSubstrate({ path: targetPath }),
160
+ targetPath,
161
+ cleanup: async () => {
162
+ await rm(dir, { recursive: true, force: true });
163
+ },
164
+ };
165
+ }
166
+ export async function runRuntimeSnapshotParity(options) {
167
+ const sourcePath = resolve(options.sourcePath);
168
+ const { store, targetPath, cleanup } = await openTarget(options);
169
+ try {
170
+ const importSummary = await importRuntimeLiteSnapshot({
171
+ sourcePath,
172
+ target: store,
173
+ scope: options.scope,
174
+ });
175
+ const context = await store.compileContext({
176
+ scope: options.scope,
177
+ query: "runtime snapshot parity",
178
+ maxPerBucket: options.maxPerBucket,
179
+ });
180
+ const substrateContext = contextSurfaces(context);
181
+ const runtimeReference = options.referencePath ? await readReference(resolve(options.referencePath)) : null;
182
+ const bucketReports = runtimeReference ? compareSurfaces(substrateContext, runtimeReference) : [];
183
+ const exact = runtimeReference ? bucketReports.every((bucket) => bucket.exact) : null;
184
+ const report = {
185
+ contract_version: "aionis_runtime_snapshot_parity_report_v1",
186
+ source_path: sourcePath,
187
+ scope: options.scope,
188
+ generated_at: new Date().toISOString(),
189
+ import_summary: importSummary,
190
+ substrate_context: substrateContext,
191
+ reference_present: runtimeReference !== null,
192
+ reference_source_path: options.referencePath ? resolve(options.referencePath) : null,
193
+ runtime_reference: runtimeReference,
194
+ parity: {
195
+ exact,
196
+ bucket_reports: bucketReports,
197
+ },
198
+ notes: [
199
+ `source Runtime SQLite was imported read-only into ${targetPath}`,
200
+ runtimeReference
201
+ ? "parity compares Substrate compileContext buckets with supplied Runtime agent_context/memory_decision_trace JSON"
202
+ : "no Runtime reference JSON supplied; report is import coverage plus Substrate context smoke",
203
+ ],
204
+ };
205
+ if (options.outputPath) {
206
+ const outputPath = resolve(options.outputPath);
207
+ await mkdir(dirname(outputPath), { recursive: true });
208
+ await writeFile(outputPath, `${JSON.stringify(report, null, 2)}\n`, "utf8");
209
+ }
210
+ return report;
211
+ }
212
+ finally {
213
+ await store.close();
214
+ await cleanup();
215
+ }
216
+ }
217
+ //# sourceMappingURL=runtime-snapshot-parity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-snapshot-parity.js","sourceRoot":"","sources":["../src/runtime-snapshot-parity.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { AionisMemoryNode, AionisMemorySearchInput, AionisMemorySearchResult } from "./types.ts";
2
+ export declare function searchMemoryNodes(nodes: AionisMemoryNode[], input: AionisMemorySearchInput): AionisMemorySearchResult[];
3
+ //# sourceMappingURL=search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../src/search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,uBAAuB,EAEvB,wBAAwB,EACzB,MAAM,YAAY,CAAC;AA0FpB,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,EAAE,EAAE,KAAK,EAAE,uBAAuB,GAAG,wBAAwB,EAAE,CAuDvH"}
package/dist/search.js ADDED
@@ -0,0 +1,157 @@
1
+ const MAX_DEFAULT_RESULTS = 50;
2
+ function normalizeText(value) {
3
+ return value.toLowerCase().normalize("NFKC");
4
+ }
5
+ function tokenize(value) {
6
+ return Array.from(new Set(normalizeText(value).match(/[\p{L}\p{N}_./:-]+/gu) ?? []));
7
+ }
8
+ function normalizePath(value) {
9
+ return value.trim().replaceAll("\\", "/").replace(/\/+/g, "/").toLowerCase();
10
+ }
11
+ function stableMetadataText(metadata) {
12
+ if (!metadata)
13
+ return "";
14
+ return Object.entries(metadata)
15
+ .filter(([, value]) => typeof value === "string" || typeof value === "number" || typeof value === "boolean")
16
+ .sort(([a], [b]) => a.localeCompare(b))
17
+ .map(([key, value]) => `${key}:${String(value)}`)
18
+ .join(" ");
19
+ }
20
+ function nodeSearchText(node) {
21
+ return [
22
+ node.id,
23
+ node.kind,
24
+ node.title ?? "",
25
+ node.summary,
26
+ ...(node.targetFiles ?? []),
27
+ node.payloadRef ?? "",
28
+ node.agentId ?? "",
29
+ node.teamId ?? "",
30
+ stableMetadataText(node.metadata),
31
+ ].filter(Boolean).join(" ");
32
+ }
33
+ function hasAnyTargetFile(node, targetFiles) {
34
+ const wanted = new Set(targetFiles.map(normalizePath).filter(Boolean));
35
+ if (wanted.size === 0)
36
+ return true;
37
+ return (node.targetFiles ?? []).some((target) => wanted.has(normalizePath(target)));
38
+ }
39
+ function compareIso(value, boundary) {
40
+ return value.localeCompare(boundary);
41
+ }
42
+ function queryScore(node, query) {
43
+ const tokens = tokenize(query ?? "");
44
+ if (tokens.length === 0)
45
+ return { score: 0, reasons: [] };
46
+ const titleTokens = new Set(tokenize(node.title ?? ""));
47
+ const summaryTokens = new Set(tokenize(node.summary));
48
+ const idTokens = new Set(tokenize(node.id));
49
+ const fileTokens = new Set((node.targetFiles ?? []).flatMap(tokenize));
50
+ const text = normalizeText(nodeSearchText(node));
51
+ let score = 0;
52
+ const matched = [];
53
+ for (const token of tokens) {
54
+ if (titleTokens.has(token)) {
55
+ score += 5;
56
+ matched.push(token);
57
+ }
58
+ else if (fileTokens.has(token) || (node.targetFiles ?? []).some((file) => normalizePath(file).includes(token))) {
59
+ score += 4;
60
+ matched.push(token);
61
+ }
62
+ else if (idTokens.has(token)) {
63
+ score += 3;
64
+ matched.push(token);
65
+ }
66
+ else if (summaryTokens.has(token)) {
67
+ score += 2;
68
+ matched.push(token);
69
+ }
70
+ else if (text.includes(token)) {
71
+ score += 1;
72
+ matched.push(token);
73
+ }
74
+ }
75
+ if (matched.length === 0)
76
+ return null;
77
+ return {
78
+ score,
79
+ reasons: [{
80
+ code: "query_match",
81
+ detail: `matched ${matched.length}/${tokens.length} query tokens: ${matched.join(", ")}`,
82
+ }],
83
+ };
84
+ }
85
+ export function searchMemoryNodes(nodes, input) {
86
+ const scope = input.scope.trim();
87
+ if (!scope)
88
+ throw new Error("scope is required");
89
+ const limit = input.limit === undefined ? MAX_DEFAULT_RESULTS : input.limit;
90
+ if (!Number.isInteger(limit) || limit < 1)
91
+ throw new Error("limit must be a positive integer");
92
+ if (input.minConfidence !== undefined && (!Number.isFinite(input.minConfidence) || input.minConfidence < 0 || input.minConfidence > 1)) {
93
+ throw new Error("minConfidence must be between 0 and 1");
94
+ }
95
+ const kindFilter = input.kinds === undefined ? null : new Set(input.kinds);
96
+ const lifecycleFilter = input.lifecycle === undefined ? null : new Set(input.lifecycle);
97
+ const authorityFilter = input.authority === undefined ? null : new Set(input.authority);
98
+ const targetFiles = input.targetFiles?.map((item) => item.trim()).filter(Boolean) ?? [];
99
+ const results = [];
100
+ for (const node of nodes) {
101
+ if (node.scope !== scope)
102
+ continue;
103
+ if (kindFilter && !kindFilter.has(node.kind))
104
+ continue;
105
+ if (lifecycleFilter && !lifecycleFilter.has(node.lifecycle))
106
+ continue;
107
+ if (authorityFilter && !authorityFilter.has(node.authority))
108
+ continue;
109
+ if (input.agentId !== undefined && node.agentId !== input.agentId)
110
+ continue;
111
+ if (input.teamId !== undefined && node.teamId !== input.teamId)
112
+ continue;
113
+ if (input.minConfidence !== undefined && node.confidence < input.minConfidence)
114
+ continue;
115
+ if (input.updatedAfter !== undefined && compareIso(node.updatedAt, input.updatedAfter) < 0)
116
+ continue;
117
+ if (input.updatedBefore !== undefined && compareIso(node.updatedAt, input.updatedBefore) > 0)
118
+ continue;
119
+ if (!hasAnyTargetFile(node, targetFiles))
120
+ continue;
121
+ const query = queryScore(node, input.query);
122
+ if (query === null)
123
+ continue;
124
+ const reasons = [
125
+ { code: "scope_match", detail: `scope=${scope}` },
126
+ ...query.reasons,
127
+ ];
128
+ if (kindFilter)
129
+ reasons.push({ code: "kind_filter", detail: `kind=${node.kind}` });
130
+ if (lifecycleFilter)
131
+ reasons.push({ code: "lifecycle_filter", detail: `lifecycle=${node.lifecycle}` });
132
+ if (authorityFilter)
133
+ reasons.push({ code: "authority_filter", detail: `authority=${node.authority}` });
134
+ if (targetFiles.length > 0)
135
+ reasons.push({ code: "target_file_filter", detail: `matched one of ${targetFiles.join(", ")}` });
136
+ if (input.agentId !== undefined)
137
+ reasons.push({ code: "agent_filter", detail: `agentId=${String(input.agentId)}` });
138
+ if (input.teamId !== undefined)
139
+ reasons.push({ code: "team_filter", detail: `teamId=${String(input.teamId)}` });
140
+ if (input.minConfidence !== undefined)
141
+ reasons.push({ code: "confidence_filter", detail: `confidence>=${input.minConfidence}` });
142
+ const score = query.score + node.confidence;
143
+ results.push({ node, score, reasons });
144
+ }
145
+ return results
146
+ .sort((a, b) => {
147
+ const byScore = b.score - a.score;
148
+ if (byScore !== 0)
149
+ return byScore;
150
+ const byTime = b.node.updatedAt.localeCompare(a.node.updatedAt);
151
+ if (byTime !== 0)
152
+ return byTime;
153
+ return a.node.id.localeCompare(b.node.id);
154
+ })
155
+ .slice(0, limit);
156
+ }
157
+ //# sourceMappingURL=search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../src/search.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { AionisSubstrate } from "./types.ts";
2
+ export type SqliteAionisSubstrateOptions = {
3
+ path: string;
4
+ now?: () => Date;
5
+ };
6
+ export declare function openSqliteAionisSubstrate(options: SqliteAionisSubstrateOptions): Promise<AionisSubstrate>;
7
+ //# sourceMappingURL=sqlite-substrate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlite-substrate.d.ts","sourceRoot":"","sources":["../src/sqlite-substrate.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAcV,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,4BAA4B,GAAG;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB,CAAC;AAsVF,wBAAsB,yBAAyB,CAAC,OAAO,EAAE,4BAA4B,GAAG,OAAO,CAAC,eAAe,CAAC,CA4c/G"}