@remnic/core 9.3.619 → 9.3.621
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/access-cli.js +6 -6
- package/dist/access-http.js +5 -5
- package/dist/access-mcp.js +4 -4
- package/dist/access-schema.d.ts +34 -34
- package/dist/access-service.js +3 -3
- package/dist/active-recall.js +1 -1
- package/dist/{chunk-KGLPJROV.js → chunk-4EWRLK3C.js} +9 -9
- package/dist/{chunk-T7N6KQGS.js → chunk-5GOMXHLC.js} +6 -1
- package/dist/chunk-5GOMXHLC.js.map +1 -0
- package/dist/{chunk-UEY3VB6W.js → chunk-6HMYUWXR.js} +13 -3
- package/dist/chunk-6HMYUWXR.js.map +1 -0
- package/dist/{chunk-JQDZQ4TB.js → chunk-BMFZLLNI.js} +2 -2
- package/dist/{chunk-ZK32E74R.js → chunk-F4QTFIB4.js} +3 -3
- package/dist/{chunk-X4QQB7O6.js → chunk-FH3PPO42.js} +3 -3
- package/dist/{chunk-TNOWU6RP.js → chunk-HA5SI4GK.js} +3 -3
- package/dist/{chunk-EXUAP5LH.js → chunk-O3U5BPUP.js} +3 -3
- package/dist/{chunk-NM5NQYJE.js → chunk-THTIZJZA.js} +3 -3
- package/dist/{chunk-5OHHEORR.js → chunk-TIPYPLLQ.js} +2 -2
- package/dist/{chunk-VMGLYN42.js → chunk-XQNPGNKK.js} +11 -6
- package/dist/chunk-XQNPGNKK.js.map +1 -0
- package/dist/{chunk-OBIRVF36.js → chunk-YEEAADCI.js} +2 -2
- package/dist/cli.js +11 -11
- package/dist/config.js +1 -1
- package/dist/index.js +12 -12
- package/dist/namespaces/migrate.js +2 -2
- package/dist/namespaces/storage.js +1 -1
- package/dist/objective-state-writers.js +2 -2
- package/dist/objective-state.js +1 -1
- package/dist/operator-toolkit.js +4 -4
- package/dist/orchestrator.js +3 -3
- package/dist/resume-bundles.js +3 -3
- package/dist/schemas.d.ts +64 -64
- package/dist/shared-context/manager.d.ts +2 -2
- package/dist/transfer/types.d.ts +12 -12
- package/package.json +1 -1
- package/src/config.ts +5 -0
- package/src/namespaces/storage.ts +30 -5
- package/src/objective-state.ts +17 -2
- package/dist/chunk-T7N6KQGS.js.map +0 -1
- package/dist/chunk-UEY3VB6W.js.map +0 -1
- package/dist/chunk-VMGLYN42.js.map +0 -1
- /package/dist/{chunk-KGLPJROV.js.map → chunk-4EWRLK3C.js.map} +0 -0
- /package/dist/{chunk-JQDZQ4TB.js.map → chunk-BMFZLLNI.js.map} +0 -0
- /package/dist/{chunk-ZK32E74R.js.map → chunk-F4QTFIB4.js.map} +0 -0
- /package/dist/{chunk-X4QQB7O6.js.map → chunk-FH3PPO42.js.map} +0 -0
- /package/dist/{chunk-TNOWU6RP.js.map → chunk-HA5SI4GK.js.map} +0 -0
- /package/dist/{chunk-EXUAP5LH.js.map → chunk-O3U5BPUP.js.map} +0 -0
- /package/dist/{chunk-NM5NQYJE.js.map → chunk-THTIZJZA.js.map} +0 -0
- /package/dist/{chunk-5OHHEORR.js.map → chunk-TIPYPLLQ.js.map} +0 -0
- /package/dist/{chunk-OBIRVF36.js.map → chunk-YEEAADCI.js.map} +0 -0
|
@@ -30,6 +30,15 @@ function validateValueRef(raw, field) {
|
|
|
30
30
|
function validateMetadata(raw) {
|
|
31
31
|
return validateStringRecord(raw, "metadata");
|
|
32
32
|
}
|
|
33
|
+
function assertWithinDir(baseDir, candidate) {
|
|
34
|
+
const resolvedBase = path.resolve(baseDir);
|
|
35
|
+
const resolved = path.resolve(candidate);
|
|
36
|
+
const rel = path.relative(resolvedBase, resolved);
|
|
37
|
+
if (rel === ".." || rel.startsWith(`..${path.sep}`) || path.isAbsolute(rel)) {
|
|
38
|
+
throw new Error("objective-state path escapes the snapshots directory");
|
|
39
|
+
}
|
|
40
|
+
return resolved;
|
|
41
|
+
}
|
|
33
42
|
function resolveObjectiveStateStoreDir(memoryDir, overrideDir) {
|
|
34
43
|
if (typeof overrideDir === "string" && overrideDir.trim().length > 0) {
|
|
35
44
|
return overrideDir.trim();
|
|
@@ -89,8 +98,9 @@ async function recordObjectiveStateSnapshot(options) {
|
|
|
89
98
|
const rootDir = resolveObjectiveStateStoreDir(options.memoryDir, options.objectiveStateStoreDir);
|
|
90
99
|
const validated = validateObjectiveStateSnapshot(options.snapshot);
|
|
91
100
|
const day = recordStoreDay(validated.recordedAt);
|
|
92
|
-
const
|
|
93
|
-
const
|
|
101
|
+
const snapshotsRoot = path.join(rootDir, "snapshots");
|
|
102
|
+
const snapshotsDir = assertWithinDir(snapshotsRoot, path.join(snapshotsRoot, day));
|
|
103
|
+
const filePath = assertWithinDir(snapshotsDir, path.join(snapshotsDir, `${validated.snapshotId}.json`));
|
|
94
104
|
await mkdir(snapshotsDir, { recursive: true });
|
|
95
105
|
await writeFile(filePath, JSON.stringify(validated, null, 2), "utf8");
|
|
96
106
|
return filePath;
|
|
@@ -208,4 +218,4 @@ export {
|
|
|
208
218
|
getObjectiveStateStoreStatus,
|
|
209
219
|
searchObjectiveStateSnapshots
|
|
210
220
|
};
|
|
211
|
-
//# sourceMappingURL=chunk-
|
|
221
|
+
//# sourceMappingURL=chunk-6HMYUWXR.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/objective-state.ts"],"sourcesContent":["import path from \"node:path\";\nimport { mkdir, writeFile } from \"node:fs/promises\";\nimport { listJsonFiles, readJsonFile } from \"./json-store.js\";\nimport {\n assertIsoRecordedAt,\n assertSafePathSegment,\n assertString,\n isRecord,\n optionalString,\n optionalStringArray,\n recordStoreDay,\n validateStringRecord,\n} from \"./store-contract.js\";\n\nexport type ObjectiveStateSnapshotSource = \"tool_result\" | \"cli\" | \"system\" | \"manual\";\nexport type ObjectiveStateSnapshotKind = \"tool\" | \"file\" | \"process\" | \"record\" | \"workspace\";\nexport type ObjectiveStateChangeKind = \"created\" | \"updated\" | \"deleted\" | \"observed\" | \"executed\" | \"failed\";\nexport type ObjectiveStateOutcome = \"success\" | \"failure\" | \"partial\" | \"unknown\";\n\nexport interface ObjectiveStateValueRef {\n exists?: boolean;\n ref?: string;\n valueHash?: string;\n}\n\nexport interface ObjectiveStateSnapshot {\n schemaVersion: 1;\n snapshotId: string;\n recordedAt: string;\n sessionKey: string;\n source: ObjectiveStateSnapshotSource;\n kind: ObjectiveStateSnapshotKind;\n changeKind: ObjectiveStateChangeKind;\n scope: string;\n summary: string;\n toolName?: string;\n command?: string;\n outcome?: ObjectiveStateOutcome;\n before?: ObjectiveStateValueRef;\n after?: ObjectiveStateValueRef;\n entityRefs?: string[];\n tags?: string[];\n metadata?: Record<string, string>;\n}\n\nexport interface ObjectiveStateStoreStatus {\n enabled: boolean;\n writesEnabled: boolean;\n rootDir: string;\n snapshotsDir: string;\n snapshots: {\n total: number;\n valid: number;\n invalid: number;\n byKind: Partial<Record<ObjectiveStateSnapshotKind, number>>;\n byOutcome: Partial<Record<ObjectiveStateOutcome, number>>;\n latestSnapshotId?: string;\n latestRecordedAt?: string;\n latestSessionKey?: string;\n };\n latestSnapshot?: ObjectiveStateSnapshot;\n invalidSnapshots: Array<{\n path: string;\n error: string;\n }>;\n}\n\nexport interface ObjectiveStateSearchResult {\n snapshot: ObjectiveStateSnapshot;\n score: number;\n}\n\nfunction validateValueRef(raw: unknown, field: string): ObjectiveStateValueRef | undefined {\n if (raw === undefined) return undefined;\n if (!isRecord(raw)) throw new Error(`${field} must be an object`);\n const exists = typeof raw.exists === \"boolean\" ? raw.exists : undefined;\n const ref = optionalString(raw.ref);\n const valueHash = optionalString(raw.valueHash);\n if (exists === undefined && ref === undefined && valueHash === undefined) {\n throw new Error(`${field} must include exists, ref, or valueHash`);\n }\n return { exists, ref, valueHash };\n}\n\nfunction validateMetadata(raw: unknown): Record<string, string> | undefined {\n return validateStringRecord(raw, \"metadata\");\n}\n\n// Assert that a built path stays inside the expected base directory before it is\n// used in a filesystem write. snapshotId/recordedAt are already validated by\n// validateObjectiveStateSnapshot, so for valid data this is a defense-in-depth\n// barrier (and makes the containment provable to CodeQL js/path-injection).\nfunction assertWithinDir(baseDir: string, candidate: string): string {\n const resolvedBase = path.resolve(baseDir);\n const resolved = path.resolve(candidate);\n const rel = path.relative(resolvedBase, resolved);\n if (rel === \"..\" || rel.startsWith(`..${path.sep}`) || path.isAbsolute(rel)) {\n throw new Error(\"objective-state path escapes the snapshots directory\");\n }\n return resolved;\n}\n\nexport function resolveObjectiveStateStoreDir(memoryDir: string, overrideDir?: string): string {\n if (typeof overrideDir === \"string\" && overrideDir.trim().length > 0) {\n return overrideDir.trim();\n }\n return path.join(memoryDir, \"state\", \"objective-state\");\n}\n\nexport function objectiveStateStoreOverrideForNamespace(options: {\n memoryDir: string;\n configuredStoreDir?: string;\n namespacesEnabled: boolean;\n namespace: string;\n}): string | undefined {\n const configured = options.configuredStoreDir?.trim();\n if (!configured) return undefined;\n if (!options.namespacesEnabled) return configured;\n\n const defaultStoreDir = path.join(options.memoryDir, \"state\", \"objective-state\");\n if (path.resolve(configured) === path.resolve(defaultStoreDir)) {\n return undefined;\n }\n return path.join(configured, \"namespaces\", options.namespace);\n}\n\nexport function validateObjectiveStateSnapshot(raw: unknown): ObjectiveStateSnapshot {\n if (!isRecord(raw)) throw new Error(\"objective-state snapshot must be an object\");\n if (raw.schemaVersion !== 1) throw new Error(\"schemaVersion must be 1\");\n\n const source = assertString(raw.source, \"source\");\n if (![\"tool_result\", \"cli\", \"system\", \"manual\"].includes(source)) {\n throw new Error(\"source must be one of tool_result|cli|system|manual\");\n }\n\n const kind = assertString(raw.kind, \"kind\");\n if (![\"tool\", \"file\", \"process\", \"record\", \"workspace\"].includes(kind)) {\n throw new Error(\"kind must be one of tool|file|process|record|workspace\");\n }\n\n const changeKind = assertString(raw.changeKind, \"changeKind\");\n if (![\"created\", \"updated\", \"deleted\", \"observed\", \"executed\", \"failed\"].includes(changeKind)) {\n throw new Error(\"changeKind must be one of created|updated|deleted|observed|executed|failed\");\n }\n\n const outcomeRaw = optionalString(raw.outcome);\n if (outcomeRaw !== undefined && ![\"success\", \"failure\", \"partial\", \"unknown\"].includes(outcomeRaw)) {\n throw new Error(\"outcome must be one of success|failure|partial|unknown\");\n }\n\n return {\n schemaVersion: 1,\n snapshotId: assertSafePathSegment(assertString(raw.snapshotId, \"snapshotId\"), \"snapshotId\"),\n recordedAt: assertIsoRecordedAt(assertString(raw.recordedAt, \"recordedAt\")),\n sessionKey: assertString(raw.sessionKey, \"sessionKey\"),\n source: source as ObjectiveStateSnapshotSource,\n kind: kind as ObjectiveStateSnapshotKind,\n changeKind: changeKind as ObjectiveStateChangeKind,\n scope: assertString(raw.scope, \"scope\"),\n summary: assertString(raw.summary, \"summary\"),\n toolName: optionalString(raw.toolName),\n command: optionalString(raw.command),\n outcome: outcomeRaw as ObjectiveStateOutcome | undefined,\n before: validateValueRef(raw.before, \"before\"),\n after: validateValueRef(raw.after, \"after\"),\n entityRefs: optionalStringArray(raw.entityRefs, \"entityRefs\"),\n tags: optionalStringArray(raw.tags, \"tags\"),\n metadata: validateMetadata(raw.metadata),\n };\n}\n\nexport async function recordObjectiveStateSnapshot(options: {\n memoryDir: string;\n objectiveStateStoreDir?: string;\n snapshot: ObjectiveStateSnapshot;\n}): Promise<string> {\n const rootDir = resolveObjectiveStateStoreDir(options.memoryDir, options.objectiveStateStoreDir);\n const validated = validateObjectiveStateSnapshot(options.snapshot);\n const day = recordStoreDay(validated.recordedAt);\n const snapshotsRoot = path.join(rootDir, \"snapshots\");\n const snapshotsDir = assertWithinDir(snapshotsRoot, path.join(snapshotsRoot, day));\n const filePath = assertWithinDir(snapshotsDir, path.join(snapshotsDir, `${validated.snapshotId}.json`));\n await mkdir(snapshotsDir, { recursive: true });\n await writeFile(filePath, JSON.stringify(validated, null, 2), \"utf8\");\n return filePath;\n}\n\nexport async function getObjectiveStateStoreStatus(options: {\n memoryDir: string;\n objectiveStateStoreDir?: string;\n enabled: boolean;\n writesEnabled: boolean;\n}): Promise<ObjectiveStateStoreStatus> {\n const rootDir = resolveObjectiveStateStoreDir(options.memoryDir, options.objectiveStateStoreDir);\n const snapshotsDir = path.join(rootDir, \"snapshots\");\n const { files, snapshots, invalidSnapshots } = await readObjectiveStateSnapshots(options);\n\n snapshots.sort((a, b) => b.recordedAt.localeCompare(a.recordedAt));\n const byKind: Partial<Record<ObjectiveStateSnapshotKind, number>> = {};\n const byOutcome: Partial<Record<ObjectiveStateOutcome, number>> = {};\n for (const snapshot of snapshots) {\n byKind[snapshot.kind] = (byKind[snapshot.kind] ?? 0) + 1;\n const outcome = snapshot.outcome ?? \"unknown\";\n byOutcome[outcome] = (byOutcome[outcome] ?? 0) + 1;\n }\n\n return {\n enabled: options.enabled,\n writesEnabled: options.writesEnabled,\n rootDir,\n snapshotsDir,\n snapshots: {\n total: files.length,\n valid: snapshots.length,\n invalid: invalidSnapshots.length,\n byKind,\n byOutcome,\n latestSnapshotId: snapshots[0]?.snapshotId,\n latestRecordedAt: snapshots[0]?.recordedAt,\n latestSessionKey: snapshots[0]?.sessionKey,\n },\n latestSnapshot: snapshots[0],\n invalidSnapshots,\n };\n}\n\nasync function readObjectiveStateSnapshots(options: {\n memoryDir: string;\n objectiveStateStoreDir?: string;\n}): Promise<{\n files: string[];\n snapshots: ObjectiveStateSnapshot[];\n invalidSnapshots: Array<{ path: string; error: string }>;\n}> {\n const rootDir = resolveObjectiveStateStoreDir(options.memoryDir, options.objectiveStateStoreDir);\n const files = await listJsonFiles(path.join(rootDir, \"snapshots\"));\n const snapshots: ObjectiveStateSnapshot[] = [];\n const invalidSnapshots: Array<{ path: string; error: string }> = [];\n for (const filePath of files) {\n try {\n snapshots.push(validateObjectiveStateSnapshot(await readJsonFile(filePath)));\n } catch (error) {\n invalidSnapshots.push({\n path: filePath,\n error: error instanceof Error ? error.message : String(error),\n });\n }\n }\n return { files, snapshots, invalidSnapshots };\n}\n\nfunction normalizeTokens(value: string): string[] {\n return value\n .toLowerCase()\n .split(/[^a-z0-9]+/)\n .map((token) => token.trim())\n .filter((token) => token.length >= 2);\n}\n\nfunction overlapScore(queryTokens: Set<string>, value: string | undefined, weight: number): number {\n if (!value) return 0;\n const tokens = new Set(normalizeTokens(value));\n let matches = 0;\n for (const token of queryTokens) {\n if (tokens.has(token)) matches += 1;\n }\n return matches * weight;\n}\n\nfunction lexicalScoreObjectiveStateSnapshot(\n snapshot: ObjectiveStateSnapshot,\n queryTokens: Set<string>,\n): number {\n let score = 0;\n score += overlapScore(queryTokens, snapshot.scope, 4);\n score += overlapScore(queryTokens, snapshot.summary, 3);\n score += overlapScore(queryTokens, snapshot.command, 3);\n score += overlapScore(queryTokens, snapshot.toolName, 2);\n score += overlapScore(queryTokens, snapshot.tags?.join(\" \"), 2);\n score += overlapScore(queryTokens, snapshot.entityRefs?.join(\" \"), 2);\n score += overlapScore(queryTokens, snapshot.kind, 1);\n score += overlapScore(queryTokens, snapshot.changeKind, 1);\n score += overlapScore(queryTokens, snapshot.outcome, 1);\n return score;\n}\n\nfunction scoreObjectiveStateSnapshot(\n snapshot: ObjectiveStateSnapshot,\n lexicalScore: number,\n sessionKey?: string,\n): number {\n let score = lexicalScore;\n if (sessionKey && snapshot.sessionKey === sessionKey) score += 1.5;\n\n const recordedAtMs = Date.parse(snapshot.recordedAt);\n if (Number.isFinite(recordedAtMs)) {\n const ageHours = Math.max(0, (Date.now() - recordedAtMs) / 3_600_000);\n score += 1 / (1 + ageHours);\n }\n return score;\n}\n\nexport async function searchObjectiveStateSnapshots(options: {\n memoryDir: string;\n objectiveStateStoreDir?: string;\n query: string;\n maxResults: number;\n sessionKey?: string;\n}): Promise<ObjectiveStateSearchResult[]> {\n const maxResults = Math.max(0, Math.floor(options.maxResults));\n if (maxResults === 0) return [];\n\n const { snapshots } = await readObjectiveStateSnapshots(options);\n if (snapshots.length === 0) return [];\n\n const queryTokens = new Set(normalizeTokens(options.query));\n const scored = snapshots.map((snapshot) => {\n const lexicalScore = lexicalScoreObjectiveStateSnapshot(snapshot, queryTokens);\n return {\n snapshot,\n lexicalScore,\n score: scoreObjectiveStateSnapshot(snapshot, lexicalScore, options.sessionKey),\n };\n });\n\n const filtered = queryTokens.size === 0\n ? scored\n : scored.filter((result) => result.lexicalScore > 0);\n\n filtered.sort((left, right) => {\n if (right.score !== left.score) return right.score - left.score;\n return right.snapshot.recordedAt.localeCompare(left.snapshot.recordedAt);\n });\n return filtered.slice(0, maxResults);\n}\n"],"mappings":"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","names":[]}
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-CI7RKSRE.js";
|
|
4
4
|
import {
|
|
5
5
|
recordObjectiveStateSnapshot
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-6HMYUWXR.js";
|
|
7
7
|
|
|
8
8
|
// src/objective-state-writers.ts
|
|
9
9
|
import crypto from "crypto";
|
|
@@ -644,4 +644,4 @@ export {
|
|
|
644
644
|
recordObjectiveStateSnapshotsFromAgentMessages,
|
|
645
645
|
recordObjectiveStateSnapshotsFromObservedMessages
|
|
646
646
|
};
|
|
647
|
-
//# sourceMappingURL=chunk-
|
|
647
|
+
//# sourceMappingURL=chunk-BMFZLLNI.js.map
|
|
@@ -49,10 +49,10 @@ import {
|
|
|
49
49
|
} from "./chunk-BPSGLMQ4.js";
|
|
50
50
|
import {
|
|
51
51
|
recordObjectiveStateSnapshotsFromObservedMessages
|
|
52
|
-
} from "./chunk-
|
|
52
|
+
} from "./chunk-BMFZLLNI.js";
|
|
53
53
|
import {
|
|
54
54
|
objectiveStateStoreOverrideForNamespace
|
|
55
|
-
} from "./chunk-
|
|
55
|
+
} from "./chunk-6HMYUWXR.js";
|
|
56
56
|
import {
|
|
57
57
|
recordMemoryOutcome
|
|
58
58
|
} from "./chunk-EIR5VLIH.js";
|
|
@@ -4349,4 +4349,4 @@ export {
|
|
|
4349
4349
|
shapeMemorySummary,
|
|
4350
4350
|
EngramAccessService
|
|
4351
4351
|
};
|
|
4352
|
-
//# sourceMappingURL=chunk-
|
|
4352
|
+
//# sourceMappingURL=chunk-F4QTFIB4.js.map
|
|
@@ -11,11 +11,11 @@ import {
|
|
|
11
11
|
} from "./chunk-LMDRGRJ2.js";
|
|
12
12
|
import {
|
|
13
13
|
parseConfig
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-5GOMXHLC.js";
|
|
15
15
|
import {
|
|
16
16
|
resolveObjectiveStateStoreDir,
|
|
17
17
|
validateObjectiveStateSnapshot
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-6HMYUWXR.js";
|
|
19
19
|
import {
|
|
20
20
|
assertIsoRecordedAt,
|
|
21
21
|
assertSafePathSegment,
|
|
@@ -268,4 +268,4 @@ export {
|
|
|
268
268
|
recordResumeBundle,
|
|
269
269
|
getResumeBundleStatus
|
|
270
270
|
};
|
|
271
|
-
//# sourceMappingURL=chunk-
|
|
271
|
+
//# sourceMappingURL=chunk-FH3PPO42.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
listNamespaces
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-YEEAADCI.js";
|
|
4
4
|
import {
|
|
5
5
|
runConsolidationProvenanceCheck
|
|
6
6
|
} from "./chunk-AL4RAJL5.js";
|
|
@@ -32,7 +32,7 @@ import {
|
|
|
32
32
|
} from "./chunk-AJU4PJGY.js";
|
|
33
33
|
import {
|
|
34
34
|
parseConfig
|
|
35
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-5GOMXHLC.js";
|
|
36
36
|
import {
|
|
37
37
|
listMemoryGovernanceRuns,
|
|
38
38
|
readMemoryGovernanceRunArtifact
|
|
@@ -1336,4 +1336,4 @@ export {
|
|
|
1336
1336
|
runBenchmarkRecall,
|
|
1337
1337
|
runOperatorRepair
|
|
1338
1338
|
};
|
|
1339
|
-
//# sourceMappingURL=chunk-
|
|
1339
|
+
//# sourceMappingURL=chunk-HA5SI4GK.js.map
|
|
@@ -237,7 +237,7 @@ import {
|
|
|
237
237
|
} from "./chunk-CYEPCZN5.js";
|
|
238
238
|
import {
|
|
239
239
|
NamespaceStorageRouter
|
|
240
|
-
} from "./chunk-
|
|
240
|
+
} from "./chunk-XQNPGNKK.js";
|
|
241
241
|
import {
|
|
242
242
|
namespaceIdentityFromToken
|
|
243
243
|
} from "./chunk-ZFXCQPNO.js";
|
|
@@ -321,7 +321,7 @@ import {
|
|
|
321
321
|
import {
|
|
322
322
|
objectiveStateStoreOverrideForNamespace,
|
|
323
323
|
searchObjectiveStateSnapshots
|
|
324
|
-
} from "./chunk-
|
|
324
|
+
} from "./chunk-6HMYUWXR.js";
|
|
325
325
|
import {
|
|
326
326
|
ProfilingCollector
|
|
327
327
|
} from "./chunk-QY7YA7OL.js";
|
|
@@ -12498,4 +12498,4 @@ export {
|
|
|
12498
12498
|
resolvePersistedMemoryRelativePath,
|
|
12499
12499
|
Orchestrator
|
|
12500
12500
|
};
|
|
12501
|
-
//# sourceMappingURL=chunk-
|
|
12501
|
+
//# sourceMappingURL=chunk-O3U5BPUP.js.map
|
|
@@ -3,10 +3,10 @@ import {
|
|
|
3
3
|
} from "./chunk-2QSZNTDO.js";
|
|
4
4
|
import {
|
|
5
5
|
EngramMcpServer
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-TIPYPLLQ.js";
|
|
7
7
|
import {
|
|
8
8
|
EngramAccessInputError
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-F4QTFIB4.js";
|
|
10
10
|
import {
|
|
11
11
|
projectTagProjectId
|
|
12
12
|
} from "./chunk-EDQVAMQI.js";
|
|
@@ -1847,4 +1847,4 @@ var EngramAccessHttpServer = class {
|
|
|
1847
1847
|
export {
|
|
1848
1848
|
EngramAccessHttpServer
|
|
1849
1849
|
};
|
|
1850
|
-
//# sourceMappingURL=chunk-
|
|
1850
|
+
//# sourceMappingURL=chunk-THTIZJZA.js.map
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
} from "./chunk-D24OXEPB.js";
|
|
12
12
|
import {
|
|
13
13
|
EngramAccessInputError
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-F4QTFIB4.js";
|
|
15
15
|
import {
|
|
16
16
|
projectTagProjectId
|
|
17
17
|
} from "./chunk-EDQVAMQI.js";
|
|
@@ -2903,4 +2903,4 @@ ${body}`;
|
|
|
2903
2903
|
export {
|
|
2904
2904
|
EngramMcpServer
|
|
2905
2905
|
};
|
|
2906
|
-
//# sourceMappingURL=chunk-
|
|
2906
|
+
//# sourceMappingURL=chunk-TIPYPLLQ.js.map
|
|
@@ -67,6 +67,12 @@ async function hasStoredEntries(p) {
|
|
|
67
67
|
return false;
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
|
+
function resolveNamespaceDir(memoryDir, segment) {
|
|
71
|
+
if (segment.length === 0 || segment.includes("/") || segment.includes("\\") || segment.includes("..") || path2.isAbsolute(segment)) {
|
|
72
|
+
throw new Error(`unsafe namespace path segment: ${segment}`);
|
|
73
|
+
}
|
|
74
|
+
return path2.join(memoryDir, "namespaces", segment);
|
|
75
|
+
}
|
|
70
76
|
var LEGACY_NAMESPACE_CONTENT_CHILDREN = [
|
|
71
77
|
...ALL_CATEGORY_DIRS,
|
|
72
78
|
"entities",
|
|
@@ -103,10 +109,9 @@ var NamespaceStorageRouter = class {
|
|
|
103
109
|
this.defaultNsRootResolved = this.config.memoryDir;
|
|
104
110
|
return this.defaultNsRootResolved;
|
|
105
111
|
}
|
|
106
|
-
const legacyNsDir =
|
|
107
|
-
const tokenizedNsDir =
|
|
112
|
+
const legacyNsDir = resolveNamespaceDir(this.config.memoryDir, this.config.defaultNamespace);
|
|
113
|
+
const tokenizedNsDir = resolveNamespaceDir(
|
|
108
114
|
this.config.memoryDir,
|
|
109
|
-
"namespaces",
|
|
110
115
|
namespaceIdentityToken(this.config.defaultNamespace)
|
|
111
116
|
);
|
|
112
117
|
const tokenizedHasData = await exists(tokenizedNsDir) && await hasAnyNamespaceStorageMarker(tokenizedNsDir, { includeRuntimeState: true });
|
|
@@ -119,8 +124,8 @@ var NamespaceStorageRouter = class {
|
|
|
119
124
|
if (namespace === this.config.defaultNamespace) {
|
|
120
125
|
return this.defaultNsRootResolved ?? this.config.memoryDir;
|
|
121
126
|
}
|
|
122
|
-
const legacyRoot =
|
|
123
|
-
const tokenizedRoot =
|
|
127
|
+
const legacyRoot = resolveNamespaceDir(this.config.memoryDir, namespace);
|
|
128
|
+
const tokenizedRoot = resolveNamespaceDir(this.config.memoryDir, namespaceIdentityToken(namespace));
|
|
124
129
|
if (await exists(tokenizedRoot) && await hasAnyNamespaceStorageMarker(tokenizedRoot, { includeRuntimeState: true })) {
|
|
125
130
|
return tokenizedRoot;
|
|
126
131
|
}
|
|
@@ -156,4 +161,4 @@ export {
|
|
|
156
161
|
getCategoryDir,
|
|
157
162
|
NamespaceStorageRouter
|
|
158
163
|
};
|
|
159
|
-
//# sourceMappingURL=chunk-
|
|
164
|
+
//# sourceMappingURL=chunk-XQNPGNKK.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/namespaces/storage.ts","../src/utils/category-dir.ts"],"sourcesContent":["import path from \"node:path\";\nimport { access, lstat, readdir } from \"node:fs/promises\";\nimport { isSafeRouteNamespace } from \"../routing/engine.js\";\nimport { StorageManager } from \"../storage.js\";\nimport type { PluginConfig } from \"../types.js\";\nimport { ALL_CATEGORY_DIRS } from \"../utils/category-dir.js\";\nimport { namespaceIdentityToken, normalizeNamespaceIdentity } from \"./identity.js\";\n\nasync function exists(p: string): Promise<boolean> {\n try {\n await access(p);\n return true;\n } catch {\n return false;\n }\n}\n\nasync function hasStoredEntries(p: string): Promise<boolean> {\n try {\n const entry = await lstat(p);\n if (entry.isSymbolicLink()) return true;\n if (!entry.isDirectory()) return true;\n const children = await readdir(p, { withFileTypes: true });\n for (const child of children) {\n const childPath = path.join(p, child.name);\n if (child.isSymbolicLink() || child.isFile()) return true;\n if (child.isDirectory() && (await hasStoredEntries(childPath))) return true;\n }\n return false;\n } catch {\n return false;\n }\n}\n\n// Build a per-namespace directory under `<memoryDir>/namespaces` and assert the\n// resolved path stays inside that base. Namespace identifiers can originate from\n// operator config (config.defaultNamespace) and request-derived routing, so this\n// containment check prevents directory traversal (CodeQL js/path-injection).\n// For safe segments this returns exactly `path.join(base, segment)`, so there is\n// no behavioral change for valid namespaces.\nfunction resolveNamespaceDir(memoryDir: string, segment: string): string {\n // Mirror isSafeRouteNamespace's separator/parent-ref rejection (without its\n // 64-char cap, so identity tokens still pass). Rejecting separators and \"..\"\n // up front keeps the value a single contained child of <memoryDir>/namespaces.\n if (\n segment.length === 0 ||\n segment.includes(\"/\") ||\n segment.includes(\"\\\\\") ||\n segment.includes(\"..\") ||\n path.isAbsolute(segment)\n ) {\n throw new Error(`unsafe namespace path segment: ${segment}`);\n }\n return path.join(memoryDir, \"namespaces\", segment);\n}\n\nconst LEGACY_NAMESPACE_CONTENT_CHILDREN = [\n ...ALL_CATEGORY_DIRS,\n \"entities\",\n \"artifacts\",\n \"identity\",\n \"config\",\n \"summaries\",\n \"profile.md\",\n] as const;\n\nconst LEGACY_NAMESPACE_RUNTIME_CHILDREN = [\"state\"] as const;\n\nasync function hasAnyLegacyData(\n rootDir: string,\n options: { includeRuntimeState?: boolean } = {},\n): Promise<boolean> {\n const children = options.includeRuntimeState === true\n ? [...LEGACY_NAMESPACE_CONTENT_CHILDREN, ...LEGACY_NAMESPACE_RUNTIME_CHILDREN]\n : LEGACY_NAMESPACE_CONTENT_CHILDREN;\n for (const child of children) {\n if (await hasStoredEntries(path.join(rootDir, child))) return true;\n }\n return false;\n}\n\nasync function hasAnyNamespaceStorageMarker(\n rootDir: string,\n options: { includeRuntimeState?: boolean } = {},\n): Promise<boolean> {\n const children = options.includeRuntimeState === true\n ? [...LEGACY_NAMESPACE_CONTENT_CHILDREN, ...LEGACY_NAMESPACE_RUNTIME_CHILDREN]\n : LEGACY_NAMESPACE_CONTENT_CHILDREN;\n for (const child of children) {\n if (await exists(path.join(rootDir, child))) return true;\n }\n return false;\n}\n\n/**\n * Storage routing for namespaces.\n *\n * Compatibility note:\n * - When namespaces are enabled, existing raw namespace roots are preserved.\n * New namespace roots use tokenized names under `memoryDir/namespaces/<token>`.\n * - The default namespace continues to use the legacy `memoryDir` root unless the caller\n * has created `memoryDir/namespaces/<defaultNamespace>` (in which case we use that).\n *\n * This avoids surprising \"lost memories\" when an install flips namespaces on without\n * migrating existing data.\n */\nexport class NamespaceStorageRouter {\n private readonly cache = new Map<string, StorageManager>();\n private defaultNsRootResolved: string | null = null;\n\n constructor(private readonly config: PluginConfig) {}\n\n private async defaultNamespaceRoot(): Promise<string> {\n if (!this.config.namespacesEnabled) {\n this.defaultNsRootResolved = this.config.memoryDir;\n return this.defaultNsRootResolved;\n }\n\n const legacyNsDir = resolveNamespaceDir(this.config.memoryDir, this.config.defaultNamespace);\n const tokenizedNsDir = resolveNamespaceDir(\n this.config.memoryDir,\n namespaceIdentityToken(this.config.defaultNamespace),\n );\n const tokenizedHasData =\n (await exists(tokenizedNsDir)) && (await hasAnyNamespaceStorageMarker(tokenizedNsDir, { includeRuntimeState: true }));\n const nsDir = tokenizedHasData\n ? tokenizedNsDir\n : (await exists(legacyNsDir)) ? legacyNsDir : tokenizedNsDir;\n this.defaultNsRootResolved =\n (await exists(nsDir)) && !(await hasAnyLegacyData(this.config.memoryDir))\n ? nsDir\n : this.config.memoryDir;\n return this.defaultNsRootResolved;\n }\n\n private async namespaceRoot(namespace: string): Promise<string> {\n // NOTE: only used after defaultNamespaceRoot() resolution.\n if (!this.config.namespacesEnabled) return this.config.memoryDir;\n if (namespace === this.config.defaultNamespace) {\n return this.defaultNsRootResolved ?? this.config.memoryDir;\n }\n const legacyRoot = resolveNamespaceDir(this.config.memoryDir, namespace);\n const tokenizedRoot = resolveNamespaceDir(this.config.memoryDir, namespaceIdentityToken(namespace));\n if ((await exists(tokenizedRoot)) && (await hasAnyNamespaceStorageMarker(tokenizedRoot, { includeRuntimeState: true }))) {\n return tokenizedRoot;\n }\n return (await exists(legacyRoot)) ? legacyRoot : tokenizedRoot;\n }\n\n async storageFor(namespace: string): Promise<StorageManager> {\n const ns = normalizeNamespaceIdentity(namespace || this.config.defaultNamespace);\n if (ns !== this.config.defaultNamespace && !isSafeRouteNamespace(ns)) {\n throw new Error(`unsafe namespace: ${ns}`);\n }\n // Even when the default namespace is exempt from the check above, every\n // on-disk path is built through resolveNamespaceDir(), which rejects\n // traversal segments — so an unsafe configured default still cannot escape\n // <memoryDir>/namespaces (CodeQL js/path-injection).\n\n let root: string;\n if (ns === this.config.defaultNamespace) {\n root = await this.defaultNamespaceRoot();\n const cached = this.cache.get(ns);\n if (cached && cached.dir === root) {\n return cached;\n }\n } else {\n const cached = this.cache.get(ns);\n root = await this.namespaceRoot(ns);\n if (cached && cached.dir === root) return cached;\n }\n\n const sm = new StorageManager(root, this.config.entitySchemas);\n // Propagate the inline-attribution template so that router-created storages\n // (used by extraction and shared-promotion paths) strip citations consistently,\n // matching the behaviour of the primary this.storage instance in the orchestrator.\n sm.citationTemplate = this.config.inlineSourceAttributionFormat;\n this.cache.set(ns, sm);\n return sm;\n }\n}\n","/**\n * @remnic/core — Category Directory Map\n *\n * Shared mapping of memory category names to directory names.\n * Single source of truth — import from here instead of copy-pasting.\n */\n\nimport path from \"node:path\";\n\nexport const CATEGORY_DIR_MAP: Record<string, string> = {\n correction: \"corrections\",\n question: \"questions\",\n preference: \"preferences\",\n decision: \"decisions\",\n moment: \"moments\",\n commitment: \"commitments\",\n principle: \"principles\",\n rule: \"rules\",\n skill: \"skills\",\n relationship: \"relationships\",\n procedure: \"procedures\",\n reasoning_trace: \"reasoning-traces\",\n};\n\n/** All directory names derived from CATEGORY_DIR_MAP, plus \"facts\" (the default). */\nexport const ALL_CATEGORY_DIRS: string[] = [\n \"facts\",\n ...Object.values(CATEGORY_DIR_MAP),\n];\n\n/** All category keys (singular form) — used when iterating categories and calling getCategoryDir. */\nexport const ALL_CATEGORY_KEYS: string[] = [\n \"fact\",\n ...Object.keys(CATEGORY_DIR_MAP),\n];\n\n/**\n * Resolve a category name to its directory path under memoryDir.\n * Falls back to `facts/` for unknown categories.\n */\nexport function getCategoryDir(memoryDir: string, category: string): string {\n const dir = Object.hasOwn(CATEGORY_DIR_MAP, category)\n ? CATEGORY_DIR_MAP[category]\n : undefined;\n return dir ? path.join(memoryDir, dir) : path.join(memoryDir, \"facts\");\n}\n"],"mappings":"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","names":["path","path"]}
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
import {
|
|
5
5
|
ALL_CATEGORY_DIRS,
|
|
6
6
|
NamespaceStorageRouter
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-XQNPGNKK.js";
|
|
8
8
|
import {
|
|
9
9
|
namespaceIdentityFromToken,
|
|
10
10
|
namespaceIdentityToken
|
|
@@ -202,4 +202,4 @@ export {
|
|
|
202
202
|
verifyNamespaces,
|
|
203
203
|
runNamespaceMigration
|
|
204
204
|
};
|
|
205
|
-
//# sourceMappingURL=chunk-
|
|
205
|
+
//# sourceMappingURL=chunk-YEEAADCI.js.map
|
package/dist/cli.js
CHANGED
|
@@ -89,7 +89,7 @@ import {
|
|
|
89
89
|
runWorkProductStatusCliCommand,
|
|
90
90
|
runWorkProjectCliCommand,
|
|
91
91
|
runWorkTaskCliCommand
|
|
92
|
-
} from "./chunk-
|
|
92
|
+
} from "./chunk-4EWRLK3C.js";
|
|
93
93
|
import "./chunk-MC4FJXPA.js";
|
|
94
94
|
import "./chunk-LQHDIS7L.js";
|
|
95
95
|
import "./chunk-7F7Z6MOS.js";
|
|
@@ -118,11 +118,11 @@ import "./chunk-H2NCNXMS.js";
|
|
|
118
118
|
import "./chunk-PU44GBL4.js";
|
|
119
119
|
import "./chunk-YR6GIWWY.js";
|
|
120
120
|
import "./chunk-CIOMS6DI.js";
|
|
121
|
-
import "./chunk-
|
|
121
|
+
import "./chunk-FH3PPO42.js";
|
|
122
122
|
import "./chunk-3QSU4NFF.js";
|
|
123
123
|
import "./chunk-TGQ2NTWH.js";
|
|
124
|
-
import "./chunk-
|
|
125
|
-
import "./chunk-
|
|
124
|
+
import "./chunk-HA5SI4GK.js";
|
|
125
|
+
import "./chunk-YEEAADCI.js";
|
|
126
126
|
import "./chunk-3T74IZB3.js";
|
|
127
127
|
import "./chunk-HL4DB7TO.js";
|
|
128
128
|
import "./chunk-YNDLCWXS.js";
|
|
@@ -152,7 +152,7 @@ import "./chunk-CYEPCZN5.js";
|
|
|
152
152
|
import "./chunk-DCGT4FPP.js";
|
|
153
153
|
import "./chunk-Q4CAQGKQ.js";
|
|
154
154
|
import "./chunk-CINZGPSJ.js";
|
|
155
|
-
import "./chunk-
|
|
155
|
+
import "./chunk-XQNPGNKK.js";
|
|
156
156
|
import "./chunk-ZFXCQPNO.js";
|
|
157
157
|
import "./chunk-Q6YIJGXJ.js";
|
|
158
158
|
import "./chunk-ORFGK3XI.js";
|
|
@@ -176,14 +176,14 @@ import "./chunk-LMDRGRJ2.js";
|
|
|
176
176
|
import "./chunk-OKTXM5H4.js";
|
|
177
177
|
import "./chunk-3UXOZBHV.js";
|
|
178
178
|
import "./chunk-4WMCPJWX.js";
|
|
179
|
-
import "./chunk-
|
|
179
|
+
import "./chunk-5GOMXHLC.js";
|
|
180
180
|
import "./chunk-PHK3HARR.js";
|
|
181
181
|
import "./chunk-Z5LAYHGJ.js";
|
|
182
182
|
import "./chunk-LBJBNWS2.js";
|
|
183
183
|
import "./chunk-HQ6NIBL6.js";
|
|
184
184
|
import "./chunk-PVGDJXVK.js";
|
|
185
185
|
import "./chunk-OADWQ5CR.js";
|
|
186
|
-
import "./chunk-
|
|
186
|
+
import "./chunk-THTIZJZA.js";
|
|
187
187
|
import "./chunk-SEDEKFYQ.js";
|
|
188
188
|
import "./chunk-2QSZNTDO.js";
|
|
189
189
|
import "./chunk-RSUYKGGZ.js";
|
|
@@ -191,10 +191,10 @@ import "./chunk-42NQ7AVG.js";
|
|
|
191
191
|
import "./chunk-TMSXWOBZ.js";
|
|
192
192
|
import "./chunk-J64TK33U.js";
|
|
193
193
|
import "./chunk-7RXCMVFQ.js";
|
|
194
|
-
import "./chunk-
|
|
194
|
+
import "./chunk-TIPYPLLQ.js";
|
|
195
195
|
import "./chunk-6L46YAEZ.js";
|
|
196
196
|
import "./chunk-D24OXEPB.js";
|
|
197
|
-
import "./chunk-
|
|
197
|
+
import "./chunk-F4QTFIB4.js";
|
|
198
198
|
import "./chunk-GDASG7NC.js";
|
|
199
199
|
import "./chunk-GDB4J2H3.js";
|
|
200
200
|
import "./chunk-DGNQRNLL.js";
|
|
@@ -206,9 +206,9 @@ import "./chunk-5BTCT236.js";
|
|
|
206
206
|
import "./chunk-EDQVAMQI.js";
|
|
207
207
|
import "./chunk-JGSKJHF7.js";
|
|
208
208
|
import "./chunk-BPSGLMQ4.js";
|
|
209
|
-
import "./chunk-
|
|
209
|
+
import "./chunk-BMFZLLNI.js";
|
|
210
210
|
import "./chunk-CI7RKSRE.js";
|
|
211
|
-
import "./chunk-
|
|
211
|
+
import "./chunk-6HMYUWXR.js";
|
|
212
212
|
import "./chunk-EIR5VLIH.js";
|
|
213
213
|
import "./chunk-7V2SGZ3H.js";
|
|
214
214
|
import "./chunk-EI6V5UXY.js";
|
package/dist/config.js
CHANGED
package/dist/index.js
CHANGED
|
@@ -93,7 +93,7 @@ import {
|
|
|
93
93
|
listTrainingExportAdapters,
|
|
94
94
|
registerTrainingExportAdapter,
|
|
95
95
|
runBulkImportCliCommand
|
|
96
|
-
} from "./chunk-
|
|
96
|
+
} from "./chunk-4EWRLK3C.js";
|
|
97
97
|
import "./chunk-MC4FJXPA.js";
|
|
98
98
|
import "./chunk-LQHDIS7L.js";
|
|
99
99
|
import "./chunk-7F7Z6MOS.js";
|
|
@@ -135,7 +135,7 @@ import {
|
|
|
135
135
|
} from "./chunk-PU44GBL4.js";
|
|
136
136
|
import "./chunk-YR6GIWWY.js";
|
|
137
137
|
import "./chunk-CIOMS6DI.js";
|
|
138
|
-
import "./chunk-
|
|
138
|
+
import "./chunk-FH3PPO42.js";
|
|
139
139
|
import {
|
|
140
140
|
parseXrayBudgetFlag,
|
|
141
141
|
parseXrayCliOptions
|
|
@@ -145,8 +145,8 @@ import {
|
|
|
145
145
|
isAgentAccessSecretRef,
|
|
146
146
|
resolveAgentAccessAuthToken
|
|
147
147
|
} from "./chunk-TGQ2NTWH.js";
|
|
148
|
-
import "./chunk-
|
|
149
|
-
import "./chunk-
|
|
148
|
+
import "./chunk-HA5SI4GK.js";
|
|
149
|
+
import "./chunk-YEEAADCI.js";
|
|
150
150
|
import {
|
|
151
151
|
parseStrictCliDate
|
|
152
152
|
} from "./chunk-3T74IZB3.js";
|
|
@@ -182,7 +182,7 @@ import {
|
|
|
182
182
|
saveTaxonomy,
|
|
183
183
|
validateSlug,
|
|
184
184
|
validateTaxonomy
|
|
185
|
-
} from "./chunk-
|
|
185
|
+
} from "./chunk-O3U5BPUP.js";
|
|
186
186
|
import "./chunk-5RIRL3XL.js";
|
|
187
187
|
import {
|
|
188
188
|
migrateFromEngram,
|
|
@@ -381,7 +381,7 @@ import {
|
|
|
381
381
|
ALL_CATEGORY_DIRS,
|
|
382
382
|
ALL_CATEGORY_KEYS,
|
|
383
383
|
getCategoryDir
|
|
384
|
-
} from "./chunk-
|
|
384
|
+
} from "./chunk-XQNPGNKK.js";
|
|
385
385
|
import "./chunk-ZFXCQPNO.js";
|
|
386
386
|
import "./chunk-Q6YIJGXJ.js";
|
|
387
387
|
import "./chunk-ORFGK3XI.js";
|
|
@@ -462,7 +462,7 @@ import {
|
|
|
462
462
|
isOpenaiApiKeyDisabled,
|
|
463
463
|
parseConfig,
|
|
464
464
|
resolveEnvVars
|
|
465
|
-
} from "./chunk-
|
|
465
|
+
} from "./chunk-5GOMXHLC.js";
|
|
466
466
|
import {
|
|
467
467
|
coerceInstallExtension
|
|
468
468
|
} from "./chunk-PHK3HARR.js";
|
|
@@ -478,7 +478,7 @@ import "./chunk-PVGDJXVK.js";
|
|
|
478
478
|
import "./chunk-OADWQ5CR.js";
|
|
479
479
|
import {
|
|
480
480
|
EngramAccessHttpServer
|
|
481
|
-
} from "./chunk-
|
|
481
|
+
} from "./chunk-THTIZJZA.js";
|
|
482
482
|
import "./chunk-SEDEKFYQ.js";
|
|
483
483
|
import "./chunk-2QSZNTDO.js";
|
|
484
484
|
import "./chunk-RSUYKGGZ.js";
|
|
@@ -488,7 +488,7 @@ import "./chunk-J64TK33U.js";
|
|
|
488
488
|
import "./chunk-7RXCMVFQ.js";
|
|
489
489
|
import {
|
|
490
490
|
EngramMcpServer
|
|
491
|
-
} from "./chunk-
|
|
491
|
+
} from "./chunk-TIPYPLLQ.js";
|
|
492
492
|
import {
|
|
493
493
|
REMNIC_CHATGPT_MEMORY_INSPECTOR_CANONICAL_TOOL,
|
|
494
494
|
REMNIC_CHATGPT_MEMORY_INSPECTOR_MIME_TYPE,
|
|
@@ -509,7 +509,7 @@ import {
|
|
|
509
509
|
EngramAccessService,
|
|
510
510
|
computeProcedureStats,
|
|
511
511
|
formatProcedureStatsText
|
|
512
|
-
} from "./chunk-
|
|
512
|
+
} from "./chunk-F4QTFIB4.js";
|
|
513
513
|
import "./chunk-GDASG7NC.js";
|
|
514
514
|
import "./chunk-GDB4J2H3.js";
|
|
515
515
|
import {
|
|
@@ -540,7 +540,7 @@ import {
|
|
|
540
540
|
isTrustZoneName
|
|
541
541
|
} from "./chunk-JGSKJHF7.js";
|
|
542
542
|
import "./chunk-BPSGLMQ4.js";
|
|
543
|
-
import "./chunk-
|
|
543
|
+
import "./chunk-BMFZLLNI.js";
|
|
544
544
|
import {
|
|
545
545
|
isLcmMessagePartKind,
|
|
546
546
|
normalizeExplicitParts,
|
|
@@ -551,7 +551,7 @@ import {
|
|
|
551
551
|
parsePiMessageParts,
|
|
552
552
|
partsFromRenderedText
|
|
553
553
|
} from "./chunk-CI7RKSRE.js";
|
|
554
|
-
import "./chunk-
|
|
554
|
+
import "./chunk-6HMYUWXR.js";
|
|
555
555
|
import {
|
|
556
556
|
memoryWorthOutcomeEligibleCategories,
|
|
557
557
|
recordMemoryOutcome
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
listNamespaces,
|
|
3
3
|
runNamespaceMigration,
|
|
4
4
|
verifyNamespaces
|
|
5
|
-
} from "../chunk-
|
|
5
|
+
} from "../chunk-YEEAADCI.js";
|
|
6
6
|
import "../chunk-ZJR7VG5L.js";
|
|
7
7
|
import "../chunk-YRMKDTKF.js";
|
|
8
8
|
import "../chunk-JOASJWQR.js";
|
|
@@ -13,7 +13,7 @@ import "../chunk-CYEPCZN5.js";
|
|
|
13
13
|
import "../chunk-DCGT4FPP.js";
|
|
14
14
|
import "../chunk-Q4CAQGKQ.js";
|
|
15
15
|
import "../chunk-CINZGPSJ.js";
|
|
16
|
-
import "../chunk-
|
|
16
|
+
import "../chunk-XQNPGNKK.js";
|
|
17
17
|
import "../chunk-ZFXCQPNO.js";
|
|
18
18
|
import "../chunk-Q6YIJGXJ.js";
|
|
19
19
|
import "../chunk-ORFGK3XI.js";
|
|
@@ -3,9 +3,9 @@ import {
|
|
|
3
3
|
deriveObjectiveStateSnapshotsFromObservedMessages,
|
|
4
4
|
recordObjectiveStateSnapshotsFromAgentMessages,
|
|
5
5
|
recordObjectiveStateSnapshotsFromObservedMessages
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-BMFZLLNI.js";
|
|
7
7
|
import "./chunk-CI7RKSRE.js";
|
|
8
|
-
import "./chunk-
|
|
8
|
+
import "./chunk-6HMYUWXR.js";
|
|
9
9
|
import "./chunk-A2IYSXDQ.js";
|
|
10
10
|
import "./chunk-LPSF4OQH.js";
|
|
11
11
|
import "./chunk-PZ5AY32C.js";
|
package/dist/objective-state.js
CHANGED
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
resolveObjectiveStateStoreDir,
|
|
6
6
|
searchObjectiveStateSnapshots,
|
|
7
7
|
validateObjectiveStateSnapshot
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-6HMYUWXR.js";
|
|
9
9
|
import "./chunk-A2IYSXDQ.js";
|
|
10
10
|
import "./chunk-LPSF4OQH.js";
|
|
11
11
|
import "./chunk-PZ5AY32C.js";
|
package/dist/operator-toolkit.js
CHANGED
|
@@ -11,8 +11,8 @@ import {
|
|
|
11
11
|
summarizeMemoryWorthLegacyCounters,
|
|
12
12
|
summarizeObservationThroughput,
|
|
13
13
|
summarizeTierDistribution
|
|
14
|
-
} from "./chunk-
|
|
15
|
-
import "./chunk-
|
|
14
|
+
} from "./chunk-HA5SI4GK.js";
|
|
15
|
+
import "./chunk-YEEAADCI.js";
|
|
16
16
|
import "./chunk-AL4RAJL5.js";
|
|
17
17
|
import "./chunk-YBPYIAA5.js";
|
|
18
18
|
import "./chunk-ZJR7VG5L.js";
|
|
@@ -25,7 +25,7 @@ import "./chunk-CYEPCZN5.js";
|
|
|
25
25
|
import "./chunk-DCGT4FPP.js";
|
|
26
26
|
import "./chunk-Q4CAQGKQ.js";
|
|
27
27
|
import "./chunk-CINZGPSJ.js";
|
|
28
|
-
import "./chunk-
|
|
28
|
+
import "./chunk-XQNPGNKK.js";
|
|
29
29
|
import "./chunk-ZFXCQPNO.js";
|
|
30
30
|
import "./chunk-Q6YIJGXJ.js";
|
|
31
31
|
import "./chunk-ORFGK3XI.js";
|
|
@@ -39,7 +39,7 @@ import "./chunk-BEUDU7Y4.js";
|
|
|
39
39
|
import "./chunk-3PY7VHV7.js";
|
|
40
40
|
import "./chunk-AJU4PJGY.js";
|
|
41
41
|
import "./chunk-3ONXXHQO.js";
|
|
42
|
-
import "./chunk-
|
|
42
|
+
import "./chunk-5GOMXHLC.js";
|
|
43
43
|
import "./chunk-PHK3HARR.js";
|
|
44
44
|
import "./chunk-Z5LAYHGJ.js";
|
|
45
45
|
import "./chunk-PVGDJXVK.js";
|
package/dist/orchestrator.js
CHANGED
|
@@ -27,7 +27,7 @@ import {
|
|
|
27
27
|
sanitizeSessionKeyForFilename,
|
|
28
28
|
shouldFilterLifecycleRecallCandidate,
|
|
29
29
|
summarizeGraphShadowComparison
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-O3U5BPUP.js";
|
|
31
31
|
import "./chunk-5RIRL3XL.js";
|
|
32
32
|
import "./chunk-4HFJQCJZ.js";
|
|
33
33
|
import "./chunk-6BDVBBBY.js";
|
|
@@ -119,7 +119,7 @@ import "./chunk-CYEPCZN5.js";
|
|
|
119
119
|
import "./chunk-DCGT4FPP.js";
|
|
120
120
|
import "./chunk-Q4CAQGKQ.js";
|
|
121
121
|
import "./chunk-CINZGPSJ.js";
|
|
122
|
-
import "./chunk-
|
|
122
|
+
import "./chunk-XQNPGNKK.js";
|
|
123
123
|
import "./chunk-ZFXCQPNO.js";
|
|
124
124
|
import "./chunk-Q6YIJGXJ.js";
|
|
125
125
|
import "./chunk-ORFGK3XI.js";
|
|
@@ -162,7 +162,7 @@ import "./chunk-EDQVAMQI.js";
|
|
|
162
162
|
import "./chunk-JGSKJHF7.js";
|
|
163
163
|
import "./chunk-BPSGLMQ4.js";
|
|
164
164
|
import "./chunk-CI7RKSRE.js";
|
|
165
|
-
import "./chunk-
|
|
165
|
+
import "./chunk-6HMYUWXR.js";
|
|
166
166
|
import "./chunk-EI6V5UXY.js";
|
|
167
167
|
import "./chunk-QY7YA7OL.js";
|
|
168
168
|
import "./chunk-NNVTUXEB.js";
|
package/dist/resume-bundles.js
CHANGED
|
@@ -4,16 +4,16 @@ import {
|
|
|
4
4
|
recordResumeBundle,
|
|
5
5
|
resolveResumeBundleDir,
|
|
6
6
|
validateResumeBundle
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-FH3PPO42.js";
|
|
8
8
|
import "./chunk-ZRWB5D4H.js";
|
|
9
9
|
import "./chunk-A6D7A2FW.js";
|
|
10
10
|
import "./chunk-FF4KLI5W.js";
|
|
11
11
|
import "./chunk-KFY3SGN7.js";
|
|
12
12
|
import "./chunk-LMDRGRJ2.js";
|
|
13
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-5GOMXHLC.js";
|
|
14
14
|
import "./chunk-PHK3HARR.js";
|
|
15
15
|
import "./chunk-Z5LAYHGJ.js";
|
|
16
|
-
import "./chunk-
|
|
16
|
+
import "./chunk-6HMYUWXR.js";
|
|
17
17
|
import "./chunk-4DJQYKMN.js";
|
|
18
18
|
import "./chunk-EYIEWJNI.js";
|
|
19
19
|
import "./chunk-JUC24CTX.js";
|