@jungjaehoon/mama-core 2.4.1 → 4.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 (378) hide show
  1. package/README.md +76 -239
  2. package/db/migrations/030-case-first-memory-substrate.sql +13 -98
  3. package/db/migrations/034-add-connector-event-scope-columns.sql +9 -13
  4. package/db/migrations/039-add-connector-event-operator-ingest-seq.sql +9 -95
  5. package/db/migrations/062-refresh-connector-event-sequences.sql +9 -113
  6. package/db/migrations/063-refresh-legacy-connector-event-updates.sql +9 -32
  7. package/db/migrations/067-add-connector-event-source-entity-id.sql +9 -13
  8. package/db/migrations/069-create-registry-nodes.sql +52 -0
  9. package/db/migrations/070-record-identity.sql +35 -0
  10. package/db/migrations/071-service-operation-origins.sql +187 -0
  11. package/db/migrations/072-observation-versions.sql +29 -0
  12. package/db/migrations/073-registry-corrections.sql +45 -0
  13. package/db/migrations/074-work-graph-ref-kinds.sql +39 -0
  14. package/db/migrations/075-agent-judgments.sql +58 -0
  15. package/db/migrations/076-scoped-checkpoint-bindings.sql +15 -0
  16. package/db/migrations/077-legacy-record-kind.sql +6 -0
  17. package/db/migrations/078-source-ingest-commands.sql +18 -0
  18. package/db/migrations/079-twin-edge-relations.sql +43 -0
  19. package/db/migrations/080-restore-duration-days.sql +7 -0
  20. package/db/migrations/081-mailbox.sql +61 -0
  21. package/db/migrations/082-commitments-row-id.sql +12 -0
  22. package/db/migrations/083-observation-is-the-evidence.sql +49 -0
  23. package/db/migrations/084-scope-kind-is-not-the-cores-to-list.sql +34 -0
  24. package/db/migrations/085-a-migration-has-a-source.sql +37 -0
  25. package/db/migrations/086-the-mailbox-is-generic.sql +110 -0
  26. package/db/migrations/087-mailbox-payload.sql +5 -0
  27. package/db/migrations/088-native-input-journal.sql +14 -0
  28. package/db/migrations/089-native-turn-receipt-lookup.sql +3 -0
  29. package/db/migrations/090-model-run-native-inputs.sql +29 -0
  30. package/db/migrations/091-native-turn-results.sql +11 -0
  31. package/db/migrations/092-restore-decision-fts.sql +34 -0
  32. package/db/migrations/093-native-turn-primary-kind.sql +14 -0
  33. package/db/migrations/094-commitment-run-provenance.sql +9 -0
  34. package/db/migrations/095-model-run-native-input-identity.sql +39 -0
  35. package/db/migrations/096-drop-connector-event-index-fts.sql +9 -0
  36. package/db/migrations/097-native-input-json-validity.sql +37 -0
  37. package/db/migrations/098-workflow-memory-kind.sql +105 -0
  38. package/db/migrations/099-commitment-revision-graph.sql +2 -0
  39. package/dist/action-contracts.d.ts +212 -0
  40. package/dist/action-contracts.js +10 -0
  41. package/dist/api/catalog.d.ts +118 -0
  42. package/dist/api/catalog.js +1756 -0
  43. package/dist/api/dispatch.d.ts +76 -0
  44. package/dist/api/dispatch.js +372 -0
  45. package/dist/canonicalize.d.ts +2 -2
  46. package/dist/canonicalize.js +3 -3
  47. package/dist/client/client.d.ts +33 -0
  48. package/dist/client/client.js +123 -0
  49. package/dist/client/ipc.d.ts +81 -0
  50. package/dist/client/ipc.js +314 -0
  51. package/dist/db-adapter/base-adapter.d.ts +6 -66
  52. package/dist/db-adapter/base-adapter.js +6 -6
  53. package/dist/db-adapter/index.d.ts +5 -5
  54. package/dist/db-adapter/index.js +2 -5
  55. package/dist/db-adapter/node-sqlite-adapter.d.ts +85 -15
  56. package/dist/db-adapter/node-sqlite-adapter.js +1985 -570
  57. package/dist/db-manager.d.ts +53 -97
  58. package/dist/db-manager.js +121 -603
  59. package/dist/embedding/embedder.d.ts +132 -0
  60. package/dist/embedding/embedder.js +299 -0
  61. package/dist/identity/principal-repository.d.ts +2 -2
  62. package/dist/index.d.ts +43 -58
  63. package/dist/index.js +97 -145
  64. package/dist/{context-compile/channel-grant.d.ts → knowledge/access.d.ts} +12 -17
  65. package/dist/knowledge/access.js +663 -0
  66. package/dist/knowledge/case-errors.d.ts +31 -0
  67. package/dist/knowledge/case-errors.js +40 -0
  68. package/dist/{cases/search-rollup.d.ts → knowledge/case-search-rollup.d.ts} +5 -4
  69. package/dist/{cases/search-rollup.js → knowledge/case-search-rollup.js} +6 -8
  70. package/dist/{cases/store.d.ts → knowledge/case-store.d.ts} +3 -6
  71. package/dist/{cases/store.js → knowledge/case-store.js} +7 -42
  72. package/dist/{cases/timeline-range.d.ts → knowledge/case-timeline-range.d.ts} +3 -3
  73. package/dist/{cases/timeline-range.js → knowledge/case-timeline-range.js} +47 -25
  74. package/dist/{cases/types.d.ts → knowledge/case-types.d.ts} +8 -2
  75. package/dist/{cases/types.js → knowledge/case-types.js} +1 -1
  76. package/dist/knowledge/commitment-revision-migration.d.ts +4 -0
  77. package/dist/knowledge/commitment-revision-migration.js +50 -0
  78. package/dist/knowledge/commitments.d.ts +192 -0
  79. package/dist/knowledge/commitments.js +386 -0
  80. package/dist/knowledge/decision-edges.d.ts +70 -0
  81. package/dist/knowledge/decision-edges.js +123 -0
  82. package/dist/{agent-graph/types.d.ts → knowledge/graph-query.d.ts} +80 -70
  83. package/dist/knowledge/graph-query.js +1585 -0
  84. package/dist/knowledge/identity.d.ts +16 -0
  85. package/dist/knowledge/identity.js +22 -0
  86. package/dist/knowledge/index.d.ts +47 -0
  87. package/dist/knowledge/index.js +90 -0
  88. package/dist/knowledge/judgment-edge.d.ts +6 -0
  89. package/dist/knowledge/judgment-edge.js +22 -0
  90. package/dist/knowledge/judgments.d.ts +118 -0
  91. package/dist/knowledge/judgments.js +802 -0
  92. package/dist/knowledge/observations.d.ts +160 -0
  93. package/dist/knowledge/observations.js +449 -0
  94. package/dist/knowledge/question-type.d.ts +34 -0
  95. package/dist/knowledge/question-type.js +70 -0
  96. package/dist/{search → knowledge}/ranker-features.js +1 -1
  97. package/dist/{search → knowledge}/search-quality.d.ts +0 -1
  98. package/dist/knowledge/search.d.ts +38 -0
  99. package/dist/knowledge/search.js +91 -0
  100. package/dist/knowledge/source-ingest.d.ts +65 -0
  101. package/dist/knowledge/source-ingest.js +174 -0
  102. package/dist/{edges/types.d.ts → knowledge/twin-edge-types.d.ts} +31 -4
  103. package/dist/{edges/types.js → knowledge/twin-edge-types.js} +13 -2
  104. package/dist/knowledge/work-dates.d.ts +49 -0
  105. package/dist/knowledge/work-dates.js +120 -0
  106. package/dist/mama-api.d.ts +114 -778
  107. package/dist/mama-api.js +313 -2461
  108. package/dist/memory/api.d.ts +264 -24
  109. package/dist/memory/api.js +1633 -843
  110. package/dist/memory/bootstrap-builder.d.ts +2 -1
  111. package/dist/memory/bootstrap-builder.js +5 -5
  112. package/dist/memory/channel-summary-state-store.d.ts +3 -2
  113. package/dist/memory/channel-summary-state-store.js +53 -51
  114. package/dist/memory/channel-summary-store.d.ts +5 -3
  115. package/dist/memory/channel-summary-store.js +3 -8
  116. package/dist/memory/dashboard-read.d.ts +46 -0
  117. package/dist/memory/dashboard-read.js +94 -0
  118. package/dist/memory/event-store.d.ts +3 -3
  119. package/dist/memory/event-store.js +3 -10
  120. package/dist/memory/finding-store.d.ts +3 -2
  121. package/dist/memory/finding-store.js +2 -7
  122. package/dist/memory/graph-read.d.ts +52 -0
  123. package/dist/memory/graph-read.js +130 -0
  124. package/dist/memory/judgment-types.d.ts +394 -0
  125. package/dist/memory/judgment-types.js +16 -0
  126. package/dist/memory/provenance-audit.d.ts +5 -2
  127. package/dist/memory/provenance-audit.js +8 -14
  128. package/dist/memory/provenance-live.d.ts +141 -0
  129. package/dist/memory/provenance-live.js +409 -0
  130. package/dist/memory/provenance-query.d.ts +5 -4
  131. package/dist/memory/provenance-query.js +21 -29
  132. package/dist/memory/provenance-resolver.d.ts +191 -0
  133. package/dist/memory/provenance-resolver.js +155 -0
  134. package/dist/memory/provenance.d.ts +1 -11
  135. package/dist/memory/provenance.js +2 -33
  136. package/dist/memory/recall-sanitize.d.ts +55 -0
  137. package/dist/memory/recall-sanitize.js +144 -0
  138. package/dist/memory/secret-filter.d.ts +32 -0
  139. package/dist/memory/secret-filter.js +126 -0
  140. package/dist/memory/truth-store.d.ts +2 -1
  141. package/dist/memory/truth-store.js +1 -4
  142. package/dist/memory/types.d.ts +74 -24
  143. package/dist/memory/types.js +75 -5
  144. package/dist/memory/write-adapters.d.ts +98 -0
  145. package/dist/memory/write-adapters.js +242 -0
  146. package/dist/operations/owner-action-effects.d.ts +53 -0
  147. package/dist/operations/owner-action-effects.js +96 -0
  148. package/dist/provenance/source-ref.d.ts +1 -1
  149. package/dist/provenance/source-ref.js +0 -2
  150. package/dist/registry/corrections.d.ts +31 -0
  151. package/dist/registry/corrections.js +332 -0
  152. package/dist/registry/record-identity.d.ts +49 -0
  153. package/dist/registry/record-identity.js +133 -0
  154. package/dist/registry/store.d.ts +101 -0
  155. package/dist/registry/store.js +395 -0
  156. package/dist/registry/types.d.ts +28 -0
  157. package/dist/registry/types.js +5 -0
  158. package/dist/relevance-scorer.js +2 -2
  159. package/dist/runtime/agent-event-bus.d.ts +50 -0
  160. package/dist/runtime/agent-event-bus.js +101 -0
  161. package/dist/runtime/drivers/claude-cli-wrapper.d.ts +152 -0
  162. package/dist/runtime/drivers/claude-cli-wrapper.js +375 -0
  163. package/dist/runtime/drivers/claude-effort.d.ts +4 -0
  164. package/dist/runtime/drivers/claude-effort.js +16 -0
  165. package/dist/runtime/drivers/cli-arg-redaction.d.ts +2 -0
  166. package/dist/runtime/drivers/cli-arg-redaction.js +18 -0
  167. package/dist/runtime/drivers/cli-secret-redaction.d.ts +17 -0
  168. package/dist/runtime/drivers/cli-secret-redaction.js +126 -0
  169. package/dist/runtime/drivers/codex-app-server-process.d.ts +277 -0
  170. package/dist/runtime/drivers/codex-app-server-process.js +2342 -0
  171. package/dist/runtime/drivers/codex-auxiliary-tools.d.ts +17 -0
  172. package/dist/runtime/drivers/codex-auxiliary-tools.js +267 -0
  173. package/dist/runtime/drivers/codex-home.d.ts +20 -0
  174. package/dist/runtime/drivers/codex-home.js +674 -0
  175. package/dist/runtime/drivers/codex-thread-registry.d.ts +63 -0
  176. package/dist/runtime/drivers/codex-thread-registry.js +433 -0
  177. package/dist/runtime/drivers/persistent-cli-adapter.d.ts +160 -0
  178. package/dist/runtime/drivers/persistent-cli-adapter.js +396 -0
  179. package/dist/runtime/drivers/persistent-cli-process.d.ts +425 -0
  180. package/dist/runtime/drivers/persistent-cli-process.js +1529 -0
  181. package/dist/runtime/drivers/types.d.ts +456 -0
  182. package/dist/runtime/drivers/types.js +110 -0
  183. package/dist/runtime/mailbox.d.ts +223 -0
  184. package/dist/runtime/mailbox.js +582 -0
  185. package/dist/runtime/model-run-store.d.ts +28 -0
  186. package/dist/{model-runs/store.js → runtime/model-run-store.js} +81 -41
  187. package/dist/{model-runs/types.d.ts → runtime/model-run-types.d.ts} +33 -4
  188. package/dist/{model-runs/types.js → runtime/model-run-types.js} +1 -1
  189. package/dist/runtime/native-effect-observer.d.ts +22 -0
  190. package/dist/runtime/native-effect-observer.js +103 -0
  191. package/dist/runtime/native-input-journal.d.ts +46 -0
  192. package/dist/runtime/native-input-journal.js +308 -0
  193. package/dist/runtime/native-prompt.d.ts +118 -0
  194. package/dist/runtime/native-prompt.js +496 -0
  195. package/dist/runtime/native-session.d.ts +10 -0
  196. package/dist/{agent-graph/index.js → runtime/native-session.js} +9 -6
  197. package/dist/runtime/native-tool-trace-observer.d.ts +5 -0
  198. package/dist/runtime/native-tool-trace-observer.js +65 -0
  199. package/dist/runtime/native-turn.d.ts +272 -0
  200. package/dist/runtime/native-turn.js +1041 -0
  201. package/dist/runtime/operations.d.ts +236 -0
  202. package/dist/runtime/operations.js +565 -0
  203. package/dist/runtime/post-tool-handler.d.ts +74 -0
  204. package/dist/runtime/post-tool-handler.js +137 -0
  205. package/dist/runtime/prompt-layers.d.ts +126 -0
  206. package/dist/runtime/prompt-layers.js +239 -0
  207. package/dist/runtime/runtime-process.d.ts +102 -0
  208. package/dist/runtime/runtime-process.js +206 -0
  209. package/dist/runtime/runtime.d.ts +278 -0
  210. package/dist/runtime/runtime.js +563 -0
  211. package/dist/runtime/session-pool.d.ts +176 -0
  212. package/dist/runtime/session-pool.js +369 -0
  213. package/dist/runtime/stimulus-payload.d.ts +5 -0
  214. package/dist/runtime/stimulus-payload.js +50 -0
  215. package/dist/runtime/subagent-bridge.d.ts +24 -0
  216. package/dist/{agent-graph/types.js → runtime/subagent-bridge.js} +1 -1
  217. package/dist/runtime/text-completion.d.ts +22 -0
  218. package/dist/{agent-situation/types.js → runtime/text-completion.js} +1 -1
  219. package/dist/runtime/token-estimator.d.ts +25 -0
  220. package/dist/runtime/token-estimator.js +75 -0
  221. package/dist/runtime/tool-trace-store.d.ts +22 -0
  222. package/dist/{model-runs → runtime}/tool-trace-store.js +46 -27
  223. package/dist/runtime/trace-summary.d.ts +5 -0
  224. package/dist/runtime/trace-summary.js +74 -0
  225. package/dist/runtime/turn-text.d.ts +23 -0
  226. package/dist/runtime/turn-text.js +41 -0
  227. package/dist/storage/database.d.ts +67 -0
  228. package/dist/storage/database.js +158 -0
  229. package/package.json +20 -34
  230. package/dist/agent-graph/alias-write.d.ts +0 -3
  231. package/dist/agent-graph/alias-write.js +0 -234
  232. package/dist/agent-graph/entity-resolve.d.ts +0 -3
  233. package/dist/agent-graph/entity-resolve.js +0 -271
  234. package/dist/agent-graph/errors.d.ts +0 -4
  235. package/dist/agent-graph/errors.js +0 -11
  236. package/dist/agent-graph/graph-query.d.ts +0 -5
  237. package/dist/agent-graph/graph-query.js +0 -360
  238. package/dist/agent-graph/index.d.ts +0 -6
  239. package/dist/agent-situation/builder.d.ts +0 -8
  240. package/dist/agent-situation/builder.js +0 -239
  241. package/dist/agent-situation/cache-key.d.ts +0 -4
  242. package/dist/agent-situation/cache-key.js +0 -64
  243. package/dist/agent-situation/index.d.ts +0 -7
  244. package/dist/agent-situation/index.js +0 -28
  245. package/dist/agent-situation/packet-store.d.ts +0 -27
  246. package/dist/agent-situation/packet-store.js +0 -228
  247. package/dist/agent-situation/ranking-policy.d.ts +0 -18
  248. package/dist/agent-situation/ranking-policy.js +0 -75
  249. package/dist/agent-situation/source-readers.d.ts +0 -52
  250. package/dist/agent-situation/source-readers.js +0 -300
  251. package/dist/agent-situation/types.d.ts +0 -195
  252. package/dist/cases/wiki-page-index.d.ts +0 -37
  253. package/dist/cases/wiki-page-index.js +0 -201
  254. package/dist/config-loader.d.ts +0 -68
  255. package/dist/config-loader.js +0 -239
  256. package/dist/connectors/event-index.d.ts +0 -24
  257. package/dist/connectors/event-index.js +0 -245
  258. package/dist/connectors/raw-query.d.ts +0 -40
  259. package/dist/connectors/raw-query.js +0 -412
  260. package/dist/connectors/types.d.ts +0 -117
  261. package/dist/connectors/types.js +0 -3
  262. package/dist/context-compile/boundary-defaults.d.ts +0 -12
  263. package/dist/context-compile/boundary-defaults.js +0 -105
  264. package/dist/context-compile/channel-grant.js +0 -66
  265. package/dist/context-compile/compiler-policy.d.ts +0 -39
  266. package/dist/context-compile/compiler-policy.js +0 -147
  267. package/dist/context-compile/compiler.d.ts +0 -18
  268. package/dist/context-compile/compiler.js +0 -404
  269. package/dist/context-compile/index.d.ts +0 -10
  270. package/dist/context-compile/index.js +0 -26
  271. package/dist/context-compile/packet-store.d.ts +0 -8
  272. package/dist/context-compile/packet-store.js +0 -239
  273. package/dist/context-compile/ref.d.ts +0 -7
  274. package/dist/context-compile/ref.js +0 -102
  275. package/dist/context-compile/source-readers.d.ts +0 -70
  276. package/dist/context-compile/source-readers.js +0 -840
  277. package/dist/context-compile/types.d.ts +0 -155
  278. package/dist/context-compile/types.js +0 -11
  279. package/dist/context-compile/visibility.d.ts +0 -21
  280. package/dist/context-compile/visibility.js +0 -224
  281. package/dist/decision-tracker.d.ts +0 -206
  282. package/dist/decision-tracker.js +0 -481
  283. package/dist/edges/ref-validation.d.ts +0 -7
  284. package/dist/edges/ref-validation.js +0 -321
  285. package/dist/edges/store.d.ts +0 -8
  286. package/dist/edges/store.js +0 -129
  287. package/dist/embedding-client.d.ts +0 -28
  288. package/dist/embedding-client.js +0 -53
  289. package/dist/embedding-server/index.d.ts +0 -67
  290. package/dist/embedding-server/index.js +0 -405
  291. package/dist/embedding-server/mobile/auth.d.ts +0 -44
  292. package/dist/embedding-server/mobile/auth.js +0 -150
  293. package/dist/embedding-server/mobile/daemon.d.ts +0 -129
  294. package/dist/embedding-server/mobile/daemon.js +0 -313
  295. package/dist/embedding-server/mobile/output-parser.d.ts +0 -115
  296. package/dist/embedding-server/mobile/output-parser.js +0 -241
  297. package/dist/embedding-server/mobile/session-api.d.ts +0 -57
  298. package/dist/embedding-server/mobile/session-api.js +0 -261
  299. package/dist/embedding-server/mobile/session-manager.d.ts +0 -138
  300. package/dist/embedding-server/mobile/session-manager.js +0 -378
  301. package/dist/embedding-server/mobile/websocket-handler.d.ts +0 -137
  302. package/dist/embedding-server/mobile/websocket-handler.js +0 -486
  303. package/dist/embeddings.d.ts +0 -68
  304. package/dist/embeddings.js +0 -244
  305. package/dist/entities/audit-metrics.d.ts +0 -68
  306. package/dist/entities/audit-metrics.js +0 -124
  307. package/dist/entities/candidate-generator.d.ts +0 -8
  308. package/dist/entities/candidate-generator.js +0 -24
  309. package/dist/entities/entity-linked-decision-counts.d.ts +0 -2
  310. package/dist/entities/entity-linked-decision-counts.js +0 -29
  311. package/dist/entities/entity-list.d.ts +0 -22
  312. package/dist/entities/entity-list.js +0 -3
  313. package/dist/entities/entity-orphan-list.d.ts +0 -17
  314. package/dist/entities/entity-orphan-list.js +0 -3
  315. package/dist/entities/entity-search.d.ts +0 -20
  316. package/dist/entities/entity-search.js +0 -3
  317. package/dist/entities/errors.d.ts +0 -55
  318. package/dist/entities/errors.js +0 -100
  319. package/dist/entities/lineage-store.d.ts +0 -28
  320. package/dist/entities/lineage-store.js +0 -204
  321. package/dist/entities/normalization.d.ts +0 -14
  322. package/dist/entities/normalization.js +0 -63
  323. package/dist/entities/policy-store.d.ts +0 -8
  324. package/dist/entities/policy-store.js +0 -75
  325. package/dist/entities/policy-types.d.ts +0 -72
  326. package/dist/entities/policy-types.js +0 -59
  327. package/dist/entities/projection.d.ts +0 -8
  328. package/dist/entities/projection.js +0 -82
  329. package/dist/entities/provenance-query.d.ts +0 -32
  330. package/dist/entities/provenance-query.js +0 -3
  331. package/dist/entities/read-identity.d.ts +0 -31
  332. package/dist/entities/read-identity.js +0 -264
  333. package/dist/entities/recall-bridge.d.ts +0 -5
  334. package/dist/entities/recall-bridge.js +0 -171
  335. package/dist/entities/resolution-engine.d.ts +0 -8
  336. package/dist/entities/resolution-engine.js +0 -3
  337. package/dist/entities/rollback-preview.d.ts +0 -35
  338. package/dist/entities/rollback-preview.js +0 -3
  339. package/dist/entities/source-locator.d.ts +0 -3
  340. package/dist/entities/source-locator.js +0 -32
  341. package/dist/entities/store.d.ts +0 -69
  342. package/dist/entities/store.js +0 -544
  343. package/dist/entities/types.d.ts +0 -166
  344. package/dist/entities/types.js +0 -30
  345. package/dist/memory/extraction-prompt.d.ts +0 -4
  346. package/dist/memory/extraction-prompt.js +0 -89
  347. package/dist/memory/scope-backfill.d.ts +0 -14
  348. package/dist/memory/scope-backfill.js +0 -3
  349. package/dist/memory/scope-store.d.ts +0 -4
  350. package/dist/memory/scope-store.js +0 -9
  351. package/dist/memory-store.d.ts +0 -87
  352. package/dist/memory-store.js +0 -78
  353. package/dist/model-runs/store.d.ts +0 -13
  354. package/dist/model-runs/tool-trace-store.d.ts +0 -8
  355. package/dist/notification-manager.d.ts +0 -7
  356. package/dist/notification-manager.js +0 -12
  357. package/dist/outcome-tracker.d.ts +0 -151
  358. package/dist/outcome-tracker.js +0 -271
  359. package/dist/query-intent.d.ts +0 -23
  360. package/dist/query-intent.js +0 -114
  361. package/dist/runtime/trusted-provenance.d.ts +0 -3
  362. package/dist/runtime/trusted-provenance.js +0 -6
  363. package/dist/search/question-type.d.ts +0 -5
  364. package/dist/search/question-type.js +0 -41
  365. package/dist/test-utils.d.ts +0 -80
  366. package/dist/test-utils.js +0 -218
  367. package/dist/tier-validator.d.ts +0 -43
  368. package/dist/tier-validator.js +0 -159
  369. package/dist/time-formatter.d.ts +0 -25
  370. package/dist/time-formatter.js +0 -93
  371. /package/dist/{search → knowledge}/feedback-store.d.ts +0 -0
  372. /package/dist/{search → knowledge}/feedback-store.js +0 -0
  373. /package/dist/{search → knowledge}/ranker-features.d.ts +0 -0
  374. /package/dist/{search → knowledge}/ranker-rescore.d.ts +0 -0
  375. /package/dist/{search → knowledge}/ranker-rescore.js +0 -0
  376. /package/dist/{search → knowledge}/ranker-trainer.d.ts +0 -0
  377. /package/dist/{search → knowledge}/ranker-trainer.js +0 -0
  378. /package/dist/{search → knowledge}/search-quality.js +0 -0
@@ -0,0 +1,152 @@
1
+ /**
2
+ * Claude CLI Subprocess Wrapper - ToS-Compliant Alternative to Pi Agent
3
+ *
4
+ * WHY THIS EXISTS:
5
+ * - Current Pi Agent uses OAuth token directly via API (ToS violation, ban risk)
6
+ * - Claude CLI is official Anthropic tool (ToS compliant)
7
+ * - Keeps $200/month subscription benefits vs $1000+/month API costs
8
+ *
9
+ * ARCHITECTURE:
10
+ * - Spawns `claude` CLI as subprocess
11
+ * - Communicates via stdin (prompts) / stdout (JSON responses)
12
+ * - Uses --output-format json for structured data
13
+ * - Session continuity via --session-id flag
14
+ *
15
+ * TRADEOFFS:
16
+ * + ✅ ToS compliant (official Claude tool)
17
+ * + ✅ Keeps subscription pricing
18
+ * + ✅ Real usage tracking (cost, tokens)
19
+ * - ⚠️ More complex than direct API
20
+ * - ⚠️ Requires claude CLI installed
21
+ * - ⚠️ Tool integration via MCP (future work)
22
+ */
23
+ import type { PromptCallbacks, PromptResult } from './types.js';
24
+ import { type ThinkingEffort } from './claude-effort.js';
25
+ export interface ClaudeCLIWrapperOptions {
26
+ /** The isolated workspace this CLI runs in; the product states where. */
27
+ /**
28
+ * Where this run keeps its files. Required: a driver does not know a product's
29
+ * directory name, and the default it used to compute spelled one out.
30
+ */
31
+ workspaceDir: string;
32
+ model?: string;
33
+ /** Thinking effort passed as --effort on models that accept it. */
34
+ effort?: ThinkingEffort;
35
+ sessionId?: string;
36
+ systemPrompt?: string;
37
+ mcpConfigPath?: string;
38
+ /**
39
+ * Skip permission prompts for tool execution
40
+ *
41
+ * @warning SECURITY RISK: Bypasses all permission checks.
42
+ * Only enable in trusted environments where agent actions are pre-approved.
43
+ */
44
+ dangerouslySkipPermissions?: boolean;
45
+ env?: Record<string, string>;
46
+ /** Complete inherited environment supplied by the consumer; env is applied afterward. */
47
+ processEnv?: NodeJS.ProcessEnv;
48
+ /** Noninteractive consumers use dontAsk with explicit permission rules. */
49
+ permissionMode?: 'default' | 'acceptEdits' | 'dontAsk' | 'plan';
50
+ /** If true, use GatewayToolExecutor instead of MCP (default: false) */
51
+ useGatewayTools?: boolean;
52
+ /** Request timeout in ms (default: 120000). Increase for complex/long tasks. */
53
+ requestTimeout?: number;
54
+ /** Override built-in tool set (--tools CLI flag). Use "" to disable all tools. */
55
+ tools?: string;
56
+ /** Override plugin directory (--plugin-dir CLI flag). Use empty dir to disable plugins. */
57
+ pluginDir?: string;
58
+ /** Structurally disallowed tools (--disallowedTools CLI flag) */
59
+ disallowedTools?: string[];
60
+ /** Structurally allowed tools (--allowedTools CLI flag) */
61
+ allowedTools?: string[];
62
+ }
63
+ export type { PromptCallbacks, PromptResult, ToolUseBlock } from './types.js';
64
+ /**
65
+ * ClaudeCLIWrapper - Wraps Claude CLI for programmatic use
66
+ *
67
+ * Usage:
68
+ * const wrapper = new ClaudeCLIWrapper({ workspaceDir: '/tmp/mama-test-workspace', sessionId: 'my-session' });
69
+ * const result = await wrapper.prompt('Hello, Claude!', {
70
+ * onDelta: (text) => console.log('Delta:', text)
71
+ * });
72
+ *
73
+ * Key Features:
74
+ * - Session continuity (multi-turn conversations)
75
+ * - Real-time streaming (--output-format json streams)
76
+ * - Usage tracking (tokens, cost)
77
+ * - ToS compliant (official CLI)
78
+ *
79
+ * IMPORTANT:
80
+ * - Requires `claude` CLI in PATH
81
+ * - Uses subscription credentials from ~/.claude/.credentials.json
82
+ * - Tools not yet supported (future: via MCP)
83
+ */
84
+ export declare class ClaudeCLIWrapper {
85
+ private sessionId;
86
+ private options;
87
+ private turnCount;
88
+ constructor(options: ClaudeCLIWrapperOptions);
89
+ /**
90
+ * Send a prompt to Claude CLI
91
+ *
92
+ * Workflow:
93
+ * 1. Spawn `claude -p "<prompt>" --output-format json`
94
+ * 2. Parse JSON output (type: result | error | delta)
95
+ * 3. Aggregate deltas for streaming
96
+ * 4. Return final result with usage stats
97
+ *
98
+ * @param content - Prompt text (images not yet supported)
99
+ * @param callbacks - Streaming callbacks
100
+ * @param options - Optional per-request overrides (model, etc.)
101
+ * @returns PromptResult with response and usage
102
+ */
103
+ prompt(content: string, callbacks?: PromptCallbacks, options?: {
104
+ model?: string;
105
+ resumeSession?: boolean;
106
+ }): Promise<PromptResult>;
107
+ /**
108
+ * Get current session ID
109
+ */
110
+ getSessionId(): string;
111
+ /**
112
+ * Create a new session (resets conversation history)
113
+ */
114
+ resetSession(): void;
115
+ /**
116
+ * Set session ID (for channel-specific conversations)
117
+ */
118
+ setSessionId(sessionId: string): void;
119
+ /**
120
+ * Set system prompt (updates options for next prompt)
121
+ */
122
+ setSystemPrompt(prompt: string): void;
123
+ /**
124
+ * Get current options (for debugging)
125
+ */
126
+ getOptions(): ClaudeCLIWrapperOptions;
127
+ }
128
+ /**
129
+ * Usage Example:
130
+ *
131
+ * const wrapper = new ClaudeCLIWrapper({ workspaceDir: '/tmp/mama-test-workspace', sessionId: 'discord-channel-123' });
132
+ *
133
+ * // First message
134
+ * const result1 = await wrapper.prompt('Hello, what is 2+2?', {
135
+ * onDelta: (text) => console.log('Streaming:', text)
136
+ * });
137
+ *
138
+ * console.log(result1.response); // "4"
139
+ * console.log(result1.usage.input_tokens); // 3
140
+ * console.log(result1.cost_usd); // 0.045
141
+ *
142
+ * // Follow-up (same session)
143
+ * const result2 = await wrapper.prompt('What about 3+3?');
144
+ * console.log(result2.response); // "6"
145
+ *
146
+ * // Cost Tracking Example:
147
+ * let totalCost = 0;
148
+ * const result = await wrapper.prompt('...');
149
+ * totalCost += result.cost_usd || 0;
150
+ * console.log(`Total spent: $${totalCost.toFixed(4)}`);
151
+ */
152
+ //# sourceMappingURL=claude-cli-wrapper.d.ts.map
@@ -0,0 +1,375 @@
1
+ "use strict";
2
+ /**
3
+ * Claude CLI Subprocess Wrapper - ToS-Compliant Alternative to Pi Agent
4
+ *
5
+ * WHY THIS EXISTS:
6
+ * - Current Pi Agent uses OAuth token directly via API (ToS violation, ban risk)
7
+ * - Claude CLI is official Anthropic tool (ToS compliant)
8
+ * - Keeps $200/month subscription benefits vs $1000+/month API costs
9
+ *
10
+ * ARCHITECTURE:
11
+ * - Spawns `claude` CLI as subprocess
12
+ * - Communicates via stdin (prompts) / stdout (JSON responses)
13
+ * - Uses --output-format json for structured data
14
+ * - Session continuity via --session-id flag
15
+ *
16
+ * TRADEOFFS:
17
+ * + ✅ ToS compliant (official Claude tool)
18
+ * + ✅ Keeps subscription pricing
19
+ * + ✅ Real usage tracking (cost, tokens)
20
+ * - ⚠️ More complex than direct API
21
+ * - ⚠️ Requires claude CLI installed
22
+ * - ⚠️ Tool integration via MCP (future work)
23
+ */
24
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
25
+ if (k2 === undefined) k2 = k;
26
+ var desc = Object.getOwnPropertyDescriptor(m, k);
27
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
28
+ desc = { enumerable: true, get: function() { return m[k]; } };
29
+ }
30
+ Object.defineProperty(o, k2, desc);
31
+ }) : (function(o, m, k, k2) {
32
+ if (k2 === undefined) k2 = k;
33
+ o[k2] = m[k];
34
+ }));
35
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
36
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
37
+ }) : function(o, v) {
38
+ o["default"] = v;
39
+ });
40
+ var __importStar = (this && this.__importStar) || (function () {
41
+ var ownKeys = function(o) {
42
+ ownKeys = Object.getOwnPropertyNames || function (o) {
43
+ var ar = [];
44
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
45
+ return ar;
46
+ };
47
+ return ownKeys(o);
48
+ };
49
+ return function (mod) {
50
+ if (mod && mod.__esModule) return mod;
51
+ var result = {};
52
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
53
+ __setModuleDefault(result, mod);
54
+ return result;
55
+ };
56
+ })();
57
+ var __importDefault = (this && this.__importDefault) || function (mod) {
58
+ return (mod && mod.__esModule) ? mod : { "default": mod };
59
+ };
60
+ Object.defineProperty(exports, "__esModule", { value: true });
61
+ exports.ClaudeCLIWrapper = void 0;
62
+ const child_process_1 = require("child_process");
63
+ const crypto_1 = require("crypto");
64
+ const fs_1 = require("fs");
65
+ const path_1 = __importDefault(require("path"));
66
+ const debugLogger = __importStar(require("@jungjaehoon/mama-core/debug-logger"));
67
+ const cli_secret_redaction_js_1 = require("./cli-secret-redaction.js");
68
+ const cli_arg_redaction_js_1 = require("./cli-arg-redaction.js");
69
+ const claude_effort_js_1 = require("./claude-effort.js");
70
+ const { DebugLogger } = debugLogger;
71
+ const logger = new DebugLogger('ClaudeCLI');
72
+ /**
73
+ * ClaudeCLIWrapper - Wraps Claude CLI for programmatic use
74
+ *
75
+ * Usage:
76
+ * const wrapper = new ClaudeCLIWrapper({ workspaceDir: '/tmp/mama-test-workspace', sessionId: 'my-session' });
77
+ * const result = await wrapper.prompt('Hello, Claude!', {
78
+ * onDelta: (text) => console.log('Delta:', text)
79
+ * });
80
+ *
81
+ * Key Features:
82
+ * - Session continuity (multi-turn conversations)
83
+ * - Real-time streaming (--output-format json streams)
84
+ * - Usage tracking (tokens, cost)
85
+ * - ToS compliant (official CLI)
86
+ *
87
+ * IMPORTANT:
88
+ * - Requires `claude` CLI in PATH
89
+ * - Uses subscription credentials from ~/.claude/.credentials.json
90
+ * - Tools not yet supported (future: via MCP)
91
+ */
92
+ class ClaudeCLIWrapper {
93
+ sessionId;
94
+ options;
95
+ turnCount = 0;
96
+ constructor(options) {
97
+ this.options = options;
98
+ this.sessionId = options.sessionId || (0, crypto_1.randomUUID)();
99
+ }
100
+ /**
101
+ * Send a prompt to Claude CLI
102
+ *
103
+ * Workflow:
104
+ * 1. Spawn `claude -p "<prompt>" --output-format json`
105
+ * 2. Parse JSON output (type: result | error | delta)
106
+ * 3. Aggregate deltas for streaming
107
+ * 4. Return final result with usage stats
108
+ *
109
+ * @param content - Prompt text (images not yet supported)
110
+ * @param callbacks - Streaming callbacks
111
+ * @param options - Optional per-request overrides (model, etc.)
112
+ * @returns PromptResult with response and usage
113
+ */
114
+ async prompt(content, callbacks, options) {
115
+ return new Promise((resolve, reject) => {
116
+ // Use stdin for large content to avoid E2BIG error (ARG_MAX exceeded)
117
+ const useStdin = content.length > 50000; // 50KB threshold
118
+ const args = useStdin
119
+ ? ['--output-format', 'json']
120
+ : ['-p', content, '--output-format', 'json'];
121
+ if (useStdin) {
122
+ console.log(`[ClaudeCLI] Using stdin mode (content: ${content.length} chars)`);
123
+ }
124
+ // Session persistence: keeps context across turns, avoids re-injecting system prompt
125
+ args.push('--session-id', this.sessionId);
126
+ // ⚠️ BLOCK GLOBAL SETTINGS — exclude 'user' to prevent loading ~/.claude/settings.json
127
+ // Prevents global plugins from enabledPlugins being injected every turn
128
+ args.push('--setting-sources', 'project,local');
129
+ console.log(`[ClaudeCLI] Session: ${this.sessionId}`);
130
+ // Add model flag - per-request override takes precedence
131
+ const model = options?.model || this.options.model;
132
+ if (model) {
133
+ args.push('--model', model);
134
+ }
135
+ args.push(...(0, claude_effort_js_1.claudeEffortArgs)(model, this.options.effort));
136
+ // System prompt: first turn only (session persistence keeps it across turns)
137
+ if (this.options.systemPrompt && this.turnCount === 0) {
138
+ args.push('--system-prompt', this.options.systemPrompt);
139
+ console.log(`[ClaudeCLI] System prompt injected (${this.options.systemPrompt.length} chars, first turn)`);
140
+ }
141
+ this.turnCount++;
142
+ // Hybrid mode: MCP + Gateway can both be enabled
143
+ if (this.options.mcpConfigPath) {
144
+ args.push('--mcp-config', this.options.mcpConfigPath);
145
+ args.push('--strict-mcp-config');
146
+ logger.debug('MCP enabled:', this.options.mcpConfigPath);
147
+ }
148
+ if (this.options.useGatewayTools) {
149
+ logger.debug('Gateway Tools mode enabled');
150
+ }
151
+ if (this.options.permissionMode) {
152
+ args.push('--permission-mode', this.options.permissionMode);
153
+ }
154
+ if (this.options.dangerouslySkipPermissions) {
155
+ args.push('--dangerously-skip-permissions');
156
+ }
157
+ if (this.options.allowedTools?.length) {
158
+ args.push('--allowedTools', ...this.options.allowedTools);
159
+ }
160
+ if (this.options.disallowedTools?.length) {
161
+ args.push('--disallowedTools', ...this.options.disallowedTools);
162
+ }
163
+ // ============================================================
164
+ // ⚠️ HOST AGENT ISOLATION — DO NOT MODIFY ⚠️
165
+ // ============================================================
166
+ // Sets cwd to the host's isolated workspace and creates a git boundary to
167
+ // Claude Code from traversing up to ~/CLAUDE.md and other parent configs.
168
+ // File access is controlled separately via --add-dir and --dangerously-skip-permissions.
169
+ // Removing this causes global settings to be re-injected every turn, wasting tokens.
170
+ // ============================================================
171
+ const mamaWorkspace = this.options.workspaceDir;
172
+ if (!(0, fs_1.existsSync)(mamaWorkspace)) {
173
+ (0, fs_1.mkdirSync)(mamaWorkspace, { recursive: true });
174
+ }
175
+ const gitDir = path_1.default.join(mamaWorkspace, '.git');
176
+ if (!(0, fs_1.existsSync)(gitDir)) {
177
+ (0, fs_1.mkdirSync)(gitDir, { recursive: true });
178
+ }
179
+ const headFile = path_1.default.join(gitDir, 'HEAD');
180
+ if (!(0, fs_1.existsSync)(headFile)) {
181
+ (0, fs_1.writeFileSync)(headFile, 'ref: refs/heads/main\n');
182
+ }
183
+ args.push('--add-dir', mamaWorkspace);
184
+ logger.debug(`Spawning: claude ${formatClaudeArgsForLog(args).join(' ')}`);
185
+ logger.debug(`Args count: ${args.length}`);
186
+ let stderr = '';
187
+ const stderrRedactor = new cli_secret_redaction_js_1.SecretRedactingStream((0, cli_secret_redaction_js_1.claudeConfiguredSecrets)(this.options.mcpConfigPath, {
188
+ ...(this.options.processEnv ?? process.env),
189
+ ...this.options.env,
190
+ }), (safe) => {
191
+ stderr = `${stderr}${safe}`.slice(-16_000);
192
+ if (safe.trim())
193
+ console.error(`[ClaudeCLI:stderr] ${safe.trim()}`);
194
+ });
195
+ const claude = (0, child_process_1.spawn)('claude', args, {
196
+ stdio: ['pipe', 'pipe', 'pipe'],
197
+ // ⚠️ NEVER spawn in the user's home directory — it breaks agent isolation.
198
+ cwd: mamaWorkspace,
199
+ env: { ...(this.options.processEnv ?? process.env), ...this.options.env },
200
+ });
201
+ // Handle stdin: write content if using stdin mode, otherwise close immediately
202
+ if (useStdin) {
203
+ // Write content to stdin with backpressure handling
204
+ // For large content (150KB+), synchronous write can block due to buffer pressure
205
+ // Solution: check write() return value and wait for 'drain' if needed
206
+ const writeContent = () => {
207
+ const canContinue = claude.stdin.write(content);
208
+ if (canContinue) {
209
+ // Buffer had space, content written, close stdin
210
+ claude.stdin.end();
211
+ console.log(`[ClaudeCLI] Content written to stdin (immediate)`);
212
+ }
213
+ else {
214
+ // Buffer was full, wait for drain before closing
215
+ console.log(`[ClaudeCLI] Stdin buffer full, waiting for drain...`);
216
+ claude.stdin.once('drain', () => {
217
+ claude.stdin.end();
218
+ console.log(`[ClaudeCLI] Content written to stdin (after drain)`);
219
+ });
220
+ }
221
+ };
222
+ // Handle stdin errors to prevent unhandled exceptions
223
+ claude.stdin.on('error', (err) => {
224
+ console.error(`[ClaudeCLI] stdin error:`, err.message);
225
+ // Don't reject here - let the close handler deal with it
226
+ });
227
+ writeContent();
228
+ }
229
+ else {
230
+ // Close stdin immediately - we use -p flag, not stdin input
231
+ // Without this, Claude CLI hangs waiting for stdin input
232
+ claude.stdin.end();
233
+ }
234
+ let stdout = '';
235
+ let lastDelta = '';
236
+ const toolUseBlocks = [];
237
+ claude.stderr.on('data', (chunk) => stderrRedactor.write(chunk));
238
+ claude.stdout.on('data', (chunk) => {
239
+ stdout += chunk.toString();
240
+ const lines = stdout.split('\n');
241
+ for (const line of lines) {
242
+ if (!line.trim())
243
+ continue;
244
+ try {
245
+ const event = JSON.parse(line);
246
+ if (event.type === 'delta' && event.delta) {
247
+ lastDelta += event.delta;
248
+ callbacks?.onDelta?.(lastDelta);
249
+ }
250
+ else if (event.type === 'tool_use') {
251
+ // Collect tool_use blocks for GatewayToolExecutor
252
+ toolUseBlocks.push({
253
+ type: 'tool_use',
254
+ id: event.id || `tool_${(0, crypto_1.randomUUID)()}`,
255
+ name: event.name,
256
+ input: event.input || {},
257
+ });
258
+ callbacks?.onToolUse?.(event.name, event.input);
259
+ console.log(`[ClaudeCLI] Tool use detected: ${event.name}`);
260
+ }
261
+ }
262
+ catch {
263
+ // Not JSON yet, accumulate more
264
+ }
265
+ }
266
+ });
267
+ claude.on('close', (code) => {
268
+ stderrRedactor.end();
269
+ if (code !== 0) {
270
+ const error = new Error(`Claude CLI exited with code ${code}: ${stderr}`);
271
+ callbacks?.onError?.(error);
272
+ reject(error);
273
+ return;
274
+ }
275
+ try {
276
+ // Parse final JSON output
277
+ const result = JSON.parse(stdout.trim());
278
+ if (result.type === 'result' && result.subtype === 'success') {
279
+ const promptResult = {
280
+ response: result.result || '',
281
+ session_id: result.session_id || this.sessionId,
282
+ cost_usd: result.total_cost_usd,
283
+ usage: {
284
+ input_tokens: result.usage?.input_tokens || 0,
285
+ output_tokens: result.usage?.output_tokens || 0,
286
+ cache_creation_input_tokens: result.usage?.cache_creation_input_tokens,
287
+ cache_read_input_tokens: result.usage?.cache_read_input_tokens,
288
+ },
289
+ toolUseBlocks: toolUseBlocks.length > 0 ? toolUseBlocks : undefined,
290
+ hasToolUse: toolUseBlocks.length > 0,
291
+ };
292
+ if (toolUseBlocks.length > 0) {
293
+ console.log(`[ClaudeCLI] Returning ${toolUseBlocks.length} tool_use blocks`);
294
+ }
295
+ callbacks?.onFinal?.({ content: promptResult.response, toolUseBlocks });
296
+ resolve(promptResult);
297
+ }
298
+ else {
299
+ throw new Error(`Unexpected result type: ${result.type}`);
300
+ }
301
+ }
302
+ catch (parseError) {
303
+ const error = new Error(`Failed to parse Claude CLI output: ${parseError}`);
304
+ callbacks?.onError?.(error);
305
+ reject(error);
306
+ }
307
+ });
308
+ claude.on('error', (error) => {
309
+ callbacks?.onError?.(error);
310
+ reject(error);
311
+ });
312
+ });
313
+ }
314
+ /**
315
+ * Get current session ID
316
+ */
317
+ getSessionId() {
318
+ return this.sessionId;
319
+ }
320
+ /**
321
+ * Create a new session (resets conversation history)
322
+ */
323
+ resetSession() {
324
+ this.sessionId = (0, crypto_1.randomUUID)();
325
+ this.turnCount = 0; // Reset so system prompt is injected on next turn
326
+ }
327
+ /**
328
+ * Set session ID (for channel-specific conversations)
329
+ */
330
+ setSessionId(sessionId) {
331
+ this.sessionId = sessionId;
332
+ this.turnCount = 0; // Reset so system prompt is injected on next turn
333
+ }
334
+ /**
335
+ * Set system prompt (updates options for next prompt)
336
+ */
337
+ setSystemPrompt(prompt) {
338
+ this.options.systemPrompt = prompt;
339
+ }
340
+ /**
341
+ * Get current options (for debugging)
342
+ */
343
+ getOptions() {
344
+ return { ...this.options };
345
+ }
346
+ }
347
+ exports.ClaudeCLIWrapper = ClaudeCLIWrapper;
348
+ function formatClaudeArgsForLog(args) {
349
+ return (0, cli_arg_redaction_js_1.formatCliArgsForLog)(args);
350
+ }
351
+ /**
352
+ * Usage Example:
353
+ *
354
+ * const wrapper = new ClaudeCLIWrapper({ workspaceDir: '/tmp/mama-test-workspace', sessionId: 'discord-channel-123' });
355
+ *
356
+ * // First message
357
+ * const result1 = await wrapper.prompt('Hello, what is 2+2?', {
358
+ * onDelta: (text) => console.log('Streaming:', text)
359
+ * });
360
+ *
361
+ * console.log(result1.response); // "4"
362
+ * console.log(result1.usage.input_tokens); // 3
363
+ * console.log(result1.cost_usd); // 0.045
364
+ *
365
+ * // Follow-up (same session)
366
+ * const result2 = await wrapper.prompt('What about 3+3?');
367
+ * console.log(result2.response); // "6"
368
+ *
369
+ * // Cost Tracking Example:
370
+ * let totalCost = 0;
371
+ * const result = await wrapper.prompt('...');
372
+ * totalCost += result.cost_usd || 0;
373
+ * console.log(`Total spent: $${totalCost.toFixed(4)}`);
374
+ */
375
+ //# sourceMappingURL=claude-cli-wrapper.js.map
@@ -0,0 +1,4 @@
1
+ export type ThinkingEffort = 'low' | 'medium' | 'high' | 'xhigh' | 'max';
2
+ /** The `--effort` arguments for a Claude model; none when the model takes no effort setting. */
3
+ export declare function claudeEffortArgs(model: string | undefined, effort: ThinkingEffort | undefined): string[];
4
+ //# sourceMappingURL=claude-effort.d.ts.map
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.claudeEffortArgs = claudeEffortArgs;
4
+ /** The `--effort` arguments for a Claude model; none when the model takes no effort setting. */
5
+ function claudeEffortArgs(model, effort) {
6
+ // --effort: Opus/Sonnet 4.6, Opus 4.7/4.8, and the Claude 5 family (Opus, Sonnet, Fable, Mythos).
7
+ if (!model ||
8
+ !effort ||
9
+ !/^claude-(?:(?:opus|sonnet)-4-6|opus-4-[78]|(?:opus|sonnet|fable|mythos)-5)(?:\b|-)/.test(model)) {
10
+ return [];
11
+ }
12
+ // xhigh arrived with Opus 4.7; the 4.6 models take low through max.
13
+ const accepted = effort === 'xhigh' && /^claude-(?:opus|sonnet)-4-6(?:\b|-)/.test(model) ? 'high' : effort;
14
+ return ['--effort', accepted];
15
+ }
16
+ //# sourceMappingURL=claude-effort.js.map
@@ -0,0 +1,2 @@
1
+ export declare function formatCliArgsForLog(args: readonly string[]): string[];
2
+ //# sourceMappingURL=cli-arg-redaction.d.ts.map
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.formatCliArgsForLog = formatCliArgsForLog;
4
+ const SENSITIVE_PROMPT_ARGS = new Set(['--system-prompt', '--append-system-prompt']);
5
+ function formatCliArgsForLog(args) {
6
+ const redacted = [];
7
+ for (let i = 0; i < args.length; i++) {
8
+ const arg = args[i];
9
+ redacted.push(arg);
10
+ if (SENSITIVE_PROMPT_ARGS.has(arg) && i + 1 < args.length) {
11
+ const value = args[i + 1] ?? '';
12
+ redacted.push(`[redacted ${value.length} chars]`);
13
+ i++;
14
+ }
15
+ }
16
+ return redacted;
17
+ }
18
+ //# sourceMappingURL=cli-arg-redaction.js.map
@@ -0,0 +1,17 @@
1
+ import type { CodexAppServerLaunchConfig } from './codex-home.js';
2
+ export declare function configuredSecretValues(launch: CodexAppServerLaunchConfig): Set<string>;
3
+ /** Exact configured values, never an entropy/token-length guess. */
4
+ export declare function redactConfiguredSecrets(value: string, secrets: ReadonlySet<string>): string;
5
+ export declare function claudeConfiguredSecrets(configPath: string | undefined, env: NodeJS.ProcessEnv): Set<string>;
6
+ /** Keep the possible credential suffix until the next chunk (including UTF-8 boundaries). */
7
+ export declare class SecretRedactingStream {
8
+ private readonly secrets;
9
+ private readonly emit;
10
+ private pending;
11
+ private readonly decoder;
12
+ private readonly overlap;
13
+ constructor(secrets: ReadonlySet<string>, emit: (safe: string) => void);
14
+ write(chunk: Buffer): void;
15
+ end(): void;
16
+ }
17
+ //# sourceMappingURL=cli-secret-redaction.d.ts.map