nodedex 0.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 (469) hide show
  1. package/adapters/claude-code-watcher.mjs +336 -0
  2. package/adapters/hermes-statedb-watcher.mjs +234 -0
  3. package/adapters/nodedex-capture-core.mjs +129 -0
  4. package/adapters/nodedex-capture.mjs +169 -0
  5. package/dist/agent-protocol.d.ts +7 -0
  6. package/dist/agent-protocol.d.ts.map +1 -0
  7. package/dist/agent-protocol.js +38 -0
  8. package/dist/agent-protocol.js.map +1 -0
  9. package/dist/api-server.d.ts +5 -0
  10. package/dist/api-server.d.ts.map +1 -0
  11. package/dist/api-server.js +351 -0
  12. package/dist/api-server.js.map +1 -0
  13. package/dist/boot-env.d.ts +2 -0
  14. package/dist/boot-env.d.ts.map +1 -0
  15. package/dist/boot-env.js +12 -0
  16. package/dist/boot-env.js.map +1 -0
  17. package/dist/engine/__tests__/search-core.test.d.ts +2 -0
  18. package/dist/engine/__tests__/search-core.test.d.ts.map +1 -0
  19. package/dist/engine/__tests__/search-core.test.js +139 -0
  20. package/dist/engine/__tests__/search-core.test.js.map +1 -0
  21. package/dist/engine/ai-provider.d.ts +45 -0
  22. package/dist/engine/ai-provider.d.ts.map +1 -0
  23. package/dist/engine/ai-provider.js +5 -0
  24. package/dist/engine/ai-provider.js.map +1 -0
  25. package/dist/engine/embeddings.d.ts +51 -0
  26. package/dist/engine/embeddings.d.ts.map +1 -0
  27. package/dist/engine/embeddings.js +89 -0
  28. package/dist/engine/embeddings.js.map +1 -0
  29. package/dist/engine/providers/__tests__/failure-policy.test.d.ts +2 -0
  30. package/dist/engine/providers/__tests__/failure-policy.test.d.ts.map +1 -0
  31. package/dist/engine/providers/__tests__/failure-policy.test.js +134 -0
  32. package/dist/engine/providers/__tests__/failure-policy.test.js.map +1 -0
  33. package/dist/engine/providers/__tests__/model-caps.test.d.ts +2 -0
  34. package/dist/engine/providers/__tests__/model-caps.test.d.ts.map +1 -0
  35. package/dist/engine/providers/__tests__/model-caps.test.js +38 -0
  36. package/dist/engine/providers/__tests__/model-caps.test.js.map +1 -0
  37. package/dist/engine/providers/__tests__/openai-structured.test.d.ts +2 -0
  38. package/dist/engine/providers/__tests__/openai-structured.test.d.ts.map +1 -0
  39. package/dist/engine/providers/__tests__/openai-structured.test.js +73 -0
  40. package/dist/engine/providers/__tests__/openai-structured.test.js.map +1 -0
  41. package/dist/engine/providers/__tests__/usage-ledger.test.d.ts +2 -0
  42. package/dist/engine/providers/__tests__/usage-ledger.test.d.ts.map +1 -0
  43. package/dist/engine/providers/__tests__/usage-ledger.test.js +108 -0
  44. package/dist/engine/providers/__tests__/usage-ledger.test.js.map +1 -0
  45. package/dist/engine/providers/anthropic.d.ts +17 -0
  46. package/dist/engine/providers/anthropic.d.ts.map +1 -0
  47. package/dist/engine/providers/anthropic.js +125 -0
  48. package/dist/engine/providers/anthropic.js.map +1 -0
  49. package/dist/engine/providers/failure-policy.d.ts +56 -0
  50. package/dist/engine/providers/failure-policy.d.ts.map +1 -0
  51. package/dist/engine/providers/failure-policy.js +120 -0
  52. package/dist/engine/providers/failure-policy.js.map +1 -0
  53. package/dist/engine/providers/gemini.d.ts +22 -0
  54. package/dist/engine/providers/gemini.d.ts.map +1 -0
  55. package/dist/engine/providers/gemini.js +180 -0
  56. package/dist/engine/providers/gemini.js.map +1 -0
  57. package/dist/engine/providers/index.d.ts +8 -0
  58. package/dist/engine/providers/index.d.ts.map +1 -0
  59. package/dist/engine/providers/index.js +67 -0
  60. package/dist/engine/providers/index.js.map +1 -0
  61. package/dist/engine/providers/local.d.ts +12 -0
  62. package/dist/engine/providers/local.d.ts.map +1 -0
  63. package/dist/engine/providers/local.js +46 -0
  64. package/dist/engine/providers/local.js.map +1 -0
  65. package/dist/engine/providers/model-caps.d.ts +6 -0
  66. package/dist/engine/providers/model-caps.d.ts.map +1 -0
  67. package/dist/engine/providers/model-caps.js +49 -0
  68. package/dist/engine/providers/model-caps.js.map +1 -0
  69. package/dist/engine/providers/openai.d.ts +30 -0
  70. package/dist/engine/providers/openai.d.ts.map +1 -0
  71. package/dist/engine/providers/openai.js +309 -0
  72. package/dist/engine/providers/openai.js.map +1 -0
  73. package/dist/engine/providers/usage-ledger.d.ts +69 -0
  74. package/dist/engine/providers/usage-ledger.d.ts.map +1 -0
  75. package/dist/engine/providers/usage-ledger.js +209 -0
  76. package/dist/engine/providers/usage-ledger.js.map +1 -0
  77. package/dist/engine/search-core.d.ts +40 -0
  78. package/dist/engine/search-core.d.ts.map +1 -0
  79. package/dist/engine/search-core.js +109 -0
  80. package/dist/engine/search-core.js.map +1 -0
  81. package/dist/engine/vector-math.d.ts +5 -0
  82. package/dist/engine/vector-math.d.ts.map +1 -0
  83. package/dist/engine/vector-math.js +25 -0
  84. package/dist/engine/vector-math.js.map +1 -0
  85. package/dist/home-env.d.ts +26 -0
  86. package/dist/home-env.d.ts.map +1 -0
  87. package/dist/home-env.js +87 -0
  88. package/dist/home-env.js.map +1 -0
  89. package/dist/mcp-server.d.ts +13 -0
  90. package/dist/mcp-server.d.ts.map +1 -0
  91. package/dist/mcp-server.js +79 -0
  92. package/dist/mcp-server.js.map +1 -0
  93. package/dist/middleware/auth.d.ts +23 -0
  94. package/dist/middleware/auth.d.ts.map +1 -0
  95. package/dist/middleware/auth.js +104 -0
  96. package/dist/middleware/auth.js.map +1 -0
  97. package/dist/middleware/auto-recall.d.ts +7 -0
  98. package/dist/middleware/auto-recall.d.ts.map +1 -0
  99. package/dist/middleware/auto-recall.js +257 -0
  100. package/dist/middleware/auto-recall.js.map +1 -0
  101. package/dist/middleware/auto-reflect.d.ts +4 -0
  102. package/dist/middleware/auto-reflect.d.ts.map +1 -0
  103. package/dist/middleware/auto-reflect.js +5 -0
  104. package/dist/middleware/auto-reflect.js.map +1 -0
  105. package/dist/middleware/reflect/apply-flag-verdict.d.ts +27 -0
  106. package/dist/middleware/reflect/apply-flag-verdict.d.ts.map +1 -0
  107. package/dist/middleware/reflect/apply-flag-verdict.js +57 -0
  108. package/dist/middleware/reflect/apply-flag-verdict.js.map +1 -0
  109. package/dist/middleware/reflect/arc-entity-resolve.d.ts +29 -0
  110. package/dist/middleware/reflect/arc-entity-resolve.d.ts.map +1 -0
  111. package/dist/middleware/reflect/arc-entity-resolve.js +356 -0
  112. package/dist/middleware/reflect/arc-entity-resolve.js.map +1 -0
  113. package/dist/middleware/reflect/arc-inactivity-timer.d.ts +47 -0
  114. package/dist/middleware/reflect/arc-inactivity-timer.d.ts.map +1 -0
  115. package/dist/middleware/reflect/arc-inactivity-timer.js +175 -0
  116. package/dist/middleware/reflect/arc-inactivity-timer.js.map +1 -0
  117. package/dist/middleware/reflect/arc-pipeline.d.ts +33 -0
  118. package/dist/middleware/reflect/arc-pipeline.d.ts.map +1 -0
  119. package/dist/middleware/reflect/arc-pipeline.js +498 -0
  120. package/dist/middleware/reflect/arc-pipeline.js.map +1 -0
  121. package/dist/middleware/reflect/comprehend-pergroup.d.ts +100 -0
  122. package/dist/middleware/reflect/comprehend-pergroup.d.ts.map +1 -0
  123. package/dist/middleware/reflect/comprehend-pergroup.js +610 -0
  124. package/dist/middleware/reflect/comprehend-pergroup.js.map +1 -0
  125. package/dist/middleware/reflect/comprehend.d.ts +237 -0
  126. package/dist/middleware/reflect/comprehend.d.ts.map +1 -0
  127. package/dist/middleware/reflect/comprehend.js +706 -0
  128. package/dist/middleware/reflect/comprehend.js.map +1 -0
  129. package/dist/middleware/reflect/config.d.ts +34 -0
  130. package/dist/middleware/reflect/config.d.ts.map +1 -0
  131. package/dist/middleware/reflect/config.js +131 -0
  132. package/dist/middleware/reflect/config.js.map +1 -0
  133. package/dist/middleware/reflect/context.d.ts +138 -0
  134. package/dist/middleware/reflect/context.d.ts.map +1 -0
  135. package/dist/middleware/reflect/context.js +619 -0
  136. package/dist/middleware/reflect/context.js.map +1 -0
  137. package/dist/middleware/reflect/cost-breakdown.d.ts +69 -0
  138. package/dist/middleware/reflect/cost-breakdown.d.ts.map +1 -0
  139. package/dist/middleware/reflect/cost-breakdown.js +63 -0
  140. package/dist/middleware/reflect/cost-breakdown.js.map +1 -0
  141. package/dist/middleware/reflect/cost-guard.d.ts +102 -0
  142. package/dist/middleware/reflect/cost-guard.d.ts.map +1 -0
  143. package/dist/middleware/reflect/cost-guard.js +243 -0
  144. package/dist/middleware/reflect/cost-guard.js.map +1 -0
  145. package/dist/middleware/reflect/cost-pricing.d.ts +54 -0
  146. package/dist/middleware/reflect/cost-pricing.d.ts.map +1 -0
  147. package/dist/middleware/reflect/cost-pricing.js +148 -0
  148. package/dist/middleware/reflect/cost-pricing.js.map +1 -0
  149. package/dist/middleware/reflect/cross-group-link.d.ts +61 -0
  150. package/dist/middleware/reflect/cross-group-link.d.ts.map +1 -0
  151. package/dist/middleware/reflect/cross-group-link.js +212 -0
  152. package/dist/middleware/reflect/cross-group-link.js.map +1 -0
  153. package/dist/middleware/reflect/dedup-by-source-and-value.d.ts +70 -0
  154. package/dist/middleware/reflect/dedup-by-source-and-value.d.ts.map +1 -0
  155. package/dist/middleware/reflect/dedup-by-source-and-value.js +0 -0
  156. package/dist/middleware/reflect/dedup-by-source-and-value.js.map +1 -0
  157. package/dist/middleware/reflect/describe-roots.d.ts +58 -0
  158. package/dist/middleware/reflect/describe-roots.d.ts.map +1 -0
  159. package/dist/middleware/reflect/describe-roots.js +266 -0
  160. package/dist/middleware/reflect/describe-roots.js.map +1 -0
  161. package/dist/middleware/reflect/flag-reviewer-startup.d.ts +16 -0
  162. package/dist/middleware/reflect/flag-reviewer-startup.d.ts.map +1 -0
  163. package/dist/middleware/reflect/flag-reviewer-startup.js +107 -0
  164. package/dist/middleware/reflect/flag-reviewer-startup.js.map +1 -0
  165. package/dist/middleware/reflect/flag-reviewer.d.ts +69 -0
  166. package/dist/middleware/reflect/flag-reviewer.d.ts.map +1 -0
  167. package/dist/middleware/reflect/flag-reviewer.js +520 -0
  168. package/dist/middleware/reflect/flag-reviewer.js.map +1 -0
  169. package/dist/middleware/reflect/inline-dedup.d.ts +26 -0
  170. package/dist/middleware/reflect/inline-dedup.d.ts.map +1 -0
  171. package/dist/middleware/reflect/inline-dedup.js +131 -0
  172. package/dist/middleware/reflect/inline-dedup.js.map +1 -0
  173. package/dist/middleware/reflect/justify-decisions.d.ts +37 -0
  174. package/dist/middleware/reflect/justify-decisions.d.ts.map +1 -0
  175. package/dist/middleware/reflect/justify-decisions.js +159 -0
  176. package/dist/middleware/reflect/justify-decisions.js.map +1 -0
  177. package/dist/middleware/reflect/nl-accept.d.ts +35 -0
  178. package/dist/middleware/reflect/nl-accept.d.ts.map +1 -0
  179. package/dist/middleware/reflect/nl-accept.js +167 -0
  180. package/dist/middleware/reflect/nl-accept.js.map +1 -0
  181. package/dist/middleware/reflect/pass0.d.ts +20 -0
  182. package/dist/middleware/reflect/pass0.d.ts.map +1 -0
  183. package/dist/middleware/reflect/pass0.js +423 -0
  184. package/dist/middleware/reflect/pass0.js.map +1 -0
  185. package/dist/middleware/reflect/pass1.d.ts +17 -0
  186. package/dist/middleware/reflect/pass1.d.ts.map +1 -0
  187. package/dist/middleware/reflect/pass1.js +241 -0
  188. package/dist/middleware/reflect/pass1.js.map +1 -0
  189. package/dist/middleware/reflect/pass2-quarantine.d.ts +129 -0
  190. package/dist/middleware/reflect/pass2-quarantine.d.ts.map +1 -0
  191. package/dist/middleware/reflect/pass2-quarantine.js +272 -0
  192. package/dist/middleware/reflect/pass2-quarantine.js.map +1 -0
  193. package/dist/middleware/reflect/pass2-seams.d.ts +205 -0
  194. package/dist/middleware/reflect/pass2-seams.d.ts.map +1 -0
  195. package/dist/middleware/reflect/pass2-seams.js +279 -0
  196. package/dist/middleware/reflect/pass2-seams.js.map +1 -0
  197. package/dist/middleware/reflect/pass2-split-orchestrator.d.ts +37 -0
  198. package/dist/middleware/reflect/pass2-split-orchestrator.d.ts.map +1 -0
  199. package/dist/middleware/reflect/pass2-split-orchestrator.js +531 -0
  200. package/dist/middleware/reflect/pass2-split-orchestrator.js.map +1 -0
  201. package/dist/middleware/reflect/pass2.d.ts +17 -0
  202. package/dist/middleware/reflect/pass2.d.ts.map +1 -0
  203. package/dist/middleware/reflect/pass2.js +324 -0
  204. package/dist/middleware/reflect/pass2.js.map +1 -0
  205. package/dist/middleware/reflect/pass2a.d.ts +141 -0
  206. package/dist/middleware/reflect/pass2a.d.ts.map +1 -0
  207. package/dist/middleware/reflect/pass2a.js +404 -0
  208. package/dist/middleware/reflect/pass2a.js.map +1 -0
  209. package/dist/middleware/reflect/pass2b.d.ts +108 -0
  210. package/dist/middleware/reflect/pass2b.d.ts.map +1 -0
  211. package/dist/middleware/reflect/pass2b.js +480 -0
  212. package/dist/middleware/reflect/pass2b.js.map +1 -0
  213. package/dist/middleware/reflect/pass2c.d.ts +113 -0
  214. package/dist/middleware/reflect/pass2c.d.ts.map +1 -0
  215. package/dist/middleware/reflect/pass2c.js +360 -0
  216. package/dist/middleware/reflect/pass2c.js.map +1 -0
  217. package/dist/middleware/reflect/pass3-batch.d.ts +62 -0
  218. package/dist/middleware/reflect/pass3-batch.d.ts.map +1 -0
  219. package/dist/middleware/reflect/pass3-batch.js +139 -0
  220. package/dist/middleware/reflect/pass3-batch.js.map +1 -0
  221. package/dist/middleware/reflect/pass3.d.ts +23 -0
  222. package/dist/middleware/reflect/pass3.d.ts.map +1 -0
  223. package/dist/middleware/reflect/pass3.js +371 -0
  224. package/dist/middleware/reflect/pass3.js.map +1 -0
  225. package/dist/middleware/reflect/pass4-slice.d.ts +25 -0
  226. package/dist/middleware/reflect/pass4-slice.d.ts.map +1 -0
  227. package/dist/middleware/reflect/pass4-slice.js +315 -0
  228. package/dist/middleware/reflect/pass4-slice.js.map +1 -0
  229. package/dist/middleware/reflect/pass4.d.ts +30 -0
  230. package/dist/middleware/reflect/pass4.d.ts.map +1 -0
  231. package/dist/middleware/reflect/pass4.js +193 -0
  232. package/dist/middleware/reflect/pass4.js.map +1 -0
  233. package/dist/middleware/reflect/pass5.d.ts +22 -0
  234. package/dist/middleware/reflect/pass5.d.ts.map +1 -0
  235. package/dist/middleware/reflect/pass5.js +178 -0
  236. package/dist/middleware/reflect/pass5.js.map +1 -0
  237. package/dist/middleware/reflect/pass_judge.d.ts +44 -0
  238. package/dist/middleware/reflect/pass_judge.d.ts.map +1 -0
  239. package/dist/middleware/reflect/pass_judge.js +263 -0
  240. package/dist/middleware/reflect/pass_judge.js.map +1 -0
  241. package/dist/middleware/reflect/pipeline-flags.d.ts +140 -0
  242. package/dist/middleware/reflect/pipeline-flags.d.ts.map +1 -0
  243. package/dist/middleware/reflect/pipeline-flags.js +314 -0
  244. package/dist/middleware/reflect/pipeline-flags.js.map +1 -0
  245. package/dist/middleware/reflect/pipeline.d.ts +237 -0
  246. package/dist/middleware/reflect/pipeline.d.ts.map +1 -0
  247. package/dist/middleware/reflect/pipeline.js +3114 -0
  248. package/dist/middleware/reflect/pipeline.js.map +1 -0
  249. package/dist/middleware/reflect/promptOverride.d.ts +14 -0
  250. package/dist/middleware/reflect/promptOverride.d.ts.map +1 -0
  251. package/dist/middleware/reflect/promptOverride.js +28 -0
  252. package/dist/middleware/reflect/promptOverride.js.map +1 -0
  253. package/dist/middleware/reflect/provenance-check.d.ts +48 -0
  254. package/dist/middleware/reflect/provenance-check.d.ts.map +1 -0
  255. package/dist/middleware/reflect/provenance-check.js +180 -0
  256. package/dist/middleware/reflect/provenance-check.js.map +1 -0
  257. package/dist/middleware/reflect/provenance-reviewer.d.ts +52 -0
  258. package/dist/middleware/reflect/provenance-reviewer.d.ts.map +1 -0
  259. package/dist/middleware/reflect/provenance-reviewer.js +253 -0
  260. package/dist/middleware/reflect/provenance-reviewer.js.map +1 -0
  261. package/dist/middleware/reflect/prune-collapsed-types.d.ts +11 -0
  262. package/dist/middleware/reflect/prune-collapsed-types.d.ts.map +1 -0
  263. package/dist/middleware/reflect/prune-collapsed-types.js +32 -0
  264. package/dist/middleware/reflect/prune-collapsed-types.js.map +1 -0
  265. package/dist/middleware/reflect/recognize-root.d.ts +75 -0
  266. package/dist/middleware/reflect/recognize-root.d.ts.map +1 -0
  267. package/dist/middleware/reflect/recognize-root.js +204 -0
  268. package/dist/middleware/reflect/recognize-root.js.map +1 -0
  269. package/dist/middleware/reflect/render-agent-flag.d.ts +25 -0
  270. package/dist/middleware/reflect/render-agent-flag.d.ts.map +1 -0
  271. package/dist/middleware/reflect/render-agent-flag.js +39 -0
  272. package/dist/middleware/reflect/render-agent-flag.js.map +1 -0
  273. package/dist/middleware/reflect/retrieve-graph-slice.d.ts +54 -0
  274. package/dist/middleware/reflect/retrieve-graph-slice.d.ts.map +1 -0
  275. package/dist/middleware/reflect/retrieve-graph-slice.js +173 -0
  276. package/dist/middleware/reflect/retrieve-graph-slice.js.map +1 -0
  277. package/dist/middleware/reflect/root-relatedness.d.ts +31 -0
  278. package/dist/middleware/reflect/root-relatedness.d.ts.map +1 -0
  279. package/dist/middleware/reflect/root-relatedness.js +92 -0
  280. package/dist/middleware/reflect/root-relatedness.js.map +1 -0
  281. package/dist/middleware/reflect/schema-heal.d.ts +22 -0
  282. package/dist/middleware/reflect/schema-heal.d.ts.map +1 -0
  283. package/dist/middleware/reflect/schema-heal.js +119 -0
  284. package/dist/middleware/reflect/schema-heal.js.map +1 -0
  285. package/dist/middleware/reflect/schema-validator.d.ts +85 -0
  286. package/dist/middleware/reflect/schema-validator.d.ts.map +1 -0
  287. package/dist/middleware/reflect/schema-validator.js +196 -0
  288. package/dist/middleware/reflect/schema-validator.js.map +1 -0
  289. package/dist/middleware/reflect/stage-audit-graph.d.ts +115 -0
  290. package/dist/middleware/reflect/stage-audit-graph.d.ts.map +1 -0
  291. package/dist/middleware/reflect/stage-audit-graph.js +563 -0
  292. package/dist/middleware/reflect/stage-audit-graph.js.map +1 -0
  293. package/dist/middleware/reflect/stage-d-resolve-graph.d.ts +87 -0
  294. package/dist/middleware/reflect/stage-d-resolve-graph.d.ts.map +1 -0
  295. package/dist/middleware/reflect/stage-d-resolve-graph.js +256 -0
  296. package/dist/middleware/reflect/stage-d-resolve-graph.js.map +1 -0
  297. package/dist/middleware/reflect/synthesizeFromSceneCard.d.ts +15 -0
  298. package/dist/middleware/reflect/synthesizeFromSceneCard.d.ts.map +1 -0
  299. package/dist/middleware/reflect/synthesizeFromSceneCard.js +91 -0
  300. package/dist/middleware/reflect/synthesizeFromSceneCard.js.map +1 -0
  301. package/dist/middleware/reflect/types.d.ts +261 -0
  302. package/dist/middleware/reflect/types.d.ts.map +1 -0
  303. package/dist/middleware/reflect/types.js +3 -0
  304. package/dist/middleware/reflect/types.js.map +1 -0
  305. package/dist/middleware/reflect/v2-integrate.d.ts +120 -0
  306. package/dist/middleware/reflect/v2-integrate.d.ts.map +1 -0
  307. package/dist/middleware/reflect/v2-integrate.js +388 -0
  308. package/dist/middleware/reflect/v2-integrate.js.map +1 -0
  309. package/dist/middleware/reflect/v2-judge.d.ts +44 -0
  310. package/dist/middleware/reflect/v2-judge.d.ts.map +1 -0
  311. package/dist/middleware/reflect/v2-judge.js +191 -0
  312. package/dist/middleware/reflect/v2-judge.js.map +1 -0
  313. package/dist/relation-sets.d.ts +2 -0
  314. package/dist/relation-sets.d.ts.map +1 -0
  315. package/dist/relation-sets.js +35 -0
  316. package/dist/relation-sets.js.map +1 -0
  317. package/dist/routes/__tests__/flags.test.d.ts +2 -0
  318. package/dist/routes/__tests__/flags.test.d.ts.map +1 -0
  319. package/dist/routes/__tests__/flags.test.js +257 -0
  320. package/dist/routes/__tests__/flags.test.js.map +1 -0
  321. package/dist/routes/__tests__/models-catalog.test.d.ts +2 -0
  322. package/dist/routes/__tests__/models-catalog.test.d.ts.map +1 -0
  323. package/dist/routes/__tests__/models-catalog.test.js +130 -0
  324. package/dist/routes/__tests__/models-catalog.test.js.map +1 -0
  325. package/dist/routes/__tests__/reflect-pause-drain.test.d.ts +2 -0
  326. package/dist/routes/__tests__/reflect-pause-drain.test.d.ts.map +1 -0
  327. package/dist/routes/__tests__/reflect-pause-drain.test.js +38 -0
  328. package/dist/routes/__tests__/reflect-pause-drain.test.js.map +1 -0
  329. package/dist/routes/__tests__/spend-pause-drain.test.d.ts +2 -0
  330. package/dist/routes/__tests__/spend-pause-drain.test.d.ts.map +1 -0
  331. package/dist/routes/__tests__/spend-pause-drain.test.js +38 -0
  332. package/dist/routes/__tests__/spend-pause-drain.test.js.map +1 -0
  333. package/dist/routes/admin.d.ts +49 -0
  334. package/dist/routes/admin.d.ts.map +1 -0
  335. package/dist/routes/admin.js +471 -0
  336. package/dist/routes/admin.js.map +1 -0
  337. package/dist/routes/blocks.d.ts +4 -0
  338. package/dist/routes/blocks.d.ts.map +1 -0
  339. package/dist/routes/blocks.js +893 -0
  340. package/dist/routes/blocks.js.map +1 -0
  341. package/dist/routes/chat-proxy.d.ts +5 -0
  342. package/dist/routes/chat-proxy.d.ts.map +1 -0
  343. package/dist/routes/chat-proxy.js +225 -0
  344. package/dist/routes/chat-proxy.js.map +1 -0
  345. package/dist/routes/conversations.d.ts +4 -0
  346. package/dist/routes/conversations.d.ts.map +1 -0
  347. package/dist/routes/conversations.js +139 -0
  348. package/dist/routes/conversations.js.map +1 -0
  349. package/dist/routes/flags.d.ts +4 -0
  350. package/dist/routes/flags.d.ts.map +1 -0
  351. package/dist/routes/flags.js +151 -0
  352. package/dist/routes/flags.js.map +1 -0
  353. package/dist/routes/inject.d.ts +4 -0
  354. package/dist/routes/inject.d.ts.map +1 -0
  355. package/dist/routes/inject.js +183 -0
  356. package/dist/routes/inject.js.map +1 -0
  357. package/dist/routes/mcp-http.d.ts +5 -0
  358. package/dist/routes/mcp-http.d.ts.map +1 -0
  359. package/dist/routes/mcp-http.js +94 -0
  360. package/dist/routes/mcp-http.js.map +1 -0
  361. package/dist/routes/quarantine.d.ts +4 -0
  362. package/dist/routes/quarantine.d.ts.map +1 -0
  363. package/dist/routes/quarantine.js +66 -0
  364. package/dist/routes/quarantine.js.map +1 -0
  365. package/dist/routes/recall.d.ts +5 -0
  366. package/dist/routes/recall.d.ts.map +1 -0
  367. package/dist/routes/recall.js +573 -0
  368. package/dist/routes/recall.js.map +1 -0
  369. package/dist/routes/reflect.d.ts +5 -0
  370. package/dist/routes/reflect.d.ts.map +1 -0
  371. package/dist/routes/reflect.js +231 -0
  372. package/dist/routes/reflect.js.map +1 -0
  373. package/dist/routes/session.d.ts +4 -0
  374. package/dist/routes/session.d.ts.map +1 -0
  375. package/dist/routes/session.js +418 -0
  376. package/dist/routes/session.js.map +1 -0
  377. package/dist/routes/state.d.ts +116 -0
  378. package/dist/routes/state.d.ts.map +1 -0
  379. package/dist/routes/state.js +621 -0
  380. package/dist/routes/state.js.map +1 -0
  381. package/dist/routes/usage.d.ts +3 -0
  382. package/dist/routes/usage.d.ts.map +1 -0
  383. package/dist/routes/usage.js +141 -0
  384. package/dist/routes/usage.js.map +1 -0
  385. package/dist/routes/workspace.d.ts +5 -0
  386. package/dist/routes/workspace.d.ts.map +1 -0
  387. package/dist/routes/workspace.js +435 -0
  388. package/dist/routes/workspace.js.map +1 -0
  389. package/dist/server.d.ts +13 -0
  390. package/dist/server.d.ts.map +1 -0
  391. package/dist/server.js +298 -0
  392. package/dist/server.js.map +1 -0
  393. package/dist/store/__tests__/backup.test.d.ts +2 -0
  394. package/dist/store/__tests__/backup.test.d.ts.map +1 -0
  395. package/dist/store/__tests__/backup.test.js +53 -0
  396. package/dist/store/__tests__/backup.test.js.map +1 -0
  397. package/dist/store/__tests__/quality.test.d.ts +2 -0
  398. package/dist/store/__tests__/quality.test.d.ts.map +1 -0
  399. package/dist/store/__tests__/quality.test.js +75 -0
  400. package/dist/store/__tests__/quality.test.js.map +1 -0
  401. package/dist/store/backup.d.ts +14 -0
  402. package/dist/store/backup.d.ts.map +1 -0
  403. package/dist/store/backup.js +95 -0
  404. package/dist/store/backup.js.map +1 -0
  405. package/dist/store/database.d.ts +407 -0
  406. package/dist/store/database.d.ts.map +1 -0
  407. package/dist/store/database.js +2004 -0
  408. package/dist/store/database.js.map +1 -0
  409. package/dist/store/quality.d.ts +25 -0
  410. package/dist/store/quality.d.ts.map +1 -0
  411. package/dist/store/quality.js +48 -0
  412. package/dist/store/quality.js.map +1 -0
  413. package/dist/tools/__tests__/assemble-block-chains.test.d.ts +2 -0
  414. package/dist/tools/__tests__/assemble-block-chains.test.d.ts.map +1 -0
  415. package/dist/tools/__tests__/assemble-block-chains.test.js +118 -0
  416. package/dist/tools/__tests__/assemble-block-chains.test.js.map +1 -0
  417. package/dist/tools/__tests__/filter-roots-by-concepts.test.d.ts +2 -0
  418. package/dist/tools/__tests__/filter-roots-by-concepts.test.d.ts.map +1 -0
  419. package/dist/tools/__tests__/filter-roots-by-concepts.test.js +68 -0
  420. package/dist/tools/__tests__/filter-roots-by-concepts.test.js.map +1 -0
  421. package/dist/tools/__tests__/flag-surface.test.d.ts +2 -0
  422. package/dist/tools/__tests__/flag-surface.test.d.ts.map +1 -0
  423. package/dist/tools/__tests__/flag-surface.test.js +130 -0
  424. package/dist/tools/__tests__/flag-surface.test.js.map +1 -0
  425. package/dist/tools/core.d.ts +5 -0
  426. package/dist/tools/core.d.ts.map +1 -0
  427. package/dist/tools/core.js +962 -0
  428. package/dist/tools/core.js.map +1 -0
  429. package/dist/tools/derive.d.ts +5 -0
  430. package/dist/tools/derive.d.ts.map +1 -0
  431. package/dist/tools/derive.js +182 -0
  432. package/dist/tools/derive.js.map +1 -0
  433. package/dist/tools/flag-surface.d.ts +26 -0
  434. package/dist/tools/flag-surface.d.ts.map +1 -0
  435. package/dist/tools/flag-surface.js +59 -0
  436. package/dist/tools/flag-surface.js.map +1 -0
  437. package/dist/tools/helpers.d.ts +99 -0
  438. package/dist/tools/helpers.d.ts.map +1 -0
  439. package/dist/tools/helpers.js +243 -0
  440. package/dist/tools/helpers.js.map +1 -0
  441. package/dist/tools/projects.d.ts +5 -0
  442. package/dist/tools/projects.d.ts.map +1 -0
  443. package/dist/tools/projects.js +175 -0
  444. package/dist/tools/projects.js.map +1 -0
  445. package/dist/tools/system.d.ts +5 -0
  446. package/dist/tools/system.d.ts.map +1 -0
  447. package/dist/tools/system.js +1361 -0
  448. package/dist/tools/system.js.map +1 -0
  449. package/dist/tools/tasks.d.ts +5 -0
  450. package/dist/tools/tasks.d.ts.map +1 -0
  451. package/dist/tools/tasks.js +289 -0
  452. package/dist/tools/tasks.js.map +1 -0
  453. package/package.json +69 -0
  454. package/scripts/nodedex-entry.mjs +396 -0
  455. package/tui-dist/App.js +185 -0
  456. package/tui-dist/api.js +197 -0
  457. package/tui-dist/cli.js +53 -0
  458. package/tui-dist/components.js +63 -0
  459. package/tui-dist/config.js +242 -0
  460. package/tui-dist/connect-snippets.js +98 -0
  461. package/tui-dist/feed.js +51 -0
  462. package/tui-dist/health.js +465 -0
  463. package/tui-dist/hooks.js +23 -0
  464. package/tui-dist/memory.js +220 -0
  465. package/tui-dist/onboarding.js +498 -0
  466. package/tui-dist/review.js +193 -0
  467. package/tui-dist/servers.js +556 -0
  468. package/tui-dist/smoke.js +15 -0
  469. package/tui-dist/theme.js +106 -0
@@ -0,0 +1,243 @@
1
+ // ─── Shared response helpers ─────────────────────────────────────
2
+ export function ok(data) {
3
+ return {
4
+ content: [{ type: "text", text: JSON.stringify({ success: true, data }) }],
5
+ };
6
+ }
7
+ export function err(code, message, extra) {
8
+ return {
9
+ content: [{ type: "text", text: JSON.stringify({ success: false, error: { code, message, ...extra } }) }],
10
+ };
11
+ }
12
+ // cosineSim now lives in engine/vector-math.ts (single source). Re-exported here
13
+ // so existing `import { cosineSim } from "./helpers.js"` call sites keep working.
14
+ export { cosineSim } from "../engine/vector-math.js";
15
+ import { CAUSAL_TRAVERSAL_RELS } from "../relation-sets.js";
16
+ // Scale guard: cap how many linked chains we surface. The connected component is
17
+ // naturally small at chain granularity (an incident ≈ 6 chains), but a long-lived
18
+ // project could grow one big component — so we rank by distance and cap.
19
+ const LINKED_CHAINS_CAP = 12;
20
+ /**
21
+ * assembleBlockChains — "surface the chain AND its linked path, not the bare block."
22
+ *
23
+ * A block's meaning in a cause-and-effect store lives in the causal ARC it sits
24
+ * on. So a single `workspace_get` returns:
25
+ * - `chains` — the named Pass-5 chain(s) the block belongs to (its own arc).
26
+ * - `linked_chains` — every OTHER chain reachable by a causal PATH from those
27
+ * chains (the connected component), with hop-`distance` and
28
+ * the bridging relation. This is "everything linked back to
29
+ * this block" — the whole relevant story, NOT the whole root
30
+ * (unrelated islands in the same project are excluded).
31
+ *
32
+ * Why CHAIN-level, not block-level: a ±N block BFS floods (one anchor reached 40%
33
+ * of a root in testing). Walking the CHAIN graph instead (chains = nodes, causal
34
+ * bridges = edges) keeps the same incident at ~6 nodes — the whole linked story,
35
+ * digestible. Distance-ranked + capped (LINKED_CHAINS_CAP) for the scale edge;
36
+ * anything past the cap is reached by NAVIGATING (each linked chain is itself a
37
+ * get-able anchor). Bound is on what's PUSHED, never on what's REACHABLE.
38
+ *
39
+ * Reads `member_of` (many-to-many) NOT the lossy `chain_id` column, so a HINGE
40
+ * block (member of >1 chain) keeps all its memberships. Only CAUSAL_TRAVERSAL_RELS
41
+ * bridge chains — NOT part_of / member_of / related_to / contradicts.
42
+ *
43
+ * Portable, server-side equivalent of the Claude-Code chain-injection hook — it
44
+ * rides the tool RESULT, so it works on ANY MCP host.
45
+ */
46
+ export function assembleBlockChains(db, block) {
47
+ // A chain block itself → its own arc. Any other block → the chain(s) it is a
48
+ // member_of (member_of is non-bidirectional → only ever an OUTGOING relation).
49
+ const ownChainIds = block.type === "chain"
50
+ ? [block.id]
51
+ : db.getRelations(block.id)
52
+ .filter((r) => r.direction === "outgoing" && r.type === "member_of")
53
+ .map((r) => r.target_id);
54
+ const own = [...new Set(ownChainIds)];
55
+ if (own.length === 0)
56
+ return { chains: [], linked_chains: [] };
57
+ // Graph data — fetched ONCE, only when the block is on a chain.
58
+ const allRels = db.getAllRelations(false);
59
+ const memberOf = new Map(); // blockId → chains it belongs to
60
+ for (const r of allRels) {
61
+ if (r.type !== "member_of")
62
+ continue;
63
+ if (!memberOf.has(r.source_id))
64
+ memberOf.set(r.source_id, new Set());
65
+ memberOf.get(r.source_id).add(r.target_id);
66
+ }
67
+ // Build the CHAIN graph (undirected — a "linked path" can run either causal
68
+ // direction): chainId → neighbourChainId → the relation that first bridges them.
69
+ const chainGraph = new Map();
70
+ const link = (a, b, via) => {
71
+ if (a === b)
72
+ return;
73
+ if (!chainGraph.has(a))
74
+ chainGraph.set(a, new Map());
75
+ if (!chainGraph.get(a).has(b))
76
+ chainGraph.get(a).set(b, via);
77
+ };
78
+ for (const r of allRels) {
79
+ if (!CAUSAL_TRAVERSAL_RELS.has(r.type))
80
+ continue;
81
+ const sc = memberOf.get(r.source_id);
82
+ const tc = memberOf.get(r.target_id);
83
+ if (!sc || !tc)
84
+ continue;
85
+ for (const a of sc)
86
+ for (const b of tc) {
87
+ link(a, b, r.type);
88
+ link(b, a, r.type);
89
+ }
90
+ }
91
+ // The block's OWN chains, full detail.
92
+ const chains = [];
93
+ for (const chainId of own) {
94
+ const cb = db.getBlock(chainId);
95
+ if (!cb || cb.type !== "chain")
96
+ continue;
97
+ let content = {};
98
+ try {
99
+ content = JSON.parse(cb.content);
100
+ }
101
+ catch { /* malformed → empty */ }
102
+ const unique = content.unique || {};
103
+ chains.push({
104
+ label: cb.label,
105
+ essence: cb.essence,
106
+ arc: unique.arc ?? null,
107
+ conclusion: unique.conclusion ?? null,
108
+ // cause-first order via getBlocksByChain (chain_id column, created_at ASC),
109
+ // WITH each member's essence — the whole arc readable in this one call.
110
+ members: db.getBlocksByChain(cb.id).map((m) => ({ label: m.label, type: m.type, essence: m.essence })),
111
+ });
112
+ }
113
+ // Multi-source BFS over the chain graph from ALL the block's own chains →
114
+ // every chain on a linked path, with its min hop-distance + bridging relation.
115
+ const ownSet = new Set(own);
116
+ const dist = new Map();
117
+ const via = new Map();
118
+ const queue = [];
119
+ for (const c of own) {
120
+ dist.set(c, 0);
121
+ queue.push(c);
122
+ }
123
+ while (queue.length) {
124
+ const cur = queue.shift();
125
+ const d = dist.get(cur);
126
+ for (const [nb, rel] of chainGraph.get(cur) ?? []) {
127
+ if (!dist.has(nb)) {
128
+ dist.set(nb, d + 1);
129
+ via.set(nb, rel);
130
+ queue.push(nb);
131
+ }
132
+ }
133
+ }
134
+ const linked_chains = [...dist.entries()]
135
+ .filter(([id]) => !ownSet.has(id))
136
+ .sort((a, b) => a[1] - b[1]) // nearest first
137
+ .slice(0, LINKED_CHAINS_CAP)
138
+ .map(([id, d]) => {
139
+ const cb = db.getBlock(id);
140
+ let conclusion = null;
141
+ try {
142
+ conclusion = JSON.parse(cb?.content ?? "{}")?.unique?.conclusion ?? null;
143
+ }
144
+ catch { /* ignore */ }
145
+ return { chain: cb?.label ?? id, essence: cb?.essence ?? "", conclusion, distance: d, via: via.get(id) };
146
+ });
147
+ return { chains, linked_chains };
148
+ }
149
+ /**
150
+ * filterRootsByConcepts — the COLD-START orientation filter ("amnesia move").
151
+ *
152
+ * When the agent has NO anchor, it distills its current context into first-
153
+ * principle concept terms and asks "which root(s) are relevant?" This returns
154
+ * ranked ROOT suggestions (each with its pre-made description + the blocks that
155
+ * matched = entry points), so the agent opens one → gets an anchor → the chain-
156
+ * fold (assembleBlockChains) takes over.
157
+ *
158
+ * Matches over TWO cheap, structured fields — NOT the surface:
159
+ * 1. concepts[] — the abstract tag net (db.conceptSearch, cross-domain).
160
+ * 2. strict label — the address; its segments carry concept/entity/PROJECT, so
161
+ * a label hit also resolves the root for free.
162
+ * It deliberately does NOT scan essence/content (those are LIKE full-scans and
163
+ * re-introduce the surface search). essence is READ (for display), never filtered.
164
+ *
165
+ * Returns SUGGESTIONS, never "the" root — the system surfaces, the agent navigates.
166
+ */
167
+ export function filterRootsByConcepts(db, terms, opts) {
168
+ const limit = opts?.limit ?? 8;
169
+ const entriesPerRoot = opts?.entriesPerRoot ?? 3;
170
+ const cleanTerms = [...new Set(terms.map((t) => t.trim().toLowerCase()).filter((t) => t.length > 1))];
171
+ if (cleanTerms.length === 0)
172
+ return [];
173
+ // block id → which query terms it covers (concept hit OR label hit)
174
+ const hits = new Map();
175
+ const addHit = (block, term) => {
176
+ const e = hits.get(block.id);
177
+ if (e)
178
+ e.terms.add(term);
179
+ else
180
+ hits.set(block.id, { block, terms: new Set([term]) });
181
+ };
182
+ // 1. concepts[] — the abstract-tag net (indexed, json_each)
183
+ for (const term of cleanTerms) {
184
+ for (const { block } of db.conceptSearch([term]).values())
185
+ addHit(block, term);
186
+ }
187
+ // 2. strict label — structured address. Match the term against the block's OWN
188
+ // segments (entity/type/concept), NOT the repeated {project} prefix — else a
189
+ // project-name term (e.g. "latency" in "…-latency-incident") matches every
190
+ // block in the project and drowns the signal. The root is still found via
191
+ // its OWN label (a top root has no project prefix to strip).
192
+ const all = db.getAllBlocks();
193
+ const byId = new Map(all.map((b) => [b.id, b]));
194
+ for (const block of all) {
195
+ const projLabel = block.project_id ? byId.get(block.project_id)?.label?.toLowerCase() : undefined;
196
+ let local = (block.label || "").toLowerCase();
197
+ if (projLabel && local.startsWith(projLabel + "_"))
198
+ local = local.slice(projLabel.length + 1);
199
+ for (const term of cleanTerms)
200
+ if (local.includes(term))
201
+ addHit(block, term);
202
+ }
203
+ if (hits.size === 0)
204
+ return [];
205
+ // Resolve any block to its TOP project root (walk project_id up the chain).
206
+ const topRoot = (block) => {
207
+ let cur = block;
208
+ const seen = new Set();
209
+ while (cur.project_id && byId.has(cur.project_id) && !seen.has(cur.project_id)) {
210
+ seen.add(cur.project_id);
211
+ cur = byId.get(cur.project_id);
212
+ }
213
+ return cur;
214
+ };
215
+ // Aggregate hits up to their root.
216
+ const roots = new Map();
217
+ for (const { block, terms: bterms } of hits.values()) {
218
+ const r = topRoot(block);
219
+ if (r.type !== "project")
220
+ continue; // only suggest project roots
221
+ const e = roots.get(r.id) ?? { root: r, terms: new Set(), entries: [] };
222
+ for (const t of bterms)
223
+ e.terms.add(t);
224
+ if (block.id !== r.id)
225
+ e.entries.push({ block, terms: bterms }); // the root itself isn't an "entry"
226
+ roots.set(r.id, e);
227
+ }
228
+ // Rank roots: most query-terms covered first, then most matching blocks.
229
+ return [...roots.values()]
230
+ .sort((a, b) => b.terms.size - a.terms.size || b.entries.length - a.entries.length)
231
+ .slice(0, limit)
232
+ .map((r) => ({
233
+ root: r.root.label,
234
+ description: r.root.essence || "",
235
+ terms_matched: [...r.terms].sort(),
236
+ match_count: r.entries.length,
237
+ entries: r.entries
238
+ .sort((a, b) => b.terms.size - a.terms.size)
239
+ .slice(0, entriesPerRoot)
240
+ .map((e) => ({ label: e.block.label, type: e.block.type })),
241
+ }));
242
+ }
243
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/tools/helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import { WorkspaceDB } from "../store/database.js";
3
+ import { EmbeddingEngine } from "../engine/embeddings.js";
4
+ export declare function registerProjectTools(server: McpServer, db: WorkspaceDB, _embeddings: EmbeddingEngine): void;
5
+ //# sourceMappingURL=projects.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/tools/projects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG1D,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,GAAG,IAAI,CA8M3G"}
@@ -0,0 +1,175 @@
1
+ import { z } from "zod";
2
+ import { ok, err } from "./helpers.js";
3
+ export function registerProjectTools(server, db, _embeddings) {
4
+ // ─── Tool: workspace_project_create ──────────────────────────────
5
+ server.tool("workspace_project_create", `Create a new project space in the workspace. Automatically creates a project block.`, {
6
+ name: z.string().describe("Project name (lowercase, unspaced)"),
7
+ description: z.string().optional().describe("What the project is about"),
8
+ }, async (params) => {
9
+ try {
10
+ const block = db.createBlock({
11
+ label: params.name,
12
+ type: "project",
13
+ essence: params.description || `Project: ${params.name}`,
14
+ ttl: "permanent",
15
+ });
16
+ db.createProjectLog(params.name, "Project created.");
17
+ return ok({
18
+ project: params.name,
19
+ block_id: block.id,
20
+ status: "created",
21
+ });
22
+ }
23
+ catch (error) {
24
+ return err("PROJECT_CREATE_FAILED", String(error));
25
+ }
26
+ });
27
+ // ─── Tool: workspace_project_log ─────────────────────────────────
28
+ server.tool("workspace_project_log", `Add a journal entry to a project's activity log.`, {
29
+ project: z.string().describe("Project name"),
30
+ entry: z.string().describe("Log entry describing what happened or was decided"),
31
+ }, async (params) => {
32
+ try {
33
+ const log = db.createProjectLog(params.project, params.entry);
34
+ return ok({
35
+ project: params.project,
36
+ entry_id: log.id,
37
+ logged: true,
38
+ });
39
+ }
40
+ catch (error) {
41
+ return err("PROJECT_LOG_FAILED", String(error));
42
+ }
43
+ });
44
+ // ─── Tool: workspace_project_status ──────────────────────────────
45
+ server.tool("workspace_project_status", `Get the current state of a project: recent activity and key blocks.`, {
46
+ project: z.string().describe("Project name"),
47
+ }, async (params) => {
48
+ try {
49
+ const logs = db.getProjectLogs(params.project, 5);
50
+ const blocks = db.getProjectBlocks(params.project);
51
+ const projectBlock = db.getBlock(params.project);
52
+ if (!projectBlock && blocks.length === 0 && logs.length === 0) {
53
+ return err("PROJECT_NOT_FOUND", `Project '${params.project}' has no logs or blocks.`);
54
+ }
55
+ return ok({
56
+ project: params.project,
57
+ metadata: projectBlock ? { id: projectBlock.id, essence: projectBlock.essence } : null,
58
+ recent_activity: logs,
59
+ associated_blocks: blocks.map(b => ({ id: b.id, label: b.label, type: b.type, essence: b.essence })),
60
+ });
61
+ }
62
+ catch (error) {
63
+ return err("PROJECT_STATUS_FAILED", String(error));
64
+ }
65
+ });
66
+ // ─── Tool: workspace_project_resume ──────────────────────────────
67
+ server.tool("workspace_project_resume", `Resume a project session — returns a full briefing so the agent can pick up exactly where it left off.
68
+ Returns: open tasks, key decisions, active constraints, recent activity, and derived insights.
69
+ Call this ONCE at the start of a new conversation, before workspace_auto_recall.
70
+
71
+ Pass 'since' to get a delta of what changed since your last session:
72
+ workspace_project_resume({ project: "wmcs", since: "2026-03-15T10:00:00Z" })
73
+ Returns new blocks, updated blocks, and a history summary — so you know what happened while you were away.`, {
74
+ project: z.string().describe("Project name"),
75
+ since: z.string().optional().describe("ISO timestamp — return a delta of what changed since this time"),
76
+ }, async (params) => {
77
+ try {
78
+ const logs = db.getProjectLogs(params.project, 10);
79
+ let blocks = db.getProjectBlocks(params.project);
80
+ // Fallback: if sparse project links, supplement with recently active blocks
81
+ if (blocks.filter((b) => b.type !== "project").length < 3) {
82
+ const recent = db.getRecentBlocks(15);
83
+ const existingIds = new Set(blocks.map((b) => b.id));
84
+ blocks = [...blocks, ...recent.filter((b) => !existingIds.has(b.id))];
85
+ }
86
+ // Parse content safely
87
+ const parsed = blocks.map((b) => {
88
+ let content = {};
89
+ try {
90
+ content = JSON.parse(b.content);
91
+ }
92
+ catch { /* ignore */ }
93
+ return { ...b, _content: content };
94
+ });
95
+ // Bucket by type — agent needs different things for different types
96
+ const tasks = parsed.filter((b) => b.type === "task");
97
+ const decisions = parsed.filter((b) => b.type === "decision");
98
+ const constraints = parsed.filter((b) => b.type === "constraint");
99
+ const derived = parsed.filter((b) => b._content?.derivation);
100
+ const other = parsed.filter((b) => !["task", "decision", "constraint", "project"].includes(b.type) && !b._content?.derivation);
101
+ // Summarise helper — strips DB noise, keeps what the agent needs
102
+ const summarise = (b) => ({
103
+ id: b.id,
104
+ label: b.label,
105
+ type: b.type,
106
+ essence: b.essence,
107
+ unique: b._content.unique || undefined,
108
+ has: b._content.has || undefined,
109
+ concepts: b._content.concepts || undefined,
110
+ created_at: b.created_at,
111
+ updated_at: b.updated_at !== b.created_at ? b.updated_at : undefined,
112
+ created_by: b.created_by || undefined,
113
+ });
114
+ // Open tasks only (not archived/done)
115
+ const openTasks = tasks.filter((t) => {
116
+ const status = t._content?.unique?.status;
117
+ return !status || !["done", "completed", "archived"].includes(status.toLowerCase());
118
+ });
119
+ // ── Session delta (since param) ──────────────────────────────
120
+ let since_last_session;
121
+ if (params.since) {
122
+ const sinceMs = new Date(params.since).getTime();
123
+ const allBlocks = db.getAllBlocks();
124
+ const newBlocks = allBlocks.filter((b) => new Date(b.created_at).getTime() > sinceMs);
125
+ const updatedBlocks = allBlocks.filter((b) => new Date(b.updated_at).getTime() > sinceMs &&
126
+ new Date(b.created_at).getTime() <= sinceMs);
127
+ const recentHistory = db.getHistory(undefined, 100).filter((h) => new Date(h.changed_at).getTime() > sinceMs);
128
+ since_last_session = {
129
+ since: params.since,
130
+ new_blocks: newBlocks.map((b) => ({
131
+ id: b.id, label: b.label, type: b.type, essence: b.essence, created_at: b.created_at,
132
+ })),
133
+ updated_blocks: updatedBlocks.map((b) => ({
134
+ id: b.id, label: b.label, type: b.type, essence: b.essence, updated_at: b.updated_at,
135
+ })),
136
+ change_log: recentHistory.slice(0, 30).map((h) => ({
137
+ block_id: h.block_id, field: h.field_changed, at: h.changed_at, by: h.changed_by,
138
+ })),
139
+ summary: {
140
+ new_blocks: newBlocks.length,
141
+ updated_blocks: updatedBlocks.length,
142
+ changes: recentHistory.length,
143
+ },
144
+ };
145
+ }
146
+ return ok({
147
+ project: params.project,
148
+ resume_briefing: {
149
+ open_tasks: openTasks.map(summarise),
150
+ key_decisions: decisions.map(summarise),
151
+ constraints: constraints.map(summarise),
152
+ derived_insights: derived.slice(0, 5).map((b) => ({
153
+ id: b.id,
154
+ label: b.label,
155
+ essence: b.essence,
156
+ reasoning: b._content.derivation?.logic || undefined,
157
+ })),
158
+ other_blocks: other.slice(0, 10).map(summarise),
159
+ },
160
+ recent_activity: logs.map((l) => ({ at: l.created_at, entry: l.entry })),
161
+ ...(since_last_session ? { since_last_session } : {}),
162
+ summary: {
163
+ total_blocks: blocks.length,
164
+ open_tasks: openTasks.length,
165
+ decisions: decisions.length,
166
+ constraints: constraints.length,
167
+ },
168
+ });
169
+ }
170
+ catch (error) {
171
+ return err("PROJECT_RESUME_FAILED", String(error));
172
+ }
173
+ });
174
+ }
175
+ //# sourceMappingURL=projects.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/tools/projects.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,UAAU,oBAAoB,CAAC,MAAiB,EAAE,EAAe,EAAE,WAA4B;IAEnG,oEAAoE;IACpE,MAAM,CAAC,IAAI,CACT,0BAA0B,EAC1B,qFAAqF,EACrF;QACE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;QAC/D,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;KACzE,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC;gBAC3B,KAAK,EAAE,MAAM,CAAC,IAAI;gBAClB,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,MAAM,CAAC,WAAW,IAAI,YAAY,MAAM,CAAC,IAAI,EAAE;gBACxD,GAAG,EAAE,WAAW;aACjB,CAAC,CAAC;YACH,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;YACrD,OAAO,EAAE,CAAC;gBACR,OAAO,EAAE,MAAM,CAAC,IAAI;gBACpB,QAAQ,EAAE,KAAK,CAAC,EAAE;gBAClB,MAAM,EAAE,SAAS;aAClB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,GAAG,CAAC,uBAAuB,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACrD,CAAC;IACH,CAAC,CACF,CAAC;IAEF,oEAAoE;IACpE,MAAM,CAAC,IAAI,CACT,uBAAuB,EACvB,kDAAkD,EAClD;QACE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;QAC5C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;KAChF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YAC9D,OAAO,EAAE,CAAC;gBACR,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,QAAQ,EAAE,GAAG,CAAC,EAAE;gBAChB,MAAM,EAAE,IAAI;aACb,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,GAAG,CAAC,oBAAoB,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAClD,CAAC;IACH,CAAC,CACF,CAAC;IAEF,oEAAoE;IACpE,MAAM,CAAC,IAAI,CACT,0BAA0B,EAC1B,qEAAqE,EACrE;QACE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;KAC7C,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAClD,MAAM,MAAM,GAAG,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAEnD,MAAM,YAAY,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACjD,IAAI,CAAC,YAAY,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9D,OAAO,GAAG,CAAC,mBAAmB,EAAE,YAAY,MAAM,CAAC,OAAO,0BAA0B,CAAC,CAAC;YACxF,CAAC;YAED,OAAO,EAAE,CAAC;gBACR,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,YAAY,CAAC,EAAE,EAAE,OAAO,EAAE,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI;gBACtF,eAAe,EAAE,IAAI;gBACrB,iBAAiB,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;aACrG,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,GAAG,CAAC,uBAAuB,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACrD,CAAC;IACH,CAAC,CACF,CAAC;IAEF,oEAAoE;IACpE,MAAM,CAAC,IAAI,CACT,0BAA0B,EAC1B;;;;;;2GAMuG,EACvG;QACE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;QAC5C,KAAK,EAAI,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gEAAgE,CAAC;KAC1G,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,IAAI,GAAI,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACpD,IAAI,MAAM,GAAG,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAEjD,4EAA4E;YAC5E,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1D,MAAM,MAAM,GAAG,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;gBACtC,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACrD,MAAM,GAAG,CAAC,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACxE,CAAC;YAED,uBAAuB;YACvB,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC9B,IAAI,OAAO,GAA4B,EAAE,CAAC;gBAC1C,IAAI,CAAC;oBAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;gBAC/D,OAAO,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;YACrC,CAAC,CAAC,CAAC;YAEH,oEAAoE;YACpE,MAAM,KAAK,GAAS,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;YAC5D,MAAM,SAAS,GAAK,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;YAChE,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;YAClE,MAAM,OAAO,GAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YACjE,MAAM,KAAK,GAAS,MAAM,CAAC,MAAM,CAC/B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,UAAU,CAClG,CAAC;YAEF,iEAAiE;YACjE,MAAM,SAAS,GAAG,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;gBAC7B,EAAE,EAAU,CAAC,CAAC,EAAE;gBAChB,KAAK,EAAO,CAAC,CAAC,KAAK;gBACnB,IAAI,EAAQ,CAAC,CAAC,IAAI;gBAClB,OAAO,EAAK,CAAC,CAAC,OAAO;gBACrB,MAAM,EAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAM,SAAS;gBAC5C,GAAG,EAAS,CAAC,CAAC,QAAQ,CAAC,GAAG,IAAS,SAAS;gBAC5C,QAAQ,EAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,IAAI,SAAS;gBAC5C,UAAU,EAAE,CAAC,CAAC,UAAU;gBACxB,UAAU,EAAE,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;gBACpE,UAAU,EAAE,CAAC,CAAC,UAAU,IAAI,SAAS;aACtC,CAAC,CAAC;YAEH,sCAAsC;YACtC,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;gBACnC,MAAM,MAAM,GAAI,CAAC,CAAC,QAAQ,EAAE,MAAc,EAAE,MAAM,CAAC;gBACnD,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;YACtF,CAAC,CAAC,CAAC;YAEH,gEAAgE;YAChE,IAAI,kBAAuD,CAAC;YAC5D,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBACjB,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;gBACjD,MAAM,SAAS,GAAG,EAAE,CAAC,YAAY,EAAE,CAAC;gBACpC,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAChC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,GAAG,OAAO,CAClD,CAAC;gBACF,MAAM,aAAa,GAAG,SAAS,CAAC,MAAM,CACpC,CAAC,CAAC,EAAE,EAAE,CACJ,IAAI,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,GAAG,OAAO;oBAC1C,IAAI,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,IAAI,OAAO,CAC9C,CAAC;gBACF,MAAM,aAAa,GAAG,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,MAAM,CACxD,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,GAAG,OAAO,CAClD,CAAC;gBACF,kBAAkB,GAAG;oBACnB,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,UAAU,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBAChC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU;qBACrF,CAAC,CAAC;oBACH,cAAc,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBACxC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU;qBACrF,CAAC,CAAC;oBACH,UAAU,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBACjD,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,aAAa,EAAE,EAAE,EAAE,CAAC,CAAC,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC,UAAU;qBACjF,CAAC,CAAC;oBACH,OAAO,EAAE;wBACP,UAAU,EAAE,SAAS,CAAC,MAAM;wBAC5B,cAAc,EAAE,aAAa,CAAC,MAAM;wBACpC,OAAO,EAAE,aAAa,CAAC,MAAM;qBAC9B;iBACF,CAAC;YACJ,CAAC;YAED,OAAO,EAAE,CAAC;gBACR,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,eAAe,EAAE;oBACf,UAAU,EAAO,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC;oBACzC,aAAa,EAAI,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC;oBACzC,WAAW,EAAM,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC;oBAC3C,gBAAgB,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBAChD,EAAE,EAAU,CAAC,CAAC,EAAE;wBAChB,KAAK,EAAO,CAAC,CAAC,KAAK;wBACnB,OAAO,EAAK,CAAC,CAAC,OAAO;wBACrB,SAAS,EAAI,CAAC,CAAC,QAAQ,CAAC,UAAkB,EAAE,KAAK,IAAI,SAAS;qBAC/D,CAAC,CAAC;oBACH,YAAY,EAAK,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC;iBACnD;gBACD,eAAe,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;gBACxE,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrD,OAAO,EAAE;oBACP,YAAY,EAAG,MAAM,CAAC,MAAM;oBAC5B,UAAU,EAAK,SAAS,CAAC,MAAM;oBAC/B,SAAS,EAAM,SAAS,CAAC,MAAM;oBAC/B,WAAW,EAAI,WAAW,CAAC,MAAM;iBAClC;aACF,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,GAAG,CAAC,uBAAuB,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACrD,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import { WorkspaceDB } from "../store/database.js";
3
+ import { EmbeddingEngine } from "../engine/embeddings.js";
4
+ export declare function registerSystemTools(server: McpServer, db: WorkspaceDB, embeddings: EmbeddingEngine): void;
5
+ //# sourceMappingURL=system.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system.d.ts","sourceRoot":"","sources":["../../src/tools/system.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAW9E,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,eAAe,GAAG,IAAI,CA87CzG"}