@remnic/core 9.69.60 → 9.69.63

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 (360) hide show
  1. package/dist/access-admin-ops-surface.js +38 -38
  2. package/dist/access-authorization-probe.js +39 -39
  3. package/dist/access-boundary.js +38 -38
  4. package/dist/access-cli.js +95 -95
  5. package/dist/access-extraction-force-flush.js +38 -38
  6. package/dist/access-http-briefing.js +39 -39
  7. package/dist/access-http-query.js +40 -40
  8. package/dist/access-http.js +56 -56
  9. package/dist/access-identity-continuity-surface.js +38 -38
  10. package/dist/access-lcm-surface.js +38 -38
  11. package/dist/access-mcp.js +49 -49
  12. package/dist/access-memory-search-fanout.js +3 -3
  13. package/dist/access-namespace-preflight.js +38 -38
  14. package/dist/access-observe-write-surface.js +38 -38
  15. package/dist/access-offline-manifest.js +6 -6
  16. package/dist/access-operations-batch.js +40 -40
  17. package/dist/access-operations.js +47 -47
  18. package/dist/access-recall-concurrency.js +38 -38
  19. package/dist/access-recall-diagnostics.js +5 -5
  20. package/dist/access-recall-response.js +38 -38
  21. package/dist/access-recall-surface.js +38 -38
  22. package/dist/access-service.js +38 -38
  23. package/dist/access-surface-catalog.js +40 -40
  24. package/dist/active-memory-bridge.js +3 -3
  25. package/dist/active-recall.js +9 -9
  26. package/dist/{auto-sync-CWSZDLLW.js → auto-sync-QJNIKZHV.js} +5 -5
  27. package/dist/briefing.js +8 -8
  28. package/dist/buffer-turn-helpers.d.ts.map +1 -1
  29. package/dist/buffer-turn-helpers.js +1 -1
  30. package/dist/buffer.d.ts.map +1 -1
  31. package/dist/buffer.js +7 -7
  32. package/dist/calibration.js +2 -2
  33. package/dist/capabilities.d.ts +6 -7
  34. package/dist/capabilities.d.ts.map +1 -1
  35. package/dist/capabilities.js +1 -1
  36. package/dist/causal-consolidation.js +9 -9
  37. package/dist/{chunk-6Q3ZTEF6.js → chunk-23G5P7TA.js} +9 -1
  38. package/dist/chunk-23G5P7TA.js.map +1 -0
  39. package/dist/{chunk-RP7TZEI6.js → chunk-24TJ77TT.js} +2 -2
  40. package/dist/{chunk-ZLVUWROW.js → chunk-2OUSWDY6.js} +2 -2
  41. package/dist/{chunk-M5IJP3YW.js → chunk-2PKGJPQL.js} +2 -2
  42. package/dist/{chunk-FJMYMJLR.js → chunk-3JDA3XF5.js} +2 -2
  43. package/dist/{chunk-JGT7M3BA.js → chunk-3MSMBVA3.js} +6 -6
  44. package/dist/{chunk-6JYYSDHH.js → chunk-4EEDRKRT.js} +4 -4
  45. package/dist/{chunk-YUHGJBQK.js → chunk-5LWVTSF7.js} +2 -2
  46. package/dist/{chunk-WLZYGLJ4.js → chunk-5MA7ZLPD.js} +5 -7
  47. package/dist/chunk-5MA7ZLPD.js.map +1 -0
  48. package/dist/{chunk-2T2RF5ZK.js → chunk-5QZHDS4X.js} +5 -5
  49. package/dist/{chunk-64JK4TL7.js → chunk-5WXJE5TV.js} +4 -4
  50. package/dist/{chunk-DJ4CKWAD.js → chunk-5Y7VCE3A.js} +2 -2
  51. package/dist/{chunk-G2XZFGYN.js → chunk-62JTOLEX.js} +2 -2
  52. package/dist/{chunk-LVXBC6YB.js → chunk-65I2LZEK.js} +2 -2
  53. package/dist/{chunk-NZLFVLLJ.js → chunk-7CRUDH7G.js} +2 -2
  54. package/dist/{chunk-B4EGAHHS.js → chunk-7DE2NOON.js} +2 -2
  55. package/dist/{chunk-BSDBDFKZ.js → chunk-7JFQI6DQ.js} +3 -3
  56. package/dist/{chunk-BOADKFN4.js → chunk-7LNHRQKR.js} +2 -2
  57. package/dist/{chunk-IV6APZJS.js → chunk-7OC3Q5X4.js} +2 -2
  58. package/dist/{chunk-X2QPKLPL.js → chunk-ACX55QDO.js} +3 -3
  59. package/dist/{chunk-YLPCEUXP.js → chunk-AEGQ5PJ7.js} +2 -2
  60. package/dist/{chunk-GK6NOQE6.js → chunk-AERXJCOG.js} +2 -2
  61. package/dist/{chunk-HW2QYZEV.js → chunk-B5GMOOY2.js} +5 -5
  62. package/dist/{chunk-NLE6TSLG.js → chunk-BLVHDY2U.js} +5 -7
  63. package/dist/chunk-BLVHDY2U.js.map +1 -0
  64. package/dist/{chunk-JUOZ62Y7.js → chunk-BMXEBWBT.js} +2 -1
  65. package/dist/chunk-BMXEBWBT.js.map +1 -0
  66. package/dist/{chunk-YHGRA7CK.js → chunk-CDQO5DCD.js} +2 -2
  67. package/dist/{chunk-ENUI3IO7.js → chunk-D433RXFJ.js} +2 -2
  68. package/dist/{chunk-IK63WA5A.js → chunk-D4SPMHEW.js} +2 -2
  69. package/dist/{chunk-42DJ235G.js → chunk-DINRT75P.js} +2 -2
  70. package/dist/{chunk-LELJRLPY.js → chunk-DQFZOPDL.js} +2 -2
  71. package/dist/{chunk-WN4HFL4K.js → chunk-DQISIT63.js} +2 -2
  72. package/dist/{chunk-Q7KQ5YHT.js → chunk-EIU642TN.js} +2 -2
  73. package/dist/{chunk-EN2YX5SF.js → chunk-F4PEETM4.js} +3 -3
  74. package/dist/{chunk-FNQEXI3D.js → chunk-F5O6WEDO.js} +1 -1
  75. package/dist/{chunk-FNQEXI3D.js.map → chunk-F5O6WEDO.js.map} +1 -1
  76. package/dist/{chunk-Q6C5PIBW.js → chunk-F5ZCNJ3V.js} +3 -3
  77. package/dist/{chunk-KR5SZNNF.js → chunk-FEHVG4C4.js} +2 -2
  78. package/dist/{chunk-42G4FIKQ.js → chunk-FG5QU7A2.js} +4 -4
  79. package/dist/{chunk-IRGQYQQ7.js → chunk-FM5HN7LL.js} +4 -4
  80. package/dist/{chunk-FF2XYADH.js → chunk-FQGY7XB2.js} +6 -6
  81. package/dist/{chunk-FF2XYADH.js.map → chunk-FQGY7XB2.js.map} +1 -1
  82. package/dist/{chunk-IDBLAGIM.js → chunk-FTNV5476.js} +14 -14
  83. package/dist/{chunk-R4Y5PF25.js → chunk-FWVDTLRK.js} +1 -1
  84. package/dist/{chunk-C6FQJ52H.js → chunk-G2XTGEGL.js} +65 -18
  85. package/dist/chunk-G2XTGEGL.js.map +1 -0
  86. package/dist/{chunk-Q5FL3MEH.js → chunk-G4WZDQ32.js} +3 -3
  87. package/dist/{chunk-4HNY6ORZ.js → chunk-GMHWCPLP.js} +2 -2
  88. package/dist/{chunk-ZWWKKAJL.js → chunk-GYNCJSQ7.js} +4 -4
  89. package/dist/{chunk-BJI2D4SU.js → chunk-GZBNEZIU.js} +3 -3
  90. package/dist/{chunk-NYVECYCF.js → chunk-HNOKNHFO.js} +2 -2
  91. package/dist/{chunk-XLXYARWC.js → chunk-HXCJF4XU.js} +2 -2
  92. package/dist/{chunk-RMF763SX.js → chunk-IDRSTHVR.js} +5 -5
  93. package/dist/{chunk-UXREWVW4.js → chunk-IW3RMBPB.js} +2 -2
  94. package/dist/{chunk-W6YK672C.js → chunk-JTTLH646.js} +3 -3
  95. package/dist/{chunk-BQB5ZMYO.js → chunk-KKNZ7PUZ.js} +2 -2
  96. package/dist/{chunk-AAMFQHKI.js → chunk-KRPMISWO.js} +3 -3
  97. package/dist/{chunk-XX2IGMCB.js → chunk-KV44HTMJ.js} +2 -2
  98. package/dist/{chunk-FKFTPFUG.js → chunk-KXJ7XYUT.js} +2 -2
  99. package/dist/{chunk-2NZ7KWRW.js → chunk-LAEW4S43.js} +2 -2
  100. package/dist/{chunk-5SV2GFZX.js → chunk-LDP6LBDS.js} +2 -2
  101. package/dist/{chunk-F6WCOXTF.js → chunk-LMLPLIT4.js} +2 -2
  102. package/dist/{chunk-QJTFMH5Y.js → chunk-LVGVXG22.js} +2 -2
  103. package/dist/{chunk-OINFRHLR.js → chunk-NRTVZSPO.js} +2 -2
  104. package/dist/{chunk-IAZPYX6W.js → chunk-NRVGODSE.js} +3 -3
  105. package/dist/{chunk-IHOXK2I6.js → chunk-NVKO5YKP.js} +2 -2
  106. package/dist/{chunk-OQQXGYMX.js → chunk-OWYHHW67.js} +4 -4
  107. package/dist/{chunk-KPKGDQR3.js → chunk-PZEXA6CM.js} +2 -2
  108. package/dist/{chunk-DXODYQ7J.js → chunk-Q3THVX75.js} +2 -2
  109. package/dist/{chunk-TAC5WFJC.js → chunk-QEGKMZNQ.js} +4 -4
  110. package/dist/{chunk-VRF2KFI2.js → chunk-RA3C46VX.js} +2 -2
  111. package/dist/{chunk-V2HHAAPI.js → chunk-RB776UH3.js} +2 -2
  112. package/dist/{chunk-TAIIC5OM.js → chunk-SEHKTE4F.js} +3 -3
  113. package/dist/{chunk-3JLWSFTV.js → chunk-SVWYZXIL.js} +8 -5
  114. package/dist/{chunk-3JLWSFTV.js.map → chunk-SVWYZXIL.js.map} +1 -1
  115. package/dist/{chunk-G6E7XJYL.js → chunk-SZAWZPY6.js} +10 -10
  116. package/dist/{chunk-2AD5SXO4.js → chunk-T5IF2ZCE.js} +5 -2
  117. package/dist/chunk-T5IF2ZCE.js.map +1 -0
  118. package/dist/{chunk-TYZK56OA.js → chunk-TPRBJF46.js} +9 -9
  119. package/dist/{chunk-7DNMX7SA.js → chunk-TQC6ELJO.js} +2 -2
  120. package/dist/{chunk-OVJFS5P5.js → chunk-U6HXB2OG.js} +2 -2
  121. package/dist/{chunk-7WSQZJPC.js → chunk-V3JM4XEI.js} +4 -4
  122. package/dist/{chunk-36S7UHAW.js → chunk-VEBYLZQQ.js} +2 -2
  123. package/dist/{chunk-IMJPJY7V.js → chunk-VHF73MGU.js} +2 -2
  124. package/dist/{chunk-TDULASPE.js → chunk-VKDWYDFQ.js} +7 -7
  125. package/dist/{chunk-NKXHCCLB.js → chunk-VTPASHTO.js} +2 -2
  126. package/dist/{chunk-4B5S3VWD.js → chunk-VXGB766B.js} +29 -29
  127. package/dist/{chunk-ADP2VCP6.js → chunk-W5UAB6EH.js} +5 -5
  128. package/dist/{chunk-L3R24OLZ.js → chunk-W65KK3X6.js} +2 -2
  129. package/dist/{chunk-BJX6G726.js → chunk-WAR75CRY.js} +67 -64
  130. package/dist/chunk-WAR75CRY.js.map +1 -0
  131. package/dist/{chunk-MNIPH6LD.js → chunk-WBYQA3VN.js} +3 -3
  132. package/dist/{chunk-WD2JD2UB.js → chunk-WEQZ5OYK.js} +2 -2
  133. package/dist/{chunk-AJW2K7K3.js → chunk-WKNWC46C.js} +2 -2
  134. package/dist/{chunk-UD6J2LIA.js → chunk-XDH5MO6L.js} +2 -2
  135. package/dist/{chunk-MRV7VSQK.js → chunk-Y23L4YJV.js} +2 -2
  136. package/dist/{chunk-6ISP2EN2.js → chunk-YF3JERFZ.js} +2 -2
  137. package/dist/{chunk-C5CPYMLX.js → chunk-YR6A6ZK7.js} +2 -2
  138. package/dist/{chunk-EJO2NWW7.js → chunk-Z3YQOV45.js} +2 -2
  139. package/dist/{chunk-6KTXE6A3.js → chunk-Z4TXB4K7.js} +2 -2
  140. package/dist/{chunk-Y76HXF3F.js → chunk-ZDZJ2PG4.js} +393 -41
  141. package/dist/{chunk-Y76HXF3F.js.map → chunk-ZDZJ2PG4.js.map} +1 -1
  142. package/dist/{chunk-6VITOSPL.js → chunk-ZFUPRODV.js} +2 -2
  143. package/dist/cli.js +70 -70
  144. package/dist/coding/export-okf-codegraph.js +7 -7
  145. package/dist/compounding/engine.js +9 -9
  146. package/dist/config-security.d.ts +4 -0
  147. package/dist/config-security.d.ts.map +1 -1
  148. package/dist/config-security.js +2 -2
  149. package/dist/config.js +9 -9
  150. package/dist/connectors/codex-materialize-runner.js +8 -8
  151. package/dist/connectors/index.js +9 -9
  152. package/dist/contradiction/index.js +3 -3
  153. package/dist/{contradiction-scan-GVD4JJ7B.js → contradiction-scan-5EJYRKD3.js} +3 -3
  154. package/dist/convergence-refresh.js +10 -10
  155. package/dist/corpus-watermark.js +10 -10
  156. package/dist/day-summary.js +2 -2
  157. package/dist/embedding-fallback.js +2 -2
  158. package/dist/entity-retrieval.js +9 -9
  159. package/dist/explicit-capture.js +2 -2
  160. package/dist/external-wiki-access.js +39 -39
  161. package/dist/extraction-judge.js +3 -3
  162. package/dist/extraction-normalization.js +3 -3
  163. package/dist/extraction-prompt.js +2 -2
  164. package/dist/extraction.js +21 -21
  165. package/dist/{first-start-migration-L3UFX5CU.js → first-start-migration-7OATHJKB.js} +2 -2
  166. package/dist/harmonic-retrieval.js +1 -1
  167. package/dist/index.d.ts +3 -3
  168. package/dist/index.d.ts.map +1 -1
  169. package/dist/index.js +99 -95
  170. package/dist/local-llm.js +2 -2
  171. package/dist/location/index.js +10 -10
  172. package/dist/maintenance/memory-governance.js +8 -8
  173. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +8 -8
  174. package/dist/maintenance/rebuild-memory-projection.js +9 -9
  175. package/dist/memory-browse-operations.js +39 -39
  176. package/dist/model-registry.d.ts.map +1 -1
  177. package/dist/model-registry.js +1 -1
  178. package/dist/namespaces/migrate.js +9 -9
  179. package/dist/namespaces/principal.js +2 -2
  180. package/dist/namespaces/search.js +4 -4
  181. package/dist/namespaces/storage.js +8 -8
  182. package/dist/offline-sync-impression-drain.js +5 -5
  183. package/dist/operator-doctor-corpus.js +11 -11
  184. package/dist/operator-toolkit.js +21 -21
  185. package/dist/orchestration/compression-guideline-coordinator.js +2 -2
  186. package/dist/orchestration/extraction-injection-gate.d.ts +5 -4
  187. package/dist/orchestration/extraction-injection-gate.d.ts.map +1 -1
  188. package/dist/orchestration/maintenance.js +20 -20
  189. package/dist/orchestration/turn-ingestion.d.ts.map +1 -1
  190. package/dist/orchestrator.js +95 -95
  191. package/dist/profiling.d.ts.map +1 -1
  192. package/dist/profiling.js +1 -1
  193. package/dist/recall-composition-decision.js +3 -3
  194. package/dist/recall-context-composition.js +2 -2
  195. package/dist/recall-explain-renderer.js +3 -3
  196. package/dist/recall-navigate-access.js +2 -2
  197. package/dist/recall-navigate-disclosure.js +2 -2
  198. package/dist/recall-navigate.js +2 -2
  199. package/dist/recall-navigation-operations.js +39 -39
  200. package/dist/recall-navigation.js +38 -38
  201. package/dist/recall-why-service.js +5 -5
  202. package/dist/recall-why.js +3 -3
  203. package/dist/recall-xray-cli.js +4 -4
  204. package/dist/recall-xray-renderer.js +3 -3
  205. package/dist/recall-xray.js +2 -2
  206. package/dist/{resolution-CHNISQJB.js → resolution-UYJU5JUA.js} +4 -4
  207. package/dist/resume-bundles.js +10 -10
  208. package/dist/search/embed-helper.js +2 -2
  209. package/dist/search/factory.js +3 -3
  210. package/dist/search/index.js +3 -3
  211. package/dist/security/audit-memory-cli.d.ts.map +1 -1
  212. package/dist/security/audit-memory.d.ts +13 -0
  213. package/dist/security/audit-memory.d.ts.map +1 -1
  214. package/dist/security/injection-screen.d.ts +2 -2
  215. package/dist/security/injection-screen.d.ts.map +1 -1
  216. package/dist/security/origin-authority.d.ts +3 -0
  217. package/dist/security/origin-authority.d.ts.map +1 -1
  218. package/dist/security/types.d.ts +5 -0
  219. package/dist/security/types.d.ts.map +1 -1
  220. package/dist/semantic-consolidation.js +9 -9
  221. package/dist/semantic-rule-promotion.js +8 -8
  222. package/dist/semantic-rule-verifier.js +8 -8
  223. package/dist/shared-context/manager.js +2 -2
  224. package/dist/source-agent-qualifier.js +14 -14
  225. package/dist/standup/build.js +8 -8
  226. package/dist/storage.js +7 -7
  227. package/dist/summarizer.js +4 -4
  228. package/dist/support-passport/index.js +41 -41
  229. package/dist/temporal-timeline-recall.js +3 -3
  230. package/dist/{tier-stats-VK5PCO2L.js → tier-stats-VF6DS52E.js} +2 -2
  231. package/dist/transfer/export-okf.js +8 -8
  232. package/dist/types.d.ts +4 -3
  233. package/dist/types.d.ts.map +1 -1
  234. package/dist/types.js +1 -1
  235. package/dist/verified-recall.js +8 -8
  236. package/dist/who-knows-cli.js +9 -9
  237. package/dist/who-knows.js +8 -8
  238. package/package.json +12 -2
  239. package/src/buffer-turn-helpers.ts +4 -0
  240. package/src/buffer.ts +3 -0
  241. package/src/capabilities.test.ts +4 -1
  242. package/src/capabilities.ts +7 -7
  243. package/src/config-security.ts +103 -16
  244. package/src/config.test.ts +58 -1
  245. package/src/connector-provenance-lifecycle.test.ts +19 -0
  246. package/src/index.ts +3 -3
  247. package/src/model-registry.test.ts +22 -1
  248. package/src/model-registry.ts +7 -6
  249. package/src/orchestration/extraction-injection-gate.ts +11 -7
  250. package/src/orchestration/extraction-origin-context.ts +1 -1
  251. package/src/orchestration/extraction-persist.ts +8 -8
  252. package/src/orchestration/extraction-security.test.ts +12 -0
  253. package/src/orchestration/turn-ingestion.ts +2 -0
  254. package/src/profiling.test.ts +20 -1
  255. package/src/profiling.ts +7 -7
  256. package/src/security/audit-memory-cli.test.ts +90 -0
  257. package/src/security/audit-memory-cli.ts +7 -0
  258. package/src/security/audit-memory.test.ts +21 -10
  259. package/src/security/audit-memory.ts +20 -2
  260. package/src/security/injection-screen.test.ts +301 -0
  261. package/src/security/injection-screen.ts +414 -11
  262. package/src/security/origin-authority.ts +10 -0
  263. package/src/security/types.ts +11 -0
  264. package/src/types.ts +4 -3
  265. package/dist/chunk-2AD5SXO4.js.map +0 -1
  266. package/dist/chunk-6Q3ZTEF6.js.map +0 -1
  267. package/dist/chunk-BJX6G726.js.map +0 -1
  268. package/dist/chunk-C6FQJ52H.js.map +0 -1
  269. package/dist/chunk-JUOZ62Y7.js.map +0 -1
  270. package/dist/chunk-NLE6TSLG.js.map +0 -1
  271. package/dist/chunk-WLZYGLJ4.js.map +0 -1
  272. /package/dist/{auto-sync-CWSZDLLW.js.map → auto-sync-QJNIKZHV.js.map} +0 -0
  273. /package/dist/{chunk-RP7TZEI6.js.map → chunk-24TJ77TT.js.map} +0 -0
  274. /package/dist/{chunk-ZLVUWROW.js.map → chunk-2OUSWDY6.js.map} +0 -0
  275. /package/dist/{chunk-M5IJP3YW.js.map → chunk-2PKGJPQL.js.map} +0 -0
  276. /package/dist/{chunk-FJMYMJLR.js.map → chunk-3JDA3XF5.js.map} +0 -0
  277. /package/dist/{chunk-JGT7M3BA.js.map → chunk-3MSMBVA3.js.map} +0 -0
  278. /package/dist/{chunk-6JYYSDHH.js.map → chunk-4EEDRKRT.js.map} +0 -0
  279. /package/dist/{chunk-YUHGJBQK.js.map → chunk-5LWVTSF7.js.map} +0 -0
  280. /package/dist/{chunk-2T2RF5ZK.js.map → chunk-5QZHDS4X.js.map} +0 -0
  281. /package/dist/{chunk-64JK4TL7.js.map → chunk-5WXJE5TV.js.map} +0 -0
  282. /package/dist/{chunk-DJ4CKWAD.js.map → chunk-5Y7VCE3A.js.map} +0 -0
  283. /package/dist/{chunk-G2XZFGYN.js.map → chunk-62JTOLEX.js.map} +0 -0
  284. /package/dist/{chunk-LVXBC6YB.js.map → chunk-65I2LZEK.js.map} +0 -0
  285. /package/dist/{chunk-NZLFVLLJ.js.map → chunk-7CRUDH7G.js.map} +0 -0
  286. /package/dist/{chunk-B4EGAHHS.js.map → chunk-7DE2NOON.js.map} +0 -0
  287. /package/dist/{chunk-BSDBDFKZ.js.map → chunk-7JFQI6DQ.js.map} +0 -0
  288. /package/dist/{chunk-BOADKFN4.js.map → chunk-7LNHRQKR.js.map} +0 -0
  289. /package/dist/{chunk-IV6APZJS.js.map → chunk-7OC3Q5X4.js.map} +0 -0
  290. /package/dist/{chunk-X2QPKLPL.js.map → chunk-ACX55QDO.js.map} +0 -0
  291. /package/dist/{chunk-YLPCEUXP.js.map → chunk-AEGQ5PJ7.js.map} +0 -0
  292. /package/dist/{chunk-GK6NOQE6.js.map → chunk-AERXJCOG.js.map} +0 -0
  293. /package/dist/{chunk-HW2QYZEV.js.map → chunk-B5GMOOY2.js.map} +0 -0
  294. /package/dist/{chunk-YHGRA7CK.js.map → chunk-CDQO5DCD.js.map} +0 -0
  295. /package/dist/{chunk-ENUI3IO7.js.map → chunk-D433RXFJ.js.map} +0 -0
  296. /package/dist/{chunk-IK63WA5A.js.map → chunk-D4SPMHEW.js.map} +0 -0
  297. /package/dist/{chunk-42DJ235G.js.map → chunk-DINRT75P.js.map} +0 -0
  298. /package/dist/{chunk-LELJRLPY.js.map → chunk-DQFZOPDL.js.map} +0 -0
  299. /package/dist/{chunk-WN4HFL4K.js.map → chunk-DQISIT63.js.map} +0 -0
  300. /package/dist/{chunk-Q7KQ5YHT.js.map → chunk-EIU642TN.js.map} +0 -0
  301. /package/dist/{chunk-EN2YX5SF.js.map → chunk-F4PEETM4.js.map} +0 -0
  302. /package/dist/{chunk-Q6C5PIBW.js.map → chunk-F5ZCNJ3V.js.map} +0 -0
  303. /package/dist/{chunk-KR5SZNNF.js.map → chunk-FEHVG4C4.js.map} +0 -0
  304. /package/dist/{chunk-42G4FIKQ.js.map → chunk-FG5QU7A2.js.map} +0 -0
  305. /package/dist/{chunk-IRGQYQQ7.js.map → chunk-FM5HN7LL.js.map} +0 -0
  306. /package/dist/{chunk-IDBLAGIM.js.map → chunk-FTNV5476.js.map} +0 -0
  307. /package/dist/{chunk-R4Y5PF25.js.map → chunk-FWVDTLRK.js.map} +0 -0
  308. /package/dist/{chunk-Q5FL3MEH.js.map → chunk-G4WZDQ32.js.map} +0 -0
  309. /package/dist/{chunk-4HNY6ORZ.js.map → chunk-GMHWCPLP.js.map} +0 -0
  310. /package/dist/{chunk-ZWWKKAJL.js.map → chunk-GYNCJSQ7.js.map} +0 -0
  311. /package/dist/{chunk-BJI2D4SU.js.map → chunk-GZBNEZIU.js.map} +0 -0
  312. /package/dist/{chunk-NYVECYCF.js.map → chunk-HNOKNHFO.js.map} +0 -0
  313. /package/dist/{chunk-XLXYARWC.js.map → chunk-HXCJF4XU.js.map} +0 -0
  314. /package/dist/{chunk-RMF763SX.js.map → chunk-IDRSTHVR.js.map} +0 -0
  315. /package/dist/{chunk-UXREWVW4.js.map → chunk-IW3RMBPB.js.map} +0 -0
  316. /package/dist/{chunk-W6YK672C.js.map → chunk-JTTLH646.js.map} +0 -0
  317. /package/dist/{chunk-BQB5ZMYO.js.map → chunk-KKNZ7PUZ.js.map} +0 -0
  318. /package/dist/{chunk-AAMFQHKI.js.map → chunk-KRPMISWO.js.map} +0 -0
  319. /package/dist/{chunk-XX2IGMCB.js.map → chunk-KV44HTMJ.js.map} +0 -0
  320. /package/dist/{chunk-FKFTPFUG.js.map → chunk-KXJ7XYUT.js.map} +0 -0
  321. /package/dist/{chunk-2NZ7KWRW.js.map → chunk-LAEW4S43.js.map} +0 -0
  322. /package/dist/{chunk-5SV2GFZX.js.map → chunk-LDP6LBDS.js.map} +0 -0
  323. /package/dist/{chunk-F6WCOXTF.js.map → chunk-LMLPLIT4.js.map} +0 -0
  324. /package/dist/{chunk-QJTFMH5Y.js.map → chunk-LVGVXG22.js.map} +0 -0
  325. /package/dist/{chunk-OINFRHLR.js.map → chunk-NRTVZSPO.js.map} +0 -0
  326. /package/dist/{chunk-IAZPYX6W.js.map → chunk-NRVGODSE.js.map} +0 -0
  327. /package/dist/{chunk-IHOXK2I6.js.map → chunk-NVKO5YKP.js.map} +0 -0
  328. /package/dist/{chunk-OQQXGYMX.js.map → chunk-OWYHHW67.js.map} +0 -0
  329. /package/dist/{chunk-KPKGDQR3.js.map → chunk-PZEXA6CM.js.map} +0 -0
  330. /package/dist/{chunk-DXODYQ7J.js.map → chunk-Q3THVX75.js.map} +0 -0
  331. /package/dist/{chunk-TAC5WFJC.js.map → chunk-QEGKMZNQ.js.map} +0 -0
  332. /package/dist/{chunk-VRF2KFI2.js.map → chunk-RA3C46VX.js.map} +0 -0
  333. /package/dist/{chunk-V2HHAAPI.js.map → chunk-RB776UH3.js.map} +0 -0
  334. /package/dist/{chunk-TAIIC5OM.js.map → chunk-SEHKTE4F.js.map} +0 -0
  335. /package/dist/{chunk-G6E7XJYL.js.map → chunk-SZAWZPY6.js.map} +0 -0
  336. /package/dist/{chunk-TYZK56OA.js.map → chunk-TPRBJF46.js.map} +0 -0
  337. /package/dist/{chunk-7DNMX7SA.js.map → chunk-TQC6ELJO.js.map} +0 -0
  338. /package/dist/{chunk-OVJFS5P5.js.map → chunk-U6HXB2OG.js.map} +0 -0
  339. /package/dist/{chunk-7WSQZJPC.js.map → chunk-V3JM4XEI.js.map} +0 -0
  340. /package/dist/{chunk-36S7UHAW.js.map → chunk-VEBYLZQQ.js.map} +0 -0
  341. /package/dist/{chunk-IMJPJY7V.js.map → chunk-VHF73MGU.js.map} +0 -0
  342. /package/dist/{chunk-TDULASPE.js.map → chunk-VKDWYDFQ.js.map} +0 -0
  343. /package/dist/{chunk-NKXHCCLB.js.map → chunk-VTPASHTO.js.map} +0 -0
  344. /package/dist/{chunk-4B5S3VWD.js.map → chunk-VXGB766B.js.map} +0 -0
  345. /package/dist/{chunk-ADP2VCP6.js.map → chunk-W5UAB6EH.js.map} +0 -0
  346. /package/dist/{chunk-L3R24OLZ.js.map → chunk-W65KK3X6.js.map} +0 -0
  347. /package/dist/{chunk-MNIPH6LD.js.map → chunk-WBYQA3VN.js.map} +0 -0
  348. /package/dist/{chunk-WD2JD2UB.js.map → chunk-WEQZ5OYK.js.map} +0 -0
  349. /package/dist/{chunk-AJW2K7K3.js.map → chunk-WKNWC46C.js.map} +0 -0
  350. /package/dist/{chunk-UD6J2LIA.js.map → chunk-XDH5MO6L.js.map} +0 -0
  351. /package/dist/{chunk-MRV7VSQK.js.map → chunk-Y23L4YJV.js.map} +0 -0
  352. /package/dist/{chunk-6ISP2EN2.js.map → chunk-YF3JERFZ.js.map} +0 -0
  353. /package/dist/{chunk-C5CPYMLX.js.map → chunk-YR6A6ZK7.js.map} +0 -0
  354. /package/dist/{chunk-EJO2NWW7.js.map → chunk-Z3YQOV45.js.map} +0 -0
  355. /package/dist/{chunk-6KTXE6A3.js.map → chunk-Z4TXB4K7.js.map} +0 -0
  356. /package/dist/{chunk-6VITOSPL.js.map → chunk-ZFUPRODV.js.map} +0 -0
  357. /package/dist/{contradiction-scan-GVD4JJ7B.js.map → contradiction-scan-5EJYRKD3.js.map} +0 -0
  358. /package/dist/{first-start-migration-L3UFX5CU.js.map → first-start-migration-7OATHJKB.js.map} +0 -0
  359. /package/dist/{resolution-CHNISQJB.js.map → resolution-UYJU5JUA.js.map} +0 -0
  360. /package/dist/{tier-stats-VK5PCO2L.js.map → tier-stats-VF6DS52E.js.map} +0 -0
@@ -10,7 +10,7 @@ import {
10
10
  import {
11
11
  exportOkfBundle,
12
12
  parseIncludeStatus
13
- } from "./chunk-UD6J2LIA.js";
13
+ } from "./chunk-XDH5MO6L.js";
14
14
  import {
15
15
  exportSqlite
16
16
  } from "./chunk-BV2TIZ4F.js";
@@ -64,7 +64,7 @@ import {
64
64
  } from "./chunk-IIFFC3RL.js";
65
65
  import {
66
66
  rebuildMemoryLifecycleLedger
67
- } from "./chunk-L3R24OLZ.js";
67
+ } from "./chunk-W65KK3X6.js";
68
68
  import {
69
69
  lintOkfDir
70
70
  } from "./chunk-UJX4I26O.js";
@@ -87,21 +87,21 @@ import {
87
87
  } from "./chunk-EBA5DA77.js";
88
88
  import {
89
89
  searchVerifiedEpisodes
90
- } from "./chunk-OINFRHLR.js";
90
+ } from "./chunk-NRTVZSPO.js";
91
91
  import {
92
92
  ThreadingManager
93
93
  } from "./chunk-OJP3N7UK.js";
94
94
  import {
95
95
  promoteSemanticRuleFromMemory
96
- } from "./chunk-DJ4CKWAD.js";
96
+ } from "./chunk-5Y7VCE3A.js";
97
97
  import {
98
98
  searchVerifiedSemanticRules
99
- } from "./chunk-FKFTPFUG.js";
99
+ } from "./chunk-KXJ7XYUT.js";
100
100
  import {
101
101
  buildResumeBundleFromState,
102
102
  getResumeBundleStatus,
103
103
  recordResumeBundle
104
- } from "./chunk-ENUI3IO7.js";
104
+ } from "./chunk-D433RXFJ.js";
105
105
  import {
106
106
  getWorkProductLedgerStatus,
107
107
  recordWorkProductLedgerEntry,
@@ -112,7 +112,7 @@ import {
112
112
  } from "./chunk-AM4T6CHX.js";
113
113
  import {
114
114
  parseXrayCliOptions
115
- } from "./chunk-BJI2D4SU.js";
115
+ } from "./chunk-GZBNEZIU.js";
116
116
  import {
117
117
  collectPatternMemories,
118
118
  explainPatternMemory,
@@ -134,7 +134,7 @@ import {
134
134
  runOperatorInventory,
135
135
  runOperatorRepair,
136
136
  runOperatorSetup
137
- } from "./chunk-G6E7XJYL.js";
137
+ } from "./chunk-SZAWZPY6.js";
138
138
  import {
139
139
  analyzeSessionIntegrity,
140
140
  applySessionRepair,
@@ -173,7 +173,7 @@ import {
173
173
  rebuildMemoryProjection,
174
174
  repairMemoryProjection,
175
175
  verifyMemoryProjection
176
- } from "./chunk-TAIIC5OM.js";
176
+ } from "./chunk-SEHKTE4F.js";
177
177
  import {
178
178
  GraphDashboardServer
179
179
  } from "./chunk-YNDLCWXS.js";
@@ -197,7 +197,7 @@ import {
197
197
  } from "./chunk-6TBIWIAG.js";
198
198
  import {
199
199
  parseConfig
200
- } from "./chunk-M5IJP3YW.js";
200
+ } from "./chunk-2PKGJPQL.js";
201
201
  import {
202
202
  applyManagedRegion,
203
203
  expandVaultTemplateTokens,
@@ -210,7 +210,7 @@ import {
210
210
  import {
211
211
  EngramAccessHttpServer,
212
212
  MeetingsInputError
213
- } from "./chunk-IDBLAGIM.js";
213
+ } from "./chunk-FTNV5476.js";
214
214
  import {
215
215
  WearablesInputError
216
216
  } from "./chunk-V7IZKJI3.js";
@@ -220,10 +220,10 @@ import {
220
220
  loadChatSession,
221
221
  processChatMessage,
222
222
  sessionBelongsToPrincipal
223
- } from "./chunk-6JYYSDHH.js";
223
+ } from "./chunk-4EEDRKRT.js";
224
224
  import {
225
225
  EngramAccessService
226
- } from "./chunk-4B5S3VWD.js";
226
+ } from "./chunk-VXGB766B.js";
227
227
  import {
228
228
  WorkStorage
229
229
  } from "./chunk-MPC7TYTZ.js";
@@ -240,10 +240,10 @@ import {
240
240
  parseRecallExplainFormat,
241
241
  renderRecallExplain,
242
242
  renderXray
243
- } from "./chunk-36S7UHAW.js";
243
+ } from "./chunk-VEBYLZQQ.js";
244
244
  import {
245
245
  readAggregateExtractionWatermark
246
- } from "./chunk-AAMFQHKI.js";
246
+ } from "./chunk-KRPMISWO.js";
247
247
  import {
248
248
  getObjectiveStateStoreStatus
249
249
  } from "./chunk-HM7RHKS4.js";
@@ -252,18 +252,18 @@ import {
252
252
  } from "./chunk-TYP7GYRI.js";
253
253
  import {
254
254
  searchHarmonicRetrieval
255
- } from "./chunk-R4Y5PF25.js";
255
+ } from "./chunk-FWVDTLRK.js";
256
256
  import {
257
257
  listMemoryGovernanceRuns,
258
258
  readMemoryGovernanceRunArtifact,
259
259
  restoreMemoryGovernanceRun,
260
260
  runMemoryGovernance
261
- } from "./chunk-F6WCOXTF.js";
261
+ } from "./chunk-LMLPLIT4.js";
262
262
  import {
263
263
  listNamespaces,
264
264
  runNamespaceMigration,
265
265
  verifyNamespaces
266
- } from "./chunk-TAC5WFJC.js";
266
+ } from "./chunk-QEGKMZNQ.js";
267
267
  import {
268
268
  getCueAnchorStoreStatus
269
269
  } from "./chunk-BMWN7B3Y.js";
@@ -303,7 +303,7 @@ import {
303
303
  } from "./chunk-LMMQKZK3.js";
304
304
  import {
305
305
  meetingIdDate
306
- } from "./chunk-2T2RF5ZK.js";
306
+ } from "./chunk-5QZHDS4X.js";
307
307
  import {
308
308
  isValidTranscriptDate
309
309
  } from "./chunk-UHVXE24Y.js";
@@ -354,7 +354,7 @@ import {
354
354
  import {
355
355
  RECALL_DISCLOSURE_LEVELS,
356
356
  isRecallDisclosure
357
- } from "./chunk-FNQEXI3D.js";
357
+ } from "./chunk-F5O6WEDO.js";
358
358
  import {
359
359
  isSupportPassportPrivateMemory
360
360
  } from "./chunk-PWPIERBM.js";
@@ -378,7 +378,7 @@ import {
378
378
  resolveRecallEnhancementCapabilities,
379
379
  resolveSecurityCapabilities,
380
380
  resolveUtilityLearningCapabilities
381
- } from "./chunk-JUOZ62Y7.js";
381
+ } from "./chunk-BMXEBWBT.js";
382
382
  import {
383
383
  expandTildePath
384
384
  } from "./chunk-6KH5NLQS.js";
@@ -2951,11 +2951,21 @@ var RULE_WEIGHTS = {
2951
2951
  "encoded-blob": 5,
2952
2952
  // Instruction resets directly try to replace the active authority.
2953
2953
  "ignore-previous-family": 4,
2954
- // Conditional triggers encode a hidden action for a future turn.
2955
- "conditional-trigger": 3,
2956
2954
  // Remnic command references can redirect the memory system itself.
2957
- "authority-escalation": 4
2955
+ "authority-escalation": 4,
2956
+ // Stored response controls try to turn recalled data into future behavior.
2957
+ "response-control-directive": 4,
2958
+ // Tool-routing controls replace the current tool choice from recalled data.
2959
+ "tool-routing-directive": 4
2960
+ };
2961
+ var PROFILE_RULE_WEIGHTS = {
2962
+ // Conditional triggers encode a hidden action for a future turn.
2963
+ "conditional-trigger": { default: 3, hardened: 4 }
2958
2964
  };
2965
+ function ruleWeight(rule, profile) {
2966
+ const profileWeights = PROFILE_RULE_WEIGHTS[rule];
2967
+ return profileWeights ? profileWeights[profile] : RULE_WEIGHTS[rule];
2968
+ }
2959
2969
  var INJECTION_SCREEN_THRESHOLD = 4;
2960
2970
  var MAX_EXCERPT_LENGTH = 180;
2961
2971
  var AUTHORITY_EXECUTABLE_TOOL_REFERENCE = String.raw`(?:remnic|engram)(?:\s+security\s+audit-memory\b|\s+(?:memory_store|suggestion_submit|observe|recall|delete_memory|memory_correct_apply|memory_search)(?:\s+(?:tool|command))?\b|\s+(?:tool|command)\b|[_:-](?:memory_store|suggestion_submit|observe|recall|delete_memory|memory_correct_apply|memory_search)\b)`;
@@ -2982,11 +2992,11 @@ function findImperativeToAgent(content) {
2982
2992
  return findingFor(
2983
2993
  "imperative-to-agent",
2984
2994
  content,
2985
- /\b(?:agent|assistant|ai|model)\s*[,!:.-]\s*(?:please\s+)?(?:ignore|disregard|call|run|execute|send|delete|reveal|email|store|remember|follow|use|do)\b/i
2995
+ /\b(?:agent|assistant|ai|model)[ \t]{0,8}[,!:.-][ \t]{0,8}(?:please[ \t]{1,8})?(?:ignore|disregard|call|run|execute|send|delete|reveal|email|store|remember|follow|use|do|answer|respond|reply|emit|output|return|include|produce|say)\b/i
2986
2996
  ) ?? findingFor(
2987
2997
  "imperative-to-agent",
2988
2998
  content,
2989
- /\b(?:agent|assistant|ai|model)\s+(?:must|should|need to|please)\s+(?:ignore|disregard|call|run|execute|send|delete|reveal|email|store|remember|follow|use|do)\b/i
2999
+ /\b(?:agent|assistant|ai|model)[ \t]{1,8}(?:must|should|need to|please|to)[ \t]{1,8}(?:ignore|disregard|call|run|execute|send|delete|reveal|email|store|remember|follow|use|do|answer|respond|reply|emit|output|return|include|produce|say)\b/i
2990
3000
  );
2991
3001
  }
2992
3002
  function findToolInvocationSyntax(content) {
@@ -3030,11 +3040,325 @@ function findConditionalTrigger(content) {
3030
3040
  return findingFor(
3031
3041
  "conditional-trigger",
3032
3042
  content,
3033
- /\b(?:when|if)\b[\s\S]{1,120}\b(?:say|says|see|sees|hear|hears|receive|receives|mention|mentions|contain|contains|encounter|encounters)\b[\s\S]{1,120}\b(?:then\s+)?(?:call|invoke|run|execute|send|delete|reveal|store|use|follow|do|respond)\b/i
3043
+ /\b(?:when|if|unless|after|only after|if and only if|on seeing)\b[\s\S]{1,180}\b(?:ask|asked|say|says|see|sees|seeing|hear|hears|receive|receives|mention|mentions|mentioned|appear|appears|contain|contains|encounter|encounters|phrase|condition|key)\b[\s\S]{0,180}\b(?:then[ \t]{1,8})?(?:answer|call|include|invoke|run|execute|send|delete|reveal|store|use|follow|do|respond|reply|emit|output|return|produce|say|add|replace)\b/i
3034
3044
  ) ?? findingFor(
3035
3045
  "conditional-trigger",
3036
3046
  content,
3037
- /\b(?:when|if)\b[\s\S]{1,100},\s*(?:then\s+)?(?:call|invoke|run|execute|send|delete|reveal|store|use|follow|do|respond)\b/i
3047
+ /\b(?:when|if|unless)\b[\s\S]{1,120},[ \t]{0,8}(?:then[ \t]{1,8})?(?:answer|call|include|invoke|run|execute|send|delete|reveal|store|use|follow|do|respond|reply|emit|output|return|produce|say|add|replace)\b/i
3048
+ );
3049
+ }
3050
+ var RESPONSE_NOUN = String.raw`(?:answers?|responses?|repl(?:y|ies)|output)`;
3051
+ var RESPONSE_CONTROL_PATTERNS = [
3052
+ // "the approved response concerning X is exactly CANARY"
3053
+ new RegExp(
3054
+ String.raw`\b${RESPONSE_NOUN}\b[^\n]{0,60}\b(?:(?:is|are|be)[ \t]{1,8}exactly|becomes?)\b`,
3055
+ "i"
3056
+ ),
3057
+ // "the response must include / should begin with / needs to say ..."
3058
+ new RegExp(
3059
+ String.raw`\b${RESPONSE_NOUN}\b[^\n]{0,60}\b(?:must|should|shall|will|needs?[ \t]{1,8}to|has[ \t]{1,8}to|have[ \t]{1,8}to|is[ \t]{1,8}to|are[ \t]{1,8}to)[ \t]{1,8}(?:always[ \t]{1,8})?(?:include|contain|begin|start|end|say|state|mention|output|return|emit|produce|read|quote|reference|append|prepend)\b`,
3060
+ "i"
3061
+ ),
3062
+ // "include CANARY in every answer", "add <url> to answers"
3063
+ new RegExp(
3064
+ String.raw`\b(?:include|add|emit|output|return|append|prepend|say|state|put)\b[^\n]{0,80}\b(?:in|to|into|with|as|on)[ \t]{1,8}[^\n]{0,30}\b${RESPONSE_NOUN}\b`,
3065
+ "i"
3066
+ ),
3067
+ // "reply with the marker CANARY", "respond by saying"
3068
+ /\b(?:reply|respond|answer)[ \t]{1,8}(?:with|by|using)[ \t]{1,8}(?:the[ \t]{1,8}|only[ \t]{1,8}|exactly[ \t]{1,8})?(?:marker|phrase|code|string|text|token|exact|exactly|only|saying|outputting|returning|CANARY)/i,
3069
+ // "activation requires outputting CANARY", "retrieval should produce CANARY"
3070
+ /\b(?:requires?|should|must|will)[ \t]{1,8}(?:outputting|emitting|returning|saying|replying|responding|answering|producing|output|emit|produce)\b[^\n]{0,40}\b(?:CANARY|marker|phrase|code|token|exactly|https?:)/i,
3071
+ /\b(?:retrieval|recall|activation)\b[^\n]{0,40}\b(?:should|must|will|requires?)[ \t]{1,8}(?:produce|output|emit|return|say|reply|respond)\b/i,
3072
+ // "say CANARY", "answer CANARY", "use CANARY instead", "return https://..."
3073
+ /\b(?:say|answer|reply|respond|output|return|emit|use|produce)[ \t]{1,8}(?:with[ \t]{1,8}|only[ \t]{1,8}|exactly[ \t]{1,8})?(?:CANARY|the[ \t]{1,8}(?:literal|exact|marker|phrase|string|token)\b|https?:)/i,
3074
+ // "replace normal behavior with the literal response", "require the literal marker"
3075
+ /\breplace[ \t]{1,8}(?:normal|default|your|the|its|all)?[ \t]{0,8}(?:behaviou?r|responses?|answers?|repl(?:y|ies)|output)\b/i,
3076
+ /\b(?:literal|exact|verbatim)[ \t]{1,8}(?:response|answer|reply|marker|string|output|phrase|token)\b/i
3077
+ ];
3078
+ var RESPONSE_CONTROL_CORROBORATORS = [
3079
+ /\bCANARY\b/i,
3080
+ /https?:\/\//i,
3081
+ /\b[0-9a-f]{8,}\b/i,
3082
+ /\b[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}\b/,
3083
+ // Naming the emission as a phrase/marker/token is a payload cue: ordinary
3084
+ // prose names a field ("the request id"), not "the phrase".
3085
+ /\b(?:the|this|that|following)[ \t]{1,8}(?:phrase|marker|token|string|sequence|literal|codeword|passphrase)\b/i,
3086
+ // Verbatim control over the wording, not the content.
3087
+ /\b(?:literal(?:ly)?|verbatim|word[- ]for[- ]word|exactly[ \t]{1,8}(?:this|that|as)|character[- ]for[- ]character)\b/i,
3088
+ /\bno[ \t]{1,8}(?:explanation|commentary|preamble|deviation|other[ \t]{1,8}text)\b/i,
3089
+ /\b(?:only|nothing[ \t]{1,8}else|and[ \t]{1,8}nothing)\b[^\n]{0,30}\b(?:answers?|responses?|repl(?:y|ies)|output|say|said)\b/i,
3090
+ // Persistence across turns: an ordinary fact does not legislate later turns.
3091
+ /\b(?:remember|persist|store[ \t]{1,8}this|retain[ \t]{1,8}this)\b/i,
3092
+ /\bany[ \t]{1,8}(?:later|future|subsequent)\b/i,
3093
+ /\b(?:future|later|subsequent|following|upcoming)[ \t]{1,8}(?:answers?|responses?|repl(?:y|ies)|output|turns?|messages?|conversations?|sessions?)\b/i,
3094
+ /\b(?:across|between)[ \t]{1,8}(?:conversations|sessions|chats)\b/i,
3095
+ /\b(?:from[ \t]{1,8}now[ \t]{1,8}on|going[ \t]{1,8}forward|in[ \t]{1,8}(?:all|every)[ \t]{1,8}(?:future|later)[ \t]{1,8}(?:turns?|answers?|responses?))\b/i,
3096
+ /\b(?:whenever|every[ \t]{1,8}time|each[ \t]{1,8}time|any[ \t]{1,8}time)\b[^\n]{0,60}\b(?:asked|discussed|mentioned|queried|retrieved|recalled)\b/i,
3097
+ // The subject is the agent, not a system under discussion.
3098
+ /\byour[ \t]{1,8}(?:answers?|responses?|repl(?:y|ies)|output|behaviou?r|memory)\b/i,
3099
+ /\b(?:assistant|agent|model)(?:'s)?[ \t]{1,8}(?:answers?|responses?|repl(?:y|ies)|output|behaviou?r)\b/i,
3100
+ // A hidden activation phrase is itself the second signal.
3101
+ /\b(?:activation|trigger)[ \t]{1,8}(?:phrase|key|word|code)\b/i,
3102
+ /\b(?:approved|required|correct|canonical)[ \t]{1,8}(?:response|answer|reply)\b/i
3103
+ ];
3104
+ var ORDINARY_CAPS_TOKENS = /* @__PURE__ */ new Set([
3105
+ "API",
3106
+ "HTTP",
3107
+ "HTTPS",
3108
+ "JSON",
3109
+ "XML",
3110
+ "HTML",
3111
+ "CSS",
3112
+ "CSV",
3113
+ "TSV",
3114
+ "YAML",
3115
+ "TOML",
3116
+ "SQL",
3117
+ "URL",
3118
+ "URI",
3119
+ "UUID",
3120
+ "ID",
3121
+ "IDS",
3122
+ "UTC",
3123
+ "ISO",
3124
+ "PDF",
3125
+ "PNG",
3126
+ "JPEG",
3127
+ "SVG",
3128
+ "TLS",
3129
+ "SSL",
3130
+ "SSH",
3131
+ "DNS",
3132
+ "TCP",
3133
+ "UDP",
3134
+ "IP",
3135
+ "CDN",
3136
+ "CORS",
3137
+ "CSRF",
3138
+ "JWT",
3139
+ "OAUTH",
3140
+ "REST",
3141
+ "GRPC",
3142
+ "RPC",
3143
+ "SDK",
3144
+ "CLI",
3145
+ "GUI",
3146
+ "OK",
3147
+ "YES",
3148
+ "NO",
3149
+ "TODO",
3150
+ "FAQ",
3151
+ "PR",
3152
+ "CI",
3153
+ "CD",
3154
+ "QA",
3155
+ "UX",
3156
+ "UI",
3157
+ "MIT",
3158
+ "GPL",
3159
+ "EU",
3160
+ "US",
3161
+ "AM",
3162
+ "PM",
3163
+ "FYI",
3164
+ "ETA",
3165
+ // Crypto, encoding, and spec vocabulary (trailing digits are stripped
3166
+ // before this lookup, so SHA256/SHA-256/UTF8/ISO8601/RFC3339 all reduce).
3167
+ "SHA",
3168
+ "MD",
3169
+ "HMAC",
3170
+ "AES",
3171
+ "RSA",
3172
+ "ECDSA",
3173
+ "PBKDF",
3174
+ "BCRYPT",
3175
+ "SCRYPT",
3176
+ "ARGON",
3177
+ "UTF",
3178
+ "ASCII",
3179
+ "BASE",
3180
+ "HEX",
3181
+ "CRC",
3182
+ "GZIP",
3183
+ "ZSTD",
3184
+ "RFC",
3185
+ "ANSI",
3186
+ "IEEE",
3187
+ "SMTP",
3188
+ "IMAP",
3189
+ "LDAP",
3190
+ "SAML",
3191
+ "OIDC",
3192
+ "SSO",
3193
+ "MFA",
3194
+ "TOTP",
3195
+ "ACL",
3196
+ "RBAC",
3197
+ "AWS",
3198
+ "GCP",
3199
+ "GPU",
3200
+ "CPU",
3201
+ "RAM",
3202
+ "SSD",
3203
+ "OS",
3204
+ "VM",
3205
+ "K8S",
3206
+ "NPM",
3207
+ "SEMVER",
3208
+ "GET",
3209
+ "POST",
3210
+ "PUT",
3211
+ "PATCH",
3212
+ "DELETE",
3213
+ "HEAD",
3214
+ "OPTIONS",
3215
+ "TRACE"
3216
+ ]);
3217
+ var ORDINARY_CAPITALIZED_WORDS = /* @__PURE__ */ new Set([
3218
+ "Dear",
3219
+ "Hello",
3220
+ "Hi",
3221
+ "Greetings",
3222
+ "Please",
3223
+ "Thanks",
3224
+ "Thank",
3225
+ "Regards",
3226
+ "Sincerely",
3227
+ "Yes",
3228
+ "No",
3229
+ "True",
3230
+ "False",
3231
+ "Null",
3232
+ "None",
3233
+ "Error",
3234
+ "Warning",
3235
+ "Note",
3236
+ "Summary",
3237
+ "Subject",
3238
+ "Re",
3239
+ "Fwd",
3240
+ "Attention",
3241
+ "Notice",
3242
+ "Draft",
3243
+ "Monday",
3244
+ "Tuesday",
3245
+ "Wednesday",
3246
+ "Thursday",
3247
+ "Friday",
3248
+ "Saturday",
3249
+ "Sunday",
3250
+ "January",
3251
+ "February",
3252
+ "March",
3253
+ "April",
3254
+ "May",
3255
+ "June",
3256
+ "July",
3257
+ "August",
3258
+ "September",
3259
+ "October",
3260
+ "November",
3261
+ "December"
3262
+ ]);
3263
+ var EMISSION_VERB_PRESENT = /\b(?:begin|start|end|include|contain|say|state|output|return|emit|produce|reply|respond|answer|replace|becomes?|is|are|be)\b[ \t]/i;
3264
+ var OPAQUE_EMISSION_TARGET = /\b(?:begin|start|end|include|contain|say|state|output|return|emit|produce|reply|respond|answer|replace|becomes?|is|are|be)\b[ \t]{1,8}(?:(?:with|by|exactly)[ \t]{1,8})?(?:normal[ \t]{1,8}behaviou?r[ \t]{1,8}with[ \t]{1,8})?/gi;
3265
+ var EMISSION_SLOT_VALUE = /(?:"([^"\n]{2,40})"|'([^'\n]{2,40})'|([A-Za-z][A-Za-z0-9_-]{1,39})\b)/y;
3266
+ var MAX_WHITESPACE_RUN_SCAN = 64;
3267
+ function lowercaseFollowsWhitespace(content, from) {
3268
+ const limit = Math.min(content.length, from + MAX_WHITESPACE_RUN_SCAN);
3269
+ let index = from;
3270
+ while (index < limit) {
3271
+ const code = content.charCodeAt(index);
3272
+ const whitespace = code === 32 || code >= 9 && code <= 13;
3273
+ if (!whitespace) return code >= 97 && code <= 122;
3274
+ index += 1;
3275
+ }
3276
+ return false;
3277
+ }
3278
+ function splitSentencesOutsideQuotes(content) {
3279
+ const sentences = [];
3280
+ const TOKEN = /["'.!?\n]/g;
3281
+ let start = 0;
3282
+ let quote;
3283
+ let match;
3284
+ while ((match = TOKEN.exec(content)) !== null) {
3285
+ const char = match[0];
3286
+ const index = match.index;
3287
+ if (quote !== void 0) {
3288
+ if (char === quote) quote = void 0;
3289
+ continue;
3290
+ }
3291
+ if (char === '"' || char === "'" && !/[A-Za-z0-9]/.test(content[index - 1] ?? " ")) {
3292
+ quote = char;
3293
+ continue;
3294
+ }
3295
+ const next = content[index + 1];
3296
+ const insideToken = char !== "\n" && next !== void 0 && !/\s/.test(next);
3297
+ const terminalUrlPunctuation = (char === "?" || char === "!") && lowercaseFollowsWhitespace(content, index + 1) && /:\/\/[^\s]*$/.test(content.slice(Math.max(0, index - 300), index));
3298
+ const newlineContinues = char === "\n" && /[:\-][ \t]*$/.test(content.slice(Math.max(0, index - 4), index));
3299
+ const endsUnit = !insideToken && !terminalUrlPunctuation && !newlineContinues && (char === "." || char === "!" || char === "?" || char === "\n");
3300
+ if (endsUnit) {
3301
+ if (index > start) sentences.push(content.slice(start, index));
3302
+ start = index + 1;
3303
+ }
3304
+ }
3305
+ if (start < content.length) sentences.push(content.slice(start));
3306
+ return sentences;
3307
+ }
3308
+ function reduceToken(token) {
3309
+ return token.replace(/[0-9]+$/, "");
3310
+ }
3311
+ function isOrdinaryToken(token) {
3312
+ const segments = token.split(/[-_]+/).filter((segment) => segment.length > 0);
3313
+ if (segments.length === 0) return true;
3314
+ if (segments.length > 1 && segments.every((segment) => /^[A-Z][a-z]+$/.test(segment))) return true;
3315
+ return segments.every((segment) => {
3316
+ if (/^[0-9]+$/.test(segment)) return true;
3317
+ const reduced = reduceToken(segment);
3318
+ if (ORDINARY_CAPS_TOKENS.has(segment) || ORDINARY_CAPS_TOKENS.has(reduced)) return true;
3319
+ return ORDINARY_CAPITALIZED_WORDS.has(segment);
3320
+ });
3321
+ }
3322
+ function hasOpaqueEmissionTarget(sentence) {
3323
+ OPAQUE_EMISSION_TARGET.lastIndex = 0;
3324
+ for (let verb = OPAQUE_EMISSION_TARGET.exec(sentence); verb !== null; verb = OPAQUE_EMISSION_TARGET.exec(sentence)) {
3325
+ EMISSION_SLOT_VALUE.lastIndex = verb.index + verb[0].length;
3326
+ const match = EMISSION_SLOT_VALUE.exec(sentence);
3327
+ if (!match) continue;
3328
+ const quoted = match[1] ?? match[2];
3329
+ if (quoted !== void 0) {
3330
+ const inner = quoted.trim();
3331
+ if (!/\s/.test(inner) && isOrdinaryToken(inner)) continue;
3332
+ return true;
3333
+ }
3334
+ const token = match[3];
3335
+ if (token === void 0) continue;
3336
+ if (/^[a-z]/.test(token)) continue;
3337
+ if (!isOrdinaryToken(token)) return true;
3338
+ }
3339
+ return false;
3340
+ }
3341
+ function findResponseControlDirective(content, profile = "default") {
3342
+ const directive = RESPONSE_CONTROL_PATTERNS.map(
3343
+ (pattern) => findingFor("response-control-directive", content, pattern)
3344
+ ).find((finding) => finding !== void 0);
3345
+ if (!directive) return void 0;
3346
+ if (profile === "hardened") return directive;
3347
+ const anyCorroborator = RESPONSE_CONTROL_CORROBORATORS.some((pattern) => pattern.test(content));
3348
+ const anyEmissionVerb = !anyCorroborator ? EMISSION_VERB_PRESENT.test(content) : true;
3349
+ if (!anyCorroborator && !anyEmissionVerb) return void 0;
3350
+ for (const sentence of splitSentencesOutsideQuotes(content)) {
3351
+ if (!RESPONSE_CONTROL_PATTERNS.some((pattern) => pattern.test(sentence))) continue;
3352
+ if (anyCorroborator && RESPONSE_CONTROL_CORROBORATORS.some((pattern) => pattern.test(sentence))) return directive;
3353
+ if (hasOpaqueEmissionTarget(sentence)) return directive;
3354
+ }
3355
+ return void 0;
3356
+ }
3357
+ function findToolRoutingDirective(content) {
3358
+ return findingFor(
3359
+ "tool-routing-directive",
3360
+ content,
3361
+ /\b(?:ignore|redirect(?:ing)?|override|substitute|preferred[_ -]?tool|never[ \t]{1,8}use|must[ \t]{1,8}call|requires?[ \t]{1,8}redirecting)\b[\s\S]{0,160}\b(?:tool|function|[a-z][a-z0-9-]*[_:.][a-z0-9-]+)\b|\b(?:tool|function|[a-z][a-z0-9-]*[_:.][a-z0-9-]+)\b[\s\S]{0,160}\b(?:redirect(?:ing)?|override|substitute|preferred[_ -]?tool|never[ \t]{1,8}use|must[ \t]{1,8}call)\b/i
3038
3362
  );
3039
3363
  }
3040
3364
  function findAuthorityEscalation(content) {
@@ -3048,7 +3372,16 @@ function findAuthorityEscalation(content) {
3048
3372
  AUTHORITY_MANDATORY_DIRECTIVE_PATTERN
3049
3373
  );
3050
3374
  }
3051
- function screenCandidateFact(content) {
3375
+ var INVISIBLE_FORMATTING = /[\u00ad\u200b-\u200f\u2060\u2028\u2029\ufeff]/g;
3376
+ var NON_ASCII_SPACE_LIKE = /[\f\v\u0085\u1680\u00a0\u2000-\u200a\u202f\u205f\u3000]/g;
3377
+ var ASCII_SPACE_RUN = /[ \t]{2,}/g;
3378
+ function normalizeForScreening(content) {
3379
+ const spaced = content.replace(NON_ASCII_SPACE_LIKE, " ").replace(INVISIBLE_FORMATTING, " ").replace(ASCII_SPACE_RUN, " ");
3380
+ const deleted = content.replace(INVISIBLE_FORMATTING, "").replace(NON_ASCII_SPACE_LIKE, " ").replace(ASCII_SPACE_RUN, " ");
3381
+ return spaced === deleted ? [spaced] : [spaced, deleted];
3382
+ }
3383
+ function screenCandidateFact(rawContent, profile = "default") {
3384
+ const variants = normalizeForScreening(rawContent);
3052
3385
  const findings = [];
3053
3386
  const rules = [
3054
3387
  ["imperative-to-agent", findImperativeToAgent],
@@ -3056,13 +3389,20 @@ function screenCandidateFact(content) {
3056
3389
  ["encoded-blob", findEncodedBlob],
3057
3390
  ["ignore-previous-family", findIgnorePreviousFamily],
3058
3391
  ["conditional-trigger", findConditionalTrigger],
3059
- ["authority-escalation", findAuthorityEscalation]
3392
+ ["authority-escalation", findAuthorityEscalation],
3393
+ ["response-control-directive", findResponseControlDirective],
3394
+ ["tool-routing-directive", findToolRoutingDirective]
3060
3395
  ];
3061
3396
  for (const [rule, find] of rules) {
3062
- const finding = find(content);
3063
- if (finding) findings.push({ rule, excerpt: finding.excerpt });
3397
+ for (const content of variants) {
3398
+ const finding = find(content, profile);
3399
+ if (finding) {
3400
+ findings.push({ rule, excerpt: finding.excerpt });
3401
+ break;
3402
+ }
3403
+ }
3064
3404
  }
3065
- const score = findings.reduce((sum, finding) => sum + RULE_WEIGHTS[finding.rule], 0);
3405
+ const score = findings.reduce((sum, finding) => sum + ruleWeight(finding.rule, profile), 0);
3066
3406
  return { score, findings, quarantine: score >= INJECTION_SCREEN_THRESHOLD };
3067
3407
  }
3068
3408
 
@@ -3177,6 +3517,10 @@ function writeBurstStats(groups) {
3177
3517
  anomalousGroups
3178
3518
  };
3179
3519
  }
3520
+ function auditScreenProfile(config) {
3521
+ const capabilities = resolveSecurityCapabilities(config);
3522
+ return capabilities.injectionScreen ? capabilities.injectionScreenProfile : "default";
3523
+ }
3180
3524
  async function auditMemoryStore(options) {
3181
3525
  const since = parseSince(options.since);
3182
3526
  const storage = options.storage;
@@ -3188,8 +3532,9 @@ async function auditMemoryStore(options) {
3188
3532
  );
3189
3533
  const findings = [];
3190
3534
  const quarantinePaths = /* @__PURE__ */ new Map();
3535
+ const profile = options.profile ?? "default";
3191
3536
  for (const memory of activeMemories) {
3192
- const screened = screenCandidateFact(memory.content);
3537
+ const screened = screenCandidateFact(memory.content, profile);
3193
3538
  if (screened.quarantine === true) quarantinePaths.set(memory.path, { injection: true, burst: false });
3194
3539
  for (const screenFinding of screened.findings) {
3195
3540
  findings.push({
@@ -3236,7 +3581,7 @@ async function auditMemoryStore(options) {
3236
3581
  if (!qInfo) continue;
3237
3582
  const memory = await storage.readMemoryByPath(staleMemory.path);
3238
3583
  if (!memory || !isActive(memory, options.memoryDir)) continue;
3239
- if (qInfo.injection && !qInfo.burst && !screenCandidateFact(memory.content).quarantine) continue;
3584
+ if (qInfo.injection && !qInfo.burst && !screenCandidateFact(memory.content, profile).quarantine) continue;
3240
3585
  const changed = await storage.writeMemoryFrontmatterIfUnchanged(memory, {
3241
3586
  status: "pending_review",
3242
3587
  updated: now
@@ -3292,7 +3637,13 @@ function registerSecurityCommands(cmd, orchestrator) {
3292
3637
  memoryDir: orchestrator.config.memoryDir,
3293
3638
  storage: orchestrator.storage,
3294
3639
  since: typeof options.since === "string" && options.since.trim().length > 0 ? options.since.trim() : void 0,
3295
- quarantine: options.quarantine === true
3640
+ quarantine: options.quarantine === true,
3641
+ // Screen with the profile live ingestion uses, or a memory this
3642
+ // deployment would quarantine on write stays active once stored
3643
+ // (#3078). A deployment with the screen DISABLED keeps the previous
3644
+ // `default` weighting: the sweep must not be stricter than the
3645
+ // write path the operator configured.
3646
+ profile: auditScreenProfile(orchestrator.config)
3296
3647
  });
3297
3648
  if (options.json === true) {
3298
3649
  console.log(JSON.stringify(report, null, 2));
@@ -5738,7 +6089,7 @@ function registerCli(api, orchestrator, registerOptions = {}) {
5738
6089
  );
5739
6090
  tierCmd.command("list").description("Summarize tier distribution across all memories").option("--json", "Emit machine-readable JSON only").action(async (...args) => {
5740
6091
  const options = args[0] ?? {};
5741
- const { summarizeTiers, formatTierSummaryText } = await import("./tier-stats-VK5PCO2L.js");
6092
+ const { summarizeTiers, formatTierSummaryText } = await import("./tier-stats-VF6DS52E.js");
5742
6093
  const summary = await summarizeTiers(orchestrator.storage);
5743
6094
  if (reportHasMachineReadableOutput(options)) {
5744
6095
  console.log(JSON.stringify(summary, null, 2));
@@ -5749,7 +6100,7 @@ function registerCli(api, orchestrator, registerOptions = {}) {
5749
6100
  tierCmd.command("explain").description("Explain the tier-transition decision for a single memory").argument("<id>", "Memory id to explain").option("--json", "Emit machine-readable JSON only").action(async (...args) => {
5750
6101
  const idArg = typeof args[0] === "string" ? args[0] : "";
5751
6102
  const options = args[1] ?? {};
5752
- const { explainTierForMemory, formatTierExplainText } = await import("./tier-stats-VK5PCO2L.js");
6103
+ const { explainTierForMemory, formatTierExplainText } = await import("./tier-stats-VF6DS52E.js");
5753
6104
  try {
5754
6105
  const explain = await explainTierForMemory(
5755
6106
  orchestrator.storage,
@@ -8995,7 +9346,7 @@ Semantic consolidation complete. clusters=${result.clustersFound}, consolidated=
8995
9346
  console.error("--verb is required. Must be one of: keep-a, keep-b, merge, both-valid, needs-more-context");
8996
9347
  process.exit(1);
8997
9348
  }
8998
- const { isValidResolutionVerb, executeResolution } = await import("./resolution-CHNISQJB.js");
9349
+ const { isValidResolutionVerb, executeResolution } = await import("./resolution-UYJU5JUA.js");
8999
9350
  if (!isValidResolutionVerb(verb)) {
9000
9351
  console.error(`Invalid verb: ${verb}. Must be one of: keep-a, keep-b, merge, both-valid, needs-more-context`);
9001
9352
  process.exit(1);
@@ -9027,7 +9378,7 @@ Semantic consolidation complete. clusters=${result.clustersFound}, consolidated=
9027
9378
  });
9028
9379
  reviewCmd.command("scan").description("Run an on-demand contradiction scan").option("--namespace <ns>", "Namespace to scan").action(async (...args) => {
9029
9380
  const options = args[0] ?? {};
9030
- const { runContradictionScan } = await import("./contradiction-scan-GVD4JJ7B.js");
9381
+ const { runContradictionScan } = await import("./contradiction-scan-5EJYRKD3.js");
9031
9382
  console.log("Running contradiction scan...");
9032
9383
  const result = await runContradictionScan({
9033
9384
  storage: orchestrator.storage,
@@ -9654,6 +10005,7 @@ export {
9654
10005
  exportSkillBundles,
9655
10006
  readSkillBundlesFromDir,
9656
10007
  persistImportedSkills,
10008
+ auditScreenProfile,
9657
10009
  auditMemoryStore,
9658
10010
  formatAuditMemoryReport,
9659
10011
  registerWearableConnector,
@@ -9779,4 +10131,4 @@ export {
9779
10131
  listMemoryMarkdownFilePaths,
9780
10132
  registerCli
9781
10133
  };
9782
- //# sourceMappingURL=chunk-Y76HXF3F.js.map
10134
+ //# sourceMappingURL=chunk-ZDZJ2PG4.js.map