@remnic/core 9.3.672 → 9.3.673

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 (78) hide show
  1. package/dist/access-audit.js +2 -2
  2. package/dist/access-cli.js +25 -23
  3. package/dist/access-cli.js.map +1 -1
  4. package/dist/access-http.js +12 -12
  5. package/dist/access-mcp.js +11 -11
  6. package/dist/access-schema.d.ts +36 -36
  7. package/dist/access-schema.js +3 -3
  8. package/dist/access-service.js +9 -9
  9. package/dist/active-recall.js +3 -1
  10. package/dist/active-recall.js.map +1 -1
  11. package/dist/chunk-3BQOQYRB.js +33 -0
  12. package/dist/chunk-3BQOQYRB.js.map +1 -0
  13. package/dist/{chunk-KJOYHNS7.js → chunk-7OGJQP7T.js} +4 -4
  14. package/dist/{chunk-EJYFPRED.js → chunk-B55KFEGS.js} +2 -2
  15. package/dist/{chunk-BTLNC5YM.js → chunk-GNAMDNGT.js} +5 -13
  16. package/dist/chunk-GNAMDNGT.js.map +1 -0
  17. package/dist/{chunk-KQAFEZQX.js → chunk-IPLYGWQF.js} +5 -5
  18. package/dist/{chunk-MLVMBV2C.js → chunk-IUZWBCJX.js} +8 -40
  19. package/dist/chunk-IUZWBCJX.js.map +1 -0
  20. package/dist/{chunk-PYTATYUV.js → chunk-ODWI5XU2.js} +2 -2
  21. package/dist/{chunk-AYGT6VBC.js → chunk-OG7A6AZX.js} +4 -4
  22. package/dist/{chunk-4QZ7H6FN.js → chunk-Q6MIDQEL.js} +2 -2
  23. package/dist/{chunk-UDJLF3BO.js → chunk-QLRYXOAD.js} +2 -2
  24. package/dist/chunk-QO3AILZN.js +89 -0
  25. package/dist/chunk-QO3AILZN.js.map +1 -0
  26. package/dist/{chunk-M3WF2AB6.js → chunk-R37A3BEW.js} +25 -25
  27. package/dist/{chunk-FP4ISXI3.js → chunk-SDLJ2W7S.js} +6 -6
  28. package/dist/{chunk-CXKETYZ7.js → chunk-SF45RQDX.js} +3 -3
  29. package/dist/{chunk-ZUPFMHJA.js → chunk-T2AOOHDA.js} +2 -2
  30. package/dist/{chunk-7K5Q6COX.js → chunk-TVVEYCNW.js} +4 -4
  31. package/dist/{chunk-ZQJHKN7J.js → chunk-XVVEKF5I.js} +17 -17
  32. package/dist/{chunk-7O5CFNN4.js → chunk-ZLINDOBG.js} +4 -4
  33. package/dist/cli.js +23 -21
  34. package/dist/config.d.ts +1 -1
  35. package/dist/config.js +3 -1
  36. package/dist/connectors/index.d.ts +6 -2
  37. package/dist/connectors/index.js +6 -2
  38. package/dist/conversation-index/backend.js +2 -2
  39. package/dist/emit-legacy-tools.d.ts +61 -0
  40. package/dist/emit-legacy-tools.js +12 -0
  41. package/dist/emit-legacy-tools.js.map +1 -0
  42. package/dist/index.js +45 -43
  43. package/dist/index.js.map +1 -1
  44. package/dist/namespaces/migrate.js +5 -5
  45. package/dist/namespaces/search.js +4 -4
  46. package/dist/operator-toolkit.js +10 -8
  47. package/dist/orchestrator.js +14 -14
  48. package/dist/resume-bundles.js +4 -2
  49. package/dist/schemas.d.ts +42 -42
  50. package/dist/search/factory.js +3 -3
  51. package/dist/search/index.js +3 -3
  52. package/dist/shared-context/manager.d.ts +2 -2
  53. package/dist/transfer/autodetect.js +1 -1
  54. package/dist/transfer/backup.js +1 -1
  55. package/dist/transfer/capsule-export.js +2 -2
  56. package/package.json +2 -2
  57. package/src/config.test.ts +408 -6
  58. package/src/config.ts +12 -56
  59. package/src/connectors/index.ts +2 -15
  60. package/src/connectors/paths.ts +50 -0
  61. package/src/emit-legacy-tools.test.ts +297 -0
  62. package/src/emit-legacy-tools.ts +204 -0
  63. package/dist/chunk-BTLNC5YM.js.map +0 -1
  64. package/dist/chunk-MLVMBV2C.js.map +0 -1
  65. /package/dist/{chunk-KJOYHNS7.js.map → chunk-7OGJQP7T.js.map} +0 -0
  66. /package/dist/{chunk-EJYFPRED.js.map → chunk-B55KFEGS.js.map} +0 -0
  67. /package/dist/{chunk-KQAFEZQX.js.map → chunk-IPLYGWQF.js.map} +0 -0
  68. /package/dist/{chunk-PYTATYUV.js.map → chunk-ODWI5XU2.js.map} +0 -0
  69. /package/dist/{chunk-AYGT6VBC.js.map → chunk-OG7A6AZX.js.map} +0 -0
  70. /package/dist/{chunk-4QZ7H6FN.js.map → chunk-Q6MIDQEL.js.map} +0 -0
  71. /package/dist/{chunk-UDJLF3BO.js.map → chunk-QLRYXOAD.js.map} +0 -0
  72. /package/dist/{chunk-M3WF2AB6.js.map → chunk-R37A3BEW.js.map} +0 -0
  73. /package/dist/{chunk-FP4ISXI3.js.map → chunk-SDLJ2W7S.js.map} +0 -0
  74. /package/dist/{chunk-CXKETYZ7.js.map → chunk-SF45RQDX.js.map} +0 -0
  75. /package/dist/{chunk-ZUPFMHJA.js.map → chunk-T2AOOHDA.js.map} +0 -0
  76. /package/dist/{chunk-7K5Q6COX.js.map → chunk-TVVEYCNW.js.map} +0 -0
  77. /package/dist/{chunk-ZQJHKN7J.js.map → chunk-XVVEKF5I.js.map} +0 -0
  78. /package/dist/{chunk-7O5CFNN4.js.map → chunk-ZLINDOBG.js.map} +0 -0
@@ -11,7 +11,7 @@ import {
11
11
  } from "./chunk-LMDRGRJ2.js";
12
12
  import {
13
13
  parseConfig
14
- } from "./chunk-MLVMBV2C.js";
14
+ } from "./chunk-IUZWBCJX.js";
15
15
  import {
16
16
  resolveObjectiveStateStoreDir,
17
17
  validateObjectiveStateSnapshot
@@ -268,4 +268,4 @@ export {
268
268
  recordResumeBundle,
269
269
  getResumeBundleStatus
270
270
  };
271
- //# sourceMappingURL=chunk-PYTATYUV.js.map
271
+ //# sourceMappingURL=chunk-ODWI5XU2.js.map
@@ -6,10 +6,10 @@ import {
6
6
  } from "./chunk-7WV3F5DQ.js";
7
7
  import {
8
8
  EngramMcpServer
9
- } from "./chunk-CXKETYZ7.js";
9
+ } from "./chunk-SF45RQDX.js";
10
10
  import {
11
11
  EngramAccessInputError
12
- } from "./chunk-7O5CFNN4.js";
12
+ } from "./chunk-ZLINDOBG.js";
13
13
  import {
14
14
  projectTagProjectId
15
15
  } from "./chunk-GYSYLGNE.js";
@@ -30,7 +30,7 @@ import {
30
30
  } from "./chunk-2ODBA7MQ.js";
31
31
  import {
32
32
  validateRequest
33
- } from "./chunk-UDJLF3BO.js";
33
+ } from "./chunk-QLRYXOAD.js";
34
34
  import {
35
35
  OFFLINE_SYNC_APPLY_MAX_BODY_BYTES,
36
36
  OFFLINE_SYNC_FILE_CONTENT_MAX_CHUNK_BYTES,
@@ -2030,4 +2030,4 @@ function positiveIntQueryParam(value, label) {
2030
2030
  export {
2031
2031
  EngramAccessHttpServer
2032
2032
  };
2033
- //# sourceMappingURL=chunk-AYGT6VBC.js.map
2033
+ //# sourceMappingURL=chunk-OG7A6AZX.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  createSearchBackend
3
- } from "./chunk-EJYFPRED.js";
3
+ } from "./chunk-B55KFEGS.js";
4
4
  import {
5
5
  namespaceIdentityToken,
6
6
  normalizeNamespaceIdentity
@@ -401,4 +401,4 @@ export {
401
401
  namespaceCollectionName,
402
402
  NamespaceSearchRouter
403
403
  };
404
- //# sourceMappingURL=chunk-4QZ7H6FN.js.map
404
+ //# sourceMappingURL=chunk-Q6MIDQEL.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  isValidCapsuleSince
3
- } from "./chunk-KQAFEZQX.js";
3
+ } from "./chunk-IPLYGWQF.js";
4
4
  import {
5
5
  CAPSULE_ID_PATTERN
6
6
  } from "./chunk-WEHSQBFR.js";
@@ -433,4 +433,4 @@ export {
433
433
  actionConfidenceRequestSchema,
434
434
  validateRequest
435
435
  };
436
- //# sourceMappingURL=chunk-UDJLF3BO.js.map
436
+ //# sourceMappingURL=chunk-QLRYXOAD.js.map
@@ -0,0 +1,89 @@
1
+ import {
2
+ hasLegacyConnectorEntries
3
+ } from "./chunk-3BQOQYRB.js";
4
+ import {
5
+ readEnvVar
6
+ } from "./chunk-JUC24CTX.js";
7
+
8
+ // src/emit-legacy-tools.ts
9
+ function coerceBooleanLike(value) {
10
+ if (typeof value === "boolean") return value;
11
+ if (typeof value === "number") {
12
+ if (value === 1) return true;
13
+ if (value === 0) return false;
14
+ return void 0;
15
+ }
16
+ if (typeof value === "string") {
17
+ const normalized = value.trim().toLowerCase();
18
+ if (normalized === "true" || normalized === "1" || normalized === "yes" || normalized === "on") {
19
+ return true;
20
+ }
21
+ if (normalized === "false" || normalized === "0" || normalized === "no" || normalized === "off") {
22
+ return false;
23
+ }
24
+ }
25
+ return void 0;
26
+ }
27
+ function coerceBooleanLikeOrThrow(label, value) {
28
+ const coerced = coerceBooleanLike(value);
29
+ if (coerced === void 0) {
30
+ throw new Error(
31
+ `${label} must be a boolean-like value (true/false/1/0/yes/no/on/off); got ${JSON.stringify(value)}`
32
+ );
33
+ }
34
+ return coerced;
35
+ }
36
+ function resolveEmitLegacyTools(configValue, rawOperatorConfig, runtimeSet) {
37
+ if (rawOperatorConfig === null) rawOperatorConfig = {};
38
+ const SCHEMA_DEFAULT = false;
39
+ const runtimeAuthored = runtimeSet?.has("emitLegacyTools") ?? false;
40
+ if (rawOperatorConfig !== void 0) {
41
+ if (configValue !== void 0 && configValue !== null) {
42
+ const rawValue = rawOperatorConfig.emitLegacyTools;
43
+ const rawAuthored = "emitLegacyTools" in rawOperatorConfig && rawValue !== null && rawValue !== void 0;
44
+ if (rawAuthored || configValue !== SCHEMA_DEFAULT) {
45
+ return coerceBooleanLikeOrThrow("emitLegacyTools", configValue);
46
+ }
47
+ } else if ("emitLegacyTools" in rawOperatorConfig) {
48
+ const rawValue = rawOperatorConfig.emitLegacyTools;
49
+ if (rawValue !== null && rawValue !== void 0) {
50
+ return coerceBooleanLikeOrThrow("emitLegacyTools", rawValue);
51
+ }
52
+ }
53
+ } else if (configValue !== void 0 && configValue !== null) {
54
+ return coerceBooleanLikeOrThrow("emitLegacyTools", configValue);
55
+ }
56
+ const envRaw = readEnvVar("REMNIC_EMIT_LEGACY_TOOLS") ?? readEnvVar("ENGRAM_EMIT_LEGACY_TOOLS");
57
+ if (envRaw !== void 0) {
58
+ return coerceBooleanLikeOrThrow("REMNIC_EMIT_LEGACY_TOOLS", envRaw);
59
+ }
60
+ return hasLegacyConnectorEntries();
61
+ }
62
+ function resolveNamespaceCatalogEnabled(configValue, rawOperatorConfig, runtimeSet) {
63
+ if (rawOperatorConfig === null) rawOperatorConfig = {};
64
+ const SCHEMA_DEFAULT = true;
65
+ const runtimeAuthored = runtimeSet?.has("namespaceCatalogEnabled") ?? false;
66
+ if (rawOperatorConfig !== void 0) {
67
+ if (configValue !== void 0 && configValue !== null) {
68
+ const rawValue = rawOperatorConfig.namespaceCatalogEnabled;
69
+ const rawAuthored = "namespaceCatalogEnabled" in rawOperatorConfig && rawValue !== null && rawValue !== void 0;
70
+ if (rawAuthored || configValue !== SCHEMA_DEFAULT) {
71
+ return coerceBooleanLikeOrThrow("namespaceCatalogEnabled", configValue);
72
+ }
73
+ } else if ("namespaceCatalogEnabled" in rawOperatorConfig) {
74
+ const rawValue = rawOperatorConfig.namespaceCatalogEnabled;
75
+ if (rawValue !== null && rawValue !== void 0) {
76
+ return coerceBooleanLikeOrThrow("namespaceCatalogEnabled", rawValue);
77
+ }
78
+ }
79
+ } else if (configValue !== void 0 && configValue !== null) {
80
+ return coerceBooleanLikeOrThrow("namespaceCatalogEnabled", configValue);
81
+ }
82
+ return SCHEMA_DEFAULT;
83
+ }
84
+
85
+ export {
86
+ resolveEmitLegacyTools,
87
+ resolveNamespaceCatalogEnabled
88
+ };
89
+ //# sourceMappingURL=chunk-QO3AILZN.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/emit-legacy-tools.ts"],"sourcesContent":["/**\n * emit-legacy-tools — resolution cluster for the `emitLegacyTools` and\n * `namespaceCatalogEnabled` config gates (issues #1427, #1499, #1550).\n *\n * Extracted from packages/remnic-core/src/config.ts (PR #1593, round 6)\n * so the raw-vs-effective split, runtime-override precedence, and\n * fileConfig-null normalization logic specific to these two gates\n * stays out of the god-file `config.ts`. The export surface is exactly\n * the two resolvers plus the `coerceBooleanLikeOrThrow` helper that\n * wraps the local `coerceBooleanLike` — every other config gate in\n * `parseConfig` keeps using its own inline coercion or the\n * `coerceBooleanLike` already exported from\n * `packages/remnic-core/src/connectors/coerce.ts`.\n *\n * Precedence (PR #1593 rounds 1-4, plus the null/loader hardening from\n * rounds 3-5):\n *\n * 1. `configValue` (the first arg) is the MERGED config\n * (runtime-over-file via the\n * `{...fileConfig, ...api.pluginConfig}` spread in src/index.ts).\n * If it's a real boolean, it represents what the operator wants,\n * so honor it. We only fall through when it's the schema-default\n * materialization with no operator authoring in raw.\n * 2. `rawOperatorConfig` (the second arg) is the operator-supplied\n * config block BEFORE the OpenClaw manifest layer applies schema\n * defaults — i.e. the file-backed `loadPluginConfigFromFile` output.\n * When raw has the key with a non-null/undefined value, the file\n * layer authored it. The merged `configValue` reflects the full\n * operator intent (file + runtime), so `configValue` is still\n * authoritative. raw presence is used only as the \"operator\n * authored this key\" signal — if raw is missing AND configValue\n * equals the schema default, only the schema layer materialized the\n * key (no operator intent anywhere) and we fall through to env /\n * sticky-legacy.\n * 3. Legacy callers (raw undefined): trust configValue as before to\n * preserve the 121+ existing call sites that pass only one arg.\n *\n * Defensive normalization (PR #1593 round 3): JSON null on disk for the\n * operator config block surfaces as `null` in rawOperatorConfig. Both\n * resolvers normalize `null` to `{}` so the `\"key\" in rawOperatorConfig`\n * check never throws. The file loader\n * (`loadPluginConfigFromFile`) also normalizes null to undefined\n * before reaching here.\n */\n\nimport { readEnvVar } from \"./runtime/env.js\";\nimport { hasLegacyConnectorEntries } from \"./connectors/paths.js\";\n\n/**\n * Coerce common string/number representations of a boolean to a real\n * boolean. Returns `undefined` when the value cannot be interpreted, so\n * callers can fail fast via `coerceBooleanLikeOrThrow`. Guards against\n * the \"string `false` is truthy\" footgun (CLAUDE.md gotcha #36) when\n * config values arrive from CLI/env/JSON sources where booleans are\n * sometimes string-typed.\n *\n * Local copy — the canonical implementation lives in\n * `packages/remnic-core/src/connectors/coerce.ts` but is private to that\n * module's `coerceBool` export; duplicating here keeps the god-file\n * contract clean (no cross-module pull) for the two gates that need\n * fail-fast rejection.\n */\nfunction coerceBooleanLike(value: unknown): boolean | undefined {\n if (typeof value === \"boolean\") return value;\n if (typeof value === \"number\") {\n if (value === 1) return true;\n if (value === 0) return false;\n return undefined;\n }\n if (typeof value === \"string\") {\n const normalized = value.trim().toLowerCase();\n if (\n normalized === \"true\" ||\n normalized === \"1\" ||\n normalized === \"yes\" ||\n normalized === \"on\"\n ) {\n return true;\n }\n if (\n normalized === \"false\" ||\n normalized === \"0\" ||\n normalized === \"no\" ||\n normalized === \"off\"\n ) {\n return false;\n }\n }\n return undefined;\n}\n\n/**\n * Coerce a present boolean-like gate value or fail fast. A PRESENT but\n * unrecognized value (\"fales\", 2) is REJECTED rather than silently\n * defaulting (CLAUDE.md rule #51) — shared by both resolvers below so\n * the rejection behavior cannot drift between them.\n */\nfunction coerceBooleanLikeOrThrow(label: string, value: unknown): boolean {\n const coerced = coerceBooleanLike(value);\n if (coerced === undefined) {\n throw new Error(\n `${label} must be a boolean-like value (true/false/1/0/yes/no/on/off); got ${JSON.stringify(value)}`,\n );\n }\n return coerced;\n}\n\n/**\n * Resolve the `emitLegacyTools` opt-out (issue #1427, defaults revised in\n * #1550). Precedence: operator-set raw config, then merged (post-defaults)\n * config, then the REMNIC_/ENGRAM_ env var, then a sticky-legacy default —\n * `true` only when existing legacy connector entries are present on disk\n * (`hasLegacyConnectorEntries`), `false` for fresh installs.\n */\nexport function resolveEmitLegacyTools(\n configValue: unknown,\n rawOperatorConfig: Record<string, unknown> | undefined | null,\n runtimeSet?: ReadonlySet<string>,\n): boolean {\n // Defensive null normalization — see file header for the rationale.\n if (rawOperatorConfig === null) rawOperatorConfig = {};\n // Schema default for `emitLegacyTools` is `false` (issue #1550).\n const SCHEMA_DEFAULT = false;\n // Round 8: `runtimeAuthored` is now informational only — the resolver\n // does not consult it (see the comment on the check below). Kept as a\n // local so the signature-bound `runtimeSet` parameter remains useful\n // for future refactors and tests can read this state if needed.\n const runtimeAuthored = runtimeSet?.has(\"emitLegacyTools\") ?? false;\n if (rawOperatorConfig !== undefined) {\n if (configValue !== undefined && configValue !== null) {\n const rawValue = (rawOperatorConfig as Record<string, unknown>).emitLegacyTools;\n const rawAuthored =\n \"emitLegacyTools\" in rawOperatorConfig &&\n rawValue !== null &&\n rawValue !== undefined;\n // Round 8 (PR #1593): revert the runtimeAuthored gate. OpenClaw's\n // `applyDefaults: true` materialization means api.pluginConfig keys\n // can't reliably signal operator authorship; the schema-default\n // comparison alone is the right signal (chatgpt-codex-connector P1\n // on src/index.ts:1348, round 8).\n if (rawAuthored || configValue !== SCHEMA_DEFAULT) {\n return coerceBooleanLikeOrThrow(\"emitLegacyTools\", configValue);\n }\n } else if (\"emitLegacyTools\" in rawOperatorConfig) {\n const rawValue = (rawOperatorConfig as Record<string, unknown>).emitLegacyTools;\n if (rawValue !== null && rawValue !== undefined) {\n return coerceBooleanLikeOrThrow(\"emitLegacyTools\", rawValue);\n }\n }\n } else if (configValue !== undefined && configValue !== null) {\n // Legacy caller (no rawOperatorConfig) — trust the merged value.\n return coerceBooleanLikeOrThrow(\"emitLegacyTools\", configValue);\n }\n const envRaw =\n readEnvVar(\"REMNIC_EMIT_LEGACY_TOOLS\") ?? readEnvVar(\"ENGRAM_EMIT_LEGACY_TOOLS\");\n if (envRaw !== undefined) {\n return coerceBooleanLikeOrThrow(\"REMNIC_EMIT_LEGACY_TOOLS\", envRaw);\n }\n return hasLegacyConnectorEntries();\n}\n\n/**\n * Resolve the `namespaceCatalogEnabled` opt-out (issue #1499). Same\n * raw-vs-effective split as `resolveEmitLegacyTools` — schema-default\n * hardening at the helper level so adding a `false` default later cannot\n * silently flip behavior on upgraded installs (#1550 class hardening).\n */\nexport function resolveNamespaceCatalogEnabled(\n configValue: unknown,\n rawOperatorConfig: Record<string, unknown> | undefined | null,\n runtimeSet?: ReadonlySet<string>,\n): boolean {\n // Defensive null normalization — see file header for the rationale.\n if (rawOperatorConfig === null) rawOperatorConfig = {};\n // Schema default is `true` (the catalog is opt-out).\n const SCHEMA_DEFAULT = true;\n // Round 8: same as the emit variant — `runtimeAuthored` is\n // informational only, the resolver does not consult it.\n const runtimeAuthored = runtimeSet?.has(\"namespaceCatalogEnabled\") ?? false;\n if (rawOperatorConfig !== undefined) {\n if (configValue !== undefined && configValue !== null) {\n const rawValue = (rawOperatorConfig as Record<string, unknown>)\n .namespaceCatalogEnabled;\n const rawAuthored =\n \"namespaceCatalogEnabled\" in rawOperatorConfig &&\n rawValue !== null &&\n rawValue !== undefined;\n // Round 8: same rollback as resolveEmitLegacyTools.\n if (rawAuthored || configValue !== SCHEMA_DEFAULT) {\n return coerceBooleanLikeOrThrow(\"namespaceCatalogEnabled\", configValue);\n }\n } else if (\"namespaceCatalogEnabled\" in rawOperatorConfig) {\n const rawValue = (rawOperatorConfig as Record<string, unknown>)\n .namespaceCatalogEnabled;\n if (rawValue !== null && rawValue !== undefined) {\n return coerceBooleanLikeOrThrow(\"namespaceCatalogEnabled\", rawValue);\n }\n }\n } else if (configValue !== undefined && configValue !== null) {\n // Legacy caller (no rawOperatorConfig) — trust the merged value.\n return coerceBooleanLikeOrThrow(\"namespaceCatalogEnabled\", configValue);\n }\n return SCHEMA_DEFAULT;\n}"],"mappings":";;;;;;;;AA8DA,SAAS,kBAAkB,OAAqC;AAC9D,MAAI,OAAO,UAAU,UAAW,QAAO;AACvC,MAAI,OAAO,UAAU,UAAU;AAC7B,QAAI,UAAU,EAAG,QAAO;AACxB,QAAI,UAAU,EAAG,QAAO;AACxB,WAAO;AAAA,EACT;AACA,MAAI,OAAO,UAAU,UAAU;AAC7B,UAAM,aAAa,MAAM,KAAK,EAAE,YAAY;AAC5C,QACE,eAAe,UACf,eAAe,OACf,eAAe,SACf,eAAe,MACf;AACA,aAAO;AAAA,IACT;AACA,QACE,eAAe,WACf,eAAe,OACf,eAAe,QACf,eAAe,OACf;AACA,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO;AACT;AAQA,SAAS,yBAAyB,OAAe,OAAyB;AACxE,QAAM,UAAU,kBAAkB,KAAK;AACvC,MAAI,YAAY,QAAW;AACzB,UAAM,IAAI;AAAA,MACR,GAAG,KAAK,qEAAqE,KAAK,UAAU,KAAK,CAAC;AAAA,IACpG;AAAA,EACF;AACA,SAAO;AACT;AASO,SAAS,uBACd,aACA,mBACA,YACS;AAET,MAAI,sBAAsB,KAAM,qBAAoB,CAAC;AAErD,QAAM,iBAAiB;AAKvB,QAAM,kBAAkB,YAAY,IAAI,iBAAiB,KAAK;AAC9D,MAAI,sBAAsB,QAAW;AACnC,QAAI,gBAAgB,UAAa,gBAAgB,MAAM;AACrD,YAAM,WAAY,kBAA8C;AAChE,YAAM,cACJ,qBAAqB,qBACrB,aAAa,QACb,aAAa;AAMf,UAAI,eAAe,gBAAgB,gBAAgB;AACjD,eAAO,yBAAyB,mBAAmB,WAAW;AAAA,MAChE;AAAA,IACF,WAAW,qBAAqB,mBAAmB;AACjD,YAAM,WAAY,kBAA8C;AAChE,UAAI,aAAa,QAAQ,aAAa,QAAW;AAC/C,eAAO,yBAAyB,mBAAmB,QAAQ;AAAA,MAC7D;AAAA,IACF;AAAA,EACF,WAAW,gBAAgB,UAAa,gBAAgB,MAAM;AAE5D,WAAO,yBAAyB,mBAAmB,WAAW;AAAA,EAChE;AACA,QAAM,SACJ,WAAW,0BAA0B,KAAK,WAAW,0BAA0B;AACjF,MAAI,WAAW,QAAW;AACxB,WAAO,yBAAyB,4BAA4B,MAAM;AAAA,EACpE;AACA,SAAO,0BAA0B;AACnC;AAQO,SAAS,+BACd,aACA,mBACA,YACS;AAET,MAAI,sBAAsB,KAAM,qBAAoB,CAAC;AAErD,QAAM,iBAAiB;AAGvB,QAAM,kBAAkB,YAAY,IAAI,yBAAyB,KAAK;AACtE,MAAI,sBAAsB,QAAW;AACnC,QAAI,gBAAgB,UAAa,gBAAgB,MAAM;AACrD,YAAM,WAAY,kBACf;AACH,YAAM,cACJ,6BAA6B,qBAC7B,aAAa,QACb,aAAa;AAEf,UAAI,eAAe,gBAAgB,gBAAgB;AACjD,eAAO,yBAAyB,2BAA2B,WAAW;AAAA,MACxE;AAAA,IACF,WAAW,6BAA6B,mBAAmB;AACzD,YAAM,WAAY,kBACf;AACH,UAAI,aAAa,QAAQ,aAAa,QAAW;AAC/C,eAAO,yBAAyB,2BAA2B,QAAQ;AAAA,MACrE;AAAA,IACF;AAAA,EACF,WAAW,gBAAgB,UAAa,gBAAgB,MAAM;AAE5D,WAAO,yBAAyB,2BAA2B,WAAW;AAAA,EACxE;AACA,SAAO;AACT;","names":[]}
@@ -5,9 +5,6 @@ import {
5
5
  syncWearableSource,
6
6
  wearableSourceLabel
7
7
  } from "./chunk-4SKKVWLQ.js";
8
- import {
9
- migrateFromEngram
10
- } from "./chunk-7HYPN2GC.js";
11
8
  import {
12
9
  ensureContradictionScanCron,
13
10
  ensureDaySummaryCron,
@@ -17,6 +14,9 @@ import {
17
14
  ensureProceduralMiningCron,
18
15
  graphEdgeDecayCadenceToCronExpr
19
16
  } from "./chunk-666A3MOW.js";
17
+ import {
18
+ migrateFromEngram
19
+ } from "./chunk-7HYPN2GC.js";
20
20
  import {
21
21
  LcmEngine
22
22
  } from "./chunk-3IE22DJ2.js";
@@ -33,6 +33,9 @@ import {
33
33
  import {
34
34
  SharedContextManager
35
35
  } from "./chunk-DRD2Q7HQ.js";
36
+ import {
37
+ extractTopics
38
+ } from "./chunk-UHGBNIOS.js";
36
39
  import {
37
40
  applyUtilityPromotionRuntimePolicy,
38
41
  applyUtilityRankingRuntimeDelta,
@@ -55,9 +58,6 @@ import {
55
58
  import {
56
59
  TmtBuilder
57
60
  } from "./chunk-ECZU5BJH.js";
58
- import {
59
- extractTopics
60
- } from "./chunk-UHGBNIOS.js";
61
61
  import {
62
62
  HourlySummarizer
63
63
  } from "./chunk-QWRC7GIO.js";
@@ -68,6 +68,12 @@ import {
68
68
  import {
69
69
  SessionObserverState
70
70
  } from "./chunk-MHQC2WU2.js";
71
+ import {
72
+ applyRuntimeRetrievalPolicy
73
+ } from "./chunk-5IZL4DCV.js";
74
+ import {
75
+ RelevanceStore
76
+ } from "./chunk-452WDNFO.js";
71
77
  import {
72
78
  RerankCache,
73
79
  rerankLocalOrNoop
@@ -95,25 +101,19 @@ import {
95
101
  resolvePromptTagPrefilterAsync
96
102
  } from "./chunk-MGN7VHWQ.js";
97
103
  import {
98
- applyRuntimeRetrievalPolicy
99
- } from "./chunk-5IZL4DCV.js";
104
+ LastRecallStore,
105
+ TierMigrationStatusStore,
106
+ clampGraphRecallExpandedEntries
107
+ } from "./chunk-44VFF3BB.js";
100
108
  import {
101
109
  findUnresolvedEntityRefs
102
110
  } from "./chunk-X7XN6YU4.js";
103
- import {
104
- RelevanceStore
105
- } from "./chunk-452WDNFO.js";
106
111
  import {
107
112
  reorderRecallResultsWithMmr
108
113
  } from "./chunk-YDBIWGNI.js";
109
114
  import {
110
115
  createRecallSectionMetricRecorder
111
116
  } from "./chunk-7DHTMOND.js";
112
- import {
113
- LastRecallStore,
114
- TierMigrationStatusStore,
115
- clampGraphRecallExpandedEntries
116
- } from "./chunk-44VFF3BB.js";
117
117
  import {
118
118
  applyReasoningTraceBoost
119
119
  } from "./chunk-ZZTOURJI.js";
@@ -140,6 +140,9 @@ import {
140
140
  isTaskInitiationIntent,
141
141
  planRecallMode
142
142
  } from "./chunk-PD6O7AXF.js";
143
+ import {
144
+ buildExplicitCueRecallSection
145
+ } from "./chunk-YXLT4EMM.js";
143
146
  import {
144
147
  recordJudgeTrainingPair
145
148
  } from "./chunk-7YX23JBA.js";
@@ -178,9 +181,6 @@ import {
178
181
  buildEventOrderRecallSection,
179
182
  shouldRecallEventOrderEvidence
180
183
  } from "./chunk-UU6MVCJ6.js";
181
- import {
182
- buildExplicitCueRecallSection
183
- } from "./chunk-YXLT4EMM.js";
184
184
  import {
185
185
  formatDaySummaryMemories
186
186
  } from "./chunk-WLEB7WCG.js";
@@ -237,13 +237,13 @@ import {
237
237
  resolveDefaultNamespaceRoot,
238
238
  resolveNamespaceStorageRoot
239
239
  } from "./chunk-LZSMQHXC.js";
240
+ import {
241
+ searchHarmonicRetrieval
242
+ } from "./chunk-AV5ZEH4M.js";
240
243
  import {
241
244
  isAboveImportanceThreshold,
242
245
  scoreImportance
243
246
  } from "./chunk-JXS5PDQ7.js";
244
- import {
245
- searchHarmonicRetrieval
246
- } from "./chunk-AV5ZEH4M.js";
247
247
  import {
248
248
  EXTRACTION_JUDGE_VERDICT_CATEGORY,
249
249
  recordJudgeVerdict
@@ -322,11 +322,11 @@ import {
322
322
  } from "./chunk-6VP3YUCS.js";
323
323
  import {
324
324
  NamespaceSearchRouter
325
- } from "./chunk-4QZ7H6FN.js";
325
+ } from "./chunk-Q6MIDQEL.js";
326
326
  import {
327
327
  createConversationIndexRuntime,
328
328
  createSearchBackend
329
- } from "./chunk-EJYFPRED.js";
329
+ } from "./chunk-B55KFEGS.js";
330
330
  import {
331
331
  NoopSearchBackend
332
332
  } from "./chunk-CYEPCZN5.js";
@@ -17387,4 +17387,4 @@ export {
17387
17387
  resolvePersistedMemoryRelativePath,
17388
17388
  Orchestrator
17389
17389
  };
17390
- //# sourceMappingURL=chunk-M3WF2AB6.js.map
17390
+ //# sourceMappingURL=chunk-R37A3BEW.js.map
@@ -1,20 +1,20 @@
1
1
  import {
2
2
  listNamespaces
3
- } from "./chunk-ZUPFMHJA.js";
3
+ } from "./chunk-T2AOOHDA.js";
4
4
  import {
5
5
  runConsolidationProvenanceCheck
6
6
  } from "./chunk-6T4LTI2F.js";
7
7
  import {
8
8
  reportBufferSurpriseDistribution
9
9
  } from "./chunk-YBPYIAA5.js";
10
+ import {
11
+ resolvePluginEntry
12
+ } from "./chunk-CMTINOFS.js";
10
13
  import {
11
14
  analyzeSessionIntegrity,
12
15
  applySessionRepair,
13
16
  planSessionRepair
14
17
  } from "./chunk-KFY3SGN7.js";
15
- import {
16
- resolvePluginEntry
17
- } from "./chunk-CMTINOFS.js";
18
18
  import {
19
19
  readJudgeVerdictStats
20
20
  } from "./chunk-AJU4PJGY.js";
@@ -32,7 +32,7 @@ import {
32
32
  } from "./chunk-3PY7VHV7.js";
33
33
  import {
34
34
  parseConfig
35
- } from "./chunk-MLVMBV2C.js";
35
+ } from "./chunk-IUZWBCJX.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-FP4ISXI3.js.map
1339
+ //# sourceMappingURL=chunk-SDLJ2W7S.js.map
@@ -11,7 +11,7 @@ import {
11
11
  } from "./chunk-D24OXEPB.js";
12
12
  import {
13
13
  EngramAccessInputError
14
- } from "./chunk-7O5CFNN4.js";
14
+ } from "./chunk-ZLINDOBG.js";
15
15
  import {
16
16
  projectTagProjectId
17
17
  } from "./chunk-GYSYLGNE.js";
@@ -29,7 +29,7 @@ import {
29
29
  } from "./chunk-JUC24CTX.js";
30
30
  import {
31
31
  validateRequest
32
- } from "./chunk-UDJLF3BO.js";
32
+ } from "./chunk-QLRYXOAD.js";
33
33
 
34
34
  // src/access-mcp.ts
35
35
  import { readFile } from "fs/promises";
@@ -3117,4 +3117,4 @@ ${body}`;
3117
3117
  export {
3118
3118
  EngramMcpServer
3119
3119
  };
3120
- //# sourceMappingURL=chunk-CXKETYZ7.js.map
3120
+ //# sourceMappingURL=chunk-SF45RQDX.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-LZSMQHXC.js";
4
4
  import {
5
5
  namespaceCollectionName
6
- } from "./chunk-4QZ7H6FN.js";
6
+ } from "./chunk-Q6MIDQEL.js";
7
7
  import {
8
8
  namespaceIdentityFromToken,
9
9
  namespaceIdentityToken
@@ -204,4 +204,4 @@ export {
204
204
  verifyNamespaces,
205
205
  runNamespaceMigration
206
206
  };
207
- //# sourceMappingURL=chunk-ZUPFMHJA.js.map
207
+ //# sourceMappingURL=chunk-T2AOOHDA.js.map
@@ -1,9 +1,9 @@
1
- import {
2
- appendRecallAuditEntry
3
- } from "./chunk-LBLXEFWK.js";
4
1
  import {
5
2
  detectRecallAnomalies
6
3
  } from "./chunk-RFYAYKTD.js";
4
+ import {
5
+ appendRecallAuditEntry
6
+ } from "./chunk-LBLXEFWK.js";
7
7
 
8
8
  // src/access-audit.ts
9
9
  var AccessAuditAdapter = class {
@@ -62,4 +62,4 @@ var AccessAuditAdapter = class {
62
62
  export {
63
63
  AccessAuditAdapter
64
64
  };
65
- //# sourceMappingURL=chunk-7K5Q6COX.js.map
65
+ //# sourceMappingURL=chunk-TVVEYCNW.js.map
@@ -1,12 +1,12 @@
1
+ import {
2
+ openclawReplayNormalizer
3
+ } from "./chunk-7F7Z6MOS.js";
1
4
  import {
2
5
  chatgptReplayNormalizer
3
6
  } from "./chunk-MC4FJXPA.js";
4
7
  import {
5
8
  claudeReplayNormalizer
6
9
  } from "./chunk-LQHDIS7L.js";
7
- import {
8
- openclawReplayNormalizer
9
- } from "./chunk-7F7Z6MOS.js";
10
10
  import {
11
11
  exportJsonBundle
12
12
  } from "./chunk-UP6MOYCB.js";
@@ -82,7 +82,7 @@ import {
82
82
  buildResumeBundleFromState,
83
83
  getResumeBundleStatus,
84
84
  recordResumeBundle
85
- } from "./chunk-PYTATYUV.js";
85
+ } from "./chunk-ODWI5XU2.js";
86
86
  import {
87
87
  parseXrayCliOptions
88
88
  } from "./chunk-GSTYVG5L.js";
@@ -93,12 +93,12 @@ import {
93
93
  runOperatorInventory,
94
94
  runOperatorRepair,
95
95
  runOperatorSetup
96
- } from "./chunk-FP4ISXI3.js";
96
+ } from "./chunk-SDLJ2W7S.js";
97
97
  import {
98
98
  listNamespaces,
99
99
  runNamespaceMigration,
100
100
  verifyNamespaces
101
- } from "./chunk-ZUPFMHJA.js";
101
+ } from "./chunk-T2AOOHDA.js";
102
102
  import {
103
103
  collectPatternMemories,
104
104
  explainPatternMemory,
@@ -118,6 +118,9 @@ import {
118
118
  isReplaySource,
119
119
  normalizeReplaySessionKey
120
120
  } from "./chunk-2PRQG7PV.js";
121
+ import {
122
+ searchVerifiedEpisodes
123
+ } from "./chunk-NXBXM7Q6.js";
121
124
  import {
122
125
  getUtilityLearningStatus,
123
126
  learnUtilityPromotionWeights
@@ -126,9 +129,6 @@ import {
126
129
  getUtilityTelemetryStatus,
127
130
  recordUtilityTelemetryEvent
128
131
  } from "./chunk-TERNBNJB.js";
129
- import {
130
- searchVerifiedEpisodes
131
- } from "./chunk-NXBXM7Q6.js";
132
132
  import {
133
133
  ThreadingManager
134
134
  } from "./chunk-W4RVMTHR.js";
@@ -169,12 +169,12 @@ import {
169
169
  import {
170
170
  listConnectorStates
171
171
  } from "./chunk-6GUG4YNM.js";
172
- import {
173
- rescoreMemoryImportance
174
- } from "./chunk-JXS5PDQ7.js";
175
172
  import {
176
173
  searchHarmonicRetrieval
177
174
  } from "./chunk-AV5ZEH4M.js";
175
+ import {
176
+ rescoreMemoryImportance
177
+ } from "./chunk-JXS5PDQ7.js";
178
178
  import {
179
179
  createEvalBaselineSnapshot,
180
180
  getEvalHarnessStatus,
@@ -210,22 +210,22 @@ import {
210
210
  } from "./chunk-UQ7RN5HK.js";
211
211
  import {
212
212
  parseConfig
213
- } from "./chunk-MLVMBV2C.js";
213
+ } from "./chunk-IUZWBCJX.js";
214
214
  import {
215
215
  getAbstractionNodeStoreStatus
216
216
  } from "./chunk-OADWQ5CR.js";
217
217
  import {
218
218
  EngramAccessHttpServer
219
- } from "./chunk-AYGT6VBC.js";
219
+ } from "./chunk-OG7A6AZX.js";
220
220
  import {
221
221
  WearablesInputError
222
222
  } from "./chunk-7WV3F5DQ.js";
223
223
  import {
224
224
  EngramMcpServer
225
- } from "./chunk-CXKETYZ7.js";
225
+ } from "./chunk-SF45RQDX.js";
226
226
  import {
227
227
  EngramAccessService
228
- } from "./chunk-7O5CFNN4.js";
228
+ } from "./chunk-ZLINDOBG.js";
229
229
  import {
230
230
  WorkStorage
231
231
  } from "./chunk-GDB4J2H3.js";
@@ -7311,4 +7311,4 @@ export {
7311
7311
  listMemoryMarkdownFilePaths,
7312
7312
  registerCli
7313
7313
  };
7314
- //# sourceMappingURL=chunk-ZQJHKN7J.js.map
7314
+ //# sourceMappingURL=chunk-XVVEKF5I.js.map
@@ -55,7 +55,7 @@ import {
55
55
  } from "./chunk-6VP3YUCS.js";
56
56
  import {
57
57
  namespaceCollectionName
58
- } from "./chunk-4QZ7H6FN.js";
58
+ } from "./chunk-Q6MIDQEL.js";
59
59
  import {
60
60
  namespaceIdentityFromToken
61
61
  } from "./chunk-ZFXCQPNO.js";
@@ -135,14 +135,14 @@ import {
135
135
  } from "./chunk-2ODBA7MQ.js";
136
136
  import {
137
137
  AccessAuditAdapter
138
- } from "./chunk-7K5Q6COX.js";
138
+ } from "./chunk-TVVEYCNW.js";
139
139
  import {
140
140
  AccessIdempotencyStore,
141
141
  hashAccessIdempotencyPayload
142
142
  } from "./chunk-VFUEZZBS.js";
143
143
  import {
144
144
  exportCapsule
145
- } from "./chunk-KQAFEZQX.js";
145
+ } from "./chunk-IPLYGWQF.js";
146
146
  import {
147
147
  OFFLINE_SYNC_SNAPSHOT_FORMAT,
148
148
  applyOfflineSyncChangeset,
@@ -5579,4 +5579,4 @@ export {
5579
5579
  shapeMemorySummary,
5580
5580
  EngramAccessService
5581
5581
  };
5582
- //# sourceMappingURL=chunk-7O5CFNN4.js.map
5582
+ //# sourceMappingURL=chunk-ZLINDOBG.js.map