@remnic/core 1.0.3 → 1.1.0

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 (148) hide show
  1. package/dist/abort-error.d.ts +32 -0
  2. package/dist/abort-error.js +11 -0
  3. package/dist/access-cli.js +41 -40
  4. package/dist/access-cli.js.map +1 -1
  5. package/dist/access-http.d.ts +3 -2
  6. package/dist/access-http.js +11 -11
  7. package/dist/access-mcp.d.ts +3 -2
  8. package/dist/access-mcp.js +7 -7
  9. package/dist/access-schema.d.ts +16 -16
  10. package/dist/access-service-HmO1Trrx.d.ts +732 -0
  11. package/dist/access-service.d.ts +11 -658
  12. package/dist/access-service.js +9 -9
  13. package/dist/bootstrap.d.ts +1 -1
  14. package/dist/briefing.js +6 -6
  15. package/dist/calibration.js +3 -3
  16. package/dist/causal-consolidation.js +10 -10
  17. package/dist/{chunk-PMB3WGDL.js → chunk-37UIFYWO.js} +64 -3
  18. package/dist/chunk-37UIFYWO.js.map +1 -0
  19. package/dist/{chunk-X4WESCKA.js → chunk-3QHL5ABG.js} +5 -5
  20. package/dist/{chunk-2VFW5K5U.js → chunk-3SV6CQHO.js} +10 -8
  21. package/dist/chunk-3SV6CQHO.js.map +1 -0
  22. package/dist/{chunk-U2IQTSBY.js → chunk-3WHVNEN7.js} +1 -1
  23. package/dist/chunk-3WHVNEN7.js.map +1 -0
  24. package/dist/{chunk-QKAH5B6E.js → chunk-44ICJRF3.js} +97 -9
  25. package/dist/chunk-44ICJRF3.js.map +1 -0
  26. package/dist/{chunk-S4LX5EBI.js → chunk-47UU5PU2.js} +48 -9
  27. package/dist/chunk-47UU5PU2.js.map +1 -0
  28. package/dist/{chunk-ECKDIK5F.js → chunk-4LACOVZX.js} +2 -2
  29. package/dist/{chunk-AYPYCLR7.js → chunk-6LX5ORAS.js} +2 -2
  30. package/dist/{chunk-GJQPH5G3.js → chunk-6UJ47TVX.js} +2 -2
  31. package/dist/{chunk-KWP7T3DP.js → chunk-7ECD5ATE.js} +2 -2
  32. package/dist/{chunk-74JR4N5J.js → chunk-7WQ6SLIE.js} +2 -2
  33. package/dist/{chunk-7PA4OZEU.js → chunk-BLKTA7MM.js} +6 -14
  34. package/dist/chunk-BLKTA7MM.js.map +1 -0
  35. package/dist/{chunk-XMGSSBFX.js → chunk-DEPL3635.js} +172 -100
  36. package/dist/chunk-DEPL3635.js.map +1 -0
  37. package/dist/{chunk-JROGC36Y.js → chunk-DHHP2Z4X.js} +2 -2
  38. package/dist/{chunk-BKQJBXXX.js → chunk-GGD5W7TB.js} +2 -2
  39. package/dist/chunk-GGD5W7TB.js.map +1 -0
  40. package/dist/{chunk-POMSFKTB.js → chunk-GV6NLQ4X.js} +14 -14
  41. package/dist/{chunk-AAI7JARD.js → chunk-HMDCOMYU.js} +8 -11
  42. package/dist/chunk-HMDCOMYU.js.map +1 -0
  43. package/dist/{chunk-POBPGDWI.js → chunk-ITRLGI2T.js} +2 -2
  44. package/dist/{chunk-MYQWXITD.js → chunk-JIU55F3X.js} +2 -2
  45. package/dist/{chunk-UPMD5XND.js → chunk-JL2PU6AI.js} +16 -5
  46. package/dist/chunk-JL2PU6AI.js.map +1 -0
  47. package/dist/{chunk-OJFGVJS6.js → chunk-MBJHSA7F.js} +65 -9
  48. package/dist/chunk-MBJHSA7F.js.map +1 -0
  49. package/dist/{chunk-V7XCAHIB.js → chunk-MVTHXUBX.js} +46 -23
  50. package/dist/chunk-MVTHXUBX.js.map +1 -0
  51. package/dist/{chunk-BTY5RRRF.js → chunk-N42IWANG.js} +5 -5
  52. package/dist/{chunk-NSB3WSYS.js → chunk-NQEVYWX6.js} +74 -3
  53. package/dist/chunk-NQEVYWX6.js.map +1 -0
  54. package/dist/chunk-OIT5QGG4.js +80 -0
  55. package/dist/chunk-OIT5QGG4.js.map +1 -0
  56. package/dist/chunk-PVGDJXVK.js +21 -0
  57. package/dist/chunk-PVGDJXVK.js.map +1 -0
  58. package/dist/{chunk-RCICHSHL.js → chunk-SYUK3VLY.js} +2 -2
  59. package/dist/{chunk-YFYL2SIJ.js → chunk-WBSAYXVI.js} +127 -39
  60. package/dist/chunk-WBSAYXVI.js.map +1 -0
  61. package/dist/{chunk-KEG4GNGI.js → chunk-XZ2TIKGC.js} +38 -8
  62. package/dist/chunk-XZ2TIKGC.js.map +1 -0
  63. package/dist/chunk-Y4FHOFJ2.js +140 -0
  64. package/dist/chunk-Y4FHOFJ2.js.map +1 -0
  65. package/dist/chunk-YNB73F22.js +137 -0
  66. package/dist/chunk-YNB73F22.js.map +1 -0
  67. package/dist/{chunk-HITJFT7E.js → chunk-ZVBB3T7V.js} +10 -5
  68. package/dist/chunk-ZVBB3T7V.js.map +1 -0
  69. package/dist/{cli-DwIBnp2g.d.ts → cli-BneVIEvh.d.ts} +2 -2
  70. package/dist/cli.d.ts +4 -3
  71. package/dist/cli.js +25 -24
  72. package/dist/config.js +1 -1
  73. package/dist/contradiction-review-WIUBAR52.js +21 -0
  74. package/dist/contradiction-review-WIUBAR52.js.map +1 -0
  75. package/dist/contradiction-scan-GR33PONM.js +376 -0
  76. package/dist/contradiction-scan-GR33PONM.js.map +1 -0
  77. package/dist/direct-answer-wiring.d.ts +77 -0
  78. package/dist/direct-answer-wiring.js +75 -0
  79. package/dist/direct-answer-wiring.js.map +1 -0
  80. package/dist/direct-answer.d.ts +106 -0
  81. package/dist/direct-answer.js +10 -0
  82. package/dist/direct-answer.js.map +1 -0
  83. package/dist/{engine-X7X3AAG3.js → engine-5TIQBYZR.js} +7 -7
  84. package/dist/engine-5TIQBYZR.js.map +1 -0
  85. package/dist/entity-retrieval.js +6 -6
  86. package/dist/explicit-capture.d.ts +1 -1
  87. package/dist/extraction.js +6 -6
  88. package/dist/fallback-llm.d.ts +11 -2
  89. package/dist/fallback-llm.js +3 -3
  90. package/dist/harmonic-retrieval.js +2 -1
  91. package/dist/index.d.ts +10 -124
  92. package/dist/index.js +74 -137
  93. package/dist/index.js.map +1 -1
  94. package/dist/intent.js +1 -1
  95. package/dist/local-llm.d.ts +10 -3
  96. package/dist/local-llm.js +1 -1
  97. package/dist/operator-toolkit.js +12 -11
  98. package/dist/{orchestrator-B9kwlCep.d.ts → orchestrator-DRYA6_lW.d.ts} +21 -2
  99. package/dist/orchestrator.d.ts +1 -1
  100. package/dist/orchestrator.js +36 -35
  101. package/dist/qmd.js +2 -1
  102. package/dist/recall-state.d.ts +28 -1
  103. package/dist/recall-state.js +1 -1
  104. package/dist/resolution-QBTDHTG7.js +100 -0
  105. package/dist/resolution-QBTDHTG7.js.map +1 -0
  106. package/dist/resolve-provider-secret.d.ts +24 -1
  107. package/dist/resolve-provider-secret.js +3 -1
  108. package/dist/resume-bundles.js +3 -3
  109. package/dist/schemas.d.ts +14 -14
  110. package/dist/semantic-consolidation.js +6 -6
  111. package/dist/semantic-rule-promotion.js +6 -6
  112. package/dist/semantic-rule-verifier.js +6 -6
  113. package/dist/storage.js +5 -5
  114. package/dist/summarizer.js +5 -5
  115. package/dist/types-DJhqDJUV.d.ts +50 -0
  116. package/dist/types.d.ts +34 -2
  117. package/dist/types.js +1 -1
  118. package/dist/verified-recall.js +6 -6
  119. package/package.json +1 -1
  120. package/dist/chunk-2VFW5K5U.js.map +0 -1
  121. package/dist/chunk-7PA4OZEU.js.map +0 -1
  122. package/dist/chunk-AAI7JARD.js.map +0 -1
  123. package/dist/chunk-BKQJBXXX.js.map +0 -1
  124. package/dist/chunk-HITJFT7E.js.map +0 -1
  125. package/dist/chunk-KEG4GNGI.js.map +0 -1
  126. package/dist/chunk-NSB3WSYS.js.map +0 -1
  127. package/dist/chunk-OJFGVJS6.js.map +0 -1
  128. package/dist/chunk-PMB3WGDL.js.map +0 -1
  129. package/dist/chunk-QKAH5B6E.js.map +0 -1
  130. package/dist/chunk-S4LX5EBI.js.map +0 -1
  131. package/dist/chunk-U2IQTSBY.js.map +0 -1
  132. package/dist/chunk-UPMD5XND.js.map +0 -1
  133. package/dist/chunk-V7XCAHIB.js.map +0 -1
  134. package/dist/chunk-XMGSSBFX.js.map +0 -1
  135. package/dist/chunk-YFYL2SIJ.js.map +0 -1
  136. /package/dist/{engine-X7X3AAG3.js.map → abort-error.js.map} +0 -0
  137. /package/dist/{chunk-X4WESCKA.js.map → chunk-3QHL5ABG.js.map} +0 -0
  138. /package/dist/{chunk-ECKDIK5F.js.map → chunk-4LACOVZX.js.map} +0 -0
  139. /package/dist/{chunk-AYPYCLR7.js.map → chunk-6LX5ORAS.js.map} +0 -0
  140. /package/dist/{chunk-GJQPH5G3.js.map → chunk-6UJ47TVX.js.map} +0 -0
  141. /package/dist/{chunk-KWP7T3DP.js.map → chunk-7ECD5ATE.js.map} +0 -0
  142. /package/dist/{chunk-74JR4N5J.js.map → chunk-7WQ6SLIE.js.map} +0 -0
  143. /package/dist/{chunk-JROGC36Y.js.map → chunk-DHHP2Z4X.js.map} +0 -0
  144. /package/dist/{chunk-POMSFKTB.js.map → chunk-GV6NLQ4X.js.map} +0 -0
  145. /package/dist/{chunk-POBPGDWI.js.map → chunk-ITRLGI2T.js.map} +0 -0
  146. /package/dist/{chunk-MYQWXITD.js.map → chunk-JIU55F3X.js.map} +0 -0
  147. /package/dist/{chunk-BTY5RRRF.js.map → chunk-N42IWANG.js.map} +0 -0
  148. /package/dist/{chunk-RCICHSHL.js.map → chunk-SYUK3VLY.js.map} +0 -0
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Shared abort-error helpers.
3
+ *
4
+ * Consolidates the `throwIfAborted` / `abortError` / `isAbortError`
5
+ * patterns that were independently implemented across
6
+ * `direct-answer-wiring.ts`, `harmonic-retrieval.ts`, and `qmd.ts`
7
+ * (plus a private pair in `orchestrator.ts`). A single helper
8
+ * means future changes to the abort-error convention are applied
9
+ * consistently across the codebase.
10
+ *
11
+ * The convention (matching Web / Node): throw a standard `Error`
12
+ * with `name === "AbortError"`. Callers dispatch on name rather
13
+ * than a specific class so error propagation across async
14
+ * boundaries continues to classify correctly.
15
+ */
16
+ /**
17
+ * Build an Error whose `name` is `"AbortError"`. Uses
18
+ * `Object.defineProperty` so the name is non-enumerable and
19
+ * mirrors the shape of `DOMException("AbortError")` where that
20
+ * is available.
21
+ */
22
+ declare function abortError(message: string): Error;
23
+ /** Return true iff `err` is an Error whose `name` is `"AbortError"`. */
24
+ declare function isAbortError(err: unknown): boolean;
25
+ /**
26
+ * Throw an AbortError when the given signal has fired. No-op
27
+ * when the signal is absent or not yet aborted. The default
28
+ * message matches the prior in-module implementations.
29
+ */
30
+ declare function throwIfAborted(signal?: AbortSignal, message?: string): void;
31
+
32
+ export { abortError, isAbortError, throwIfAborted };
@@ -0,0 +1,11 @@
1
+ import {
2
+ abortError,
3
+ isAbortError,
4
+ throwIfAborted
5
+ } from "./chunk-PVGDJXVK.js";
6
+ export {
7
+ abortError,
8
+ isAbortError,
9
+ throwIfAborted
10
+ };
11
+ //# sourceMappingURL=abort-error.js.map
@@ -1,72 +1,77 @@
1
1
  import {
2
2
  Orchestrator
3
- } from "./chunk-XMGSSBFX.js";
4
- import "./chunk-JROGC36Y.js";
3
+ } from "./chunk-DEPL3635.js";
4
+ import "./chunk-DHHP2Z4X.js";
5
+ import "./chunk-UHGBNIOS.js";
5
6
  import "./chunk-FSFEQI74.js";
7
+ import "./chunk-N42IWANG.js";
8
+ import "./chunk-ETOW6ACV.js";
6
9
  import "./chunk-W6SL7OFG.js";
7
10
  import "./chunk-Z5AAYHUC.js";
8
11
  import "./chunk-S75M5ZRK.js";
9
12
  import "./chunk-TPB3I2AC.js";
10
- import "./chunk-UHGBNIOS.js";
11
- import "./chunk-BTY5RRRF.js";
12
- import "./chunk-ETOW6ACV.js";
13
- import "./chunk-KVE7R4CG.js";
14
13
  import "./chunk-JR4ZC3G4.js";
14
+ import "./chunk-KVE7R4CG.js";
15
+ import "./chunk-X7XN6YU4.js";
16
+ import "./chunk-5NPGSAVB.js";
15
17
  import "./chunk-C7VW7C3F.js";
16
18
  import "./chunk-K4FLSOR5.js";
17
19
  import "./chunk-V3RXWQIE.js";
18
20
  import "./chunk-5IZL4DCV.js";
21
+ import "./chunk-YCN4BVDK.js";
19
22
  import "./chunk-YDBIWGNI.js";
20
23
  import "./chunk-7DHTMOND.js";
21
- import "./chunk-S4LX5EBI.js";
22
- import "./chunk-X7XN6YU4.js";
23
- import "./chunk-5NPGSAVB.js";
24
- import "./chunk-YCN4BVDK.js";
24
+ import "./chunk-47UU5PU2.js";
25
25
  import "./chunk-D654IBA6.js";
26
26
  import "./chunk-H63EDPFJ.js";
27
- import "./chunk-BKQJBXXX.js";
28
27
  import "./chunk-YAZNBMNF.js";
29
- import "./chunk-ALXMCZEU.js";
30
- import "./chunk-74JR4N5J.js";
28
+ import "./chunk-GGD5W7TB.js";
31
29
  import "./chunk-LAYN4LDC.js";
32
- import "./chunk-2VFW5K5U.js";
30
+ import "./chunk-3SV6CQHO.js";
33
31
  import "./chunk-UEYA6UC7.js";
34
32
  import "./chunk-NBNN5GOB.js";
35
- import "./chunk-UPMD5XND.js";
36
33
  import "./chunk-FEMOX5AD.js";
34
+ import "./chunk-JL2PU6AI.js";
35
+ import "./chunk-GZCUW5IC.js";
37
36
  import "./chunk-VEWZZM3H.js";
37
+ import "./chunk-ALXMCZEU.js";
38
+ import "./chunk-7WQ6SLIE.js";
38
39
  import "./chunk-PAORGQRI.js";
40
+ import "./chunk-6UJ47TVX.js";
39
41
  import "./chunk-PYXS46O7.js";
40
42
  import "./chunk-3QKK7QOS.js";
41
- import "./chunk-GJQPH5G3.js";
42
43
  import "./chunk-JRNQ3RNA.js";
43
- import "./chunk-MYQWXITD.js";
44
+ import "./chunk-JIU55F3X.js";
44
45
  import "./chunk-CULXMQJH.js";
45
46
  import "./chunk-E6K4NIEU.js";
46
- import "./chunk-EABGC2TL.js";
47
- import "./chunk-LOBRX7VD.js";
48
- import "./chunk-HITJFT7E.js";
47
+ import "./chunk-ZVBB3T7V.js";
49
48
  import "./chunk-YRMVARQP.js";
49
+ import "./chunk-BLKTA7MM.js";
50
50
  import {
51
51
  resolveRemnicPluginEntry
52
52
  } from "./chunk-U66YHYC7.js";
53
- import "./chunk-7PA4OZEU.js";
53
+ import "./chunk-EABGC2TL.js";
54
+ import "./chunk-LOBRX7VD.js";
55
+ import "./chunk-HMDCOMYU.js";
54
56
  import "./chunk-J4IYOZZ5.js";
55
- import "./chunk-AAI7JARD.js";
57
+ import "./chunk-LK6SGL53.js";
56
58
  import "./chunk-7SEAZFFB.js";
57
59
  import "./chunk-K6WK37A6.js";
58
- import "./chunk-LK6SGL53.js";
59
60
  import "./chunk-3PG3H5TD.js";
60
61
  import "./chunk-FYIYMQ5N.js";
61
62
  import "./chunk-2NMMFZ5T.js";
62
63
  import {
63
64
  parseConfig
64
- } from "./chunk-OJFGVJS6.js";
65
+ } from "./chunk-MBJHSA7F.js";
65
66
  import "./chunk-Z5LAYHGJ.js";
66
67
  import "./chunk-C6QPK5GG.js";
67
- import "./chunk-GZCUW5IC.js";
68
- import "./chunk-RCICHSHL.js";
68
+ import "./chunk-SYUK3VLY.js";
69
69
  import "./chunk-EJI5XIBB.js";
70
+ import "./chunk-44ICJRF3.js";
71
+ import "./chunk-XZ2TIKGC.js";
72
+ import "./chunk-Y27UJK6V.js";
73
+ import "./chunk-ODWDQNRE.js";
74
+ import "./chunk-UZB5KHKX.js";
70
75
  import "./chunk-C2EFFULQ.js";
71
76
  import "./chunk-4WMCPJWX.js";
72
77
  import "./chunk-6HZ6AO2P.js";
@@ -75,11 +80,7 @@ import "./chunk-N53K2EXC.js";
75
80
  import "./chunk-URB2WSKZ.js";
76
81
  import "./chunk-UVJFDP7P.js";
77
82
  import "./chunk-XYIK4LF6.js";
78
- import "./chunk-QKAH5B6E.js";
79
- import "./chunk-KEG4GNGI.js";
80
- import "./chunk-ODWDQNRE.js";
81
- import "./chunk-Y27UJK6V.js";
82
- import "./chunk-UZB5KHKX.js";
83
+ import "./chunk-PVGDJXVK.js";
83
84
  import "./chunk-NGAVDO7E.js";
84
85
  import {
85
86
  readEnvVar,
@@ -87,34 +88,34 @@ import {
87
88
  } from "./chunk-MARWOCVP.js";
88
89
  import {
89
90
  EngramAccessService
90
- } from "./chunk-V7XCAHIB.js";
91
+ } from "./chunk-MVTHXUBX.js";
92
+ import "./chunk-ITRLGI2T.js";
91
93
  import "./chunk-EQINRHYR.js";
92
- import "./chunk-POBPGDWI.js";
93
94
  import "./chunk-QDYXG4CS.js";
94
95
  import "./chunk-QNJMBKFK.js";
95
96
  import "./chunk-EEQLFRUM.js";
96
97
  import "./chunk-QDW3E4RD.js";
97
98
  import "./chunk-4NRAJUDS.js";
98
99
  import "./chunk-DT5TVLJE.js";
100
+ import "./chunk-N5AKDXAI.js";
99
101
  import "./chunk-TBBDFYXW.js";
100
102
  import "./chunk-DGXUHMOV.js";
101
103
  import "./chunk-LPSF4OQH.js";
102
104
  import "./chunk-XKECPATV.js";
103
- import "./chunk-ECKDIK5F.js";
104
- import "./chunk-POMSFKTB.js";
105
- import "./chunk-U2IQTSBY.js";
105
+ import "./chunk-4LACOVZX.js";
106
+ import "./chunk-GV6NLQ4X.js";
107
+ import "./chunk-3WHVNEN7.js";
106
108
  import "./chunk-4KAN3GZ3.js";
107
109
  import "./chunk-6ZH4TU6I.js";
108
- import "./chunk-6PFRXT4K.js";
109
- import "./chunk-TP4FZJIZ.js";
110
110
  import "./chunk-SCU65EZI.js";
111
111
  import "./chunk-BOUYNNYD.js";
112
- import "./chunk-QSVPYQPG.js";
112
+ import "./chunk-6PFRXT4K.js";
113
+ import "./chunk-TP4FZJIZ.js";
113
114
  import "./chunk-DM2T26WE.js";
115
+ import "./chunk-QSVPYQPG.js";
114
116
  import "./chunk-M62O4P4T.js";
115
117
  import "./chunk-4DJQYKMN.js";
116
118
  import "./chunk-2ODBA7MQ.js";
117
- import "./chunk-N5AKDXAI.js";
118
119
 
119
120
  // src/access-cli.ts
120
121
  import fs from "fs";
@@ -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 { resolveRemnicPluginEntry } from \"./plugin-id.js\";\n\ntype CommandName = \"browse\" | \"store\";\n\ntype ParsedArgs = {\n command: CommandName;\n options: Record<string, string[]>;\n flags: Set<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 {@link resolveRemnicPluginEntry} 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\ntype UsageErrorKind =\n | \"unsupported-command\"\n | \"unexpected-positional\"\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 ) {\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 \"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 \" --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\nfunction parseArgs(argv: string[]): ParsedArgs {\n const [commandRaw, ...rest] = argv;\n if (commandRaw !== \"browse\" && commandRaw !== \"store\") {\n throw new UsageError(\"unsupported-command\");\n }\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 key = token.slice(2);\n const next = rest[i + 1];\n if (!next || next.startsWith(\"--\")) {\n flags.add(key);\n continue;\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(args: ParsedArgs, name: string): number | undefined {\n const raw = getLastOption(args, name);\n if (!raw) return undefined;\n const value = parseInt(raw, 10);\n if (!Number.isFinite(value)) {\n throw new UsageError(\"invalid-integer\", name);\n }\n return value;\n}\n\nfunction parseFloatOption(args: ParsedArgs, name: string): number | undefined {\n const raw = getLastOption(args, name);\n if (!raw) return undefined;\n const value = Number.parseFloat(raw);\n if (!Number.isFinite(value)) {\n throw new UsageError(\"invalid-number\", name);\n }\n return value;\n}\n\nfunction loadPluginConfig(preferredId?: string): Record<string, unknown> {\n const configPath =\n readEnvVar(\"OPENCLAW_ENGRAM_CONFIG_PATH\") ||\n readEnvVar(\"OPENCLAW_CONFIG_PATH\") ||\n path.join(resolveHomeDir(), \".openclaw\", \"openclaw.json\");\n const raw = JSON.parse(fs.readFileSync(configPath, \"utf8\"));\n // Delegate slot → preferredId → PLUGIN_ID → LEGACY_PLUGIN_ID resolution to\n // the shared 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 = resolveRemnicPluginEntry(raw, preferredId);\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 { service } = buildRuntime(preferredId);\n const result = await service.memoryBrowse({\n namespace: getLastOption(args, \"namespace\"),\n query: getLastOption(args, \"query\"),\n category: getLastOption(args, \"category\"),\n status: getLastOption(args, \"status\"),\n sort: getLastOption(args, \"sort\") as \"updated_desc\" | \"updated_asc\" | \"created_desc\" | \"created_asc\" | undefined,\n limit: parseIntegerOption(args, \"limit\"),\n offset: parseIntegerOption(args, \"offset\"),\n });\n console.log(JSON.stringify(result, null, 2));\n}\n\nasync function runStore(args: ParsedArgs, preferredId?: string): Promise<void> {\n const { config, service } = buildRuntime(preferredId);\n const contentFile = getLastOption(args, \"content-file\");\n const inlineContent = getLastOption(args, \"content\");\n const content = contentFile ? fs.readFileSync(contentFile, \"utf8\") : inlineContent;\n if (!content || content.trim().length === 0) {\n throw new UsageError(\"missing-content\");\n }\n\n const result = await service.memoryStore({\n namespace: getLastOption(args, \"namespace\"),\n sessionKey: getLastOption(args, \"session-key\"),\n authenticatedPrincipal: getLastOption(args, \"principal\") ?? config.agentAccessHttp.principal,\n content,\n category: requireOption(args, \"category\"),\n confidence: parseFloatOption(args, \"confidence\"),\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 console.log(JSON.stringify(result, null, 2));\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 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\");\n process.exit(1);\n }\n}\n"],"mappings":"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","names":[]}
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 { resolveRemnicPluginEntry } from \"./plugin-id.js\";\n\ntype CommandName = \"browse\" | \"store\";\n\ntype ParsedArgs = {\n command: CommandName;\n options: Record<string, string[]>;\n flags: Set<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 {@link resolveRemnicPluginEntry} 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\ntype UsageErrorKind =\n | \"unsupported-command\"\n | \"unexpected-positional\"\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 ) {\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 \"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 \" --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\nfunction parseArgs(argv: string[]): ParsedArgs {\n const [commandRaw, ...rest] = argv;\n if (commandRaw !== \"browse\" && commandRaw !== \"store\") {\n throw new UsageError(\"unsupported-command\");\n }\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 key = token.slice(2);\n const next = rest[i + 1];\n if (!next || next.startsWith(\"--\")) {\n flags.add(key);\n continue;\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(args: ParsedArgs, name: string): number | undefined {\n const raw = getLastOption(args, name);\n if (!raw) return undefined;\n const value = parseInt(raw, 10);\n if (!Number.isFinite(value)) {\n throw new UsageError(\"invalid-integer\", name);\n }\n return value;\n}\n\nfunction parseFloatOption(args: ParsedArgs, name: string): number | undefined {\n const raw = getLastOption(args, name);\n if (!raw) return undefined;\n const value = Number.parseFloat(raw);\n if (!Number.isFinite(value)) {\n throw new UsageError(\"invalid-number\", name);\n }\n return value;\n}\n\nfunction loadPluginConfig(preferredId?: string): Record<string, unknown> {\n const configPath =\n readEnvVar(\"OPENCLAW_ENGRAM_CONFIG_PATH\") ||\n readEnvVar(\"OPENCLAW_CONFIG_PATH\") ||\n path.join(resolveHomeDir(), \".openclaw\", \"openclaw.json\");\n const raw = JSON.parse(fs.readFileSync(configPath, \"utf8\"));\n // Delegate slot → preferredId → PLUGIN_ID → LEGACY_PLUGIN_ID resolution to\n // the shared 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 = resolveRemnicPluginEntry(raw, preferredId);\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 { service } = buildRuntime(preferredId);\n const result = await service.memoryBrowse({\n namespace: getLastOption(args, \"namespace\"),\n query: getLastOption(args, \"query\"),\n category: getLastOption(args, \"category\"),\n status: getLastOption(args, \"status\"),\n sort: getLastOption(args, \"sort\") as \"updated_desc\" | \"updated_asc\" | \"created_desc\" | \"created_asc\" | undefined,\n limit: parseIntegerOption(args, \"limit\"),\n offset: parseIntegerOption(args, \"offset\"),\n });\n console.log(JSON.stringify(result, null, 2));\n}\n\nasync function runStore(args: ParsedArgs, preferredId?: string): Promise<void> {\n const { config, service } = buildRuntime(preferredId);\n const contentFile = getLastOption(args, \"content-file\");\n const inlineContent = getLastOption(args, \"content\");\n const content = contentFile ? fs.readFileSync(contentFile, \"utf8\") : inlineContent;\n if (!content || content.trim().length === 0) {\n throw new UsageError(\"missing-content\");\n }\n\n const result = await service.memoryStore({\n namespace: getLastOption(args, \"namespace\"),\n sessionKey: getLastOption(args, \"session-key\"),\n authenticatedPrincipal: getLastOption(args, \"principal\") ?? config.agentAccessHttp.principal,\n content,\n category: requireOption(args, \"category\"),\n confidence: parseFloatOption(args, \"confidence\"),\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 console.log(JSON.stringify(result, null, 2));\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 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\");\n process.exit(1);\n }\n}\n"],"mappings":"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","names":[]}
@@ -1,8 +1,8 @@
1
1
  import { IncomingMessage } from 'node:http';
2
- import { EngramAccessService } from './access-service.js';
2
+ import { E as EngramAccessService } from './access-service-HmO1Trrx.js';
3
3
  import './types.js';
4
4
  import './explicit-capture.js';
5
- import './orchestrator-B9kwlCep.js';
5
+ import './orchestrator-DRYA6_lW.js';
6
6
  import './buffer.js';
7
7
  import './storage.js';
8
8
  import './page-versioning.js';
@@ -26,6 +26,7 @@ import 'zod';
26
26
  import './policy-runtime.js';
27
27
  import './profiling.js';
28
28
  import './trust-zones.js';
29
+ import './fallback-llm.js';
29
30
 
30
31
  /**
31
32
  * Adapter interface for external system identity resolution.
@@ -1,38 +1,38 @@
1
1
  import {
2
2
  EngramAccessHttpServer
3
- } from "./chunk-PMB3WGDL.js";
4
- import "./chunk-NSB3WSYS.js";
3
+ } from "./chunk-37UIFYWO.js";
4
+ import "./chunk-NQEVYWX6.js";
5
5
  import "./chunk-IQT3XTKW.js";
6
6
  import "./chunk-MARWOCVP.js";
7
7
  import "./chunk-MTLYEMJB.js";
8
- import "./chunk-V7XCAHIB.js";
8
+ import "./chunk-MVTHXUBX.js";
9
+ import "./chunk-ITRLGI2T.js";
9
10
  import "./chunk-EQINRHYR.js";
10
- import "./chunk-POBPGDWI.js";
11
11
  import "./chunk-QDYXG4CS.js";
12
12
  import "./chunk-QNJMBKFK.js";
13
13
  import "./chunk-EEQLFRUM.js";
14
14
  import "./chunk-QDW3E4RD.js";
15
15
  import "./chunk-4NRAJUDS.js";
16
16
  import "./chunk-DT5TVLJE.js";
17
+ import "./chunk-N5AKDXAI.js";
17
18
  import "./chunk-TBBDFYXW.js";
18
19
  import "./chunk-DGXUHMOV.js";
19
20
  import "./chunk-LPSF4OQH.js";
20
21
  import "./chunk-XKECPATV.js";
21
- import "./chunk-ECKDIK5F.js";
22
- import "./chunk-POMSFKTB.js";
23
- import "./chunk-U2IQTSBY.js";
22
+ import "./chunk-4LACOVZX.js";
23
+ import "./chunk-GV6NLQ4X.js";
24
+ import "./chunk-3WHVNEN7.js";
24
25
  import "./chunk-4KAN3GZ3.js";
25
26
  import "./chunk-6ZH4TU6I.js";
26
- import "./chunk-6PFRXT4K.js";
27
- import "./chunk-TP4FZJIZ.js";
28
27
  import "./chunk-SCU65EZI.js";
29
28
  import "./chunk-BOUYNNYD.js";
30
- import "./chunk-QSVPYQPG.js";
29
+ import "./chunk-6PFRXT4K.js";
30
+ import "./chunk-TP4FZJIZ.js";
31
31
  import "./chunk-DM2T26WE.js";
32
+ import "./chunk-QSVPYQPG.js";
32
33
  import "./chunk-M62O4P4T.js";
33
34
  import "./chunk-4DJQYKMN.js";
34
35
  import "./chunk-2ODBA7MQ.js";
35
- import "./chunk-N5AKDXAI.js";
36
36
  export {
37
37
  EngramAccessHttpServer
38
38
  };
@@ -1,8 +1,8 @@
1
1
  import { Readable, Writable } from 'node:stream';
2
- import { EngramAccessService } from './access-service.js';
2
+ import { E as EngramAccessService } from './access-service-HmO1Trrx.js';
3
3
  import './types.js';
4
4
  import './explicit-capture.js';
5
- import './orchestrator-B9kwlCep.js';
5
+ import './orchestrator-DRYA6_lW.js';
6
6
  import './buffer.js';
7
7
  import './storage.js';
8
8
  import './page-versioning.js';
@@ -26,6 +26,7 @@ import 'zod';
26
26
  import './policy-runtime.js';
27
27
  import './profiling.js';
28
28
  import './trust-zones.js';
29
+ import './fallback-llm.js';
29
30
 
30
31
  type JsonRpcId = string | number | null;
31
32
  type JsonRpcRequest = {
@@ -1,19 +1,19 @@
1
1
  import {
2
2
  EngramMcpServer
3
- } from "./chunk-NSB3WSYS.js";
3
+ } from "./chunk-NQEVYWX6.js";
4
4
  import "./chunk-IQT3XTKW.js";
5
5
  import "./chunk-MARWOCVP.js";
6
- import "./chunk-ECKDIK5F.js";
7
- import "./chunk-POMSFKTB.js";
8
- import "./chunk-U2IQTSBY.js";
6
+ import "./chunk-4LACOVZX.js";
7
+ import "./chunk-GV6NLQ4X.js";
8
+ import "./chunk-3WHVNEN7.js";
9
9
  import "./chunk-4KAN3GZ3.js";
10
10
  import "./chunk-6ZH4TU6I.js";
11
- import "./chunk-6PFRXT4K.js";
12
- import "./chunk-TP4FZJIZ.js";
13
11
  import "./chunk-SCU65EZI.js";
14
12
  import "./chunk-BOUYNNYD.js";
15
- import "./chunk-QSVPYQPG.js";
13
+ import "./chunk-6PFRXT4K.js";
14
+ import "./chunk-TP4FZJIZ.js";
16
15
  import "./chunk-DM2T26WE.js";
16
+ import "./chunk-QSVPYQPG.js";
17
17
  import "./chunk-M62O4P4T.js";
18
18
  import "./chunk-4DJQYKMN.js";
19
19
  import "./chunk-2ODBA7MQ.js";
@@ -19,16 +19,16 @@ declare const recallRequestSchema: z.ZodObject<{
19
19
  }, "strip", z.ZodTypeAny, {
20
20
  query: string;
21
21
  namespace?: string | undefined;
22
+ sessionKey?: string | undefined;
22
23
  topK?: number | undefined;
23
24
  mode?: "no_recall" | "minimal" | "full" | "graph_mode" | "auto" | undefined;
24
- sessionKey?: string | undefined;
25
25
  includeDebug?: boolean | undefined;
26
26
  }, {
27
27
  query: string;
28
28
  namespace?: string | undefined;
29
+ sessionKey?: string | undefined;
29
30
  topK?: number | undefined;
30
31
  mode?: "no_recall" | "minimal" | "full" | "graph_mode" | "auto" | undefined;
31
- sessionKey?: string | undefined;
32
32
  includeDebug?: boolean | undefined;
33
33
  }>;
34
34
  declare const recallExplainRequestSchema: z.ZodObject<{
@@ -91,10 +91,10 @@ declare const memoryStoreRequestSchema: z.ZodObject<{
91
91
  category?: "fact" | "preference" | "correction" | "entity" | "decision" | "relationship" | "principle" | "commitment" | "moment" | "skill" | "rule" | "procedure" | undefined;
92
92
  confidence?: number | undefined;
93
93
  ttl?: string | undefined;
94
- tags?: string[] | undefined;
95
- entityRef?: string | undefined;
96
94
  schemaVersion?: number | undefined;
97
95
  sessionKey?: string | undefined;
96
+ tags?: string[] | undefined;
97
+ entityRef?: string | undefined;
98
98
  dryRun?: boolean | undefined;
99
99
  sourceReason?: string | undefined;
100
100
  idempotencyKey?: string | undefined;
@@ -104,10 +104,10 @@ declare const memoryStoreRequestSchema: z.ZodObject<{
104
104
  category?: "fact" | "preference" | "correction" | "entity" | "decision" | "relationship" | "principle" | "commitment" | "moment" | "skill" | "rule" | "procedure" | undefined;
105
105
  confidence?: number | undefined;
106
106
  ttl?: string | undefined;
107
- tags?: string[] | undefined;
108
- entityRef?: string | undefined;
109
107
  schemaVersion?: number | undefined;
110
108
  sessionKey?: string | undefined;
109
+ tags?: string[] | undefined;
110
+ entityRef?: string | undefined;
111
111
  dryRun?: boolean | undefined;
112
112
  sourceReason?: string | undefined;
113
113
  idempotencyKey?: string | undefined;
@@ -131,10 +131,10 @@ declare const suggestionSubmitRequestSchema: z.ZodObject<{
131
131
  category?: "fact" | "preference" | "correction" | "entity" | "decision" | "relationship" | "principle" | "commitment" | "moment" | "skill" | "rule" | "procedure" | undefined;
132
132
  confidence?: number | undefined;
133
133
  ttl?: string | undefined;
134
- tags?: string[] | undefined;
135
- entityRef?: string | undefined;
136
134
  schemaVersion?: number | undefined;
137
135
  sessionKey?: string | undefined;
136
+ tags?: string[] | undefined;
137
+ entityRef?: string | undefined;
138
138
  dryRun?: boolean | undefined;
139
139
  sourceReason?: string | undefined;
140
140
  idempotencyKey?: string | undefined;
@@ -144,10 +144,10 @@ declare const suggestionSubmitRequestSchema: z.ZodObject<{
144
144
  category?: "fact" | "preference" | "correction" | "entity" | "decision" | "relationship" | "principle" | "commitment" | "moment" | "skill" | "rule" | "procedure" | undefined;
145
145
  confidence?: number | undefined;
146
146
  ttl?: string | undefined;
147
- tags?: string[] | undefined;
148
- entityRef?: string | undefined;
149
147
  schemaVersion?: number | undefined;
150
148
  sessionKey?: string | undefined;
149
+ tags?: string[] | undefined;
150
+ entityRef?: string | undefined;
151
151
  dryRun?: boolean | undefined;
152
152
  sourceReason?: string | undefined;
153
153
  idempotencyKey?: string | undefined;
@@ -181,17 +181,17 @@ declare const trustZonePromoteRequestSchema: z.ZodObject<{
181
181
  targetZone: "working" | "trusted";
182
182
  promotionReason: string;
183
183
  namespace?: string | undefined;
184
+ recordedAt?: string | undefined;
184
185
  summary?: string | undefined;
185
186
  dryRun?: boolean | undefined;
186
- recordedAt?: string | undefined;
187
187
  }, {
188
188
  recordId: string;
189
189
  targetZone: "working" | "trusted";
190
190
  promotionReason: string;
191
191
  namespace?: string | undefined;
192
+ recordedAt?: string | undefined;
192
193
  summary?: string | undefined;
193
194
  dryRun?: boolean | undefined;
194
- recordedAt?: string | undefined;
195
195
  }>;
196
196
  declare const trustZoneDemoSeedRequestSchema: z.ZodObject<{
197
197
  scenario: z.ZodOptional<z.ZodString>;
@@ -200,13 +200,13 @@ declare const trustZoneDemoSeedRequestSchema: z.ZodObject<{
200
200
  namespace: z.ZodOptional<z.ZodString>;
201
201
  }, "strip", z.ZodTypeAny, {
202
202
  namespace?: string | undefined;
203
- dryRun?: boolean | undefined;
204
203
  recordedAt?: string | undefined;
204
+ dryRun?: boolean | undefined;
205
205
  scenario?: string | undefined;
206
206
  }, {
207
207
  namespace?: string | undefined;
208
- dryRun?: boolean | undefined;
209
208
  recordedAt?: string | undefined;
209
+ dryRun?: boolean | undefined;
210
210
  scenario?: string | undefined;
211
211
  }>;
212
212
  declare const lcmSearchRequestSchema: z.ZodObject<{
@@ -231,12 +231,12 @@ declare const daySummaryRequestSchema: z.ZodObject<{
231
231
  namespace: z.ZodOptional<z.ZodString>;
232
232
  }, "strip", z.ZodTypeAny, {
233
233
  namespace?: string | undefined;
234
- memories?: string | undefined;
235
234
  sessionKey?: string | undefined;
235
+ memories?: string | undefined;
236
236
  }, {
237
237
  namespace?: string | undefined;
238
- memories?: string | undefined;
239
238
  sessionKey?: string | undefined;
239
+ memories?: string | undefined;
240
240
  }>;
241
241
  type RecallRequest = z.infer<typeof recallRequestSchema>;
242
242
  type RecallExplainRequest = z.infer<typeof recallExplainRequestSchema>;