@remnic/core 9.63.7 → 9.63.8

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 (157) hide show
  1. package/dist/access-admin-ops-surface.d.ts +3 -2
  2. package/dist/access-admin-ops-surface.js +11 -9
  3. package/dist/access-authorization-probe.d.ts +3 -2
  4. package/dist/access-authorization-probe.js +12 -10
  5. package/dist/access-boundary.d.ts +3 -2
  6. package/dist/access-boundary.js +11 -9
  7. package/dist/access-cli.js +46 -45
  8. package/dist/access-cli.js.map +1 -1
  9. package/dist/access-extraction-force-flush.d.ts +3 -2
  10. package/dist/access-extraction-force-flush.js +11 -9
  11. package/dist/access-http-lcm-compaction.d.ts +3 -2
  12. package/dist/access-http-lifecycle-flush.d.ts +3 -2
  13. package/dist/access-http-offline-stream.d.ts +3 -2
  14. package/dist/access-http-query.js +11 -9
  15. package/dist/access-http.d.ts +4 -3
  16. package/dist/access-http.js +24 -22
  17. package/dist/access-identity-continuity-surface.d.ts +2 -1
  18. package/dist/access-identity-continuity-surface.js +11 -9
  19. package/dist/access-lcm-surface.d.ts +3 -2
  20. package/dist/access-lcm-surface.js +11 -9
  21. package/dist/access-mcp-output-schemas.js +1 -1
  22. package/dist/access-mcp.d.ts +3 -2
  23. package/dist/access-mcp.js +19 -17
  24. package/dist/access-namespace-preflight.js +11 -9
  25. package/dist/access-observe-write-surface.d.ts +3 -2
  26. package/dist/access-observe-write-surface.js +11 -9
  27. package/dist/access-offline-manifest.d.ts +2 -1
  28. package/dist/access-offline-manifest.js +3 -3
  29. package/dist/access-operations-batch.js +13 -11
  30. package/dist/access-operations.d.ts +6 -5
  31. package/dist/access-operations.js +17 -15
  32. package/dist/access-recall-concurrency.d.ts +3 -2
  33. package/dist/access-recall-concurrency.js +11 -9
  34. package/dist/access-recall-response.d.ts +3 -2
  35. package/dist/access-recall-response.js +11 -9
  36. package/dist/access-recall-surface.d.ts +3 -2
  37. package/dist/access-recall-surface.js +11 -9
  38. package/dist/access-schema.d.ts +88 -88
  39. package/dist/access-schema.js +5 -5
  40. package/dist/{access-service-CocW74uA.d.ts → access-service-BaPa_km6.d.ts} +65 -65
  41. package/dist/access-service-helpers.d.ts +3 -2
  42. package/dist/access-service.d.ts +3 -2
  43. package/dist/access-service.js +11 -9
  44. package/dist/access-surface-catalog.d.ts +3 -2
  45. package/dist/access-surface-catalog.js +13 -11
  46. package/dist/access-surface-catalog.js.map +1 -1
  47. package/dist/active-recall.js +3 -3
  48. package/dist/bootstrap.d.ts +2 -1
  49. package/dist/{capsule-crypto-7FJQINUR.js → capsule-crypto-YO5QJ6L3.js} +2 -2
  50. package/dist/chunk-2YA5N2BY.js +65 -0
  51. package/dist/chunk-2YA5N2BY.js.map +1 -0
  52. package/dist/{chunk-5S5DUJFJ.js → chunk-3IMYRX3W.js} +2 -2
  53. package/dist/{chunk-QIZOU3FN.js → chunk-5OOTHWGJ.js} +2 -2
  54. package/dist/{chunk-YMQKPSB2.js → chunk-5TF5STAV.js} +4 -4
  55. package/dist/{chunk-PMVPCZJZ.js → chunk-6433HV72.js} +2 -2
  56. package/dist/{chunk-WKJTMXME.js → chunk-BPQ7L27U.js} +44 -42
  57. package/dist/{chunk-WKJTMXME.js.map → chunk-BPQ7L27U.js.map} +1 -1
  58. package/dist/{chunk-2NLLXCJG.js → chunk-BXLOS5AJ.js} +2 -2
  59. package/dist/{chunk-IBZQQOM5.js → chunk-DGUVXXAU.js} +3 -3
  60. package/dist/{chunk-X7Y7WX73.js → chunk-DQEMWVMT.js} +1 -1
  61. package/dist/{chunk-HXZNTZ3Y.js → chunk-EDZNW3HE.js} +5 -5
  62. package/dist/{chunk-2L7DKNVE.js → chunk-FZEEWOI2.js} +4 -4
  63. package/dist/{chunk-XNJQZLAP.js → chunk-I2HTKOOP.js} +2 -2
  64. package/dist/{chunk-3S3PNR5H.js → chunk-KXWE62IH.js} +2 -2
  65. package/dist/{chunk-SYJW273H.js → chunk-LTYH2L6E.js} +12 -12
  66. package/dist/{chunk-YIMV2KYM.js → chunk-N7V3P4V5.js} +2 -2
  67. package/dist/{chunk-OOJCXJBN.js → chunk-O52TB5SL.js} +2 -2
  68. package/dist/{chunk-PZKWPXRF.js → chunk-PHKU6BZ2.js} +2 -2
  69. package/dist/{chunk-H4GQ2Y24.js → chunk-PQHNZ63P.js} +4 -4
  70. package/dist/{chunk-7ZAC2C2U.js → chunk-SY5JUJ2X.js} +35 -35
  71. package/dist/{chunk-YYQAKIDJ.js → chunk-VD2OT77P.js} +2 -2
  72. package/dist/chunk-VD2OT77P.js.map +1 -0
  73. package/dist/{chunk-KQAFEZQX.js → chunk-VDX2J7OX.js} +2 -2
  74. package/dist/{chunk-WZDTSBGQ.js → chunk-VYMICVRA.js} +2 -2
  75. package/dist/{chunk-XV6PUXJ5.js → chunk-WBPD6SBZ.js} +52 -59
  76. package/dist/chunk-WBPD6SBZ.js.map +1 -0
  77. package/dist/{chunk-3NZAVWU5.js → chunk-ZOAAY2OE.js} +2 -2
  78. package/dist/{chunk-PRDJMOST.js → chunk-ZVZHG7AI.js} +65 -15
  79. package/dist/chunk-ZVZHG7AI.js.map +1 -0
  80. package/dist/{chunk-IINVXO3U.js → chunk-ZWYXSF2T.js} +2 -2
  81. package/dist/{cli-BTNj5DzK.d.ts → cli-D0tV7eeU.d.ts} +2 -2
  82. package/dist/cli.d.ts +4 -3
  83. package/dist/cli.js +36 -34
  84. package/dist/config.js +3 -3
  85. package/dist/explicit-capture.d.ts +2 -1
  86. package/dist/external-wiki-access.d.ts +3 -2
  87. package/dist/external-wiki-access.js +12 -10
  88. package/dist/external-wiki-mcp-tools.d.ts +3 -2
  89. package/dist/{first-start-migration-Q2VB2E2D.js → first-start-migration-4NETATFF.js} +4 -4
  90. package/dist/included-memories.d.ts +11 -0
  91. package/dist/included-memories.js +14 -0
  92. package/dist/included-memories.js.map +1 -0
  93. package/dist/index.d.ts +682 -681
  94. package/dist/index.js +57 -56
  95. package/dist/lcm/index.js +3 -3
  96. package/dist/mcp-memory-inspector-app.d.ts +3 -2
  97. package/dist/offline-sync.js +2 -2
  98. package/dist/operator-toolkit.js +4 -4
  99. package/dist/{orchestrator-CSc9GfQv.d.ts → orchestrator-Bay_AofR.d.ts} +2 -3
  100. package/dist/orchestrator.d.ts +2 -1
  101. package/dist/orchestrator.js +46 -45
  102. package/dist/{public-http-BmPktTe3.d.ts → public-http-BtjiyKah.d.ts} +1 -1
  103. package/dist/recall-explain-renderer.d.ts +1 -0
  104. package/dist/recall-state.d.ts +6 -2
  105. package/dist/recall-state.js +6 -2
  106. package/dist/resume-bundles.js +4 -4
  107. package/dist/schemas.d.ts +108 -108
  108. package/dist/shared-context/manager.d.ts +8 -8
  109. package/dist/support-passport/index.d.ts +6 -5
  110. package/dist/support-passport/index.js +14 -12
  111. package/dist/transfer/backup.js +2 -2
  112. package/dist/transfer/capsule-export.js +2 -2
  113. package/dist/transfer/capsule-import.js +2 -2
  114. package/dist/transfer/types.d.ts +66 -66
  115. package/package.json +2 -2
  116. package/src/access-mcp-output-schemas.ts +1 -1
  117. package/src/access-recall-response.ts +4 -2
  118. package/src/access-recall-surface.ts +9 -9
  119. package/src/access-service-namespace.test.ts +9 -9
  120. package/src/access-service-raw-excerpt-read-gate.test.ts +1 -1
  121. package/src/included-memories.ts +88 -0
  122. package/src/orchestration/recall-internal-deps.ts +2 -4
  123. package/src/orchestration/recall-internal.ts +9 -13
  124. package/src/orchestration/recall-result-formatter-display-safe.test.ts +13 -16
  125. package/src/orchestration/recall-result-formatter.ts +32 -45
  126. package/src/orchestration/recall-section-coordinator.ts +20 -26
  127. package/src/orchestrator.ts +2 -4
  128. package/src/recall-explain-renderer.test.ts +4 -0
  129. package/src/recall-state.test.ts +108 -5
  130. package/src/recall-state.ts +85 -23
  131. package/src/recall-token-budget.test.ts +1 -1
  132. package/dist/chunk-PRDJMOST.js.map +0 -1
  133. package/dist/chunk-XV6PUXJ5.js.map +0 -1
  134. package/dist/chunk-YYQAKIDJ.js.map +0 -1
  135. /package/dist/{capsule-crypto-7FJQINUR.js.map → capsule-crypto-YO5QJ6L3.js.map} +0 -0
  136. /package/dist/{chunk-5S5DUJFJ.js.map → chunk-3IMYRX3W.js.map} +0 -0
  137. /package/dist/{chunk-QIZOU3FN.js.map → chunk-5OOTHWGJ.js.map} +0 -0
  138. /package/dist/{chunk-YMQKPSB2.js.map → chunk-5TF5STAV.js.map} +0 -0
  139. /package/dist/{chunk-PMVPCZJZ.js.map → chunk-6433HV72.js.map} +0 -0
  140. /package/dist/{chunk-2NLLXCJG.js.map → chunk-BXLOS5AJ.js.map} +0 -0
  141. /package/dist/{chunk-IBZQQOM5.js.map → chunk-DGUVXXAU.js.map} +0 -0
  142. /package/dist/{chunk-X7Y7WX73.js.map → chunk-DQEMWVMT.js.map} +0 -0
  143. /package/dist/{chunk-HXZNTZ3Y.js.map → chunk-EDZNW3HE.js.map} +0 -0
  144. /package/dist/{chunk-2L7DKNVE.js.map → chunk-FZEEWOI2.js.map} +0 -0
  145. /package/dist/{chunk-XNJQZLAP.js.map → chunk-I2HTKOOP.js.map} +0 -0
  146. /package/dist/{chunk-3S3PNR5H.js.map → chunk-KXWE62IH.js.map} +0 -0
  147. /package/dist/{chunk-SYJW273H.js.map → chunk-LTYH2L6E.js.map} +0 -0
  148. /package/dist/{chunk-YIMV2KYM.js.map → chunk-N7V3P4V5.js.map} +0 -0
  149. /package/dist/{chunk-OOJCXJBN.js.map → chunk-O52TB5SL.js.map} +0 -0
  150. /package/dist/{chunk-PZKWPXRF.js.map → chunk-PHKU6BZ2.js.map} +0 -0
  151. /package/dist/{chunk-H4GQ2Y24.js.map → chunk-PQHNZ63P.js.map} +0 -0
  152. /package/dist/{chunk-7ZAC2C2U.js.map → chunk-SY5JUJ2X.js.map} +0 -0
  153. /package/dist/{chunk-KQAFEZQX.js.map → chunk-VDX2J7OX.js.map} +0 -0
  154. /package/dist/{chunk-WZDTSBGQ.js.map → chunk-VYMICVRA.js.map} +0 -0
  155. /package/dist/{chunk-3NZAVWU5.js.map → chunk-ZOAAY2OE.js.map} +0 -0
  156. /package/dist/{chunk-IINVXO3U.js.map → chunk-ZWYXSF2T.js.map} +0 -0
  157. /package/dist/{first-start-migration-Q2VB2E2D.js.map → first-start-migration-4NETATFF.js.map} +0 -0
@@ -1,31 +1,33 @@
1
1
  import {
2
2
  SUPPORT_PASSPORT_OWNER_HTTP_ROUTES
3
- } from "./chunk-OOJCXJBN.js";
3
+ } from "./chunk-O52TB5SL.js";
4
4
  import {
5
5
  SUPPORT_PASSPORT_PUBLIC_HTTP_ROUTES
6
- } from "./chunk-YIMV2KYM.js";
7
- import "./chunk-WKJTMXME.js";
6
+ } from "./chunk-N7V3P4V5.js";
7
+ import "./chunk-BPQ7L27U.js";
8
8
  import "./chunk-GDASG7NC.js";
9
9
  import "./chunk-GDB4J2H3.js";
10
- import "./chunk-PMVPCZJZ.js";
10
+ import "./chunk-6433HV72.js";
11
11
  import "./chunk-VQ7B2Q6M.js";
12
12
  import "./chunk-PJSK6OJM.js";
13
- import "./chunk-5QZR2RA3.js";
14
13
  import "./chunk-GNVZQ5JN.js";
15
14
  import "./chunk-YN2UN7N3.js";
15
+ import "./chunk-5QZR2RA3.js";
16
16
  import "./chunk-P5FPO2BR.js";
17
17
  import "./chunk-S4DDLTPX.js";
18
+ import "./chunk-ZVZHG7AI.js";
18
19
  import "./chunk-H7XKCNR6.js";
19
20
  import "./chunk-3F3CVVDS.js";
20
21
  import "./chunk-SOBJ6NEY.js";
21
22
  import "./chunk-QICOU4RY.js";
22
23
  import "./chunk-QTXNS3HB.js";
23
24
  import "./chunk-CVILPI77.js";
25
+ import "./chunk-EIR5VLIH.js";
24
26
  import "./chunk-2HIJHXB3.js";
25
27
  import "./chunk-AQEJKOKI.js";
26
28
  import "./chunk-HTP6XRUI.js";
27
29
  import "./chunk-IISBCCWR.js";
28
- import "./chunk-EIR5VLIH.js";
30
+ import "./chunk-2YA5N2BY.js";
29
31
  import "./chunk-PD66CVSD.js";
30
32
  import "./chunk-LTHVM4XN.js";
31
33
  import "./chunk-EI6V5UXY.js";
@@ -129,9 +131,9 @@ import "./chunk-Z7L72ZHL.js";
129
131
  import "./chunk-4O4TKIXQ.js";
130
132
  import "./chunk-TBBDFYXW.js";
131
133
  import "./chunk-YCVB7X56.js";
132
- import "./chunk-KQAFEZQX.js";
134
+ import "./chunk-VDX2J7OX.js";
133
135
  import "./chunk-WEHSQBFR.js";
134
- import "./chunk-X7Y7WX73.js";
136
+ import "./chunk-DQEMWVMT.js";
135
137
  import "./chunk-J4EB7DNW.js";
136
138
  import "./chunk-BJMBJZ2Y.js";
137
139
  import "./chunk-UKJAGEXH.js";
@@ -143,7 +145,7 @@ import "./chunk-3QL24R5Y.js";
143
145
  import "./chunk-SYOIVK7K.js";
144
146
  import "./chunk-ZN7SMKAK.js";
145
147
  import "./chunk-LNEWDF2A.js";
146
- import "./chunk-XNJQZLAP.js";
148
+ import "./chunk-I2HTKOOP.js";
147
149
  import "./chunk-T42L3S6A.js";
148
150
  import "./chunk-ZRUEP4IK.js";
149
151
  import "./chunk-HZNYJN77.js";
@@ -165,11 +167,11 @@ import "./chunk-JDSVLVCG.js";
165
167
  import "./chunk-HBVPYRDW.js";
166
168
  import "./chunk-5GKPFL3S.js";
167
169
  import "./chunk-JAKIDQB2.js";
168
- import "./chunk-2L7DKNVE.js";
170
+ import "./chunk-FZEEWOI2.js";
169
171
  import "./chunk-UI3NYK34.js";
170
172
  import "./chunk-GCGJW34D.js";
171
- import "./chunk-LC2BDILZ.js";
172
173
  import "./chunk-AREGMX2J.js";
174
+ import "./chunk-LC2BDILZ.js";
173
175
  import "./chunk-LQWOFU6L.js";
174
176
  import "./chunk-P7FMDTKL.js";
175
177
  import "./chunk-MZWSOLMT.js";
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/access-surface-catalog.ts"],"sourcesContent":["/**\n * Static inventory of every handler on the MCP and HTTP access surfaces, with\n * its migration status against the access boundary (issue #1525).\n *\n * The fitness test (`access-surface-catalog.test.ts`) walks this catalog,\n * checks each entry against the live registry, and counts unmigrated handlers.\n * The ratchet (`scripts/check-ratchets.mjs`) reads this file and counts\n * `operation: null` entries so the unmigrated count can only decrease.\n *\n * WHEN MIGRATING A HANDLER (follow-up PRs):\n * 1. Add the operation to `access-operations.ts` via `defineOperation`.\n * 2. Flip its entry here from `operation: null` to `operation: \"<name>\"`.\n * 3. Delete the surface-local validation the handler used to do.\n * 4. Run `node scripts/check-ratchets.mjs --update` to ratchet the count\n * down — the improvement is recorded in `scripts/ratchet-baseline.json`.\n *\n * WHEN ADDING A NEW HANDLER:\n * 1. Add the entry here with `operation: null` (the fitness test will fail\n * until you either migrate it or acknowledge it as unmigrated).\n * 2. Migrate it in the same PR if it carries user input — the boundary's\n * whole point is that no new handler bypasses it.\n */\n\nimport type { OperationName } from \"./access-boundary.js\";\nimport { SUPPORT_PASSPORT_OWNER_HTTP_ROUTES } from \"./support-passport/access-http.js\";\nimport { SUPPORT_PASSPORT_PUBLIC_HTTP_ROUTES } from \"./support-passport/public-http.js\";\n\n/**\n * One row per MCP tool, keyed by the canonical SHORT name (no `engram.`/\n * `remnic.` prefix — both aliases dispatch to the same operation). The name\n * MUST match the tool's short suffix as advertised by `tools/list`.\n */\nexport interface McpToolEntry {\n readonly tool: string;\n readonly operation: OperationName | null;\n}\n\n/**\n * One row per HTTP route that invokes an access-service method. Routes that\n * only serve static assets, SSE streams, or admin console HTML are excluded —\n * they don't carry user-validated request envelopes into the facade.\n */\nexport interface HttpRouteEntry {\n readonly method: \"GET\" | \"POST\" | \"PUT\" | \"PATCH\" | \"DELETE\";\n readonly pathname: string;\n readonly operation: OperationName | null;\n}\n\n// Each tool below corresponds 1:1 to an `engram.*` definition in\n// `EngramMcpServer.tools` (access-mcp.ts). The fitness test asserts the live\n// `tools/list` response matches this list by short name, so a new tool cannot\n// land without either migrating it or acknowledging the unmigrated count.\nexport const MCP_TOOLS: readonly McpToolEntry[] = [\n { tool: \"recall\", operation: \"recall\" },\n { tool: \"recall_explain\", operation: \"recall_explain\" },\n { tool: \"set_coding_context\", operation: \"set_coding_context\" },\n { tool: \"recall_tier_explain\", operation: \"recall_tier_explain\" },\n { tool: \"recall_xray\", operation: \"recall_xray\" },\n { tool: \"wearables_status\", operation: \"wearables_status\" },\n { tool: \"wearables_sync\", operation: \"wearables_sync\" },\n { tool: \"transcript_day\", operation: \"transcript_day\" },\n { tool: \"transcript_search\", operation: \"transcript_search\" },\n { tool: \"transcript_memories\", operation: \"transcript_memories\" },\n { tool: \"meetings_list\", operation: \"meetings_list\" },\n { tool: \"meetings_get\", operation: \"meetings_get\" },\n { tool: \"meetings_build\", operation: \"meetings_build\" },\n { tool: \"action_confidence\", operation: \"action_confidence\" },\n { tool: \"chatgpt_memory_inspector\", operation: \"chatgpt_memory_inspector\" },\n { tool: \"day_summary\", operation: \"day_summary\" },\n { tool: \"capsule_export\", operation: \"capsule_export\" },\n { tool: \"capsule_import\", operation: \"capsule_import\" },\n { tool: \"capsule_list\", operation: \"capsule_list\" },\n { tool: \"memory_governance_run\", operation: \"memory_governance_run\" },\n { tool: \"entity_synthesis_run\", operation: \"entity_synthesis_run\" },\n { tool: \"procedure_mining_run\", operation: \"procedure_mining_run\" },\n { tool: \"pattern_reinforcement_run\", operation: \"pattern_reinforcement_run\" },\n { tool: \"procedural_stats\", operation: \"procedural_stats\" },\n { tool: \"memory_get\", operation: \"memory_get\" },\n { tool: \"memory_timeline\", operation: \"memory_timeline\" },\n { tool: \"memory_store\", operation: \"memory_store\" },\n // Correction Contract (issue #1580) — one plan/apply pipeline.\n { tool: \"memory_correct_plan\", operation: \"memory_correct_plan\" },\n { tool: \"memory_correct_apply\", operation: \"memory_correct_apply\" },\n // Conversational memory inspection + correction (issue #1583) — unmigrated\n // handler dispatched to processChatMessage (not a boundary operation).\n { tool: \"memory_chat\", operation: \"chat_message\" },\n { tool: \"coding_decision\", operation: \"coding_decision\" },\n { tool: \"coding_architecture\", operation: \"coding_architecture\" },\n // codegraph parity tools (issue #1554)\n { tool: \"codegraph_index\", operation: \"codegraph_index\" },\n { tool: \"codegraph_list_projects\", operation: \"codegraph_list_projects\" },\n { tool: \"codegraph_delete_project\", operation: \"codegraph_delete_project\" },\n { tool: \"codegraph_index_status\", operation: \"codegraph_index_status\" },\n { tool: \"codegraph_search_graph\", operation: \"codegraph_search_graph\" },\n { tool: \"codegraph_trace_path\", operation: \"codegraph_trace_path\" },\n { tool: \"codegraph_detect_changes\", operation: \"codegraph_detect_changes\" },\n { tool: \"codegraph_query_graph\", operation: \"codegraph_query_graph\" },\n { tool: \"codegraph_get_schema\", operation: \"codegraph_get_schema\" },\n { tool: \"codegraph_get_snippet\", operation: \"codegraph_get_snippet\" },\n { tool: \"codegraph_get_architecture\", operation: \"codegraph_get_architecture\" },\n { tool: \"codegraph_search_code\", operation: \"codegraph_search_code\" },\n { tool: \"codegraph_manage_adr\", operation: \"codegraph_manage_adr\" },\n { tool: \"codegraph_ingest_traces\", operation: \"codegraph_ingest_traces\" },\n { tool: \"coding_delta\", operation: \"coding_delta\" },\n { tool: \"suggestion_submit\", operation: \"suggestion_submit\" },\n { tool: \"entity_get\", operation: \"entity_get\" },\n { tool: \"review_queue_list\", operation: \"review_queue_list\" },\n { tool: \"observe\", operation: \"observe\" },\n { tool: \"lcm_search\", operation: \"lcm_search\" },\n { tool: \"lcm_compaction_flush\", operation: \"lcm_compaction_flush\" },\n { tool: \"extraction_force_flush\", operation: \"extraction_force_flush\" },\n { tool: \"lcm_compaction_record\", operation: \"lcm_compaction_record\" },\n { tool: \"continuity_audit_generate\", operation: \"continuity_audit_generate\" },\n { tool: \"continuity_incident_open\", operation: \"continuity_incident_open\" },\n { tool: \"continuity_incident_close\", operation: \"continuity_incident_close\" },\n { tool: \"continuity_incident_list\", operation: \"continuity_incident_list\" },\n { tool: \"continuity_loop_add_or_update\", operation: \"continuity_loop_add_or_update\" },\n { tool: \"continuity_loop_review\", operation: \"continuity_loop_review\" },\n { tool: \"identity_anchor_get\", operation: \"identity_anchor_get\" },\n { tool: \"identity_anchor_update\", operation: \"identity_anchor_update\" },\n { tool: \"memory_identity\", operation: \"memory_identity\" },\n { tool: \"work_task\", operation: \"work_task\" },\n { tool: \"work_project\", operation: \"work_project\" },\n { tool: \"work_board\", operation: \"work_board\" },\n { tool: \"shared_context_write_output\", operation: \"shared_context_write_output\" },\n { tool: \"shared_feedback_record\", operation: \"shared_feedback_record\" },\n { tool: \"shared_priorities_append\", operation: \"shared_priorities_append\" },\n { tool: \"shared_context_cross_signals_run\", operation: \"shared_context_cross_signals_run\" },\n { tool: \"shared_context_curate_daily\", operation: \"shared_context_curate_daily\" },\n { tool: \"compounding_weekly_synthesize\", operation: \"compounding_weekly_synthesize\" },\n { tool: \"compounding_promote_candidate\", operation: \"compounding_promote_candidate\" },\n { tool: \"compression_guidelines_optimize\", operation: \"compression_guidelines_optimize\" },\n { tool: \"compression_guidelines_activate\", operation: \"compression_guidelines_activate\" },\n { tool: \"memory_search\", operation: \"memory_search\" },\n { tool: \"external_wiki_search\", operation: \"external_wiki_search\" },\n { tool: \"memory_profile\", operation: \"memory_profile\" },\n { tool: \"memory_entities_list\", operation: \"memory_entities_list\" },\n { tool: \"memory_questions\", operation: \"memory_questions\" },\n { tool: \"memory_last_recall\", operation: \"memory_last_recall\" },\n { tool: \"memory_intent_debug\", operation: \"memory_intent_debug\" },\n { tool: \"memory_qmd_debug\", operation: \"memory_qmd_debug\" },\n { tool: \"memory_graph_explain\", operation: \"memory_graph_explain\" },\n { tool: \"graph_snapshot\", operation: \"graph_snapshot\" },\n { tool: \"memory_feedback\", operation: \"memory_feedback\" },\n { tool: \"memory_promote\", operation: \"memory_promote\" },\n { tool: \"memory_outcome\", operation: \"memory_outcome\" },\n { tool: \"memory_action_apply\", operation: \"memory_action_apply\" },\n { tool: \"context_checkpoint\", operation: \"context_checkpoint\" },\n { tool: \"briefing\", operation: \"briefing\" },\n { tool: \"review_list\", operation: \"review_list\" },\n { tool: \"review_resolve\", operation: \"review_resolve\" },\n { tool: \"contradiction_scan_run\", operation: \"contradiction_scan_run\" },\n { tool: \"memory_summarize_hourly\", operation: \"memory_summarize_hourly\" },\n { tool: \"conversation_index_update\", operation: \"conversation_index_update\" },\n { tool: \"profiling_report\", operation: \"profiling_report\" },\n { tool: \"graph_edge_decay_run\", operation: \"graph_edge_decay_run\" },\n { tool: \"live_connectors_run\", operation: \"live_connectors_run\" },\n { tool: \"peer_list\", operation: \"peer_list\" },\n { tool: \"peer_get\", operation: \"peer_get\" },\n { tool: \"peer_set\", operation: \"peer_set\" },\n { tool: \"peer_delete\", operation: \"peer_delete\" },\n { tool: \"peer_profile_get\", operation: \"peer_profile_get\" },\n { tool: \"peer_forget\", operation: \"peer_forget\" },\n { tool: \"console_state\", operation: \"console_state\" },\n { tool: \"dreams_status\", operation: \"dreams_status\" },\n { tool: \"dreams_run\", operation: \"dreams_run\" },\n { tool: \"support_passport_memory_preview\", operation: \"support_passport_memory_preview\" },\n { tool: \"support_passport_cards_list\", operation: \"support_passport_cards_list\" },\n { tool: \"support_passport_draft_create\", operation: \"support_passport_draft_create\" },\n { tool: \"support_passport_drafts_generate\", operation: \"support_passport_drafts_generate\" },\n { tool: \"support_passport_card_replace\", operation: \"support_passport_card_replace\" },\n { tool: \"support_passport_card_approve\", operation: \"support_passport_card_approve\" },\n { tool: \"support_passport_card_reject\", operation: \"support_passport_card_reject\" },\n { tool: \"support_passport_card_withdraw\", operation: \"support_passport_card_withdraw\" },\n { tool: \"support_passport_grant_create\", operation: \"support_passport_grant_create\" },\n { tool: \"support_passport_grants_list\", operation: \"support_passport_grants_list\" },\n { tool: \"support_passport_grant_revoke\", operation: \"support_passport_grant_revoke\" },\n];\n\n// Each route below corresponds 1:1 to a service-invoking route branch in\n// `EngramAccessHttpServer.handle` (access-http.ts). Pathname patterns use\n// `:param` for path segments. The fitness test asserts each entry resolves\n// against the catalog so a new service route cannot land without either\n// Infrastructure routes (health, the /mcp delegate, admin console, UI assets)\n// carry no user request envelope and are intentionally excluded. The adapters\n// route was migrated through the boundary in issue #1850 round 5 (finding 1):\n// it is now op-gated by `enforceTokenOp(\"adapters_status\")` so a scoped token\n// cannot reach adapter metadata, and is tracked here so the gate is enforced.\nexport const HTTP_ROUTES: readonly HttpRouteEntry[] = [\n { method: \"GET\", pathname: \"/engram/v1/adapters\", operation: \"adapters_status\" },\n { method: \"POST\", pathname: \"/engram/v1/recall\", operation: \"recall\" },\n { method: \"POST\", pathname: \"/engram/v1/external-wikis/search\", operation: \"external_wiki_search\" },\n { method: \"POST\", pathname: \"/engram/v1/memories/search\", operation: \"memory_search\" },\n { method: \"POST\", pathname: \"/engram/v1/coding-context\", operation: \"set_coding_context\" },\n { method: \"POST\", pathname: \"/engram/v1/capsules/export\", operation: \"capsule_export\" },\n { method: \"POST\", pathname: \"/engram/v1/capsules/import\", operation: \"capsule_import\" },\n { method: \"GET\", pathname: \"/engram/v1/offline-sync/snapshot\", operation: \"offline_sync_snapshot\" },\n { method: \"GET\", pathname: \"/engram/v1/offline-sync/capabilities\", operation: \"offline_sync_snapshot\" },\n { method: \"POST\", pathname: \"/engram/v1/offline-sync/snapshot\", operation: \"offline_sync_snapshot\" },\n { method: \"POST\", pathname: \"/engram/v1/offline-sync/files\", operation: \"offline_sync_files\" },\n { method: \"POST\", pathname: \"/engram/v1/offline-sync/file-content\", operation: \"offline_sync_file_content\" },\n { method: \"POST\", pathname: \"/engram/v1/offline-sync/apply-file-content\", operation: \"offline_sync_apply_file_content\" },\n {\n method: \"POST\",\n pathname: \"/engram/v1/offline-sync/convergence-complete\",\n operation: \"offline_sync_apply_file_content\",\n },\n { method: \"POST\", pathname: \"/engram/v1/offline-sync/apply\", operation: \"offline_sync_apply\" },\n { method: \"POST\", pathname: \"/engram/v1/recall/explain\", operation: \"recall_explain\" },\n { method: \"POST\", pathname: \"/engram/v1/action-confidence\", operation: \"action_confidence\" },\n { method: \"GET\", pathname: \"/engram/v1/recall/tier-explain\", operation: \"recall_tier_explain\" },\n { method: \"GET\", pathname: \"/engram/v1/recall/xray\", operation: \"recall_xray\" },\n { method: \"GET\", pathname: \"/engram/v1/namespace/writable\", operation: \"namespace_writable\" },\n { method: \"GET\", pathname: \"/engram/v1/wearables/status\", operation: \"wearables_status\" },\n { method: \"POST\", pathname: \"/engram/v1/wearables/sync\", operation: \"wearables_sync\" },\n { method: \"GET\", pathname: \"/engram/v1/wearables/transcript\", operation: \"transcript_day\" },\n { method: \"GET\", pathname: \"/engram/v1/wearables/transcripts/search\", operation: \"transcript_search\" },\n { method: \"GET\", pathname: \"/engram/v1/wearables/memories\", operation: \"transcript_memories\" },\n { method: \"GET\", pathname: \"/engram/v1/meetings\", operation: \"meetings_list\" },\n { method: \"POST\", pathname: \"/engram/v1/meetings/build\", operation: \"meetings_build\" },\n { method: \"GET\", pathname: \"/engram/v1/meetings/:id\", operation: \"meetings_get\" },\n { method: \"POST\", pathname: \"/engram/v1/observe\", operation: \"observe\" },\n { method: \"POST\", pathname: \"/engram/v1/lcm/search\", operation: \"lcm_search\" },\n { method: \"POST\", pathname: \"/engram/v1/lcm/compaction/flush\", operation: \"lcm_compaction_flush\" },\n { method: \"POST\", pathname: \"/engram/v1/extraction/flush\", operation: \"extraction_force_flush\" },\n { method: \"POST\", pathname: \"/engram/v1/lcm/compaction/record\", operation: \"lcm_compaction_record\" },\n { method: \"GET\", pathname: \"/engram/v1/lcm/status\", operation: \"lcm_status\" },\n { method: \"GET\", pathname: \"/engram/v1/relay/missions/:id\", operation: \"relay_mission_read\" },\n { method: \"POST\", pathname: \"/engram/v1/relay/missions/:id/events\", operation: \"relay_mission_append\" },\n // Correction Contract (issue #1580) — plan/apply/pending.\n { method: \"POST\", pathname: \"/engram/v1/correction/plan\", operation: \"memory_correct_plan\" },\n { method: \"POST\", pathname: \"/engram/v1/correction/apply\", operation: \"memory_correct_apply\" },\n { method: \"GET\", pathname: \"/engram/v1/correction/pending\", operation: \"correction_pending\" },\n { method: \"POST\", pathname: \"/engram/v1/memories\", operation: \"memory_store\" },\n { method: \"POST\", pathname: \"/engram/v1/coding/decisions\", operation: \"coding_decision\" },\n { method: \"POST\", pathname: \"/engram/v1/coding/architecture\", operation: \"coding_architecture\" },\n { method: \"POST\", pathname: \"/engram/v1/coding/delta\", operation: \"coding_delta\" },\n { method: \"POST\", pathname: \"/engram/v1/suggestions\", operation: \"suggestion_submit\" },\n { method: \"GET\", pathname: \"/engram/v1/memories\", operation: \"memory_list\" },\n { method: \"GET\", pathname: \"/engram/v1/recall/timings\", operation: \"recall_timings\" },\n { method: \"GET\", pathname: \"/engram/v1/memories/:id\", operation: \"memory_get\" },\n { method: \"GET\", pathname: \"/engram/v1/memories/:id/timeline\", operation: \"memory_timeline\" },\n { method: \"GET\", pathname: \"/engram/v1/entities\", operation: \"entity_list\" },\n { method: \"GET\", pathname: \"/engram/v1/entities/:id\", operation: \"entity_get\" },\n { method: \"GET\", pathname: \"/engram/v1/review-queue\", operation: \"review_queue_list\" },\n { method: \"GET\", pathname: \"/engram/v1/maintenance\", operation: \"maintenance_status\" },\n { method: \"GET\", pathname: \"/engram/v1/quality\", operation: \"quality_status\" },\n { method: \"GET\", pathname: \"/engram/v1/trust-zones/status\", operation: \"trust_zones_status\" },\n { method: \"GET\", pathname: \"/engram/v1/procedural/stats\", operation: \"procedural_stats\" },\n { method: \"GET\", pathname: \"/engram/v1/trust-zones/records\", operation: \"trust_zones_records\" },\n { method: \"POST\", pathname: \"/engram/v1/review-disposition\", operation: \"review_disposition\" },\n { method: \"POST\", pathname: \"/engram/v1/trust-zones/promote\", operation: \"trust_zones_promote\" },\n { method: \"POST\", pathname: \"/engram/v1/trust-zones/demo-seed\", operation: \"trust_zones_demo_seed\" },\n { method: \"POST\", pathname: \"/v1/citations/observed\", operation: \"citations_observed\" },\n { method: \"GET\", pathname: \"/engram/v1/review/contradictions\", operation: \"review_list\" },\n { method: \"GET\", pathname: \"/engram/v1/review/contradictions/:id\", operation: \"contradiction_detail\" },\n { method: \"POST\", pathname: \"/engram/v1/review/resolve\", operation: \"review_resolve\" },\n { method: \"GET\", pathname: \"/engram/v1/graph/snapshot\", operation: \"graph_snapshot\" },\n { method: \"POST\", pathname: \"/engram/v1/contradiction-scan\", operation: \"contradiction_scan_run\" },\n { method: \"GET\", pathname: \"/engram/v1/console/state\", operation: \"console_state\" },\n { method: \"GET\", pathname: \"/engram/v1/peers\", operation: \"peer_list\" },\n { method: \"GET\", pathname: \"/engram/v1/peers/:id/profile\", operation: \"peer_profile_get\" },\n { method: \"GET\", pathname: \"/engram/v1/peers/:id\", operation: \"peer_get\" },\n { method: \"PUT\", pathname: \"/engram/v1/peers/:id\", operation: \"peer_set\" },\n { method: \"DELETE\", pathname: \"/engram/v1/peers/:id\", operation: \"peer_delete\" },\n { method: \"GET\", pathname: \"/engram/v1/dreams/status\", operation: \"dreams_status\" },\n { method: \"POST\", pathname: \"/engram/v1/dreams/run\", operation: \"dreams_run\" },\n // SSE-only endpoints: carried in the catalog for completeness tracking.\n // The operation registration makes them visible to the boundary; the\n // streaming lifecycle is owned by the HTTP transport (handleGraphEventsSSE).\n { method: \"GET\", pathname: \"/engram/v1/offline-sync/snapshot-stream\", operation: \"offline_sync_snapshot_stream\" },\n { method: \"GET\", pathname: \"/engram/v1/offline-sync/manifest-stream\", operation: \"offline_sync_snapshot_stream\" },\n { method: \"GET\", pathname: \"/engram/v1/graph/events\", operation: \"graph_events\" },\n { method: \"POST\", pathname: \"/engram/v1/chat/message\", operation: \"chat_message\" },\n { method: \"GET\", pathname: \"/engram/v1/chat/events/:id\", operation: \"chat_events\" },\n ...SUPPORT_PASSPORT_OWNER_HTTP_ROUTES,\n ...SUPPORT_PASSPORT_PUBLIC_HTTP_ROUTES,\n];\n\n/**\n * Total unmigrated-handler count across both surfaces. The ratchet baseline\n * tracks this number; it may only decrease. `access-surface-catalog.test.ts`\n * recomputes it from the live catalog and asserts equality, so a catalog edit\n * without a baseline bump (or, ideally, a migration) fails the gate.\n */\nexport function countUnmigratedHandlers(): number {\n let count = 0;\n for (const entry of MCP_TOOLS) {\n if (entry.operation === null) count += 1;\n }\n for (const entry of HTTP_ROUTES) {\n if (entry.operation === null) count += 1;\n }\n return count;\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/access-surface-catalog.ts"],"sourcesContent":["/**\n * Static inventory of every handler on the MCP and HTTP access surfaces, with\n * its migration status against the access boundary (issue #1525).\n *\n * The fitness test (`access-surface-catalog.test.ts`) walks this catalog,\n * checks each entry against the live registry, and counts unmigrated handlers.\n * The ratchet (`scripts/check-ratchets.mjs`) reads this file and counts\n * `operation: null` entries so the unmigrated count can only decrease.\n *\n * WHEN MIGRATING A HANDLER (follow-up PRs):\n * 1. Add the operation to `access-operations.ts` via `defineOperation`.\n * 2. Flip its entry here from `operation: null` to `operation: \"<name>\"`.\n * 3. Delete the surface-local validation the handler used to do.\n * 4. Run `node scripts/check-ratchets.mjs --update` to ratchet the count\n * down — the improvement is recorded in `scripts/ratchet-baseline.json`.\n *\n * WHEN ADDING A NEW HANDLER:\n * 1. Add the entry here with `operation: null` (the fitness test will fail\n * until you either migrate it or acknowledge it as unmigrated).\n * 2. Migrate it in the same PR if it carries user input — the boundary's\n * whole point is that no new handler bypasses it.\n */\n\nimport type { OperationName } from \"./access-boundary.js\";\nimport { SUPPORT_PASSPORT_OWNER_HTTP_ROUTES } from \"./support-passport/access-http.js\";\nimport { SUPPORT_PASSPORT_PUBLIC_HTTP_ROUTES } from \"./support-passport/public-http.js\";\n\n/**\n * One row per MCP tool, keyed by the canonical SHORT name (no `engram.`/\n * `remnic.` prefix — both aliases dispatch to the same operation). The name\n * MUST match the tool's short suffix as advertised by `tools/list`.\n */\nexport interface McpToolEntry {\n readonly tool: string;\n readonly operation: OperationName | null;\n}\n\n/**\n * One row per HTTP route that invokes an access-service method. Routes that\n * only serve static assets, SSE streams, or admin console HTML are excluded —\n * they don't carry user-validated request envelopes into the facade.\n */\nexport interface HttpRouteEntry {\n readonly method: \"GET\" | \"POST\" | \"PUT\" | \"PATCH\" | \"DELETE\";\n readonly pathname: string;\n readonly operation: OperationName | null;\n}\n\n// Each tool below corresponds 1:1 to an `engram.*` definition in\n// `EngramMcpServer.tools` (access-mcp.ts). The fitness test asserts the live\n// `tools/list` response matches this list by short name, so a new tool cannot\n// land without either migrating it or acknowledging the unmigrated count.\nexport const MCP_TOOLS: readonly McpToolEntry[] = [\n { tool: \"recall\", operation: \"recall\" },\n { tool: \"recall_explain\", operation: \"recall_explain\" },\n { tool: \"set_coding_context\", operation: \"set_coding_context\" },\n { tool: \"recall_tier_explain\", operation: \"recall_tier_explain\" },\n { tool: \"recall_xray\", operation: \"recall_xray\" },\n { tool: \"wearables_status\", operation: \"wearables_status\" },\n { tool: \"wearables_sync\", operation: \"wearables_sync\" },\n { tool: \"transcript_day\", operation: \"transcript_day\" },\n { tool: \"transcript_search\", operation: \"transcript_search\" },\n { tool: \"transcript_memories\", operation: \"transcript_memories\" },\n { tool: \"meetings_list\", operation: \"meetings_list\" },\n { tool: \"meetings_get\", operation: \"meetings_get\" },\n { tool: \"meetings_build\", operation: \"meetings_build\" },\n { tool: \"action_confidence\", operation: \"action_confidence\" },\n { tool: \"chatgpt_memory_inspector\", operation: \"chatgpt_memory_inspector\" },\n { tool: \"day_summary\", operation: \"day_summary\" },\n { tool: \"capsule_export\", operation: \"capsule_export\" },\n { tool: \"capsule_import\", operation: \"capsule_import\" },\n { tool: \"capsule_list\", operation: \"capsule_list\" },\n { tool: \"memory_governance_run\", operation: \"memory_governance_run\" },\n { tool: \"entity_synthesis_run\", operation: \"entity_synthesis_run\" },\n { tool: \"procedure_mining_run\", operation: \"procedure_mining_run\" },\n { tool: \"pattern_reinforcement_run\", operation: \"pattern_reinforcement_run\" },\n { tool: \"procedural_stats\", operation: \"procedural_stats\" },\n { tool: \"memory_get\", operation: \"memory_get\" },\n { tool: \"memory_timeline\", operation: \"memory_timeline\" },\n { tool: \"memory_store\", operation: \"memory_store\" },\n // Correction Contract (issue #1580) — one plan/apply pipeline.\n { tool: \"memory_correct_plan\", operation: \"memory_correct_plan\" },\n { tool: \"memory_correct_apply\", operation: \"memory_correct_apply\" },\n // Conversational memory inspection + correction (issue #1583) — unmigrated\n // handler dispatched to processChatMessage (not a boundary operation).\n { tool: \"memory_chat\", operation: \"chat_message\" },\n { tool: \"coding_decision\", operation: \"coding_decision\" },\n { tool: \"coding_architecture\", operation: \"coding_architecture\" },\n // codegraph parity tools (issue #1554)\n { tool: \"codegraph_index\", operation: \"codegraph_index\" },\n { tool: \"codegraph_list_projects\", operation: \"codegraph_list_projects\" },\n { tool: \"codegraph_delete_project\", operation: \"codegraph_delete_project\" },\n { tool: \"codegraph_index_status\", operation: \"codegraph_index_status\" },\n { tool: \"codegraph_search_graph\", operation: \"codegraph_search_graph\" },\n { tool: \"codegraph_trace_path\", operation: \"codegraph_trace_path\" },\n { tool: \"codegraph_detect_changes\", operation: \"codegraph_detect_changes\" },\n { tool: \"codegraph_query_graph\", operation: \"codegraph_query_graph\" },\n { tool: \"codegraph_get_schema\", operation: \"codegraph_get_schema\" },\n { tool: \"codegraph_get_snippet\", operation: \"codegraph_get_snippet\" },\n { tool: \"codegraph_get_architecture\", operation: \"codegraph_get_architecture\" },\n { tool: \"codegraph_search_code\", operation: \"codegraph_search_code\" },\n { tool: \"codegraph_manage_adr\", operation: \"codegraph_manage_adr\" },\n { tool: \"codegraph_ingest_traces\", operation: \"codegraph_ingest_traces\" },\n { tool: \"coding_delta\", operation: \"coding_delta\" },\n { tool: \"suggestion_submit\", operation: \"suggestion_submit\" },\n { tool: \"entity_get\", operation: \"entity_get\" },\n { tool: \"review_queue_list\", operation: \"review_queue_list\" },\n { tool: \"observe\", operation: \"observe\" },\n { tool: \"lcm_search\", operation: \"lcm_search\" },\n { tool: \"lcm_compaction_flush\", operation: \"lcm_compaction_flush\" },\n { tool: \"extraction_force_flush\", operation: \"extraction_force_flush\" },\n { tool: \"lcm_compaction_record\", operation: \"lcm_compaction_record\" },\n { tool: \"continuity_audit_generate\", operation: \"continuity_audit_generate\" },\n { tool: \"continuity_incident_open\", operation: \"continuity_incident_open\" },\n { tool: \"continuity_incident_close\", operation: \"continuity_incident_close\" },\n { tool: \"continuity_incident_list\", operation: \"continuity_incident_list\" },\n { tool: \"continuity_loop_add_or_update\", operation: \"continuity_loop_add_or_update\" },\n { tool: \"continuity_loop_review\", operation: \"continuity_loop_review\" },\n { tool: \"identity_anchor_get\", operation: \"identity_anchor_get\" },\n { tool: \"identity_anchor_update\", operation: \"identity_anchor_update\" },\n { tool: \"memory_identity\", operation: \"memory_identity\" },\n { tool: \"work_task\", operation: \"work_task\" },\n { tool: \"work_project\", operation: \"work_project\" },\n { tool: \"work_board\", operation: \"work_board\" },\n { tool: \"shared_context_write_output\", operation: \"shared_context_write_output\" },\n { tool: \"shared_feedback_record\", operation: \"shared_feedback_record\" },\n { tool: \"shared_priorities_append\", operation: \"shared_priorities_append\" },\n { tool: \"shared_context_cross_signals_run\", operation: \"shared_context_cross_signals_run\" },\n { tool: \"shared_context_curate_daily\", operation: \"shared_context_curate_daily\" },\n { tool: \"compounding_weekly_synthesize\", operation: \"compounding_weekly_synthesize\" },\n { tool: \"compounding_promote_candidate\", operation: \"compounding_promote_candidate\" },\n { tool: \"compression_guidelines_optimize\", operation: \"compression_guidelines_optimize\" },\n { tool: \"compression_guidelines_activate\", operation: \"compression_guidelines_activate\" },\n { tool: \"memory_search\", operation: \"memory_search\" },\n { tool: \"external_wiki_search\", operation: \"external_wiki_search\" },\n { tool: \"memory_profile\", operation: \"memory_profile\" },\n { tool: \"memory_entities_list\", operation: \"memory_entities_list\" },\n { tool: \"memory_questions\", operation: \"memory_questions\" },\n { tool: \"memory_last_recall\", operation: \"memory_last_recall\" },\n { tool: \"memory_intent_debug\", operation: \"memory_intent_debug\" },\n { tool: \"memory_qmd_debug\", operation: \"memory_qmd_debug\" },\n { tool: \"memory_graph_explain\", operation: \"memory_graph_explain\" },\n { tool: \"graph_snapshot\", operation: \"graph_snapshot\" },\n { tool: \"memory_feedback\", operation: \"memory_feedback\" },\n { tool: \"memory_promote\", operation: \"memory_promote\" },\n { tool: \"memory_outcome\", operation: \"memory_outcome\" },\n { tool: \"memory_action_apply\", operation: \"memory_action_apply\" },\n { tool: \"context_checkpoint\", operation: \"context_checkpoint\" },\n { tool: \"briefing\", operation: \"briefing\" },\n { tool: \"review_list\", operation: \"review_list\" },\n { tool: \"review_resolve\", operation: \"review_resolve\" },\n { tool: \"contradiction_scan_run\", operation: \"contradiction_scan_run\" },\n { tool: \"memory_summarize_hourly\", operation: \"memory_summarize_hourly\" },\n { tool: \"conversation_index_update\", operation: \"conversation_index_update\" },\n { tool: \"profiling_report\", operation: \"profiling_report\" },\n { tool: \"graph_edge_decay_run\", operation: \"graph_edge_decay_run\" },\n { tool: \"live_connectors_run\", operation: \"live_connectors_run\" },\n { tool: \"peer_list\", operation: \"peer_list\" },\n { tool: \"peer_get\", operation: \"peer_get\" },\n { tool: \"peer_set\", operation: \"peer_set\" },\n { tool: \"peer_delete\", operation: \"peer_delete\" },\n { tool: \"peer_profile_get\", operation: \"peer_profile_get\" },\n { tool: \"peer_forget\", operation: \"peer_forget\" },\n { tool: \"console_state\", operation: \"console_state\" },\n { tool: \"dreams_status\", operation: \"dreams_status\" },\n { tool: \"dreams_run\", operation: \"dreams_run\" },\n { tool: \"support_passport_memory_preview\", operation: \"support_passport_memory_preview\" },\n { tool: \"support_passport_cards_list\", operation: \"support_passport_cards_list\" },\n { tool: \"support_passport_draft_create\", operation: \"support_passport_draft_create\" },\n { tool: \"support_passport_drafts_generate\", operation: \"support_passport_drafts_generate\" },\n { tool: \"support_passport_card_replace\", operation: \"support_passport_card_replace\" },\n { tool: \"support_passport_card_approve\", operation: \"support_passport_card_approve\" },\n { tool: \"support_passport_card_reject\", operation: \"support_passport_card_reject\" },\n { tool: \"support_passport_card_withdraw\", operation: \"support_passport_card_withdraw\" },\n { tool: \"support_passport_grant_create\", operation: \"support_passport_grant_create\" },\n { tool: \"support_passport_grants_list\", operation: \"support_passport_grants_list\" },\n { tool: \"support_passport_grant_revoke\", operation: \"support_passport_grant_revoke\" },\n];\n\n// Each route below corresponds 1:1 to a service-invoking route branch in\n// `EngramAccessHttpServer.handle` (access-http.ts). Pathname patterns use\n// `:param` for path segments. The fitness test asserts each entry resolves\n// against the catalog so a new service route cannot land without either\n// Infrastructure routes (health, the /mcp delegate, admin console, UI assets)\n// carry no user request envelope and are intentionally excluded. The adapters\n// route was migrated through the boundary in issue #1850 round 5 (finding 1):\n// it is now op-gated by `enforceTokenOp(\"adapters_status\")` so a scoped token\n// cannot reach adapter metadata, and is tracked here so the gate is enforced.\nexport const HTTP_ROUTES: readonly HttpRouteEntry[] = [\n { method: \"GET\", pathname: \"/engram/v1/adapters\", operation: \"adapters_status\" },\n { method: \"POST\", pathname: \"/engram/v1/recall\", operation: \"recall\" },\n { method: \"POST\", pathname: \"/engram/v1/external-wikis/search\", operation: \"external_wiki_search\" },\n { method: \"POST\", pathname: \"/engram/v1/memories/search\", operation: \"memory_search\" },\n { method: \"POST\", pathname: \"/engram/v1/coding-context\", operation: \"set_coding_context\" },\n { method: \"POST\", pathname: \"/engram/v1/capsules/export\", operation: \"capsule_export\" },\n { method: \"POST\", pathname: \"/engram/v1/capsules/import\", operation: \"capsule_import\" },\n { method: \"GET\", pathname: \"/engram/v1/offline-sync/snapshot\", operation: \"offline_sync_snapshot\" },\n { method: \"GET\", pathname: \"/engram/v1/offline-sync/capabilities\", operation: \"offline_sync_snapshot\" },\n { method: \"POST\", pathname: \"/engram/v1/offline-sync/snapshot\", operation: \"offline_sync_snapshot\" },\n { method: \"POST\", pathname: \"/engram/v1/offline-sync/files\", operation: \"offline_sync_files\" },\n { method: \"POST\", pathname: \"/engram/v1/offline-sync/file-content\", operation: \"offline_sync_file_content\" },\n { method: \"POST\", pathname: \"/engram/v1/offline-sync/apply-file-content\", operation: \"offline_sync_apply_file_content\" },\n {\n method: \"POST\",\n pathname: \"/engram/v1/offline-sync/convergence-complete\",\n operation: \"offline_sync_apply_file_content\",\n },\n { method: \"POST\", pathname: \"/engram/v1/offline-sync/apply\", operation: \"offline_sync_apply\" },\n { method: \"POST\", pathname: \"/engram/v1/recall/explain\", operation: \"recall_explain\" },\n { method: \"POST\", pathname: \"/engram/v1/action-confidence\", operation: \"action_confidence\" },\n { method: \"GET\", pathname: \"/engram/v1/recall/tier-explain\", operation: \"recall_tier_explain\" },\n { method: \"GET\", pathname: \"/engram/v1/recall/xray\", operation: \"recall_xray\" },\n { method: \"GET\", pathname: \"/engram/v1/namespace/writable\", operation: \"namespace_writable\" },\n { method: \"GET\", pathname: \"/engram/v1/wearables/status\", operation: \"wearables_status\" },\n { method: \"POST\", pathname: \"/engram/v1/wearables/sync\", operation: \"wearables_sync\" },\n { method: \"GET\", pathname: \"/engram/v1/wearables/transcript\", operation: \"transcript_day\" },\n { method: \"GET\", pathname: \"/engram/v1/wearables/transcripts/search\", operation: \"transcript_search\" },\n { method: \"GET\", pathname: \"/engram/v1/wearables/memories\", operation: \"transcript_memories\" },\n { method: \"GET\", pathname: \"/engram/v1/meetings\", operation: \"meetings_list\" },\n { method: \"POST\", pathname: \"/engram/v1/meetings/build\", operation: \"meetings_build\" },\n { method: \"GET\", pathname: \"/engram/v1/meetings/:id\", operation: \"meetings_get\" },\n { method: \"POST\", pathname: \"/engram/v1/observe\", operation: \"observe\" },\n { method: \"POST\", pathname: \"/engram/v1/lcm/search\", operation: \"lcm_search\" },\n { method: \"POST\", pathname: \"/engram/v1/lcm/compaction/flush\", operation: \"lcm_compaction_flush\" },\n { method: \"POST\", pathname: \"/engram/v1/extraction/flush\", operation: \"extraction_force_flush\" },\n { method: \"POST\", pathname: \"/engram/v1/lcm/compaction/record\", operation: \"lcm_compaction_record\" },\n { method: \"GET\", pathname: \"/engram/v1/lcm/status\", operation: \"lcm_status\" },\n { method: \"GET\", pathname: \"/engram/v1/relay/missions/:id\", operation: \"relay_mission_read\" },\n { method: \"POST\", pathname: \"/engram/v1/relay/missions/:id/events\", operation: \"relay_mission_append\" },\n // Correction Contract (issue #1580) — plan/apply/pending.\n { method: \"POST\", pathname: \"/engram/v1/correction/plan\", operation: \"memory_correct_plan\" },\n { method: \"POST\", pathname: \"/engram/v1/correction/apply\", operation: \"memory_correct_apply\" },\n { method: \"GET\", pathname: \"/engram/v1/correction/pending\", operation: \"correction_pending\" },\n { method: \"POST\", pathname: \"/engram/v1/memories\", operation: \"memory_store\" },\n { method: \"POST\", pathname: \"/engram/v1/coding/decisions\", operation: \"coding_decision\" },\n { method: \"POST\", pathname: \"/engram/v1/coding/architecture\", operation: \"coding_architecture\" },\n { method: \"POST\", pathname: \"/engram/v1/coding/delta\", operation: \"coding_delta\" },\n { method: \"POST\", pathname: \"/engram/v1/suggestions\", operation: \"suggestion_submit\" },\n { method: \"GET\", pathname: \"/engram/v1/memories\", operation: \"memory_list\" },\n { method: \"GET\", pathname: \"/engram/v1/recall/timings\", operation: \"recall_timings\" },\n { method: \"GET\", pathname: \"/engram/v1/memories/:id\", operation: \"memory_get\" },\n { method: \"GET\", pathname: \"/engram/v1/memories/:id/timeline\", operation: \"memory_timeline\" },\n { method: \"GET\", pathname: \"/engram/v1/entities\", operation: \"entity_list\" },\n { method: \"GET\", pathname: \"/engram/v1/entities/:id\", operation: \"entity_get\" },\n { method: \"GET\", pathname: \"/engram/v1/review-queue\", operation: \"review_queue_list\" },\n { method: \"GET\", pathname: \"/engram/v1/maintenance\", operation: \"maintenance_status\" },\n { method: \"GET\", pathname: \"/engram/v1/quality\", operation: \"quality_status\" },\n { method: \"GET\", pathname: \"/engram/v1/trust-zones/status\", operation: \"trust_zones_status\" },\n { method: \"GET\", pathname: \"/engram/v1/procedural/stats\", operation: \"procedural_stats\" },\n { method: \"GET\", pathname: \"/engram/v1/trust-zones/records\", operation: \"trust_zones_records\" },\n { method: \"POST\", pathname: \"/engram/v1/review-disposition\", operation: \"review_disposition\" },\n { method: \"POST\", pathname: \"/engram/v1/trust-zones/promote\", operation: \"trust_zones_promote\" },\n { method: \"POST\", pathname: \"/engram/v1/trust-zones/demo-seed\", operation: \"trust_zones_demo_seed\" },\n { method: \"POST\", pathname: \"/v1/citations/observed\", operation: \"citations_observed\" },\n { method: \"GET\", pathname: \"/engram/v1/review/contradictions\", operation: \"review_list\" },\n { method: \"GET\", pathname: \"/engram/v1/review/contradictions/:id\", operation: \"contradiction_detail\" },\n { method: \"POST\", pathname: \"/engram/v1/review/resolve\", operation: \"review_resolve\" },\n { method: \"GET\", pathname: \"/engram/v1/graph/snapshot\", operation: \"graph_snapshot\" },\n { method: \"POST\", pathname: \"/engram/v1/contradiction-scan\", operation: \"contradiction_scan_run\" },\n { method: \"GET\", pathname: \"/engram/v1/console/state\", operation: \"console_state\" },\n { method: \"GET\", pathname: \"/engram/v1/peers\", operation: \"peer_list\" },\n { method: \"GET\", pathname: \"/engram/v1/peers/:id/profile\", operation: \"peer_profile_get\" },\n { method: \"GET\", pathname: \"/engram/v1/peers/:id\", operation: \"peer_get\" },\n { method: \"PUT\", pathname: \"/engram/v1/peers/:id\", operation: \"peer_set\" },\n { method: \"DELETE\", pathname: \"/engram/v1/peers/:id\", operation: \"peer_delete\" },\n { method: \"GET\", pathname: \"/engram/v1/dreams/status\", operation: \"dreams_status\" },\n { method: \"POST\", pathname: \"/engram/v1/dreams/run\", operation: \"dreams_run\" },\n // SSE-only endpoints: carried in the catalog for completeness tracking.\n // The operation registration makes them visible to the boundary; the\n // streaming lifecycle is owned by the HTTP transport (handleGraphEventsSSE).\n { method: \"GET\", pathname: \"/engram/v1/offline-sync/snapshot-stream\", operation: \"offline_sync_snapshot_stream\" },\n { method: \"GET\", pathname: \"/engram/v1/offline-sync/manifest-stream\", operation: \"offline_sync_snapshot_stream\" },\n { method: \"GET\", pathname: \"/engram/v1/graph/events\", operation: \"graph_events\" },\n { method: \"POST\", pathname: \"/engram/v1/chat/message\", operation: \"chat_message\" },\n { method: \"GET\", pathname: \"/engram/v1/chat/events/:id\", operation: \"chat_events\" },\n ...SUPPORT_PASSPORT_OWNER_HTTP_ROUTES,\n ...SUPPORT_PASSPORT_PUBLIC_HTTP_ROUTES,\n];\n\n/**\n * Total unmigrated-handler count across both surfaces. The ratchet baseline\n * tracks this number; it may only decrease. `access-surface-catalog.test.ts`\n * recomputes it from the live catalog and asserts equality, so a catalog edit\n * without a baseline bump (or, ideally, a migration) fails the gate.\n */\nexport function countUnmigratedHandlers(): number {\n let count = 0;\n for (const entry of MCP_TOOLS) {\n if (entry.operation === null) count += 1;\n }\n for (const entry of HTTP_ROUTES) {\n if (entry.operation === null) count += 1;\n }\n return count;\n}\n"],"mappings":"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","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  DEFAULT_REASONING_MODEL
3
- } from "./chunk-IINVXO3U.js";
3
+ } from "./chunk-ZWYXSF2T.js";
4
4
  import "./chunk-ZKOPY4WW.js";
5
5
  import "./chunk-62OKGIJA.js";
6
6
  import "./chunk-7RAJ3GXO.js";
@@ -33,11 +33,11 @@ import {
33
33
  import "./chunk-HBVPYRDW.js";
34
34
  import "./chunk-5GKPFL3S.js";
35
35
  import "./chunk-JAKIDQB2.js";
36
- import "./chunk-2L7DKNVE.js";
36
+ import "./chunk-FZEEWOI2.js";
37
37
  import "./chunk-UI3NYK34.js";
38
38
  import "./chunk-GCGJW34D.js";
39
- import "./chunk-LC2BDILZ.js";
40
39
  import "./chunk-AREGMX2J.js";
40
+ import "./chunk-LC2BDILZ.js";
41
41
  import "./chunk-LQWOFU6L.js";
42
42
  import "./chunk-P7FMDTKL.js";
43
43
  import "./chunk-EYIEWJNI.js";
@@ -1,5 +1,5 @@
1
1
  import { P as PluginConfig } from './types-CBEAYU76.js';
2
- import { O as Orchestrator } from './orchestrator-CSc9GfQv.js';
2
+ import { O as Orchestrator } from './orchestrator-Bay_AofR.js';
3
3
  import './message-parts/index.js';
4
4
  import './bounded-jsonl-state.js';
5
5
  import './operator-doctor-types.js';
@@ -10,6 +10,7 @@ import './types-continuity.js';
10
10
  import './recall-state.js';
11
11
  import './utils/serialize-mutations.js';
12
12
  import './search/port.js';
13
+ import './included-memories.js';
13
14
  import './briefing.js';
14
15
  import './storage-CGzJGUUu.js';
15
16
  import './corpus-read-cancellation.js';
@@ -3,7 +3,7 @@ import {
3
3
  decryptCapsuleFileInMemory,
4
4
  encryptCapsuleFile,
5
5
  isEncryptedCapsuleFile
6
- } from "./chunk-X7Y7WX73.js";
6
+ } from "./chunk-DQEMWVMT.js";
7
7
  import "./chunk-BJMBJZ2Y.js";
8
8
  import "./chunk-UKJAGEXH.js";
9
9
  import "./chunk-FP2373TW.js";
@@ -15,4 +15,4 @@ export {
15
15
  encryptCapsuleFile,
16
16
  isEncryptedCapsuleFile
17
17
  };
18
- //# sourceMappingURL=capsule-crypto-7FJQINUR.js.map
18
+ //# sourceMappingURL=capsule-crypto-YO5QJ6L3.js.map
@@ -0,0 +1,65 @@
1
+ // src/included-memories.ts
2
+ function legacyBudgetView(raw) {
3
+ const budgets = raw.budgetsApplied;
4
+ if (!budgets || typeof budgets !== "object") return {};
5
+ const record = budgets;
6
+ return {
7
+ includedMemoryIds: record.includedMemoryIds,
8
+ includedMemoryPaths: record.includedMemoryPaths,
9
+ includedMemoryNamespaces: record.includedMemoryNamespaces
10
+ };
11
+ }
12
+ function asStringList(value) {
13
+ return Array.isArray(value) ? value.map((item) => typeof item === "string" ? item : "") : [];
14
+ }
15
+ function asOptionalStringList(value) {
16
+ return Array.isArray(value) ? value.map((item) => typeof item === "string" ? item : void 0) : [];
17
+ }
18
+ function normalizeIncludedMemory(value) {
19
+ if (!value || typeof value !== "object") return void 0;
20
+ const record = value;
21
+ const id = typeof record.id === "string" ? record.id : "";
22
+ const path = typeof record.path === "string" ? record.path : "";
23
+ if (!id && !path) return void 0;
24
+ const namespace = typeof record.namespace === "string" ? record.namespace : void 0;
25
+ return namespace ? { id, path, namespace } : { id, path };
26
+ }
27
+ function coerceIncludedMemories(raw) {
28
+ const source = raw;
29
+ if (Array.isArray(source.includedMemories)) {
30
+ return source.includedMemories.map(normalizeIncludedMemory).filter((item) => item !== void 0);
31
+ }
32
+ const budgets = legacyBudgetView(source);
33
+ const ids = asStringList(source.memoryIds ?? budgets.includedMemoryIds);
34
+ const paths = asStringList(source.resultPaths ?? budgets.includedMemoryPaths);
35
+ const namespaces = asOptionalStringList(
36
+ source.resultNamespaces ?? budgets.includedMemoryNamespaces
37
+ );
38
+ const count = Math.max(ids.length, paths.length);
39
+ const memories = [];
40
+ for (let index = 0; index < count; index += 1) {
41
+ const id = ids[index] ?? "";
42
+ const path = paths[index] ?? "";
43
+ if (!id && !path) continue;
44
+ const namespace = namespaces[index];
45
+ memories.push(namespace ? { id, path, namespace } : { id, path });
46
+ }
47
+ return memories;
48
+ }
49
+ function includedMemoryIds(memories) {
50
+ return memories.map((memory) => memory.id);
51
+ }
52
+ function includedMemoryPaths(memories) {
53
+ return memories.map((memory) => memory.path);
54
+ }
55
+ function includedMemoryNamespaces(memories) {
56
+ return memories.map((memory) => memory.namespace);
57
+ }
58
+
59
+ export {
60
+ coerceIncludedMemories,
61
+ includedMemoryIds,
62
+ includedMemoryPaths,
63
+ includedMemoryNamespaces
64
+ };
65
+ //# sourceMappingURL=chunk-2YA5N2BY.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/included-memories.ts"],"sourcesContent":["export interface IncludedMemory {\n id: string;\n path: string;\n namespace?: string;\n}\n\ntype LegacyIncludedMemorySource = {\n includedMemories?: unknown;\n memoryIds?: unknown;\n resultPaths?: unknown;\n resultNamespaces?: unknown;\n budgetsApplied?: unknown;\n};\n\nfunction legacyBudgetView(raw: LegacyIncludedMemorySource): {\n includedMemoryIds?: unknown;\n includedMemoryPaths?: unknown;\n includedMemoryNamespaces?: unknown;\n} {\n const budgets = raw.budgetsApplied;\n if (!budgets || typeof budgets !== \"object\") return {};\n const record = budgets as Record<string, unknown>;\n return {\n includedMemoryIds: record.includedMemoryIds,\n includedMemoryPaths: record.includedMemoryPaths,\n includedMemoryNamespaces: record.includedMemoryNamespaces,\n };\n}\n\nfunction asStringList(value: unknown): string[] {\n return Array.isArray(value) ? value.map((item) => (typeof item === \"string\" ? item : \"\")) : [];\n}\n\nfunction asOptionalStringList(value: unknown): Array<string | undefined> {\n return Array.isArray(value)\n ? value.map((item) => (typeof item === \"string\" ? item : undefined))\n : [];\n}\n\nfunction normalizeIncludedMemory(value: unknown): IncludedMemory | undefined {\n if (!value || typeof value !== \"object\") return undefined;\n const record = value as { id?: unknown; path?: unknown; namespace?: unknown };\n const id = typeof record.id === \"string\" ? record.id : \"\";\n const path = typeof record.path === \"string\" ? record.path : \"\";\n if (!id && !path) return undefined;\n const namespace = typeof record.namespace === \"string\" ? record.namespace : undefined;\n return namespace ? { id, path, namespace } : { id, path };\n}\n\nexport function coerceIncludedMemories(raw: object): IncludedMemory[] {\n const source = raw as LegacyIncludedMemorySource;\n if (Array.isArray(source.includedMemories)) {\n return source.includedMemories\n .map(normalizeIncludedMemory)\n .filter((item): item is IncludedMemory => item !== undefined);\n }\n\n const budgets = legacyBudgetView(source);\n const ids = asStringList(source.memoryIds ?? budgets.includedMemoryIds);\n const paths = asStringList(source.resultPaths ?? budgets.includedMemoryPaths);\n const namespaces = asOptionalStringList(\n source.resultNamespaces ?? budgets.includedMemoryNamespaces,\n );\n const count = Math.max(ids.length, paths.length);\n const memories: IncludedMemory[] = [];\n for (let index = 0; index < count; index += 1) {\n const id = ids[index] ?? \"\";\n const path = paths[index] ?? \"\";\n if (!id && !path) continue;\n const namespace = namespaces[index];\n memories.push(namespace ? { id, path, namespace } : { id, path });\n }\n return memories;\n}\n\nexport function includedMemoryIds(memories: readonly IncludedMemory[]): string[] {\n return memories.map((memory) => memory.id);\n}\n\nexport function includedMemoryPaths(memories: readonly IncludedMemory[]): string[] {\n return memories.map((memory) => memory.path);\n}\n\nexport function includedMemoryNamespaces(\n memories: readonly IncludedMemory[],\n): Array<string | undefined> {\n return memories.map((memory) => memory.namespace);\n}\n"],"mappings":";AAcA,SAAS,iBAAiB,KAIxB;AACA,QAAM,UAAU,IAAI;AACpB,MAAI,CAAC,WAAW,OAAO,YAAY,SAAU,QAAO,CAAC;AACrD,QAAM,SAAS;AACf,SAAO;AAAA,IACL,mBAAmB,OAAO;AAAA,IAC1B,qBAAqB,OAAO;AAAA,IAC5B,0BAA0B,OAAO;AAAA,EACnC;AACF;AAEA,SAAS,aAAa,OAA0B;AAC9C,SAAO,MAAM,QAAQ,KAAK,IAAI,MAAM,IAAI,CAAC,SAAU,OAAO,SAAS,WAAW,OAAO,EAAG,IAAI,CAAC;AAC/F;AAEA,SAAS,qBAAqB,OAA2C;AACvE,SAAO,MAAM,QAAQ,KAAK,IACtB,MAAM,IAAI,CAAC,SAAU,OAAO,SAAS,WAAW,OAAO,MAAU,IACjE,CAAC;AACP;AAEA,SAAS,wBAAwB,OAA4C;AAC3E,MAAI,CAAC,SAAS,OAAO,UAAU,SAAU,QAAO;AAChD,QAAM,SAAS;AACf,QAAM,KAAK,OAAO,OAAO,OAAO,WAAW,OAAO,KAAK;AACvD,QAAM,OAAO,OAAO,OAAO,SAAS,WAAW,OAAO,OAAO;AAC7D,MAAI,CAAC,MAAM,CAAC,KAAM,QAAO;AACzB,QAAM,YAAY,OAAO,OAAO,cAAc,WAAW,OAAO,YAAY;AAC5E,SAAO,YAAY,EAAE,IAAI,MAAM,UAAU,IAAI,EAAE,IAAI,KAAK;AAC1D;AAEO,SAAS,uBAAuB,KAA+B;AACpE,QAAM,SAAS;AACf,MAAI,MAAM,QAAQ,OAAO,gBAAgB,GAAG;AAC1C,WAAO,OAAO,iBACX,IAAI,uBAAuB,EAC3B,OAAO,CAAC,SAAiC,SAAS,MAAS;AAAA,EAChE;AAEA,QAAM,UAAU,iBAAiB,MAAM;AACvC,QAAM,MAAM,aAAa,OAAO,aAAa,QAAQ,iBAAiB;AACtE,QAAM,QAAQ,aAAa,OAAO,eAAe,QAAQ,mBAAmB;AAC5E,QAAM,aAAa;AAAA,IACjB,OAAO,oBAAoB,QAAQ;AAAA,EACrC;AACA,QAAM,QAAQ,KAAK,IAAI,IAAI,QAAQ,MAAM,MAAM;AAC/C,QAAM,WAA6B,CAAC;AACpC,WAAS,QAAQ,GAAG,QAAQ,OAAO,SAAS,GAAG;AAC7C,UAAM,KAAK,IAAI,KAAK,KAAK;AACzB,UAAM,OAAO,MAAM,KAAK,KAAK;AAC7B,QAAI,CAAC,MAAM,CAAC,KAAM;AAClB,UAAM,YAAY,WAAW,KAAK;AAClC,aAAS,KAAK,YAAY,EAAE,IAAI,MAAM,UAAU,IAAI,EAAE,IAAI,KAAK,CAAC;AAAA,EAClE;AACA,SAAO;AACT;AAEO,SAAS,kBAAkB,UAA+C;AAC/E,SAAO,SAAS,IAAI,CAAC,WAAW,OAAO,EAAE;AAC3C;AAEO,SAAS,oBAAoB,UAA+C;AACjF,SAAO,SAAS,IAAI,CAAC,WAAW,OAAO,IAAI;AAC7C;AAEO,SAAS,yBACd,UAC2B;AAC3B,SAAO,SAAS,IAAI,CAAC,WAAW,OAAO,SAAS;AAClD;","names":[]}
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  SUPPORT_PASSPORT_DRAFT_MAX_CONTENT_CHARACTERS,
3
3
  SUPPORT_PASSPORT_DRAFT_MAX_MEMORIES
4
- } from "./chunk-WKJTMXME.js";
4
+ } from "./chunk-BPQ7L27U.js";
5
5
  import {
6
6
  SUPPORT_PASSPORT_SOURCE_MEMORY_ID_MAX_LENGTH
7
7
  } from "./chunk-XDL5CYZN.js";
@@ -343,4 +343,4 @@ export {
343
343
  parseSupportPassportModelJob,
344
344
  SupportPassportModelBridge
345
345
  };
346
- //# sourceMappingURL=chunk-5S5DUJFJ.js.map
346
+ //# sourceMappingURL=chunk-3IMYRX3W.js.map
@@ -11,7 +11,7 @@ import {
11
11
  } from "./chunk-NOB2T2FC.js";
12
12
  import {
13
13
  parseConfig
14
- } from "./chunk-IINVXO3U.js";
14
+ } from "./chunk-ZWYXSF2T.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-QIZOU3FN.js.map
271
+ //# sourceMappingURL=chunk-5OOTHWGJ.js.map
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  externalWikiSearchOperation
3
- } from "./chunk-3S3PNR5H.js";
3
+ } from "./chunk-KXWE62IH.js";
4
4
  import {
5
5
  memoryStoreRequestSchema
6
- } from "./chunk-IBZQQOM5.js";
6
+ } from "./chunk-DGUVXXAU.js";
7
7
  import {
8
8
  CorrectionContractError,
9
9
  DECISION_SUBCOMMANDS,
10
10
  DELTA_SUBCOMMANDS,
11
11
  defineOperation,
12
12
  isCodegraphToolName
13
- } from "./chunk-WKJTMXME.js";
13
+ } from "./chunk-BPQ7L27U.js";
14
14
  import {
15
15
  serializeMutations,
16
16
  withHeldFileLock
@@ -1818,4 +1818,4 @@ export {
1818
1818
  codegraphIngestTracesOperation,
1819
1819
  REGISTERED_OPERATIONS
1820
1820
  };
1821
- //# sourceMappingURL=chunk-YMQKPSB2.js.map
1821
+ //# sourceMappingURL=chunk-5TF5STAV.js.map
@@ -19,7 +19,7 @@ import {
19
19
  import {
20
20
  decryptCapsuleFileInMemory,
21
21
  isEncryptedCapsuleFile
22
- } from "./chunk-X7Y7WX73.js";
22
+ } from "./chunk-DQEMWVMT.js";
23
23
  import {
24
24
  assertIsDirectoryNotSymlink,
25
25
  assertRealpathInsideRoot,
@@ -294,4 +294,4 @@ function mintForkId(capsuleId, originalId, now) {
294
294
  export {
295
295
  importCapsule
296
296
  };
297
- //# sourceMappingURL=chunk-PMVPCZJZ.js.map
297
+ //# sourceMappingURL=chunk-6433HV72.js.map
@@ -8,7 +8,7 @@ import {
8
8
  } from "./chunk-GDB4J2H3.js";
9
9
  import {
10
10
  importCapsule
11
- } from "./chunk-PMVPCZJZ.js";
11
+ } from "./chunk-6433HV72.js";
12
12
  import {
13
13
  buildCodingGraphInstallHint,
14
14
  tryLoadCodingGraphModule
@@ -16,6 +16,12 @@ import {
16
16
  import {
17
17
  WriteQuarantineStore
18
18
  } from "./chunk-PJSK6OJM.js";
19
+ import {
20
+ trustResultFor
21
+ } from "./chunk-GNVZQ5JN.js";
22
+ import {
23
+ renderEpistemicHedge
24
+ } from "./chunk-YN2UN7N3.js";
19
25
  import {
20
26
  getTrustZoneStoreStatus,
21
27
  isTrustZoneName,
@@ -25,12 +31,6 @@ import {
25
31
  seedTrustZoneDemoDataset,
26
32
  summarizeTrustZonePromotionReadiness
27
33
  } from "./chunk-5QZR2RA3.js";
28
- import {
29
- trustResultFor
30
- } from "./chunk-GNVZQ5JN.js";
31
- import {
32
- renderEpistemicHedge
33
- } from "./chunk-YN2UN7N3.js";
34
34
  import {
35
35
  planSessionTranscriptMigration
36
36
  } from "./chunk-P5FPO2BR.js";
@@ -49,6 +49,9 @@ import {
49
49
  import {
50
50
  ReplicaDivergenceMonitor
51
51
  } from "./chunk-CVILPI77.js";
52
+ import {
53
+ recordMemoryOutcome
54
+ } from "./chunk-EIR5VLIH.js";
52
55
  import {
53
56
  recordObjectiveStateSnapshotsFromObservedMessages
54
57
  } from "./chunk-2HIJHXB3.js";
@@ -56,8 +59,8 @@ import {
56
59
  objectiveStateStoreOverrideForNamespace
57
60
  } from "./chunk-HTP6XRUI.js";
58
61
  import {
59
- recordMemoryOutcome
60
- } from "./chunk-EIR5VLIH.js";
62
+ coerceIncludedMemories
63
+ } from "./chunk-2YA5N2BY.js";
61
64
  import {
62
65
  buildGraphSnapshot
63
66
  } from "./chunk-PD66CVSD.js";
@@ -186,7 +189,7 @@ import {
186
189
  } from "./chunk-JV3C2MNQ.js";
187
190
  import {
188
191
  exportCapsule
189
- } from "./chunk-KQAFEZQX.js";
192
+ } from "./chunk-VDX2J7OX.js";
190
193
  import {
191
194
  evaluateActionConfidence
192
195
  } from "./chunk-Z2YFLXHU.js";
@@ -215,7 +218,7 @@ import {
215
218
  } from "./chunk-LNEWDF2A.js";
216
219
  import {
217
220
  createOfflineSyncManifestStream
218
- } from "./chunk-XNJQZLAP.js";
221
+ } from "./chunk-I2HTKOOP.js";
219
222
  import {
220
223
  offlineSyncStorageForSnapshot
221
224
  } from "./chunk-HZNYJN77.js";
@@ -293,7 +296,7 @@ import {
293
296
  iterateOfflineSyncSnapshotFileRecords,
294
297
  normalizeOfflineSyncChangeset,
295
298
  readOfflineSyncFileContentChunk
296
- } from "./chunk-2L7DKNVE.js";
299
+ } from "./chunk-FZEEWOI2.js";
297
300
  import {
298
301
  validateArchiveRelativePath
299
302
  } from "./chunk-GCGJW34D.js";
@@ -8704,28 +8707,15 @@ function displayResultPath(resultPath, memoryDir, namespace) {
8704
8707
  const rel = path10.relative(root, resultPath);
8705
8708
  return rel && !rel.startsWith("..") && !path10.isAbsolute(rel) ? rel.split(path10.sep).join("/") : resultPath;
8706
8709
  }
8707
- function displaySafeBudgetsApplied(budgetsApplied, memoryDir) {
8708
- if (!budgetsApplied?.includedMemoryPaths) return budgetsApplied;
8709
- return {
8710
- ...budgetsApplied,
8711
- includedMemoryPaths: budgetsApplied.includedMemoryPaths.map(
8712
- (p, i) => displayResultPath(p, memoryDir, budgetsApplied.includedMemoryNamespaces?.[i])
8713
- )
8714
- };
8715
- }
8716
8710
  function displaySafeRecallSnapshot(snapshot, memoryDir) {
8717
- const resultPaths = snapshot.resultPaths?.map(
8718
- (p, i) => displayResultPath(p, memoryDir, snapshot.resultNamespaces?.[i])
8719
- );
8711
+ const includedMemories = coerceIncludedMemories(snapshot).map((memory) => ({
8712
+ ...memory,
8713
+ path: displayResultPath(memory.path, memoryDir, memory.namespace)
8714
+ }));
8720
8715
  const namespaceByPath = /* @__PURE__ */ new Map();
8721
- snapshot.resultPaths?.forEach((p, i) => {
8722
- if (!namespaceByPath.has(p)) namespaceByPath.set(p, snapshot.resultNamespaces?.[i]);
8723
- });
8724
- snapshot.budgetsApplied?.includedMemoryPaths?.forEach((p, i) => {
8725
- if (!namespaceByPath.has(p)) {
8726
- namespaceByPath.set(p, snapshot.budgetsApplied?.includedMemoryNamespaces?.[i]);
8727
- }
8728
- });
8716
+ for (const memory of coerceIncludedMemories(snapshot)) {
8717
+ if (!namespaceByPath.has(memory.path)) namespaceByPath.set(memory.path, memory.namespace);
8718
+ }
8729
8719
  const tierExplain = snapshot.tierExplain?.sourceAnchors ? {
8730
8720
  ...snapshot.tierExplain,
8731
8721
  sourceAnchors: snapshot.tierExplain.sourceAnchors.map((anchor) => ({
@@ -8733,10 +8723,20 @@ function displaySafeRecallSnapshot(snapshot, memoryDir) {
8733
8723
  path: displayResultPath(anchor.path, memoryDir, namespaceByPath.get(anchor.path))
8734
8724
  }))
8735
8725
  } : void 0;
8726
+ const resultPaths = includedMemories.map((memory) => memory.path);
8727
+ const resultNamespaces = includedMemories.map((memory) => memory.namespace);
8736
8728
  return {
8737
8729
  ...snapshot,
8738
- ...resultPaths ? { resultPaths } : {},
8739
- ...snapshot.budgetsApplied ? { budgetsApplied: displaySafeBudgetsApplied(snapshot.budgetsApplied, memoryDir) } : {},
8730
+ includedMemories,
8731
+ resultPaths,
8732
+ resultNamespaces,
8733
+ ...snapshot.budgetsApplied ? {
8734
+ budgetsApplied: {
8735
+ ...snapshot.budgetsApplied,
8736
+ includedMemoryPaths: resultPaths,
8737
+ includedMemoryNamespaces: resultNamespaces
8738
+ }
8739
+ } : {},
8740
8740
  ...tierExplain ? { tierExplain } : {}
8741
8741
  };
8742
8742
  }
@@ -9227,7 +9227,7 @@ async function assembleRecallResponse(deps, params) {
9227
9227
  fallbackUsed: snapshot?.fallbackUsed ?? false,
9228
9228
  sourcesUsed: snapshot?.sourcesUsed ?? [],
9229
9229
  disclosure,
9230
- budgetsApplied: displaySafeBudgetsApplied(snapshot?.budgetsApplied, deps.orchestrator.config.memoryDir),
9230
+ budgetsApplied: snapshot ? displaySafeRecallSnapshot(snapshot, deps.orchestrator.config.memoryDir).budgetsApplied : void 0,
9231
9231
  auditAnomalies,
9232
9232
  budgetWarning: toBudgetWarning(budgetDecision),
9233
9233
  latencyMs: snapshot?.latencyMs ?? Date.now() - startedAt,
@@ -9248,7 +9248,10 @@ var AccessRecallSurface = class {
9248
9248
  deps;
9249
9249
  async buildRecallResponseFromXraySnapshot(options) {
9250
9250
  const memoryIds = options.snapshot.results.map((result) => result.memoryId);
9251
- const resultPaths = options.snapshot.results.map((result) => result.path);
9251
+ const includedMemories = options.snapshot.results.map((result) => ({
9252
+ id: result.memoryId,
9253
+ path: result.path
9254
+ }));
9252
9255
  const namespace = options.snapshot.namespace ? this.deps.resolveNamespace(options.snapshot.namespace) : this.deps.orchestrator.config.defaultNamespace;
9253
9256
  const sourcesUsed = Array.from(
9254
9257
  new Set(options.snapshot.results.map((result) => result.servedBy))
@@ -9272,7 +9275,7 @@ var AccessRecallSurface = class {
9272
9275
  finalContextChars: options.snapshot.budget.used
9273
9276
  },
9274
9277
  latencyMs: Date.now() - options.startedAt,
9275
- resultPaths
9278
+ includedMemories
9276
9279
  };
9277
9280
  const results = await this.deps.serializeRecallResults(
9278
9281
  snapshotForSerialization,
@@ -9449,11 +9452,10 @@ var AccessRecallSurface = class {
9449
9452
  } : null
9450
9453
  );
9451
9454
  const rawExcerpts = rawExcerptsResult ?? void 0;
9452
- const resultNamespaces = snapshot.resultNamespaces ?? [];
9453
- for (let index = 0; index < (snapshot.resultPaths ?? []).length; index += 1) {
9454
- const memoryPath = snapshot.resultPaths?.[index];
9455
- const memoryNamespace = resultNamespaces[index];
9455
+ for (const included of coerceIncludedMemories(snapshot)) {
9456
+ const memoryPath = included.path;
9456
9457
  if (!memoryPath) continue;
9458
+ const memoryNamespace = included.namespace;
9457
9459
  const seenKey = `${memoryNamespace ?? ""}\0${memoryPath}`;
9458
9460
  if (seen.has(seenKey)) continue;
9459
9461
  const resolved = await readResultPath(memoryPath, memoryNamespace);
@@ -17668,4 +17670,4 @@ export {
17668
17670
  EngramAccessService,
17669
17671
  AccessAdminOpsSurface
17670
17672
  };
17671
- //# sourceMappingURL=chunk-WKJTMXME.js.map
17673
+ //# sourceMappingURL=chunk-BPQ7L27U.js.map