sensorium-mcp 3.1.2 → 3.1.3-board.10

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 (625) hide show
  1. package/Install-Sensorium.ps1 +257 -43
  2. package/README.md +2 -0
  3. package/dist/board/api/api.js +84 -0
  4. package/dist/board/api/api.test.ts +23 -0
  5. package/dist/board/api/client.js +113 -0
  6. package/dist/board/components/BottomNav.js +32 -0
  7. package/dist/board/components/Card.js +78 -0
  8. package/dist/board/components/Combobox.js +79 -0
  9. package/dist/board/components/CommentComposer.js +29 -0
  10. package/dist/board/components/CommentList.js +42 -0
  11. package/dist/board/components/DirTreePicker.js +128 -0
  12. package/dist/board/components/Dropdown.js +67 -0
  13. package/dist/board/components/Lane.js +47 -0
  14. package/dist/board/components/PriorityChip.js +20 -0
  15. package/dist/board/components/ProfileSummary.js +89 -0
  16. package/dist/board/components/StateBanner.js +24 -0
  17. package/dist/board/components/StatusChip.js +26 -0
  18. package/dist/board/components/rateLimit.js +32 -0
  19. package/dist/board/components/rateLimit.test.ts +16 -0
  20. package/dist/board/components/time.js +14 -0
  21. package/dist/board/config.js +56 -0
  22. package/dist/board/index.html +18 -0
  23. package/dist/board/main.js +37 -0
  24. package/dist/board/mock/api.mock.js +491 -0
  25. package/dist/board/mock/api.mock.test.ts +460 -0
  26. package/dist/board/mock/fixtures.js +512 -0
  27. package/dist/board/schema/policy.js +261 -0
  28. package/dist/board/state/recur.js +24 -0
  29. package/dist/board/state/recur.test.ts +24 -0
  30. package/dist/board/state/useBoard.js +161 -0
  31. package/dist/board/state/useBuilder.js +357 -0
  32. package/dist/board/state/useBuilder.test.ts +468 -0
  33. package/dist/board/state/useCard.js +193 -0
  34. package/dist/board/state/useCard.test.ts +435 -0
  35. package/dist/board/state/useDirBrowser.js +23 -0
  36. package/dist/board/styles/board.css +2885 -0
  37. package/dist/board/styles/tokens.css +72 -0
  38. package/dist/board/vendor/vue.esm-browser.js +9 -0
  39. package/dist/board/views/App.js +61 -0
  40. package/dist/board/views/BoardView.js +153 -0
  41. package/dist/board/views/BuilderView.js +582 -0
  42. package/dist/board/views/CardView.js +382 -0
  43. package/dist/board/views/SettingsView.js +152 -0
  44. package/dist/config/agent-settings.d.ts +11 -0
  45. package/dist/config/agent-settings.d.ts.map +1 -1
  46. package/dist/config/agent-settings.js +79 -0
  47. package/dist/config/agent-settings.js.map +1 -1
  48. package/dist/config/detail-grant.d.ts +7 -16
  49. package/dist/config/detail-grant.d.ts.map +1 -1
  50. package/dist/config/detail-grant.js +12 -35
  51. package/dist/config/detail-grant.js.map +1 -1
  52. package/dist/config/index.d.ts +2 -0
  53. package/dist/config/index.d.ts.map +1 -1
  54. package/dist/config/index.js +17 -0
  55. package/dist/config/index.js.map +1 -1
  56. package/dist/config/mcp-settings.d.ts +7 -1
  57. package/dist/config/mcp-settings.d.ts.map +1 -1
  58. package/dist/config/mcp-settings.js +9 -0
  59. package/dist/config/mcp-settings.js.map +1 -1
  60. package/dist/config/misc-settings.d.ts +22 -1
  61. package/dist/config/misc-settings.d.ts.map +1 -1
  62. package/dist/config/misc-settings.js +93 -3
  63. package/dist/config/misc-settings.js.map +1 -1
  64. package/dist/config/operator-grant.d.ts +9 -0
  65. package/dist/config/operator-grant.d.ts.map +1 -0
  66. package/dist/config/operator-grant.js +24 -0
  67. package/dist/config/operator-grant.js.map +1 -0
  68. package/dist/config/voice-grant.d.ts +10 -0
  69. package/dist/config/voice-grant.d.ts.map +1 -0
  70. package/dist/config/voice-grant.js +18 -0
  71. package/dist/config/voice-grant.js.map +1 -0
  72. package/dist/dashboard/board-static.d.ts +22 -0
  73. package/dist/dashboard/board-static.d.ts.map +1 -0
  74. package/dist/dashboard/board-static.js +130 -0
  75. package/dist/dashboard/board-static.js.map +1 -0
  76. package/dist/dashboard/presets.d.ts +1 -1
  77. package/dist/dashboard/presets.d.ts.map +1 -1
  78. package/dist/dashboard/presets.js +1 -1
  79. package/dist/dashboard/presets.js.map +1 -1
  80. package/dist/dashboard/routes/agent-templates.d.ts.map +1 -1
  81. package/dist/dashboard/routes/agent-templates.js +6 -9
  82. package/dist/dashboard/routes/agent-templates.js.map +1 -1
  83. package/dist/dashboard/routes/board-body.d.ts +8 -0
  84. package/dist/dashboard/routes/board-body.d.ts.map +1 -0
  85. package/dist/dashboard/routes/board-body.js +20 -0
  86. package/dist/dashboard/routes/board-body.js.map +1 -0
  87. package/dist/dashboard/routes/board-dir-listing.d.ts +70 -0
  88. package/dist/dashboard/routes/board-dir-listing.d.ts.map +1 -0
  89. package/dist/dashboard/routes/board-dir-listing.js +192 -0
  90. package/dist/dashboard/routes/board-dir-listing.js.map +1 -0
  91. package/dist/dashboard/routes/board-lane-groups.d.ts +6 -0
  92. package/dist/dashboard/routes/board-lane-groups.d.ts.map +1 -0
  93. package/dist/dashboard/routes/board-lane-groups.js +52 -0
  94. package/dist/dashboard/routes/board-lane-groups.js.map +1 -0
  95. package/dist/dashboard/routes/board-policy.d.ts +224 -0
  96. package/dist/dashboard/routes/board-policy.d.ts.map +1 -0
  97. package/dist/dashboard/routes/board-policy.js +214 -0
  98. package/dist/dashboard/routes/board-policy.js.map +1 -0
  99. package/dist/dashboard/routes/board-profile-parse.d.ts +32 -0
  100. package/dist/dashboard/routes/board-profile-parse.d.ts.map +1 -0
  101. package/dist/dashboard/routes/board-profile-parse.js +338 -0
  102. package/dist/dashboard/routes/board-profile-parse.js.map +1 -0
  103. package/dist/dashboard/routes/board.d.ts +90 -0
  104. package/dist/dashboard/routes/board.d.ts.map +1 -0
  105. package/dist/dashboard/routes/board.js +721 -0
  106. package/dist/dashboard/routes/board.js.map +1 -0
  107. package/dist/dashboard/routes/codex.d.ts +14 -0
  108. package/dist/dashboard/routes/codex.d.ts.map +1 -0
  109. package/dist/dashboard/routes/codex.js +92 -0
  110. package/dist/dashboard/routes/codex.js.map +1 -0
  111. package/dist/dashboard/routes/prompts.d.ts +2 -2
  112. package/dist/dashboard/routes/prompts.d.ts.map +1 -1
  113. package/dist/dashboard/routes/prompts.js +2 -2
  114. package/dist/dashboard/routes/prompts.js.map +1 -1
  115. package/dist/dashboard/routes/settings.d.ts +2 -0
  116. package/dist/dashboard/routes/settings.d.ts.map +1 -1
  117. package/dist/dashboard/routes/settings.js +24 -1
  118. package/dist/dashboard/routes/settings.js.map +1 -1
  119. package/dist/dashboard/routes/skills.d.ts +7 -1
  120. package/dist/dashboard/routes/skills.d.ts.map +1 -1
  121. package/dist/dashboard/routes/skills.js +6 -6
  122. package/dist/dashboard/routes/skills.js.map +1 -1
  123. package/dist/dashboard/routes/snapshots.d.ts +2 -1
  124. package/dist/dashboard/routes/snapshots.d.ts.map +1 -1
  125. package/dist/dashboard/routes/snapshots.js +24 -18
  126. package/dist/dashboard/routes/snapshots.js.map +1 -1
  127. package/dist/dashboard/routes/templates.js +5 -5
  128. package/dist/dashboard/routes/templates.js.map +1 -1
  129. package/dist/dashboard/routes/threads-create.d.ts +17 -0
  130. package/dist/dashboard/routes/threads-create.d.ts.map +1 -1
  131. package/dist/dashboard/routes/threads-create.js +32 -10
  132. package/dist/dashboard/routes/threads-create.js.map +1 -1
  133. package/dist/dashboard/routes/threads-helpers.d.ts +11 -2
  134. package/dist/dashboard/routes/threads-helpers.d.ts.map +1 -1
  135. package/dist/dashboard/routes/threads-helpers.js +20 -3
  136. package/dist/dashboard/routes/threads-helpers.js.map +1 -1
  137. package/dist/dashboard/routes/threads-read.d.ts +16 -4
  138. package/dist/dashboard/routes/threads-read.d.ts.map +1 -1
  139. package/dist/dashboard/routes/threads-read.js +61 -55
  140. package/dist/dashboard/routes/threads-read.js.map +1 -1
  141. package/dist/dashboard/routes/threads.d.ts +2 -2
  142. package/dist/dashboard/routes/threads.d.ts.map +1 -1
  143. package/dist/dashboard/routes/threads.js +143 -29
  144. package/dist/dashboard/routes/threads.js.map +1 -1
  145. package/dist/dashboard/routes/types.d.ts +6 -0
  146. package/dist/dashboard/routes/types.d.ts.map +1 -1
  147. package/dist/dashboard/routes/types.js.map +1 -1
  148. package/dist/dashboard/routes.d.ts +2 -2
  149. package/dist/dashboard/routes.d.ts.map +1 -1
  150. package/dist/dashboard/routes.js +85 -7
  151. package/dist/dashboard/routes.js.map +1 -1
  152. package/dist/dashboard/spa.html +15 -12
  153. package/dist/data/board/board-schema.d.ts +29 -0
  154. package/dist/data/board/board-schema.d.ts.map +1 -0
  155. package/dist/data/board/board-schema.js +202 -0
  156. package/dist/data/board/board-schema.js.map +1 -0
  157. package/dist/data/board/board-types.d.ts +175 -0
  158. package/dist/data/board/board-types.d.ts.map +1 -0
  159. package/dist/data/board/board-types.js +9 -0
  160. package/dist/data/board/board-types.js.map +1 -0
  161. package/dist/data/board/card.repository.d.ts +137 -0
  162. package/dist/data/board/card.repository.d.ts.map +1 -0
  163. package/dist/data/board/card.repository.js +470 -0
  164. package/dist/data/board/card.repository.js.map +1 -0
  165. package/dist/data/board/comment.repository.d.ts +14 -0
  166. package/dist/data/board/comment.repository.d.ts.map +1 -0
  167. package/dist/data/board/comment.repository.js +42 -0
  168. package/dist/data/board/comment.repository.js.map +1 -0
  169. package/dist/data/board/lane-group.repository.d.ts +19 -0
  170. package/dist/data/board/lane-group.repository.d.ts.map +1 -0
  171. package/dist/data/board/lane-group.repository.js +66 -0
  172. package/dist/data/board/lane-group.repository.js.map +1 -0
  173. package/dist/data/board/profile-defaults.d.ts +17 -0
  174. package/dist/data/board/profile-defaults.d.ts.map +1 -0
  175. package/dist/data/board/profile-defaults.js +107 -0
  176. package/dist/data/board/profile-defaults.js.map +1 -0
  177. package/dist/data/interfaces.d.ts +1 -0
  178. package/dist/data/interfaces.d.ts.map +1 -1
  179. package/dist/data/memory/bootstrap.d.ts +1 -8
  180. package/dist/data/memory/bootstrap.d.ts.map +1 -1
  181. package/dist/data/memory/bootstrap.js +27 -37
  182. package/dist/data/memory/bootstrap.js.map +1 -1
  183. package/dist/data/memory/consolidation.d.ts +9 -31
  184. package/dist/data/memory/consolidation.d.ts.map +1 -1
  185. package/dist/data/memory/consolidation.js +22 -32
  186. package/dist/data/memory/consolidation.js.map +1 -1
  187. package/dist/data/memory/db-maintenance.d.ts +54 -0
  188. package/dist/data/memory/db-maintenance.d.ts.map +1 -0
  189. package/dist/data/memory/db-maintenance.js +81 -0
  190. package/dist/data/memory/db-maintenance.js.map +1 -0
  191. package/dist/data/memory/episodes.d.ts +2 -1
  192. package/dist/data/memory/episodes.d.ts.map +1 -1
  193. package/dist/data/memory/episodes.js +5 -1
  194. package/dist/data/memory/episodes.js.map +1 -1
  195. package/dist/data/memory/index.d.ts +0 -4
  196. package/dist/data/memory/index.d.ts.map +1 -1
  197. package/dist/data/memory/index.js +0 -4
  198. package/dist/data/memory/index.js.map +1 -1
  199. package/dist/data/memory/key-knowledge.d.ts +51 -0
  200. package/dist/data/memory/key-knowledge.d.ts.map +1 -0
  201. package/dist/data/memory/key-knowledge.js +128 -0
  202. package/dist/data/memory/key-knowledge.js.map +1 -0
  203. package/dist/data/memory/migration-runner.d.ts +1 -1
  204. package/dist/data/memory/migration-runner.d.ts.map +1 -1
  205. package/dist/data/memory/migration-runner.js +407 -1
  206. package/dist/data/memory/migration-runner.js.map +1 -1
  207. package/dist/data/memory/narrative-lint.d.ts +2 -2
  208. package/dist/data/memory/narrative-lint.d.ts.map +1 -1
  209. package/dist/data/memory/narrative-lint.js +23 -13
  210. package/dist/data/memory/narrative-lint.js.map +1 -1
  211. package/dist/data/memory/narrative-resolutions.d.ts +9 -2
  212. package/dist/data/memory/narrative-resolutions.d.ts.map +1 -1
  213. package/dist/data/memory/narrative-resolutions.js +9 -8
  214. package/dist/data/memory/narrative-resolutions.js.map +1 -1
  215. package/dist/data/memory/narrative-sources.d.ts +1 -1
  216. package/dist/data/memory/narrative-sources.d.ts.map +1 -1
  217. package/dist/data/memory/narrative-sources.js +8 -3
  218. package/dist/data/memory/narrative-sources.js.map +1 -1
  219. package/dist/data/memory/narrative-store.d.ts +24 -0
  220. package/dist/data/memory/narrative-store.d.ts.map +1 -1
  221. package/dist/data/memory/narrative-store.js +73 -35
  222. package/dist/data/memory/narrative-store.js.map +1 -1
  223. package/dist/data/memory/narrative.d.ts.map +1 -1
  224. package/dist/data/memory/narrative.js +47 -29
  225. package/dist/data/memory/narrative.js.map +1 -1
  226. package/dist/data/memory/note-archival.d.ts +1 -1
  227. package/dist/data/memory/note-archival.d.ts.map +1 -1
  228. package/dist/data/memory/note-archival.js +7 -3
  229. package/dist/data/memory/note-archival.js.map +1 -1
  230. package/dist/data/memory/note-embeddings.d.ts +7 -0
  231. package/dist/data/memory/note-embeddings.d.ts.map +1 -1
  232. package/dist/data/memory/note-embeddings.js +6 -2
  233. package/dist/data/memory/note-embeddings.js.map +1 -1
  234. package/dist/data/memory/passive-notice.repository.d.ts +70 -0
  235. package/dist/data/memory/passive-notice.repository.d.ts.map +1 -0
  236. package/dist/data/memory/passive-notice.repository.js +85 -0
  237. package/dist/data/memory/passive-notice.repository.js.map +1 -0
  238. package/dist/data/memory/schema-ddl.d.ts +120 -1
  239. package/dist/data/memory/schema-ddl.d.ts.map +1 -1
  240. package/dist/data/memory/schema-ddl.js +171 -4
  241. package/dist/data/memory/schema-ddl.js.map +1 -1
  242. package/dist/data/memory/schema-guard.d.ts.map +1 -1
  243. package/dist/data/memory/schema-guard.js +5 -41
  244. package/dist/data/memory/schema-guard.js.map +1 -1
  245. package/dist/data/memory/schema.d.ts.map +1 -1
  246. package/dist/data/memory/schema.js +10 -34
  247. package/dist/data/memory/schema.js.map +1 -1
  248. package/dist/data/memory/semantic-notes.d.ts +13 -8
  249. package/dist/data/memory/semantic-notes.d.ts.map +1 -1
  250. package/dist/data/memory/semantic-notes.js +12 -17
  251. package/dist/data/memory/semantic-notes.js.map +1 -1
  252. package/dist/data/memory/thread-registry.d.ts +330 -15
  253. package/dist/data/memory/thread-registry.d.ts.map +1 -1
  254. package/dist/data/memory/thread-registry.js +523 -67
  255. package/dist/data/memory/thread-registry.js.map +1 -1
  256. package/dist/data/memory/utils.d.ts +6 -0
  257. package/dist/data/memory/utils.d.ts.map +1 -1
  258. package/dist/data/memory/utils.js +13 -0
  259. package/dist/data/memory/utils.js.map +1 -1
  260. package/dist/data/memory/worker-lifecycle.repository.d.ts +308 -0
  261. package/dist/data/memory/worker-lifecycle.repository.d.ts.map +1 -0
  262. package/dist/data/memory/worker-lifecycle.repository.js +428 -0
  263. package/dist/data/memory/worker-lifecycle.repository.js.map +1 -0
  264. package/dist/data/optional.d.ts +16 -0
  265. package/dist/data/optional.d.ts.map +1 -0
  266. package/dist/data/optional.js +47 -0
  267. package/dist/data/optional.js.map +1 -0
  268. package/dist/index.js +156 -24
  269. package/dist/index.js.map +1 -1
  270. package/dist/integrations/openai/speech.d.ts.map +1 -1
  271. package/dist/integrations/openai/speech.js +52 -19
  272. package/dist/integrations/openai/speech.js.map +1 -1
  273. package/dist/integrations/openai/video.d.ts +1 -1
  274. package/dist/integrations/openai/video.d.ts.map +1 -1
  275. package/dist/integrations/openai/video.js +13 -8
  276. package/dist/integrations/openai/video.js.map +1 -1
  277. package/dist/integrations/telegram/types.d.ts +11 -0
  278. package/dist/integrations/telegram/types.d.ts.map +1 -1
  279. package/dist/lib/http-retry.d.ts +91 -0
  280. package/dist/lib/http-retry.d.ts.map +1 -0
  281. package/dist/lib/http-retry.js +177 -0
  282. package/dist/lib/http-retry.js.map +1 -0
  283. package/dist/lib/mcp-http-port.d.ts +12 -0
  284. package/dist/lib/mcp-http-port.d.ts.map +1 -0
  285. package/dist/lib/mcp-http-port.js +19 -0
  286. package/dist/lib/mcp-http-port.js.map +1 -0
  287. package/dist/lib/paths.d.ts +29 -4
  288. package/dist/lib/paths.d.ts.map +1 -1
  289. package/dist/lib/paths.js +31 -4
  290. package/dist/lib/paths.js.map +1 -1
  291. package/dist/lib/types.d.ts +2 -0
  292. package/dist/lib/types.d.ts.map +1 -1
  293. package/dist/lib/usage-metering/pricing.js +1 -1
  294. package/dist/lib/usage-metering/pricing.js.map +1 -1
  295. package/dist/lib/usage-metering/sink.d.ts +4 -0
  296. package/dist/lib/usage-metering/sink.d.ts.map +1 -1
  297. package/dist/lib/usage-metering/sink.js +6 -4
  298. package/dist/lib/usage-metering/sink.js.map +1 -1
  299. package/dist/lib/utils.d.ts +31 -0
  300. package/dist/lib/utils.d.ts.map +1 -1
  301. package/dist/lib/utils.js +49 -0
  302. package/dist/lib/utils.js.map +1 -1
  303. package/dist/llm/prompts/narrative.d.ts.map +1 -1
  304. package/dist/llm/prompts/narrative.js +27 -86
  305. package/dist/llm/prompts/narrative.js.map +1 -1
  306. package/dist/log-parsing/log-events.d.ts +38 -0
  307. package/dist/log-parsing/log-events.d.ts.map +1 -0
  308. package/dist/log-parsing/log-events.js +2 -0
  309. package/dist/log-parsing/log-events.js.map +1 -0
  310. package/dist/log-parsing/parser-registry.d.ts +4 -0
  311. package/dist/log-parsing/parser-registry.d.ts.map +1 -0
  312. package/dist/log-parsing/parser-registry.js +18 -0
  313. package/dist/log-parsing/parser-registry.js.map +1 -0
  314. package/dist/log-parsing/parsers/claude.d.ts +6 -0
  315. package/dist/log-parsing/parsers/claude.d.ts.map +1 -0
  316. package/dist/log-parsing/parsers/claude.js +100 -0
  317. package/dist/log-parsing/parsers/claude.js.map +1 -0
  318. package/dist/log-parsing/parsers/codex.d.ts +6 -0
  319. package/dist/log-parsing/parsers/codex.d.ts.map +1 -0
  320. package/dist/log-parsing/parsers/codex.js +116 -0
  321. package/dist/log-parsing/parsers/codex.js.map +1 -0
  322. package/dist/log-parsing/parsers/copilot.d.ts +6 -0
  323. package/dist/log-parsing/parsers/copilot.d.ts.map +1 -0
  324. package/dist/log-parsing/parsers/copilot.js +65 -0
  325. package/dist/log-parsing/parsers/copilot.js.map +1 -0
  326. package/dist/log-parsing/parsers/json-lines.d.ts +9 -0
  327. package/dist/log-parsing/parsers/json-lines.d.ts.map +1 -0
  328. package/dist/log-parsing/parsers/json-lines.js +25 -0
  329. package/dist/log-parsing/parsers/json-lines.js.map +1 -0
  330. package/dist/log-parsing/render.d.ts +33 -0
  331. package/dist/log-parsing/render.d.ts.map +1 -0
  332. package/dist/log-parsing/render.js +113 -0
  333. package/dist/log-parsing/render.js.map +1 -0
  334. package/dist/log-parsing/text.d.ts +8 -0
  335. package/dist/log-parsing/text.d.ts.map +1 -0
  336. package/dist/log-parsing/text.js +20 -0
  337. package/dist/log-parsing/text.js.map +1 -0
  338. package/dist/server/http-server.d.ts +8 -1
  339. package/dist/server/http-server.d.ts.map +1 -1
  340. package/dist/server/http-server.js +41 -19
  341. package/dist/server/http-server.js.map +1 -1
  342. package/dist/server/port-holder.d.ts +94 -0
  343. package/dist/server/port-holder.d.ts.map +1 -0
  344. package/dist/server/port-holder.js +122 -0
  345. package/dist/server/port-holder.js.map +1 -0
  346. package/dist/services/agent-spawn.service.d.ts +50 -5
  347. package/dist/services/agent-spawn.service.d.ts.map +1 -1
  348. package/dist/services/agent-spawn.service.js +59 -66
  349. package/dist/services/agent-spawn.service.js.map +1 -1
  350. package/dist/services/background-runner.d.ts +0 -1
  351. package/dist/services/background-runner.d.ts.map +1 -1
  352. package/dist/services/background-runner.js +0 -58
  353. package/dist/services/background-runner.js.map +1 -1
  354. package/dist/services/board/board-signals.d.ts +45 -0
  355. package/dist/services/board/board-signals.d.ts.map +1 -0
  356. package/dist/services/board/board-signals.js +170 -0
  357. package/dist/services/board/board-signals.js.map +1 -0
  358. package/dist/services/board/card-briefing.d.ts +24 -0
  359. package/dist/services/board/card-briefing.d.ts.map +1 -0
  360. package/dist/services/board/card-briefing.js +132 -0
  361. package/dist/services/board/card-briefing.js.map +1 -0
  362. package/dist/services/board/card-diagnostics.d.ts +25 -0
  363. package/dist/services/board/card-diagnostics.d.ts.map +1 -0
  364. package/dist/services/board/card-diagnostics.js +50 -0
  365. package/dist/services/board/card-diagnostics.js.map +1 -0
  366. package/dist/services/board/live-root-thread.d.ts +8 -0
  367. package/dist/services/board/live-root-thread.d.ts.map +1 -0
  368. package/dist/services/board/live-root-thread.js +2 -0
  369. package/dist/services/board/live-root-thread.js.map +1 -0
  370. package/dist/services/board/orchestrator.service.d.ts +119 -0
  371. package/dist/services/board/orchestrator.service.d.ts.map +1 -0
  372. package/dist/services/board/orchestrator.service.js +387 -0
  373. package/dist/services/board/orchestrator.service.js.map +1 -0
  374. package/dist/services/board/release-worker.d.ts +43 -0
  375. package/dist/services/board/release-worker.d.ts.map +1 -0
  376. package/dist/services/board/release-worker.js +96 -0
  377. package/dist/services/board/release-worker.js.map +1 -0
  378. package/dist/services/board/report-capture.d.ts +94 -0
  379. package/dist/services/board/report-capture.d.ts.map +1 -0
  380. package/dist/services/board/report-capture.js +398 -0
  381. package/dist/services/board/report-capture.js.map +1 -0
  382. package/dist/services/board/worker-spawn.d.ts +89 -0
  383. package/dist/services/board/worker-spawn.d.ts.map +1 -0
  384. package/dist/services/board/worker-spawn.js +177 -0
  385. package/dist/services/board/worker-spawn.js.map +1 -0
  386. package/dist/services/board/worktree.d.ts +45 -0
  387. package/dist/services/board/worktree.d.ts.map +1 -0
  388. package/dist/services/board/worktree.js +183 -0
  389. package/dist/services/board/worktree.js.map +1 -0
  390. package/dist/services/broker-client.d.ts +84 -2
  391. package/dist/services/broker-client.d.ts.map +1 -1
  392. package/dist/services/broker-client.js +72 -6
  393. package/dist/services/broker-client.js.map +1 -1
  394. package/dist/services/claude-spawn.service.d.ts +5 -0
  395. package/dist/services/claude-spawn.service.d.ts.map +1 -1
  396. package/dist/services/claude-spawn.service.js +37 -21
  397. package/dist/services/claude-spawn.service.js.map +1 -1
  398. package/dist/services/codex-spawn.service.d.ts +8 -3
  399. package/dist/services/codex-spawn.service.d.ts.map +1 -1
  400. package/dist/services/codex-spawn.service.js +84 -67
  401. package/dist/services/codex-spawn.service.js.map +1 -1
  402. package/dist/services/consolidation.service.d.ts.map +1 -1
  403. package/dist/services/consolidation.service.js +5 -49
  404. package/dist/services/consolidation.service.js.map +1 -1
  405. package/dist/services/copilot-spawn.service.d.ts +1 -1
  406. package/dist/services/copilot-spawn.service.d.ts.map +1 -1
  407. package/dist/services/copilot-spawn.service.js +10 -5
  408. package/dist/services/copilot-spawn.service.js.map +1 -1
  409. package/dist/services/daily-session.d.ts +24 -11
  410. package/dist/services/daily-session.d.ts.map +1 -1
  411. package/dist/services/daily-session.js +113 -33
  412. package/dist/services/daily-session.js.map +1 -1
  413. package/dist/services/death-alert.service.d.ts +55 -0
  414. package/dist/services/death-alert.service.d.ts.map +1 -0
  415. package/dist/services/death-alert.service.js +64 -0
  416. package/dist/services/death-alert.service.js.map +1 -0
  417. package/dist/services/dispatcher/broker.d.ts +66 -0
  418. package/dist/services/dispatcher/broker.d.ts.map +1 -1
  419. package/dist/services/dispatcher/broker.js +60 -52
  420. package/dist/services/dispatcher/broker.js.map +1 -1
  421. package/dist/services/dispatcher/poller.d.ts.map +1 -1
  422. package/dist/services/dispatcher/poller.js +31 -24
  423. package/dist/services/dispatcher/poller.js.map +1 -1
  424. package/dist/services/http-retry.d.ts +1 -90
  425. package/dist/services/http-retry.d.ts.map +1 -1
  426. package/dist/services/http-retry.js +1 -176
  427. package/dist/services/http-retry.js.map +1 -1
  428. package/dist/services/intent.d.ts +15 -1
  429. package/dist/services/intent.d.ts.map +1 -1
  430. package/dist/services/intent.js +39 -27
  431. package/dist/services/intent.js.map +1 -1
  432. package/dist/services/keeper.service.d.ts +76 -3
  433. package/dist/services/keeper.service.d.ts.map +1 -1
  434. package/dist/services/keeper.service.js +112 -35
  435. package/dist/services/keeper.service.js.map +1 -1
  436. package/dist/services/mcp-config.service.d.ts.map +1 -1
  437. package/dist/services/mcp-config.service.js +14 -1
  438. package/dist/services/mcp-config.service.js.map +1 -1
  439. package/dist/services/memory-briefing.service.d.ts +1 -1
  440. package/dist/services/memory-briefing.service.d.ts.map +1 -1
  441. package/dist/services/memory-briefing.service.js +28 -73
  442. package/dist/services/memory-briefing.service.js.map +1 -1
  443. package/dist/services/passive-notice.service.d.ts +56 -0
  444. package/dist/services/passive-notice.service.d.ts.map +1 -0
  445. package/dist/services/passive-notice.service.js +92 -0
  446. package/dist/services/passive-notice.service.js.map +1 -0
  447. package/dist/services/predefined-prompts.d.ts +11 -0
  448. package/dist/services/predefined-prompts.d.ts.map +1 -0
  449. package/dist/services/predefined-prompts.js +25 -0
  450. package/dist/services/predefined-prompts.js.map +1 -0
  451. package/dist/services/process.service.d.ts +111 -27
  452. package/dist/services/process.service.d.ts.map +1 -1
  453. package/dist/services/process.service.js +245 -173
  454. package/dist/services/process.service.js.map +1 -1
  455. package/dist/services/spawn-common.d.ts +281 -5
  456. package/dist/services/spawn-common.d.ts.map +1 -1
  457. package/dist/services/spawn-common.js +884 -188
  458. package/dist/services/spawn-common.js.map +1 -1
  459. package/dist/services/spawn-exit-watcher.d.ts +45 -35
  460. package/dist/services/spawn-exit-watcher.d.ts.map +1 -1
  461. package/dist/services/spawn-exit-watcher.js +120 -100
  462. package/dist/services/spawn-exit-watcher.js.map +1 -1
  463. package/dist/services/telegram.d.ts +31 -8
  464. package/dist/services/telegram.d.ts.map +1 -1
  465. package/dist/services/telegram.js +58 -26
  466. package/dist/services/telegram.js.map +1 -1
  467. package/dist/services/thread-health.service.d.ts +8 -0
  468. package/dist/services/thread-health.service.d.ts.map +1 -1
  469. package/dist/services/thread-health.service.js +14 -10
  470. package/dist/services/thread-health.service.js.map +1 -1
  471. package/dist/services/thread-lifecycle.service.d.ts +17 -1
  472. package/dist/services/thread-lifecycle.service.d.ts.map +1 -1
  473. package/dist/services/thread-lifecycle.service.js +47 -6
  474. package/dist/services/thread-lifecycle.service.js.map +1 -1
  475. package/dist/services/thread-log-reader.d.ts +81 -0
  476. package/dist/services/thread-log-reader.d.ts.map +1 -0
  477. package/dist/services/thread-log-reader.js +141 -0
  478. package/dist/services/thread-log-reader.js.map +1 -0
  479. package/dist/services/thread-purge.service.d.ts +200 -0
  480. package/dist/services/thread-purge.service.d.ts.map +1 -0
  481. package/dist/services/thread-purge.service.js +644 -0
  482. package/dist/services/thread-purge.service.js.map +1 -0
  483. package/dist/services/topic.service.d.ts +44 -2
  484. package/dist/services/topic.service.d.ts.map +1 -1
  485. package/dist/services/topic.service.js +74 -13
  486. package/dist/services/topic.service.js.map +1 -1
  487. package/dist/services/usage/usage-inbox-notifier.d.ts +50 -0
  488. package/dist/services/usage/usage-inbox-notifier.d.ts.map +1 -0
  489. package/dist/services/usage/usage-inbox-notifier.js +118 -0
  490. package/dist/services/usage/usage-inbox-notifier.js.map +1 -0
  491. package/dist/services/usage/usage-poller.service.d.ts +41 -0
  492. package/dist/services/usage/usage-poller.service.d.ts.map +1 -0
  493. package/dist/services/usage/usage-poller.service.js +67 -0
  494. package/dist/services/usage/usage-poller.service.js.map +1 -0
  495. package/dist/services/usage/usage-snapshot-provider.d.ts +40 -0
  496. package/dist/services/usage/usage-snapshot-provider.d.ts.map +1 -0
  497. package/dist/services/usage/usage-snapshot-provider.js +89 -0
  498. package/dist/services/usage/usage-snapshot-provider.js.map +1 -0
  499. package/dist/services/usage/usage-types.d.ts +28 -0
  500. package/dist/services/usage/usage-types.d.ts.map +1 -0
  501. package/dist/services/usage/usage-types.js +14 -0
  502. package/dist/services/usage/usage-types.js.map +1 -0
  503. package/dist/services/worker-birth.d.ts +154 -0
  504. package/dist/services/worker-birth.d.ts.map +1 -0
  505. package/dist/services/worker-birth.js +274 -0
  506. package/dist/services/worker-birth.js.map +1 -0
  507. package/dist/services/worker-cleanup.service.d.ts +242 -19
  508. package/dist/services/worker-cleanup.service.d.ts.map +1 -1
  509. package/dist/services/worker-cleanup.service.js +893 -355
  510. package/dist/services/worker-cleanup.service.js.map +1 -1
  511. package/dist/services/worker-lifecycle-executor.d.ts +42 -0
  512. package/dist/services/worker-lifecycle-executor.d.ts.map +1 -0
  513. package/dist/services/worker-lifecycle-executor.js +63 -0
  514. package/dist/services/worker-lifecycle-executor.js.map +1 -0
  515. package/dist/services/worker-single-use.d.ts +92 -0
  516. package/dist/services/worker-single-use.d.ts.map +1 -0
  517. package/dist/services/worker-single-use.js +155 -0
  518. package/dist/services/worker-single-use.js.map +1 -0
  519. package/dist/sessions/mcp-registry.d.ts +33 -2
  520. package/dist/sessions/mcp-registry.d.ts.map +1 -1
  521. package/dist/sessions/mcp-registry.js +153 -30
  522. package/dist/sessions/mcp-registry.js.map +1 -1
  523. package/dist/test-bootstrap.d.ts +19 -12
  524. package/dist/test-bootstrap.d.ts.map +1 -1
  525. package/dist/test-bootstrap.js +69 -21
  526. package/dist/test-bootstrap.js.map +1 -1
  527. package/dist/test-tripwire.test-support.d.ts +75 -0
  528. package/dist/test-tripwire.test-support.d.ts.map +1 -0
  529. package/dist/test-tripwire.test-support.js +353 -0
  530. package/dist/test-tripwire.test-support.js.map +1 -0
  531. package/dist/tools/defs/memory-defs.d.ts.map +1 -1
  532. package/dist/tools/defs/memory-defs.js +12 -4
  533. package/dist/tools/defs/memory-defs.js.map +1 -1
  534. package/dist/tools/defs/session-defs.d.ts.map +1 -1
  535. package/dist/tools/defs/session-defs.js +26 -10
  536. package/dist/tools/defs/session-defs.js.map +1 -1
  537. package/dist/tools/defs/utility-defs.js +1 -1
  538. package/dist/tools/defs/utility-defs.js.map +1 -1
  539. package/dist/tools/delegate-tool.d.ts +81 -1
  540. package/dist/tools/delegate-tool.d.ts.map +1 -1
  541. package/dist/tools/delegate-tool.js +840 -219
  542. package/dist/tools/delegate-tool.js.map +1 -1
  543. package/dist/tools/memory-tools.d.ts.map +1 -1
  544. package/dist/tools/memory-tools.js +66 -9
  545. package/dist/tools/memory-tools.js.map +1 -1
  546. package/dist/tools/response-builders.d.ts.map +1 -1
  547. package/dist/tools/response-builders.js +12 -8
  548. package/dist/tools/response-builders.js.map +1 -1
  549. package/dist/tools/session-tools.d.ts.map +1 -1
  550. package/dist/tools/session-tools.js +3 -32
  551. package/dist/tools/session-tools.js.map +1 -1
  552. package/dist/tools/skill-tools.js +1 -1
  553. package/dist/tools/skill-tools.js.map +1 -1
  554. package/dist/tools/start-session-tool.d.ts.map +1 -1
  555. package/dist/tools/start-session-tool.js +66 -20
  556. package/dist/tools/start-session-tool.js.map +1 -1
  557. package/dist/tools/utility-tools.d.ts.map +1 -1
  558. package/dist/tools/utility-tools.js +38 -3
  559. package/dist/tools/utility-tools.js.map +1 -1
  560. package/dist/tools/wait/auto-forward.d.ts.map +1 -1
  561. package/dist/tools/wait/auto-forward.js +8 -3
  562. package/dist/tools/wait/auto-forward.js.map +1 -1
  563. package/dist/tools/wait/consolidation-strategy.d.ts +42 -0
  564. package/dist/tools/wait/consolidation-strategy.d.ts.map +1 -0
  565. package/dist/tools/wait/consolidation-strategy.js +50 -0
  566. package/dist/tools/wait/consolidation-strategy.js.map +1 -0
  567. package/dist/tools/wait/drive-handler.d.ts +5 -7
  568. package/dist/tools/wait/drive-handler.d.ts.map +1 -1
  569. package/dist/tools/wait/drive-handler.js +45 -59
  570. package/dist/tools/wait/drive-handler.js.map +1 -1
  571. package/dist/tools/wait/media-processor.d.ts.map +1 -1
  572. package/dist/tools/wait/media-processor.js +8 -4
  573. package/dist/tools/wait/media-processor.js.map +1 -1
  574. package/dist/tools/wait/message-delivery.d.ts +9 -6
  575. package/dist/tools/wait/message-delivery.d.ts.map +1 -1
  576. package/dist/tools/wait/message-delivery.js +77 -58
  577. package/dist/tools/wait/message-delivery.js.map +1 -1
  578. package/dist/tools/wait/message-processing.d.ts.map +1 -1
  579. package/dist/tools/wait/message-processing.js +2 -1
  580. package/dist/tools/wait/message-processing.js.map +1 -1
  581. package/dist/tools/wait/poll-loop.d.ts.map +1 -1
  582. package/dist/tools/wait/poll-loop.js +339 -239
  583. package/dist/tools/wait/poll-loop.js.map +1 -1
  584. package/package.json +4 -3
  585. package/templates/azure-devops-securevault.default.md +20 -6
  586. package/templates/board-quality-checklist.default.md +121 -0
  587. package/templates/buildless-vue-preview.default.md +47 -0
  588. package/templates/expert-code-review.default.md +12 -0
  589. package/templates/handoff.default.md +41 -18
  590. package/templates/increment-pr-pipeline.default.md +79 -0
  591. package/templates/swarm.default.md +1 -0
  592. package/templates/worker-autonomous.default.md +1 -0
  593. package/templates/worker-delegate.default.md +1 -0
  594. package/dist/dashboard/log-parser.d.ts +0 -65
  595. package/dist/dashboard/log-parser.d.ts.map +0 -1
  596. package/dist/dashboard/log-parser.js +0 -219
  597. package/dist/dashboard/log-parser.js.map +0 -1
  598. package/dist/data/memory/reflection-dedup.d.ts +0 -17
  599. package/dist/data/memory/reflection-dedup.d.ts.map +0 -1
  600. package/dist/data/memory/reflection-dedup.js +0 -55
  601. package/dist/data/memory/reflection-dedup.js.map +0 -1
  602. package/dist/data/memory/reflection-gates.d.ts +0 -40
  603. package/dist/data/memory/reflection-gates.d.ts.map +0 -1
  604. package/dist/data/memory/reflection-gates.js +0 -220
  605. package/dist/data/memory/reflection-gates.js.map +0 -1
  606. package/dist/data/memory/reflection-sources.d.ts +0 -13
  607. package/dist/data/memory/reflection-sources.d.ts.map +0 -1
  608. package/dist/data/memory/reflection-sources.js +0 -115
  609. package/dist/data/memory/reflection-sources.js.map +0 -1
  610. package/dist/data/memory/reflection.d.ts +0 -43
  611. package/dist/data/memory/reflection.d.ts.map +0 -1
  612. package/dist/data/memory/reflection.js +0 -329
  613. package/dist/data/memory/reflection.js.map +0 -1
  614. package/dist/llm/prompts/reflection.d.ts +0 -6
  615. package/dist/llm/prompts/reflection.d.ts.map +0 -1
  616. package/dist/llm/prompts/reflection.js +0 -77
  617. package/dist/llm/prompts/reflection.js.map +0 -1
  618. package/dist/services/memory-pruning.service.d.ts +0 -12
  619. package/dist/services/memory-pruning.service.d.ts.map +0 -1
  620. package/dist/services/memory-pruning.service.js +0 -179
  621. package/dist/services/memory-pruning.service.js.map +0 -1
  622. package/templates/daily-review.default.md +0 -26
  623. package/templates/fire-and-forget.default.md +0 -76
  624. package/templates/offload.default.md +0 -33
  625. package/templates/sensorium-repair.default.md +0 -114
@@ -1,219 +0,0 @@
1
- /**
2
- * Parser for Claude CLI stream-json thread logs (newline-delimited JSON).
3
- *
4
- * The agent's stdout is captured as one JSON event per line. This turns that
5
- * raw event stream into readable, condensed "turns" for display over Telegram.
6
- * A turn is one assistant message (its text + any tool calls) together with the
7
- * tool results that immediately follow it.
8
- *
9
- * Assistant text is shown in full; tool inputs and tool results are previewed
10
- * (collapsed to a single line and capped) because they are machine output, not
11
- * the agent's reasoning, and would otherwise drown the useful signal.
12
- *
13
- * Each entry is prefixed with the wall-clock time of the event it came from, so
14
- * the reader can tell when a step ran and how long the next one waited.
15
- */
16
- export const DEFAULT_PREVIEW_CHARS = 300;
17
- /**
18
- * Short local-clock prefix ("HH:MM:SS ") for an event's ISO timestamp.
19
- *
20
- * The unstamped path is load-bearing, not defensive: `system`, `tool_progress`
21
- * and `result` events have never carried a `timestamp`, and `assistant` events
22
- * only started carrying one in the CLI builds from ~2026-07-20 — in archived
23
- * logs before that, tool_result lines are stamped and the assistant lines above
24
- * them are not. Anything unstamped or unparseable yields an empty prefix, so
25
- * those entries render exactly as they did before timestamps existed; an
26
- * "undefined" or blank column would be worse than no column. Do not drop the
27
- * guards on the assumption that every event is stamped.
28
- *
29
- * Seconds rather than the full ISO string because every prefix is charged
30
- * against a 4096-char Telegram page. Local time rather than UTC — note this is
31
- * the MCP server process's zone, not the reader's, and it deliberately diverges
32
- * from every other timestamp surface in the system (server.log and the
33
- * supervisor's Serilog output are both UTC, as is the raw `timestamp` parsed
34
- * here). It reads naturally while the operator is co-located with the server;
35
- * correlating a digest line against those UTC logs means applying the host's
36
- * offset by hand.
37
- */
38
- function timePrefix(timestamp) {
39
- if (typeof timestamp !== "string")
40
- return "";
41
- const at = new Date(timestamp);
42
- if (Number.isNaN(at.getTime()))
43
- return "";
44
- const pad = (n) => String(n).padStart(2, "0");
45
- return `${pad(at.getHours())}:${pad(at.getMinutes())}:${pad(at.getSeconds())} `;
46
- }
47
- /** Collapse whitespace and cap length, appending an ellipsis when truncated. */
48
- function preview(s, max) {
49
- const oneLine = s.replace(/\s+/g, " ").trim();
50
- return oneLine.length > max ? oneLine.slice(0, max) + "…" : oneLine;
51
- }
52
- function compactArgs(input, max) {
53
- let s;
54
- try {
55
- s = typeof input === "string" ? input : JSON.stringify(input ?? {});
56
- }
57
- catch {
58
- s = String(input);
59
- }
60
- return preview(s, max);
61
- }
62
- /** Extract readable text from a tool_result's content (string, or array of text blocks). */
63
- function resultText(content) {
64
- if (typeof content === "string")
65
- return content;
66
- if (Array.isArray(content)) {
67
- return content
68
- .map((c) => {
69
- if (c && typeof c === "object" && typeof c.text === "string") {
70
- return c.text;
71
- }
72
- return JSON.stringify(c);
73
- })
74
- .join(" ");
75
- }
76
- return JSON.stringify(content ?? "");
77
- }
78
- /**
79
- * Parse a raw stream-json log into chronological turns. Malformed lines and
80
- * noise events (system, rate_limit_event) are skipped.
81
- */
82
- export function parseClaudeStreamLog(raw, previewChars = DEFAULT_PREVIEW_CHARS) {
83
- const turns = [];
84
- let current = null;
85
- for (const line of raw.split("\n")) {
86
- const trimmed = line.trim();
87
- if (!trimmed)
88
- continue;
89
- let ev;
90
- try {
91
- ev = JSON.parse(trimmed);
92
- }
93
- catch {
94
- continue;
95
- }
96
- const at = timePrefix(ev.timestamp);
97
- if (ev.type === "assistant" && ev.message?.content) {
98
- current = { lines: [] };
99
- turns.push(current);
100
- for (const c of ev.message.content) {
101
- if (c.type === "text" && typeof c.text === "string") {
102
- const t = c.text.trim();
103
- if (t)
104
- current.lines.push(`${at}🤖 ${t}`);
105
- }
106
- else if (c.type === "tool_use") {
107
- const name = typeof c.name === "string" ? c.name : "tool";
108
- current.lines.push(`${at}🔧 ${name}(${compactArgs(c.input, previewChars)})`);
109
- }
110
- }
111
- }
112
- else if (ev.type === "user" && ev.message?.content) {
113
- for (const c of ev.message.content) {
114
- if (c.type !== "tool_result")
115
- continue;
116
- if (!current) {
117
- current = { lines: [] };
118
- turns.push(current);
119
- }
120
- const marker = c.is_error ? "⚠️" : "↳";
121
- current.lines.push(`${at} ${marker} ${preview(resultText(c.content), previewChars)}`);
122
- }
123
- }
124
- else if (ev.type === "result") {
125
- const marker = ev.is_error ? "❌" : "✅";
126
- turns.push({
127
- lines: [
128
- `${at}${marker} ${preview(typeof ev.result === "string" ? ev.result : "", previewChars)}`,
129
- ],
130
- });
131
- current = null;
132
- }
133
- }
134
- return turns;
135
- }
136
- /**
137
- * Extract the agent's most recent assistant TEXT from a raw stream-json log.
138
- *
139
- * Walks the stream-json events and returns the concatenated text blocks of the
140
- * last `assistant` message that carried any non-empty text. tool_use-only
141
- * assistant messages are ignored (they carry no operator-visible prose).
142
- *
143
- * Returns an empty string when the log has no assistant text at all — the
144
- * caller (auto-forward) treats that as "nothing to forward".
145
- */
146
- export function extractLastAssistantText(raw) {
147
- let lastText = "";
148
- for (const line of raw.split("\n")) {
149
- const trimmed = line.trim();
150
- if (!trimmed)
151
- continue;
152
- let ev;
153
- try {
154
- ev = JSON.parse(trimmed);
155
- }
156
- catch {
157
- continue;
158
- }
159
- if (ev.type !== "assistant" || !ev.message?.content)
160
- continue;
161
- const text = ev.message.content
162
- .filter((c) => c.type === "text" && typeof c.text === "string")
163
- .map((c) => c.text)
164
- .join("")
165
- .trim();
166
- if (text)
167
- lastText = text;
168
- }
169
- return lastText;
170
- }
171
- /**
172
- * Render turns to a single string. With tailFirst (default) the most recent
173
- * turn appears first, so a reader paging from the top sees latest activity.
174
- */
175
- export function renderThreadLog(turns, tailFirst = true) {
176
- const ordered = tailFirst ? [...turns].reverse() : turns;
177
- return ordered.map((t) => t.lines.join("\n")).join("\n\n");
178
- }
179
- /** Default character window per page — matches Telegram's ~4096-char message cap. */
180
- export const DEFAULT_LOG_PAGE_CHARS = 4000;
181
- /** Clamp an offset to [0, max]; non-finite or non-positive values become 0. */
182
- function clampOffset(n, max) {
183
- if (!Number.isFinite(n) || n <= 0)
184
- return 0;
185
- return Math.min(Math.floor(n), max);
186
- }
187
- /** Clamp a page size to (0, DEFAULT_LOG_PAGE_CHARS]; invalid values default to the cap. */
188
- function clampLimit(n) {
189
- if (!Number.isFinite(n) || n <= 0)
190
- return DEFAULT_LOG_PAGE_CHARS;
191
- return Math.min(Math.floor(n), DEFAULT_LOG_PAGE_CHARS);
192
- }
193
- /**
194
- * Extract a single character window from a rendered log for paginated display.
195
- *
196
- * The digest uses astral emoji markers (🤖🔧✅…), so a naive .slice() could cut
197
- * between the two UTF-16 code units of a surrogate pair and emit a lone
198
- * surrogate that renders as �. When the window would end mid-pair we snap the
199
- * end back one unit; that code unit becomes the start of the next page.
200
- */
201
- export function sliceLogWindow(rendered, offsetRaw, limitRaw) {
202
- const totalLength = rendered.length;
203
- const offset = clampOffset(offsetRaw, totalLength);
204
- const limit = clampLimit(limitRaw);
205
- let end = Math.min(offset + limit, totalLength);
206
- if (end < totalLength && end - 1 > offset) {
207
- const lastCode = rendered.charCodeAt(end - 1);
208
- if (lastCode >= 0xd800 && lastCode <= 0xdbff)
209
- end -= 1;
210
- }
211
- return {
212
- text: rendered.slice(offset, end),
213
- offset,
214
- nextOffset: end,
215
- hasMore: end < totalLength,
216
- totalLength,
217
- };
218
- }
219
- //# sourceMappingURL=log-parser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"log-parser.js","sourceRoot":"","sources":["../../src/dashboard/log-parser.ts"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- /**
2
- * Reflection de-duplication — embedding-based checks that prevent saving
3
- * insights or lessons that semantically duplicate existing reflections.
4
- */
5
- import type { Database } from "./schema.js";
6
- export declare function checkDuplicate(db: Database, content: string, apiKey: string, threadId: number): Promise<{
7
- isDuplicate: boolean;
8
- embedding: Float32Array | null;
9
- }>;
10
- /**
11
- * Lesson-level dedup: checks if a semantically similar lesson already exists
12
- * among reflection notes using a lower similarity threshold (0.75).
13
- * Catches generic lessons like "Always do comprehensive code reviews" that are
14
- * worded differently but carry the same meaning.
15
- */
16
- export declare function checkLessonDuplicate(db: Database, lesson: string, apiKey: string, knowledgeThreadId: number): Promise<boolean>;
17
- //# sourceMappingURL=reflection-dedup.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"reflection-dedup.d.ts","sourceRoot":"","sources":["../../../src/data/memory/reflection-dedup.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAS5C,wBAAsB,cAAc,CAClC,EAAE,EAAE,QAAQ,EACZ,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;IAAE,WAAW,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,YAAY,GAAG,IAAI,CAAA;CAAE,CAAC,CAkBnE;AAED;;;;;GAKG;AACH,wBAAsB,oBAAoB,CACxC,EAAE,EAAE,QAAQ,EACZ,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,iBAAiB,EAAE,MAAM,GACxB,OAAO,CAAC,OAAO,CAAC,CAsBlB"}
@@ -1,55 +0,0 @@
1
- /**
2
- * Reflection de-duplication — embedding-based checks that prevent saving
3
- * insights or lessons that semantically duplicate existing reflections.
4
- */
5
- import { searchByEmbedding } from "./note-embeddings.js";
6
- import { generateEmbedding } from "../../integrations/openai/chat.js";
7
- import { log } from "../../lib/logger.js";
8
- import { errorMessage } from "../../lib/utils.js";
9
- const DEDUP_SIMILARITY_THRESHOLD = 0.86;
10
- const LESSON_DEDUP_THRESHOLD = 0.75;
11
- export async function checkDuplicate(db, content, apiKey, threadId) {
12
- try {
13
- const embedding = await generateEmbedding(content, apiKey, threadId);
14
- const matches = searchByEmbedding(db, embedding, {
15
- maxResults: 8,
16
- minSimilarity: DEDUP_SIMILARITY_THRESHOLD,
17
- skipAccessTracking: true,
18
- threadId,
19
- });
20
- const isDuplicate = matches.some((m) => m.similarity >= DEDUP_SIMILARITY_THRESHOLD && m.content.startsWith("[REFLECTION]"));
21
- return { isDuplicate, embedding };
22
- }
23
- catch (err) {
24
- log.warn(`[reflection] Dedup embedding lookup failed: ${errorMessage(err)}`);
25
- // Embedding lookup failed — allow the insight through to avoid data loss
26
- return { isDuplicate: false, embedding: null };
27
- }
28
- }
29
- /**
30
- * Lesson-level dedup: checks if a semantically similar lesson already exists
31
- * among reflection notes using a lower similarity threshold (0.75).
32
- * Catches generic lessons like "Always do comprehensive code reviews" that are
33
- * worded differently but carry the same meaning.
34
- */
35
- export async function checkLessonDuplicate(db, lesson, apiKey, knowledgeThreadId) {
36
- try {
37
- const embedding = await generateEmbedding(lesson, apiKey, knowledgeThreadId);
38
- const matches = searchByEmbedding(db, embedding, {
39
- maxResults: 8,
40
- minSimilarity: LESSON_DEDUP_THRESHOLD,
41
- skipAccessTracking: true,
42
- threadId: knowledgeThreadId,
43
- });
44
- if (matches.some((m) => m.similarity >= LESSON_DEDUP_THRESHOLD && m.content.startsWith("[REFLECTION]"))) {
45
- return true;
46
- }
47
- return false;
48
- }
49
- catch (err) {
50
- log.warn(`[reflection] Lesson dedup embedding lookup failed: ${errorMessage(err)}`);
51
- // Embedding lookup failed — allow through to avoid data loss
52
- return false;
53
- }
54
- }
55
- //# sourceMappingURL=reflection-dedup.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"reflection-dedup.js","sourceRoot":"","sources":["../../../src/data/memory/reflection-dedup.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,0BAA0B,GAAG,IAAI,CAAC;AACxC,MAAM,sBAAsB,GAAG,IAAI,CAAC;AAEpC,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,EAAY,EACZ,OAAe,EACf,MAAc,EACd,QAAgB;IAEhB,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QACrE,MAAM,OAAO,GAAG,iBAAiB,CAAC,EAAE,EAAE,SAAS,EAAE;YAC/C,UAAU,EAAE,CAAC;YACb,aAAa,EAAE,0BAA0B;YACzC,kBAAkB,EAAE,IAAI;YACxB,QAAQ;SACT,CAAC,CAAC;QACH,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAC9B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,0BAA0B,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAC1F,CAAC;QACF,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC;IACpC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,IAAI,CAAC,+CAA+C,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC7E,yEAAyE;QACzE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IACjD,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,EAAY,EACZ,MAAc,EACd,MAAc,EACd,iBAAyB;IAEzB,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;QAC7E,MAAM,OAAO,GAAG,iBAAiB,CAAC,EAAE,EAAE,SAAS,EAAE;YAC/C,UAAU,EAAE,CAAC;YACb,aAAa,EAAE,sBAAsB;YACrC,kBAAkB,EAAE,IAAI;YACxB,QAAQ,EAAE,iBAAiB;SAC5B,CAAC,CAAC;QACH,IACE,OAAO,CAAC,IAAI,CACV,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,sBAAsB,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CACtF,EACD,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,IAAI,CAAC,sDAAsD,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpF,6DAA6D;QAC7D,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
@@ -1,40 +0,0 @@
1
- /**
2
- * Reflection quality gates — pure checks that reject vague, meta, or
3
- * non-actionable insights, plus the structured-field parser.
4
- */
5
- /** Check if an insight passes the quality gate (actionable, specific, non-vague, non-meta). */
6
- export declare function passesQualityGate(content: string, confidence: number): {
7
- pass: boolean;
8
- reason?: string;
9
- };
10
- /** Parse reflection content into structured fields. Returns null if parsing fails. */
11
- export declare function parseReflectionFields(content: string): {
12
- decision: string;
13
- context: string;
14
- outcome: string;
15
- root_cause: string;
16
- lesson: string;
17
- } | null;
18
- /** True if the text names something specific rather than being an abstract platitude. */
19
- export declare function hasConcreteAnchor(text: string): boolean;
20
- /**
21
- * Validate structural integrity of parsed insight fields.
22
- *
23
- * `requireAnchor` gates the lesson on a concrete anchor (identifier/file/version).
24
- * It defaults ON for the generation path (reject new platitudes). The existing-notes
25
- * cleanup sweep passes it OFF so tightening the anchor rule never retroactively
26
- * expires historical reflections — legacy cleanup is a separate, backed-up step.
27
- */
28
- export declare function passesStructuralGate(insight: {
29
- decision: string;
30
- context: string;
31
- outcome: string;
32
- root_cause: string;
33
- lesson: string;
34
- }, options?: {
35
- requireAnchor?: boolean;
36
- }): {
37
- pass: boolean;
38
- reason?: string;
39
- };
40
- //# sourceMappingURL=reflection-gates.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"reflection-gates.d.ts","sourceRoot":"","sources":["../../../src/data/memory/reflection-gates.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAqCH,+FAA+F;AAC/F,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GACjB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAkBpC;AAED,sFAAsF;AACtF,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG;IACtD,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,IAAI,CAgBP;AAiCD,yFAAyF;AACzF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAIvD;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE;IACP,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB,EACD,OAAO,GAAE;IAAE,aAAa,CAAC,EAAE,OAAO,CAAA;CAAO,GACxC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CA4GpC"}
@@ -1,220 +0,0 @@
1
- /**
2
- * Reflection quality gates — pure checks that reject vague, meta, or
3
- * non-actionable insights, plus the structured-field parser.
4
- */
5
- const MIN_INSIGHT_LENGTH = 50;
6
- const VAGUE_PATTERNS = [
7
- /\bthe agent tends to\b/i,
8
- /\bI tend to\b/i,
9
- /\bthe agent demonstrates\b/i,
10
- /\bthe agent frequently\b/i,
11
- /\bshould consider\b/i,
12
- /\bthis (is|was) (a |an )?(good|important|useful)\b/i,
13
- /\bin general\b/i,
14
- /\boverall\b.*\b(good|well|effective)\b/i,
15
- /\bthe key (insight|takeaway|lesson) is\b/i,
16
- /\bit('s| is) important to\b/i,
17
- /\bthis (led|leads) to\b(?!\s+\w{4,})/i,
18
- /\bgoing forward\b/i,
19
- /\bmoving forward\b/i,
20
- /\ba? ?valuable (lesson|experience|insight)\b/i,
21
- /\bI (learned|realized|recognized|acknowledged) that\b/i,
22
- /\bthis (highlights|underscores|demonstrates)\b/i,
23
- /\bsignificant (progress|strides|developments?|evolution)\b/i,
24
- /\bnotable improvements?\b/i,
25
- /\bvarious features\b/i,
26
- /\bseveral enhancements\b/i,
27
- /\bI regularly (review|conduct|perform|check)\b/i,
28
- /\bI frequently (create|manage|handle)\b/i,
29
- ];
30
- const BANNED_TOPIC_PATTERNS = [
31
- /\bmemory (system|audit|cleanup|quality|consolidat)/i,
32
- /\bconsolidation (process|pipeline|prompt)\b/i,
33
- /\breflection (quality|pipeline|system)\b/i,
34
- /\bdeduplication\b/i,
35
- /\bnote (archival|cleanup|expir)/i,
36
- /\bI (conducted|scheduled|implemented) a (memory|cleanup|audit)\b/i,
37
- ];
38
- /** Check if an insight passes the quality gate (actionable, specific, non-vague, non-meta). */
39
- export function passesQualityGate(content, confidence) {
40
- if (content.length < MIN_INSIGHT_LENGTH) {
41
- return { pass: false, reason: "too short" };
42
- }
43
- if (confidence < 0.3) {
44
- return { pass: false, reason: "confidence too low" };
45
- }
46
- for (const pattern of VAGUE_PATTERNS) {
47
- if (pattern.test(content)) {
48
- return { pass: false, reason: `matches vague pattern: ${pattern.source}` };
49
- }
50
- }
51
- for (const pattern of BANNED_TOPIC_PATTERNS) {
52
- if (pattern.test(content)) {
53
- return { pass: false, reason: `banned topic: ${pattern.source}` };
54
- }
55
- }
56
- return { pass: true };
57
- }
58
- /** Parse reflection content into structured fields. Returns null if parsing fails. */
59
- export function parseReflectionFields(content) {
60
- const decisionMatch = content.match(/Decision:\s*(.+?)(?:\s*Context:|$)/s);
61
- const contextMatch = content.match(/Context:\s*(.+?)(?:\s*Outcome:|$)/s);
62
- const outcomeMatch = content.match(/Outcome:\s*(.+?)(?:\s*Root cause:|$)/s);
63
- const rootCauseMatch = content.match(/Root cause:\s*(.+?)(?:\s*Lesson:|$)/s);
64
- const lessonMatch = content.match(/Lesson:\s*(.+?)(?:\s*$)/s);
65
- if (!decisionMatch || !lessonMatch)
66
- return null;
67
- return {
68
- decision: decisionMatch[1]?.trim() ?? "",
69
- context: contextMatch?.[1]?.trim() ?? "",
70
- outcome: outcomeMatch?.[1]?.trim() ?? "",
71
- root_cause: rootCauseMatch?.[1]?.trim() ?? "",
72
- lesson: lessonMatch[1]?.trim() ?? "",
73
- };
74
- }
75
- // A concrete anchor is a specific, project-referencing token: a code identifier,
76
- // file/path, version, acronym, or number. Generic prose maxims ("Always
77
- // communicate clearly", "Break tasks into steps") contain none of these and carry
78
- // no reusable, project-specific value — they are the dominant reflection noise.
79
- const ANCHOR_PATTERNS = [
80
- /`[^`]+`/, // backticked code
81
- /\b\w+\.(ts|js|tsx|jsx|cs|py|json|sql|md|ya?ml|sh|db)\b/i, // filename
82
- /[/\\]\w/, // path segment
83
- /\b[a-z][a-z0-9]*[A-Z][a-zA-Z0-9]*\b/, // camelCase identifier
84
- /\b[A-Z][a-z0-9]+[A-Z][a-zA-Z0-9]*\b/, // PascalCase identifier
85
- /\b[a-z0-9]+_[a-z0-9]+\b/, // snake_case identifier
86
- /\bv?\d+\.\d+/, // version / decimal (5.2.2, v1.2)
87
- ];
88
- // All-caps tokens that are filler, not project anchors — excluded from the acronym rule.
89
- const NON_ANCHOR_ACRONYMS = new Set([
90
- "OK",
91
- "TODO",
92
- "ASAP",
93
- "FYI",
94
- "AKA",
95
- "ETA",
96
- "YES",
97
- "NO",
98
- "AI",
99
- "IT",
100
- "OKAY",
101
- "PM",
102
- "IMO",
103
- ]);
104
- /** True if the text names something specific rather than being an abstract platitude. */
105
- export function hasConcreteAnchor(text) {
106
- if (ANCHOR_PATTERNS.some((p) => p.test(text)))
107
- return true;
108
- const acronyms = text.match(/\b[A-Z]{2,}\b/g);
109
- return Boolean(acronyms && acronyms.some((a) => !NON_ANCHOR_ACRONYMS.has(a)));
110
- }
111
- /**
112
- * Validate structural integrity of parsed insight fields.
113
- *
114
- * `requireAnchor` gates the lesson on a concrete anchor (identifier/file/version).
115
- * It defaults ON for the generation path (reject new platitudes). The existing-notes
116
- * cleanup sweep passes it OFF so tightening the anchor rule never retroactively
117
- * expires historical reflections — legacy cleanup is a separate, backed-up step.
118
- */
119
- export function passesStructuralGate(insight, options = {}) {
120
- const { requireAnchor = true } = options;
121
- // Check root_cause is meaningfully different from outcome (skip for very short fields)
122
- const outcomeWords = new Set(insight.outcome
123
- .toLowerCase()
124
- .replace(/[.,:;!?]/g, "")
125
- .split(/\s+/)
126
- .filter((w) => w.length > 3));
127
- const rootWords = new Set(insight.root_cause
128
- .toLowerCase()
129
- .replace(/[.,:;!?]/g, "")
130
- .split(/\s+/)
131
- .filter((w) => w.length > 3));
132
- if (outcomeWords.size >= 3) {
133
- const overlap = [...outcomeWords].filter((w) => rootWords.has(w)).length;
134
- const overlapRatio = overlap / outcomeWords.size;
135
- if (overlapRatio > 0.6) {
136
- return { pass: false, reason: "root_cause restates outcome" };
137
- }
138
- }
139
- // Check lesson starts with a verb (actionable)
140
- const lessonStart = insight.lesson.trim().split(/\s/)[0]?.toLowerCase() ?? "";
141
- const actionVerbs = [
142
- "always",
143
- "never",
144
- "before",
145
- "after",
146
- "when",
147
- "if",
148
- "check",
149
- "verify",
150
- "ensure",
151
- "use",
152
- "avoid",
153
- "run",
154
- "test",
155
- "add",
156
- "remove",
157
- "set",
158
- "create",
159
- "implement",
160
- "review",
161
- "validate",
162
- "confirm",
163
- "monitor",
164
- "track",
165
- "log",
166
- "document",
167
- "separate",
168
- "isolate",
169
- "prefer",
170
- "prioritize",
171
- "consider",
172
- "evaluate",
173
- "compare",
174
- "measure",
175
- "schedule",
176
- "watch",
177
- "build",
178
- "configure",
179
- "enable",
180
- "define",
181
- "wrap",
182
- "cache",
183
- "query",
184
- "disable",
185
- "expose",
186
- "update",
187
- "read",
188
- "write",
189
- "fetch",
190
- "parse",
191
- "handle",
192
- "keep",
193
- "limit",
194
- "require",
195
- "include",
196
- "exclude",
197
- "apply",
198
- "deploy",
199
- "migrate",
200
- "start",
201
- "stop",
202
- ];
203
- if (!actionVerbs.some((v) => lessonStart.startsWith(v))) {
204
- return { pass: false, reason: "lesson does not start with an action verb" };
205
- }
206
- // Check minimum field lengths (more strict than the 10-char check elsewhere)
207
- if (insight.root_cause.length < 30) {
208
- return { pass: false, reason: "root_cause too shallow (< 30 chars)" };
209
- }
210
- if (insight.lesson.length < 20) {
211
- return { pass: false, reason: "lesson too short (< 20 chars)" };
212
- }
213
- // Lesson must name something concrete. A generic maxim with no file, component,
214
- // version, identifier, or number is a platitude, not a project-specific lesson.
215
- if (requireAnchor && !hasConcreteAnchor(insight.lesson)) {
216
- return { pass: false, reason: "lesson has no concrete anchor (generic platitude)" };
217
- }
218
- return { pass: true };
219
- }
220
- //# sourceMappingURL=reflection-gates.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"reflection-gates.js","sourceRoot":"","sources":["../../../src/data/memory/reflection-gates.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- /**
2
- * Reflection source data — episode gathering, narrative building, and
3
- * keyword extraction for the reflection pipeline.
4
- */
5
- import type { Database } from "./schema.js";
6
- import { type Episode } from "./episodes.js";
7
- /** Build a time-ordered narrative from a list of episodes. */
8
- export declare function buildNarrative(episodes: Episode[]): string;
9
- /** Gather consolidated episodes: last N recent + random sample of older ones. */
10
- export declare function gatherEpisodes(db: Database, threadId: number, maxRecent: number, oldSampleSize: number): Episode[];
11
- /** Extract up to 5 meaningful keywords from free-text content. */
12
- export declare function extractKeywords(text: string): string[];
13
- //# sourceMappingURL=reflection-sources.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"reflection-sources.d.ts","sourceRoot":"","sources":["../../../src/data/memory/reflection-sources.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,KAAK,OAAO,EAAgB,MAAM,eAAe,CAAC;AAS3D,8DAA8D;AAC9D,wBAAgB,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM,CAO1D;AAED,iFAAiF;AACjF,wBAAgB,cAAc,CAC5B,EAAE,EAAE,QAAQ,EACZ,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,GACpB,OAAO,EAAE,CA+BX;AA2DD,kEAAkE;AAClE,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CActD"}