@remnic/core 10.0.49 → 10.0.51

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 (415) hide show
  1. package/dist/access-admin-ops-surface.js +49 -48
  2. package/dist/access-authorization-probe.js +50 -49
  3. package/dist/access-boundary.d.ts +6 -1
  4. package/dist/access-boundary.d.ts.map +1 -1
  5. package/dist/access-boundary.js +49 -48
  6. package/dist/access-cli.js +120 -119
  7. package/dist/access-cli.js.map +1 -1
  8. package/dist/access-errors.d.ts.map +1 -1
  9. package/dist/access-errors.js +1 -1
  10. package/dist/access-extraction-force-flush.js +49 -48
  11. package/dist/access-http-briefing.d.ts +2 -0
  12. package/dist/access-http-briefing.d.ts.map +1 -1
  13. package/dist/access-http-briefing.js +50 -49
  14. package/dist/access-http-query.js +51 -50
  15. package/dist/access-http.d.ts.map +1 -1
  16. package/dist/access-http.js +70 -69
  17. package/dist/access-identity-continuity-surface.js +49 -48
  18. package/dist/access-lcm-surface.js +49 -48
  19. package/dist/access-mcp.js +60 -59
  20. package/dist/access-memory-search-fanout.js +2 -2
  21. package/dist/access-namespace-preflight.js +49 -48
  22. package/dist/access-observe-write-category.d.ts +1 -1
  23. package/dist/access-observe-write-category.d.ts.map +1 -1
  24. package/dist/access-observe-write-category.js +10 -10
  25. package/dist/access-observe-write-surface.d.ts.map +1 -1
  26. package/dist/access-observe-write-surface.js +49 -48
  27. package/dist/access-offline-manifest.js +6 -6
  28. package/dist/access-operations-batch.js +50 -49
  29. package/dist/access-operations.js +57 -56
  30. package/dist/access-recall-concurrency.js +49 -48
  31. package/dist/access-recall-diagnostics.js +2 -2
  32. package/dist/access-recall-response.js +49 -48
  33. package/dist/access-recall-surface.js +49 -48
  34. package/dist/access-schema.d.ts +245 -773
  35. package/dist/access-schema.d.ts.map +1 -1
  36. package/dist/access-schema.js +6 -6
  37. package/dist/access-service.d.ts +5 -0
  38. package/dist/access-service.d.ts.map +1 -1
  39. package/dist/access-service.js +49 -48
  40. package/dist/access-surface-catalog.js +51 -50
  41. package/dist/access-surface-catalog.js.map +1 -1
  42. package/dist/access-token-capabilities.js +2 -2
  43. package/dist/active-recall.js +16 -16
  44. package/dist/{auto-sync-BNCBMU6H.js → auto-sync-UQQ6YJSB.js} +3 -3
  45. package/dist/briefing-deadline.d.ts +7 -0
  46. package/dist/briefing-deadline.d.ts.map +1 -0
  47. package/dist/briefing-deadline.js +13 -0
  48. package/dist/briefing-window.d.ts +12 -4
  49. package/dist/briefing-window.d.ts.map +1 -1
  50. package/dist/briefing-window.js +3 -1
  51. package/dist/briefing.d.ts +2 -0
  52. package/dist/briefing.d.ts.map +1 -1
  53. package/dist/briefing.js +12 -11
  54. package/dist/buffer.js +3 -3
  55. package/dist/calibration.js +2 -2
  56. package/dist/{capsule-merge-RNQUP2VL.js → capsule-merge-D4BTIJGK.js} +3 -3
  57. package/dist/causal-consolidation.js +11 -11
  58. package/dist/{chunk-ESDOQEJM.js → chunk-2AKIVSHP.js} +2 -2
  59. package/dist/{chunk-BWF3KNSQ.js → chunk-2EXF6IIB.js} +2 -2
  60. package/dist/{chunk-AGCEJDG2.js → chunk-2ONKXEC7.js} +3 -3
  61. package/dist/{chunk-3NYIXVCT.js → chunk-2S6JADBB.js} +2 -2
  62. package/dist/chunk-2S6JADBB.js.map +1 -0
  63. package/dist/{chunk-ZSEFGDCI.js → chunk-2TGIKMMZ.js} +2 -2
  64. package/dist/{chunk-MCS4LIXP.js → chunk-43TUWQNR.js} +2 -2
  65. package/dist/{chunk-Q6PYCPHO.js → chunk-44EUCSG4.js} +2 -2
  66. package/dist/{chunk-2J6BIOVN.js → chunk-4FM35YIA.js} +3 -3
  67. package/dist/{chunk-2NLCDNGA.js → chunk-564YP3DW.js} +2 -2
  68. package/dist/{chunk-YY6PWFUC.js → chunk-6ZAU7LAR.js} +3 -3
  69. package/dist/{chunk-HCPVL6SF.js → chunk-72CBJ5VP.js} +3 -3
  70. package/dist/{chunk-AF4UIHON.js → chunk-74AY3S7U.js} +9 -9
  71. package/dist/{chunk-N6EM7ESC.js → chunk-75BK4XGV.js} +27 -19
  72. package/dist/chunk-75BK4XGV.js.map +1 -0
  73. package/dist/{chunk-5IDQVE4U.js → chunk-A3UFV4K3.js} +6 -6
  74. package/dist/{chunk-LWRIGKFM.js → chunk-A5L5KGDI.js} +19 -1
  75. package/dist/chunk-A5L5KGDI.js.map +1 -0
  76. package/dist/{chunk-RZDDNH63.js → chunk-A6JDT6QF.js} +27 -15
  77. package/dist/chunk-A6JDT6QF.js.map +1 -0
  78. package/dist/{chunk-XFND63OB.js → chunk-AHGOOZUC.js} +2 -2
  79. package/dist/{chunk-A7AISUJI.js → chunk-AJG2TAMR.js} +2 -2
  80. package/dist/{chunk-2BY56HE6.js → chunk-AZLD4CKG.js} +36 -36
  81. package/dist/{chunk-E47UQBYW.js → chunk-B35EQQ7L.js} +3 -3
  82. package/dist/{chunk-E6UNM67F.js → chunk-B6SPPYGJ.js} +2 -2
  83. package/dist/{chunk-CMOYD5CA.js → chunk-CCL2OXFO.js} +2 -2
  84. package/dist/{chunk-SVJ5JVZO.js → chunk-CK6GCGMX.js} +4 -4
  85. package/dist/{chunk-QZK6HG4J.js → chunk-DF6ZF2BN.js} +3 -3
  86. package/dist/{chunk-CPBYKOTC.js → chunk-DJFULNXK.js} +4 -4
  87. package/dist/{chunk-VGRBKEBH.js → chunk-DQOGZZJA.js} +3 -3
  88. package/dist/{chunk-YB3WN6XA.js → chunk-EC2KVA27.js} +12 -12
  89. package/dist/{chunk-FRXS6SC7.js → chunk-EKUI7I2X.js} +20 -4
  90. package/dist/chunk-EKUI7I2X.js.map +1 -0
  91. package/dist/{chunk-YNDLCWXS.js → chunk-EZ25VE3G.js} +4 -4
  92. package/dist/{chunk-WIBWONL4.js → chunk-EZS6QJNC.js} +2 -2
  93. package/dist/{chunk-C7WDWD35.js → chunk-FNNGWN3O.js} +5 -5
  94. package/dist/{chunk-PBWJVRKE.js → chunk-FT75AQ74.js} +3 -3
  95. package/dist/{chunk-VY6BD5KB.js → chunk-G6A3SGCE.js} +14 -12
  96. package/dist/chunk-G6A3SGCE.js.map +1 -0
  97. package/dist/{chunk-O4CA53UY.js → chunk-GBGU5OZP.js} +111 -104
  98. package/dist/chunk-GBGU5OZP.js.map +1 -0
  99. package/dist/{chunk-WJCAAVZX.js → chunk-GE3ZX6YK.js} +2 -2
  100. package/dist/{chunk-3PVKV3XL.js → chunk-HCIRR3BA.js} +3 -3
  101. package/dist/{chunk-BJTFLP3J.js → chunk-HEF4BRMT.js} +3 -3
  102. package/dist/{chunk-BMG3SAXA.js → chunk-HQUYENKK.js} +9 -12
  103. package/dist/chunk-HQUYENKK.js.map +1 -0
  104. package/dist/{chunk-6UDLN4IA.js → chunk-I6ORDT54.js} +2 -2
  105. package/dist/{chunk-N5PISU26.js → chunk-IN6U2BS5.js} +2 -2
  106. package/dist/{chunk-3INLTKTW.js → chunk-IUQXRRJB.js} +4 -4
  107. package/dist/{chunk-6W3QH3QW.js → chunk-JIJAWTRK.js} +388 -292
  108. package/dist/chunk-JIJAWTRK.js.map +1 -0
  109. package/dist/{chunk-4KS4IHKH.js → chunk-JX3E4XCW.js} +2 -2
  110. package/dist/{chunk-SW3WHVKN.js → chunk-KAJYSO3U.js} +2 -2
  111. package/dist/{chunk-D76AHITY.js → chunk-KETS5A62.js} +2 -2
  112. package/dist/{chunk-LCHFINL4.js → chunk-KIWO4327.js} +2 -2
  113. package/dist/{chunk-FC3ZFEXF.js → chunk-KJ3MDX4V.js} +2 -2
  114. package/dist/{chunk-7LCGFUMB.js → chunk-KQAFEZQX.js} +4 -4
  115. package/dist/{chunk-6TIVVOVU.js → chunk-L3EFYRYK.js} +9 -9
  116. package/dist/{chunk-3MUKQQ7A.js → chunk-LGEH473S.js} +24 -29
  117. package/dist/chunk-LGEH473S.js.map +1 -0
  118. package/dist/{chunk-X52SXKVC.js → chunk-LMB47UM6.js} +2 -2
  119. package/dist/{chunk-A3WXV7YU.js → chunk-LWMLBVGB.js} +2 -2
  120. package/dist/{chunk-KMTMMBEB.js → chunk-MC7PXJDP.js} +7 -7
  121. package/dist/{chunk-NMOEOQV4.js → chunk-MUNYUSBU.js} +2 -2
  122. package/dist/{chunk-VKUMKVEU.js → chunk-OCRLJJOV.js} +5 -5
  123. package/dist/{chunk-XSJL62LE.js → chunk-ON77FQXH.js} +2 -2
  124. package/dist/{chunk-C3HRYVGD.js → chunk-POJRFSJM.js} +3 -3
  125. package/dist/{chunk-LKRXGOQW.js → chunk-QA3Y2O6H.js} +2 -2
  126. package/dist/{chunk-23ZLN5X6.js → chunk-QT5MGENX.js} +14 -6
  127. package/dist/chunk-QT5MGENX.js.map +1 -0
  128. package/dist/{chunk-QFTNWDJ6.js → chunk-RA7YRL6H.js} +2 -2
  129. package/dist/{chunk-WQFHHJWK.js → chunk-RJDYDF5K.js} +4 -4
  130. package/dist/{chunk-E3DL3CAL.js → chunk-ROAKLYOL.js} +2 -2
  131. package/dist/{chunk-YFXRLRKP.js → chunk-S4OZKPBS.js} +7 -11
  132. package/dist/{chunk-YFXRLRKP.js.map → chunk-S4OZKPBS.js.map} +1 -1
  133. package/dist/{chunk-NWIT3U2N.js → chunk-S5CQI2KF.js} +2 -2
  134. package/dist/{chunk-P6P35FY4.js → chunk-SDESKFKT.js} +2 -2
  135. package/dist/{chunk-OD7ZXCUF.js → chunk-SFRBUBUZ.js} +10 -10
  136. package/dist/{chunk-7XFQSQYS.js → chunk-SHNM7RIT.js} +5 -4
  137. package/dist/chunk-SHNM7RIT.js.map +1 -0
  138. package/dist/{chunk-NH37SP6V.js → chunk-SJD334AG.js} +81 -78
  139. package/dist/chunk-SJD334AG.js.map +1 -0
  140. package/dist/{chunk-O7GNSHFF.js → chunk-SPTPBKZX.js} +2 -2
  141. package/dist/{chunk-HI53EK3Y.js → chunk-TC55M5PO.js} +2 -2
  142. package/dist/{chunk-SA6P2KS3.js → chunk-TEH5MDX5.js} +33 -17
  143. package/dist/chunk-TEH5MDX5.js.map +1 -0
  144. package/dist/{chunk-FOKTW6GY.js → chunk-UCLJTGP3.js} +2 -2
  145. package/dist/{chunk-FYZXZUGU.js → chunk-UQBOPCDK.js} +2 -2
  146. package/dist/{chunk-SUKPM6DV.js → chunk-UWMZT2TY.js} +47 -4
  147. package/dist/chunk-UWMZT2TY.js.map +1 -0
  148. package/dist/{chunk-754XN6LX.js → chunk-V27FK6D6.js} +2 -2
  149. package/dist/{chunk-DM6SOROF.js → chunk-V6Z4NAJZ.js} +2 -2
  150. package/dist/{chunk-5FNZ3G6X.js → chunk-VKQI47DJ.js} +4 -4
  151. package/dist/{chunk-NUK5XU3P.js → chunk-VUMWVYMR.js} +28 -13
  152. package/dist/chunk-VUMWVYMR.js.map +1 -0
  153. package/dist/{chunk-MPJDQC4G.js → chunk-WJCXUE2J.js} +2 -2
  154. package/dist/{chunk-VCBS5GRQ.js → chunk-WY66J4PI.js} +2 -2
  155. package/dist/chunk-X2KO4FK5.js +40 -0
  156. package/dist/chunk-X2KO4FK5.js.map +1 -0
  157. package/dist/{chunk-OOOX5C4X.js → chunk-XL2EE5W3.js} +4 -4
  158. package/dist/{chunk-V4GPFCJ7.js → chunk-XWJUFER3.js} +3 -3
  159. package/dist/{chunk-CZVNOTLR.js → chunk-XXR4A33N.js} +2 -2
  160. package/dist/{chunk-CRJX4OMN.js → chunk-Y3T5KQCR.js} +2 -2
  161. package/dist/{chunk-KNCR7APE.js → chunk-Y77FXULH.js} +8 -8
  162. package/dist/{chunk-2AV2U2SZ.js → chunk-YDIOMDBW.js} +2 -2
  163. package/dist/{chunk-IG747LRN.js → chunk-YO2JEX2Z.js} +2 -2
  164. package/dist/{chunk-HDT3DMUF.js → chunk-ZKK3VMWU.js} +2 -2
  165. package/dist/cli.js +92 -91
  166. package/dist/coding/export-okf-codegraph.js +9 -9
  167. package/dist/compounding/engine.js +11 -11
  168. package/dist/config.js +16 -16
  169. package/dist/connectors/codex-materialize-runner.js +10 -10
  170. package/dist/connectors/index.js +14 -14
  171. package/dist/consolidation-provenance-check.js +4 -4
  172. package/dist/consolidation-undo.js +2 -2
  173. package/dist/convergence-refresh.js +12 -12
  174. package/dist/corpus-watermark.js +14 -14
  175. package/dist/correction/passive-correction-notifications.d.ts +1 -1
  176. package/dist/correction/passive-correction-notifications.d.ts.map +1 -1
  177. package/dist/dashboard-runtime.js +2 -2
  178. package/dist/deep-recall-config.js +2 -2
  179. package/dist/deep-recall-http-glue.js +9 -9
  180. package/dist/{entity-canonical-id-migration-2YOLMOFC.js → entity-canonical-id-migration-F3JVG6K6.js} +3 -3
  181. package/dist/entity-canonical-id-migration-F3JVG6K6.js.map +1 -0
  182. package/dist/entity-retrieval.js +11 -11
  183. package/dist/explicit-capture.js +2 -2
  184. package/dist/external-wiki-access.js +50 -49
  185. package/dist/extraction-span-wire.d.ts.map +1 -1
  186. package/dist/extraction-span-wire.js +1 -1
  187. package/dist/extraction.js +22 -22
  188. package/dist/{first-start-migration-QVD22WWS.js → first-start-migration-A6PHIBUQ.js} +4 -4
  189. package/dist/harmonic-retrieval.js +10 -10
  190. package/dist/index.d.ts +1 -0
  191. package/dist/index.d.ts.map +1 -1
  192. package/dist/index.js +143 -135
  193. package/dist/lcm/engine.js +2 -2
  194. package/dist/lcm/index.js +5 -5
  195. package/dist/local-llm.js +2 -2
  196. package/dist/location/index.js +16 -16
  197. package/dist/location/tagging.d.ts +7 -5
  198. package/dist/location/tagging.d.ts.map +1 -1
  199. package/dist/maintenance/memory-governance.js +10 -10
  200. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +10 -10
  201. package/dist/maintenance/rebuild-memory-projection-runner.js +12 -12
  202. package/dist/maintenance/rebuild-memory-projection.js +11 -11
  203. package/dist/memory-browse-http-glue.js +2 -2
  204. package/dist/memory-browse-operations.js +50 -49
  205. package/dist/namespaces/migrate.js +11 -11
  206. package/dist/namespaces/storage.js +10 -10
  207. package/dist/offline-sync-file-io.d.ts +15 -0
  208. package/dist/offline-sync-file-io.d.ts.map +1 -1
  209. package/dist/offline-sync-file-io.js +9 -1
  210. package/dist/offline-sync-impression-drain.js +2 -2
  211. package/dist/offline-sync-snapshot-stream.js +4 -4
  212. package/dist/offline-sync-upload-staging.js +2 -2
  213. package/dist/offline-sync.d.ts.map +1 -1
  214. package/dist/offline-sync.js +3 -3
  215. package/dist/operator-doctor-corpus.js +17 -17
  216. package/dist/operator-doctor-replica.js +4 -4
  217. package/dist/operator-toolkit.js +29 -29
  218. package/dist/orchestration/maintenance.js +25 -25
  219. package/dist/orchestrator.d.ts +1 -0
  220. package/dist/orchestrator.d.ts.map +1 -1
  221. package/dist/orchestrator.js +122 -121
  222. package/dist/page-versioning.js +2 -2
  223. package/dist/recall-navigation-http-glue.js +2 -2
  224. package/dist/recall-navigation-operations.js +50 -49
  225. package/dist/recall-navigation.js +49 -48
  226. package/dist/relay/mission.d.ts +731 -3403
  227. package/dist/relay/mission.d.ts.map +1 -1
  228. package/dist/replica-divergence.js +3 -3
  229. package/dist/resume-bundles.js +17 -17
  230. package/dist/schemas.d.ts +346 -1771
  231. package/dist/schemas.d.ts.map +1 -1
  232. package/dist/semantic-consolidation.js +15 -15
  233. package/dist/semantic-rule-promotion.js +10 -10
  234. package/dist/semantic-rule-verifier.js +10 -10
  235. package/dist/shared-context/manager.d.ts +13 -33
  236. package/dist/shared-context/manager.d.ts.map +1 -1
  237. package/dist/source-agent-qualifier.js +18 -18
  238. package/dist/standup/build.js +11 -11
  239. package/dist/storage/entity-canonical-id-migration-adapter.d.ts +1 -0
  240. package/dist/storage/entity-canonical-id-migration-adapter.d.ts.map +1 -1
  241. package/dist/storage/entity-canonical-id-migration.d.ts +7 -0
  242. package/dist/storage/entity-canonical-id-migration.d.ts.map +1 -1
  243. package/dist/storage/entity-canonical-id-references.d.ts +2 -0
  244. package/dist/storage/entity-canonical-id-references.d.ts.map +1 -1
  245. package/dist/storage/entity-migration-completion-cache.d.ts +46 -0
  246. package/dist/storage/entity-migration-completion-cache.d.ts.map +1 -0
  247. package/dist/storage/entity-store.d.ts +1 -8
  248. package/dist/storage/entity-store.d.ts.map +1 -1
  249. package/dist/storage/memory-read-store.d.ts +3 -2
  250. package/dist/storage/memory-read-store.d.ts.map +1 -1
  251. package/dist/storage/windowed-memory-read.d.ts +6 -0
  252. package/dist/storage/windowed-memory-read.d.ts.map +1 -1
  253. package/dist/storage.d.ts +2 -0
  254. package/dist/storage.d.ts.map +1 -1
  255. package/dist/storage.js +9 -9
  256. package/dist/summarizer.js +3 -3
  257. package/dist/support-passport/access-operations.d.ts +51 -51
  258. package/dist/support-passport/contracts.d.ts +85 -126
  259. package/dist/support-passport/contracts.d.ts.map +1 -1
  260. package/dist/support-passport/generated-batch.d.ts +3 -17
  261. package/dist/support-passport/generated-batch.d.ts.map +1 -1
  262. package/dist/support-passport/grant-contracts.d.ts +75 -381
  263. package/dist/support-passport/grant-contracts.d.ts.map +1 -1
  264. package/dist/support-passport/index.js +52 -51
  265. package/dist/support-passport/model-audit.d.ts +17 -82
  266. package/dist/support-passport/model-audit.d.ts.map +1 -1
  267. package/dist/support-passport/model-bridge.d.ts +12 -51
  268. package/dist/support-passport/model-bridge.d.ts.map +1 -1
  269. package/dist/support-passport/model-contracts.d.ts +53 -192
  270. package/dist/support-passport/model-contracts.d.ts.map +1 -1
  271. package/dist/tokens.js +3 -3
  272. package/dist/transfer/capsule-export.js +2 -2
  273. package/dist/transfer/capsule-import.js +4 -4
  274. package/dist/transfer/export-okf.js +10 -10
  275. package/dist/transfer/types.d.ts +32 -737
  276. package/dist/transfer/types.d.ts.map +1 -1
  277. package/dist/verified-recall.js +10 -10
  278. package/dist/who-knows-cli.js +12 -12
  279. package/dist/who-knows.js +11 -11
  280. package/package.json +3 -4
  281. package/src/access-boundary.test.ts +14 -0
  282. package/src/access-boundary.ts +48 -42
  283. package/src/access-category-alias.test.ts +9 -7
  284. package/src/access-errors.test.ts +21 -9
  285. package/src/access-errors.ts +45 -31
  286. package/src/access-http-briefing.ts +4 -0
  287. package/src/access-http.test.ts +41 -12
  288. package/src/access-http.ts +6 -0
  289. package/src/access-observe-write-category.ts +1 -1
  290. package/src/access-observe-write-surface.ts +24 -19
  291. package/src/access-operations-batch.ts +18 -2
  292. package/src/access-schema.ts +13 -17
  293. package/src/access-service.ts +5 -0
  294. package/src/briefing-abort.test.ts +173 -0
  295. package/src/briefing-deadline.test.ts +84 -0
  296. package/src/briefing-deadline.ts +33 -0
  297. package/src/briefing-window-abort.test.ts +47 -0
  298. package/src/briefing-window.ts +33 -4
  299. package/src/briefing.ts +23 -16
  300. package/src/correction/passive-correction-notifications-abort.test.ts +42 -0
  301. package/src/correction/passive-correction-notifications.ts +4 -0
  302. package/src/entity-lazy-compatibility.test.ts +229 -0
  303. package/src/entity-migration-completion-notification.test.ts +148 -0
  304. package/src/extraction-scope-source-agent.test.ts +6 -6
  305. package/src/extraction-span-wire.test.ts +28 -0
  306. package/src/extraction-span-wire.ts +34 -6
  307. package/src/index.ts +1 -1
  308. package/src/location/tagging.ts +14 -12
  309. package/src/offline-sync-file-io.ts +61 -2
  310. package/src/offline-sync.test.ts +313 -20
  311. package/src/offline-sync.ts +43 -21
  312. package/src/orchestrator-init.test.ts +49 -1
  313. package/src/orchestrator.ts +9 -8
  314. package/src/storage/entity-canonical-id-migration-adapter.ts +16 -1
  315. package/src/storage/entity-canonical-id-migration.ts +19 -10
  316. package/src/storage/entity-canonical-id-references.ts +24 -0
  317. package/src/storage/entity-migration-completion-cache.nofollow.test.ts +223 -0
  318. package/src/storage/entity-migration-completion-cache.ts +153 -0
  319. package/src/storage/entity-store.ts +58 -86
  320. package/src/storage/memory-read-store.ts +9 -3
  321. package/src/storage/windowed-memory-read.ts +8 -0
  322. package/src/storage-startup-nonblocking-migration.test.ts +183 -0
  323. package/src/storage.ts +7 -2
  324. package/src/testing/subjects/entity-migration-completion-cache.test.ts +90 -0
  325. package/dist/chunk-23ZLN5X6.js.map +0 -1
  326. package/dist/chunk-3MUKQQ7A.js.map +0 -1
  327. package/dist/chunk-3NYIXVCT.js.map +0 -1
  328. package/dist/chunk-6W3QH3QW.js.map +0 -1
  329. package/dist/chunk-7XFQSQYS.js.map +0 -1
  330. package/dist/chunk-BMG3SAXA.js.map +0 -1
  331. package/dist/chunk-FRXS6SC7.js.map +0 -1
  332. package/dist/chunk-LWRIGKFM.js.map +0 -1
  333. package/dist/chunk-N6EM7ESC.js.map +0 -1
  334. package/dist/chunk-NH37SP6V.js.map +0 -1
  335. package/dist/chunk-NUK5XU3P.js.map +0 -1
  336. package/dist/chunk-O4CA53UY.js.map +0 -1
  337. package/dist/chunk-RZDDNH63.js.map +0 -1
  338. package/dist/chunk-SA6P2KS3.js.map +0 -1
  339. package/dist/chunk-SUKPM6DV.js.map +0 -1
  340. package/dist/chunk-VY6BD5KB.js.map +0 -1
  341. /package/dist/{auto-sync-BNCBMU6H.js.map → auto-sync-UQQ6YJSB.js.map} +0 -0
  342. /package/dist/{entity-canonical-id-migration-2YOLMOFC.js.map → briefing-deadline.js.map} +0 -0
  343. /package/dist/{capsule-merge-RNQUP2VL.js.map → capsule-merge-D4BTIJGK.js.map} +0 -0
  344. /package/dist/{chunk-ESDOQEJM.js.map → chunk-2AKIVSHP.js.map} +0 -0
  345. /package/dist/{chunk-BWF3KNSQ.js.map → chunk-2EXF6IIB.js.map} +0 -0
  346. /package/dist/{chunk-AGCEJDG2.js.map → chunk-2ONKXEC7.js.map} +0 -0
  347. /package/dist/{chunk-ZSEFGDCI.js.map → chunk-2TGIKMMZ.js.map} +0 -0
  348. /package/dist/{chunk-MCS4LIXP.js.map → chunk-43TUWQNR.js.map} +0 -0
  349. /package/dist/{chunk-Q6PYCPHO.js.map → chunk-44EUCSG4.js.map} +0 -0
  350. /package/dist/{chunk-2J6BIOVN.js.map → chunk-4FM35YIA.js.map} +0 -0
  351. /package/dist/{chunk-2NLCDNGA.js.map → chunk-564YP3DW.js.map} +0 -0
  352. /package/dist/{chunk-YY6PWFUC.js.map → chunk-6ZAU7LAR.js.map} +0 -0
  353. /package/dist/{chunk-HCPVL6SF.js.map → chunk-72CBJ5VP.js.map} +0 -0
  354. /package/dist/{chunk-AF4UIHON.js.map → chunk-74AY3S7U.js.map} +0 -0
  355. /package/dist/{chunk-5IDQVE4U.js.map → chunk-A3UFV4K3.js.map} +0 -0
  356. /package/dist/{chunk-XFND63OB.js.map → chunk-AHGOOZUC.js.map} +0 -0
  357. /package/dist/{chunk-A7AISUJI.js.map → chunk-AJG2TAMR.js.map} +0 -0
  358. /package/dist/{chunk-2BY56HE6.js.map → chunk-AZLD4CKG.js.map} +0 -0
  359. /package/dist/{chunk-E47UQBYW.js.map → chunk-B35EQQ7L.js.map} +0 -0
  360. /package/dist/{chunk-E6UNM67F.js.map → chunk-B6SPPYGJ.js.map} +0 -0
  361. /package/dist/{chunk-CMOYD5CA.js.map → chunk-CCL2OXFO.js.map} +0 -0
  362. /package/dist/{chunk-SVJ5JVZO.js.map → chunk-CK6GCGMX.js.map} +0 -0
  363. /package/dist/{chunk-QZK6HG4J.js.map → chunk-DF6ZF2BN.js.map} +0 -0
  364. /package/dist/{chunk-CPBYKOTC.js.map → chunk-DJFULNXK.js.map} +0 -0
  365. /package/dist/{chunk-VGRBKEBH.js.map → chunk-DQOGZZJA.js.map} +0 -0
  366. /package/dist/{chunk-YB3WN6XA.js.map → chunk-EC2KVA27.js.map} +0 -0
  367. /package/dist/{chunk-YNDLCWXS.js.map → chunk-EZ25VE3G.js.map} +0 -0
  368. /package/dist/{chunk-WIBWONL4.js.map → chunk-EZS6QJNC.js.map} +0 -0
  369. /package/dist/{chunk-C7WDWD35.js.map → chunk-FNNGWN3O.js.map} +0 -0
  370. /package/dist/{chunk-PBWJVRKE.js.map → chunk-FT75AQ74.js.map} +0 -0
  371. /package/dist/{chunk-WJCAAVZX.js.map → chunk-GE3ZX6YK.js.map} +0 -0
  372. /package/dist/{chunk-3PVKV3XL.js.map → chunk-HCIRR3BA.js.map} +0 -0
  373. /package/dist/{chunk-BJTFLP3J.js.map → chunk-HEF4BRMT.js.map} +0 -0
  374. /package/dist/{chunk-6UDLN4IA.js.map → chunk-I6ORDT54.js.map} +0 -0
  375. /package/dist/{chunk-N5PISU26.js.map → chunk-IN6U2BS5.js.map} +0 -0
  376. /package/dist/{chunk-3INLTKTW.js.map → chunk-IUQXRRJB.js.map} +0 -0
  377. /package/dist/{chunk-4KS4IHKH.js.map → chunk-JX3E4XCW.js.map} +0 -0
  378. /package/dist/{chunk-SW3WHVKN.js.map → chunk-KAJYSO3U.js.map} +0 -0
  379. /package/dist/{chunk-D76AHITY.js.map → chunk-KETS5A62.js.map} +0 -0
  380. /package/dist/{chunk-LCHFINL4.js.map → chunk-KIWO4327.js.map} +0 -0
  381. /package/dist/{chunk-FC3ZFEXF.js.map → chunk-KJ3MDX4V.js.map} +0 -0
  382. /package/dist/{chunk-7LCGFUMB.js.map → chunk-KQAFEZQX.js.map} +0 -0
  383. /package/dist/{chunk-6TIVVOVU.js.map → chunk-L3EFYRYK.js.map} +0 -0
  384. /package/dist/{chunk-X52SXKVC.js.map → chunk-LMB47UM6.js.map} +0 -0
  385. /package/dist/{chunk-A3WXV7YU.js.map → chunk-LWMLBVGB.js.map} +0 -0
  386. /package/dist/{chunk-KMTMMBEB.js.map → chunk-MC7PXJDP.js.map} +0 -0
  387. /package/dist/{chunk-NMOEOQV4.js.map → chunk-MUNYUSBU.js.map} +0 -0
  388. /package/dist/{chunk-VKUMKVEU.js.map → chunk-OCRLJJOV.js.map} +0 -0
  389. /package/dist/{chunk-XSJL62LE.js.map → chunk-ON77FQXH.js.map} +0 -0
  390. /package/dist/{chunk-C3HRYVGD.js.map → chunk-POJRFSJM.js.map} +0 -0
  391. /package/dist/{chunk-LKRXGOQW.js.map → chunk-QA3Y2O6H.js.map} +0 -0
  392. /package/dist/{chunk-QFTNWDJ6.js.map → chunk-RA7YRL6H.js.map} +0 -0
  393. /package/dist/{chunk-WQFHHJWK.js.map → chunk-RJDYDF5K.js.map} +0 -0
  394. /package/dist/{chunk-E3DL3CAL.js.map → chunk-ROAKLYOL.js.map} +0 -0
  395. /package/dist/{chunk-NWIT3U2N.js.map → chunk-S5CQI2KF.js.map} +0 -0
  396. /package/dist/{chunk-P6P35FY4.js.map → chunk-SDESKFKT.js.map} +0 -0
  397. /package/dist/{chunk-OD7ZXCUF.js.map → chunk-SFRBUBUZ.js.map} +0 -0
  398. /package/dist/{chunk-O7GNSHFF.js.map → chunk-SPTPBKZX.js.map} +0 -0
  399. /package/dist/{chunk-HI53EK3Y.js.map → chunk-TC55M5PO.js.map} +0 -0
  400. /package/dist/{chunk-FOKTW6GY.js.map → chunk-UCLJTGP3.js.map} +0 -0
  401. /package/dist/{chunk-FYZXZUGU.js.map → chunk-UQBOPCDK.js.map} +0 -0
  402. /package/dist/{chunk-754XN6LX.js.map → chunk-V27FK6D6.js.map} +0 -0
  403. /package/dist/{chunk-DM6SOROF.js.map → chunk-V6Z4NAJZ.js.map} +0 -0
  404. /package/dist/{chunk-5FNZ3G6X.js.map → chunk-VKQI47DJ.js.map} +0 -0
  405. /package/dist/{chunk-MPJDQC4G.js.map → chunk-WJCXUE2J.js.map} +0 -0
  406. /package/dist/{chunk-VCBS5GRQ.js.map → chunk-WY66J4PI.js.map} +0 -0
  407. /package/dist/{chunk-OOOX5C4X.js.map → chunk-XL2EE5W3.js.map} +0 -0
  408. /package/dist/{chunk-V4GPFCJ7.js.map → chunk-XWJUFER3.js.map} +0 -0
  409. /package/dist/{chunk-CZVNOTLR.js.map → chunk-XXR4A33N.js.map} +0 -0
  410. /package/dist/{chunk-CRJX4OMN.js.map → chunk-Y3T5KQCR.js.map} +0 -0
  411. /package/dist/{chunk-KNCR7APE.js.map → chunk-Y77FXULH.js.map} +0 -0
  412. /package/dist/{chunk-2AV2U2SZ.js.map → chunk-YDIOMDBW.js.map} +0 -0
  413. /package/dist/{chunk-IG747LRN.js.map → chunk-YO2JEX2Z.js.map} +0 -0
  414. /package/dist/{chunk-HDT3DMUF.js.map → chunk-ZKK3VMWU.js.map} +0 -0
  415. /package/dist/{first-start-migration-QVD22WWS.js.map → first-start-migration-A6PHIBUQ.js.map} +0 -0
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  BUILTIN_CONNECTORS,
3
3
  loadRegistry
4
- } from "./chunk-LKRXGOQW.js";
4
+ } from "./chunk-QA3Y2O6H.js";
5
5
 
6
6
  // src/connectors/label.ts
7
7
  var CONNECTOR_LABEL_MAX_LENGTH = 64;
@@ -25,4 +25,4 @@ export {
25
25
  CONNECTOR_LABEL_MAX_LENGTH,
26
26
  knownConnectorIds
27
27
  };
28
- //# sourceMappingURL=chunk-4KS4IHKH.js.map
28
+ //# sourceMappingURL=chunk-JX3E4XCW.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  runLocationSync
3
- } from "./chunk-VKUMKVEU.js";
3
+ } from "./chunk-OCRLJJOV.js";
4
4
  import {
5
5
  log
6
6
  } from "./chunk-3WCASNQZ.js";
@@ -58,4 +58,4 @@ export {
58
58
  LOCATION_SYNC_DEFAULT_INTERVAL_MS,
59
59
  startLocationAutoSync
60
60
  };
61
- //# sourceMappingURL=chunk-SW3WHVKN.js.map
61
+ //# sourceMappingURL=chunk-KAJYSO3U.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-7T4TOGMS.js";
4
4
  import {
5
5
  defineOperation
6
- } from "./chunk-O4CA53UY.js";
6
+ } from "./chunk-GBGU5OZP.js";
7
7
 
8
8
  // src/external-wiki-access.ts
9
9
  import { z } from "zod";
@@ -26,4 +26,4 @@ var externalWikiSearchOperation = defineOperation({
26
26
  export {
27
27
  externalWikiSearchOperation
28
28
  };
29
- //# sourceMappingURL=chunk-D76AHITY.js.map
29
+ //# sourceMappingURL=chunk-KETS5A62.js.map
@@ -2,7 +2,7 @@ import {
2
2
  SupportPassportError,
3
3
  SupportPassportOwnerCreateGrantRequestSchema,
4
4
  getOperation
5
- } from "./chunk-O4CA53UY.js";
5
+ } from "./chunk-GBGU5OZP.js";
6
6
 
7
7
  // src/support-passport/access-http.ts
8
8
  var OWNER_ROOT = "/engram/v1/support-passport";
@@ -137,4 +137,4 @@ export {
137
137
  SUPPORT_PASSPORT_OWNER_HTTP_ROUTES,
138
138
  handleSupportPassportOwnerHttp
139
139
  };
140
- //# sourceMappingURL=chunk-LCHFINL4.js.map
140
+ //# sourceMappingURL=chunk-KIWO4327.js.map
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-PARM6OYL.js";
7
7
  import {
8
8
  EngramAccessInputError
9
- } from "./chunk-3MUKQQ7A.js";
9
+ } from "./chunk-LGEH473S.js";
10
10
 
11
11
  // src/access-recall-diagnostics.ts
12
12
  var RECALL_WHY_MCP_TOOLS = [
@@ -165,4 +165,4 @@ export {
165
165
  handleRecallWhyHttpQuery,
166
166
  handleRecallXrayHttpQuery
167
167
  };
168
- //# sourceMappingURL=chunk-FC3ZFEXF.js.map
168
+ //# sourceMappingURL=chunk-KJ3MDX4V.js.map
@@ -1,12 +1,12 @@
1
- import {
2
- encryptCapsuleFile
3
- } from "./chunk-X7Y7WX73.js";
4
1
  import {
5
2
  CAPSULE_ID_PATTERN,
6
3
  CapsuleBlockSchema,
7
4
  ExportBundleV2Schema,
8
5
  ExportManifestV2Schema
9
6
  } from "./chunk-WEHSQBFR.js";
7
+ import {
8
+ encryptCapsuleFile
9
+ } from "./chunk-X7Y7WX73.js";
10
10
  import {
11
11
  CAPSULE_SCHEMA_VERSION,
12
12
  EXPORT_FORMAT
@@ -261,4 +261,4 @@ export {
261
261
  exportCapsule,
262
262
  isValidCapsuleSince
263
263
  };
264
- //# sourceMappingURL=chunk-7LCGFUMB.js.map
264
+ //# sourceMappingURL=chunk-KQAFEZQX.js.map
@@ -3,7 +3,7 @@ import {
3
3
  readNamespaceMaintenanceLastRanStatuses,
4
4
  readNamespaceMaintenanceStatuses,
5
5
  runNamespaceMaintenancePlan
6
- } from "./chunk-HCPVL6SF.js";
6
+ } from "./chunk-72CBJ5VP.js";
7
7
  import {
8
8
  analyzeSessionIntegrity,
9
9
  applySessionRepair,
@@ -14,7 +14,7 @@ import {
14
14
  } from "./chunk-CMTINOFS.js";
15
15
  import {
16
16
  summarizeCorpusAndReplica
17
- } from "./chunk-3PVKV3XL.js";
17
+ } from "./chunk-HCIRR3BA.js";
18
18
  import {
19
19
  readJudgeVerdictStats
20
20
  } from "./chunk-OZKOPQCM.js";
@@ -32,23 +32,23 @@ import {
32
32
  } from "./chunk-2DQ2XREU.js";
33
33
  import {
34
34
  runConsolidationProvenanceCheck
35
- } from "./chunk-OOOX5C4X.js";
35
+ } from "./chunk-XL2EE5W3.js";
36
36
  import {
37
37
  reportBufferSurpriseDistribution
38
38
  } from "./chunk-YBPYIAA5.js";
39
39
  import {
40
40
  parseConfig
41
- } from "./chunk-KNCR7APE.js";
41
+ } from "./chunk-Y77FXULH.js";
42
42
  import {
43
43
  readAggregateExtractionWatermark
44
- } from "./chunk-PBWJVRKE.js";
44
+ } from "./chunk-FT75AQ74.js";
45
45
  import {
46
46
  listMemoryGovernanceRuns,
47
47
  readMemoryGovernanceRunArtifact
48
- } from "./chunk-YY6PWFUC.js";
48
+ } from "./chunk-6ZAU7LAR.js";
49
49
  import {
50
50
  listNamespaces
51
- } from "./chunk-QFTNWDJ6.js";
51
+ } from "./chunk-RA7YRL6H.js";
52
52
  import {
53
53
  analyzeGraphHealth
54
54
  } from "./chunk-KRAMCBIW.js";
@@ -57,7 +57,7 @@ import {
57
57
  } from "./chunk-AWD36R4D.js";
58
58
  import {
59
59
  StorageManager
60
- } from "./chunk-6W3QH3QW.js";
60
+ } from "./chunk-JIJAWTRK.js";
61
61
  import {
62
62
  lintWorkspaceFiles
63
63
  } from "./chunk-DM2T26WE.js";
@@ -1683,4 +1683,4 @@ export {
1683
1683
  runBenchmarkRecall,
1684
1684
  runOperatorRepair
1685
1685
  };
1686
- //# sourceMappingURL=chunk-6TIVVOVU.js.map
1686
+ //# sourceMappingURL=chunk-L3EFYRYK.js.map
@@ -64,45 +64,40 @@ function buildSuggestion(requested, registeredNames) {
64
64
  return `Did you mean ${suggestions.map((s) => s.name).join(", ")}?`;
65
65
  }
66
66
  function zodTypeName(schema) {
67
- if (typeof schema !== "object" || schema === null || !("_def" in schema)) return void 0;
68
- const def = schema._def;
69
- if (typeof def !== "object" || def === null || !("typeName" in def)) return void 0;
70
- return typeof def.typeName === "string" ? def.typeName : void 0;
71
- }
72
- function zodDefField(schema, key) {
73
- if (typeof schema !== "object" || schema === null || !("_def" in schema)) return void 0;
74
- const def = schema._def;
75
- if (typeof def !== "object" || def === null) return void 0;
76
- return Object.hasOwn(def, key) ? def[key] : void 0;
67
+ if (!(schema instanceof Object) || !("_zod" in schema)) return void 0;
68
+ const def = schema._zod?.def;
69
+ const discriminator = def?.type;
70
+ return discriminator === void 0 ? void 0 : String(discriminator);
77
71
  }
78
72
  function exampleFromSchema(schema) {
79
73
  switch (zodTypeName(schema)) {
80
- case "ZodString":
74
+ case "string":
81
75
  return "<string>";
82
- case "ZodNumber":
76
+ case "number":
83
77
  return 42;
84
- case "ZodBoolean":
78
+ case "boolean":
85
79
  return true;
86
- case "ZodNullable":
80
+ case "nullable":
87
81
  return null;
88
- case "ZodArray":
82
+ case "array":
89
83
  return [];
90
- case "ZodOptional":
84
+ case "optional":
91
85
  return void 0;
92
- case "ZodEnum": {
93
- const values = zodDefField(schema, "values");
94
- return Array.isArray(values) && values.length > 0 ? values[0] : "<value>";
86
+ case "enum": {
87
+ if (!(schema instanceof Object) || !("enum" in schema)) return "<value>";
88
+ const values = Object.values(schema.enum);
89
+ return values.length > 0 ? values[0] : "<value>";
95
90
  }
96
- case "ZodObject": {
97
- const shapeFn = zodDefField(schema, "shape");
98
- const shape = typeof shapeFn === "function" ? shapeFn() : void 0;
99
- if (typeof shape !== "object" || shape === null) return {};
91
+ case "object": {
92
+ if (!(schema instanceof Object) || !("shape" in schema)) return {};
93
+ const fieldsByName = schema.shape;
94
+ if (!(fieldsByName instanceof Object)) return {};
100
95
  const result = {};
101
- for (const key of Object.getOwnPropertyNames(shape)) {
102
- if (!Object.hasOwn(shape, key)) continue;
103
- const field = shape[key];
104
- const value = exampleFromSchema(field);
105
- if (value !== void 0) result[key] = value;
96
+ for (const field of Object.getOwnPropertyNames(fieldsByName)) {
97
+ if (!Object.hasOwn(fieldsByName, field)) continue;
98
+ const schemaNode = fieldsByName[field];
99
+ const value = exampleFromSchema(schemaNode);
100
+ if (value !== void 0) result[field] = value;
106
101
  }
107
102
  return result;
108
103
  }
@@ -154,4 +149,4 @@ export {
154
149
  unknownToolError,
155
150
  invalidArgsError
156
151
  };
157
- //# sourceMappingURL=chunk-3MUKQQ7A.js.map
152
+ //# sourceMappingURL=chunk-LGEH473S.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/access-errors.ts"],"sourcesContent":["/**\n * Tool-surface error enrichment: nearest-tool suggestions and arg-shape hints.\n *\n * Each function is a pure message builder — it returns a better error string\n * without changing semantics, status codes, or rejection behavior.\n *\n * @module access-errors\n */\n\nimport type { ZodError } from \"zod\";\n\n// ─── Existing error classes (restored from pre-#3042) ─────────────────────\n\n/** Authenticated caller lacks the required authorization (HTTP 403). */\nexport class EngramAccessForbiddenError extends Error {}\n\n/** Invalid caller input (HTTP 400). */\nexport class EngramAccessInputError extends Error {}\n\n/**\n * A write rejected by the namespace write-ACL (issue #1888). Subclasses\n * EngramAccessInputError so every existing catch/HTTP-400 mapping still\n * applies, but carries the attempted namespace + principal so the observe/\n * write surfaces can dead-letter the payload before re-throwing (fail-closed\n * placement is unchanged; only the destroyed-payload behavior is fixed).\n */\nexport class NamespaceNotWritableError extends EngramAccessInputError {\n constructor(\n readonly attemptedNamespace: string,\n readonly principal: string | undefined,\n message?: string,\n ) {\n super(message ?? `namespace is not writable: ${attemptedNamespace}`);\n this.name = \"NamespaceNotWritableError\";\n }\n}\n\n// ─── Levenshtein distance ─────────────────────────────────────────────────\n\n/**\n * Standard Levenshtein edit distance. O(n*m) over bounded inputs.\n * Exported so the test can verify it without importing private helpers.\n */\nexport function levenshtein(a: string, b: string): number {\n const an = a.length;\n const bn = b.length;\n // Fast paths for empty strings.\n if (an === 0) return bn;\n if (bn === 0) return an;\n\n // Use two rows to keep memory O(min(n,m)).\n let prev: number[] = [];\n let curr: number[] = [];\n\n // Align loops to the shorter string.\n const [shorter, longer, sn, ln] =\n an < bn ? [a, b, an, bn] : [b, a, bn, an];\n\n for (let i = 0; i <= sn; i++) prev[i] = i;\n\n for (let j = 1; j <= ln; j++) {\n curr[0] = j;\n for (let i = 1; i <= sn; i++) {\n const cost = shorter[i - 1] === longer[j - 1] ? 0 : 1;\n curr[i] = Math.min(\n prev[i] + 1, // deletion\n curr[i - 1] + 1, // insertion\n prev[i - 1] + cost, // substitution\n );\n }\n [prev, curr] = [curr, prev];\n }\n return prev[sn];\n}\n\n// ─── Similar-name helpers ─────────────────────────────────────────────────\n\nconst SUGGESTION_DISTANCE_CAP = 3;\n/**\n * Upper bound on the requested tool name. Anything longer is rejected before\n * the O(n*m) Levenshtein pass (#3042 review, P2): a 128 KB request over ~30\n * tools would otherwise run hundreds of millions of comparisons and block\n * the server event loop. The repo documents 64 chars as the tool-name shape;\n * this matches the limit enforced by every published surface.\n */\nexport const SUGGESTION_REQUEST_MAX_LEN = 64;\n\nexport interface SuggestionCandidate {\n name: string;\n distance: number;\n}\n\n/**\n * Find the nearest registered tool names by Levenshtein distance.\n * Results are sorted by distance ascending then name ascending (deterministic).\n * Only names with distance <= {@link SUGGESTION_DISTANCE_CAP} are returned;\n * when no name is that close the caller falls back to listing the full set.\n */\nexport function nearestSuggestions(\n requested: string,\n registeredNames: readonly string[],\n): SuggestionCandidate[] {\n // Defense in depth: the entry point already caps; this guards any direct\n // caller of the helper from an unbounded Levenshtein pass (issue #3042).\n if (requested.length > SUGGESTION_REQUEST_MAX_LEN) return [];\n const candidates: SuggestionCandidate[] = [];\n for (const name of registeredNames) {\n const distance = levenshtein(requested.toLowerCase(), name.toLowerCase());\n if (distance <= SUGGESTION_DISTANCE_CAP) {\n candidates.push({ name, distance });\n }\n }\n // Total comparator: distance asc, then name asc.\n candidates.sort((a, b) => {\n if (a.distance !== b.distance) return a.distance < b.distance ? -1 : 1;\n return a.name < b.name ? -1 : a.name > b.name ? 1 : 0;\n });\n return candidates;\n}\n\n/**\n * Build a human-readable \"did you mean?\" suggestion string.\n * When no close match is found, returns a fallback listing.\n */\nfunction buildSuggestion(\n requested: string,\n registeredNames: readonly string[],\n): string {\n const suggestions = nearestSuggestions(requested, registeredNames);\n if (suggestions.length === 0) {\n return `Registered tools: ${registeredNames.join(\", \")}`;\n }\n return `Did you mean ${suggestions.map((s) => s.name).join(\", \")}?`;\n}\n\n/**\n * Read a Zod type tag without asserting a shape.\n *\n * Zod keeps its discriminant at `_def.typeName`. Both hops are narrowed with\n * `in`/`typeof` rather than an inline cast, so a non-Zod object yields\n * `undefined` instead of a fabricated read.\n */\nfunction zodTypeName(schema: unknown): string | undefined {\n // zod 4: schema internals live on `_zod.def.type` (v3 read `_def.typeName`).\n if (!(schema instanceof Object) || !(\"_zod\" in schema)) return undefined;\n // SAFETY: the guard above established `_zod` exists; its `.def` carries the\n // discriminator string under `type`.\n const def = (schema as { _zod?: { def?: { type?: unknown } } })._zod?.def;\n // SAFETY: zod's `_zod.def.type` discriminator is always a string literal.\n const discriminator = def?.type;\n return discriminator === undefined ? undefined : String(discriminator);\n}\n\n/**\n * A zod schema node this module reflects over — any object the library\n * exposes as a schema (v4 marks them with `_zod`).\n */\n/** Structural marker: every zod schema carries `_zod`. */\ntype ZodSchemaLike = { _zod?: unknown };\n\n/**\n * A synthetic example value derived from a schema: a placeholder the SAME\n * schema accepts, so the error message can show a valid argument shape.\n */\ntype SchemaExample = string | number | boolean | null | readonly SchemaExample[] | { [key: string]: SchemaExample };\n\n/**\n * Reverse-engineer ONE synthetic example value from a Zod schema type.\n * Returns a deterministic placeholder intended to round-trip through parse().\n */\nfunction exampleFromSchema(schema: ZodSchemaLike): SchemaExample | undefined {\n switch (zodTypeName(schema)) {\n case \"string\":\n return \"<string>\";\n case \"number\":\n return 42;\n case \"boolean\":\n return true;\n case \"nullable\":\n return null;\n case \"array\":\n return [];\n case \"optional\":\n // Optional fields are omitted from the example rather than sent as null.\n return undefined;\n case \"enum\": {\n // v4 exposes accepted values as the public `.enum` record.\n if (!(schema instanceof Object) || !(\"enum\" in schema)) return \"<value>\";\n // SAFETY: the guard established `.enum`; zod types it as a value record.\n const values = Object.values((schema as { enum: Record<string, string> }).enum);\n return values.length > 0 ? values[0] : \"<value>\";\n }\n case \"object\": {\n // v4 exposes `.shape` as a plain property on the object schema.\n if (!(schema instanceof Object) || !(\"shape\" in schema)) return {};\n // SAFETY: object schemas expose their field schemas keyed by name.\n const fieldsByName = (schema as { shape: { [field: string]: ZodSchemaLike } }).shape;\n if (!(fieldsByName instanceof Object)) return {};\n const result: { [key: string]: SchemaExample } = {};\n for (const field of Object.getOwnPropertyNames(fieldsByName)) {\n if (!Object.hasOwn(fieldsByName, field)) continue;\n const schemaNode = fieldsByName[field];\n const value = exampleFromSchema(schemaNode);\n if (value !== undefined) result[field] = value;\n }\n return result;\n }\n default:\n return undefined;\n }\n}\n/**\n * Build an enriched \"unknown tool\" error message.\n *\n * @param requested - the tool name the caller used\n * @param registeredNames - ALL registered tool names (including aliases)\n */\nexport function unknownToolError(\n requested: string,\n registeredNames: readonly string[],\n): string {\n // Cap the request before the suggestion pass: a 128 KB name would otherwise\n // pay O(n*m) per registered tool (issue #3042 review, P2). The cap matches\n // the documented tool-name shape; an over-long request is rejected with a\n // teaching message rather than a silent truncate.\n if (requested.length > SUGGESTION_REQUEST_MAX_LEN) {\n return `Unknown tool: name exceeds ${SUGGESTION_REQUEST_MAX_LEN} characters (got ${requested.length}).`;\n }\n const suggestion = buildSuggestion(requested, registeredNames);\n return `Unknown tool: ${requested}. ${suggestion}`;\n}\n\n/**\n * Build an enriched \"invalid arguments\" error message.\n *\n * The example is generated from the schema (never hand-written, so it cannot\n * drift) and is shown ONLY when it round-trips through that same schema. It\n * carries schema-derived fields only: injecting the tool name would add an\n * unrecognized property and fail a `.strict()` object (#3035 review finding).\n *\n * @param tool - the tool name that received the invalid args\n * @param zodError - the ZodError from parse()\n * @param schema - the original Zod schema, used to generate the example\n */\nexport function invalidArgsError(\n tool: string,\n zodError: ZodError,\n schema?: unknown,\n): string {\n const issues = zodError.issues.map((issue) => {\n const path = issue.path.length > 0 ? issue.path.join(\".\") : \"(root)\";\n // `expected` exists only on the invalid_type / invalid_literal variants of\n // ZodIssue, so it is read through a presence check rather than assumed.\n const expected = \"expected\" in issue ? issue.expected : undefined;\n return expected === undefined\n ? `${path}: ${issue.message}`\n : `${path}: ${issue.message} (expected ${String(expected)})`;\n });\n let message = `Invalid arguments for \"${tool}\": ${issues.join(\"; \")}`;\n if (!schema) return message;\n\n const example = exampleFromSchema(schema);\n if (!example || typeof example !== \"object\" || Object.keys(example).length === 0) {\n return message;\n }\n\n // Withhold an example that cannot parse against its own schema: a\n // non-round-tripping example is misinformation, worse than none. Narrowed\n // with `in`/`typeof` rather than an inline cast so the shape is checked.\n let roundTrips = false;\n if (typeof schema === \"object\" && \"safeParse\" in schema) {\n const parser = schema.safeParse;\n if (typeof parser === \"function\") {\n try {\n const parsed: unknown = parser.call(schema, example);\n roundTrips =\n typeof parsed === \"object\"\n && parsed !== null\n && \"success\" in parsed\n && parsed.success === true;\n } catch {\n roundTrips = false;\n }\n }\n }\n\n return roundTrips ? `${message}. Example arguments: ${JSON.stringify(example)}` : message;\n}\n"],"mappings":"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","names":[]}
@@ -5,7 +5,7 @@ import {
5
5
  } from "./chunk-5JMAGU26.js";
6
6
  import {
7
7
  runPostConsolidationMaterialize
8
- } from "./chunk-CRJX4OMN.js";
8
+ } from "./chunk-Y3T5KQCR.js";
9
9
  import {
10
10
  isSemanticConsolidationLlmOperator
11
11
  } from "./chunk-G7D6GZ5J.js";
@@ -220,4 +220,4 @@ export {
220
220
  buildExtensionsBlockForConsolidation,
221
221
  materializeAfterSemanticConsolidation
222
222
  };
223
- //# sourceMappingURL=chunk-X52SXKVC.js.map
223
+ //# sourceMappingURL=chunk-LMB47UM6.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  rebuildMemoryProjection,
3
3
  watchProjectionRebuildParent
4
- } from "./chunk-VGRBKEBH.js";
4
+ } from "./chunk-DQOGZZJA.js";
5
5
  import {
6
6
  initLogger,
7
7
  log
@@ -77,4 +77,4 @@ if (invokedAsRunner) {
77
77
  export {
78
78
  PROJECTION_REBUILD_RUNNER_FLAG
79
79
  };
80
- //# sourceMappingURL=chunk-A3WXV7YU.js.map
80
+ //# sourceMappingURL=chunk-LWMLBVGB.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  buildStandup,
3
3
  parseStandupDate
4
- } from "./chunk-QZK6HG4J.js";
4
+ } from "./chunk-DF6ZF2BN.js";
5
5
  import {
6
6
  backfillMemoryStorage,
7
7
  runLocationBackfill,
@@ -9,30 +9,30 @@ import {
9
9
  runLocationDay,
10
10
  runLocationStatus,
11
11
  runLocationSync
12
- } from "./chunk-VKUMKVEU.js";
12
+ } from "./chunk-OCRLJJOV.js";
13
13
  import {
14
14
  externalWikiSearchOperation
15
- } from "./chunk-D76AHITY.js";
15
+ } from "./chunk-KETS5A62.js";
16
16
  import {
17
17
  DECISION_SUBCOMMANDS,
18
18
  DELTA_SUBCOMMANDS,
19
19
  defineOperation,
20
20
  isCodegraphToolName
21
- } from "./chunk-O4CA53UY.js";
21
+ } from "./chunk-GBGU5OZP.js";
22
22
  import {
23
23
  CorrectionContractError
24
24
  } from "./chunk-ETSJD5IV.js";
25
25
  import {
26
26
  memoryStoreRequestSchema,
27
27
  retainedCategoryAlias
28
- } from "./chunk-BMG3SAXA.js";
28
+ } from "./chunk-HQUYENKK.js";
29
29
  import {
30
30
  serializeMutations,
31
31
  withHeldFileLock
32
32
  } from "./chunk-EBRG7ZIK.js";
33
33
  import {
34
34
  EngramAccessInputError
35
- } from "./chunk-3MUKQQ7A.js";
35
+ } from "./chunk-LGEH473S.js";
36
36
 
37
37
  // src/access-operations.ts
38
38
  import { z as z5 } from "zod";
@@ -1916,4 +1916,4 @@ export {
1916
1916
  codegraphIngestTracesOperation,
1917
1917
  REGISTERED_OPERATIONS
1918
1918
  };
1919
- //# sourceMappingURL=chunk-KMTMMBEB.js.map
1919
+ //# sourceMappingURL=chunk-MC7PXJDP.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  StorageManager
3
- } from "./chunk-6W3QH3QW.js";
3
+ } from "./chunk-JIJAWTRK.js";
4
4
  import {
5
5
  composeMemoryEnvelope
6
6
  } from "./chunk-TWRPWJJT.js";
@@ -546,4 +546,4 @@ export {
546
546
  setSemanticRulePromotionTestHooks,
547
547
  promoteSemanticRuleFromMemory
548
548
  };
549
- //# sourceMappingURL=chunk-NMOEOQV4.js.map
549
+ //# sourceMappingURL=chunk-MUNYUSBU.js.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  resolveDefaultNamespaceRoot
3
- } from "./chunk-XFND63OB.js";
3
+ } from "./chunk-AHGOOZUC.js";
4
4
  import {
5
5
  StorageManager
6
- } from "./chunk-6W3QH3QW.js";
6
+ } from "./chunk-JIJAWTRK.js";
7
7
  import {
8
8
  composeLocationDayBody,
9
9
  composeLocationDayMeta,
@@ -23,7 +23,7 @@ import {
23
23
  serializeLocationDay,
24
24
  updateLocationSourceDay,
25
25
  writeLocationDay
26
- } from "./chunk-YFXRLRKP.js";
26
+ } from "./chunk-S4OZKPBS.js";
27
27
  import {
28
28
  resolveNamespaceCapabilities
29
29
  } from "./chunk-C5LWPYS3.js";
@@ -32,7 +32,7 @@ import {
32
32
  } from "./chunk-P2QRMMVQ.js";
33
33
  import {
34
34
  EngramAccessInputError
35
- } from "./chunk-3MUKQQ7A.js";
35
+ } from "./chunk-LGEH473S.js";
36
36
  import {
37
37
  log
38
38
  } from "./chunk-3WCASNQZ.js";
@@ -728,4 +728,4 @@ export {
728
728
  runLocationBackfill,
729
729
  runLocationCliCommand
730
730
  };
731
- //# sourceMappingURL=chunk-VKUMKVEU.js.map
731
+ //# sourceMappingURL=chunk-OCRLJJOV.js.map
@@ -11,7 +11,7 @@ import {
11
11
  } from "./chunk-ZAJLJ35W.js";
12
12
  import {
13
13
  parseConfig
14
- } from "./chunk-KNCR7APE.js";
14
+ } from "./chunk-Y77FXULH.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-XSJL62LE.js.map
271
+ //# sourceMappingURL=chunk-ON77FQXH.js.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  defineOperation
3
- } from "./chunk-O4CA53UY.js";
3
+ } from "./chunk-GBGU5OZP.js";
4
4
  import {
5
5
  EngramAccessInputError
6
- } from "./chunk-3MUKQQ7A.js";
6
+ } from "./chunk-LGEH473S.js";
7
7
 
8
8
  // src/recall-navigation-operations.ts
9
9
  import { z } from "zod";
@@ -92,4 +92,4 @@ defineOperation({
92
92
  };
93
93
  }
94
94
  });
95
- //# sourceMappingURL=chunk-C3HRYVGD.js.map
95
+ //# sourceMappingURL=chunk-POJRFSJM.js.map
@@ -5,7 +5,7 @@ import {
5
5
  loadTokenStore,
6
6
  revokeToken,
7
7
  saveTokenStore
8
- } from "./chunk-754XN6LX.js";
8
+ } from "./chunk-V27FK6D6.js";
9
9
  import {
10
10
  getConnectorsDir,
11
11
  getRegistryPath
@@ -3407,4 +3407,4 @@ export {
3407
3407
  resolveWeCloneProxyConfigPath,
3408
3408
  buildWeCloneProxyConfig
3409
3409
  };
3410
- //# sourceMappingURL=chunk-LKRXGOQW.js.map
3410
+ //# sourceMappingURL=chunk-QA3Y2O6H.js.map
@@ -6,14 +6,22 @@ import {
6
6
  } from "./chunk-E4X2YX2F.js";
7
7
 
8
8
  // src/extraction-span-wire.ts
9
- import { zodToJsonSchema } from "zod-to-json-schema";
9
+ import { z } from "zod";
10
10
  function applySpanMode(opts) {
11
11
  return parseSpanOffsets(opts.text, { start: opts.start, end: opts.end }, opts.enabled);
12
12
  }
13
- var JSON_SCHEMA_OPTS = { $refStrategy: "none", effectStrategy: "input" };
14
- var EXTRACTION_PROVIDER_JSON_SCHEMA_WITH_SPAN = zodToJsonSchema(
15
- ExtractionProviderOutputSchema,
16
- JSON_SCHEMA_OPTS
13
+ function closeObjectSchemas(node) {
14
+ if (node.type === "object" && node.properties && node.additionalProperties === void 0) {
15
+ node.additionalProperties = false;
16
+ }
17
+ Object.values(node.properties ?? {}).forEach(closeObjectSchemas);
18
+ if (node.items) closeObjectSchemas(node.items);
19
+ node.anyOf?.forEach(closeObjectSchemas);
20
+ return node;
21
+ }
22
+ var EXTRACTION_PROVIDER_JSON_SCHEMA_WITH_SPAN = closeObjectSchemas(
23
+ // SAFETY: z.toJSONSchema returns a JSON Schema document; SchemaNode names the keys this file reads.
24
+ z.toJSONSchema(ExtractionProviderOutputSchema, { target: "draft-7", io: "input" })
17
25
  );
18
26
  function omitFactSpan(schema) {
19
27
  const clone = structuredClone(schema);
@@ -49,4 +57,4 @@ export {
49
57
  extractionProviderJsonSchema,
50
58
  extractionProviderResponseFormat
51
59
  };
52
- //# sourceMappingURL=chunk-23ZLN5X6.js.map
60
+ //# sourceMappingURL=chunk-QT5MGENX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/extraction-span-wire.ts"],"sourcesContent":["/**\n * Extraction seam for span mode (issue #2333 leftover slice + #2952).\n *\n * Default off. Callers pass `enabled` to `applySpanMode`. The provider JSON\n * schema is mode-aware so off-mode structured output cannot advertise `span`.\n */\n\nimport { z } from \"zod\";\nimport type { ExtractionSpanConfig } from \"./extraction-span-config.js\";\nimport { parseSpanOffsets, type ParsedSpan } from \"./extraction-span.js\";\nimport { ExtractionProviderOutputSchema } from \"./schemas.js\";\n\nexport function applySpanMode(opts: {\n enabled?: boolean | 0 | 1;\n text: string;\n start: number;\n end: number;\n}): ParsedSpan {\n return parseSpanOffsets(opts.text, { start: opts.start, end: opts.end }, opts.enabled);\n}\n\n/** The parts of a JSON Schema node the extraction schema uses. */\ntype SchemaNode = {\n type?: string;\n properties?: Record<string, SchemaNode>;\n items?: SchemaNode;\n anyOf?: SchemaNode[];\n additionalProperties?: boolean | SchemaNode;\n};\n\n/**\n * `io: \"input\"` leaves objects open (zod accepts extra input keys), but providers\n * must be told to emit no extra keys: zod-to-json-schema advertised\n * additionalProperties:false on every object. Close any object schema that\n * does not already state its own.\n */\nfunction closeObjectSchemas(node: SchemaNode): SchemaNode {\n if (node.type === \"object\" && node.properties && node.additionalProperties === undefined) {\n node.additionalProperties = false;\n }\n Object.values(node.properties ?? {}).forEach(closeObjectSchemas);\n if (node.items) closeObjectSchemas(node.items);\n node.anyOf?.forEach(closeObjectSchemas);\n return node;\n}\n\n// zod 4 ships toJSONSchema natively; zod-to-json-schema emits an empty\n// document for v4 schemas, so the dependency is dropped here. `io: \"input\"`\n// matches the old effectStrategy: \"input\" (advertise the input shape of\n// transforms/preprocess to providers).\n// SAFETY: z.toJSONSchema returns a JSON-Schema document — always an object at\n// the root; the record shape is what omitFactSpan walks.\nconst EXTRACTION_PROVIDER_JSON_SCHEMA_WITH_SPAN: SchemaNode = closeObjectSchemas(\n // SAFETY: z.toJSONSchema returns a JSON Schema document; SchemaNode names the keys this file reads.\n z.toJSONSchema(ExtractionProviderOutputSchema, { target: \"draft-7\", io: \"input\" }) as SchemaNode,\n);\ntype FactItems = {\n properties?: Record<string, unknown>;\n required?: string[];\n};\n\nfunction omitFactSpan(schema: Record<string, unknown>): Record<string, unknown> {\n const clone = structuredClone(schema) as {\n properties?: { facts?: { items?: FactItems } };\n };\n const items = clone.properties?.facts?.items;\n if (!items?.properties || !(\"span\" in items.properties)) {\n throw new Error(\"extraction provider schema is missing facts.items.properties.span\");\n }\n delete items.properties.span;\n if (Array.isArray(items.required)) {\n items.required = items.required.filter((key) => key !== \"span\");\n }\n return clone as Record<string, unknown>;\n}\n\nconst EXTRACTION_PROVIDER_JSON_SCHEMA_WITHOUT_SPAN = omitFactSpan(\n EXTRACTION_PROVIDER_JSON_SCHEMA_WITH_SPAN,\n);\n\n/** Provider JSON schema: `span` is present in on/shadow, absent in off. */\nexport function extractionProviderJsonSchema(\n spanMode: ExtractionSpanConfig[\"spanMode\"] = \"off\",\n): Record<string, unknown> {\n return spanMode === \"off\"\n ? EXTRACTION_PROVIDER_JSON_SCHEMA_WITHOUT_SPAN\n : EXTRACTION_PROVIDER_JSON_SCHEMA_WITH_SPAN;\n}\n\nexport function extractionProviderResponseFormat(spanMode: ExtractionSpanConfig[\"spanMode\"] = \"off\") {\n return {\n type: \"json_schema\" as const,\n json_schema: {\n name: \"extraction_result\",\n schema: extractionProviderJsonSchema(spanMode),\n strict: false,\n },\n };\n}\n"],"mappings":";;;;;;;;AAOA,SAAS,SAAS;AAKX,SAAS,cAAc,MAKf;AACb,SAAO,iBAAiB,KAAK,MAAM,EAAE,OAAO,KAAK,OAAO,KAAK,KAAK,IAAI,GAAG,KAAK,OAAO;AACvF;AAiBA,SAAS,mBAAmB,MAA8B;AACxD,MAAI,KAAK,SAAS,YAAY,KAAK,cAAc,KAAK,yBAAyB,QAAW;AACxF,SAAK,uBAAuB;AAAA,EAC9B;AACA,SAAO,OAAO,KAAK,cAAc,CAAC,CAAC,EAAE,QAAQ,kBAAkB;AAC/D,MAAI,KAAK,MAAO,oBAAmB,KAAK,KAAK;AAC7C,OAAK,OAAO,QAAQ,kBAAkB;AACtC,SAAO;AACT;AAQA,IAAM,4CAAwD;AAAA;AAAA,EAE5D,EAAE,aAAa,gCAAgC,EAAE,QAAQ,WAAW,IAAI,QAAQ,CAAC;AACnF;AAMA,SAAS,aAAa,QAA0D;AAC9E,QAAM,QAAQ,gBAAgB,MAAM;AAGpC,QAAM,QAAQ,MAAM,YAAY,OAAO;AACvC,MAAI,CAAC,OAAO,cAAc,EAAE,UAAU,MAAM,aAAa;AACvD,UAAM,IAAI,MAAM,mEAAmE;AAAA,EACrF;AACA,SAAO,MAAM,WAAW;AACxB,MAAI,MAAM,QAAQ,MAAM,QAAQ,GAAG;AACjC,UAAM,WAAW,MAAM,SAAS,OAAO,CAAC,QAAQ,QAAQ,MAAM;AAAA,EAChE;AACA,SAAO;AACT;AAEA,IAAM,+CAA+C;AAAA,EACnD;AACF;AAGO,SAAS,6BACd,WAA6C,OACpB;AACzB,SAAO,aAAa,QAChB,+CACA;AACN;AAEO,SAAS,iCAAiC,WAA6C,OAAO;AACnG,SAAO;AAAA,IACL,MAAM;AAAA,IACN,aAAa;AAAA,MACX,MAAM;AAAA,MACN,QAAQ,6BAA6B,QAAQ;AAAA,MAC7C,QAAQ;AAAA,IACV;AAAA,EACF;AACF;","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  NamespaceStorageRouter
3
- } from "./chunk-XFND63OB.js";
3
+ } from "./chunk-AHGOOZUC.js";
4
4
  import {
5
5
  namespaceCollectionName
6
6
  } from "./chunk-LXXIV7Y2.js";
@@ -213,4 +213,4 @@ export {
213
213
  verifyNamespaces,
214
214
  runNamespaceMigration
215
215
  };
216
- //# sourceMappingURL=chunk-QFTNWDJ6.js.map
216
+ //# sourceMappingURL=chunk-RA7YRL6H.js.map
@@ -3,13 +3,13 @@ import {
3
3
  getOperation,
4
4
  operationRequiresAuthorizedNamespace,
5
5
  operationUsesPrincipalNamespace
6
- } from "./chunk-O4CA53UY.js";
6
+ } from "./chunk-GBGU5OZP.js";
7
7
  import {
8
8
  assertOperationAuthorizationAllowed
9
- } from "./chunk-IG747LRN.js";
9
+ } from "./chunk-YO2JEX2Z.js";
10
10
  import {
11
11
  EngramAccessInputError
12
- } from "./chunk-3MUKQQ7A.js";
12
+ } from "./chunk-LGEH473S.js";
13
13
 
14
14
  // src/access-authorization-probe.ts
15
15
  var UNRESOLVABLE_RESOURCE_OPERATIONS = /* @__PURE__ */ new Set([
@@ -60,4 +60,4 @@ export {
60
60
  authorizationProbeNamespaces,
61
61
  authorizationProbeRequiresPrincipalNamespace
62
62
  };
63
- //# sourceMappingURL=chunk-WQFHHJWK.js.map
63
+ //# sourceMappingURL=chunk-RJDYDF5K.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-B7RWBZXW.js";
4
4
  import {
5
5
  StorageManager
6
- } from "./chunk-6W3QH3QW.js";
6
+ } from "./chunk-JIJAWTRK.js";
7
7
  import {
8
8
  getCachedEpisodeMap,
9
9
  setCachedEpisodeMap
@@ -109,4 +109,4 @@ export {
109
109
  compareVerifiedEpisodeResults,
110
110
  searchVerifiedEpisodes
111
111
  };
112
- //# sourceMappingURL=chunk-E3DL3CAL.js.map
112
+ //# sourceMappingURL=chunk-ROAKLYOL.js.map
@@ -825,18 +825,14 @@ async function briefingLocationSection(memoryDir, windowStartUtc, config) {
825
825
  config
826
826
  );
827
827
  }
828
- async function applyBriefingLocationContext(result, includeLocation, memoryDir, windowStartUtc, location) {
829
- if (includeLocation !== true || !locationTaggingEnabled(location)) return result;
830
- const section = await briefingLocationSection(memoryDir, windowStartUtc, location);
828
+ async function buildWithBriefingLocation(includeLocation, memoryDir, windowStartUtc, location, build) {
829
+ const section = includeLocation === true && locationTaggingEnabled(location) ? await briefingLocationSection(memoryDir, windowStartUtc, location) : null;
830
+ const result = await build();
831
831
  if (!section) return result;
832
- return {
833
- ...result,
834
- markdown: `${result.markdown}
832
+ return { ...result, markdown: `${result.markdown}
835
833
 
836
834
  ${section}
837
- `,
838
- json: { ...result.json, locationContext: section }
839
- };
835
+ `, json: { ...result.json, locationContext: section } };
840
836
  }
841
837
  function daySummaryAutoOptions(request) {
842
838
  return { timeZone: request.timeZone, includeLocation: request.includeLocation === true };
@@ -886,7 +882,7 @@ export {
886
882
  fillWearableConversationLocations,
887
883
  renderDayLocationContext,
888
884
  briefingLocationSection,
889
- applyBriefingLocationContext,
885
+ buildWithBriefingLocation,
890
886
  daySummaryAutoOptions
891
887
  };
892
- //# sourceMappingURL=chunk-YFXRLRKP.js.map
888
+ //# sourceMappingURL=chunk-S4OZKPBS.js.map