@remnic/core 9.25.4 → 9.25.6

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 (155) hide show
  1. package/dist/access-admin-ops-surface.d.ts +3 -2
  2. package/dist/access-admin-ops-surface.js +9 -8
  3. package/dist/access-authorization-probe.d.ts +10 -3
  4. package/dist/access-authorization-probe.js +12 -9
  5. package/dist/access-boundary.d.ts +6 -3
  6. package/dist/access-boundary.js +13 -10
  7. package/dist/access-cli.js +41 -40
  8. package/dist/access-cli.js.map +1 -1
  9. package/dist/access-http.d.ts +3 -2
  10. package/dist/access-http.js +16 -15
  11. package/dist/access-identity-continuity-surface.d.ts +2 -1
  12. package/dist/access-identity-continuity-surface.js +9 -8
  13. package/dist/access-lcm-surface.d.ts +3 -2
  14. package/dist/access-lcm-surface.js +9 -8
  15. package/dist/access-mcp-output-schemas.js +1 -1
  16. package/dist/access-mcp.d.ts +3 -2
  17. package/dist/access-mcp.js +13 -12
  18. package/dist/access-namespace-preflight.js +9 -8
  19. package/dist/access-observe-write-surface.d.ts +3 -2
  20. package/dist/access-observe-write-surface.js +9 -8
  21. package/dist/access-operations-batch.js +10 -9
  22. package/dist/access-operations.d.ts +6 -5
  23. package/dist/access-operations.js +11 -10
  24. package/dist/access-recall-concurrency.d.ts +3 -2
  25. package/dist/access-recall-concurrency.js +9 -8
  26. package/dist/access-recall-response.d.ts +4 -2
  27. package/dist/access-recall-response.js +9 -8
  28. package/dist/access-recall-surface.d.ts +3 -2
  29. package/dist/access-recall-surface.js +9 -8
  30. package/dist/access-schema.d.ts +76 -76
  31. package/dist/{access-service-BlNKWBC9.d.ts → access-service-BJQ22URi.d.ts} +4 -1
  32. package/dist/access-service.d.ts +3 -2
  33. package/dist/access-service.js +9 -8
  34. package/dist/access-surface-catalog.d.ts +3 -2
  35. package/dist/bootstrap.d.ts +2 -1
  36. package/dist/briefing.js +3 -3
  37. package/dist/causal-consolidation.js +4 -4
  38. package/dist/{chunk-GF22HWS2.js → chunk-2PHX3I5C.js} +7 -7
  39. package/dist/{chunk-3I35RLJW.js → chunk-32XTXKIA.js} +14 -13
  40. package/dist/chunk-32XTXKIA.js.map +1 -0
  41. package/dist/{chunk-LXKJNUND.js → chunk-37VPMR4E.js} +2 -2
  42. package/dist/{chunk-3CDMIR3C.js → chunk-3CHQZVAL.js} +2 -2
  43. package/dist/{chunk-U37RGPJT.js → chunk-5J7HJ7RT.js} +2 -2
  44. package/dist/{chunk-AGR7MGUX.js → chunk-7IGWPXVC.js} +2 -2
  45. package/dist/{chunk-FIGDB2HR.js → chunk-7KXQ44PA.js} +2 -2
  46. package/dist/chunk-AHVEHR6K.js +82 -0
  47. package/dist/chunk-AHVEHR6K.js.map +1 -0
  48. package/dist/{chunk-MNLZGCM2.js → chunk-AQ2ZQYDI.js} +3 -3
  49. package/dist/{chunk-TWCOYET2.js → chunk-B6JDYXL7.js} +2 -1
  50. package/dist/chunk-B6JDYXL7.js.map +1 -0
  51. package/dist/{chunk-RROMWDDC.js → chunk-BL4JHZSO.js} +49 -12
  52. package/dist/chunk-BL4JHZSO.js.map +1 -0
  53. package/dist/{chunk-JMDZDT24.js → chunk-D7MAWMMK.js} +18 -4
  54. package/dist/chunk-D7MAWMMK.js.map +1 -0
  55. package/dist/{chunk-TG2DJFH7.js → chunk-E5A6C4A5.js} +20 -20
  56. package/dist/{chunk-FDAPXLRC.js → chunk-FR75B4UU.js} +81 -55
  57. package/dist/chunk-FR75B4UU.js.map +1 -0
  58. package/dist/{chunk-DPYYSG6F.js → chunk-G6MGAE36.js} +7 -7
  59. package/dist/{chunk-GNFZFJBJ.js → chunk-IR4LGIH6.js} +2 -2
  60. package/dist/{chunk-MPDX5QMH.js → chunk-JA4HEXV7.js} +2 -2
  61. package/dist/{chunk-XTAAG4SQ.js → chunk-K4DP5KZA.js} +6 -6
  62. package/dist/{chunk-AT6DNUCM.js → chunk-NY6W6CJW.js} +2 -2
  63. package/dist/{chunk-NMGO2HAZ.js → chunk-OIE242WM.js} +2 -2
  64. package/dist/{chunk-SZN6XVFC.js → chunk-PS5OG75R.js} +2 -2
  65. package/dist/{chunk-VY6SDKWZ.js → chunk-SSYBI43M.js} +2 -2
  66. package/dist/{chunk-IE4HB6O5.js → chunk-TPYZ727G.js} +3 -3
  67. package/dist/{chunk-5ZGWA4AG.js → chunk-UMFLAACL.js} +6 -6
  68. package/dist/{chunk-THHPDPMS.js → chunk-UOURUMBN.js} +2 -2
  69. package/dist/{chunk-6LRTGCRV.js → chunk-VPSAVXHM.js} +3 -3
  70. package/dist/{chunk-AL4TZWI3.js → chunk-W33DEUKR.js} +2 -2
  71. package/dist/{chunk-W4ZDTHWZ.js → chunk-WIGBTWXA.js} +2 -2
  72. package/dist/{chunk-NVYCTASB.js → chunk-WSEA52RI.js} +2 -2
  73. package/dist/{chunk-LARPWF3S.js → chunk-ZPUFQGUF.js} +4 -4
  74. package/dist/{cli-Zc6UclD1.d.ts → cli-1W7cNjJJ.d.ts} +2 -2
  75. package/dist/cli.d.ts +4 -3
  76. package/dist/cli.js +28 -27
  77. package/dist/compounding/engine.js +3 -3
  78. package/dist/connectors/codex-materialize-runner.js +3 -3
  79. package/dist/connectors/index.js +3 -3
  80. package/dist/corpus-watermark.js +5 -5
  81. package/dist/entity-retrieval.js +3 -3
  82. package/dist/explicit-capture.d.ts +2 -1
  83. package/dist/{first-start-migration-LEXL3XYL.js → first-start-migration-BKNGOFED.js} +4 -4
  84. package/dist/index.d.ts +393 -392
  85. package/dist/index.js +73 -53
  86. package/dist/lcm/engine.js +3 -3
  87. package/dist/lcm/index.js +8 -8
  88. package/dist/maintenance/memory-governance.js +3 -3
  89. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +3 -3
  90. package/dist/maintenance/rebuild-memory-projection.js +4 -4
  91. package/dist/mcp-memory-inspector-app.d.ts +3 -2
  92. package/dist/namespaces/migrate.js +4 -4
  93. package/dist/namespaces/storage.js +3 -3
  94. package/dist/operator-doctor-corpus.js +6 -6
  95. package/dist/operator-toolkit.js +9 -9
  96. package/dist/orchestration/maintenance.js +8 -8
  97. package/dist/{orchestrator-BTGgoKli.d.ts → orchestrator-BtA1wC5K.d.ts} +2 -0
  98. package/dist/orchestrator.d.ts +2 -1
  99. package/dist/orchestrator.js +41 -40
  100. package/dist/recall-context-composition.d.ts +30 -0
  101. package/dist/recall-context-composition.js +24 -0
  102. package/dist/recall-context-composition.js.map +1 -0
  103. package/dist/schemas.d.ts +76 -76
  104. package/dist/semantic-consolidation.js +4 -4
  105. package/dist/semantic-rule-promotion.js +3 -3
  106. package/dist/semantic-rule-verifier.js +3 -3
  107. package/dist/shared-context/manager.d.ts +8 -8
  108. package/dist/storage.js +2 -2
  109. package/dist/transfer/types.d.ts +66 -66
  110. package/dist/verified-recall.js +3 -3
  111. package/package.json +2 -2
  112. package/src/access-authorization-probe.ts +30 -1
  113. package/src/access-boundary.ts +21 -0
  114. package/src/access-http.test.ts +86 -1
  115. package/src/access-http.ts +6 -6
  116. package/src/access-mcp-output-schemas.ts +1 -0
  117. package/src/access-recall-response.ts +18 -13
  118. package/src/access-recall-surface.ts +11 -1
  119. package/src/access-service.ts +3 -0
  120. package/src/index.ts +1 -1
  121. package/src/orchestration/orchestrator-helpers.ts +2 -0
  122. package/src/orchestration/recall-internal.ts +49 -49
  123. package/src/recall-context-composition.test.ts +90 -0
  124. package/src/recall-context-composition.ts +104 -0
  125. package/src/recall-curiosity-composition.test.ts +301 -0
  126. package/dist/chunk-3I35RLJW.js.map +0 -1
  127. package/dist/chunk-FDAPXLRC.js.map +0 -1
  128. package/dist/chunk-JMDZDT24.js.map +0 -1
  129. package/dist/chunk-RROMWDDC.js.map +0 -1
  130. package/dist/chunk-TWCOYET2.js.map +0 -1
  131. /package/dist/{chunk-GF22HWS2.js.map → chunk-2PHX3I5C.js.map} +0 -0
  132. /package/dist/{chunk-LXKJNUND.js.map → chunk-37VPMR4E.js.map} +0 -0
  133. /package/dist/{chunk-3CDMIR3C.js.map → chunk-3CHQZVAL.js.map} +0 -0
  134. /package/dist/{chunk-U37RGPJT.js.map → chunk-5J7HJ7RT.js.map} +0 -0
  135. /package/dist/{chunk-AGR7MGUX.js.map → chunk-7IGWPXVC.js.map} +0 -0
  136. /package/dist/{chunk-FIGDB2HR.js.map → chunk-7KXQ44PA.js.map} +0 -0
  137. /package/dist/{chunk-MNLZGCM2.js.map → chunk-AQ2ZQYDI.js.map} +0 -0
  138. /package/dist/{chunk-TG2DJFH7.js.map → chunk-E5A6C4A5.js.map} +0 -0
  139. /package/dist/{chunk-DPYYSG6F.js.map → chunk-G6MGAE36.js.map} +0 -0
  140. /package/dist/{chunk-GNFZFJBJ.js.map → chunk-IR4LGIH6.js.map} +0 -0
  141. /package/dist/{chunk-MPDX5QMH.js.map → chunk-JA4HEXV7.js.map} +0 -0
  142. /package/dist/{chunk-XTAAG4SQ.js.map → chunk-K4DP5KZA.js.map} +0 -0
  143. /package/dist/{chunk-AT6DNUCM.js.map → chunk-NY6W6CJW.js.map} +0 -0
  144. /package/dist/{chunk-NMGO2HAZ.js.map → chunk-OIE242WM.js.map} +0 -0
  145. /package/dist/{chunk-SZN6XVFC.js.map → chunk-PS5OG75R.js.map} +0 -0
  146. /package/dist/{chunk-VY6SDKWZ.js.map → chunk-SSYBI43M.js.map} +0 -0
  147. /package/dist/{chunk-IE4HB6O5.js.map → chunk-TPYZ727G.js.map} +0 -0
  148. /package/dist/{chunk-5ZGWA4AG.js.map → chunk-UMFLAACL.js.map} +0 -0
  149. /package/dist/{chunk-THHPDPMS.js.map → chunk-UOURUMBN.js.map} +0 -0
  150. /package/dist/{chunk-6LRTGCRV.js.map → chunk-VPSAVXHM.js.map} +0 -0
  151. /package/dist/{chunk-AL4TZWI3.js.map → chunk-W33DEUKR.js.map} +0 -0
  152. /package/dist/{chunk-W4ZDTHWZ.js.map → chunk-WIGBTWXA.js.map} +0 -0
  153. /package/dist/{chunk-NVYCTASB.js.map → chunk-WSEA52RI.js.map} +0 -0
  154. /package/dist/{chunk-LARPWF3S.js.map → chunk-ZPUFQGUF.js.map} +0 -0
  155. /package/dist/{first-start-migration-LEXL3XYL.js.map → first-start-migration-BKNGOFED.js.map} +0 -0
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-ZBJMUXZH.js";
5
5
  import {
6
6
  StorageManager
7
- } from "./chunk-XTAAG4SQ.js";
7
+ } from "./chunk-K4DP5KZA.js";
8
8
  import {
9
9
  getCachedRuleMemories,
10
10
  setCachedRuleMemories
@@ -119,4 +119,4 @@ export {
119
119
  compareVerifiedSemanticRuleResults,
120
120
  searchVerifiedSemanticRules
121
121
  };
122
- //# sourceMappingURL=chunk-LXKJNUND.js.map
122
+ //# sourceMappingURL=chunk-37VPMR4E.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-TBBDFYXW.js";
4
4
  import {
5
5
  StorageManager
6
- } from "./chunk-XTAAG4SQ.js";
6
+ } from "./chunk-K4DP5KZA.js";
7
7
  import {
8
8
  assertPathInsideRoot
9
9
  } from "./chunk-GCASGYIO.js";
@@ -755,4 +755,4 @@ export {
755
755
  listMemoryGovernanceRuns,
756
756
  readMemoryGovernanceRunArtifact
757
757
  };
758
- //# sourceMappingURL=chunk-3CDMIR3C.js.map
758
+ //# sourceMappingURL=chunk-3CHQZVAL.js.map
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-FQC3DHH2.js";
8
8
  import {
9
9
  StorageManager
10
- } from "./chunk-XTAAG4SQ.js";
10
+ } from "./chunk-K4DP5KZA.js";
11
11
  import {
12
12
  parseContinuityImprovementLoops
13
13
  } from "./chunk-LDXUBPMO.js";
@@ -1283,4 +1283,4 @@ export {
1283
1283
  defaultTierMigrationCycleBudget,
1284
1284
  CompoundingEngine
1285
1285
  };
1286
- //# sourceMappingURL=chunk-U37RGPJT.js.map
1286
+ //# sourceMappingURL=chunk-5J7HJ7RT.js.map
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  resolveDefaultNamespaceRoot,
6
6
  resolveNamespaceStorageRoot
7
- } from "./chunk-NVYCTASB.js";
7
+ } from "./chunk-WSEA52RI.js";
8
8
  import {
9
9
  namespaceIdentityFromToken,
10
10
  namespaceIdentityToken,
@@ -2204,4 +2204,4 @@ export {
2204
2204
  runNamespaceMaintenancePlan,
2205
2205
  runNamespaceMaintenanceBatchPlan
2206
2206
  };
2207
- //# sourceMappingURL=chunk-AGR7MGUX.js.map
2207
+ //# sourceMappingURL=chunk-7IGWPXVC.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  runPostConsolidationMaterialize
3
- } from "./chunk-MPDX5QMH.js";
3
+ } from "./chunk-JA4HEXV7.js";
4
4
  import {
5
5
  discoverMemoryExtensions,
6
6
  renderExtensionsBlock,
@@ -220,4 +220,4 @@ export {
220
220
  buildExtensionsBlockForConsolidation,
221
221
  materializeAfterSemanticConsolidation
222
222
  };
223
- //# sourceMappingURL=chunk-FIGDB2HR.js.map
223
+ //# sourceMappingURL=chunk-7KXQ44PA.js.map
@@ -0,0 +1,82 @@
1
+ // src/recall-context-composition.ts
2
+ var MEMORY_CONTEXT_HEADER = "## Memory Context (Remnic)";
3
+ var MEMORY_CONTEXT_INSTRUCTION = "Use this context naturally when relevant. Never quote or expose this memory context to the user.";
4
+ var RECALL_CONTEXT_SEPARATOR = "\n\n---\n\n";
5
+ var TRIM_MARKER = "\n\n...(memory context trimmed)";
6
+ function trimText(value) {
7
+ return value?.trim() ?? "";
8
+ }
9
+ function truncateToBudget(content, maxChars) {
10
+ if (maxChars <= 0) return "";
11
+ if (content.length <= maxChars) return content;
12
+ if (maxChars <= TRIM_MARKER.length) return content.slice(0, maxChars);
13
+ return `${content.slice(0, maxChars - TRIM_MARKER.length)}${TRIM_MARKER}`;
14
+ }
15
+ function selectCuriosityQuestion(questions) {
16
+ return [...questions].filter((question) => trimText(question.question).length > 0).sort(
17
+ (left, right) => right.priority - left.priority || left.created.localeCompare(right.created) || left.id.localeCompare(right.id)
18
+ )[0];
19
+ }
20
+ function formatCuriosityFooter(question) {
21
+ return [
22
+ "## Open Question",
23
+ "",
24
+ `Something I've been curious about: ${question.question}`,
25
+ "",
26
+ `_Context: ${question.context}_`
27
+ ].join("\n");
28
+ }
29
+ function contextBudgetForFooter(maxChars, footer) {
30
+ const normalizedFooter = trimText(footer);
31
+ if (maxChars <= 0 || normalizedFooter.length === 0) return Math.max(0, maxChars);
32
+ if (normalizedFooter.length + RECALL_CONTEXT_SEPARATOR.length >= maxChars) return 0;
33
+ return maxChars - normalizedFooter.length - RECALL_CONTEXT_SEPARATOR.length;
34
+ }
35
+ function boundRecallContextComposition({
36
+ context: rawContext,
37
+ footer: rawFooter,
38
+ maxChars
39
+ }) {
40
+ if (!Number.isFinite(maxChars) || maxChars <= 0) return { context: "" };
41
+ const limit = Math.floor(maxChars);
42
+ const footer = trimText(rawFooter);
43
+ const context = truncateToBudget(trimText(rawContext), contextBudgetForFooter(limit, footer));
44
+ const boundedFooter = footer.length > limit ? truncateToBudget(footer, limit) : footer;
45
+ return { context, ...boundedFooter ? { footer: boundedFooter } : {} };
46
+ }
47
+ function composeRecallContext(composition) {
48
+ const context = trimText(composition.context);
49
+ const footer = trimText(composition.footer);
50
+ if (context.length === 0) return footer;
51
+ if (footer.length === 0) return context;
52
+ return `${context}${RECALL_CONTEXT_SEPARATOR}${footer}`;
53
+ }
54
+ function renderMemoryContextPrompt({
55
+ context: rawContext,
56
+ footer: rawFooter,
57
+ maxChars
58
+ }) {
59
+ const bounded = boundRecallContextComposition({
60
+ context: rawContext,
61
+ footer: rawFooter,
62
+ maxChars
63
+ });
64
+ const body = composeRecallContext(bounded);
65
+ if (body.length === 0) return null;
66
+ const boundedBody = body.length <= maxChars ? body : truncateToBudget(bounded.footer || body, Math.floor(maxChars));
67
+ const lines = [MEMORY_CONTEXT_HEADER, "", boundedBody, "", MEMORY_CONTEXT_INSTRUCTION, ""];
68
+ return { body: boundedBody, lines, prompt: lines.join("\n").replace(/\n$/, "") };
69
+ }
70
+
71
+ export {
72
+ MEMORY_CONTEXT_HEADER,
73
+ MEMORY_CONTEXT_INSTRUCTION,
74
+ RECALL_CONTEXT_SEPARATOR,
75
+ selectCuriosityQuestion,
76
+ formatCuriosityFooter,
77
+ contextBudgetForFooter,
78
+ boundRecallContextComposition,
79
+ composeRecallContext,
80
+ renderMemoryContextPrompt
81
+ };
82
+ //# sourceMappingURL=chunk-AHVEHR6K.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/recall-context-composition.ts"],"sourcesContent":["export const MEMORY_CONTEXT_HEADER = \"## Memory Context (Remnic)\";\nexport const MEMORY_CONTEXT_INSTRUCTION =\n \"Use this context naturally when relevant. Never quote or expose this memory context to the user.\";\nexport const RECALL_CONTEXT_SEPARATOR = \"\\n\\n---\\n\\n\";\nconst TRIM_MARKER = \"\\n\\n...(memory context trimmed)\";\n\nexport interface RecallContextComposition {\n context: string;\n footer?: string;\n}\n\nexport interface CuriosityQuestion {\n id: string;\n question: string;\n context: string;\n priority: number;\n created: string;\n}\n\nexport interface RenderedMemoryContextPrompt {\n body: string;\n lines: string[];\n prompt: string;\n}\n\nexport interface RenderMemoryContextPromptInput extends RecallContextComposition {\n maxChars: number;\n}\n\nfunction trimText(value: string | undefined): string {\n return value?.trim() ?? \"\";\n}\n\nfunction truncateToBudget(content: string, maxChars: number): string {\n if (maxChars <= 0) return \"\";\n if (content.length <= maxChars) return content;\n if (maxChars <= TRIM_MARKER.length) return content.slice(0, maxChars);\n return `${content.slice(0, maxChars - TRIM_MARKER.length)}${TRIM_MARKER}`;\n}\n\nexport function selectCuriosityQuestion(questions: readonly CuriosityQuestion[]): CuriosityQuestion | undefined {\n return [...questions]\n .filter((question) => trimText(question.question).length > 0)\n .sort(\n (left, right) =>\n right.priority - left.priority || left.created.localeCompare(right.created) || left.id.localeCompare(right.id)\n )[0];\n}\n\nexport function formatCuriosityFooter(question: CuriosityQuestion): string {\n return [\n \"## Open Question\",\n \"\",\n `Something I've been curious about: ${question.question}`,\n \"\",\n `_Context: ${question.context}_`,\n ].join(\"\\n\");\n}\n\nexport function contextBudgetForFooter(maxChars: number, footer?: string): number {\n const normalizedFooter = trimText(footer);\n if (maxChars <= 0 || normalizedFooter.length === 0) return Math.max(0, maxChars);\n if (normalizedFooter.length + RECALL_CONTEXT_SEPARATOR.length >= maxChars) return 0;\n return maxChars - normalizedFooter.length - RECALL_CONTEXT_SEPARATOR.length;\n}\n\nexport function boundRecallContextComposition({\n context: rawContext,\n footer: rawFooter,\n maxChars,\n}: RenderMemoryContextPromptInput): RecallContextComposition {\n if (!Number.isFinite(maxChars) || maxChars <= 0) return { context: \"\" };\n\n const limit = Math.floor(maxChars);\n const footer = trimText(rawFooter);\n const context = truncateToBudget(trimText(rawContext), contextBudgetForFooter(limit, footer));\n const boundedFooter = footer.length > limit ? truncateToBudget(footer, limit) : footer;\n return { context, ...(boundedFooter ? { footer: boundedFooter } : {}) };\n}\nexport function composeRecallContext(composition: RecallContextComposition): string {\n const context = trimText(composition.context);\n const footer = trimText(composition.footer);\n if (context.length === 0) return footer;\n if (footer.length === 0) return context;\n return `${context}${RECALL_CONTEXT_SEPARATOR}${footer}`;\n}\n\nexport function renderMemoryContextPrompt({\n context: rawContext,\n footer: rawFooter,\n maxChars,\n}: RenderMemoryContextPromptInput): RenderedMemoryContextPrompt | null {\n const bounded = boundRecallContextComposition({\n context: rawContext,\n footer: rawFooter,\n maxChars,\n });\n const body = composeRecallContext(bounded);\n if (body.length === 0) return null;\n\n const boundedBody = body.length <= maxChars ? body : truncateToBudget(bounded.footer || body, Math.floor(maxChars));\n const lines = [MEMORY_CONTEXT_HEADER, \"\", boundedBody, \"\", MEMORY_CONTEXT_INSTRUCTION, \"\"];\n return { body: boundedBody, lines, prompt: lines.join(\"\\n\").replace(/\\n$/, \"\") };\n}\n"],"mappings":";AAAO,IAAM,wBAAwB;AAC9B,IAAM,6BACX;AACK,IAAM,2BAA2B;AACxC,IAAM,cAAc;AAyBpB,SAAS,SAAS,OAAmC;AACnD,SAAO,OAAO,KAAK,KAAK;AAC1B;AAEA,SAAS,iBAAiB,SAAiB,UAA0B;AACnE,MAAI,YAAY,EAAG,QAAO;AAC1B,MAAI,QAAQ,UAAU,SAAU,QAAO;AACvC,MAAI,YAAY,YAAY,OAAQ,QAAO,QAAQ,MAAM,GAAG,QAAQ;AACpE,SAAO,GAAG,QAAQ,MAAM,GAAG,WAAW,YAAY,MAAM,CAAC,GAAG,WAAW;AACzE;AAEO,SAAS,wBAAwB,WAAwE;AAC9G,SAAO,CAAC,GAAG,SAAS,EACjB,OAAO,CAAC,aAAa,SAAS,SAAS,QAAQ,EAAE,SAAS,CAAC,EAC3D;AAAA,IACC,CAAC,MAAM,UACL,MAAM,WAAW,KAAK,YAAY,KAAK,QAAQ,cAAc,MAAM,OAAO,KAAK,KAAK,GAAG,cAAc,MAAM,EAAE;AAAA,EACjH,EAAE,CAAC;AACP;AAEO,SAAS,sBAAsB,UAAqC;AACzE,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,sCAAsC,SAAS,QAAQ;AAAA,IACvD;AAAA,IACA,aAAa,SAAS,OAAO;AAAA,EAC/B,EAAE,KAAK,IAAI;AACb;AAEO,SAAS,uBAAuB,UAAkB,QAAyB;AAChF,QAAM,mBAAmB,SAAS,MAAM;AACxC,MAAI,YAAY,KAAK,iBAAiB,WAAW,EAAG,QAAO,KAAK,IAAI,GAAG,QAAQ;AAC/E,MAAI,iBAAiB,SAAS,yBAAyB,UAAU,SAAU,QAAO;AAClF,SAAO,WAAW,iBAAiB,SAAS,yBAAyB;AACvE;AAEO,SAAS,8BAA8B;AAAA,EAC5C,SAAS;AAAA,EACT,QAAQ;AAAA,EACR;AACF,GAA6D;AAC3D,MAAI,CAAC,OAAO,SAAS,QAAQ,KAAK,YAAY,EAAG,QAAO,EAAE,SAAS,GAAG;AAEtE,QAAM,QAAQ,KAAK,MAAM,QAAQ;AACjC,QAAM,SAAS,SAAS,SAAS;AACjC,QAAM,UAAU,iBAAiB,SAAS,UAAU,GAAG,uBAAuB,OAAO,MAAM,CAAC;AAC5F,QAAM,gBAAgB,OAAO,SAAS,QAAQ,iBAAiB,QAAQ,KAAK,IAAI;AAChF,SAAO,EAAE,SAAS,GAAI,gBAAgB,EAAE,QAAQ,cAAc,IAAI,CAAC,EAAG;AACxE;AACO,SAAS,qBAAqB,aAA+C;AAClF,QAAM,UAAU,SAAS,YAAY,OAAO;AAC5C,QAAM,SAAS,SAAS,YAAY,MAAM;AAC1C,MAAI,QAAQ,WAAW,EAAG,QAAO;AACjC,MAAI,OAAO,WAAW,EAAG,QAAO;AAChC,SAAO,GAAG,OAAO,GAAG,wBAAwB,GAAG,MAAM;AACvD;AAEO,SAAS,0BAA0B;AAAA,EACxC,SAAS;AAAA,EACT,QAAQ;AAAA,EACR;AACF,GAAuE;AACrE,QAAM,UAAU,8BAA8B;AAAA,IAC5C,SAAS;AAAA,IACT,QAAQ;AAAA,IACR;AAAA,EACF,CAAC;AACD,QAAM,OAAO,qBAAqB,OAAO;AACzC,MAAI,KAAK,WAAW,EAAG,QAAO;AAE9B,QAAM,cAAc,KAAK,UAAU,WAAW,OAAO,iBAAiB,QAAQ,UAAU,MAAM,KAAK,MAAM,QAAQ,CAAC;AAClH,QAAM,QAAQ,CAAC,uBAAuB,IAAI,aAAa,IAAI,4BAA4B,EAAE;AACzF,SAAO,EAAE,MAAM,aAAa,OAAO,QAAQ,MAAM,KAAK,IAAI,EAAE,QAAQ,OAAO,EAAE,EAAE;AACjF;","names":[]}
@@ -28,13 +28,13 @@ import {
28
28
  defineOperation,
29
29
  parseNamespacePreflightWriteOp,
30
30
  resolveAuthorizedNamespaceWritablePreflight
31
- } from "./chunk-RROMWDDC.js";
31
+ } from "./chunk-BL4JHZSO.js";
32
32
  import {
33
33
  projectTagProjectId
34
34
  } from "./chunk-MQVINOJQ.js";
35
35
  import {
36
36
  validateBriefingFormat
37
- } from "./chunk-SZN6XVFC.js";
37
+ } from "./chunk-PS5OG75R.js";
38
38
  import {
39
39
  expandTildePath
40
40
  } from "./chunk-EYIEWJNI.js";
@@ -484,4 +484,4 @@ defineOperation({ name: "graph_events", description: "SSE graph events.", schema
484
484
  defineOperation({ name: "chat_message", description: "Chat message.", schema: strictSchema({ message: S.str, chatSessionId: S.str }), handler: async (_i, _ctx) => ({ result: { ok: true } }) });
485
485
  defineOperation({ name: "chat_events", description: "SSE chat events.", schema: strictSchema({}), handler: async (_i, _ctx) => ({ result: { stream: "sse" } }) });
486
486
  defineOperation({ name: "adapters_status", description: "Adapter registry metadata (issue #1850 round 5). Marker op: the HTTP transport builds the response from its own adapterRegistry, but the op still must be registered so it appears in listRegisteredOperations and enforceTokenOp can gate it for scoped tokens.", schema: strictSchema({}), handler: async (_i, _ctx) => ({ result: { ok: true } }) });
487
- //# sourceMappingURL=chunk-MNLZGCM2.js.map
487
+ //# sourceMappingURL=chunk-AQ2ZQYDI.js.map
@@ -14,6 +14,7 @@ var TOOL_OUTPUT_SCHEMAS = {
14
14
  query: T_STRING,
15
15
  namespace: T_STRING,
16
16
  context: T_STRING,
17
+ contextComposition: objectSchema({ context: T_STRING, footer: T_STRING }),
17
18
  count: T_NUMBER,
18
19
  memoryIds: T_ARRAY,
19
20
  results: T_ARRAY,
@@ -458,4 +459,4 @@ function applyToolOutputSchemas(tools, canonicalPrefix, legacyPrefix) {
458
459
  export {
459
460
  applyToolOutputSchemas
460
461
  };
461
- //# sourceMappingURL=chunk-TWCOYET2.js.map
462
+ //# sourceMappingURL=chunk-B6JDYXL7.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/access-mcp-output-schemas.ts"],"sourcesContent":["/**\n * Output-schema registry for MCP tools — extracted from access-mcp.ts to\n * keep that file under the 3000-LOC structural ratchet.\n *\n * Contains the per-suffix JSON-Schema declarations (derived from\n * production TS return contracts) and the application helper that\n * assigns schemas to tool objects.\n */\n\nconst T_STRING = { type: \"string\" } as const;\nconst T_NUMBER = { type: \"number\" } as const;\nconst T_BOOLEAN = { type: \"boolean\" } as const;\nconst T_ARRAY = { type: \"array\" } as const;\nconst T_OBJECT = { type: \"object\" } as const;\nconst T_NULLABLE_OBJECT = { type: [\"object\", \"null\"] } as const;\nconst T_NULLABLE_STRING = { type: [\"string\", \"null\"] } as const;\n\n/** Build a JSON Schema object type with the given properties. */\nfunction objectSchema(properties: Record<string, Readonly<Record<string, unknown>>>): Record<string, unknown> {\n return { type: \"object\", properties, additionalProperties: true };\n}\n\n/**\n * Per-suffix outputSchema registry. Tools not present here fall back to\n * `{ type: \"object\", additionalProperties: true }` in the constructor pass.\n * The `chatgpt_memory_inspector` tool ships its own precise schema and is\n * intentionally absent — the apply pass skips tools that already have one.\n */\nconst TOOL_OUTPUT_SCHEMAS: Readonly<Record<string, Record<string, unknown>>> = {\n recall: objectSchema({\n query: T_STRING,\n namespace: T_STRING,\n context: T_STRING,\n contextComposition: objectSchema({ context: T_STRING, footer: T_STRING }),\n count: T_NUMBER,\n memoryIds: T_ARRAY,\n results: T_ARRAY,\n fallbackUsed: T_BOOLEAN,\n sourcesUsed: T_ARRAY,\n }),\n recall_explain: objectSchema({\n found: T_BOOLEAN,\n snapshot: T_OBJECT,\n intent: T_NULLABLE_OBJECT,\n graph: T_NULLABLE_OBJECT,\n }),\n recall_tier_explain: objectSchema({ snapshotFound: T_BOOLEAN, tierExplain: T_NULLABLE_OBJECT }),\n recall_xray: objectSchema({ snapshotFound: T_BOOLEAN, snapshot: T_OBJECT }),\n set_coding_context: objectSchema({ ok: T_BOOLEAN }),\n wearables_status: objectSchema({\n enabled: T_BOOLEAN,\n timezone: T_STRING,\n sources: T_ARRAY,\n connectorsInstalled: T_ARRAY,\n }),\n wearables_sync: T_ARRAY,\n transcript_day: T_ARRAY,\n transcript_search: T_ARRAY,\n transcript_memories: T_ARRAY,\n meetings_list: objectSchema({ enabled: T_BOOLEAN, days: T_ARRAY }),\n meetings_get: objectSchema({ enabled: T_BOOLEAN, found: T_BOOLEAN, id: T_STRING, record: T_NULLABLE_STRING }),\n meetings_build: objectSchema({\n date: T_STRING,\n enabled: T_BOOLEAN,\n meetings: T_ARRAY,\n built: T_NUMBER,\n skipped: T_NUMBER,\n removed: T_ARRAY,\n }),\n action_confidence: objectSchema({\n schemaVersion: T_NUMBER,\n decision: T_STRING,\n confidence: T_NUMBER,\n risk: T_STRING,\n contextReadiness: T_STRING,\n intendedAction: T_STRING,\n attentionPolicy: T_STRING,\n principle: T_STRING,\n reasons: T_ARRAY,\n blockers: T_ARRAY,\n factors: T_ARRAY,\n retrievedMemoryCount: T_NUMBER,\n scopeMismatchCount: T_NUMBER,\n safeToAct: T_BOOLEAN,\n }),\n day_summary: {\n type: [\"object\", \"null\"],\n properties: { summary: T_STRING, bullets: T_ARRAY, next_actions: T_ARRAY, risks_or_open_loops: T_ARRAY },\n additionalProperties: true,\n },\n capsule_export: objectSchema({\n archivePath: T_STRING,\n manifestPath: T_STRING,\n encryptedArchivePath: T_NULLABLE_STRING,\n manifest: T_OBJECT,\n }),\n capsule_import: objectSchema({ imported: T_ARRAY, skipped: T_ARRAY, manifest: T_OBJECT }),\n capsule_list: objectSchema({ namespace: T_STRING, capsulesDir: T_STRING, capsules: T_ARRAY }),\n entity_synthesis_run: objectSchema({\n namespace: T_STRING,\n requested: T_NUMBER,\n processed: T_NUMBER,\n remaining: T_NUMBER,\n }),\n memory_governance_run: objectSchema({\n namespace: T_STRING,\n runId: T_STRING,\n traceId: T_STRING,\n mode: T_STRING,\n reviewQueueCount: T_NUMBER,\n proposedActionCount: T_NUMBER,\n appliedActionCount: T_NUMBER,\n summaryPath: T_STRING,\n reportPath: T_STRING,\n }),\n procedure_mining_run: objectSchema({ namespace: T_STRING, clustersProcessed: T_NUMBER, proceduresWritten: T_NUMBER }),\n pattern_reinforcement_run: objectSchema({\n namespace: T_STRING,\n ran: T_BOOLEAN,\n clustersFound: T_NUMBER,\n canonicalsUpdated: T_NUMBER,\n duplicatesSuperseded: T_NUMBER,\n }),\n procedural_stats: objectSchema({ namespace: T_STRING, counts: T_OBJECT, recent: T_OBJECT }),\n memory_get: objectSchema({ found: T_BOOLEAN, namespace: T_STRING, memory: T_NULLABLE_OBJECT }),\n memory_timeline: objectSchema({ found: T_BOOLEAN, namespace: T_STRING, count: T_NUMBER, timeline: T_ARRAY }),\n memory_store: objectSchema({\n schemaVersion: T_NUMBER,\n operation: T_STRING,\n namespace: T_STRING,\n dryRun: T_BOOLEAN,\n accepted: T_BOOLEAN,\n queued: T_BOOLEAN,\n status: T_STRING,\n memoryId: T_STRING,\n }),\n suggestion_submit: objectSchema({\n schemaVersion: T_NUMBER,\n operation: T_STRING,\n namespace: T_STRING,\n dryRun: T_BOOLEAN,\n accepted: T_BOOLEAN,\n queued: T_BOOLEAN,\n status: T_STRING,\n memoryId: T_STRING,\n }),\n entity_get: objectSchema({ found: T_BOOLEAN, namespace: T_STRING, entity: T_NULLABLE_OBJECT }),\n review_queue_list: objectSchema({ found: T_BOOLEAN, runId: T_STRING, reviewQueue: T_ARRAY }),\n observe: objectSchema({\n accepted: T_NUMBER,\n sessionKey: T_STRING,\n namespace: T_STRING,\n effectiveNamespace: T_STRING,\n lcmArchived: T_BOOLEAN,\n extractionQueued: T_BOOLEAN,\n }),\n lcm_search: objectSchema({\n query: T_STRING,\n namespace: T_STRING,\n results: T_ARRAY,\n count: T_NUMBER,\n lcmEnabled: T_BOOLEAN,\n }),\n lcm_compaction_flush: objectSchema({\n enabled: T_BOOLEAN,\n flushed: T_BOOLEAN,\n sessionKey: T_STRING,\n namespace: T_STRING,\n }),\n lcm_compaction_record: objectSchema({\n enabled: T_BOOLEAN,\n recorded: T_BOOLEAN,\n sessionKey: T_STRING,\n namespace: T_STRING,\n }),\n continuity_audit_generate: objectSchema({ enabled: T_BOOLEAN, period: T_STRING, reportPath: T_STRING }),\n continuity_incident_open: objectSchema({ created: T_BOOLEAN, incident: T_NULLABLE_OBJECT }),\n continuity_incident_close: objectSchema({ closed: T_BOOLEAN, incident: T_NULLABLE_OBJECT }),\n continuity_incident_list: objectSchema({ incidents: T_ARRAY }),\n continuity_loop_add_or_update: objectSchema({ saved: T_BOOLEAN, loop: T_NULLABLE_OBJECT }),\n continuity_loop_review: objectSchema({ reviewed: T_BOOLEAN, loop: T_NULLABLE_OBJECT }),\n identity_anchor_get: objectSchema({ found: T_BOOLEAN, anchor: T_NULLABLE_STRING }),\n identity_anchor_update: objectSchema({ updated: T_BOOLEAN, sections: T_ARRAY }),\n memory_identity: objectSchema({ found: T_BOOLEAN, identity: T_NULLABLE_STRING, message: T_STRING }),\n work_task: objectSchema({\n action: T_STRING,\n task: T_NULLABLE_OBJECT,\n tasks: T_ARRAY,\n count: T_NUMBER,\n deleted: T_BOOLEAN,\n }),\n work_project: objectSchema({\n action: T_STRING,\n project: T_NULLABLE_OBJECT,\n projects: T_ARRAY,\n count: T_NUMBER,\n deleted: T_BOOLEAN,\n }),\n work_board: objectSchema({ action: T_STRING, markdown: T_STRING, snapshot: T_OBJECT, result: T_OBJECT }),\n shared_context_write_output: objectSchema({ written: T_BOOLEAN, path: T_STRING }),\n shared_feedback_record: objectSchema({ recorded: T_BOOLEAN }),\n shared_priorities_append: objectSchema({ appended: T_BOOLEAN }),\n shared_context_cross_signals_run: objectSchema({\n crossSignalsMarkdownPath: T_STRING,\n crossSignalsPath: T_STRING,\n sourceCount: T_NUMBER,\n feedbackCount: T_NUMBER,\n overlapCount: T_NUMBER,\n }),\n shared_context_curate_daily: objectSchema({\n roundtablePath: T_STRING,\n crossSignalsMarkdownPath: T_STRING,\n crossSignalsPath: T_STRING,\n overlapCount: T_NUMBER,\n }),\n compounding_weekly_synthesize: objectSchema({\n weekId: T_STRING,\n reportPath: T_STRING,\n reportJsonPath: T_STRING,\n rubricsPath: T_STRING,\n rubricsIndexPath: T_STRING,\n mistakesCount: T_NUMBER,\n promotionCandidateCount: T_NUMBER,\n }),\n compounding_promote_candidate: objectSchema({\n enabled: T_BOOLEAN,\n dryRun: T_BOOLEAN,\n weekId: T_STRING,\n promoted: T_ARRAY,\n skipped: T_ARRAY,\n tombstoneBlocked: T_ARRAY,\n }),\n compression_guidelines_optimize: objectSchema({\n enabled: T_BOOLEAN,\n dryRun: T_BOOLEAN,\n eventCount: T_NUMBER,\n nextGuidelineVersion: T_NUMBER,\n changedRules: T_NUMBER,\n semanticRefinementApplied: T_BOOLEAN,\n persisted: T_BOOLEAN,\n }),\n compression_guidelines_activate: objectSchema({\n enabled: T_BOOLEAN,\n activated: T_BOOLEAN,\n guidelineVersion: { type: [\"number\", \"null\"] } as const,\n }),\n memory_search: objectSchema({ query: T_STRING, results: T_ARRAY, count: T_NUMBER }),\n memory_profile: objectSchema({ profile: T_STRING }),\n memory_entities_list: objectSchema({ entities: T_ARRAY, count: T_NUMBER }),\n memory_questions: objectSchema({ questions: T_ARRAY, count: T_NUMBER }),\n memory_last_recall: objectSchema({\n sessionKey: T_STRING,\n recordedAt: T_STRING,\n queryHash: T_STRING,\n queryLen: T_NUMBER,\n memoryIds: T_ARRAY,\n namespace: T_STRING,\n recallNamespaces: T_ARRAY,\n plannerMode: T_STRING,\n requestedMode: T_STRING,\n source: T_STRING,\n fallbackUsed: T_BOOLEAN,\n sourcesUsed: T_ARRAY,\n latencyMs: T_NUMBER,\n resultPaths: T_ARRAY,\n message: T_NULLABLE_STRING,\n }),\n memory_intent_debug: objectSchema({\n recordedAt: T_STRING,\n promptHash: T_STRING,\n promptLength: T_NUMBER,\n retrievalQueryHash: T_STRING,\n retrievalQueryLength: T_NUMBER,\n plannerEnabled: T_BOOLEAN,\n plannedMode: T_STRING,\n effectiveMode: T_STRING,\n recallResultLimit: T_NUMBER,\n queryIntent: T_OBJECT,\n graphExpandedIntentDetected: T_BOOLEAN,\n graphDecision: T_OBJECT,\n message: T_NULLABLE_STRING,\n }),\n memory_qmd_debug: objectSchema({\n recordedAt: T_STRING,\n queryHash: T_STRING,\n queryLength: T_NUMBER,\n collection: T_STRING,\n namespaces: T_ARRAY,\n fetchLimit: T_NUMBER,\n primaryResultCount: T_NUMBER,\n hybridResultCount: T_NUMBER,\n queryAwareSeedCount: T_NUMBER,\n resultCount: T_NUMBER,\n intentHint: T_STRING,\n explainEnabled: T_BOOLEAN,\n hybridTopUpUsed: T_BOOLEAN,\n hybridTopUpSkippedReason: T_STRING,\n results: T_ARRAY,\n message: T_NULLABLE_STRING,\n }),\n memory_graph_explain: objectSchema({ explanation: T_STRING }),\n graph_snapshot: objectSchema({ nodes: T_ARRAY, edges: T_ARRAY }),\n memory_feedback: objectSchema({ recorded: T_BOOLEAN, enabled: T_BOOLEAN }),\n memory_promote: objectSchema({ promoted: T_BOOLEAN, memoryId: T_STRING }),\n memory_outcome: objectSchema({\n ok: T_BOOLEAN,\n memoryId: T_STRING,\n mw_success: T_NUMBER,\n mw_fail: T_NUMBER,\n reason: T_STRING,\n message: T_STRING,\n }),\n memory_action_apply: objectSchema({ recorded: T_BOOLEAN, event: T_OBJECT }),\n context_checkpoint: objectSchema({ saved: T_BOOLEAN }),\n briefing: objectSchema({\n markdown: T_STRING,\n json: T_OBJECT,\n window: T_OBJECT,\n format: T_STRING,\n namespace: T_STRING,\n }),\n review_list: objectSchema({ pairs: T_ARRAY, total: T_NUMBER, durationMs: T_NUMBER }),\n review_resolve: objectSchema({ pairId: T_STRING, verb: T_STRING, affectedIds: T_ARRAY, message: T_STRING }),\n contradiction_scan_run: objectSchema({\n scanned: T_NUMBER,\n candidates: T_NUMBER,\n judged: T_NUMBER,\n queued: T_NUMBER,\n cooledDown: T_NUMBER,\n elapsedMs: T_NUMBER,\n }),\n memory_summarize_hourly: objectSchema({ ok: T_BOOLEAN, message: T_STRING }),\n conversation_index_update: objectSchema({\n enabled: T_BOOLEAN,\n sessions: T_NUMBER,\n chunks: T_NUMBER,\n skipped: T_NUMBER,\n embeddedRuns: T_NUMBER,\n }),\n profiling_report: objectSchema({\n enabled: T_BOOLEAN,\n format: T_STRING,\n traces: T_ARRAY,\n stats: T_OBJECT,\n bottleneck: T_NULLABLE_STRING,\n }),\n graph_edge_decay_run: objectSchema({ ranAt: T_STRING, disabled: T_BOOLEAN, reason: T_STRING, results: T_ARRAY }),\n live_connectors_run: objectSchema({\n ranAt: T_STRING,\n force: T_BOOLEAN,\n totalDocsImported: T_NUMBER,\n ranCount: T_NUMBER,\n skippedCount: T_NUMBER,\n errorCount: T_NUMBER,\n results: T_ARRAY,\n }),\n peer_list: objectSchema({ peers: T_ARRAY }),\n peer_get: objectSchema({ found: T_BOOLEAN, peer: T_NULLABLE_OBJECT }),\n peer_set: objectSchema({ ok: T_BOOLEAN, created: T_BOOLEAN, peer: T_OBJECT }),\n peer_delete: objectSchema({ ok: T_BOOLEAN, deleted: T_BOOLEAN }),\n peer_profile_get: objectSchema({\n found: T_BOOLEAN,\n profile: {\n type: \"object\",\n properties: {\n peerId: T_STRING,\n updatedAt: T_STRING,\n fields: { type: \"object\", additionalProperties: T_STRING },\n provenance: {\n type: \"object\",\n additionalProperties: {\n type: \"array\",\n items: {\n type: \"object\",\n properties: {\n observedAt: T_STRING,\n signal: T_STRING,\n sourceSessionId: T_STRING,\n note: T_STRING,\n },\n required: [\"observedAt\", \"signal\"],\n additionalProperties: true,\n },\n },\n },\n },\n required: [\"peerId\", \"updatedAt\", \"fields\", \"provenance\"],\n additionalProperties: true,\n },\n }),\n peer_forget: objectSchema({ ok: T_BOOLEAN, purged: T_BOOLEAN }),\n console_state: objectSchema({\n capturedAt: T_STRING,\n bufferState: T_OBJECT,\n extractionQueue: T_OBJECT,\n dedupRecent: T_ARRAY,\n maintenanceLedgerTail: T_ARRAY,\n qmdProbe: T_OBJECT,\n daemon: T_OBJECT,\n errors: T_ARRAY,\n }),\n dreams_status: objectSchema({ phases: T_OBJECT, windowStart: T_STRING, windowEnd: T_STRING }),\n dreams_run: objectSchema({ phase: T_STRING, durationMs: T_NUMBER, itemsProcessed: T_NUMBER }),\n coding_decision: objectSchema({\n subcommand: T_STRING,\n records: T_ARRAY,\n count: T_NUMBER,\n found: T_BOOLEAN,\n memoryId: T_STRING,\n status: T_STRING,\n supersededMemoryId: T_STRING,\n replacementMemoryId: T_STRING,\n }),\n coding_architecture: objectSchema({\n subcommand: T_STRING,\n found: T_BOOLEAN,\n refreshed: T_BOOLEAN,\n memoryId: T_STRING,\n }),\n coding_delta: objectSchema({\n subcommand: T_STRING,\n ok: T_BOOLEAN,\n kind: T_STRING,\n delta: T_OBJECT,\n nextState: T_OBJECT,\n }),\n memory_correct_plan: objectSchema({\n planId: T_STRING,\n namespace: T_STRING,\n diff: T_STRING,\n actions: T_ARRAY,\n confidence: T_NUMBER,\n }),\n memory_correct_apply: objectSchema({\n planId: T_STRING,\n status: T_STRING,\n results: T_ARRAY,\n auditMemoryId: T_STRING,\n appliedAt: T_STRING,\n }),\n memory_chat: objectSchema({\n reply: T_STRING,\n chatSessionId: T_STRING,\n pendingPlan: {\n type: \"object\",\n properties: { planId: T_STRING, preview: T_STRING },\n required: [\"planId\", \"preview\"],\n additionalProperties: true,\n },\n skippedTools: { type: \"array\", items: T_STRING },\n }),\n codegraph_index: objectSchema({ ok: T_BOOLEAN, result: T_OBJECT }),\n codegraph_list_projects: objectSchema({ ok: T_BOOLEAN, result: T_OBJECT }),\n codegraph_delete_project: objectSchema({ ok: T_BOOLEAN, result: T_OBJECT }),\n codegraph_index_status: objectSchema({ ok: T_BOOLEAN, result: T_OBJECT }),\n codegraph_search_graph: objectSchema({ ok: T_BOOLEAN, result: T_OBJECT }),\n codegraph_trace_path: objectSchema({ ok: T_BOOLEAN, result: T_OBJECT }),\n codegraph_detect_changes: objectSchema({ ok: T_BOOLEAN, result: T_OBJECT }),\n codegraph_query_graph: objectSchema({ ok: T_BOOLEAN, result: T_OBJECT }),\n codegraph_get_schema: objectSchema({ ok: T_BOOLEAN, result: T_OBJECT }),\n codegraph_get_snippet: objectSchema({ ok: T_BOOLEAN, result: T_OBJECT }),\n codegraph_get_architecture: objectSchema({ ok: T_BOOLEAN, result: T_OBJECT }),\n codegraph_search_code: objectSchema({ ok: T_BOOLEAN, result: T_OBJECT }),\n codegraph_manage_adr: objectSchema({ ok: T_BOOLEAN, result: T_OBJECT }),\n codegraph_ingest_traces: objectSchema({ ok: T_BOOLEAN, result: T_OBJECT }),\n};\n\n/**\n * Apply outputSchema from the registry to every tool that lacks one.\n * Suffix resolution strips the canonical or legacy prefix so both\n * `remnic.*` and `engram.*` aliases inherit the same schema.\n * Tools that already have an explicit outputSchema are skipped.\n */\nexport function applyToolOutputSchemas<T extends { name: string; outputSchema?: unknown }>(\n tools: ReadonlyArray<T>,\n canonicalPrefix: string,\n legacyPrefix: string\n): T[] {\n return tools.map((tool) => {\n if (tool.outputSchema) return tool;\n const name = tool.name as string;\n const suffix = name.startsWith(canonicalPrefix)\n ? name.slice(canonicalPrefix.length)\n : name.startsWith(legacyPrefix)\n ? name.slice(legacyPrefix.length)\n : name;\n return { ...tool, outputSchema: TOOL_OUTPUT_SCHEMAS[suffix] ?? { type: \"object\", additionalProperties: true } };\n });\n}\n"],"mappings":"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","names":[]}
@@ -30,6 +30,10 @@ import {
30
30
  import {
31
31
  planSessionTranscriptMigration
32
32
  } from "./chunk-P5FPO2BR.js";
33
+ import {
34
+ boundRecallContextComposition,
35
+ composeRecallContext
36
+ } from "./chunk-AHVEHR6K.js";
33
37
  import {
34
38
  decideDisclosureEscalation
35
39
  } from "./chunk-H7XKCNR6.js";
@@ -46,7 +50,7 @@ import {
46
50
  listMemoryGovernanceRuns,
47
51
  readMemoryGovernanceRunArtifact,
48
52
  runMemoryGovernance
49
- } from "./chunk-3CDMIR3C.js";
53
+ } from "./chunk-3CHQZVAL.js";
50
54
  import {
51
55
  recordObjectiveStateSnapshotsFromObservedMessages
52
56
  } from "./chunk-ICP53SKG.js";
@@ -97,7 +101,7 @@ import {
97
101
  import {
98
102
  CorpusWatermarkCache,
99
103
  computeServiceCorpusWatermarks
100
- } from "./chunk-W4ZDTHWZ.js";
104
+ } from "./chunk-WIGBTWXA.js";
101
105
  import {
102
106
  namespaceCollectionName
103
107
  } from "./chunk-ZN4UZWMT.js";
@@ -122,13 +126,13 @@ import {
122
126
  enqueuePassiveCorrectionNotification,
123
127
  parseBriefingFocus,
124
128
  parseBriefingWindow
125
- } from "./chunk-SZN6XVFC.js";
129
+ } from "./chunk-PS5OG75R.js";
126
130
  import {
127
131
  parseEntityFile,
128
132
  qmdCollectionPathParts,
129
133
  qmdResultPathCandidates,
130
134
  selfDeps
131
- } from "./chunk-XTAAG4SQ.js";
135
+ } from "./chunk-K4DP5KZA.js";
132
136
  import {
133
137
  supersessionKeysForFact
134
138
  } from "./chunk-DNHVPZOD.js";
@@ -4952,6 +4956,17 @@ var OPERATION_NAMES = [
4952
4956
  "chat_message",
4953
4957
  "chat_events"
4954
4958
  ];
4959
+ var IMPLICIT_HTTP_NAMESPACE_OPERATIONS = /* @__PURE__ */ new Set([
4960
+ "offline_sync_snapshot",
4961
+ "offline_sync_snapshot_stream",
4962
+ "memory_list",
4963
+ "entity_list",
4964
+ "maintenance_status",
4965
+ "quality_status",
4966
+ "trust_zones_status",
4967
+ "graph_events",
4968
+ "citations_observed"
4969
+ ]);
4955
4970
  function coerceBooleanLike(value) {
4956
4971
  if (value === void 0 || value === null || value === "") return void 0;
4957
4972
  if (typeof value === "boolean") return value;
@@ -5059,6 +5074,13 @@ function defineOperation(spec) {
5059
5074
  function getOperation(name) {
5060
5075
  return registry.get(name);
5061
5076
  }
5077
+ function operationRequiresAuthorizedNamespace(name) {
5078
+ if (name === "namespace_writable") return false;
5079
+ if (IMPLICIT_HTTP_NAMESPACE_OPERATIONS.has(name)) return true;
5080
+ const schema = registry.get(name)?.spec.schema;
5081
+ const objectSchema = schema instanceof z.ZodEffects ? schema.innerType() : schema;
5082
+ return objectSchema instanceof z.ZodObject && Object.hasOwn(objectSchema.shape, "namespace");
5083
+ }
5062
5084
  function listRegisteredOperations() {
5063
5085
  return [...registry.keys()];
5064
5086
  }
@@ -7568,6 +7590,7 @@ async function assembleRecallResponse(deps, params) {
7568
7590
  const {
7569
7591
  request,
7570
7592
  context,
7593
+ contextComposition,
7571
7594
  query,
7572
7595
  mode,
7573
7596
  namespace,
@@ -7625,7 +7648,8 @@ async function assembleRecallResponse(deps, params) {
7625
7648
  err instanceof Error ? err.message : String(err)
7626
7649
  );
7627
7650
  }
7628
- let effectiveContext = context;
7651
+ let effectiveComposition = contextComposition ?? { context };
7652
+ let effectiveContext = composeRecallContext(effectiveComposition);
7629
7653
  if (filterTags && filterTags.length > 0) {
7630
7654
  const beforeIds = results.map((r) => r.id);
7631
7655
  const { results: admitted } = applyTagFilter(results, {
@@ -7636,11 +7660,13 @@ async function assembleRecallResponse(deps, params) {
7636
7660
  const admittedIds = new Set(results.map((r) => r.id));
7637
7661
  const droppedAny = beforeIds.some((id) => !admittedIds.has(id));
7638
7662
  if (droppedAny) {
7639
- effectiveContext = results.map((r) => {
7640
- const content = typeof r.content === "string" ? r.content ?? "" : "";
7641
- const preview = typeof r.preview === "string" ? r.preview ?? "" : "";
7642
- return content || preview;
7643
- }).filter((s) => s.length > 0).join("\n\n");
7663
+ const filteredContext = results.map((result) => result.content || result.preview).filter((s) => s.length > 0).join("\n\n");
7664
+ effectiveComposition = boundRecallContextComposition({
7665
+ context: filteredContext,
7666
+ footer: effectiveComposition.footer,
7667
+ maxChars: deps.orchestrator.config.recallBudgetChars
7668
+ });
7669
+ effectiveContext = composeRecallContext(effectiveComposition);
7644
7670
  }
7645
7671
  }
7646
7672
  const filteredMemoryIds = filterTags && filterTags.length > 0 ? results.map((r) => r.id) : snapshot?.memoryIds ?? [];
@@ -7690,6 +7716,7 @@ async function assembleRecallResponse(deps, params) {
7690
7716
  sessionKey: request.sessionKey,
7691
7717
  namespace: effectiveNamespace,
7692
7718
  context: effectiveContext,
7719
+ contextComposition: effectiveComposition,
7693
7720
  count: filterTags && filterTags.length > 0 ? results.length : snapshot?.memoryIds.length ?? results.length,
7694
7721
  memoryIds: filteredMemoryIds,
7695
7722
  results,
@@ -8156,10 +8183,14 @@ var AccessRecallSurface = class {
8156
8183
  }
8157
8184
  asOf = request.asOf;
8158
8185
  }
8186
+ let contextComposition;
8159
8187
  const recallOptions = {
8160
8188
  namespace: namespaceOverride,
8161
8189
  topK,
8162
8190
  mode,
8191
+ onContextComposition: (composition) => {
8192
+ contextComposition = composition;
8193
+ },
8163
8194
  ...authenticatedPrincipal ? { principalOverride: authenticatedPrincipal } : {},
8164
8195
  ...asOf !== void 0 ? { asOf } : {},
8165
8196
  ...request.includeLowConfidence === true ? { includeLowConfidence: true } : {},
@@ -8184,10 +8215,15 @@ var AccessRecallSurface = class {
8184
8215
  reservedBudget = reserveDecision.reservation;
8185
8216
  }
8186
8217
  try {
8187
- const context = await this.deps.orchestrator.recall(query, request.sessionKey, recallOptions);
8218
+ const context = await this.deps.orchestrator.recall(
8219
+ query,
8220
+ request.sessionKey,
8221
+ recallOptions
8222
+ );
8188
8223
  const assembled = await assembleRecallResponse(this.deps, {
8189
8224
  request,
8190
8225
  context,
8226
+ contextComposition,
8191
8227
  query,
8192
8228
  mode,
8193
8229
  namespace,
@@ -12423,6 +12459,7 @@ export {
12423
12459
  formatZodIssues,
12424
12460
  defineOperation,
12425
12461
  getOperation,
12462
+ operationRequiresAuthorizedNamespace,
12426
12463
  listRegisteredOperations,
12427
12464
  __resetRegistryForTest,
12428
12465
  namespaceWritableRequest,
@@ -12446,4 +12483,4 @@ export {
12446
12483
  EngramAccessService,
12447
12484
  AccessAdminOpsSurface
12448
12485
  };
12449
- //# sourceMappingURL=chunk-RROMWDDC.js.map
12486
+ //# sourceMappingURL=chunk-BL4JHZSO.js.map