@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
@@ -1,151 +0,0 @@
1
- /**
2
- * MAMA (Memory-Augmented MCP Architecture) - Outcome Tracker
3
- *
4
- * Track decision outcomes from user feedback
5
- * Tasks: 4.1-4.8 (Failure/success indicators, UserPromptSubmit analysis, outcome marking)
6
- * AC #3: Failure tracking (user feedback → outcome marked, failure_reason extracted, duration calculated)
7
- *
8
- * @module outcome-tracker
9
- * @version 1.0
10
- * @date 2025-11-14
11
- */
12
- /**
13
- * Decision record from database
14
- */
15
- interface DecisionRecord {
16
- id: string;
17
- topic: string;
18
- decision: string;
19
- outcome?: string | null;
20
- confidence?: number;
21
- created_at: number;
22
- }
23
- /**
24
- * Hook context from Claude Code
25
- */
26
- export interface HookContext {
27
- user_message?: string;
28
- session_id?: string;
29
- }
30
- /**
31
- * Failure indicators
32
- * Task 4.2: Define failure indicators
33
- */
34
- export declare const FAILURE_INDICATORS: RegExp[];
35
- /**
36
- * Success indicators
37
- * Task 4.3: Define success indicators
38
- */
39
- export declare const SUCCESS_INDICATORS: RegExp[];
40
- /**
41
- * Partial success indicators
42
- * Task 4.3: Define partial success indicators
43
- */
44
- export declare const PARTIAL_INDICATORS: RegExp[];
45
- /**
46
- * Recent decision time window (1 hour in milliseconds)
47
- * Task 4.5: Only mark outcome if decision is recent (< 1 hour)
48
- */
49
- export declare const RECENT_WINDOW_MS: number;
50
- /**
51
- * Check if message matches failure indicators
52
- *
53
- * Task 4.2: Match failure patterns
54
- *
55
- * @param message - User message
56
- * @returns True if failure detected
57
- */
58
- export declare function matchesFailureIndicators(message: string): boolean;
59
- /**
60
- * Check if message matches success indicators
61
- *
62
- * Task 4.3: Match success patterns
63
- *
64
- * @param message - User message
65
- * @returns True if success detected
66
- */
67
- export declare function matchesSuccessIndicators(message: string): boolean;
68
- /**
69
- * Check if message matches partial success indicators
70
- *
71
- * Task 4.3: Match partial success patterns
72
- *
73
- * @param message - User message
74
- * @returns True if partial success detected
75
- */
76
- export declare function matchesPartialIndicators(message: string): boolean;
77
- /**
78
- * Outcome type from analysis
79
- */
80
- export type OutcomeType = 'FAILED' | 'SUCCESS' | 'PARTIAL';
81
- /**
82
- * Determine outcome from user message
83
- *
84
- * Task 4.4, 4.5: Analyze user message for indicators
85
- * AC #3: Failure tracking from user feedback
86
- *
87
- * @param message - User message
88
- * @returns Outcome type ('FAILED', 'SUCCESS', 'PARTIAL') or null
89
- */
90
- export declare function analyzeOutcome(message: string): OutcomeType | null;
91
- /**
92
- * Extract failure reason from user message
93
- *
94
- * Task 4.6: Extract failure_reason from user message
95
- * AC #3: failure_reason extracted
96
- *
97
- * Simple extraction: First sentence or first 200 characters
98
- * Future: Use LLM for better extraction
99
- *
100
- * @param message - User message
101
- * @param outcome - Outcome type
102
- * @returns Failure reason
103
- */
104
- export declare function extractFailureReason(message: string, outcome: OutcomeType | null): string | null;
105
- /**
106
- * Get recent decision (within 1 hour)
107
- *
108
- * Task 4.5: Find recent decision (< 1 hour)
109
- * AC #3: Recent decision (< 1 hour) marked
110
- *
111
- * @param sessionId - Session ID
112
- * @returns Recent decision or null
113
- */
114
- export declare function getRecentDecision(sessionId: string): DecisionRecord | null;
115
- /**
116
- * Calculate duration in days
117
- *
118
- * Task 4.7: Calculate duration_days
119
- * AC #3: duration_days calculated
120
- *
121
- * @param createdAt - Decision created timestamp
122
- * @returns Duration in days
123
- */
124
- export declare function calculateDurationDays(createdAt: number): number;
125
- /**
126
- * Get evidence impact for outcome
127
- *
128
- * Task 6: Confidence evolution - Calculate impact based on outcome
129
- * AC #5: Confidence score calculated based on history
130
- *
131
- * @param outcome - Outcome type ('FAILED', 'SUCCESS', 'PARTIAL')
132
- * @param durationDays - Duration in days
133
- * @returns Impact on confidence
134
- */
135
- export declare function getEvidenceImpact(outcome: OutcomeType, durationDays: number): number;
136
- /**
137
- * Mark decision outcome
138
- *
139
- * Task 4.8: Update decision row with outcome, failure_reason, duration_days
140
- * Task 6.5: Update confidence when outcome is marked
141
- * AC #3: Outcome marked with failure_reason and duration_days
142
- * AC #5: Confidence evolution
143
- *
144
- * @param decisionId - Decision ID
145
- * @param outcome - Outcome type ('FAILED', 'SUCCESS', 'PARTIAL')
146
- * @param failureReason - Failure reason (if outcome=FAILED)
147
- * @param durationDays - Duration in days
148
- */
149
- export declare function markOutcome(decisionId: string, outcome: OutcomeType, failureReason: string | null, durationDays: number): Promise<void>;
150
- export {};
151
- //# sourceMappingURL=outcome-tracker.d.ts.map
@@ -1,271 +0,0 @@
1
- "use strict";
2
- /**
3
- * MAMA (Memory-Augmented MCP Architecture) - Outcome Tracker
4
- *
5
- * Track decision outcomes from user feedback
6
- * Tasks: 4.1-4.8 (Failure/success indicators, UserPromptSubmit analysis, outcome marking)
7
- * AC #3: Failure tracking (user feedback → outcome marked, failure_reason extracted, duration calculated)
8
- *
9
- * @module outcome-tracker
10
- * @version 1.0
11
- * @date 2025-11-14
12
- */
13
- Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.RECENT_WINDOW_MS = exports.PARTIAL_INDICATORS = exports.SUCCESS_INDICATORS = exports.FAILURE_INDICATORS = void 0;
15
- exports.matchesFailureIndicators = matchesFailureIndicators;
16
- exports.matchesSuccessIndicators = matchesSuccessIndicators;
17
- exports.matchesPartialIndicators = matchesPartialIndicators;
18
- exports.analyzeOutcome = analyzeOutcome;
19
- exports.extractFailureReason = extractFailureReason;
20
- exports.getRecentDecision = getRecentDecision;
21
- exports.calculateDurationDays = calculateDurationDays;
22
- exports.getEvidenceImpact = getEvidenceImpact;
23
- exports.markOutcome = markOutcome;
24
- const debug_logger_js_1 = require("./debug-logger.js");
25
- const memory_store_js_1 = require("./memory-store.js");
26
- const decision_tracker_js_1 = require("./decision-tracker.js");
27
- /**
28
- * Failure indicators
29
- * Task 4.2: Define failure indicators
30
- */
31
- exports.FAILURE_INDICATORS = [
32
- /doesn't\s*work/i,
33
- /failed/i,
34
- /error/i,
35
- /slow/i,
36
- /broken/i,
37
- /bug/i,
38
- /wrong/i,
39
- /not\s*working/i,
40
- ];
41
- /**
42
- * Success indicators
43
- * Task 4.3: Define success indicators
44
- */
45
- exports.SUCCESS_INDICATORS = [
46
- /works/i,
47
- /perfect/i,
48
- /great/i,
49
- /success/i,
50
- /excellent/i,
51
- /fast/i,
52
- /good/i,
53
- ];
54
- /**
55
- * Partial success indicators
56
- * Task 4.3: Define partial success indicators
57
- */
58
- exports.PARTIAL_INDICATORS = [/okay/i, /acceptable/i, /improved/i, /better/i];
59
- /**
60
- * Recent decision time window (1 hour in milliseconds)
61
- * Task 4.5: Only mark outcome if decision is recent (< 1 hour)
62
- */
63
- exports.RECENT_WINDOW_MS = 60 * 60 * 1000; // 1 hour
64
- /**
65
- * Check if message matches failure indicators
66
- *
67
- * Task 4.2: Match failure patterns
68
- *
69
- * @param message - User message
70
- * @returns True if failure detected
71
- */
72
- function matchesFailureIndicators(message) {
73
- return exports.FAILURE_INDICATORS.some((pattern) => pattern.test(message));
74
- }
75
- /**
76
- * Check if message matches success indicators
77
- *
78
- * Task 4.3: Match success patterns
79
- *
80
- * @param message - User message
81
- * @returns True if success detected
82
- */
83
- function matchesSuccessIndicators(message) {
84
- return exports.SUCCESS_INDICATORS.some((pattern) => pattern.test(message));
85
- }
86
- /**
87
- * Check if message matches partial success indicators
88
- *
89
- * Task 4.3: Match partial success patterns
90
- *
91
- * @param message - User message
92
- * @returns True if partial success detected
93
- */
94
- function matchesPartialIndicators(message) {
95
- return exports.PARTIAL_INDICATORS.some((pattern) => pattern.test(message));
96
- }
97
- /**
98
- * Determine outcome from user message
99
- *
100
- * Task 4.4, 4.5: Analyze user message for indicators
101
- * AC #3: Failure tracking from user feedback
102
- *
103
- * @param message - User message
104
- * @returns Outcome type ('FAILED', 'SUCCESS', 'PARTIAL') or null
105
- */
106
- function analyzeOutcome(message) {
107
- if (matchesFailureIndicators(message)) {
108
- return 'FAILED';
109
- }
110
- if (matchesSuccessIndicators(message)) {
111
- return 'SUCCESS';
112
- }
113
- if (matchesPartialIndicators(message)) {
114
- return 'PARTIAL';
115
- }
116
- return null; // No clear outcome
117
- }
118
- /**
119
- * Extract failure reason from user message
120
- *
121
- * Task 4.6: Extract failure_reason from user message
122
- * AC #3: failure_reason extracted
123
- *
124
- * Simple extraction: First sentence or first 200 characters
125
- * Future: Use LLM for better extraction
126
- *
127
- * @param message - User message
128
- * @param outcome - Outcome type
129
- * @returns Failure reason
130
- */
131
- function extractFailureReason(message, outcome) {
132
- if (outcome !== 'FAILED') {
133
- return null;
134
- }
135
- // Extract first sentence
136
- const firstSentence = message.split(/[.!?]/)[0].trim();
137
- // Limit to 200 characters
138
- const reason = firstSentence.substring(0, 200);
139
- return reason || 'User indicated failure';
140
- }
141
- /**
142
- * Get recent decision (within 1 hour)
143
- *
144
- * Task 4.5: Find recent decision (< 1 hour)
145
- * AC #3: Recent decision (< 1 hour) marked
146
- *
147
- * @param sessionId - Session ID
148
- * @returns Recent decision or null
149
- */
150
- function getRecentDecision(sessionId) {
151
- const db = (0, memory_store_js_1.getDB)();
152
- try {
153
- const now = Date.now();
154
- const cutoffTime = now - exports.RECENT_WINDOW_MS;
155
- const recent = db
156
- .prepare(`
157
- SELECT * FROM decisions
158
- WHERE session_id = ?
159
- AND outcome IS NULL
160
- AND created_at > ?
161
- ORDER BY created_at DESC
162
- LIMIT 1
163
- `)
164
- .get(sessionId, cutoffTime);
165
- return recent || null;
166
- }
167
- catch (error) {
168
- const message = error instanceof Error ? error.message : String(error);
169
- throw new Error(`Failed to query recent decision: ${message}`);
170
- }
171
- }
172
- /**
173
- * Calculate duration in days
174
- *
175
- * Task 4.7: Calculate duration_days
176
- * AC #3: duration_days calculated
177
- *
178
- * @param createdAt - Decision created timestamp
179
- * @returns Duration in days
180
- */
181
- function calculateDurationDays(createdAt) {
182
- const now = Date.now();
183
- const durationMs = now - createdAt;
184
- const durationDays = durationMs / (1000 * 60 * 60 * 24);
185
- // Round to 2 decimal places
186
- return Math.round(durationDays * 100) / 100;
187
- }
188
- /**
189
- * Get evidence impact for outcome
190
- *
191
- * Task 6: Confidence evolution - Calculate impact based on outcome
192
- * AC #5: Confidence score calculated based on history
193
- *
194
- * @param outcome - Outcome type ('FAILED', 'SUCCESS', 'PARTIAL')
195
- * @param durationDays - Duration in days
196
- * @returns Impact on confidence
197
- */
198
- function getEvidenceImpact(outcome, durationDays) {
199
- // Task 6.3: Define evidence impacts
200
- let impact = 0;
201
- switch (outcome) {
202
- case 'SUCCESS':
203
- impact = 0.2; // +0.2 for success
204
- break;
205
- case 'FAILED':
206
- impact = -0.3; // -0.3 for failure
207
- break;
208
- case 'PARTIAL':
209
- impact = 0.1; // +0.1 for partial success
210
- break;
211
- }
212
- // Task 6.3: Temporal stability bonus (30+ days)
213
- if (outcome === 'SUCCESS' && durationDays >= 30) {
214
- impact += 0.1; // +0.1 for temporal stability
215
- }
216
- return impact;
217
- }
218
- /**
219
- * Mark decision outcome
220
- *
221
- * Task 4.8: Update decision row with outcome, failure_reason, duration_days
222
- * Task 6.5: Update confidence when outcome is marked
223
- * AC #3: Outcome marked with failure_reason and duration_days
224
- * AC #5: Confidence evolution
225
- *
226
- * @param decisionId - Decision ID
227
- * @param outcome - Outcome type ('FAILED', 'SUCCESS', 'PARTIAL')
228
- * @param failureReason - Failure reason (if outcome=FAILED)
229
- * @param durationDays - Duration in days
230
- */
231
- async function markOutcome(decisionId, outcome, failureReason, durationDays) {
232
- try {
233
- // Get current decision to read confidence
234
- const db = (0, memory_store_js_1.getDB)();
235
- const decision = db.prepare('SELECT * FROM decisions WHERE id = ?').get(decisionId);
236
- if (!decision) {
237
- throw new Error(`Decision not found: ${decisionId}`);
238
- }
239
- // Guard against double-marking
240
- if (decision.outcome) {
241
- (0, debug_logger_js_1.info)(`[MAMA] Outcome already set for ${decisionId}: ${decision.outcome}`);
242
- return;
243
- }
244
- // Task 6.5: Calculate new confidence
245
- const evidenceImpact = getEvidenceImpact(outcome, durationDays);
246
- // Map OutcomeType to EvidenceItem.type (FAILED → failure, not 'failed')
247
- const outcomeToEvidenceType = {
248
- SUCCESS: 'success',
249
- FAILED: 'failure',
250
- PARTIAL: 'partial',
251
- };
252
- const evidence = [
253
- { type: outcomeToEvidenceType[outcome], impact: evidenceImpact },
254
- ];
255
- const prevConfidence = Number(decision.confidence ?? 0);
256
- const newConfidence = (0, decision_tracker_js_1.updateConfidence)(prevConfidence, evidence);
257
- // Update decision with outcome and new confidence
258
- await (0, memory_store_js_1.updateDecisionOutcome)(decisionId, {
259
- outcome,
260
- failure_reason: failureReason,
261
- duration_days: durationDays,
262
- confidence: newConfidence,
263
- });
264
- (0, debug_logger_js_1.info)(`[MAMA] Confidence updated: ${prevConfidence.toFixed(2)} → ${newConfidence.toFixed(2)} (${outcome})`);
265
- }
266
- catch (error) {
267
- const message = error instanceof Error ? error.message : String(error);
268
- throw new Error(`Failed to mark outcome: ${message}`);
269
- }
270
- }
271
- //# sourceMappingURL=outcome-tracker.js.map
@@ -1,23 +0,0 @@
1
- /**
2
- * MAMA (Memory-Augmented MCP Architecture) - Query Intent Analysis
3
- *
4
- * Analyzes user queries to detect decision-related intent using EXAONE 3.5
5
- * Tasks: 2.1-2.8 (LLM intent analysis with fallback chain)
6
- *
7
- * @module query-intent
8
- */
9
- export interface IntentResult {
10
- involves_decision: boolean;
11
- topic: string | null;
12
- confidence: number;
13
- reasoning: string;
14
- }
15
- export interface AnalyzeOptions {
16
- timeout?: number;
17
- threshold?: number;
18
- }
19
- /**
20
- * Analyze user message for decision-related intent
21
- */
22
- export declare function analyzeIntent(userMessage: string, options?: AnalyzeOptions): Promise<IntentResult>;
23
- //# sourceMappingURL=query-intent.d.ts.map
@@ -1,114 +0,0 @@
1
- "use strict";
2
- /**
3
- * MAMA (Memory-Augmented MCP Architecture) - Query Intent Analysis
4
- *
5
- * Analyzes user queries to detect decision-related intent using EXAONE 3.5
6
- * Tasks: 2.1-2.8 (LLM intent analysis with fallback chain)
7
- *
8
- * @module query-intent
9
- */
10
- Object.defineProperty(exports, "__esModule", { value: true });
11
- exports.analyzeIntent = analyzeIntent;
12
- const debug_logger_js_1 = require("./debug-logger.js");
13
- const ollama_client_js_1 = require("./ollama-client.js");
14
- /**
15
- * Analyze user message for decision-related intent
16
- */
17
- async function analyzeIntent(userMessage, options = {}) {
18
- const { timeout = 5000, // Increased: LLM needs time, user accepts longer thinking
19
- threshold = 0.6, } = options;
20
- try {
21
- // Task 2.2: Build prompt for decision-making analysis
22
- const prompt = `
23
- Analyze if this query involves decision-making or past choices:
24
-
25
- User Message: "${userMessage}"
26
-
27
- Decision Indicators:
28
- 1. References to past decisions ("we chose X", "last time we did Y")
29
- 2. Questions about previous approaches ("why did we use X?")
30
- 3. Decision evolution queries ("should we change from X to Y?")
31
- 4. Architecture/strategy questions
32
- 5. Method/approach questions ("how do I...", "what's the way to...")
33
- 6. Best practice questions ("what should I use for...", "which one should I use...")
34
-
35
- Return JSON with "topic" as a short snake_case identifier (e.g., "mesh_structure", "database_choice", "auth_strategy", "coding_style", "error_handling"):
36
- {
37
- "involves_decision": boolean,
38
- "topic": string or null (extract main technical topic in snake_case),
39
- "confidence": 0.0-1.0,
40
- "reasoning": "brief explanation"
41
- }
42
-
43
- IMPORTANT: Generate "topic" freely based on the message content. Do NOT limit to predefined values.
44
-
45
- Examples:
46
- - "Why did we choose COMPLEX mesh structure?" → {"involves_decision": true, "topic": "mesh_structure", "confidence": 0.9}
47
- - "Let's use PostgreSQL for database" → {"involves_decision": true, "topic": "database_choice", "confidence": 0.9}
48
- - "How should we store workflow data?" → {"involves_decision": true, "topic": "workflow_storage", "confidence": 0.85}
49
- - "Read the file please" → {"involves_decision": false, "topic": null, "confidence": 0.1}
50
- `.trim();
51
- // Task 2.3: Call EXAONE 3.5 with Tier 1 fallback
52
- const result = await generateWithFallback(prompt, {
53
- format: 'json',
54
- temperature: 0.3,
55
- max_tokens: 200,
56
- timeout,
57
- });
58
- // Task 2.4: Parse response
59
- const parsed = (typeof result === 'string' ? JSON.parse(result) : result);
60
- // Task 2.5: Threshold check
61
- const meetsThreshold = parsed.confidence >= threshold;
62
- if (!meetsThreshold) {
63
- (0, debug_logger_js_1.info)(`[MAMA] Intent confidence ${parsed.confidence} below threshold ${threshold}`);
64
- return {
65
- involves_decision: false,
66
- topic: null,
67
- confidence: parsed.confidence,
68
- reasoning: 'Confidence below threshold',
69
- };
70
- }
71
- return parsed;
72
- }
73
- catch (error) {
74
- // CLAUDE.md Rule #1: NO FALLBACK
75
- // Errors must be thrown for debugging
76
- const message = error instanceof Error ? error.message : String(error);
77
- (0, debug_logger_js_1.error)(`[MAMA] Intent analysis FAILED: ${message}`);
78
- throw new Error(`Intent analysis failed: ${message}`);
79
- }
80
- }
81
- /**
82
- * Generate with tiered fallback chain
83
- */
84
- async function generateWithFallback(prompt, options = {}) {
85
- const models = [
86
- ollama_client_js_1.DEFAULT_MODEL, // Tier 1: EXAONE 3.5 (2.4B)
87
- ollama_client_js_1.FALLBACK_MODEL, // Tier 2: Gemma 2B
88
- 'qwen:3b', // Tier 3: Qwen 3B
89
- ];
90
- for (let i = 0; i < models.length; i++) {
91
- const model = models[i];
92
- try {
93
- (0, debug_logger_js_1.info)(`[MAMA] Trying ${model}...`);
94
- const result = await (0, ollama_client_js_1.generate)(prompt, {
95
- ...options,
96
- model,
97
- });
98
- (0, debug_logger_js_1.info)(`[MAMA] ${model} succeeded`);
99
- return result;
100
- }
101
- catch (error) {
102
- const message = error instanceof Error ? error.message : String(error);
103
- (0, debug_logger_js_1.warn)(`[MAMA] ${model} failed: ${message}`);
104
- // Continue to next tier
105
- if (i === models.length - 1) {
106
- // All tiers failed
107
- throw new Error(`All LLM tiers failed. Last error: ${message}`);
108
- }
109
- }
110
- }
111
- // Unreachable: loop always returns or throws
112
- throw new Error('Unexpected: all LLM tiers exhausted without result');
113
- }
114
- //# sourceMappingURL=query-intent.js.map
@@ -1,3 +0,0 @@
1
- export { createTrustedProvenanceCapability } from '../memory/provenance.js';
2
- export type { TrustedMemoryWriteOptions, TrustedProvenanceCapability, } from '../memory/provenance.js';
3
- //# sourceMappingURL=trusted-provenance.d.ts.map
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createTrustedProvenanceCapability = void 0;
4
- var provenance_js_1 = require("../memory/provenance.js");
5
- Object.defineProperty(exports, "createTrustedProvenanceCapability", { enumerable: true, get: function () { return provenance_js_1.createTrustedProvenanceCapability; } });
6
- //# sourceMappingURL=trusted-provenance.js.map
@@ -1,5 +0,0 @@
1
- export type QuestionType = 'correction' | 'artifact' | 'timeline' | 'status' | 'decision_reason' | 'how_to' | 'unknown';
2
- export declare const QUESTION_TYPES: readonly QuestionType[];
3
- export declare function classifyQuestionType(query: string): QuestionType;
4
- export declare function isQuestionType(value: string): value is QuestionType;
5
- //# sourceMappingURL=question-type.d.ts.map
@@ -1,41 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.QUESTION_TYPES = void 0;
4
- exports.classifyQuestionType = classifyQuestionType;
5
- exports.isQuestionType = isQuestionType;
6
- exports.QUESTION_TYPES = [
7
- 'correction',
8
- 'artifact',
9
- 'timeline',
10
- 'status',
11
- 'decision_reason',
12
- 'how_to',
13
- 'unknown',
14
- ];
15
- // Korean: patterns for classifyQuestionType() multilingual query routing.
16
- const CORRECTION_PATTERN = /\b(fix|revert|correct|correction|supersede|superseded|revise|revision|수정|되돌|정정|교정)\b/i; // Korean: keywords
17
- const ARTIFACT_PATTERN = /\b(file|doc|docs|document|image|video|pdf|drive|obsidian|attachment|artifact|파일|문서|이미지|영상|첨부|드라이브|옵시디언)\b/i; // Korean: keywords
18
- const TIMELINE_PATTERN = /\b(when|history|before|after|around|timeline|chronology|언제|이력|히스토리|전|후|즈음)\b|\bon\s+\d{4}(?:-\d{1,2})?(?:-\d{1,2})?\b|\b\d{4}-\d{1,2}-\d{1,2}\b/i; // Korean: keywords
19
- const STATUS_PATTERN = /\b(status|state|current|currently|now|latest|progress|blocked|done|상태|현재|최신|진행|진척)\b/i; // Korean: keywords
20
- const DECISION_REASON_PATTERN = /\b(why|reason|because|rationale|근거|이유|왜|때문)\b/i; // Korean: keywords
21
- const HOW_TO_PATTERN = /\b(how\s+to|how\s+do|setup|set\s+up|configure|configuration|install|설정|구성|어떻게)\b/i; // Korean: keywords
22
- function classifyQuestionType(query) {
23
- const normalized = query.trim();
24
- if (CORRECTION_PATTERN.test(normalized))
25
- return 'correction';
26
- if (ARTIFACT_PATTERN.test(normalized))
27
- return 'artifact';
28
- if (TIMELINE_PATTERN.test(normalized))
29
- return 'timeline';
30
- if (STATUS_PATTERN.test(normalized))
31
- return 'status';
32
- if (DECISION_REASON_PATTERN.test(normalized))
33
- return 'decision_reason';
34
- if (HOW_TO_PATTERN.test(normalized))
35
- return 'how_to';
36
- return 'unknown';
37
- }
38
- function isQuestionType(value) {
39
- return exports.QUESTION_TYPES.includes(value);
40
- }
41
- //# sourceMappingURL=question-type.js.map