@remnic/core 9.3.650 → 9.3.652

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 (193) hide show
  1. package/dist/access-cli.js +39 -38
  2. package/dist/access-cli.js.map +1 -1
  3. package/dist/access-http.d.ts +3 -2
  4. package/dist/access-http.js +19 -19
  5. package/dist/access-mcp.d.ts +3 -2
  6. package/dist/access-mcp.js +18 -18
  7. package/dist/access-schema.js +3 -3
  8. package/dist/{access-service-DIZRHQ7Q.d.ts → access-service-CdJFd3_b.d.ts} +23 -2
  9. package/dist/access-service.d.ts +3 -2
  10. package/dist/access-service.js +16 -16
  11. package/dist/{auto-sync-54QQHOG5.js → auto-sync-5CJBJMPZ.js} +5 -5
  12. package/dist/bootstrap.d.ts +2 -1
  13. package/dist/briefing.js +3 -3
  14. package/dist/calibration.js +2 -2
  15. package/dist/{capsule-crypto-GWVG7LGC.js → capsule-crypto-7FJQINUR.js} +2 -2
  16. package/dist/causal-consolidation.js +6 -6
  17. package/dist/{chunk-QT4THOLT.js → chunk-2DGQLOOM.js} +1 -1
  18. package/dist/chunk-2DGQLOOM.js.map +1 -0
  19. package/dist/{chunk-OWHERGF2.js → chunk-2NLLXCJG.js} +2 -2
  20. package/dist/{chunk-OAZ5MFUB.js → chunk-3XGWCZ63.js} +45 -28
  21. package/dist/chunk-3XGWCZ63.js.map +1 -0
  22. package/dist/{chunk-QKE4LHNR.js → chunk-4HYSMH7D.js} +2 -2
  23. package/dist/{chunk-DDRNDPX4.js → chunk-4SKKVWLQ.js} +2 -2
  24. package/dist/chunk-5FOCXX5E.js +34 -0
  25. package/dist/chunk-5FOCXX5E.js.map +1 -0
  26. package/dist/{chunk-YAFSTKTH.js → chunk-5V3TAB7D.js} +184 -12
  27. package/dist/chunk-5V3TAB7D.js.map +1 -0
  28. package/dist/{chunk-DB5A3NHS.js → chunk-7LWRCOP7.js} +9 -2
  29. package/dist/chunk-7LWRCOP7.js.map +1 -0
  30. package/dist/{chunk-FOVPSMGI.js → chunk-7WEB3FLJ.js} +2 -2
  31. package/dist/{chunk-APJQ6UEA.js → chunk-AGNBY3VG.js} +4 -4
  32. package/dist/{chunk-4BISW7RX.js → chunk-AJE7FJVE.js} +2 -2
  33. package/dist/{chunk-ZXWAQFDE.js → chunk-CFOCZPIQ.js} +2 -2
  34. package/dist/{chunk-NT5TINK5.js → chunk-DHGSZ3UD.js} +2 -2
  35. package/dist/{chunk-OTC2KOZ2.js → chunk-EHQLDFSH.js} +2 -2
  36. package/dist/{chunk-RRRCNIPK.js → chunk-GI45G4BK.js} +4 -4
  37. package/dist/{chunk-AMACWKM4.js → chunk-IJHLC5CH.js} +2 -2
  38. package/dist/{chunk-OR7R6M5Z.js → chunk-IVYSVAC6.js} +2 -2
  39. package/dist/{chunk-76QTEJ2Q.js → chunk-JBHXMCYN.js} +2 -2
  40. package/dist/{chunk-UMKPSD35.js → chunk-JF7SFXTG.js} +2 -2
  41. package/dist/{chunk-NMIOW7XG.js → chunk-JVRPJ7D4.js} +126 -26
  42. package/dist/chunk-JVRPJ7D4.js.map +1 -0
  43. package/dist/{chunk-TQUWNX7C.js → chunk-JX2RINDR.js} +2 -2
  44. package/dist/{chunk-MCYT2RNT.js → chunk-KJDKZVF3.js} +3 -3
  45. package/dist/{chunk-BUKK5SWA.js → chunk-KQAFEZQX.js} +2 -2
  46. package/dist/{chunk-PQFUUXWK.js → chunk-KWM33SPU.js} +2 -2
  47. package/dist/{chunk-A3BS64GV.js → chunk-LCC5EZTT.js} +4 -4
  48. package/dist/{chunk-TVOPSKOK.js → chunk-MGGNV3H2.js} +4 -4
  49. package/dist/{chunk-D6WVJIS3.js → chunk-ORGWWNJG.js} +2 -2
  50. package/dist/{chunk-Z3PZRDLW.js → chunk-PRQXUSQV.js} +2 -2
  51. package/dist/{chunk-VWT3F4IV.js → chunk-PS3SYNHP.js} +12 -4
  52. package/dist/chunk-PS3SYNHP.js.map +1 -0
  53. package/dist/{chunk-I4COC5XW.js → chunk-PYWNNF2I.js} +47 -9
  54. package/dist/chunk-PYWNNF2I.js.map +1 -0
  55. package/dist/{chunk-IMWFHBG2.js → chunk-QWRC7GIO.js} +2 -2
  56. package/dist/{chunk-U3GQ33JC.js → chunk-SLTKP5WJ.js} +2 -2
  57. package/dist/{chunk-23RYLGYA.js → chunk-TCX4WLKK.js} +104 -112
  58. package/dist/chunk-TCX4WLKK.js.map +1 -0
  59. package/dist/{chunk-6NKAQ74D.js → chunk-UU6MVCJ6.js} +1 -1
  60. package/dist/chunk-UU6MVCJ6.js.map +1 -0
  61. package/dist/{chunk-WEPMT6SC.js → chunk-V25ZAOSB.js} +5 -5
  62. package/dist/{chunk-UMTG2BN2.js → chunk-V4UDXYGG.js} +2 -2
  63. package/dist/{chunk-TUMH6EDV.js → chunk-WSFNYPAT.js} +26 -26
  64. package/dist/{chunk-ZT6R3WR3.js → chunk-WTI35CVJ.js} +4 -4
  65. package/dist/{chunk-UVYI6VIX.js → chunk-X7Y7WX73.js} +1 -1
  66. package/dist/{chunk-OZKZ2TRP.js → chunk-XBIACVCO.js} +9 -2
  67. package/dist/chunk-XBIACVCO.js.map +1 -0
  68. package/dist/{chunk-ALUZN7BE.js → chunk-XMN6MMTU.js} +2 -2
  69. package/dist/{chunk-A4BTPHIN.js → chunk-Y7NWBBHV.js} +6 -6
  70. package/dist/{chunk-WPCCNSWO.js → chunk-YM3LR4LS.js} +7 -7
  71. package/dist/{chunk-3IJEQWQX.js → chunk-YOVKPOMD.js} +4 -4
  72. package/dist/{chunk-M75TBFKQ.js → chunk-Z2OXSMZK.js} +2 -2
  73. package/dist/{cli-BG4ybtJr.d.ts → cli-DDo7Qgs-.d.ts} +2 -2
  74. package/dist/cli.d.ts +4 -3
  75. package/dist/cli.js +34 -34
  76. package/dist/compounding/engine.js +3 -3
  77. package/dist/connectors/codex-materialize-runner.js +3 -3
  78. package/dist/connectors/index.js +3 -3
  79. package/dist/entity-retrieval.js +3 -3
  80. package/dist/event-order-recall.js +1 -1
  81. package/dist/explicit-capture.d.ts +2 -1
  82. package/dist/explicit-cue-recall.d.ts +7 -0
  83. package/dist/explicit-cue-recall.js +2 -1
  84. package/dist/extraction-judge.js +3 -3
  85. package/dist/extraction.js +3 -3
  86. package/dist/fallback-llm.js +2 -2
  87. package/dist/focused-list-recall.d.ts +6 -0
  88. package/dist/focused-list-recall.js +2 -1
  89. package/dist/index.d.ts +5 -4
  90. package/dist/index.js +87 -86
  91. package/dist/index.js.map +1 -1
  92. package/dist/lcm/engine.js +2 -2
  93. package/dist/lcm/index.js +5 -5
  94. package/dist/lcm-fallback-read.d.ts +71 -0
  95. package/dist/lcm-fallback-read.js +10 -0
  96. package/dist/lcm-fallback-read.js.map +1 -0
  97. package/dist/maintenance/memory-governance.js +3 -3
  98. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +3 -3
  99. package/dist/maintenance/rebuild-memory-projection.js +4 -4
  100. package/dist/mcp-memory-inspector-app.d.ts +3 -2
  101. package/dist/namespaces/migrate.js +11 -11
  102. package/dist/namespaces/search.d.ts +18 -1
  103. package/dist/namespaces/search.js +7 -7
  104. package/dist/namespaces/storage.js +3 -3
  105. package/dist/operator-toolkit.js +13 -13
  106. package/dist/{orchestrator-CX-oqwJq.d.ts → orchestrator-8fTZsa0y.d.ts} +2 -0
  107. package/dist/orchestrator.d.ts +2 -1
  108. package/dist/orchestrator.js +33 -32
  109. package/dist/qmd.d.ts +2 -1
  110. package/dist/qmd.js +2 -2
  111. package/dist/recall-planner-llm.js +2 -2
  112. package/dist/response-guidance-recall.d.ts +6 -0
  113. package/dist/response-guidance-recall.js +2 -1
  114. package/dist/search/factory.js +6 -6
  115. package/dist/search/index.js +8 -8
  116. package/dist/search/lancedb-backend.js +2 -2
  117. package/dist/search/meilisearch-backend.js +2 -2
  118. package/dist/search/orama-backend.js +2 -2
  119. package/dist/search/port.d.ts +6 -0
  120. package/dist/search/port.js +1 -1
  121. package/dist/semantic-consolidation.js +4 -4
  122. package/dist/semantic-rule-promotion.js +3 -3
  123. package/dist/semantic-rule-verifier.js +3 -3
  124. package/dist/storage.js +2 -2
  125. package/dist/summarizer.js +3 -3
  126. package/dist/targeted-fact-recall.d.ts +6 -0
  127. package/dist/targeted-fact-recall.js +2 -1
  128. package/dist/transfer/backup.js +2 -2
  129. package/dist/transfer/capsule-export.js +2 -2
  130. package/dist/transfer/capsule-import.js +2 -2
  131. package/dist/transfer/import-sqlite.js +2 -2
  132. package/dist/verified-recall.js +3 -3
  133. package/package.json +1 -1
  134. package/src/access-service-health.test.ts +402 -0
  135. package/src/access-service.ts +274 -2
  136. package/src/event-order-recall.ts +8 -0
  137. package/src/explicit-cue-recall.ts +70 -29
  138. package/src/focused-list-recall.ts +23 -1
  139. package/src/lcm-fallback-read.ts +113 -0
  140. package/src/namespaces/search.test.ts +258 -3
  141. package/src/namespaces/search.ts +184 -30
  142. package/src/orchestrator.ts +179 -122
  143. package/src/qmd.test.ts +102 -0
  144. package/src/qmd.ts +54 -7
  145. package/src/response-guidance-recall.ts +21 -1
  146. package/src/search/port.ts +6 -0
  147. package/src/targeted-fact-recall.ts +24 -3
  148. package/dist/chunk-23RYLGYA.js.map +0 -1
  149. package/dist/chunk-6NKAQ74D.js.map +0 -1
  150. package/dist/chunk-DB5A3NHS.js.map +0 -1
  151. package/dist/chunk-I4COC5XW.js.map +0 -1
  152. package/dist/chunk-NMIOW7XG.js.map +0 -1
  153. package/dist/chunk-OAZ5MFUB.js.map +0 -1
  154. package/dist/chunk-OZKZ2TRP.js.map +0 -1
  155. package/dist/chunk-QT4THOLT.js.map +0 -1
  156. package/dist/chunk-VWT3F4IV.js.map +0 -1
  157. package/dist/chunk-YAFSTKTH.js.map +0 -1
  158. /package/dist/{auto-sync-54QQHOG5.js.map → auto-sync-5CJBJMPZ.js.map} +0 -0
  159. /package/dist/{capsule-crypto-GWVG7LGC.js.map → capsule-crypto-7FJQINUR.js.map} +0 -0
  160. /package/dist/{chunk-OWHERGF2.js.map → chunk-2NLLXCJG.js.map} +0 -0
  161. /package/dist/{chunk-QKE4LHNR.js.map → chunk-4HYSMH7D.js.map} +0 -0
  162. /package/dist/{chunk-DDRNDPX4.js.map → chunk-4SKKVWLQ.js.map} +0 -0
  163. /package/dist/{chunk-FOVPSMGI.js.map → chunk-7WEB3FLJ.js.map} +0 -0
  164. /package/dist/{chunk-APJQ6UEA.js.map → chunk-AGNBY3VG.js.map} +0 -0
  165. /package/dist/{chunk-4BISW7RX.js.map → chunk-AJE7FJVE.js.map} +0 -0
  166. /package/dist/{chunk-ZXWAQFDE.js.map → chunk-CFOCZPIQ.js.map} +0 -0
  167. /package/dist/{chunk-NT5TINK5.js.map → chunk-DHGSZ3UD.js.map} +0 -0
  168. /package/dist/{chunk-OTC2KOZ2.js.map → chunk-EHQLDFSH.js.map} +0 -0
  169. /package/dist/{chunk-RRRCNIPK.js.map → chunk-GI45G4BK.js.map} +0 -0
  170. /package/dist/{chunk-AMACWKM4.js.map → chunk-IJHLC5CH.js.map} +0 -0
  171. /package/dist/{chunk-OR7R6M5Z.js.map → chunk-IVYSVAC6.js.map} +0 -0
  172. /package/dist/{chunk-76QTEJ2Q.js.map → chunk-JBHXMCYN.js.map} +0 -0
  173. /package/dist/{chunk-UMKPSD35.js.map → chunk-JF7SFXTG.js.map} +0 -0
  174. /package/dist/{chunk-TQUWNX7C.js.map → chunk-JX2RINDR.js.map} +0 -0
  175. /package/dist/{chunk-MCYT2RNT.js.map → chunk-KJDKZVF3.js.map} +0 -0
  176. /package/dist/{chunk-BUKK5SWA.js.map → chunk-KQAFEZQX.js.map} +0 -0
  177. /package/dist/{chunk-PQFUUXWK.js.map → chunk-KWM33SPU.js.map} +0 -0
  178. /package/dist/{chunk-A3BS64GV.js.map → chunk-LCC5EZTT.js.map} +0 -0
  179. /package/dist/{chunk-TVOPSKOK.js.map → chunk-MGGNV3H2.js.map} +0 -0
  180. /package/dist/{chunk-D6WVJIS3.js.map → chunk-ORGWWNJG.js.map} +0 -0
  181. /package/dist/{chunk-Z3PZRDLW.js.map → chunk-PRQXUSQV.js.map} +0 -0
  182. /package/dist/{chunk-IMWFHBG2.js.map → chunk-QWRC7GIO.js.map} +0 -0
  183. /package/dist/{chunk-U3GQ33JC.js.map → chunk-SLTKP5WJ.js.map} +0 -0
  184. /package/dist/{chunk-WEPMT6SC.js.map → chunk-V25ZAOSB.js.map} +0 -0
  185. /package/dist/{chunk-UMTG2BN2.js.map → chunk-V4UDXYGG.js.map} +0 -0
  186. /package/dist/{chunk-TUMH6EDV.js.map → chunk-WSFNYPAT.js.map} +0 -0
  187. /package/dist/{chunk-ZT6R3WR3.js.map → chunk-WTI35CVJ.js.map} +0 -0
  188. /package/dist/{chunk-UVYI6VIX.js.map → chunk-X7Y7WX73.js.map} +0 -0
  189. /package/dist/{chunk-ALUZN7BE.js.map → chunk-XMN6MMTU.js.map} +0 -0
  190. /package/dist/{chunk-A4BTPHIN.js.map → chunk-Y7NWBBHV.js.map} +0 -0
  191. /package/dist/{chunk-WPCCNSWO.js.map → chunk-YM3LR4LS.js.map} +0 -0
  192. /package/dist/{chunk-3IJEQWQX.js.map → chunk-YOVKPOMD.js.map} +0 -0
  193. /package/dist/{chunk-M75TBFKQ.js.map → chunk-Z2OXSMZK.js.map} +0 -0
@@ -1,34 +1,34 @@
1
1
  import {
2
2
  Orchestrator
3
- } from "./chunk-23RYLGYA.js";
4
- import "./chunk-DDRNDPX4.js";
3
+ } from "./chunk-TCX4WLKK.js";
4
+ import "./chunk-4SKKVWLQ.js";
5
5
  import "./chunk-7HYPN2GC.js";
6
6
  import "./chunk-666A3MOW.js";
7
7
  import "./chunk-HHLLAQGZ.js";
8
8
  import "./chunk-UWK5OXUJ.js";
9
- import "./chunk-WEPMT6SC.js";
9
+ import "./chunk-V25ZAOSB.js";
10
+ import "./chunk-MAV46GWQ.js";
10
11
  import "./chunk-5VDJMYTF.js";
11
12
  import "./chunk-HP5FMB6L.js";
12
13
  import "./chunk-7N4KAIGN.js";
13
14
  import "./chunk-TPDBFYEG.js";
14
15
  import "./chunk-KCYE2MZM.js";
15
- import "./chunk-MAV46GWQ.js";
16
16
  import "./chunk-TECVW3JP.js";
17
17
  import "./chunk-T2PO5MUF.js";
18
- import "./chunk-Z3PZRDLW.js";
18
+ import "./chunk-PRQXUSQV.js";
19
19
  import "./chunk-DRD2Q7HQ.js";
20
20
  import "./chunk-LXOM6IQU.js";
21
21
  import "./chunk-VOUOLGIP.js";
22
22
  import "./chunk-S75M5ZRK.js";
23
23
  import "./chunk-ECZU5BJH.js";
24
24
  import "./chunk-UHGBNIOS.js";
25
- import "./chunk-IMWFHBG2.js";
25
+ import "./chunk-QWRC7GIO.js";
26
26
  import "./chunk-XJNBEDFE.js";
27
- import "./chunk-VWT3F4IV.js";
27
+ import "./chunk-PS3SYNHP.js";
28
28
  import "./chunk-YTWNKQ2G.js";
29
29
  import "./chunk-MDYG7VI7.js";
30
30
  import "./chunk-MHQC2WU2.js";
31
- import "./chunk-OZKZ2TRP.js";
31
+ import "./chunk-XBIACVCO.js";
32
32
  import "./chunk-6GC5SGFE.js";
33
33
  import "./chunk-MGN7VHWQ.js";
34
34
  import "./chunk-5IZL4DCV.js";
@@ -48,17 +48,18 @@ import "./chunk-H63EDPFJ.js";
48
48
  import "./chunk-PD6O7AXF.js";
49
49
  import "./chunk-YAZNBMNF.js";
50
50
  import "./chunk-7YX23JBA.js";
51
- import "./chunk-M75TBFKQ.js";
52
- import "./chunk-U3GQ33JC.js";
51
+ import "./chunk-Z2OXSMZK.js";
52
+ import "./chunk-SLTKP5WJ.js";
53
53
  import "./chunk-4RA3C3EV.js";
54
54
  import "./chunk-ROZJACKP.js";
55
55
  import "./chunk-54V4BZWP.js";
56
56
  import "./chunk-XZ4WBBB5.js";
57
57
  import "./chunk-H3HDXD3U.js";
58
- import "./chunk-DB5A3NHS.js";
59
- import "./chunk-ALUZN7BE.js";
60
- import "./chunk-6NKAQ74D.js";
61
- import "./chunk-OAZ5MFUB.js";
58
+ import "./chunk-7LWRCOP7.js";
59
+ import "./chunk-XMN6MMTU.js";
60
+ import "./chunk-UU6MVCJ6.js";
61
+ import "./chunk-3XGWCZ63.js";
62
+ import "./chunk-5FOCXX5E.js";
62
63
  import "./chunk-PYPOFEMK.js";
63
64
  import "./chunk-WLEB7WCG.js";
64
65
  import "./chunk-VEWZZM3H.js";
@@ -67,27 +68,27 @@ import "./chunk-6HEM6HTQ.js";
67
68
  import "./chunk-XCAZF7KQ.js";
68
69
  import "./chunk-3PG3H5TD.js";
69
70
  import "./chunk-OD4FM2U7.js";
70
- import "./chunk-ZXWAQFDE.js";
71
- import "./chunk-OR7R6M5Z.js";
71
+ import "./chunk-CFOCZPIQ.js";
72
+ import "./chunk-IVYSVAC6.js";
72
73
  import "./chunk-LN4YGHTM.js";
73
74
  import "./chunk-JLNBQWZ2.js";
74
75
  import "./chunk-2PRQG7PV.js";
75
76
  import "./chunk-X6IRLNOO.js";
76
77
  import "./chunk-2F6NP3NT.js";
77
78
  import "./chunk-TERNBNJB.js";
78
- import "./chunk-UMKPSD35.js";
79
+ import "./chunk-JF7SFXTG.js";
79
80
  import "./chunk-W4RVMTHR.js";
80
- import "./chunk-4BISW7RX.js";
81
+ import "./chunk-AJE7FJVE.js";
81
82
  import "./chunk-ZRWB5D4H.js";
82
83
  import "./chunk-AGRPGAKR.js";
83
84
  import "./chunk-S4DDLTPX.js";
84
85
  import "./chunk-SFQ6QNL7.js";
85
- import "./chunk-D6WVJIS3.js";
86
+ import "./chunk-33JBK2XP.js";
87
+ import "./chunk-ORGWWNJG.js";
86
88
  import "./chunk-KFY3SGN7.js";
87
89
  import {
88
90
  resolvePluginEntry
89
91
  } from "./chunk-CMTINOFS.js";
90
- import "./chunk-33JBK2XP.js";
91
92
  import "./chunk-TQNRI55H.js";
92
93
  import "./chunk-6GUG4YNM.js";
93
94
  import "./chunk-JXS5PDQ7.js";
@@ -102,10 +103,10 @@ import "./chunk-3UXOZBHV.js";
102
103
  import "./chunk-P4BC54KI.js";
103
104
  import "./chunk-UQ7RN5HK.js";
104
105
  import "./chunk-IBTZEBUD.js";
105
- import "./chunk-A3BS64GV.js";
106
+ import "./chunk-LCC5EZTT.js";
106
107
  import "./chunk-B5XMS73R.js";
107
- import "./chunk-7SI52C65.js";
108
108
  import "./chunk-L2EXJQJP.js";
109
+ import "./chunk-7SI52C65.js";
109
110
  import "./chunk-RK6F44Y6.js";
110
111
  import {
111
112
  parseConfig
@@ -122,28 +123,28 @@ import "./chunk-OADWQ5CR.js";
122
123
  import "./chunk-7WV3F5DQ.js";
123
124
  import {
124
125
  EngramAccessService
125
- } from "./chunk-YAFSTKTH.js";
126
+ } from "./chunk-5V3TAB7D.js";
126
127
  import "./chunk-GDASG7NC.js";
127
128
  import "./chunk-GDB4J2H3.js";
128
- import "./chunk-NT5TINK5.js";
129
+ import "./chunk-DHGSZ3UD.js";
130
+ import "./chunk-H7XKCNR6.js";
129
131
  import "./chunk-IENGGY2C.js";
130
132
  import "./chunk-SOBJ6NEY.js";
131
133
  import "./chunk-BT7NVCML.js";
132
- import "./chunk-H7XKCNR6.js";
133
- import "./chunk-UMTG2BN2.js";
134
+ import "./chunk-V4UDXYGG.js";
134
135
  import "./chunk-MMJANTJX.js";
135
136
  import "./chunk-5RIRL3XL.js";
136
137
  import "./chunk-JGSKJHF7.js";
137
138
  import "./chunk-FF4KLI5W.js";
138
139
  import "./chunk-BEMWL2FZ.js";
139
- import "./chunk-NMIOW7XG.js";
140
- import "./chunk-WPCCNSWO.js";
140
+ import "./chunk-JVRPJ7D4.js";
141
+ import "./chunk-YM3LR4LS.js";
142
+ import "./chunk-JX2RINDR.js";
141
143
  import "./chunk-CYEPCZN5.js";
142
- import "./chunk-76QTEJ2Q.js";
144
+ import "./chunk-JBHXMCYN.js";
143
145
  import "./chunk-JOASJWQR.js";
144
146
  import "./chunk-RN7MUWON.js";
145
- import "./chunk-FOVPSMGI.js";
146
- import "./chunk-TQUWNX7C.js";
147
+ import "./chunk-7WEB3FLJ.js";
147
148
  import "./chunk-Q4CAQGKQ.js";
148
149
  import "./chunk-CINZGPSJ.js";
149
150
  import "./chunk-ZFXCQPNO.js";
@@ -151,8 +152,8 @@ import "./chunk-7OGJQP7T.js";
151
152
  import "./chunk-E6ZDCOHM.js";
152
153
  import "./chunk-OIF36KGD.js";
153
154
  import "./chunk-7DTASS5T.js";
154
- import "./chunk-I4COC5XW.js";
155
- import "./chunk-QT4THOLT.js";
155
+ import "./chunk-PYWNNF2I.js";
156
+ import "./chunk-2DGQLOOM.js";
156
157
  import "./chunk-BMFZLLNI.js";
157
158
  import "./chunk-CI7RKSRE.js";
158
159
  import "./chunk-6HMYUWXR.js";
@@ -168,17 +169,17 @@ import "./chunk-3ONXXHQO.js";
168
169
  import "./chunk-Y56J7CXW.js";
169
170
  import "./chunk-2LSZVONP.js";
170
171
  import "./chunk-DEUNUKTD.js";
171
- import "./chunk-AMACWKM4.js";
172
- import "./chunk-A4BTPHIN.js";
172
+ import "./chunk-IJHLC5CH.js";
173
+ import "./chunk-Y7NWBBHV.js";
173
174
  import "./chunk-M7XQSUBB.js";
174
175
  import "./chunk-5UZXUTVO.js";
175
176
  import "./chunk-J6A3CX5N.js";
176
177
  import "./chunk-C43KEWEV.js";
178
+ import "./chunk-CPPS65WS.js";
177
179
  import "./chunk-RULE4VG5.js";
178
180
  import "./chunk-SCU65EZI.js";
179
181
  import "./chunk-MB5RSUW6.js";
180
182
  import "./chunk-6KYMPV2O.js";
181
- import "./chunk-CPPS65WS.js";
182
183
  import "./chunk-DM2T26WE.js";
183
184
  import "./chunk-LDXUBPMO.js";
184
185
  import "./chunk-FVQJYWH7.js";
@@ -207,9 +208,9 @@ import "./chunk-TVVEYCNW.js";
207
208
  import "./chunk-RFYAYKTD.js";
208
209
  import "./chunk-LBLXEFWK.js";
209
210
  import "./chunk-VFUEZZBS.js";
210
- import "./chunk-BUKK5SWA.js";
211
+ import "./chunk-KQAFEZQX.js";
211
212
  import "./chunk-WEHSQBFR.js";
212
- import "./chunk-UVYI6VIX.js";
213
+ import "./chunk-X7Y7WX73.js";
213
214
  import "./chunk-J4EB7DNW.js";
214
215
  import "./chunk-BJMBJZ2Y.js";
215
216
  import "./chunk-UKJAGEXH.js";
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/access-cli.ts"],"sourcesContent":["import fs from \"node:fs\";\nimport path from \"node:path\";\nimport { parseConfig } from \"./config.js\";\nimport type { PluginConfig } from \"./types.js\";\nimport { Orchestrator } from \"./orchestrator.js\";\nimport { EngramAccessService } from \"./access-service.js\";\nimport { readEnvVar, resolveHomeDir } from \"./runtime/env.js\";\nimport { resolvePluginEntry } from \"./plugin-entry-resolver.js\";\nimport { expandTildePath } from \"./utils/path.js\";\n\nconst OPENCLAW_REMNIC_PLUGIN_IDS = [\"openclaw-remnic\", \"openclaw-engram\"] as const;\n\ntype CommandName = \"browse\" | \"store\";\n\ntype ParsedArgs = {\n command: CommandName;\n options: Record<string, string[]>;\n flags: Set<string>;\n};\n\ntype CommandSpec = {\n valueOptions: ReadonlySet<string>;\n flagOptions: ReadonlySet<string>;\n};\n\ntype Runtime = {\n config: PluginConfig;\n service: EngramAccessService;\n};\n\nexport type AccessCliOptions = {\n /**\n * The calling plugin's own id (e.g. `\"openclaw-engram\"` when invoked by the\n * shim binary). Forwarded to the plugin-entry resolver so shim CLI\n * users target their own `plugins.entries[\"openclaw-engram\"]` block instead\n * of accidentally resolving to the canonical `\"openclaw-remnic\"` entry when\n * `plugins.slots.memory` is unset (#403).\n */\n preferredId?: string;\n};\n\nfunction getOpenClawPluginEntries(raw: Record<string, unknown>): Record<string, unknown> | undefined {\n const plugins =\n raw[\"plugins\"] && typeof raw[\"plugins\"] === \"object\" && !Array.isArray(raw[\"plugins\"])\n ? (raw[\"plugins\"] as Record<string, unknown>)\n : undefined;\n const entries =\n plugins && plugins[\"entries\"] && typeof plugins[\"entries\"] === \"object\" && !Array.isArray(plugins[\"entries\"])\n ? (plugins[\"entries\"] as Record<string, unknown>)\n : undefined;\n return entries;\n}\n\nfunction getOpenClawMemorySlotId(raw: Record<string, unknown>): string | undefined {\n const plugins =\n raw[\"plugins\"] && typeof raw[\"plugins\"] === \"object\" && !Array.isArray(raw[\"plugins\"])\n ? (raw[\"plugins\"] as Record<string, unknown>)\n : undefined;\n const slots =\n plugins && plugins[\"slots\"] && typeof plugins[\"slots\"] === \"object\" && !Array.isArray(plugins[\"slots\"])\n ? (plugins[\"slots\"] as Record<string, unknown>)\n : undefined;\n const slotId = slots?.[\"memory\"];\n return typeof slotId === \"string\" ? slotId : undefined;\n}\n\nfunction resolveOpenClawRemnicPluginEntry(raw: unknown, preferredId?: string): Record<string, unknown> | undefined {\n return resolvePluginEntry(raw, {\n candidateIds: OPENCLAW_REMNIC_PLUGIN_IDS,\n preferredId,\n getEntries: getOpenClawPluginEntries,\n getSlotId: getOpenClawMemorySlotId,\n });\n}\n\nfunction hasAllowedOpenClawRemnicPluginId(value: string): boolean {\n return (OPENCLAW_REMNIC_PLUGIN_IDS as readonly string[]).includes(value);\n}\n\ntype UsageErrorKind =\n | \"unsupported-command\"\n | \"unexpected-positional\"\n | \"unknown-option\"\n | \"invalid-option\"\n | \"option-does-not-take-value\"\n | \"missing-option\"\n | \"missing-content\"\n | \"invalid-integer\"\n | \"invalid-number\";\n\nclass UsageError extends Error {\n constructor(\n readonly kind: UsageErrorKind,\n readonly optionName?: string,\n readonly acceptedValues?: readonly string[],\n ) {\n super(\"invalid access-cli arguments\");\n }\n}\n\nfunction formatUsageError(error: UsageError): string {\n switch (error.kind) {\n case \"unsupported-command\":\n return \"unsupported command\";\n case \"unexpected-positional\":\n return \"unexpected positional argument\";\n case \"unknown-option\":\n return `unknown option: --${error.optionName ?? \"unknown\"}`;\n case \"invalid-option\": {\n const accepted = error.acceptedValues?.length ? `. Accepted: ${error.acceptedValues.join(\", \")}.` : \"\";\n return `invalid value for --${error.optionName ?? \"unknown\"}${accepted}`;\n }\n case \"option-does-not-take-value\":\n return `option does not accept a value: --${error.optionName ?? \"unknown\"}`;\n case \"missing-option\":\n return `missing required option: --${error.optionName ?? \"unknown\"}`;\n case \"missing-content\":\n return \"missing required option: --content or --content-file\";\n case \"invalid-integer\":\n return `invalid integer for --${error.optionName ?? \"unknown\"}`;\n case \"invalid-number\":\n return `invalid number for --${error.optionName ?? \"unknown\"}`;\n }\n}\n\nfunction writeCliOutput(text: string = \"\"): void {\n process.stdout.write(`${text}\\n`);\n}\n\nfunction usage(): string {\n return [\n \"Usage:\",\n \" engram-access browse [options]\",\n \" engram-access store [options]\",\n \"\",\n \"Browse options:\",\n \" --namespace <name>\",\n \" --principal <principal>\",\n \" --query <text>\",\n \" --category <name>\",\n \" --status <name>\",\n \" --sort <updated_desc|updated_asc|created_desc|created_asc>\",\n \" --limit <n>\",\n \" --offset <n>\",\n \"\",\n \"Store options:\",\n \" --namespace <name>\",\n \" --session-key <key>\",\n \" --principal <principal>\",\n \" --content <text> | --content-file <path>\",\n \" --category <name>\",\n \" --confidence <0-1>\",\n \" --tag <tag> (repeatable)\",\n \" --entity-ref <ref>\",\n \" --ttl <duration>\",\n \" --source-reason <text>\",\n \" --idempotency-key <key>\",\n \" --dry-run\",\n ].join(\"\\n\");\n}\n\nconst COMMAND_SPECS: Record<CommandName, CommandSpec> = {\n browse: {\n valueOptions: new Set([\n \"namespace\",\n \"principal\",\n \"query\",\n \"category\",\n \"status\",\n \"sort\",\n \"limit\",\n \"offset\",\n ]),\n flagOptions: new Set(),\n },\n store: {\n valueOptions: new Set([\n \"namespace\",\n \"session-key\",\n \"principal\",\n \"content\",\n \"content-file\",\n \"category\",\n \"confidence\",\n \"tag\",\n \"entity-ref\",\n \"ttl\",\n \"source-reason\",\n \"idempotency-key\",\n ]),\n flagOptions: new Set([\"dry-run\"]),\n },\n};\n\nconst BROWSE_SORT_VALUES = Object.freeze([\n \"updated_desc\",\n \"updated_asc\",\n \"created_desc\",\n \"created_asc\",\n] as const);\n\ntype BrowseSort = (typeof BROWSE_SORT_VALUES)[number];\n\nfunction parseArgs(argv: string[]): ParsedArgs {\n const [commandRaw, ...rest] = argv;\n if (commandRaw !== \"browse\" && commandRaw !== \"store\") {\n throw new UsageError(\"unsupported-command\");\n }\n const spec = COMMAND_SPECS[commandRaw];\n\n const options: Record<string, string[]> = {};\n const flags = new Set<string>();\n\n for (let i = 0; i < rest.length; i += 1) {\n const token = rest[i];\n if (!token.startsWith(\"--\")) {\n throw new UsageError(\"unexpected-positional\");\n }\n const rawKey = token.slice(2);\n if (!rawKey) {\n throw new UsageError(\"unknown-option\", rawKey);\n }\n const equalsIndex = rawKey.indexOf(\"=\");\n const key = equalsIndex === -1 ? rawKey : rawKey.slice(0, equalsIndex);\n const inlineValue = equalsIndex === -1 ? undefined : rawKey.slice(equalsIndex + 1);\n\n if (!spec.valueOptions.has(key) && !spec.flagOptions.has(key)) {\n throw new UsageError(\"unknown-option\", key);\n }\n\n if (spec.flagOptions.has(key)) {\n if (inlineValue !== undefined) {\n throw new UsageError(\"option-does-not-take-value\", key);\n }\n const next = rest[i + 1];\n if (next && !next.startsWith(\"--\")) {\n throw new UsageError(\"option-does-not-take-value\", key);\n }\n flags.add(key);\n continue;\n }\n\n if (inlineValue !== undefined) {\n if (inlineValue.length === 0) {\n throw new UsageError(\"missing-option\", key);\n }\n if (!options[key]) {\n options[key] = [];\n }\n options[key].push(inlineValue);\n continue;\n }\n\n const next = rest[i + 1];\n if (next === undefined || next.length === 0 || next.startsWith(\"--\")) {\n throw new UsageError(\"missing-option\", key);\n }\n if (!options[key]) {\n options[key] = [];\n }\n options[key].push(next);\n i += 1;\n }\n\n return {\n command: commandRaw,\n options,\n flags,\n };\n}\n\nfunction getLastOption(args: ParsedArgs, name: string): string | undefined {\n const values = args.options[name];\n if (!values || values.length === 0) return undefined;\n return values[values.length - 1];\n}\n\nfunction getAllOptions(args: ParsedArgs, name: string): string[] {\n return args.options[name] ?? [];\n}\n\nfunction requireOption(args: ParsedArgs, name: string): string {\n const value = getLastOption(args, name);\n if (!value || value.trim().length === 0) {\n throw new UsageError(\"missing-option\", name);\n }\n return value;\n}\n\nfunction parseIntegerOption(\n args: ParsedArgs,\n name: string,\n options: { min?: number } = {},\n): number | undefined {\n const raw = getLastOption(args, name);\n if (!raw) return undefined;\n const trimmed = raw.trim();\n if (!/^[+-]?\\d+$/.test(trimmed)) {\n throw new UsageError(\"invalid-integer\", name);\n }\n const value = Number(trimmed);\n if (!Number.isSafeInteger(value)) {\n throw new UsageError(\"invalid-integer\", name);\n }\n if (options.min !== undefined && value < options.min) {\n throw new UsageError(\"invalid-option\", name, [`integer >= ${options.min}`]);\n }\n return value;\n}\n\nfunction parseBrowseSortOption(args: ParsedArgs, name: string): BrowseSort | undefined {\n const raw = getLastOption(args, name);\n if (!raw) return undefined;\n if ((BROWSE_SORT_VALUES as readonly string[]).includes(raw)) {\n return raw as BrowseSort;\n }\n throw new UsageError(\"invalid-option\", name, BROWSE_SORT_VALUES);\n}\n\nfunction parseFloatOption(\n args: ParsedArgs,\n name: string,\n options: { min?: number; max?: number } = {},\n): number | undefined {\n const raw = getLastOption(args, name);\n if (!raw) return undefined;\n const trimmed = raw.trim();\n if (!/^[+-]?(?:(?:\\d+\\.?\\d*)|(?:\\.\\d+))(?:e[+-]?\\d+)?$/i.test(trimmed)) {\n throw new UsageError(\"invalid-number\", name);\n }\n const value = Number(trimmed);\n if (!Number.isFinite(value)) {\n throw new UsageError(\"invalid-number\", name);\n }\n if (options.min !== undefined && value < options.min) {\n throw new UsageError(\"invalid-number\", name);\n }\n if (options.max !== undefined && value > options.max) {\n throw new UsageError(\"invalid-number\", name);\n }\n return value;\n}\n\nfunction loadPluginConfig(preferredId?: string): Record<string, unknown> {\n const configPath =\n expandOptionalPath(readEnvVar(\"OPENCLAW_CONFIG_PATH\")) ||\n expandOptionalPath(readEnvVar(\"OPENCLAW_ENGRAM_CONFIG_PATH\")) ||\n path.join(resolveHomeDir(), \".openclaw\", \"openclaw.json\");\n const raw = JSON.parse(fs.readFileSync(configPath, \"utf8\"));\n const slotId =\n raw && typeof raw === \"object\" && !Array.isArray(raw)\n ? getOpenClawMemorySlotId(raw as Record<string, unknown>)\n : undefined;\n if (typeof slotId === \"string\" && !hasAllowedOpenClawRemnicPluginId(slotId)) {\n throw new Error(\n `OpenClaw memory slot points to non-Remnic plugin \"${slotId}\"; refusing to use default Remnic access config.`,\n );\n }\n // Delegate slot → preferredId → canonical → legacy resolution to the\n // generic helper so all config loaders stay in sync (#403). Shim CLI\n // callers pass `preferredId: \"openclaw-engram\"` so legacy shim installs\n // target their own config block instead of falling through to the canonical\n // \"openclaw-remnic\" entry.\n const entry = resolveOpenClawRemnicPluginEntry(raw, preferredId);\n if (!entry) {\n throw new Error(\n \"OpenClaw config does not contain an allowed Remnic plugin entry; refusing to use default Remnic access config.\",\n );\n }\n return (entry?.[\"config\"] as Record<string, unknown> | undefined) ?? {};\n}\n\nfunction buildRuntime(preferredId?: string): Runtime {\n const config = parseConfig(loadPluginConfig(preferredId));\n return {\n config,\n service: new EngramAccessService(new Orchestrator(config)),\n };\n}\n\nasync function runBrowse(args: ParsedArgs, preferredId?: string): Promise<void> {\n const browseArgs = {\n namespace: getLastOption(args, \"namespace\"),\n principal: getLastOption(args, \"principal\"),\n query: getLastOption(args, \"query\"),\n category: getLastOption(args, \"category\"),\n status: getLastOption(args, \"status\"),\n sort: parseBrowseSortOption(args, \"sort\"),\n limit: parseIntegerOption(args, \"limit\", { min: 1 }),\n offset: parseIntegerOption(args, \"offset\", { min: 0 }),\n };\n const { config, service } = buildRuntime(preferredId);\n const request = {\n namespace: browseArgs.namespace,\n authenticatedPrincipal: browseArgs.principal ?? config.agentAccessHttp.principal,\n query: browseArgs.query,\n category: browseArgs.category,\n status: browseArgs.status,\n sort: browseArgs.sort,\n limit: browseArgs.limit,\n offset: browseArgs.offset,\n };\n const result = await service.memoryBrowse(request);\n console.log(JSON.stringify(result, null, 2));\n}\n\nasync function runStore(args: ParsedArgs, preferredId?: string): Promise<void> {\n const contentFile = getLastOption(args, \"content-file\");\n const inlineContent = getLastOption(args, \"content\");\n const content = contentFile\n ? fs.readFileSync(expandTildePath(contentFile), \"utf8\")\n : inlineContent;\n if (!content || content.trim().length === 0) {\n throw new UsageError(\"missing-content\");\n }\n const storeArgs = {\n namespace: getLastOption(args, \"namespace\"),\n sessionKey: getLastOption(args, \"session-key\"),\n content,\n category: requireOption(args, \"category\"),\n confidence: parseFloatOption(args, \"confidence\", { min: 0, max: 1 }),\n tags: getAllOptions(args, \"tag\"),\n entityRef: getLastOption(args, \"entity-ref\"),\n ttl: getLastOption(args, \"ttl\"),\n sourceReason: getLastOption(args, \"source-reason\"),\n idempotencyKey: getLastOption(args, \"idempotency-key\"),\n dryRun: args.flags.has(\"dry-run\"),\n };\n\n const { config, service } = buildRuntime(preferredId);\n const result = await service.memoryStore({\n namespace: storeArgs.namespace,\n sessionKey: storeArgs.sessionKey,\n authenticatedPrincipal: getLastOption(args, \"principal\") ?? config.agentAccessHttp.principal,\n content: storeArgs.content,\n category: storeArgs.category,\n confidence: storeArgs.confidence,\n tags: storeArgs.tags,\n entityRef: storeArgs.entityRef,\n ttl: storeArgs.ttl,\n sourceReason: storeArgs.sourceReason,\n idempotencyKey: storeArgs.idempotencyKey,\n dryRun: storeArgs.dryRun,\n });\n console.log(JSON.stringify(result, null, 2));\n}\n\nfunction expandOptionalPath(value: string | undefined): string | undefined {\n return value === undefined ? undefined : expandTildePath(value);\n}\n\nexport async function main(\n argv: string[] = process.argv.slice(2),\n options: AccessCliOptions = {},\n): Promise<void> {\n const args = parseArgs(argv);\n if (args.command === \"browse\") {\n await runBrowse(args, options.preferredId);\n return;\n }\n await runStore(args, options.preferredId);\n}\n\nexport function sanitizeAccessCliErrorMessage(message: string): string {\n return message.replace(\n /\\b(openaiApiKey|localLlmApiKey)\\b(\\s*[:=]\\s*)(?:\"[^\"]*\"|'[^']*'|[^\\s,}\\]]+)/gi,\n (_match, name: string, separator: string) => `${name}${separator}[redacted]`,\n );\n}\n\nexport function printUsage(): void {\n writeCliOutput(usage());\n}\n\nexport async function runCli(\n argv: string[] = process.argv.slice(2),\n options: AccessCliOptions = {},\n): Promise<void> {\n try {\n await main(argv, options);\n } catch (error) {\n if (error instanceof UsageError) {\n writeCliOutput(formatUsageError(error));\n writeCliOutput();\n printUsage();\n process.exit(1);\n }\n\n console.error(\"access-cli failed: runtime error\");\n process.exit(1);\n }\n}\n"],"mappings":"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","names":["next"]}
1
+ {"version":3,"sources":["../src/access-cli.ts"],"sourcesContent":["import fs from \"node:fs\";\nimport path from \"node:path\";\nimport { parseConfig } from \"./config.js\";\nimport type { PluginConfig } from \"./types.js\";\nimport { Orchestrator } from \"./orchestrator.js\";\nimport { EngramAccessService } from \"./access-service.js\";\nimport { readEnvVar, resolveHomeDir } from \"./runtime/env.js\";\nimport { resolvePluginEntry } from \"./plugin-entry-resolver.js\";\nimport { expandTildePath } from \"./utils/path.js\";\n\nconst OPENCLAW_REMNIC_PLUGIN_IDS = [\"openclaw-remnic\", \"openclaw-engram\"] as const;\n\ntype CommandName = \"browse\" | \"store\";\n\ntype ParsedArgs = {\n command: CommandName;\n options: Record<string, string[]>;\n flags: Set<string>;\n};\n\ntype CommandSpec = {\n valueOptions: ReadonlySet<string>;\n flagOptions: ReadonlySet<string>;\n};\n\ntype Runtime = {\n config: PluginConfig;\n service: EngramAccessService;\n};\n\nexport type AccessCliOptions = {\n /**\n * The calling plugin's own id (e.g. `\"openclaw-engram\"` when invoked by the\n * shim binary). Forwarded to the plugin-entry resolver so shim CLI\n * users target their own `plugins.entries[\"openclaw-engram\"]` block instead\n * of accidentally resolving to the canonical `\"openclaw-remnic\"` entry when\n * `plugins.slots.memory` is unset (#403).\n */\n preferredId?: string;\n};\n\nfunction getOpenClawPluginEntries(raw: Record<string, unknown>): Record<string, unknown> | undefined {\n const plugins =\n raw[\"plugins\"] && typeof raw[\"plugins\"] === \"object\" && !Array.isArray(raw[\"plugins\"])\n ? (raw[\"plugins\"] as Record<string, unknown>)\n : undefined;\n const entries =\n plugins && plugins[\"entries\"] && typeof plugins[\"entries\"] === \"object\" && !Array.isArray(plugins[\"entries\"])\n ? (plugins[\"entries\"] as Record<string, unknown>)\n : undefined;\n return entries;\n}\n\nfunction getOpenClawMemorySlotId(raw: Record<string, unknown>): string | undefined {\n const plugins =\n raw[\"plugins\"] && typeof raw[\"plugins\"] === \"object\" && !Array.isArray(raw[\"plugins\"])\n ? (raw[\"plugins\"] as Record<string, unknown>)\n : undefined;\n const slots =\n plugins && plugins[\"slots\"] && typeof plugins[\"slots\"] === \"object\" && !Array.isArray(plugins[\"slots\"])\n ? (plugins[\"slots\"] as Record<string, unknown>)\n : undefined;\n const slotId = slots?.[\"memory\"];\n return typeof slotId === \"string\" ? slotId : undefined;\n}\n\nfunction resolveOpenClawRemnicPluginEntry(raw: unknown, preferredId?: string): Record<string, unknown> | undefined {\n return resolvePluginEntry(raw, {\n candidateIds: OPENCLAW_REMNIC_PLUGIN_IDS,\n preferredId,\n getEntries: getOpenClawPluginEntries,\n getSlotId: getOpenClawMemorySlotId,\n });\n}\n\nfunction hasAllowedOpenClawRemnicPluginId(value: string): boolean {\n return (OPENCLAW_REMNIC_PLUGIN_IDS as readonly string[]).includes(value);\n}\n\ntype UsageErrorKind =\n | \"unsupported-command\"\n | \"unexpected-positional\"\n | \"unknown-option\"\n | \"invalid-option\"\n | \"option-does-not-take-value\"\n | \"missing-option\"\n | \"missing-content\"\n | \"invalid-integer\"\n | \"invalid-number\";\n\nclass UsageError extends Error {\n constructor(\n readonly kind: UsageErrorKind,\n readonly optionName?: string,\n readonly acceptedValues?: readonly string[],\n ) {\n super(\"invalid access-cli arguments\");\n }\n}\n\nfunction formatUsageError(error: UsageError): string {\n switch (error.kind) {\n case \"unsupported-command\":\n return \"unsupported command\";\n case \"unexpected-positional\":\n return \"unexpected positional argument\";\n case \"unknown-option\":\n return `unknown option: --${error.optionName ?? \"unknown\"}`;\n case \"invalid-option\": {\n const accepted = error.acceptedValues?.length ? `. Accepted: ${error.acceptedValues.join(\", \")}.` : \"\";\n return `invalid value for --${error.optionName ?? \"unknown\"}${accepted}`;\n }\n case \"option-does-not-take-value\":\n return `option does not accept a value: --${error.optionName ?? \"unknown\"}`;\n case \"missing-option\":\n return `missing required option: --${error.optionName ?? \"unknown\"}`;\n case \"missing-content\":\n return \"missing required option: --content or --content-file\";\n case \"invalid-integer\":\n return `invalid integer for --${error.optionName ?? \"unknown\"}`;\n case \"invalid-number\":\n return `invalid number for --${error.optionName ?? \"unknown\"}`;\n }\n}\n\nfunction writeCliOutput(text: string = \"\"): void {\n process.stdout.write(`${text}\\n`);\n}\n\nfunction usage(): string {\n return [\n \"Usage:\",\n \" engram-access browse [options]\",\n \" engram-access store [options]\",\n \"\",\n \"Browse options:\",\n \" --namespace <name>\",\n \" --principal <principal>\",\n \" --query <text>\",\n \" --category <name>\",\n \" --status <name>\",\n \" --sort <updated_desc|updated_asc|created_desc|created_asc>\",\n \" --limit <n>\",\n \" --offset <n>\",\n \"\",\n \"Store options:\",\n \" --namespace <name>\",\n \" --session-key <key>\",\n \" --principal <principal>\",\n \" --content <text> | --content-file <path>\",\n \" --category <name>\",\n \" --confidence <0-1>\",\n \" --tag <tag> (repeatable)\",\n \" --entity-ref <ref>\",\n \" --ttl <duration>\",\n \" --source-reason <text>\",\n \" --idempotency-key <key>\",\n \" --dry-run\",\n ].join(\"\\n\");\n}\n\nconst COMMAND_SPECS: Record<CommandName, CommandSpec> = {\n browse: {\n valueOptions: new Set([\n \"namespace\",\n \"principal\",\n \"query\",\n \"category\",\n \"status\",\n \"sort\",\n \"limit\",\n \"offset\",\n ]),\n flagOptions: new Set(),\n },\n store: {\n valueOptions: new Set([\n \"namespace\",\n \"session-key\",\n \"principal\",\n \"content\",\n \"content-file\",\n \"category\",\n \"confidence\",\n \"tag\",\n \"entity-ref\",\n \"ttl\",\n \"source-reason\",\n \"idempotency-key\",\n ]),\n flagOptions: new Set([\"dry-run\"]),\n },\n};\n\nconst BROWSE_SORT_VALUES = Object.freeze([\n \"updated_desc\",\n \"updated_asc\",\n \"created_desc\",\n \"created_asc\",\n] as const);\n\ntype BrowseSort = (typeof BROWSE_SORT_VALUES)[number];\n\nfunction parseArgs(argv: string[]): ParsedArgs {\n const [commandRaw, ...rest] = argv;\n if (commandRaw !== \"browse\" && commandRaw !== \"store\") {\n throw new UsageError(\"unsupported-command\");\n }\n const spec = COMMAND_SPECS[commandRaw];\n\n const options: Record<string, string[]> = {};\n const flags = new Set<string>();\n\n for (let i = 0; i < rest.length; i += 1) {\n const token = rest[i];\n if (!token.startsWith(\"--\")) {\n throw new UsageError(\"unexpected-positional\");\n }\n const rawKey = token.slice(2);\n if (!rawKey) {\n throw new UsageError(\"unknown-option\", rawKey);\n }\n const equalsIndex = rawKey.indexOf(\"=\");\n const key = equalsIndex === -1 ? rawKey : rawKey.slice(0, equalsIndex);\n const inlineValue = equalsIndex === -1 ? undefined : rawKey.slice(equalsIndex + 1);\n\n if (!spec.valueOptions.has(key) && !spec.flagOptions.has(key)) {\n throw new UsageError(\"unknown-option\", key);\n }\n\n if (spec.flagOptions.has(key)) {\n if (inlineValue !== undefined) {\n throw new UsageError(\"option-does-not-take-value\", key);\n }\n const next = rest[i + 1];\n if (next && !next.startsWith(\"--\")) {\n throw new UsageError(\"option-does-not-take-value\", key);\n }\n flags.add(key);\n continue;\n }\n\n if (inlineValue !== undefined) {\n if (inlineValue.length === 0) {\n throw new UsageError(\"missing-option\", key);\n }\n if (!options[key]) {\n options[key] = [];\n }\n options[key].push(inlineValue);\n continue;\n }\n\n const next = rest[i + 1];\n if (next === undefined || next.length === 0 || next.startsWith(\"--\")) {\n throw new UsageError(\"missing-option\", key);\n }\n if (!options[key]) {\n options[key] = [];\n }\n options[key].push(next);\n i += 1;\n }\n\n return {\n command: commandRaw,\n options,\n flags,\n };\n}\n\nfunction getLastOption(args: ParsedArgs, name: string): string | undefined {\n const values = args.options[name];\n if (!values || values.length === 0) return undefined;\n return values[values.length - 1];\n}\n\nfunction getAllOptions(args: ParsedArgs, name: string): string[] {\n return args.options[name] ?? [];\n}\n\nfunction requireOption(args: ParsedArgs, name: string): string {\n const value = getLastOption(args, name);\n if (!value || value.trim().length === 0) {\n throw new UsageError(\"missing-option\", name);\n }\n return value;\n}\n\nfunction parseIntegerOption(\n args: ParsedArgs,\n name: string,\n options: { min?: number } = {},\n): number | undefined {\n const raw = getLastOption(args, name);\n if (!raw) return undefined;\n const trimmed = raw.trim();\n if (!/^[+-]?\\d+$/.test(trimmed)) {\n throw new UsageError(\"invalid-integer\", name);\n }\n const value = Number(trimmed);\n if (!Number.isSafeInteger(value)) {\n throw new UsageError(\"invalid-integer\", name);\n }\n if (options.min !== undefined && value < options.min) {\n throw new UsageError(\"invalid-option\", name, [`integer >= ${options.min}`]);\n }\n return value;\n}\n\nfunction parseBrowseSortOption(args: ParsedArgs, name: string): BrowseSort | undefined {\n const raw = getLastOption(args, name);\n if (!raw) return undefined;\n if ((BROWSE_SORT_VALUES as readonly string[]).includes(raw)) {\n return raw as BrowseSort;\n }\n throw new UsageError(\"invalid-option\", name, BROWSE_SORT_VALUES);\n}\n\nfunction parseFloatOption(\n args: ParsedArgs,\n name: string,\n options: { min?: number; max?: number } = {},\n): number | undefined {\n const raw = getLastOption(args, name);\n if (!raw) return undefined;\n const trimmed = raw.trim();\n if (!/^[+-]?(?:(?:\\d+\\.?\\d*)|(?:\\.\\d+))(?:e[+-]?\\d+)?$/i.test(trimmed)) {\n throw new UsageError(\"invalid-number\", name);\n }\n const value = Number(trimmed);\n if (!Number.isFinite(value)) {\n throw new UsageError(\"invalid-number\", name);\n }\n if (options.min !== undefined && value < options.min) {\n throw new UsageError(\"invalid-number\", name);\n }\n if (options.max !== undefined && value > options.max) {\n throw new UsageError(\"invalid-number\", name);\n }\n return value;\n}\n\nfunction loadPluginConfig(preferredId?: string): Record<string, unknown> {\n const configPath =\n expandOptionalPath(readEnvVar(\"OPENCLAW_CONFIG_PATH\")) ||\n expandOptionalPath(readEnvVar(\"OPENCLAW_ENGRAM_CONFIG_PATH\")) ||\n path.join(resolveHomeDir(), \".openclaw\", \"openclaw.json\");\n const raw = JSON.parse(fs.readFileSync(configPath, \"utf8\"));\n const slotId =\n raw && typeof raw === \"object\" && !Array.isArray(raw)\n ? getOpenClawMemorySlotId(raw as Record<string, unknown>)\n : undefined;\n if (typeof slotId === \"string\" && !hasAllowedOpenClawRemnicPluginId(slotId)) {\n throw new Error(\n `OpenClaw memory slot points to non-Remnic plugin \"${slotId}\"; refusing to use default Remnic access config.`,\n );\n }\n // Delegate slot → preferredId → canonical → legacy resolution to the\n // generic helper so all config loaders stay in sync (#403). Shim CLI\n // callers pass `preferredId: \"openclaw-engram\"` so legacy shim installs\n // target their own config block instead of falling through to the canonical\n // \"openclaw-remnic\" entry.\n const entry = resolveOpenClawRemnicPluginEntry(raw, preferredId);\n if (!entry) {\n throw new Error(\n \"OpenClaw config does not contain an allowed Remnic plugin entry; refusing to use default Remnic access config.\",\n );\n }\n return (entry?.[\"config\"] as Record<string, unknown> | undefined) ?? {};\n}\n\nfunction buildRuntime(preferredId?: string): Runtime {\n const config = parseConfig(loadPluginConfig(preferredId));\n return {\n config,\n service: new EngramAccessService(new Orchestrator(config)),\n };\n}\n\nasync function runBrowse(args: ParsedArgs, preferredId?: string): Promise<void> {\n const browseArgs = {\n namespace: getLastOption(args, \"namespace\"),\n principal: getLastOption(args, \"principal\"),\n query: getLastOption(args, \"query\"),\n category: getLastOption(args, \"category\"),\n status: getLastOption(args, \"status\"),\n sort: parseBrowseSortOption(args, \"sort\"),\n limit: parseIntegerOption(args, \"limit\", { min: 1 }),\n offset: parseIntegerOption(args, \"offset\", { min: 0 }),\n };\n const { config, service } = buildRuntime(preferredId);\n const request = {\n namespace: browseArgs.namespace,\n authenticatedPrincipal: browseArgs.principal ?? config.agentAccessHttp.principal,\n query: browseArgs.query,\n category: browseArgs.category,\n status: browseArgs.status,\n sort: browseArgs.sort,\n limit: browseArgs.limit,\n offset: browseArgs.offset,\n };\n const result = await service.memoryBrowse(request);\n console.log(JSON.stringify(result, null, 2));\n}\n\nasync function runStore(args: ParsedArgs, preferredId?: string): Promise<void> {\n const contentFile = getLastOption(args, \"content-file\");\n const inlineContent = getLastOption(args, \"content\");\n const content = contentFile\n ? fs.readFileSync(expandTildePath(contentFile), \"utf8\")\n : inlineContent;\n if (!content || content.trim().length === 0) {\n throw new UsageError(\"missing-content\");\n }\n const storeArgs = {\n namespace: getLastOption(args, \"namespace\"),\n sessionKey: getLastOption(args, \"session-key\"),\n content,\n category: requireOption(args, \"category\"),\n confidence: parseFloatOption(args, \"confidence\", { min: 0, max: 1 }),\n tags: getAllOptions(args, \"tag\"),\n entityRef: getLastOption(args, \"entity-ref\"),\n ttl: getLastOption(args, \"ttl\"),\n sourceReason: getLastOption(args, \"source-reason\"),\n idempotencyKey: getLastOption(args, \"idempotency-key\"),\n dryRun: args.flags.has(\"dry-run\"),\n };\n\n const { config, service } = buildRuntime(preferredId);\n const result = await service.memoryStore({\n namespace: storeArgs.namespace,\n sessionKey: storeArgs.sessionKey,\n authenticatedPrincipal: getLastOption(args, \"principal\") ?? config.agentAccessHttp.principal,\n content: storeArgs.content,\n category: storeArgs.category,\n confidence: storeArgs.confidence,\n tags: storeArgs.tags,\n entityRef: storeArgs.entityRef,\n ttl: storeArgs.ttl,\n sourceReason: storeArgs.sourceReason,\n idempotencyKey: storeArgs.idempotencyKey,\n dryRun: storeArgs.dryRun,\n });\n console.log(JSON.stringify(result, null, 2));\n}\n\nfunction expandOptionalPath(value: string | undefined): string | undefined {\n return value === undefined ? undefined : expandTildePath(value);\n}\n\nexport async function main(\n argv: string[] = process.argv.slice(2),\n options: AccessCliOptions = {},\n): Promise<void> {\n const args = parseArgs(argv);\n if (args.command === \"browse\") {\n await runBrowse(args, options.preferredId);\n return;\n }\n await runStore(args, options.preferredId);\n}\n\nexport function sanitizeAccessCliErrorMessage(message: string): string {\n return message.replace(\n /\\b(openaiApiKey|localLlmApiKey)\\b(\\s*[:=]\\s*)(?:\"[^\"]*\"|'[^']*'|[^\\s,}\\]]+)/gi,\n (_match, name: string, separator: string) => `${name}${separator}[redacted]`,\n );\n}\n\nexport function printUsage(): void {\n writeCliOutput(usage());\n}\n\nexport async function runCli(\n argv: string[] = process.argv.slice(2),\n options: AccessCliOptions = {},\n): Promise<void> {\n try {\n await main(argv, options);\n } catch (error) {\n if (error instanceof UsageError) {\n writeCliOutput(formatUsageError(error));\n writeCliOutput();\n printUsage();\n process.exit(1);\n }\n\n console.error(\"access-cli failed: runtime error\");\n process.exit(1);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,QAAQ;AACf,OAAO,UAAU;AASjB,IAAM,6BAA6B,CAAC,mBAAmB,iBAAiB;AA+BxE,SAAS,yBAAyB,KAAmE;AACnG,QAAM,UACJ,IAAI,SAAS,KAAK,OAAO,IAAI,SAAS,MAAM,YAAY,CAAC,MAAM,QAAQ,IAAI,SAAS,CAAC,IAChF,IAAI,SAAS,IACd;AACN,QAAM,UACJ,WAAW,QAAQ,SAAS,KAAK,OAAO,QAAQ,SAAS,MAAM,YAAY,CAAC,MAAM,QAAQ,QAAQ,SAAS,CAAC,IACvG,QAAQ,SAAS,IAClB;AACN,SAAO;AACT;AAEA,SAAS,wBAAwB,KAAkD;AACjF,QAAM,UACJ,IAAI,SAAS,KAAK,OAAO,IAAI,SAAS,MAAM,YAAY,CAAC,MAAM,QAAQ,IAAI,SAAS,CAAC,IAChF,IAAI,SAAS,IACd;AACN,QAAM,QACJ,WAAW,QAAQ,OAAO,KAAK,OAAO,QAAQ,OAAO,MAAM,YAAY,CAAC,MAAM,QAAQ,QAAQ,OAAO,CAAC,IACjG,QAAQ,OAAO,IAChB;AACN,QAAM,SAAS,QAAQ,QAAQ;AAC/B,SAAO,OAAO,WAAW,WAAW,SAAS;AAC/C;AAEA,SAAS,iCAAiC,KAAc,aAA2D;AACjH,SAAO,mBAAmB,KAAK;AAAA,IAC7B,cAAc;AAAA,IACd;AAAA,IACA,YAAY;AAAA,IACZ,WAAW;AAAA,EACb,CAAC;AACH;AAEA,SAAS,iCAAiC,OAAwB;AAChE,SAAQ,2BAAiD,SAAS,KAAK;AACzE;AAaA,IAAM,aAAN,cAAyB,MAAM;AAAA,EAC7B,YACW,MACA,YACA,gBACT;AACA,UAAM,8BAA8B;AAJ3B;AACA;AACA;AAAA,EAGX;AAAA,EALW;AAAA,EACA;AAAA,EACA;AAIb;AAEA,SAAS,iBAAiB,OAA2B;AACnD,UAAQ,MAAM,MAAM;AAAA,IAClB,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO,qBAAqB,MAAM,cAAc,SAAS;AAAA,IAC3D,KAAK,kBAAkB;AACrB,YAAM,WAAW,MAAM,gBAAgB,SAAS,eAAe,MAAM,eAAe,KAAK,IAAI,CAAC,MAAM;AACpG,aAAO,uBAAuB,MAAM,cAAc,SAAS,GAAG,QAAQ;AAAA,IACxE;AAAA,IACA,KAAK;AACH,aAAO,qCAAqC,MAAM,cAAc,SAAS;AAAA,IAC3E,KAAK;AACH,aAAO,8BAA8B,MAAM,cAAc,SAAS;AAAA,IACpE,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO,yBAAyB,MAAM,cAAc,SAAS;AAAA,IAC/D,KAAK;AACH,aAAO,wBAAwB,MAAM,cAAc,SAAS;AAAA,EAChE;AACF;AAEA,SAAS,eAAe,OAAe,IAAU;AAC/C,UAAQ,OAAO,MAAM,GAAG,IAAI;AAAA,CAAI;AAClC;AAEA,SAAS,QAAgB;AACvB,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,EAAE,KAAK,IAAI;AACb;AAEA,IAAM,gBAAkD;AAAA,EACtD,QAAQ;AAAA,IACN,cAAc,oBAAI,IAAI;AAAA,MACpB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAAA,IACD,aAAa,oBAAI,IAAI;AAAA,EACvB;AAAA,EACA,OAAO;AAAA,IACL,cAAc,oBAAI,IAAI;AAAA,MACpB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAAA,IACD,aAAa,oBAAI,IAAI,CAAC,SAAS,CAAC;AAAA,EAClC;AACF;AAEA,IAAM,qBAAqB,OAAO,OAAO;AAAA,EACvC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAU;AAIV,SAAS,UAAU,MAA4B;AAC7C,QAAM,CAAC,YAAY,GAAG,IAAI,IAAI;AAC9B,MAAI,eAAe,YAAY,eAAe,SAAS;AACrD,UAAM,IAAI,WAAW,qBAAqB;AAAA,EAC5C;AACA,QAAM,OAAO,cAAc,UAAU;AAErC,QAAM,UAAoC,CAAC;AAC3C,QAAM,QAAQ,oBAAI,IAAY;AAE9B,WAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK,GAAG;AACvC,UAAM,QAAQ,KAAK,CAAC;AACpB,QAAI,CAAC,MAAM,WAAW,IAAI,GAAG;AAC3B,YAAM,IAAI,WAAW,uBAAuB;AAAA,IAC9C;AACA,UAAM,SAAS,MAAM,MAAM,CAAC;AAC5B,QAAI,CAAC,QAAQ;AACX,YAAM,IAAI,WAAW,kBAAkB,MAAM;AAAA,IAC/C;AACA,UAAM,cAAc,OAAO,QAAQ,GAAG;AACtC,UAAM,MAAM,gBAAgB,KAAK,SAAS,OAAO,MAAM,GAAG,WAAW;AACrE,UAAM,cAAc,gBAAgB,KAAK,SAAY,OAAO,MAAM,cAAc,CAAC;AAEjF,QAAI,CAAC,KAAK,aAAa,IAAI,GAAG,KAAK,CAAC,KAAK,YAAY,IAAI,GAAG,GAAG;AAC7D,YAAM,IAAI,WAAW,kBAAkB,GAAG;AAAA,IAC5C;AAEA,QAAI,KAAK,YAAY,IAAI,GAAG,GAAG;AAC7B,UAAI,gBAAgB,QAAW;AAC7B,cAAM,IAAI,WAAW,8BAA8B,GAAG;AAAA,MACxD;AACA,YAAMA,QAAO,KAAK,IAAI,CAAC;AACvB,UAAIA,SAAQ,CAACA,MAAK,WAAW,IAAI,GAAG;AAClC,cAAM,IAAI,WAAW,8BAA8B,GAAG;AAAA,MACxD;AACA,YAAM,IAAI,GAAG;AACb;AAAA,IACF;AAEA,QAAI,gBAAgB,QAAW;AAC7B,UAAI,YAAY,WAAW,GAAG;AAC5B,cAAM,IAAI,WAAW,kBAAkB,GAAG;AAAA,MAC5C;AACA,UAAI,CAAC,QAAQ,GAAG,GAAG;AACjB,gBAAQ,GAAG,IAAI,CAAC;AAAA,MAClB;AACA,cAAQ,GAAG,EAAE,KAAK,WAAW;AAC7B;AAAA,IACF;AAEA,UAAM,OAAO,KAAK,IAAI,CAAC;AACvB,QAAI,SAAS,UAAa,KAAK,WAAW,KAAK,KAAK,WAAW,IAAI,GAAG;AACpE,YAAM,IAAI,WAAW,kBAAkB,GAAG;AAAA,IAC5C;AACA,QAAI,CAAC,QAAQ,GAAG,GAAG;AACjB,cAAQ,GAAG,IAAI,CAAC;AAAA,IAClB;AACA,YAAQ,GAAG,EAAE,KAAK,IAAI;AACtB,SAAK;AAAA,EACP;AAEA,SAAO;AAAA,IACL,SAAS;AAAA,IACT;AAAA,IACA;AAAA,EACF;AACF;AAEA,SAAS,cAAc,MAAkB,MAAkC;AACzE,QAAM,SAAS,KAAK,QAAQ,IAAI;AAChC,MAAI,CAAC,UAAU,OAAO,WAAW,EAAG,QAAO;AAC3C,SAAO,OAAO,OAAO,SAAS,CAAC;AACjC;AAEA,SAAS,cAAc,MAAkB,MAAwB;AAC/D,SAAO,KAAK,QAAQ,IAAI,KAAK,CAAC;AAChC;AAEA,SAAS,cAAc,MAAkB,MAAsB;AAC7D,QAAM,QAAQ,cAAc,MAAM,IAAI;AACtC,MAAI,CAAC,SAAS,MAAM,KAAK,EAAE,WAAW,GAAG;AACvC,UAAM,IAAI,WAAW,kBAAkB,IAAI;AAAA,EAC7C;AACA,SAAO;AACT;AAEA,SAAS,mBACP,MACA,MACA,UAA4B,CAAC,GACT;AACpB,QAAM,MAAM,cAAc,MAAM,IAAI;AACpC,MAAI,CAAC,IAAK,QAAO;AACjB,QAAM,UAAU,IAAI,KAAK;AACzB,MAAI,CAAC,aAAa,KAAK,OAAO,GAAG;AAC/B,UAAM,IAAI,WAAW,mBAAmB,IAAI;AAAA,EAC9C;AACA,QAAM,QAAQ,OAAO,OAAO;AAC5B,MAAI,CAAC,OAAO,cAAc,KAAK,GAAG;AAChC,UAAM,IAAI,WAAW,mBAAmB,IAAI;AAAA,EAC9C;AACA,MAAI,QAAQ,QAAQ,UAAa,QAAQ,QAAQ,KAAK;AACpD,UAAM,IAAI,WAAW,kBAAkB,MAAM,CAAC,cAAc,QAAQ,GAAG,EAAE,CAAC;AAAA,EAC5E;AACA,SAAO;AACT;AAEA,SAAS,sBAAsB,MAAkB,MAAsC;AACrF,QAAM,MAAM,cAAc,MAAM,IAAI;AACpC,MAAI,CAAC,IAAK,QAAO;AACjB,MAAK,mBAAyC,SAAS,GAAG,GAAG;AAC3D,WAAO;AAAA,EACT;AACA,QAAM,IAAI,WAAW,kBAAkB,MAAM,kBAAkB;AACjE;AAEA,SAAS,iBACP,MACA,MACA,UAA0C,CAAC,GACvB;AACpB,QAAM,MAAM,cAAc,MAAM,IAAI;AACpC,MAAI,CAAC,IAAK,QAAO;AACjB,QAAM,UAAU,IAAI,KAAK;AACzB,MAAI,CAAC,oDAAoD,KAAK,OAAO,GAAG;AACtE,UAAM,IAAI,WAAW,kBAAkB,IAAI;AAAA,EAC7C;AACA,QAAM,QAAQ,OAAO,OAAO;AAC5B,MAAI,CAAC,OAAO,SAAS,KAAK,GAAG;AAC3B,UAAM,IAAI,WAAW,kBAAkB,IAAI;AAAA,EAC7C;AACA,MAAI,QAAQ,QAAQ,UAAa,QAAQ,QAAQ,KAAK;AACpD,UAAM,IAAI,WAAW,kBAAkB,IAAI;AAAA,EAC7C;AACA,MAAI,QAAQ,QAAQ,UAAa,QAAQ,QAAQ,KAAK;AACpD,UAAM,IAAI,WAAW,kBAAkB,IAAI;AAAA,EAC7C;AACA,SAAO;AACT;AAEA,SAAS,iBAAiB,aAA+C;AACvE,QAAM,aACJ,mBAAmB,WAAW,sBAAsB,CAAC,KACrD,mBAAmB,WAAW,6BAA6B,CAAC,KAC5D,KAAK,KAAK,eAAe,GAAG,aAAa,eAAe;AAC1D,QAAM,MAAM,KAAK,MAAM,GAAG,aAAa,YAAY,MAAM,CAAC;AAC1D,QAAM,SACJ,OAAO,OAAO,QAAQ,YAAY,CAAC,MAAM,QAAQ,GAAG,IAChD,wBAAwB,GAA8B,IACtD;AACN,MAAI,OAAO,WAAW,YAAY,CAAC,iCAAiC,MAAM,GAAG;AAC3E,UAAM,IAAI;AAAA,MACR,qDAAqD,MAAM;AAAA,IAC7D;AAAA,EACF;AAMA,QAAM,QAAQ,iCAAiC,KAAK,WAAW;AAC/D,MAAI,CAAC,OAAO;AACV,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACA,SAAQ,QAAQ,QAAQ,KAA6C,CAAC;AACxE;AAEA,SAAS,aAAa,aAA+B;AACnD,QAAM,SAAS,YAAY,iBAAiB,WAAW,CAAC;AACxD,SAAO;AAAA,IACL;AAAA,IACA,SAAS,IAAI,oBAAoB,IAAI,aAAa,MAAM,CAAC;AAAA,EAC3D;AACF;AAEA,eAAe,UAAU,MAAkB,aAAqC;AAC9E,QAAM,aAAa;AAAA,IACjB,WAAW,cAAc,MAAM,WAAW;AAAA,IAC1C,WAAW,cAAc,MAAM,WAAW;AAAA,IAC1C,OAAO,cAAc,MAAM,OAAO;AAAA,IAClC,UAAU,cAAc,MAAM,UAAU;AAAA,IACxC,QAAQ,cAAc,MAAM,QAAQ;AAAA,IACpC,MAAM,sBAAsB,MAAM,MAAM;AAAA,IACxC,OAAO,mBAAmB,MAAM,SAAS,EAAE,KAAK,EAAE,CAAC;AAAA,IACnD,QAAQ,mBAAmB,MAAM,UAAU,EAAE,KAAK,EAAE,CAAC;AAAA,EACvD;AACA,QAAM,EAAE,QAAQ,QAAQ,IAAI,aAAa,WAAW;AACpD,QAAM,UAAU;AAAA,IACd,WAAW,WAAW;AAAA,IACtB,wBAAwB,WAAW,aAAa,OAAO,gBAAgB;AAAA,IACvE,OAAO,WAAW;AAAA,IAClB,UAAU,WAAW;AAAA,IACrB,QAAQ,WAAW;AAAA,IACnB,MAAM,WAAW;AAAA,IACjB,OAAO,WAAW;AAAA,IAClB,QAAQ,WAAW;AAAA,EACrB;AACA,QAAM,SAAS,MAAM,QAAQ,aAAa,OAAO;AACjD,UAAQ,IAAI,KAAK,UAAU,QAAQ,MAAM,CAAC,CAAC;AAC7C;AAEA,eAAe,SAAS,MAAkB,aAAqC;AAC7E,QAAM,cAAc,cAAc,MAAM,cAAc;AACtD,QAAM,gBAAgB,cAAc,MAAM,SAAS;AACnD,QAAM,UAAU,cACZ,GAAG,aAAa,gBAAgB,WAAW,GAAG,MAAM,IACpD;AACJ,MAAI,CAAC,WAAW,QAAQ,KAAK,EAAE,WAAW,GAAG;AAC3C,UAAM,IAAI,WAAW,iBAAiB;AAAA,EACxC;AACA,QAAM,YAAY;AAAA,IAChB,WAAW,cAAc,MAAM,WAAW;AAAA,IAC1C,YAAY,cAAc,MAAM,aAAa;AAAA,IAC7C;AAAA,IACA,UAAU,cAAc,MAAM,UAAU;AAAA,IACxC,YAAY,iBAAiB,MAAM,cAAc,EAAE,KAAK,GAAG,KAAK,EAAE,CAAC;AAAA,IACnE,MAAM,cAAc,MAAM,KAAK;AAAA,IAC/B,WAAW,cAAc,MAAM,YAAY;AAAA,IAC3C,KAAK,cAAc,MAAM,KAAK;AAAA,IAC9B,cAAc,cAAc,MAAM,eAAe;AAAA,IACjD,gBAAgB,cAAc,MAAM,iBAAiB;AAAA,IACrD,QAAQ,KAAK,MAAM,IAAI,SAAS;AAAA,EAClC;AAEA,QAAM,EAAE,QAAQ,QAAQ,IAAI,aAAa,WAAW;AACpD,QAAM,SAAS,MAAM,QAAQ,YAAY;AAAA,IACvC,WAAW,UAAU;AAAA,IACrB,YAAY,UAAU;AAAA,IACtB,wBAAwB,cAAc,MAAM,WAAW,KAAK,OAAO,gBAAgB;AAAA,IACnF,SAAS,UAAU;AAAA,IACnB,UAAU,UAAU;AAAA,IACpB,YAAY,UAAU;AAAA,IACtB,MAAM,UAAU;AAAA,IAChB,WAAW,UAAU;AAAA,IACrB,KAAK,UAAU;AAAA,IACf,cAAc,UAAU;AAAA,IACxB,gBAAgB,UAAU;AAAA,IAC1B,QAAQ,UAAU;AAAA,EACpB,CAAC;AACD,UAAQ,IAAI,KAAK,UAAU,QAAQ,MAAM,CAAC,CAAC;AAC7C;AAEA,SAAS,mBAAmB,OAA+C;AACzE,SAAO,UAAU,SAAY,SAAY,gBAAgB,KAAK;AAChE;AAEA,eAAsB,KACpB,OAAiB,QAAQ,KAAK,MAAM,CAAC,GACrC,UAA4B,CAAC,GACd;AACf,QAAM,OAAO,UAAU,IAAI;AAC3B,MAAI,KAAK,YAAY,UAAU;AAC7B,UAAM,UAAU,MAAM,QAAQ,WAAW;AACzC;AAAA,EACF;AACA,QAAM,SAAS,MAAM,QAAQ,WAAW;AAC1C;AAEO,SAAS,8BAA8B,SAAyB;AACrE,SAAO,QAAQ;AAAA,IACb;AAAA,IACA,CAAC,QAAQ,MAAc,cAAsB,GAAG,IAAI,GAAG,SAAS;AAAA,EAClE;AACF;AAEO,SAAS,aAAmB;AACjC,iBAAe,MAAM,CAAC;AACxB;AAEA,eAAsB,OACpB,OAAiB,QAAQ,KAAK,MAAM,CAAC,GACrC,UAA4B,CAAC,GACd;AACf,MAAI;AACF,UAAM,KAAK,MAAM,OAAO;AAAA,EAC1B,SAAS,OAAO;AACd,QAAI,iBAAiB,YAAY;AAC/B,qBAAe,iBAAiB,KAAK,CAAC;AACtC,qBAAe;AACf,iBAAW;AACX,cAAQ,KAAK,CAAC;AAAA,IAChB;AAEA,YAAQ,MAAM,kCAAkC;AAChD,YAAQ,KAAK,CAAC;AAAA,EAChB;AACF;","names":["next"]}
@@ -1,5 +1,5 @@
1
1
  import { IncomingMessage } from 'node:http';
2
- import { E as EngramAccessService } from './access-service-DIZRHQ7Q.js';
2
+ import { E as EngramAccessService } from './access-service-CdJFd3_b.js';
3
3
  import { ResolvedIdentity } from './adapters/types.js';
4
4
  import { AdapterRegistry } from './adapters/registry.js';
5
5
  import './storage.js';
@@ -21,7 +21,7 @@ import './user-model.js';
21
21
  import './recall-audit-anomaly.js';
22
22
  import './recall-audit.js';
23
23
  import './explicit-capture.js';
24
- import './orchestrator-CX-oqwJq.js';
24
+ import './orchestrator-8fTZsa0y.js';
25
25
  import './briefing.js';
26
26
  import './buffer.js';
27
27
  import './search/port.js';
@@ -53,6 +53,7 @@ import './conversation-index/backend.js';
53
53
  import './conversation-index/chunker.js';
54
54
  import './faiss-adapter-BHecI1fF.js';
55
55
  import './runtime/child-process.js';
56
+ import './namespaces/search.js';
56
57
  import './shared-context/manager.js';
57
58
  import 'zod';
58
59
  import './compounding/engine.js';
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  EngramAccessHttpServer
3
- } from "./chunk-3IJEQWQX.js";
3
+ } from "./chunk-YOVKPOMD.js";
4
4
  import "./chunk-SEDEKFYQ.js";
5
5
  import "./chunk-RKNJBZ55.js";
6
6
  import "./chunk-J64TK33U.js";
@@ -9,31 +9,31 @@ import "./chunk-42NQ7AVG.js";
9
9
  import "./chunk-TMSXWOBZ.js";
10
10
  import "./chunk-7RXCMVFQ.js";
11
11
  import "./chunk-7WV3F5DQ.js";
12
- import "./chunk-TVOPSKOK.js";
12
+ import "./chunk-MGGNV3H2.js";
13
13
  import "./chunk-T4WDJPEZ.js";
14
14
  import "./chunk-D24OXEPB.js";
15
- import "./chunk-YAFSTKTH.js";
15
+ import "./chunk-5V3TAB7D.js";
16
16
  import "./chunk-GDASG7NC.js";
17
17
  import "./chunk-GDB4J2H3.js";
18
- import "./chunk-NT5TINK5.js";
18
+ import "./chunk-DHGSZ3UD.js";
19
+ import "./chunk-H7XKCNR6.js";
19
20
  import "./chunk-IENGGY2C.js";
20
21
  import "./chunk-SOBJ6NEY.js";
21
22
  import "./chunk-BT7NVCML.js";
22
- import "./chunk-H7XKCNR6.js";
23
- import "./chunk-UMTG2BN2.js";
23
+ import "./chunk-V4UDXYGG.js";
24
24
  import "./chunk-MMJANTJX.js";
25
25
  import "./chunk-5RIRL3XL.js";
26
26
  import "./chunk-JGSKJHF7.js";
27
27
  import "./chunk-FF4KLI5W.js";
28
28
  import "./chunk-BEMWL2FZ.js";
29
- import "./chunk-NMIOW7XG.js";
30
- import "./chunk-WPCCNSWO.js";
29
+ import "./chunk-JVRPJ7D4.js";
30
+ import "./chunk-YM3LR4LS.js";
31
+ import "./chunk-JX2RINDR.js";
31
32
  import "./chunk-CYEPCZN5.js";
32
- import "./chunk-76QTEJ2Q.js";
33
+ import "./chunk-JBHXMCYN.js";
33
34
  import "./chunk-JOASJWQR.js";
34
35
  import "./chunk-RN7MUWON.js";
35
- import "./chunk-FOVPSMGI.js";
36
- import "./chunk-TQUWNX7C.js";
36
+ import "./chunk-7WEB3FLJ.js";
37
37
  import "./chunk-Q4CAQGKQ.js";
38
38
  import "./chunk-CINZGPSJ.js";
39
39
  import "./chunk-ZFXCQPNO.js";
@@ -41,8 +41,8 @@ import "./chunk-7OGJQP7T.js";
41
41
  import "./chunk-E6ZDCOHM.js";
42
42
  import "./chunk-OIF36KGD.js";
43
43
  import "./chunk-7DTASS5T.js";
44
- import "./chunk-I4COC5XW.js";
45
- import "./chunk-QT4THOLT.js";
44
+ import "./chunk-PYWNNF2I.js";
45
+ import "./chunk-2DGQLOOM.js";
46
46
  import "./chunk-BMFZLLNI.js";
47
47
  import "./chunk-CI7RKSRE.js";
48
48
  import "./chunk-6HMYUWXR.js";
@@ -58,17 +58,17 @@ import "./chunk-3ONXXHQO.js";
58
58
  import "./chunk-Y56J7CXW.js";
59
59
  import "./chunk-2LSZVONP.js";
60
60
  import "./chunk-DEUNUKTD.js";
61
- import "./chunk-AMACWKM4.js";
62
- import "./chunk-A4BTPHIN.js";
61
+ import "./chunk-IJHLC5CH.js";
62
+ import "./chunk-Y7NWBBHV.js";
63
63
  import "./chunk-M7XQSUBB.js";
64
64
  import "./chunk-5UZXUTVO.js";
65
65
  import "./chunk-J6A3CX5N.js";
66
66
  import "./chunk-C43KEWEV.js";
67
+ import "./chunk-CPPS65WS.js";
67
68
  import "./chunk-RULE4VG5.js";
68
69
  import "./chunk-SCU65EZI.js";
69
70
  import "./chunk-MB5RSUW6.js";
70
71
  import "./chunk-6KYMPV2O.js";
71
- import "./chunk-CPPS65WS.js";
72
72
  import "./chunk-DM2T26WE.js";
73
73
  import "./chunk-LDXUBPMO.js";
74
74
  import "./chunk-FVQJYWH7.js";
@@ -92,10 +92,10 @@ import "./chunk-TVVEYCNW.js";
92
92
  import "./chunk-RFYAYKTD.js";
93
93
  import "./chunk-LBLXEFWK.js";
94
94
  import "./chunk-VFUEZZBS.js";
95
- import "./chunk-QKE4LHNR.js";
96
- import "./chunk-BUKK5SWA.js";
95
+ import "./chunk-4HYSMH7D.js";
96
+ import "./chunk-KQAFEZQX.js";
97
97
  import "./chunk-WEHSQBFR.js";
98
- import "./chunk-UVYI6VIX.js";
98
+ import "./chunk-X7Y7WX73.js";
99
99
  import "./chunk-J4EB7DNW.js";
100
100
  import "./chunk-BJMBJZ2Y.js";
101
101
  import "./chunk-UKJAGEXH.js";
@@ -1,5 +1,5 @@
1
1
  import { Readable, Writable } from 'node:stream';
2
- import { E as EngramAccessService } from './access-service-DIZRHQ7Q.js';
2
+ import { E as EngramAccessService } from './access-service-CdJFd3_b.js';
3
3
  import './storage.js';
4
4
  import './page-versioning.js';
5
5
  import './consolidation-operator.js';
@@ -19,7 +19,7 @@ import './user-model.js';
19
19
  import './recall-audit-anomaly.js';
20
20
  import './recall-audit.js';
21
21
  import './explicit-capture.js';
22
- import './orchestrator-CX-oqwJq.js';
22
+ import './orchestrator-8fTZsa0y.js';
23
23
  import './briefing.js';
24
24
  import './buffer.js';
25
25
  import './search/port.js';
@@ -51,6 +51,7 @@ import './conversation-index/backend.js';
51
51
  import './conversation-index/chunker.js';
52
52
  import './faiss-adapter-BHecI1fF.js';
53
53
  import './runtime/child-process.js';
54
+ import './namespaces/search.js';
54
55
  import './shared-context/manager.js';
55
56
  import 'zod';
56
57
  import './compounding/engine.js';
@@ -1,30 +1,30 @@
1
1
  import {
2
2
  EngramMcpServer
3
- } from "./chunk-TVOPSKOK.js";
3
+ } from "./chunk-MGGNV3H2.js";
4
4
  import "./chunk-T4WDJPEZ.js";
5
5
  import "./chunk-D24OXEPB.js";
6
- import "./chunk-YAFSTKTH.js";
6
+ import "./chunk-5V3TAB7D.js";
7
7
  import "./chunk-GDASG7NC.js";
8
8
  import "./chunk-GDB4J2H3.js";
9
- import "./chunk-NT5TINK5.js";
9
+ import "./chunk-DHGSZ3UD.js";
10
+ import "./chunk-H7XKCNR6.js";
10
11
  import "./chunk-IENGGY2C.js";
11
12
  import "./chunk-SOBJ6NEY.js";
12
13
  import "./chunk-BT7NVCML.js";
13
- import "./chunk-H7XKCNR6.js";
14
- import "./chunk-UMTG2BN2.js";
14
+ import "./chunk-V4UDXYGG.js";
15
15
  import "./chunk-MMJANTJX.js";
16
16
  import "./chunk-5RIRL3XL.js";
17
17
  import "./chunk-JGSKJHF7.js";
18
18
  import "./chunk-FF4KLI5W.js";
19
19
  import "./chunk-BEMWL2FZ.js";
20
- import "./chunk-NMIOW7XG.js";
21
- import "./chunk-WPCCNSWO.js";
20
+ import "./chunk-JVRPJ7D4.js";
21
+ import "./chunk-YM3LR4LS.js";
22
+ import "./chunk-JX2RINDR.js";
22
23
  import "./chunk-CYEPCZN5.js";
23
- import "./chunk-76QTEJ2Q.js";
24
+ import "./chunk-JBHXMCYN.js";
24
25
  import "./chunk-JOASJWQR.js";
25
26
  import "./chunk-RN7MUWON.js";
26
- import "./chunk-FOVPSMGI.js";
27
- import "./chunk-TQUWNX7C.js";
27
+ import "./chunk-7WEB3FLJ.js";
28
28
  import "./chunk-Q4CAQGKQ.js";
29
29
  import "./chunk-CINZGPSJ.js";
30
30
  import "./chunk-ZFXCQPNO.js";
@@ -32,8 +32,8 @@ import "./chunk-7OGJQP7T.js";
32
32
  import "./chunk-E6ZDCOHM.js";
33
33
  import "./chunk-OIF36KGD.js";
34
34
  import "./chunk-7DTASS5T.js";
35
- import "./chunk-I4COC5XW.js";
36
- import "./chunk-QT4THOLT.js";
35
+ import "./chunk-PYWNNF2I.js";
36
+ import "./chunk-2DGQLOOM.js";
37
37
  import "./chunk-BMFZLLNI.js";
38
38
  import "./chunk-CI7RKSRE.js";
39
39
  import "./chunk-6HMYUWXR.js";
@@ -49,17 +49,17 @@ import "./chunk-3ONXXHQO.js";
49
49
  import "./chunk-Y56J7CXW.js";
50
50
  import "./chunk-2LSZVONP.js";
51
51
  import "./chunk-DEUNUKTD.js";
52
- import "./chunk-AMACWKM4.js";
53
- import "./chunk-A4BTPHIN.js";
52
+ import "./chunk-IJHLC5CH.js";
53
+ import "./chunk-Y7NWBBHV.js";
54
54
  import "./chunk-M7XQSUBB.js";
55
55
  import "./chunk-5UZXUTVO.js";
56
56
  import "./chunk-J6A3CX5N.js";
57
57
  import "./chunk-C43KEWEV.js";
58
+ import "./chunk-CPPS65WS.js";
58
59
  import "./chunk-RULE4VG5.js";
59
60
  import "./chunk-SCU65EZI.js";
60
61
  import "./chunk-MB5RSUW6.js";
61
62
  import "./chunk-6KYMPV2O.js";
62
- import "./chunk-CPPS65WS.js";
63
63
  import "./chunk-DM2T26WE.js";
64
64
  import "./chunk-LDXUBPMO.js";
65
65
  import "./chunk-FVQJYWH7.js";
@@ -83,10 +83,10 @@ import "./chunk-TVVEYCNW.js";
83
83
  import "./chunk-RFYAYKTD.js";
84
84
  import "./chunk-LBLXEFWK.js";
85
85
  import "./chunk-VFUEZZBS.js";
86
- import "./chunk-QKE4LHNR.js";
87
- import "./chunk-BUKK5SWA.js";
86
+ import "./chunk-4HYSMH7D.js";
87
+ import "./chunk-KQAFEZQX.js";
88
88
  import "./chunk-WEHSQBFR.js";
89
- import "./chunk-UVYI6VIX.js";
89
+ import "./chunk-X7Y7WX73.js";
90
90
  import "./chunk-J4EB7DNW.js";
91
91
  import "./chunk-BJMBJZ2Y.js";
92
92
  import "./chunk-UKJAGEXH.js";
@@ -25,10 +25,10 @@ import {
25
25
  trustZoneDemoSeedRequestSchema,
26
26
  trustZonePromoteRequestSchema,
27
27
  validateRequest
28
- } from "./chunk-QKE4LHNR.js";
29
- import "./chunk-BUKK5SWA.js";
28
+ } from "./chunk-4HYSMH7D.js";
29
+ import "./chunk-KQAFEZQX.js";
30
30
  import "./chunk-WEHSQBFR.js";
31
- import "./chunk-UVYI6VIX.js";
31
+ import "./chunk-X7Y7WX73.js";
32
32
  import "./chunk-J4EB7DNW.js";
33
33
  import "./chunk-BJMBJZ2Y.js";
34
34
  import "./chunk-UKJAGEXH.js";
@@ -6,7 +6,7 @@ import { AnomalyDetectorResult } from './recall-audit-anomaly.js';
6
6
  import { ExplicitCaptureInput } from './explicit-capture.js';
7
7
  import { BudgetDecision } from './cross-namespace-budget.js';
8
8
  import { readMemoryGovernanceRunArtifact } from './maintenance/memory-governance.js';
9
- import { O as Orchestrator, I as IntentDebugSnapshot, G as GraphRecallSnapshot, P as PatternReinforcementResult, W as WearablesService } from './orchestrator-CX-oqwJq.js';
9
+ import { O as Orchestrator, I as IntentDebugSnapshot, G as GraphRecallSnapshot, P as PatternReinforcementResult, W as WearablesService } from './orchestrator-8fTZsa0y.js';
10
10
  import { LiveConnectorsRunSummary } from './live-connectors-runner.js';
11
11
  import { LastRecallSnapshot } from './recall-state.js';
12
12
  import { GraphSnapshotRequest, GraphSnapshotResponse } from './graph-snapshot.js';
@@ -179,9 +179,25 @@ interface EngramAccessHealthResponse {
179
179
  defaultNamespace: string;
180
180
  searchBackend: string;
181
181
  qmdEnabled: boolean;
182
+ qmd: EngramAccessQmdHealthResponse;
182
183
  nativeKnowledgeEnabled: boolean;
183
184
  projectionAvailable: boolean;
184
185
  }
186
+ type EngramAccessQmdCollectionState = "present" | "missing" | "unknown" | "skipped";
187
+ interface EngramAccessQmdHealthResponse {
188
+ enabled: boolean;
189
+ active: boolean;
190
+ degraded: boolean;
191
+ mode: "cli" | "daemon" | "fallback" | "disabled" | "not-selected";
192
+ collection: string;
193
+ collectionState: EngramAccessQmdCollectionState;
194
+ installedVersion: string | null;
195
+ supportedVersion: string | null;
196
+ supported: boolean | null;
197
+ upgradeAvailable: boolean | null;
198
+ doctorAvailable: boolean | null;
199
+ debugStatus: string;
200
+ }
185
201
  interface EngramAccessRecallRequest {
186
202
  query: string;
187
203
  sessionKey?: string;
@@ -960,6 +976,11 @@ declare class EngramAccessService {
960
976
  private withIdempotencyLock;
961
977
  private withBudgetLock;
962
978
  health(namespace?: string): Promise<EngramAccessHealthResponse>;
979
+ private qmdCollectionForHealth;
980
+ private qmdHealth;
981
+ private namespaceQmdHealth;
982
+ private qmdCollectionState;
983
+ private qmdProbeAvailable;
963
984
  actionConfidence(request?: EngramAccessActionConfidenceRequest): Promise<EngramAccessActionConfidenceResponse>;
964
985
  daySummary(request: EngramAccessDaySummaryRequest): Promise<DaySummaryResult | null>;
965
986
  /**
@@ -1835,4 +1856,4 @@ declare class EngramAccessService {
1835
1856
  }): Promise<Awaited<ReturnType<WearablesService["transcriptMemories"]>>>;
1836
1857
  }
1837
1858
 
1838
- export { type EngramAccessReviewDispositionRequest as $, type EngramAccessMemoryBrowseRequest as A, type EngramAccessMemoryBrowseResponse as B, type CodingScopedWriteInput as C, type EngramAccessMemoryRecord as D, EngramAccessService as E, type EngramAccessMemoryResponse as F, type EngramAccessMemoryStoreRequest as G, type EngramAccessMemorySummary as H, type EngramAccessObserveMessage as I, type EngramAccessObserveRequest as J, type EngramAccessObserveResponse as K, type EngramAccessOfflineSyncApplyFileContentRequest as L, type EngramAccessOfflineSyncApplyFileContentResponse as M, type EngramAccessOfflineSyncApplyRequest as N, type EngramAccessOfflineSyncApplyResponse as O, type ProcedureStatsConfigSnapshot as P, type EngramAccessOfflineSyncFileContentRequest as Q, type EngramAccessOfflineSyncFileContentResponse as R, type EngramAccessOfflineSyncFilesRequest as S, type EngramAccessOfflineSyncFilesResponse as T, type EngramAccessOfflineSyncSnapshotRequest as U, type EngramAccessOfflineSyncSnapshotResponse as V, type EngramAccessOfflineSyncSnapshotStreamResponse as W, type EngramAccessQualityResponse as X, type EngramAccessRecallExplainRequest as Y, type EngramAccessRecallExplainResponse as Z, type EngramAccessRecallRequest as _, type EngramAccessRecallResponse as a, type EngramAccessReviewDispositionResponse as a0, type EngramAccessReviewQueueResponse as a1, type EngramAccessScopeDebug as a2, type EngramAccessSetCodingContextRequest as a3, type EngramAccessSuggestionSubmitRequest as a4, type EngramAccessTimelineResponse as a5, type EngramAccessTrustZoneBrowseRequest as a6, type EngramAccessTrustZoneBrowseResponse as a7, type EngramAccessTrustZoneDemoSeedRequest as a8, type EngramAccessTrustZoneDemoSeedResponse as a9, type EngramAccessTrustZonePromoteRequest as aa, type EngramAccessTrustZonePromoteResponse as ab, type EngramAccessTrustZoneRecordSummary as ac, type EngramAccessTrustZoneStatusResponse as ad, type EngramAccessWriteEnvelope as ae, type EngramAccessWriteResponse as af, type MemoryScopePlan as ag, shapeMemorySummary as ah, EngramAccessInputError as b, type ProcedureStatsRecent as c, type ProcedureStatsReport as d, type ProcedureStatusCounts as e, computeProcedureStats as f, formatProcedureStatsText as g, ENGRAM_ACCESS_WRITE_SCHEMA_VERSION as h, type EngramAccessActionConfidenceRequest as i, type EngramAccessActionConfidenceResponse as j, type EngramAccessBriefingRequest as k, type EngramAccessBriefingResponse as l, type EngramAccessCapsuleListResponse as m, type EngramAccessDaySummaryRequest as n, type EngramAccessEntityListResponse as o, type EngramAccessEntityResponse as p, type EngramAccessEntitySummary as q, type EngramAccessHealthResponse as r, type EngramAccessLcmCompactionFlushRequest as s, type EngramAccessLcmCompactionFlushResponse as t, type EngramAccessLcmCompactionRecordRequest as u, type EngramAccessLcmCompactionRecordResponse as v, type EngramAccessLcmSearchRequest as w, type EngramAccessLcmSearchResponse as x, type EngramAccessLcmStatusResponse as y, type EngramAccessMaintenanceResponse as z };
1859
+ export { type EngramAccessRecallExplainResponse as $, type EngramAccessMemoryBrowseRequest as A, type EngramAccessMemoryBrowseResponse as B, type CodingScopedWriteInput as C, type EngramAccessMemoryRecord as D, EngramAccessService as E, type EngramAccessMemoryResponse as F, type EngramAccessMemoryStoreRequest as G, type EngramAccessMemorySummary as H, type EngramAccessObserveMessage as I, type EngramAccessObserveRequest as J, type EngramAccessObserveResponse as K, type EngramAccessOfflineSyncApplyFileContentRequest as L, type EngramAccessOfflineSyncApplyFileContentResponse as M, type EngramAccessOfflineSyncApplyRequest as N, type EngramAccessOfflineSyncApplyResponse as O, type ProcedureStatsConfigSnapshot as P, type EngramAccessOfflineSyncFileContentRequest as Q, type EngramAccessOfflineSyncFileContentResponse as R, type EngramAccessOfflineSyncFilesRequest as S, type EngramAccessOfflineSyncFilesResponse as T, type EngramAccessOfflineSyncSnapshotRequest as U, type EngramAccessOfflineSyncSnapshotResponse as V, type EngramAccessOfflineSyncSnapshotStreamResponse as W, type EngramAccessQmdCollectionState as X, type EngramAccessQmdHealthResponse as Y, type EngramAccessQualityResponse as Z, type EngramAccessRecallExplainRequest as _, type EngramAccessRecallResponse as a, type EngramAccessRecallRequest as a0, type EngramAccessReviewDispositionRequest as a1, type EngramAccessReviewDispositionResponse as a2, type EngramAccessReviewQueueResponse as a3, type EngramAccessScopeDebug as a4, type EngramAccessSetCodingContextRequest as a5, type EngramAccessSuggestionSubmitRequest as a6, type EngramAccessTimelineResponse as a7, type EngramAccessTrustZoneBrowseRequest as a8, type EngramAccessTrustZoneBrowseResponse as a9, type EngramAccessTrustZoneDemoSeedRequest as aa, type EngramAccessTrustZoneDemoSeedResponse as ab, type EngramAccessTrustZonePromoteRequest as ac, type EngramAccessTrustZonePromoteResponse as ad, type EngramAccessTrustZoneRecordSummary as ae, type EngramAccessTrustZoneStatusResponse as af, type EngramAccessWriteEnvelope as ag, type EngramAccessWriteResponse as ah, type MemoryScopePlan as ai, shapeMemorySummary as aj, EngramAccessInputError as b, type ProcedureStatsRecent as c, type ProcedureStatsReport as d, type ProcedureStatusCounts as e, computeProcedureStats as f, formatProcedureStatsText as g, ENGRAM_ACCESS_WRITE_SCHEMA_VERSION as h, type EngramAccessActionConfidenceRequest as i, type EngramAccessActionConfidenceResponse as j, type EngramAccessBriefingRequest as k, type EngramAccessBriefingResponse as l, type EngramAccessCapsuleListResponse as m, type EngramAccessDaySummaryRequest as n, type EngramAccessEntityListResponse as o, type EngramAccessEntityResponse as p, type EngramAccessEntitySummary as q, type EngramAccessHealthResponse as r, type EngramAccessLcmCompactionFlushRequest as s, type EngramAccessLcmCompactionFlushResponse as t, type EngramAccessLcmCompactionRecordRequest as u, type EngramAccessLcmCompactionRecordResponse as v, type EngramAccessLcmSearchRequest as w, type EngramAccessLcmSearchResponse as x, type EngramAccessLcmStatusResponse as y, type EngramAccessMaintenanceResponse as z };