@remnic/core 9.63.5 → 9.63.7

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 (262) hide show
  1. package/dist/access-admin-ops-surface.d.ts +1 -1
  2. package/dist/access-admin-ops-surface.js +27 -25
  3. package/dist/access-authorization-probe.d.ts +1 -1
  4. package/dist/access-authorization-probe.js +28 -26
  5. package/dist/access-boundary.d.ts +1 -1
  6. package/dist/access-boundary.js +27 -25
  7. package/dist/access-cli.js +83 -81
  8. package/dist/access-cli.js.map +1 -1
  9. package/dist/access-extraction-force-flush.d.ts +1 -1
  10. package/dist/access-extraction-force-flush.js +27 -25
  11. package/dist/access-http-lcm-compaction.d.ts +1 -1
  12. package/dist/access-http-lifecycle-flush.d.ts +1 -1
  13. package/dist/access-http-offline-stream.d.ts +1 -1
  14. package/dist/access-http-query.js +29 -27
  15. package/dist/access-http.d.ts +2 -2
  16. package/dist/access-http.js +43 -41
  17. package/dist/access-identity-continuity-surface.js +27 -25
  18. package/dist/access-lcm-surface.d.ts +1 -1
  19. package/dist/access-lcm-surface.js +27 -25
  20. package/dist/access-mcp.d.ts +1 -1
  21. package/dist/access-mcp.js +34 -32
  22. package/dist/access-namespace-preflight.js +27 -25
  23. package/dist/access-observe-write-surface.d.ts +1 -1
  24. package/dist/access-observe-write-surface.js +27 -25
  25. package/dist/access-offline-manifest.js +6 -5
  26. package/dist/access-operations-batch.js +29 -27
  27. package/dist/access-operations.d.ts +4 -4
  28. package/dist/access-operations.js +33 -31
  29. package/dist/access-recall-concurrency.d.ts +1 -1
  30. package/dist/access-recall-concurrency.js +27 -25
  31. package/dist/access-recall-response.d.ts +1 -1
  32. package/dist/access-recall-response.js +27 -25
  33. package/dist/access-recall-surface.d.ts +1 -1
  34. package/dist/access-recall-surface.js +27 -25
  35. package/dist/access-schema.d.ts +88 -88
  36. package/dist/access-schema.js +6 -5
  37. package/dist/access-service-helpers.d.ts +1 -1
  38. package/dist/access-service.d.ts +1 -1
  39. package/dist/access-service.js +27 -25
  40. package/dist/access-surface-catalog.d.ts +1 -1
  41. package/dist/access-surface-catalog.js +29 -27
  42. package/dist/access-surface-catalog.js.map +1 -1
  43. package/dist/active-recall.js +5 -3
  44. package/dist/active-recall.js.map +1 -1
  45. package/dist/adapters/index.js +4 -4
  46. package/dist/adapters/registry.js +2 -2
  47. package/dist/{auto-sync-BKRJDMKX.js → auto-sync-3SHMZVQS.js} +5 -3
  48. package/dist/{auto-sync-BKRJDMKX.js.map → auto-sync-3SHMZVQS.js.map} +1 -1
  49. package/dist/briefing.js +10 -10
  50. package/dist/calibration.d.ts +2 -1
  51. package/dist/calibration.js +7 -0
  52. package/dist/calibration.js.map +1 -1
  53. package/dist/causal-consolidation.js +11 -11
  54. package/dist/census-validation.d.ts +19 -0
  55. package/dist/census-validation.js +14 -0
  56. package/dist/census-validation.js.map +1 -0
  57. package/dist/{chunk-LEPOP46W.js → chunk-227UFSEQ.js} +4 -4
  58. package/dist/{chunk-Z4N7SVVF.js → chunk-2L7DKNVE.js} +12 -7
  59. package/dist/chunk-2L7DKNVE.js.map +1 -0
  60. package/dist/{chunk-3Z5TGRFA.js → chunk-3NZAVWU5.js} +9 -9
  61. package/dist/{chunk-I5FLIB2J.js → chunk-3S3PNR5H.js} +2 -2
  62. package/dist/{chunk-R6UMNP5C.js → chunk-3T6HIIKA.js} +2 -2
  63. package/dist/{chunk-77QZW2D6.js → chunk-3TDAA7VA.js} +2 -2
  64. package/dist/{chunk-TWTUGCTY.js → chunk-3YTTAGPB.js} +6 -1
  65. package/dist/chunk-3YTTAGPB.js.map +1 -0
  66. package/dist/{chunk-DXDAQZ2K.js → chunk-42TIIO2M.js} +2 -2
  67. package/dist/{chunk-Y7COCXY2.js → chunk-4F67JJPG.js} +2 -2
  68. package/dist/{chunk-PB4WVYGC.js → chunk-5S5DUJFJ.js} +2 -2
  69. package/dist/{chunk-KYTRF64R.js → chunk-5SCFDQEJ.js} +2 -2
  70. package/dist/{chunk-GG4DN63W.js → chunk-62Y5AGCM.js} +2 -2
  71. package/dist/{chunk-KHCUVYCY.js → chunk-6UKSOXAO.js} +3 -3
  72. package/dist/{chunk-F6JYBVL6.js → chunk-7ZAC2C2U.js} +24 -24
  73. package/dist/{chunk-GF7RQWXC.js → chunk-AJRJDXYR.js} +2 -2
  74. package/dist/{chunk-YEQCMA5L.js → chunk-BOSIHHOH.js} +2 -2
  75. package/dist/{chunk-7LF2OHIJ.js → chunk-BRHKW7GY.js} +2 -2
  76. package/dist/{chunk-LX4TNSAE.js → chunk-CBY54QYW.js} +4 -4
  77. package/dist/chunk-FEHIOYML.js +168 -0
  78. package/dist/chunk-FEHIOYML.js.map +1 -0
  79. package/dist/{chunk-6YMEU6OQ.js → chunk-G72IPMR7.js} +2 -2
  80. package/dist/{chunk-7AF243WZ.js → chunk-GBVRVYF4.js} +1 -1
  81. package/dist/{chunk-GTD4Q62X.js → chunk-H4GQ2Y24.js} +3 -3
  82. package/dist/{chunk-QI5RDDEL.js → chunk-HXZNTZ3Y.js} +6 -6
  83. package/dist/{chunk-CIAI24TQ.js → chunk-IBZQQOM5.js} +3 -3
  84. package/dist/{chunk-RYST72N5.js → chunk-IINVXO3U.js} +4 -154
  85. package/dist/chunk-IINVXO3U.js.map +1 -0
  86. package/dist/{chunk-R7TZ2HCS.js → chunk-JG22O53B.js} +58 -3
  87. package/dist/chunk-JG22O53B.js.map +1 -0
  88. package/dist/{chunk-VPHSMJ2E.js → chunk-JPWSYHLB.js} +2 -2
  89. package/dist/{chunk-X7LEDA74.js → chunk-KFB4YNXM.js} +2 -2
  90. package/dist/{chunk-IPLYGWQF.js → chunk-KQAFEZQX.js} +5 -5
  91. package/dist/chunk-LQWOFU6L.js +17 -0
  92. package/dist/chunk-LQWOFU6L.js.map +1 -0
  93. package/dist/{chunk-ZUPKNWRZ.js → chunk-MIUL6AUZ.js} +3 -3
  94. package/dist/{chunk-EJY3HJMT.js → chunk-MYI3RKI6.js} +2 -2
  95. package/dist/{chunk-NA56NSKL.js → chunk-OOJCXJBN.js} +2 -2
  96. package/dist/{chunk-7KQB4EBS.js → chunk-OPPBTPUU.js} +4 -4
  97. package/dist/{chunk-ERPBRXVZ.js → chunk-PZKWPXRF.js} +2 -2
  98. package/dist/{chunk-FHKXVTM5.js → chunk-Q5XKKDFQ.js} +16 -16
  99. package/dist/{chunk-QRWMS6SI.js → chunk-Q6OL23WM.js} +2 -2
  100. package/dist/{chunk-OW7NVMGQ.js → chunk-QIZOU3FN.js} +2 -2
  101. package/dist/{chunk-V3KIRICY.js → chunk-QQYHYW2N.js} +3 -3
  102. package/dist/{chunk-YFCEBB5P.js → chunk-QTXNS3HB.js} +2 -2
  103. package/dist/{chunk-2QSZNTDO.js → chunk-RKNJBZ55.js} +4 -4
  104. package/dist/{chunk-E4KMY4KR.js → chunk-SNEUAZ6B.js} +2 -2
  105. package/dist/{chunk-TSTI6A3A.js → chunk-SYJW273H.js} +11 -11
  106. package/dist/{chunk-EFKZT6AY.js → chunk-T42L3S6A.js} +6 -11
  107. package/dist/chunk-T42L3S6A.js.map +1 -0
  108. package/dist/{chunk-YXMHUBN2.js → chunk-TOP3FSDW.js} +25 -102
  109. package/dist/chunk-TOP3FSDW.js.map +1 -0
  110. package/dist/{chunk-PBRCYYO7.js → chunk-ULZFZL7K.js} +2 -2
  111. package/dist/{chunk-UGHCZS6K.js → chunk-VFZQXYN5.js} +2 -2
  112. package/dist/{chunk-IVXVLDNT.js → chunk-WKJTMXME.js} +37 -54
  113. package/dist/chunk-WKJTMXME.js.map +1 -0
  114. package/dist/{chunk-NKB43PGI.js → chunk-WZDTSBGQ.js} +2 -2
  115. package/dist/{chunk-2UM6WHME.js → chunk-XE2QCCT2.js} +2 -2
  116. package/dist/{chunk-FPEZ74F7.js → chunk-XNJQZLAP.js} +3 -3
  117. package/dist/{chunk-SYVGVK4S.js → chunk-XTMYB2HY.js} +2 -2
  118. package/dist/{chunk-OETHJBAL.js → chunk-XV6PUXJ5.js} +71 -71
  119. package/dist/{chunk-UCLMKNHA.js → chunk-YIMV2KYM.js} +2 -2
  120. package/dist/{chunk-DYZR3Z6D.js → chunk-YMQKPSB2.js} +4 -4
  121. package/dist/{chunk-AYVCKGA6.js → chunk-YTXNDEUS.js} +2 -2
  122. package/dist/{chunk-L3CHRBHE.js → chunk-ZRUEP4IK.js} +17 -11
  123. package/dist/chunk-ZRUEP4IK.js.map +1 -0
  124. package/dist/{cli-BFBDYV0D.d.ts → cli-BTNj5DzK.d.ts} +1 -1
  125. package/dist/cli.d.ts +2 -2
  126. package/dist/cli.js +59 -57
  127. package/dist/compounding/engine.js +10 -10
  128. package/dist/config.js +5 -3
  129. package/dist/connectors/codex-materialize-runner.js +10 -10
  130. package/dist/connectors/index.js +10 -10
  131. package/dist/consolidation-provenance-check.js +2 -2
  132. package/dist/convergence-refresh.js +12 -12
  133. package/dist/conversation-index/backend.js +2 -2
  134. package/dist/corpus-watermark.js +12 -12
  135. package/dist/entity-retrieval.js +10 -10
  136. package/dist/external-wiki-access.d.ts +1 -1
  137. package/dist/external-wiki-access.js +28 -26
  138. package/dist/external-wiki-mcp-tools.d.ts +1 -1
  139. package/dist/extraction-judge.d.ts +2 -1
  140. package/dist/extraction-judge.js +6 -1
  141. package/dist/extraction-normalization.js +2 -2
  142. package/dist/extraction-prompt.d.ts +20 -1
  143. package/dist/extraction-prompt.js +11 -1
  144. package/dist/extraction.js +13 -13
  145. package/dist/{first-start-migration-4NETATFF.js → first-start-migration-Q2VB2E2D.js} +4 -4
  146. package/dist/harmonic-retrieval.js +1 -1
  147. package/dist/index.d.ts +680 -680
  148. package/dist/index.js +92 -90
  149. package/dist/maintenance/memory-governance.js +10 -10
  150. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +10 -10
  151. package/dist/maintenance/rebuild-memory-projection.js +11 -11
  152. package/dist/mcp-memory-inspector-app.d.ts +1 -1
  153. package/dist/namespaces/migrate.js +11 -11
  154. package/dist/namespaces/search.js +4 -4
  155. package/dist/namespaces/storage.js +10 -10
  156. package/dist/offline-sync.js +3 -2
  157. package/dist/operator-doctor-corpus.js +13 -13
  158. package/dist/operator-toolkit.js +24 -22
  159. package/dist/orchestration/maintenance.js +16 -16
  160. package/dist/orchestrator.js +85 -83
  161. package/dist/{public-http-8PcrDIYi.d.ts → public-http-BmPktTe3.d.ts} +1 -1
  162. package/dist/reconcile/cursor.js +7 -3
  163. package/dist/reconcile/cursor.js.map +1 -1
  164. package/dist/reconcile/manifest.js +3 -7
  165. package/dist/reconcile/plan.d.ts +15 -1
  166. package/dist/reconcile/plan.js +6 -10
  167. package/dist/resume-bundles.js +6 -4
  168. package/dist/schemas.d.ts +108 -108
  169. package/dist/search/factory.js +3 -3
  170. package/dist/search/index.js +3 -3
  171. package/dist/semantic-consolidation.js +16 -16
  172. package/dist/semantic-rule-promotion.js +10 -10
  173. package/dist/semantic-rule-verifier.js +10 -10
  174. package/dist/shared-context/manager.d.ts +8 -8
  175. package/dist/source-agent-qualifier.js +10 -10
  176. package/dist/storage.js +9 -9
  177. package/dist/support-passport/index.d.ts +4 -4
  178. package/dist/support-passport/index.js +30 -28
  179. package/dist/transfer/autodetect.js +1 -1
  180. package/dist/transfer/backup.js +1 -1
  181. package/dist/transfer/capsule-export.js +2 -2
  182. package/dist/transfer/types.d.ts +66 -66
  183. package/dist/verified-recall.js +10 -10
  184. package/package.json +2 -2
  185. package/src/calibration.ts +3 -1
  186. package/src/census-validation.ts +25 -0
  187. package/src/coding/architecture-surfaces.test.ts +9 -10
  188. package/src/coding/architecture-surfaces.ts +2 -35
  189. package/src/coding/codegraph-runtime-loader.test.ts +228 -0
  190. package/src/coding/codegraph-runtime.ts +30 -50
  191. package/src/coding/codegraph-surfaces.ts +2 -2
  192. package/src/coding/coding-knowledge-config.ts +35 -1
  193. package/src/coding/decision-surfaces.test.ts +9 -10
  194. package/src/coding/decision-surfaces.ts +2 -40
  195. package/src/coding/session-delta-surfaces.test.ts +9 -10
  196. package/src/coding/session-delta-surfaces.ts +2 -33
  197. package/src/extraction-judge.ts +3 -1
  198. package/src/extraction-output-language.test.ts +116 -0
  199. package/src/extraction-prompt.ts +70 -1
  200. package/src/extraction.ts +23 -95
  201. package/src/offline-sync.ts +4 -4
  202. package/src/reconcile/census-parity.test.ts +152 -0
  203. package/src/reconcile/cursor.ts +5 -5
  204. package/src/reconcile/manifest.ts +4 -11
  205. package/src/reconcile/plan.ts +18 -15
  206. package/dist/chunk-EFKZT6AY.js.map +0 -1
  207. package/dist/chunk-IVXVLDNT.js.map +0 -1
  208. package/dist/chunk-L3CHRBHE.js.map +0 -1
  209. package/dist/chunk-R7TZ2HCS.js.map +0 -1
  210. package/dist/chunk-RYST72N5.js.map +0 -1
  211. package/dist/chunk-TWTUGCTY.js.map +0 -1
  212. package/dist/chunk-YXMHUBN2.js.map +0 -1
  213. package/dist/chunk-Z4N7SVVF.js.map +0 -1
  214. package/dist/{access-service-cKQrte9Z.d.ts → access-service-CocW74uA.d.ts} +64 -64
  215. /package/dist/{chunk-LEPOP46W.js.map → chunk-227UFSEQ.js.map} +0 -0
  216. /package/dist/{chunk-3Z5TGRFA.js.map → chunk-3NZAVWU5.js.map} +0 -0
  217. /package/dist/{chunk-I5FLIB2J.js.map → chunk-3S3PNR5H.js.map} +0 -0
  218. /package/dist/{chunk-R6UMNP5C.js.map → chunk-3T6HIIKA.js.map} +0 -0
  219. /package/dist/{chunk-77QZW2D6.js.map → chunk-3TDAA7VA.js.map} +0 -0
  220. /package/dist/{chunk-DXDAQZ2K.js.map → chunk-42TIIO2M.js.map} +0 -0
  221. /package/dist/{chunk-Y7COCXY2.js.map → chunk-4F67JJPG.js.map} +0 -0
  222. /package/dist/{chunk-PB4WVYGC.js.map → chunk-5S5DUJFJ.js.map} +0 -0
  223. /package/dist/{chunk-KYTRF64R.js.map → chunk-5SCFDQEJ.js.map} +0 -0
  224. /package/dist/{chunk-GG4DN63W.js.map → chunk-62Y5AGCM.js.map} +0 -0
  225. /package/dist/{chunk-KHCUVYCY.js.map → chunk-6UKSOXAO.js.map} +0 -0
  226. /package/dist/{chunk-F6JYBVL6.js.map → chunk-7ZAC2C2U.js.map} +0 -0
  227. /package/dist/{chunk-GF7RQWXC.js.map → chunk-AJRJDXYR.js.map} +0 -0
  228. /package/dist/{chunk-YEQCMA5L.js.map → chunk-BOSIHHOH.js.map} +0 -0
  229. /package/dist/{chunk-7LF2OHIJ.js.map → chunk-BRHKW7GY.js.map} +0 -0
  230. /package/dist/{chunk-LX4TNSAE.js.map → chunk-CBY54QYW.js.map} +0 -0
  231. /package/dist/{chunk-6YMEU6OQ.js.map → chunk-G72IPMR7.js.map} +0 -0
  232. /package/dist/{chunk-7AF243WZ.js.map → chunk-GBVRVYF4.js.map} +0 -0
  233. /package/dist/{chunk-GTD4Q62X.js.map → chunk-H4GQ2Y24.js.map} +0 -0
  234. /package/dist/{chunk-QI5RDDEL.js.map → chunk-HXZNTZ3Y.js.map} +0 -0
  235. /package/dist/{chunk-CIAI24TQ.js.map → chunk-IBZQQOM5.js.map} +0 -0
  236. /package/dist/{chunk-VPHSMJ2E.js.map → chunk-JPWSYHLB.js.map} +0 -0
  237. /package/dist/{chunk-X7LEDA74.js.map → chunk-KFB4YNXM.js.map} +0 -0
  238. /package/dist/{chunk-IPLYGWQF.js.map → chunk-KQAFEZQX.js.map} +0 -0
  239. /package/dist/{chunk-ZUPKNWRZ.js.map → chunk-MIUL6AUZ.js.map} +0 -0
  240. /package/dist/{chunk-EJY3HJMT.js.map → chunk-MYI3RKI6.js.map} +0 -0
  241. /package/dist/{chunk-NA56NSKL.js.map → chunk-OOJCXJBN.js.map} +0 -0
  242. /package/dist/{chunk-7KQB4EBS.js.map → chunk-OPPBTPUU.js.map} +0 -0
  243. /package/dist/{chunk-ERPBRXVZ.js.map → chunk-PZKWPXRF.js.map} +0 -0
  244. /package/dist/{chunk-FHKXVTM5.js.map → chunk-Q5XKKDFQ.js.map} +0 -0
  245. /package/dist/{chunk-QRWMS6SI.js.map → chunk-Q6OL23WM.js.map} +0 -0
  246. /package/dist/{chunk-OW7NVMGQ.js.map → chunk-QIZOU3FN.js.map} +0 -0
  247. /package/dist/{chunk-V3KIRICY.js.map → chunk-QQYHYW2N.js.map} +0 -0
  248. /package/dist/{chunk-YFCEBB5P.js.map → chunk-QTXNS3HB.js.map} +0 -0
  249. /package/dist/{chunk-2QSZNTDO.js.map → chunk-RKNJBZ55.js.map} +0 -0
  250. /package/dist/{chunk-E4KMY4KR.js.map → chunk-SNEUAZ6B.js.map} +0 -0
  251. /package/dist/{chunk-TSTI6A3A.js.map → chunk-SYJW273H.js.map} +0 -0
  252. /package/dist/{chunk-PBRCYYO7.js.map → chunk-ULZFZL7K.js.map} +0 -0
  253. /package/dist/{chunk-UGHCZS6K.js.map → chunk-VFZQXYN5.js.map} +0 -0
  254. /package/dist/{chunk-NKB43PGI.js.map → chunk-WZDTSBGQ.js.map} +0 -0
  255. /package/dist/{chunk-2UM6WHME.js.map → chunk-XE2QCCT2.js.map} +0 -0
  256. /package/dist/{chunk-FPEZ74F7.js.map → chunk-XNJQZLAP.js.map} +0 -0
  257. /package/dist/{chunk-SYVGVK4S.js.map → chunk-XTMYB2HY.js.map} +0 -0
  258. /package/dist/{chunk-OETHJBAL.js.map → chunk-XV6PUXJ5.js.map} +0 -0
  259. /package/dist/{chunk-UCLMKNHA.js.map → chunk-YIMV2KYM.js.map} +0 -0
  260. /package/dist/{chunk-DYZR3Z6D.js.map → chunk-YMQKPSB2.js.map} +0 -0
  261. /package/dist/{chunk-AYVCKGA6.js.map → chunk-YTXNDEUS.js.map} +0 -0
  262. /package/dist/{first-start-migration-4NETATFF.js.map → first-start-migration-Q2VB2E2D.js.map} +0 -0
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  StorageManager
3
- } from "./chunk-FHKXVTM5.js";
3
+ } from "./chunk-Q5XKKDFQ.js";
4
4
  import {
5
5
  keyring_exports,
6
6
  secureStoreDir
@@ -412,4 +412,4 @@ export {
412
412
  resolveNamespaceStorageRoot,
413
413
  NamespaceStorageRouter
414
414
  };
415
- //# sourceMappingURL=chunk-KYTRF64R.js.map
415
+ //# sourceMappingURL=chunk-5SCFDQEJ.js.map
@@ -18,7 +18,7 @@ import {
18
18
  } from "./chunk-6KTXE6A3.js";
19
19
  import {
20
20
  createConversationIndexBackend
21
- } from "./chunk-LEPOP46W.js";
21
+ } from "./chunk-227UFSEQ.js";
22
22
  import {
23
23
  FaissConversationIndexAdapter
24
24
  } from "./chunk-ET356KSB.js";
@@ -179,4 +179,4 @@ export {
179
179
  createConversationSearchBackend,
180
180
  createConversationIndexRuntime
181
181
  };
182
- //# sourceMappingURL=chunk-GG4DN63W.js.map
182
+ //# sourceMappingURL=chunk-62Y5AGCM.js.map
@@ -7,10 +7,10 @@ import {
7
7
  import {
8
8
  listMemoryGovernanceRuns,
9
9
  readMemoryGovernanceRunArtifact
10
- } from "./chunk-77QZW2D6.js";
10
+ } from "./chunk-3TDAA7VA.js";
11
11
  import {
12
12
  StorageManager
13
- } from "./chunk-FHKXVTM5.js";
13
+ } from "./chunk-Q5XKKDFQ.js";
14
14
  import {
15
15
  normalizeProjectionPreview,
16
16
  normalizeProjectionTags
@@ -1005,4 +1005,4 @@ export {
1005
1005
  verifyMemoryProjection,
1006
1006
  repairMemoryProjection
1007
1007
  };
1008
- //# sourceMappingURL=chunk-KHCUVYCY.js.map
1008
+ //# sourceMappingURL=chunk-6UKSOXAO.js.map
@@ -7,6 +7,9 @@ import {
7
7
  import {
8
8
  openclawReplayNormalizer
9
9
  } from "./chunk-H4CKS5B2.js";
10
+ import {
11
+ importSqlite
12
+ } from "./chunk-PYHOAXTI.js";
10
13
  import {
11
14
  exportJsonBundle
12
15
  } from "./chunk-UP6MOYCB.js";
@@ -16,9 +19,6 @@ import {
16
19
  import {
17
20
  importMarkdownBundle
18
21
  } from "./chunk-HDDRVXX4.js";
19
- import {
20
- importSqlite
21
- } from "./chunk-PYHOAXTI.js";
22
22
  import {
23
23
  detectImportFormat
24
24
  } from "./chunk-OZKVVUJB.js";
@@ -54,7 +54,7 @@ import {
54
54
  } from "./chunk-IIFFC3RL.js";
55
55
  import {
56
56
  rebuildMemoryLifecycleLedger
57
- } from "./chunk-QRWMS6SI.js";
57
+ } from "./chunk-Q6OL23WM.js";
58
58
  import {
59
59
  rebuildObservations
60
60
  } from "./chunk-DQTCGVFK.js";
@@ -72,7 +72,7 @@ import {
72
72
  } from "./chunk-HSSERO3E.js";
73
73
  import {
74
74
  searchVerifiedEpisodes
75
- } from "./chunk-2UM6WHME.js";
75
+ } from "./chunk-XE2QCCT2.js";
76
76
  import {
77
77
  getUtilityLearningStatus,
78
78
  learnUtilityPromotionWeights
@@ -86,15 +86,15 @@ import {
86
86
  } from "./chunk-OJP3N7UK.js";
87
87
  import {
88
88
  promoteSemanticRuleFromMemory
89
- } from "./chunk-7LF2OHIJ.js";
89
+ } from "./chunk-BRHKW7GY.js";
90
90
  import {
91
91
  searchVerifiedSemanticRules
92
- } from "./chunk-R6UMNP5C.js";
92
+ } from "./chunk-3T6HIIKA.js";
93
93
  import {
94
94
  buildResumeBundleFromState,
95
95
  getResumeBundleStatus,
96
96
  recordResumeBundle
97
- } from "./chunk-OW7NVMGQ.js";
97
+ } from "./chunk-QIZOU3FN.js";
98
98
  import {
99
99
  getWorkProductLedgerStatus,
100
100
  recordWorkProductLedgerEntry,
@@ -127,7 +127,7 @@ import {
127
127
  runOperatorInventory,
128
128
  runOperatorRepair,
129
129
  runOperatorSetup
130
- } from "./chunk-3Z5TGRFA.js";
130
+ } from "./chunk-3NZAVWU5.js";
131
131
  import {
132
132
  analyzeSessionIntegrity,
133
133
  applySessionRepair,
@@ -155,7 +155,7 @@ import {
155
155
  } from "./chunk-JXS5PDQ7.js";
156
156
  import {
157
157
  searchHarmonicRetrieval
158
- } from "./chunk-7AF243WZ.js";
158
+ } from "./chunk-GBVRVYF4.js";
159
159
  import {
160
160
  createEvalBaselineSnapshot,
161
161
  getEvalHarnessStatus,
@@ -165,6 +165,9 @@ import {
165
165
  runEvalStoredBaselineCiGate,
166
166
  validateEvalBenchmarkPack
167
167
  } from "./chunk-MCA2X4WH.js";
168
+ import {
169
+ getCueAnchorStoreStatus
170
+ } from "./chunk-ACPCA4NO.js";
168
171
  import {
169
172
  GraphDashboardServer
170
173
  } from "./chunk-YNDLCWXS.js";
@@ -172,10 +175,7 @@ import {
172
175
  rebuildMemoryProjection,
173
176
  repairMemoryProjection,
174
177
  verifyMemoryProjection
175
- } from "./chunk-KHCUVYCY.js";
176
- import {
177
- getCueAnchorStoreStatus
178
- } from "./chunk-ACPCA4NO.js";
178
+ } from "./chunk-6UKSOXAO.js";
179
179
  import {
180
180
  buildConnectorRowsFromDefinitions,
181
181
  parseConnectorsListOptions,
@@ -196,11 +196,11 @@ import {
196
196
  } from "./chunk-6TBIWIAG.js";
197
197
  import {
198
198
  parseConfig
199
- } from "./chunk-RYST72N5.js";
199
+ } from "./chunk-IINVXO3U.js";
200
200
  import {
201
201
  EngramAccessHttpServer,
202
202
  MeetingsInputError
203
- } from "./chunk-TSTI6A3A.js";
203
+ } from "./chunk-SYJW273H.js";
204
204
  import {
205
205
  WearablesInputError
206
206
  } from "./chunk-V7IZKJI3.js";
@@ -210,13 +210,13 @@ import {
210
210
  loadChatSession,
211
211
  processChatMessage,
212
212
  sessionBelongsToPrincipal
213
- } from "./chunk-GTD4Q62X.js";
213
+ } from "./chunk-H4GQ2Y24.js";
214
214
  import {
215
215
  getAbstractionNodeStoreStatus
216
216
  } from "./chunk-DJUKBGAD.js";
217
217
  import {
218
218
  EngramAccessService
219
- } from "./chunk-IVXVLDNT.js";
219
+ } from "./chunk-WKJTMXME.js";
220
220
  import {
221
221
  WorkStorage
222
222
  } from "./chunk-GDB4J2H3.js";
@@ -236,7 +236,7 @@ import {
236
236
  } from "./chunk-3F3CVVDS.js";
237
237
  import {
238
238
  readAggregateExtractionWatermark
239
- } from "./chunk-YFCEBB5P.js";
239
+ } from "./chunk-QTXNS3HB.js";
240
240
  import {
241
241
  getObjectiveStateStoreStatus
242
242
  } from "./chunk-HTP6XRUI.js";
@@ -245,24 +245,24 @@ import {
245
245
  readMemoryGovernanceRunArtifact,
246
246
  restoreMemoryGovernanceRun,
247
247
  runMemoryGovernance
248
- } from "./chunk-77QZW2D6.js";
248
+ } from "./chunk-3TDAA7VA.js";
249
249
  import {
250
250
  listNamespaces,
251
251
  runNamespaceMigration,
252
252
  verifyNamespaces
253
- } from "./chunk-ZUPKNWRZ.js";
253
+ } from "./chunk-MIUL6AUZ.js";
254
254
  import {
255
255
  analyzeGraphHealth
256
256
  } from "./chunk-YMOPYG3K.js";
257
257
  import {
258
258
  resolveNamespaceChildRoot
259
- } from "./chunk-YEQCMA5L.js";
259
+ } from "./chunk-BOSIHHOH.js";
260
260
  import {
261
261
  getCausalTrajectoryStoreStatus
262
262
  } from "./chunk-GPFZFCRN.js";
263
263
  import {
264
264
  meetingIdDate
265
- } from "./chunk-FHKXVTM5.js";
265
+ } from "./chunk-Q5XKKDFQ.js";
266
266
  import {
267
267
  isValidTranscriptDate
268
268
  } from "./chunk-UHVXE24Y.js";
@@ -8344,4 +8344,4 @@ export {
8344
8344
  listMemoryMarkdownFilePaths,
8345
8345
  registerCli
8346
8346
  };
8347
- //# sourceMappingURL=chunk-F6JYBVL6.js.map
8347
+ //# sourceMappingURL=chunk-7ZAC2C2U.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  createSearchBackend
3
- } from "./chunk-GG4DN63W.js";
3
+ } from "./chunk-62Y5AGCM.js";
4
4
  import {
5
5
  namespaceIdentityToken,
6
6
  normalizeNamespaceIdentity
@@ -470,4 +470,4 @@ export {
470
470
  NamespaceSearchRouter,
471
471
  normalizeQmdResultPath
472
472
  };
473
- //# sourceMappingURL=chunk-GF7RQWXC.js.map
473
+ //# sourceMappingURL=chunk-AJRJDXYR.js.map
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-RDFF2NAU.js";
5
5
  import {
6
6
  StorageManager
7
- } from "./chunk-FHKXVTM5.js";
7
+ } from "./chunk-Q5XKKDFQ.js";
8
8
  import {
9
9
  excludeSupportPassportPrivateMemories
10
10
  } from "./chunk-XDL5CYZN.js";
@@ -138,4 +138,4 @@ export {
138
138
  runCodexMaterialize,
139
139
  runPostConsolidationMaterialize
140
140
  };
141
- //# sourceMappingURL=chunk-YEQCMA5L.js.map
141
+ //# sourceMappingURL=chunk-BOSIHHOH.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  StorageManager
3
- } from "./chunk-FHKXVTM5.js";
3
+ } from "./chunk-Q5XKKDFQ.js";
4
4
  import {
5
5
  composeMemoryEnvelope
6
6
  } from "./chunk-LCU5R6TQ.js";
@@ -546,4 +546,4 @@ export {
546
546
  setSemanticRulePromotionTestHooks,
547
547
  promoteSemanticRuleFromMemory
548
548
  };
549
- //# sourceMappingURL=chunk-7LF2OHIJ.js.map
549
+ //# sourceMappingURL=chunk-BRHKW7GY.js.map
@@ -9,14 +9,14 @@ import {
9
9
  } from "./chunk-666A3MOW.js";
10
10
  import {
11
11
  rebuildMemoryLifecycleLedger
12
- } from "./chunk-QRWMS6SI.js";
12
+ } from "./chunk-Q6OL23WM.js";
13
13
  import {
14
14
  planNamespaceMaintenance,
15
15
  runNamespaceMaintenanceBatchPlan
16
- } from "./chunk-V3KIRICY.js";
16
+ } from "./chunk-QQYHYW2N.js";
17
17
  import {
18
18
  rebuildMemoryProjection
19
- } from "./chunk-KHCUVYCY.js";
19
+ } from "./chunk-6UKSOXAO.js";
20
20
  import {
21
21
  activityDayWindow,
22
22
  activityDigestPath,
@@ -1719,4 +1719,4 @@ export {
1719
1719
  ActivitySyncScheduler,
1720
1720
  MaintenanceScheduler
1721
1721
  };
1722
- //# sourceMappingURL=chunk-LX4TNSAE.js.map
1722
+ //# sourceMappingURL=chunk-CBY54QYW.js.map
@@ -0,0 +1,168 @@
1
+ import {
2
+ TIER_1_LANGUAGES
3
+ } from "./chunk-P32IDSHD.js";
4
+ import {
5
+ coerceBool
6
+ } from "./chunk-PQVCH2AE.js";
7
+
8
+ // src/coding/coding-knowledge-config.ts
9
+ var CODING_KNOWLEDGE_DEFAULTS = Object.freeze({
10
+ enabled: false,
11
+ decisionRecords: true,
12
+ architectureCard: true,
13
+ sessionDelta: true,
14
+ architectureCardLlmSummary: false,
15
+ structuralProvider: "none",
16
+ structuralProviderCommand: "",
17
+ codegraphTools: false,
18
+ codegraphDbDir: ""
19
+ // `lsp` is excluded: it is an optional structured sub-config (issue #1917)
20
+ // with no flat boolean/string default; the parser returns `undefined` when
21
+ // absent (LSP off — rule 48 explicit opt-in).
22
+ });
23
+ var VALID_STRUCTURAL_PROVIDERS = ["none", "subprocess", "native"];
24
+ function parseCodingKnowledgeConfig(raw) {
25
+ const record = raw && typeof raw === "object" && !Array.isArray(raw) ? raw : {};
26
+ const structuralProvider = readStructuralProvider(record.structuralProvider);
27
+ return {
28
+ enabled: readStrictBool(
29
+ record.enabled,
30
+ "enabled",
31
+ /* default */
32
+ false
33
+ ),
34
+ decisionRecords: readStrictBool(
35
+ record.decisionRecords,
36
+ "decisionRecords",
37
+ /* default */
38
+ true
39
+ ),
40
+ architectureCard: readStrictBool(
41
+ record.architectureCard,
42
+ "architectureCard",
43
+ /* default */
44
+ true
45
+ ),
46
+ sessionDelta: readStrictBool(
47
+ record.sessionDelta,
48
+ "sessionDelta",
49
+ /* default */
50
+ true
51
+ ),
52
+ architectureCardLlmSummary: readStrictBool(
53
+ record.architectureCardLlmSummary,
54
+ "architectureCardLlmSummary",
55
+ /* default */
56
+ false
57
+ ),
58
+ structuralProvider,
59
+ structuralProviderCommand: typeof record.structuralProviderCommand === "string" ? record.structuralProviderCommand.trim() : "",
60
+ codegraphTools: readStrictBool(
61
+ record.codegraphTools,
62
+ "codegraphTools",
63
+ /* default */
64
+ false
65
+ ),
66
+ codegraphDbDir: typeof record.codegraphDbDir === "string" ? record.codegraphDbDir.trim() : "",
67
+ // `lsp` is spread conditionally so an absent key stays ABSENT — an own
68
+ // `lsp: undefined` property would change the pinned defaults shape
69
+ // (config.test.ts) and leak a new key into serialized configs.
70
+ ...readLspField(record.lsp)
71
+ };
72
+ }
73
+ function isCodingKnowledgeFeatureVisible(config, feature) {
74
+ return config.enabled === true && config[feature] === true;
75
+ }
76
+ function isCodingKnowledgeFeatureEnabled(config, feature, codingContext) {
77
+ return isCodingKnowledgeFeatureVisible(config, feature) && codingContext != null;
78
+ }
79
+ function readLspField(raw) {
80
+ if (raw === void 0 || raw === null) return {};
81
+ if (typeof raw !== "object" || Array.isArray(raw)) {
82
+ throw new Error(
83
+ `codingKnowledge.lsp must be an object ({ enabled, servers?, timeoutMs?, maxRequestsPerRun? }); got ${JSON.stringify(raw)}`
84
+ );
85
+ }
86
+ return { lsp: parseLspConfig(raw) };
87
+ }
88
+ var STRICT_BOOL_ACCEPTED = "true/false/1/0/yes/no/on/off";
89
+ function readStrictBool(value, keyName, defaultValue) {
90
+ if (value === void 0) return defaultValue;
91
+ const coerced = coerceBool(value);
92
+ if (coerced === void 0) {
93
+ throw new Error(
94
+ `codingKnowledge.${keyName} must be a boolean or one of ${STRICT_BOOL_ACCEPTED}; got ${JSON.stringify(value)}.`
95
+ );
96
+ }
97
+ return coerced;
98
+ }
99
+ function readStructuralProvider(raw) {
100
+ if (raw === void 0) return "none";
101
+ if (typeof raw !== "string") {
102
+ throw new Error(
103
+ `codingKnowledge.structuralProvider must be a string (${VALID_STRUCTURAL_PROVIDERS.join(", ")}); got ${JSON.stringify(raw)}.`
104
+ );
105
+ }
106
+ if (raw === "none" || raw === "subprocess" || raw === "native") return raw;
107
+ throw new Error(
108
+ `codingKnowledge.structuralProvider must be one of ${VALID_STRUCTURAL_PROVIDERS.join(", ")}; got ${JSON.stringify(raw)}.`
109
+ );
110
+ }
111
+ function parseLspConfig(raw) {
112
+ const enabled = readStrictBool(raw.enabled, "lsp.enabled", false);
113
+ if (!enabled) return { enabled: false };
114
+ const servers = {};
115
+ if (raw.servers !== void 0 && raw.servers !== null) {
116
+ if (typeof raw.servers !== "object" || Array.isArray(raw.servers)) {
117
+ throw new Error(
118
+ `codingKnowledge.lsp.servers must be an object mapping language ids to { command, args? }; got ${JSON.stringify(raw.servers)}.`
119
+ );
120
+ }
121
+ for (const [lang, def] of Object.entries(raw.servers)) {
122
+ if (!TIER_1_LANGUAGES.includes(lang)) {
123
+ throw new Error(
124
+ `codingKnowledge.lsp.servers has unknown language key ${JSON.stringify(lang)}; valid keys: ${TIER_1_LANGUAGES.join(", ")}.`
125
+ );
126
+ }
127
+ if (!def || typeof def !== "object" || Array.isArray(def)) {
128
+ throw new Error(
129
+ `codingKnowledge.lsp.servers.${lang} must be an object ({ command, args? }); got ${JSON.stringify(def)}.`
130
+ );
131
+ }
132
+ const d = def;
133
+ if (typeof d.command !== "string" || d.command.trim().length === 0) {
134
+ throw new Error(
135
+ `codingKnowledge.lsp.servers.${lang}.command must be a non-empty string; got ${JSON.stringify(d.command)}.`
136
+ );
137
+ }
138
+ if (d.args !== void 0 && (!Array.isArray(d.args) || !d.args.every((a) => typeof a === "string"))) {
139
+ throw new Error(
140
+ `codingKnowledge.lsp.servers.${lang}.args must be an array of strings; got ${JSON.stringify(d.args)}.`
141
+ );
142
+ }
143
+ servers[lang] = {
144
+ command: d.command.trim(),
145
+ ...Array.isArray(d.args) ? { args: d.args } : {}
146
+ };
147
+ }
148
+ }
149
+ const timeoutMs = readPositiveInt(raw.timeoutMs, "lsp.timeoutMs", 3e3, 3e4);
150
+ const maxRequestsPerRun = readPositiveInt(raw.maxRequestsPerRun, "lsp.maxRequestsPerRun", 500, 5e3);
151
+ return { enabled: true, ...Object.keys(servers).length > 0 ? { servers } : {}, timeoutMs, maxRequestsPerRun };
152
+ }
153
+ function readPositiveInt(value, keyName, defaultValue, max) {
154
+ if (value === void 0) return defaultValue;
155
+ const coerced = typeof value === "string" && value.trim().length > 0 ? Number(value) : value;
156
+ if (typeof coerced !== "number" || !Number.isFinite(coerced) || !Number.isInteger(coerced) || coerced < 1 || coerced > max) {
157
+ throw new Error(
158
+ `codingKnowledge.${keyName} must be an integer in [1, ${max}]; got ${JSON.stringify(value)}. To disable LSP resolution set codingKnowledge.lsp.enabled to false.`
159
+ );
160
+ }
161
+ return coerced;
162
+ }
163
+
164
+ export {
165
+ parseCodingKnowledgeConfig,
166
+ isCodingKnowledgeFeatureEnabled
167
+ };
168
+ //# sourceMappingURL=chunk-FEHIOYML.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/coding/coding-knowledge-config.ts"],"sourcesContent":["/**\n * Track A (issue #1548 PR 1) — parse the `codingKnowledge` config block.\n *\n * Lives in `coding/` (not in `config.ts`) so adding a feature config block\n * does not grow the watchlisted `config.ts` past its ratchet baseline. The\n * function is a pure helper: it reads from the raw `cfg.codingKnowledge`\n * sub-object, applies defaults from `CODING_KNOWLEDGE_DEFAULTS`, validates\n * the structural-provider enum, and returns the populated\n * `CodingKnowledgeConfig`.\n *\n * Parse rules (CLAUDE.md gotcha 36, rule 30, rule 48):\n * - booleans are coerced at the parse boundary so CLI strings like\n * `--config codingKnowledge.enabled=false` arrive as `false`, not truthy.\n * - unknown structural-provider values are rejected listing the valid\n * options (rule 51 — silent defaulting is a contract lie).\n * - `structuralProvider` defaults to `\"none\"` (rule 48 — least-privileged:\n * spawning subprocesses is an explicit operator choice).\n *\n * Env overrides follow the REMNIC_* + ENGRAM_* fallback already used elsewhere\n * in `config.ts` (#1427 family). Each individual switch is `codingKnowledge.*` —\n * the existing `ENGRAM_*` env vars from earlier releases do not pair them up.\n */\n\nimport type { CodingContext, CodingGraphLspConfig, CodingKnowledgeConfig } from \"../types.js\";\nimport { TIER_1_LANGUAGES } from \"./coding-graph-types.js\";\nimport { coerceBool } from \"../connectors/coerce.js\";\n\nexport const CODING_KNOWLEDGE_DEFAULTS = Object.freeze({\n enabled: false,\n decisionRecords: true,\n architectureCard: true,\n sessionDelta: true,\n architectureCardLlmSummary: false,\n structuralProvider: \"none\",\n structuralProviderCommand: \"\",\n codegraphTools: false,\n codegraphDbDir: \"\",\n // `lsp` is excluded: it is an optional structured sub-config (issue #1917)\n // with no flat boolean/string default; the parser returns `undefined` when\n // absent (LSP off — rule 48 explicit opt-in).\n} satisfies Record<Exclude<keyof CodingKnowledgeConfig, \"lsp\">, boolean | string>);\n\nconst VALID_STRUCTURAL_PROVIDERS = [\"none\", \"subprocess\", \"native\"] as const;\ntype StructuralProvider = CodingKnowledgeConfig[\"structuralProvider\"];\n\n/**\n * Parse the `codingKnowledge` sub-object into a fully-populated\n * `CodingKnowledgeConfig`. Returns the documented defaults when the\n * sub-object is missing, null, not an object, or has unknown shape.\n *\n * Throws when an explicit `structuralProvider` value is not one of the\n * declared enum values (rule 51 — listing valid options in the error).\n */\nexport function parseCodingKnowledgeConfig(raw: unknown): CodingKnowledgeConfig {\n const record =\n raw && typeof raw === \"object\" && !Array.isArray(raw)\n ? (raw as Record<string, unknown>)\n : {};\n\n const structuralProvider = readStructuralProvider(record.structuralProvider);\n return {\n enabled: readStrictBool(record.enabled, \"enabled\", /* default */ false),\n decisionRecords: readStrictBool(record.decisionRecords, \"decisionRecords\", /* default */ true),\n architectureCard: readStrictBool(record.architectureCard, \"architectureCard\", /* default */ true),\n sessionDelta: readStrictBool(record.sessionDelta, \"sessionDelta\", /* default */ true),\n architectureCardLlmSummary: readStrictBool(record.architectureCardLlmSummary, \"architectureCardLlmSummary\", /* default */ false),\n structuralProvider,\n structuralProviderCommand:\n typeof record.structuralProviderCommand === \"string\"\n ? record.structuralProviderCommand.trim()\n : \"\",\n codegraphTools: readStrictBool(record.codegraphTools, \"codegraphTools\", /* default */ false),\n codegraphDbDir:\n typeof record.codegraphDbDir === \"string\"\n ? record.codegraphDbDir.trim()\n : \"\",\n // `lsp` is spread conditionally so an absent key stays ABSENT — an own\n // `lsp: undefined` property would change the pinned defaults shape\n // (config.test.ts) and leak a new key into serialized configs.\n ...readLspField(record.lsp),\n };\n}\n\n// ──────────────────────────────────────────────────────────────────────────\n// Shared surface gates (rule 39: ONE predicate pair, identical on every\n// surface — issue #2478 dedupe). Each Track A surface used to carry its own\n// copy of this logic; they all resolve here now. The booleans are already\n// strict-coerced by parseCodingKnowledgeConfig, so `=== true` is safe here.\n// ──────────────────────────────────────────────────────────────────────────\n\n/** Boolean feature switches governed by the master `codingKnowledge.enabled` gate. */\nexport type CodingKnowledgeFeatureFlag = \"decisionRecords\" | \"architectureCard\" | \"sessionDelta\";\n\n/**\n * Config-only visibility gate — used by the MCP constructor to decide\n * whether a coding tool is advertised in `tools/list`. True only when the\n * master gate AND the feature switch are both on.\n */\nexport function isCodingKnowledgeFeatureVisible(\n config: CodingKnowledgeConfig,\n feature: CodingKnowledgeFeatureFlag,\n): boolean {\n return config.enabled === true && config[feature] === true;\n}\n\n/**\n * Full call-time gate: visibility PLUS an attached coding context\n * (project/branch-scoped session). Handlers check this before dispatch.\n */\nexport function isCodingKnowledgeFeatureEnabled(\n config: CodingKnowledgeConfig,\n feature: CodingKnowledgeFeatureFlag,\n codingContext: CodingContext | null | undefined,\n): boolean {\n return isCodingKnowledgeFeatureVisible(config, feature) && codingContext != null;\n}\n\n/**\n * Read the optional `codingKnowledge.lsp` sub-object. Absent → empty\n * spread (no own key). Present-but-malformed (string/number/array) is\n * REJECTED, consistent with `readStrictBool`'s posture — a typo like\n * `\"lsp\": true` must alert the operator, not silently disable Phase B.\n */\nfunction readLspField(raw: unknown): { lsp?: CodingGraphLspConfig } {\n if (raw === undefined || raw === null) return {};\n if (typeof raw !== \"object\" || Array.isArray(raw)) {\n throw new Error(\n `codingKnowledge.lsp must be an object ({ enabled, servers?, timeoutMs?, maxRequestsPerRun? }); got ${JSON.stringify(raw)}`,\n );\n }\n return { lsp: parseLspConfig(raw as Record<string, unknown>) };\n}\n\nconst STRICT_BOOL_ACCEPTED = \"true/false/1/0/yes/no/on/off\";\n\n/**\n * Strict boolean parse for feature-gate config values.\n * - `undefined` falls back to `defaultValue` (the key was simply not\n * supplied).\n * - `true`/`false` (native) and the boolean-like strings listed in\n * `STRICT_BOOL_ACCEPTED` are honored (rule 36 — CLI string parity).\n * - Any other shape, including misspelled strings like `\"flase\"`,\n * numbers outside `{0, 1}`, objects, arrays — is REJECTED with an\n * error listing the valid inputs (rule 51). Silent defaulting on\n * malformed operator input is a contract lie.\n */\nexport function readStrictBool(\n value: unknown,\n keyName: string,\n defaultValue: boolean,\n): boolean {\n if (value === undefined) return defaultValue;\n const coerced = coerceBool(value);\n if (coerced === undefined) {\n throw new Error(\n `codingKnowledge.${keyName} must be a boolean or one of ${STRICT_BOOL_ACCEPTED}; ` +\n `got ${JSON.stringify(value)}.`,\n );\n }\n return coerced;\n}\n\nfunction readStructuralProvider(raw: unknown): StructuralProvider {\n if (raw === undefined) return \"none\";\n if (typeof raw !== \"string\") {\n throw new Error(\n `codingKnowledge.structuralProvider must be a string (` +\n `${VALID_STRUCTURAL_PROVIDERS.join(\", \")}); got ${JSON.stringify(raw)}.`,\n );\n }\n if (raw === \"none\" || raw === \"subprocess\" || raw === \"native\") return raw;\n throw new Error(\n `codingKnowledge.structuralProvider must be one of ` +\n `${VALID_STRUCTURAL_PROVIDERS.join(\", \")}; got ${JSON.stringify(raw)}.`,\n );\n}\n\n/**\n * Parse the `codingKnowledge.lsp` sub-object (issue #1917). Returns\n * `{ enabled: false }` when absent or malformed — LSP is opt-in.\n */\nfunction parseLspConfig(raw: Record<string, unknown>): CodingGraphLspConfig {\n const enabled = readStrictBool(raw.enabled, \"lsp.enabled\", false);\n if (!enabled) return { enabled: false };\n\n // Server overrides are validated STRICTLY (rule 51): a malformed entry\n // or a misspelled language key must not silently fall through to the\n // built-in default server — the operator configured an override for a\n // reason. Keys validate against TIER_1_LANGUAGES (core owns the tier-1\n // list in coding-graph-types.ts, so there is no drift risk).\n const servers: CodingGraphLspConfig[\"servers\"] = {};\n if (raw.servers !== undefined && raw.servers !== null) {\n if (typeof raw.servers !== \"object\" || Array.isArray(raw.servers)) {\n throw new Error(\n `codingKnowledge.lsp.servers must be an object mapping language ids to { command, args? }; got ${JSON.stringify(raw.servers)}.`,\n );\n }\n for (const [lang, def] of Object.entries(raw.servers as Record<string, unknown>)) {\n if (!(TIER_1_LANGUAGES as readonly string[]).includes(lang)) {\n throw new Error(\n `codingKnowledge.lsp.servers has unknown language key ${JSON.stringify(lang)}; valid keys: ${TIER_1_LANGUAGES.join(\", \")}.`,\n );\n }\n if (!def || typeof def !== \"object\" || Array.isArray(def)) {\n throw new Error(\n `codingKnowledge.lsp.servers.${lang} must be an object ({ command, args? }); got ${JSON.stringify(def)}.`,\n );\n }\n const d = def as Record<string, unknown>;\n if (typeof d.command !== \"string\" || d.command.trim().length === 0) {\n throw new Error(\n `codingKnowledge.lsp.servers.${lang}.command must be a non-empty string; got ${JSON.stringify(d.command)}.`,\n );\n }\n if (d.args !== undefined && (!Array.isArray(d.args) || !d.args.every((a) => typeof a === \"string\"))) {\n throw new Error(\n `codingKnowledge.lsp.servers.${lang}.args must be an array of strings; got ${JSON.stringify(d.args)}.`,\n );\n }\n servers[lang] = {\n command: d.command.trim(),\n ...(Array.isArray(d.args) ? { args: d.args as string[] } : {}),\n };\n }\n }\n\n const timeoutMs = readPositiveInt(raw.timeoutMs, \"lsp.timeoutMs\", 3_000, 30_000);\n const maxRequestsPerRun = readPositiveInt(raw.maxRequestsPerRun, \"lsp.maxRequestsPerRun\", 500, 5_000);\n\n return { enabled: true, ...(Object.keys(servers).length > 0 ? { servers } : {}), timeoutMs, maxRequestsPerRun };\n}\n\n/**\n * Strict positive-integer parse for LSP numeric knobs (rule 51 + CLI\n * string parity, pattern 17). `undefined` falls back to the default;\n * strings coerce via Number() (CLI values arrive as strings); anything\n * non-integer, < 1 (0 is NOT a disable value here — set lsp.enabled:false\n * to disable), or > max is REJECTED instead of silently replaced.\n */\nfunction readPositiveInt(value: unknown, keyName: string, defaultValue: number, max: number): number {\n if (value === undefined) return defaultValue;\n const coerced = typeof value === \"string\" && value.trim().length > 0 ? Number(value) : value;\n if (typeof coerced !== \"number\" || !Number.isFinite(coerced) || !Number.isInteger(coerced) || coerced < 1 || coerced > max) {\n throw new Error(\n `codingKnowledge.${keyName} must be an integer in [1, ${max}]; got ${JSON.stringify(value)}. ` +\n `To disable LSP resolution set codingKnowledge.lsp.enabled to false.`,\n );\n }\n return coerced;\n}\n"],"mappings":"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","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  EXTRACTION_RESPONSE_PLACEHOLDERS
3
- } from "./chunk-R7TZ2HCS.js";
3
+ } from "./chunk-JG22O53B.js";
4
4
  import {
5
5
  normalizeRecallTokens
6
6
  } from "./chunk-YCVB7X56.js";
@@ -69,4 +69,4 @@ export {
69
69
  extractionAttributes,
70
70
  extractionCueAnchors
71
71
  };
72
- //# sourceMappingURL=chunk-6YMEU6OQ.js.map
72
+ //# sourceMappingURL=chunk-G72IPMR7.js.map
@@ -296,4 +296,4 @@ async function searchHarmonicRetrieval(options) {
296
296
  export {
297
297
  searchHarmonicRetrieval
298
298
  };
299
- //# sourceMappingURL=chunk-7AF243WZ.js.map
299
+ //# sourceMappingURL=chunk-GBVRVYF4.js.map
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-D24OXEPB.js";
10
10
  import {
11
11
  validateRequest
12
- } from "./chunk-CIAI24TQ.js";
12
+ } from "./chunk-IBZQQOM5.js";
13
13
  import {
14
14
  REMNIC_CHATGPT_MEMORY_INSPECTOR_MIME_TYPE,
15
15
  REMNIC_CHATGPT_MEMORY_INSPECTOR_TOOL,
@@ -25,7 +25,7 @@ import {
25
25
  } from "./chunk-YYQAKIDJ.js";
26
26
  import {
27
27
  getOperation
28
- } from "./chunk-IVXVLDNT.js";
28
+ } from "./chunk-WKJTMXME.js";
29
29
  import {
30
30
  SUPPORT_PASSPORT_SOURCE_MEMORY_ID_MAX_LENGTH
31
31
  } from "./chunk-XDL5CYZN.js";
@@ -3942,4 +3942,4 @@ export {
3942
3942
  MCP_SUPPORTED_PROTOCOL_VERSIONS,
3943
3943
  EngramMcpServer
3944
3944
  };
3945
- //# sourceMappingURL=chunk-GTD4Q62X.js.map
3945
+ //# sourceMappingURL=chunk-H4GQ2Y24.js.map
@@ -1,9 +1,9 @@
1
- import {
2
- runGraphEdgeDecayMaintenanceAcrossNamespaces
3
- } from "./chunk-LTBKKSCX.js";
4
1
  import {
5
2
  normalizeDreamsStatusWindowHours
6
3
  } from "./chunk-EQWEIIKQ.js";
4
+ import {
5
+ runGraphEdgeDecayMaintenanceAcrossNamespaces
6
+ } from "./chunk-LTBKKSCX.js";
7
7
  import {
8
8
  runContradictionScan
9
9
  } from "./chunk-7BY7V4YX.js";
@@ -28,10 +28,10 @@ import {
28
28
  defineOperation,
29
29
  parseNamespacePreflightWriteOp,
30
30
  resolveAuthorizedNamespaceWritablePreflight
31
- } from "./chunk-IVXVLDNT.js";
31
+ } from "./chunk-WKJTMXME.js";
32
32
  import {
33
33
  validateBriefingFormat
34
- } from "./chunk-AYVCKGA6.js";
34
+ } from "./chunk-YTXNDEUS.js";
35
35
  import {
36
36
  enforceNamespaceAllowList,
37
37
  tokenCapabilityStore
@@ -494,4 +494,4 @@ defineOperation({ name: "graph_events", description: "SSE graph events.", schema
494
494
  defineOperation({ name: "chat_message", description: "Chat message.", schema: strictSchema({ message: S.str, chatSessionId: S.str }), handler: async (_i, _ctx) => ({ result: { ok: true } }) });
495
495
  defineOperation({ name: "chat_events", description: "SSE chat events.", schema: strictSchema({}), handler: async (_i, _ctx) => ({ result: { stream: "sse" } }) });
496
496
  defineOperation({ name: "adapters_status", description: "Adapter registry metadata (issue #1850 round 5). Marker op: the HTTP transport builds the response from its own adapterRegistry, but the op still must be registered so it appears in listRegisteredOperations and enforceTokenOp can gate it for scoped tokens.", schema: strictSchema({}), handler: async (_i, _ctx) => ({ result: { ok: true } }) });
497
- //# sourceMappingURL=chunk-QI5RDDEL.js.map
497
+ //# sourceMappingURL=chunk-HXZNTZ3Y.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  isValidCapsuleSince
3
- } from "./chunk-IPLYGWQF.js";
3
+ } from "./chunk-KQAFEZQX.js";
4
4
  import {
5
5
  CAPSULE_ID_PATTERN
6
6
  } from "./chunk-WEHSQBFR.js";
@@ -12,7 +12,7 @@ import {
12
12
  import {
13
13
  OFFLINE_SYNC_FILE_CONTENT_MAX_CHUNK_BYTES,
14
14
  OFFLINE_SYNC_MAX_MTIME_MS
15
- } from "./chunk-Z4N7SVVF.js";
15
+ } from "./chunk-2L7DKNVE.js";
16
16
  import {
17
17
  validateArchiveRelativePath
18
18
  } from "./chunk-GCGJW34D.js";
@@ -475,4 +475,4 @@ export {
475
475
  actionConfidenceRequestSchema,
476
476
  validateRequest
477
477
  };
478
- //# sourceMappingURL=chunk-CIAI24TQ.js.map
478
+ //# sourceMappingURL=chunk-IBZQQOM5.js.map