@ashlr/hub 2.2.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 (477) hide show
  1. package/CHANGELOG.md +1158 -0
  2. package/LICENSE +21 -0
  3. package/README.md +833 -0
  4. package/bin/ashlr +8 -0
  5. package/dist/api/core.d.ts +28 -0
  6. package/dist/api/core.js +42 -0
  7. package/dist/api/core.js.map +1 -0
  8. package/dist/api/index.d.ts +9 -0
  9. package/dist/api/index.js +9 -0
  10. package/dist/api/index.js.map +1 -0
  11. package/dist/api/plugin.d.ts +12 -0
  12. package/dist/api/plugin.js +13 -0
  13. package/dist/api/plugin.js.map +1 -0
  14. package/dist/api/types.d.ts +9 -0
  15. package/dist/api/types.js +9 -0
  16. package/dist/api/types.js.map +1 -0
  17. package/dist/cli/args.d.ts +20 -0
  18. package/dist/cli/args.js +23 -0
  19. package/dist/cli/args.js.map +1 -0
  20. package/dist/cli/ask.d.ts +22 -0
  21. package/dist/cli/ask.js +240 -0
  22. package/dist/cli/ask.js.map +1 -0
  23. package/dist/cli/audit.d.ts +26 -0
  24. package/dist/cli/audit.js +199 -0
  25. package/dist/cli/audit.js.map +1 -0
  26. package/dist/cli/backlog.d.ts +26 -0
  27. package/dist/cli/backlog.js +322 -0
  28. package/dist/cli/backlog.js.map +1 -0
  29. package/dist/cli/completions.d.ts +18 -0
  30. package/dist/cli/completions.js +156 -0
  31. package/dist/cli/completions.js.map +1 -0
  32. package/dist/cli/daemon.d.ts +31 -0
  33. package/dist/cli/daemon.js +334 -0
  34. package/dist/cli/daemon.js.map +1 -0
  35. package/dist/cli/demo-sandbox.d.ts +78 -0
  36. package/dist/cli/demo-sandbox.js +227 -0
  37. package/dist/cli/demo-sandbox.js.map +1 -0
  38. package/dist/cli/demo.d.ts +76 -0
  39. package/dist/cli/demo.js +285 -0
  40. package/dist/cli/demo.js.map +1 -0
  41. package/dist/cli/digest.d.ts +46 -0
  42. package/dist/cli/digest.js +352 -0
  43. package/dist/cli/digest.js.map +1 -0
  44. package/dist/cli/doctor-init.d.ts +28 -0
  45. package/dist/cli/doctor-init.js +335 -0
  46. package/dist/cli/doctor-init.js.map +1 -0
  47. package/dist/cli/genome.d.ts +62 -0
  48. package/dist/cli/genome.js +1061 -0
  49. package/dist/cli/genome.js.map +1 -0
  50. package/dist/cli/gh.d.ts +27 -0
  51. package/dist/cli/gh.js +322 -0
  52. package/dist/cli/gh.js.map +1 -0
  53. package/dist/cli/goals.d.ts +55 -0
  54. package/dist/cli/goals.js +667 -0
  55. package/dist/cli/goals.js.map +1 -0
  56. package/dist/cli/health.d.ts +56 -0
  57. package/dist/cli/health.js +407 -0
  58. package/dist/cli/health.js.map +1 -0
  59. package/dist/cli/help.d.ts +51 -0
  60. package/dist/cli/help.js +436 -0
  61. package/dist/cli/help.js.map +1 -0
  62. package/dist/cli/inbox.d.ts +28 -0
  63. package/dist/cli/inbox.js +589 -0
  64. package/dist/cli/inbox.js.map +1 -0
  65. package/dist/cli/index.d.ts +41 -0
  66. package/dist/cli/index.js +1208 -0
  67. package/dist/cli/index.js.map +1 -0
  68. package/dist/cli/knowledge.d.ts +33 -0
  69. package/dist/cli/knowledge.js +575 -0
  70. package/dist/cli/knowledge.js.map +1 -0
  71. package/dist/cli/mcp.d.ts +26 -0
  72. package/dist/cli/mcp.js +487 -0
  73. package/dist/cli/mcp.js.map +1 -0
  74. package/dist/cli/models.d.ts +26 -0
  75. package/dist/cli/models.js +435 -0
  76. package/dist/cli/models.js.map +1 -0
  77. package/dist/cli/new.d.ts +32 -0
  78. package/dist/cli/new.js +565 -0
  79. package/dist/cli/new.js.map +1 -0
  80. package/dist/cli/notify.d.ts +20 -0
  81. package/dist/cli/notify.js +188 -0
  82. package/dist/cli/notify.js.map +1 -0
  83. package/dist/cli/onboard.d.ts +85 -0
  84. package/dist/cli/onboard.js +305 -0
  85. package/dist/cli/onboard.js.map +1 -0
  86. package/dist/cli/open.d.ts +38 -0
  87. package/dist/cli/open.js +86 -0
  88. package/dist/cli/open.js.map +1 -0
  89. package/dist/cli/orient.d.ts +14 -0
  90. package/dist/cli/orient.js +110 -0
  91. package/dist/cli/orient.js.map +1 -0
  92. package/dist/cli/picker.d.ts +21 -0
  93. package/dist/cli/picker.js +177 -0
  94. package/dist/cli/picker.js.map +1 -0
  95. package/dist/cli/plugins.d.ts +21 -0
  96. package/dist/cli/plugins.js +394 -0
  97. package/dist/cli/plugins.js.map +1 -0
  98. package/dist/cli/preflight.d.ts +29 -0
  99. package/dist/cli/preflight.js +131 -0
  100. package/dist/cli/preflight.js.map +1 -0
  101. package/dist/cli/pulse.d.ts +26 -0
  102. package/dist/cli/pulse.js +482 -0
  103. package/dist/cli/pulse.js.map +1 -0
  104. package/dist/cli/reflect.d.ts +42 -0
  105. package/dist/cli/reflect.js +381 -0
  106. package/dist/cli/reflect.js.map +1 -0
  107. package/dist/cli/run.d.ts +29 -0
  108. package/dist/cli/run.js +687 -0
  109. package/dist/cli/run.js.map +1 -0
  110. package/dist/cli/sandbox.d.ts +20 -0
  111. package/dist/cli/sandbox.js +345 -0
  112. package/dist/cli/sandbox.js.map +1 -0
  113. package/dist/cli/seams.d.ts +41 -0
  114. package/dist/cli/seams.js +167 -0
  115. package/dist/cli/seams.js.map +1 -0
  116. package/dist/cli/serve.d.ts +25 -0
  117. package/dist/cli/serve.js +249 -0
  118. package/dist/cli/serve.js.map +1 -0
  119. package/dist/cli/ship.d.ts +33 -0
  120. package/dist/cli/ship.js +433 -0
  121. package/dist/cli/ship.js.map +1 -0
  122. package/dist/cli/spec.d.ts +19 -0
  123. package/dist/cli/spec.js +478 -0
  124. package/dist/cli/spec.js.map +1 -0
  125. package/dist/cli/swarm.d.ts +42 -0
  126. package/dist/cli/swarm.js +1365 -0
  127. package/dist/cli/swarm.js.map +1 -0
  128. package/dist/cli/telemetry.d.ts +26 -0
  129. package/dist/cli/telemetry.js +364 -0
  130. package/dist/cli/telemetry.js.map +1 -0
  131. package/dist/cli/tui.d.ts +17 -0
  132. package/dist/cli/tui.js +52 -0
  133. package/dist/cli/tui.js.map +1 -0
  134. package/dist/cli/ui.d.ts +53 -0
  135. package/dist/cli/ui.js +66 -0
  136. package/dist/cli/ui.js.map +1 -0
  137. package/dist/cli/update.d.ts +38 -0
  138. package/dist/cli/update.js +682 -0
  139. package/dist/cli/update.js.map +1 -0
  140. package/dist/cli/vercel.d.ts +20 -0
  141. package/dist/cli/vercel.js +193 -0
  142. package/dist/cli/vercel.js.map +1 -0
  143. package/dist/cli/verify-safety.d.ts +96 -0
  144. package/dist/cli/verify-safety.js +509 -0
  145. package/dist/cli/verify-safety.js.map +1 -0
  146. package/dist/cli/wire.d.ts +22 -0
  147. package/dist/cli/wire.js +205 -0
  148. package/dist/cli/wire.js.map +1 -0
  149. package/dist/core/classify.d.ts +51 -0
  150. package/dist/core/classify.js +450 -0
  151. package/dist/core/classify.js.map +1 -0
  152. package/dist/core/config.d.ts +63 -0
  153. package/dist/core/config.js +474 -0
  154. package/dist/core/config.js.map +1 -0
  155. package/dist/core/daemon/loop.d.ts +74 -0
  156. package/dist/core/daemon/loop.js +618 -0
  157. package/dist/core/daemon/loop.js.map +1 -0
  158. package/dist/core/daemon/state.d.ts +66 -0
  159. package/dist/core/daemon/state.js +197 -0
  160. package/dist/core/daemon/state.js.map +1 -0
  161. package/dist/core/dashboard.d.ts +40 -0
  162. package/dist/core/dashboard.js +463 -0
  163. package/dist/core/dashboard.js.map +1 -0
  164. package/dist/core/digest/build.d.ts +51 -0
  165. package/dist/core/digest/build.js +230 -0
  166. package/dist/core/digest/build.js.map +1 -0
  167. package/dist/core/digest/deliver.d.ts +47 -0
  168. package/dist/core/digest/deliver.js +230 -0
  169. package/dist/core/digest/deliver.js.map +1 -0
  170. package/dist/core/digest/store.d.ts +57 -0
  171. package/dist/core/digest/store.js +223 -0
  172. package/dist/core/digest/store.js.map +1 -0
  173. package/dist/core/doctor-fix.d.ts +21 -0
  174. package/dist/core/doctor-fix.js +440 -0
  175. package/dist/core/doctor-fix.js.map +1 -0
  176. package/dist/core/doctor.d.ts +18 -0
  177. package/dist/core/doctor.js +806 -0
  178. package/dist/core/doctor.js.map +1 -0
  179. package/dist/core/env-bridge.d.ts +64 -0
  180. package/dist/core/env-bridge.js +103 -0
  181. package/dist/core/env-bridge.js.map +1 -0
  182. package/dist/core/genome/capture.d.ts +49 -0
  183. package/dist/core/genome/capture.js +352 -0
  184. package/dist/core/genome/capture.js.map +1 -0
  185. package/dist/core/genome/consolidate.d.ts +38 -0
  186. package/dist/core/genome/consolidate.js +426 -0
  187. package/dist/core/genome/consolidate.js.map +1 -0
  188. package/dist/core/genome/export.d.ts +29 -0
  189. package/dist/core/genome/export.js +102 -0
  190. package/dist/core/genome/export.js.map +1 -0
  191. package/dist/core/genome/playbook.d.ts +33 -0
  192. package/dist/core/genome/playbook.js +320 -0
  193. package/dist/core/genome/playbook.js.map +1 -0
  194. package/dist/core/genome/recall.d.ts +45 -0
  195. package/dist/core/genome/recall.js +293 -0
  196. package/dist/core/genome/recall.js.map +1 -0
  197. package/dist/core/genome/store.d.ts +62 -0
  198. package/dist/core/genome/store.js +711 -0
  199. package/dist/core/genome/store.js.map +1 -0
  200. package/dist/core/git.d.ts +34 -0
  201. package/dist/core/git.js +115 -0
  202. package/dist/core/git.js.map +1 -0
  203. package/dist/core/goals/advance.d.ts +82 -0
  204. package/dist/core/goals/advance.js +263 -0
  205. package/dist/core/goals/advance.js.map +1 -0
  206. package/dist/core/goals/planner.d.ts +58 -0
  207. package/dist/core/goals/planner.js +233 -0
  208. package/dist/core/goals/planner.js.map +1 -0
  209. package/dist/core/goals/store.d.ts +128 -0
  210. package/dist/core/goals/store.js +442 -0
  211. package/dist/core/goals/store.js.map +1 -0
  212. package/dist/core/inbox/apply.d.ts +36 -0
  213. package/dist/core/inbox/apply.js +407 -0
  214. package/dist/core/inbox/apply.js.map +1 -0
  215. package/dist/core/inbox/notify-proposal.d.ts +13 -0
  216. package/dist/core/inbox/notify-proposal.js +21 -0
  217. package/dist/core/inbox/notify-proposal.js.map +1 -0
  218. package/dist/core/inbox/store.d.ts +67 -0
  219. package/dist/core/inbox/store.js +258 -0
  220. package/dist/core/inbox/store.js.map +1 -0
  221. package/dist/core/index-engine.d.ts +62 -0
  222. package/dist/core/index-engine.js +486 -0
  223. package/dist/core/index-engine.js.map +1 -0
  224. package/dist/core/integrations/desktop-notify.d.ts +18 -0
  225. package/dist/core/integrations/desktop-notify.js +42 -0
  226. package/dist/core/integrations/desktop-notify.js.map +1 -0
  227. package/dist/core/integrations/editors.d.ts +50 -0
  228. package/dist/core/integrations/editors.js +216 -0
  229. package/dist/core/integrations/editors.js.map +1 -0
  230. package/dist/core/integrations/github.d.ts +66 -0
  231. package/dist/core/integrations/github.js +332 -0
  232. package/dist/core/integrations/github.js.map +1 -0
  233. package/dist/core/integrations/identity.d.ts +29 -0
  234. package/dist/core/integrations/identity.js +359 -0
  235. package/dist/core/integrations/identity.js.map +1 -0
  236. package/dist/core/integrations/notify.d.ts +23 -0
  237. package/dist/core/integrations/notify.js +96 -0
  238. package/dist/core/integrations/notify.js.map +1 -0
  239. package/dist/core/integrations/vercel.d.ts +37 -0
  240. package/dist/core/integrations/vercel.js +192 -0
  241. package/dist/core/integrations/vercel.js.map +1 -0
  242. package/dist/core/knowledge/ask.d.ts +34 -0
  243. package/dist/core/knowledge/ask.js +325 -0
  244. package/dist/core/knowledge/ask.js.map +1 -0
  245. package/dist/core/knowledge/graph.d.ts +51 -0
  246. package/dist/core/knowledge/graph.js +564 -0
  247. package/dist/core/knowledge/graph.js.map +1 -0
  248. package/dist/core/knowledge/index.d.ts +74 -0
  249. package/dist/core/knowledge/index.js +586 -0
  250. package/dist/core/knowledge/index.js.map +1 -0
  251. package/dist/core/learn/playbooks.d.ts +84 -0
  252. package/dist/core/learn/playbooks.js +241 -0
  253. package/dist/core/learn/playbooks.js.map +1 -0
  254. package/dist/core/learn/reflect.d.ts +87 -0
  255. package/dist/core/learn/reflect.js +435 -0
  256. package/dist/core/learn/reflect.js.map +1 -0
  257. package/dist/core/learn/store.d.ts +51 -0
  258. package/dist/core/learn/store.js +165 -0
  259. package/dist/core/learn/store.js.map +1 -0
  260. package/dist/core/learn/tuning.d.ts +48 -0
  261. package/dist/core/learn/tuning.js +201 -0
  262. package/dist/core/learn/tuning.js.map +1 -0
  263. package/dist/core/lifecycle/scaffold.d.ts +43 -0
  264. package/dist/core/lifecycle/scaffold.js +260 -0
  265. package/dist/core/lifecycle/scaffold.js.map +1 -0
  266. package/dist/core/lifecycle/ship.d.ts +48 -0
  267. package/dist/core/lifecycle/ship.js +513 -0
  268. package/dist/core/lifecycle/ship.js.map +1 -0
  269. package/dist/core/lifecycle/templates.d.ts +20 -0
  270. package/dist/core/lifecycle/templates.js +605 -0
  271. package/dist/core/lifecycle/templates.js.map +1 -0
  272. package/dist/core/mcp-gateway.d.ts +59 -0
  273. package/dist/core/mcp-gateway.js +385 -0
  274. package/dist/core/mcp-gateway.js.map +1 -0
  275. package/dist/core/mcp-native.d.ts +53 -0
  276. package/dist/core/mcp-native.js +507 -0
  277. package/dist/core/mcp-native.js.map +1 -0
  278. package/dist/core/mcp-registry.d.ts +36 -0
  279. package/dist/core/mcp-registry.js +180 -0
  280. package/dist/core/mcp-registry.js.map +1 -0
  281. package/dist/core/observability/budget-alert.d.ts +18 -0
  282. package/dist/core/observability/budget-alert.js +90 -0
  283. package/dist/core/observability/budget-alert.js.map +1 -0
  284. package/dist/core/observability/estimate.d.ts +27 -0
  285. package/dist/core/observability/estimate.js +188 -0
  286. package/dist/core/observability/estimate.js.map +1 -0
  287. package/dist/core/observability/forecast.d.ts +19 -0
  288. package/dist/core/observability/forecast.js +101 -0
  289. package/dist/core/observability/forecast.js.map +1 -0
  290. package/dist/core/observability/governance.d.ts +28 -0
  291. package/dist/core/observability/governance.js +101 -0
  292. package/dist/core/observability/governance.js.map +1 -0
  293. package/dist/core/observability/otlp.d.ts +88 -0
  294. package/dist/core/observability/otlp.js +217 -0
  295. package/dist/core/observability/otlp.js.map +1 -0
  296. package/dist/core/observability/rollup.d.ts +35 -0
  297. package/dist/core/observability/rollup.js +311 -0
  298. package/dist/core/observability/rollup.js.map +1 -0
  299. package/dist/core/observability/telemetry-sink.d.ts +63 -0
  300. package/dist/core/observability/telemetry-sink.js +350 -0
  301. package/dist/core/observability/telemetry-sink.js.map +1 -0
  302. package/dist/core/observability/usage-source.d.ts +60 -0
  303. package/dist/core/observability/usage-source.js +347 -0
  304. package/dist/core/observability/usage-source.js.map +1 -0
  305. package/dist/core/onboard.d.ts +27 -0
  306. package/dist/core/onboard.js +288 -0
  307. package/dist/core/onboard.js.map +1 -0
  308. package/dist/core/orient.d.ts +23 -0
  309. package/dist/core/orient.js +135 -0
  310. package/dist/core/orient.js.map +1 -0
  311. package/dist/core/phantom.d.ts +23 -0
  312. package/dist/core/phantom.js +279 -0
  313. package/dist/core/phantom.js.map +1 -0
  314. package/dist/core/plugins/host-api.d.ts +29 -0
  315. package/dist/core/plugins/host-api.js +113 -0
  316. package/dist/core/plugins/host-api.js.map +1 -0
  317. package/dist/core/plugins/integrity.d.ts +36 -0
  318. package/dist/core/plugins/integrity.js +73 -0
  319. package/dist/core/plugins/integrity.js.map +1 -0
  320. package/dist/core/plugins/manifest.d.ts +31 -0
  321. package/dist/core/plugins/manifest.js +316 -0
  322. package/dist/core/plugins/manifest.js.map +1 -0
  323. package/dist/core/plugins/registry.d.ts +87 -0
  324. package/dist/core/plugins/registry.js +415 -0
  325. package/dist/core/plugins/registry.js.map +1 -0
  326. package/dist/core/plugins/types.d.ts +182 -0
  327. package/dist/core/plugins/types.js +40 -0
  328. package/dist/core/plugins/types.js.map +1 -0
  329. package/dist/core/plugins/wrappers.d.ts +40 -0
  330. package/dist/core/plugins/wrappers.js +229 -0
  331. package/dist/core/plugins/wrappers.js.map +1 -0
  332. package/dist/core/portfolio/backlog.d.ts +40 -0
  333. package/dist/core/portfolio/backlog.js +177 -0
  334. package/dist/core/portfolio/backlog.js.map +1 -0
  335. package/dist/core/portfolio/scanners.d.ts +21 -0
  336. package/dist/core/portfolio/scanners.js +600 -0
  337. package/dist/core/portfolio/scanners.js.map +1 -0
  338. package/dist/core/providers.d.ts +34 -0
  339. package/dist/core/providers.js +250 -0
  340. package/dist/core/providers.js.map +1 -0
  341. package/dist/core/quality/conventions.d.ts +35 -0
  342. package/dist/core/quality/conventions.js +267 -0
  343. package/dist/core/quality/conventions.js.map +1 -0
  344. package/dist/core/quality/fixes.d.ts +56 -0
  345. package/dist/core/quality/fixes.js +209 -0
  346. package/dist/core/quality/fixes.js.map +1 -0
  347. package/dist/core/quality/health.d.ts +69 -0
  348. package/dist/core/quality/health.js +350 -0
  349. package/dist/core/quality/health.js.map +1 -0
  350. package/dist/core/quality/store.d.ts +56 -0
  351. package/dist/core/quality/store.js +195 -0
  352. package/dist/core/quality/store.js.map +1 -0
  353. package/dist/core/readiness.d.ts +112 -0
  354. package/dist/core/readiness.js +431 -0
  355. package/dist/core/readiness.js.map +1 -0
  356. package/dist/core/run/agent-loop.d.ts +40 -0
  357. package/dist/core/run/agent-loop.js +291 -0
  358. package/dist/core/run/agent-loop.js.map +1 -0
  359. package/dist/core/run/budget.d.ts +47 -0
  360. package/dist/core/run/budget.js +113 -0
  361. package/dist/core/run/budget.js.map +1 -0
  362. package/dist/core/run/engines.d.ts +75 -0
  363. package/dist/core/run/engines.js +199 -0
  364. package/dist/core/run/engines.js.map +1 -0
  365. package/dist/core/run/model-manager.d.ts +64 -0
  366. package/dist/core/run/model-manager.js +339 -0
  367. package/dist/core/run/model-manager.js.map +1 -0
  368. package/dist/core/run/orchestrator.d.ts +100 -0
  369. package/dist/core/run/orchestrator.js +1515 -0
  370. package/dist/core/run/orchestrator.js.map +1 -0
  371. package/dist/core/run/provider-client.d.ts +46 -0
  372. package/dist/core/run/provider-client.js +796 -0
  373. package/dist/core/run/provider-client.js.map +1 -0
  374. package/dist/core/run/retry.d.ts +19 -0
  375. package/dist/core/run/retry.js +68 -0
  376. package/dist/core/run/retry.js.map +1 -0
  377. package/dist/core/run/router.d.ts +50 -0
  378. package/dist/core/run/router.js +257 -0
  379. package/dist/core/run/router.js.map +1 -0
  380. package/dist/core/run/self-heal.d.ts +52 -0
  381. package/dist/core/run/self-heal.js +181 -0
  382. package/dist/core/run/self-heal.js.map +1 -0
  383. package/dist/core/run/streaming.d.ts +31 -0
  384. package/dist/core/run/streaming.js +122 -0
  385. package/dist/core/run/streaming.js.map +1 -0
  386. package/dist/core/run/verify.d.ts +30 -0
  387. package/dist/core/run/verify.js +204 -0
  388. package/dist/core/run/verify.js.map +1 -0
  389. package/dist/core/sandbox/audit.d.ts +31 -0
  390. package/dist/core/sandbox/audit.js +169 -0
  391. package/dist/core/sandbox/audit.js.map +1 -0
  392. package/dist/core/sandbox/policy.d.ts +61 -0
  393. package/dist/core/sandbox/policy.js +211 -0
  394. package/dist/core/sandbox/policy.js.map +1 -0
  395. package/dist/core/sandbox/worktree.d.ts +175 -0
  396. package/dist/core/sandbox/worktree.js +673 -0
  397. package/dist/core/sandbox/worktree.js.map +1 -0
  398. package/dist/core/seams/backlog.d.ts +47 -0
  399. package/dist/core/seams/backlog.js +47 -0
  400. package/dist/core/seams/backlog.js.map +1 -0
  401. package/dist/core/seams/daemon-coordinator.d.ts +72 -0
  402. package/dist/core/seams/daemon-coordinator.js +76 -0
  403. package/dist/core/seams/daemon-coordinator.js.map +1 -0
  404. package/dist/core/seams/genome.d.ts +45 -0
  405. package/dist/core/seams/genome.js +53 -0
  406. package/dist/core/seams/genome.js.map +1 -0
  407. package/dist/core/seams/identity.d.ts +40 -0
  408. package/dist/core/seams/identity.js +44 -0
  409. package/dist/core/seams/identity.js.map +1 -0
  410. package/dist/core/seams/inbox.d.ts +60 -0
  411. package/dist/core/seams/inbox.js +66 -0
  412. package/dist/core/seams/inbox.js.map +1 -0
  413. package/dist/core/seams/index.d.ts +20 -0
  414. package/dist/core/seams/index.js +21 -0
  415. package/dist/core/seams/index.js.map +1 -0
  416. package/dist/core/seams/portfolio.d.ts +50 -0
  417. package/dist/core/seams/portfolio.js +61 -0
  418. package/dist/core/seams/portfolio.js.map +1 -0
  419. package/dist/core/seams/registry.d.ts +42 -0
  420. package/dist/core/seams/registry.js +128 -0
  421. package/dist/core/seams/registry.js.map +1 -0
  422. package/dist/core/seams/run-swarm.d.ts +66 -0
  423. package/dist/core/seams/run-swarm.js +74 -0
  424. package/dist/core/seams/run-swarm.js.map +1 -0
  425. package/dist/core/seams/types.d.ts +123 -0
  426. package/dist/core/seams/types.js +35 -0
  427. package/dist/core/seams/types.js.map +1 -0
  428. package/dist/core/spec/spec-store.d.ts +62 -0
  429. package/dist/core/spec/spec-store.js +359 -0
  430. package/dist/core/spec/spec-store.js.map +1 -0
  431. package/dist/core/swarm/gate.d.ts +45 -0
  432. package/dist/core/swarm/gate.js +114 -0
  433. package/dist/core/swarm/gate.js.map +1 -0
  434. package/dist/core/swarm/planner.d.ts +32 -0
  435. package/dist/core/swarm/planner.js +293 -0
  436. package/dist/core/swarm/planner.js.map +1 -0
  437. package/dist/core/swarm/rollback.d.ts +56 -0
  438. package/dist/core/swarm/rollback.js +266 -0
  439. package/dist/core/swarm/rollback.js.map +1 -0
  440. package/dist/core/swarm/runner.d.ts +62 -0
  441. package/dist/core/swarm/runner.js +1263 -0
  442. package/dist/core/swarm/runner.js.map +1 -0
  443. package/dist/core/swarm/sign.d.ts +71 -0
  444. package/dist/core/swarm/sign.js +362 -0
  445. package/dist/core/swarm/sign.js.map +1 -0
  446. package/dist/core/swarm/store.d.ts +52 -0
  447. package/dist/core/swarm/store.js +195 -0
  448. package/dist/core/swarm/store.js.map +1 -0
  449. package/dist/core/tidy.d.ts +32 -0
  450. package/dist/core/tidy.js +354 -0
  451. package/dist/core/tidy.js.map +1 -0
  452. package/dist/core/tools-registry.d.ts +16 -0
  453. package/dist/core/tools-registry.js +308 -0
  454. package/dist/core/tools-registry.js.map +1 -0
  455. package/dist/core/types.d.ts +2545 -0
  456. package/dist/core/types.js +9 -0
  457. package/dist/core/types.js.map +1 -0
  458. package/dist/core/web/api.d.ts +53 -0
  459. package/dist/core/web/api.js +698 -0
  460. package/dist/core/web/api.js.map +1 -0
  461. package/dist/core/web/public/app.js +1906 -0
  462. package/dist/core/web/public/index.html +721 -0
  463. package/dist/core/web/public/styles.css +2007 -0
  464. package/dist/core/web/server.d.ts +18 -0
  465. package/dist/core/web/server.js +122 -0
  466. package/dist/core/web/server.js.map +1 -0
  467. package/dist/core/web/static.d.ts +18 -0
  468. package/dist/core/web/static.js +122 -0
  469. package/dist/core/web/static.js.map +1 -0
  470. package/dist/tui/app.d.ts +33 -0
  471. package/dist/tui/app.js +350 -0
  472. package/dist/tui/app.js.map +1 -0
  473. package/dist/tui/render.d.ts +20 -0
  474. package/dist/tui/render.js +558 -0
  475. package/dist/tui/render.js.map +1 -0
  476. package/package.json +80 -0
  477. package/schema/config.schema.json +223 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/core/doctor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * env-bridge.ts — M10: Config->Env bridge
3
+ *
4
+ * Projects unified ~/.ashlr/config.json values into the environment of spawned
5
+ * child processes (engine delegation, MCP gateway downstreams, ship commands)
6
+ * so every independently-shipped ecosystem tool honours ONE config without
7
+ * modification.
8
+ *
9
+ * SECURITY GUARDRAIL: this module NEVER emits secret values. Credentials are
10
+ * phantom-owned and must only reach children via their own secret resolution.
11
+ * The banned vars are:
12
+ * ANTHROPIC_API_KEY, OPENAI_API_KEY, GEMINI_API_KEY, COHERE_API_KEY,
13
+ * GROQ_API_KEY, and any *_API_KEY / *_SECRET / *_TOKEN pattern.
14
+ *
15
+ * Env-var mapping table
16
+ * ─────────────────────────────────────────────────────────────────────────────
17
+ * Env var(s) Source / derivation Notes
18
+ * ─────────────────────────────────────────────────────────────────────────────
19
+ * OLLAMA_HOST cfg.models.ollama Ollama base URL
20
+ * OLLAMA_BASE_URL cfg.models.ollama Alias; same value
21
+ * LM_STUDIO_URL cfg.models.lmstudio LM Studio base URL
22
+ * OPENAI_BASE_URL cfg.models.lmstudio OAI-compat endpoint;
23
+ * NEVER the key
24
+ * ASHLR_LLM_PROVIDER opts.provider ?? providerChain[0] Active provider id
25
+ * ASHLR_PROVIDER_CHAIN cfg.models.providerChain.join(',') Full chain, CSV
26
+ * ASHLR_MODEL opts.model (when provided) Chosen model name;
27
+ * OMITTED if unknown
28
+ * AC_MODEL opts.model (when provided) ashlrcode alias;
29
+ * mirrors ASHLR_MODEL;
30
+ * OMITTED if unknown
31
+ * ASHLR_LOCAL_FIRST constant "1" Local-first flag
32
+ * ASHLR_CONFIG CONFIG_PATH (~/.ashlr/config.json) Unified config path
33
+ * ASHLR_GENOME_DIR join(CONFIG_DIR,'genome') Hub genome store dir
34
+ * ASHLR_ROOTS cfg.roots.join(':') Colon-joined roots
35
+ * ─────────────────────────────────────────────────────────────────────────────
36
+ */
37
+ import type { AshlrConfig } from './types.js';
38
+ /** Options for callers that already know the active provider / model. */
39
+ export interface BuildToolEnvOpts {
40
+ /** The resolved active provider id (e.g. 'lmstudio', 'ollama', 'anthropic'). */
41
+ provider?: string;
42
+ /** The chosen model name to propagate to children. */
43
+ model?: string;
44
+ }
45
+ /**
46
+ * Build a flat Record of ashlr-derived, NON-SECRET environment keys to merge
47
+ * into a spawned child's environment.
48
+ *
49
+ * Pure and deterministic — never throws, never makes network probes.
50
+ * Keys with empty/undefined source values are omitted from the result.
51
+ */
52
+ export declare function buildToolEnv(cfg: AshlrConfig, opts?: BuildToolEnvOpts): Record<string, string>;
53
+ /**
54
+ * Merge ashlr-derived env vars over a base environment.
55
+ *
56
+ * Ashlr keys override base on collision so child tools always see the hub's
57
+ * unified config regardless of what the parent shell has set.
58
+ *
59
+ * @param cfg Loaded AshlrConfig.
60
+ * @param base Base env to extend (defaults to process.env).
61
+ * @param opts Optional provider/model hints for the child.
62
+ * @returns New env object safe to pass as `{ env }` to spawn/spawnSync.
63
+ */
64
+ export declare function withToolEnv(cfg: AshlrConfig, base?: NodeJS.ProcessEnv, opts?: BuildToolEnvOpts): NodeJS.ProcessEnv;
@@ -0,0 +1,103 @@
1
+ /**
2
+ * env-bridge.ts — M10: Config->Env bridge
3
+ *
4
+ * Projects unified ~/.ashlr/config.json values into the environment of spawned
5
+ * child processes (engine delegation, MCP gateway downstreams, ship commands)
6
+ * so every independently-shipped ecosystem tool honours ONE config without
7
+ * modification.
8
+ *
9
+ * SECURITY GUARDRAIL: this module NEVER emits secret values. Credentials are
10
+ * phantom-owned and must only reach children via their own secret resolution.
11
+ * The banned vars are:
12
+ * ANTHROPIC_API_KEY, OPENAI_API_KEY, GEMINI_API_KEY, COHERE_API_KEY,
13
+ * GROQ_API_KEY, and any *_API_KEY / *_SECRET / *_TOKEN pattern.
14
+ *
15
+ * Env-var mapping table
16
+ * ─────────────────────────────────────────────────────────────────────────────
17
+ * Env var(s) Source / derivation Notes
18
+ * ─────────────────────────────────────────────────────────────────────────────
19
+ * OLLAMA_HOST cfg.models.ollama Ollama base URL
20
+ * OLLAMA_BASE_URL cfg.models.ollama Alias; same value
21
+ * LM_STUDIO_URL cfg.models.lmstudio LM Studio base URL
22
+ * OPENAI_BASE_URL cfg.models.lmstudio OAI-compat endpoint;
23
+ * NEVER the key
24
+ * ASHLR_LLM_PROVIDER opts.provider ?? providerChain[0] Active provider id
25
+ * ASHLR_PROVIDER_CHAIN cfg.models.providerChain.join(',') Full chain, CSV
26
+ * ASHLR_MODEL opts.model (when provided) Chosen model name;
27
+ * OMITTED if unknown
28
+ * AC_MODEL opts.model (when provided) ashlrcode alias;
29
+ * mirrors ASHLR_MODEL;
30
+ * OMITTED if unknown
31
+ * ASHLR_LOCAL_FIRST constant "1" Local-first flag
32
+ * ASHLR_CONFIG CONFIG_PATH (~/.ashlr/config.json) Unified config path
33
+ * ASHLR_GENOME_DIR join(CONFIG_DIR,'genome') Hub genome store dir
34
+ * ASHLR_ROOTS cfg.roots.join(':') Colon-joined roots
35
+ * ─────────────────────────────────────────────────────────────────────────────
36
+ */
37
+ import { join } from 'path';
38
+ import { CONFIG_DIR, CONFIG_PATH } from './config.js';
39
+ /**
40
+ * Build a flat Record of ashlr-derived, NON-SECRET environment keys to merge
41
+ * into a spawned child's environment.
42
+ *
43
+ * Pure and deterministic — never throws, never makes network probes.
44
+ * Keys with empty/undefined source values are omitted from the result.
45
+ */
46
+ export function buildToolEnv(cfg, opts) {
47
+ const env = {};
48
+ // ── Ollama endpoint ───────────────────────────────────────────────────────
49
+ const ollamaUrl = cfg.models.ollama?.trim();
50
+ if (ollamaUrl) {
51
+ env['OLLAMA_HOST'] = ollamaUrl;
52
+ env['OLLAMA_BASE_URL'] = ollamaUrl;
53
+ }
54
+ // ── LM Studio endpoint (OpenAI-compatible; endpoint only, never the key) ──
55
+ const lmStudioUrl = cfg.models.lmstudio?.trim();
56
+ if (lmStudioUrl) {
57
+ env['LM_STUDIO_URL'] = lmStudioUrl;
58
+ env['OPENAI_BASE_URL'] = lmStudioUrl;
59
+ }
60
+ // ── Active provider ───────────────────────────────────────────────────────
61
+ const chain = cfg.models.providerChain ?? [];
62
+ const activeProvider = opts?.provider?.trim() || chain[0]?.trim();
63
+ if (activeProvider) {
64
+ env['ASHLR_LLM_PROVIDER'] = activeProvider;
65
+ }
66
+ // ── Full provider chain ───────────────────────────────────────────────────
67
+ if (chain.length > 0) {
68
+ env['ASHLR_PROVIDER_CHAIN'] = chain.join(',');
69
+ }
70
+ // ── Model name (omitted when unknown) ─────────────────────────────────────
71
+ const model = opts?.model?.trim();
72
+ if (model) {
73
+ env['ASHLR_MODEL'] = model;
74
+ env['AC_MODEL'] = model; // ashlrcode alias
75
+ }
76
+ // ── Local-first flag (always "1") ─────────────────────────────────────────
77
+ env['ASHLR_LOCAL_FIRST'] = '1';
78
+ // ── Config path (always emitted; path-derived) ────────────────────────────
79
+ env['ASHLR_CONFIG'] = CONFIG_PATH;
80
+ // ── Genome store dir (always emitted; path-derived) ───────────────────────
81
+ env['ASHLR_GENOME_DIR'] = join(CONFIG_DIR, 'genome');
82
+ // ── Scan roots (colon-joined) ─────────────────────────────────────────────
83
+ const roots = (cfg.roots ?? []).filter(Boolean);
84
+ if (roots.length > 0) {
85
+ env['ASHLR_ROOTS'] = roots.join(':');
86
+ }
87
+ return env;
88
+ }
89
+ /**
90
+ * Merge ashlr-derived env vars over a base environment.
91
+ *
92
+ * Ashlr keys override base on collision so child tools always see the hub's
93
+ * unified config regardless of what the parent shell has set.
94
+ *
95
+ * @param cfg Loaded AshlrConfig.
96
+ * @param base Base env to extend (defaults to process.env).
97
+ * @param opts Optional provider/model hints for the child.
98
+ * @returns New env object safe to pass as `{ env }` to spawn/spawnSync.
99
+ */
100
+ export function withToolEnv(cfg, base, opts) {
101
+ return { ...(base ?? process.env), ...buildToolEnv(cfg, opts) };
102
+ }
103
+ //# sourceMappingURL=env-bridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env-bridge.js","sourceRoot":"","sources":["../../src/core/env-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAUtD;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAC1B,GAAgB,EAChB,IAAuB;IAEvB,MAAM,GAAG,GAA2B,EAAE,CAAC;IAEvC,6EAA6E;IAC7E,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;IAC5C,IAAI,SAAS,EAAE,CAAC;QACd,GAAG,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC;QAC/B,GAAG,CAAC,iBAAiB,CAAC,GAAG,SAAS,CAAC;IACrC,CAAC;IAED,6EAA6E;IAC7E,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;IAChD,IAAI,WAAW,EAAE,CAAC;QAChB,GAAG,CAAC,eAAe,CAAC,GAAG,WAAW,CAAC;QACnC,GAAG,CAAC,iBAAiB,CAAC,GAAG,WAAW,CAAC;IACvC,CAAC;IAED,6EAA6E;IAC7E,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,aAAa,IAAI,EAAE,CAAC;IAC7C,MAAM,cAAc,GAAG,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;IAClE,IAAI,cAAc,EAAE,CAAC;QACnB,GAAG,CAAC,oBAAoB,CAAC,GAAG,cAAc,CAAC;IAC7C,CAAC;IAED,6EAA6E;IAC7E,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,GAAG,CAAC,sBAAsB,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChD,CAAC;IAED,6EAA6E;IAC7E,MAAM,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAClC,IAAI,KAAK,EAAE,CAAC;QACV,GAAG,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC;QAC3B,GAAG,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,CAAC,kBAAkB;IAC7C,CAAC;IAED,6EAA6E;IAC7E,GAAG,CAAC,mBAAmB,CAAC,GAAG,GAAG,CAAC;IAE/B,6EAA6E;IAC7E,GAAG,CAAC,cAAc,CAAC,GAAG,WAAW,CAAC;IAElC,6EAA6E;IAC7E,GAAG,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAErD,6EAA6E;IAC7E,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAChD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,GAAG,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvC,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,WAAW,CACzB,GAAgB,EAChB,IAAwB,EACxB,IAAuB;IAEvB,OAAO,EAAE,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,GAAG,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC;AAClE,CAAC"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * capture.ts — Auto-capture structured GenomeEntry records from completed
3
+ * runs and swarms (M16).
4
+ *
5
+ * GUARDRAILS:
6
+ * - PRIVACY: summary/metadata ONLY — no secrets, no raw prompts/completions,
7
+ * no tool args, no file contents. Hard cap on entry size.
8
+ * - FIRE-AND-FORGET: captureFromRun / captureFromSwarm never throw and never
9
+ * block the caller. All async work is kicked off without awaiting.
10
+ * - LOCAL-ONLY: no cloud calls; reuses appendHubEntry from store.ts.
11
+ * - DEDUPE-AWARE: skips append when a near-identical recent entry exists.
12
+ * - NO DATA LOSS: append-only; never deletes or overwrites.
13
+ * - HUB-ONLY FOOTPRINT: auto-capture passes hubOnly:true to appendHubEntry, so
14
+ * it writes to ~/.ashlr/genome/hub.jsonl ONLY and NEVER drops a note file
15
+ * into a repo's .ashlrcode/genome/hub-notes/ working tree (which could be
16
+ * git-committed). The project-note drop stays reserved for explicit
17
+ * `genome --teach` / `learn`.
18
+ */
19
+ import type { AshlrConfig, RunState, SwarmRun } from '../types.js';
20
+ /**
21
+ * Produce a concise METADATA/SUMMARY-ONLY string describing a completed run
22
+ * or swarm. Deterministic; no I/O; no model call; never throws.
23
+ *
24
+ * Captures: goal, outcome gist, and for swarms a bounded task-count sketch.
25
+ * NEVER includes: secrets, raw result bodies, full prompts, tool args, or
26
+ * file contents.
27
+ */
28
+ export declare function summarizeForGenome(input: {
29
+ goal: string;
30
+ result?: string;
31
+ tasks?: unknown[];
32
+ }): string;
33
+ /**
34
+ * Fire-and-forget: capture a GenomeEntry summarising a completed RunState.
35
+ *
36
+ * - MUST NOT throw. MUST NOT block the caller (all async appends are
37
+ * unobserved Promises; never awaited in the hot path).
38
+ * - No-op when cfg.genome?.autoCapture === false.
39
+ * - Dedupe-aware: skips near-identical recent entries.
40
+ */
41
+ export declare function captureFromRun(run: RunState, cfg: AshlrConfig): void;
42
+ /**
43
+ * Fire-and-forget: capture a GenomeEntry summarising a completed SwarmRun.
44
+ *
45
+ * - MUST NOT throw. MUST NOT block the caller.
46
+ * - No-op when cfg.genome?.autoCapture === false.
47
+ * - Dedupe-aware: skips near-identical recent entries.
48
+ */
49
+ export declare function captureFromSwarm(s: SwarmRun, cfg: AshlrConfig): void;
@@ -0,0 +1,352 @@
1
+ /**
2
+ * capture.ts — Auto-capture structured GenomeEntry records from completed
3
+ * runs and swarms (M16).
4
+ *
5
+ * GUARDRAILS:
6
+ * - PRIVACY: summary/metadata ONLY — no secrets, no raw prompts/completions,
7
+ * no tool args, no file contents. Hard cap on entry size.
8
+ * - FIRE-AND-FORGET: captureFromRun / captureFromSwarm never throw and never
9
+ * block the caller. All async work is kicked off without awaiting.
10
+ * - LOCAL-ONLY: no cloud calls; reuses appendHubEntry from store.ts.
11
+ * - DEDUPE-AWARE: skips append when a near-identical recent entry exists.
12
+ * - NO DATA LOSS: append-only; never deletes or overwrites.
13
+ * - HUB-ONLY FOOTPRINT: auto-capture passes hubOnly:true to appendHubEntry, so
14
+ * it writes to ~/.ashlr/genome/hub.jsonl ONLY and NEVER drops a note file
15
+ * into a repo's .ashlrcode/genome/hub-notes/ working tree (which could be
16
+ * git-committed). The project-note drop stays reserved for explicit
17
+ * `genome --teach` / `learn`.
18
+ */
19
+ import { appendHubEntry, loadGenome } from './store.js';
20
+ // ---------------------------------------------------------------------------
21
+ // Constants
22
+ // ---------------------------------------------------------------------------
23
+ /** Hard cap on the summary string returned by summarizeForGenome. */
24
+ const SUMMARY_MAX_CHARS = 800;
25
+ /** Max characters of a goal kept in the entry title. */
26
+ const TITLE_MAX_CHARS = 100;
27
+ /**
28
+ * How many recent hub entries to check for deduplication.
29
+ * Bounded to keep the hot path cheap.
30
+ */
31
+ const DEDUPE_SCAN_LIMIT = 50;
32
+ /**
33
+ * Jaccard similarity threshold above which an entry is considered a near-
34
+ * duplicate and the new append is skipped.
35
+ */
36
+ const DEDUPE_THRESHOLD = 0.72;
37
+ // ---------------------------------------------------------------------------
38
+ // Secret-stripping helpers
39
+ // ---------------------------------------------------------------------------
40
+ /**
41
+ * Patterns that look like secret values. We only want goal/status/count
42
+ * metadata in the genome — strip anything that resembles a token, key, or
43
+ * credential so the auto-capture is safe even if a result string leaks one.
44
+ *
45
+ * Matches: bearer tokens, API keys (sk-…, pk-…, xoxb-…), AWS access key ids,
46
+ * Google API keys, PEM private-key blocks, long hex/base64 blobs (≥32 chars),
47
+ * passwords in URL authority, and generic token/secret/apikey assignments.
48
+ *
49
+ * NOTE: PEM blocks must be redacted BEFORE the base64/hex blob rules, otherwise
50
+ * those greedy rules would shred the key body line-by-line and leave the
51
+ * BEGIN/END markers behind. Order matters — keep multi-line patterns first.
52
+ */
53
+ const SECRET_PATTERNS = [
54
+ // PEM private-key blocks (multi-line) — redact the whole block first.
55
+ /-----BEGIN[ A-Z]*PRIVATE KEY-----[\s\S]*?-----END[ A-Z]*PRIVATE KEY-----/g,
56
+ // Fallback: any stray BEGIN-private-key marker line (truncated/partial blocks).
57
+ /-----BEGIN[ A-Z]*PRIVATE KEY-----[^\n]*/g,
58
+ /\b(sk|pk|xoxb|xoxp|ghp|ghs|glpat|ey[A-Za-z0-9])[A-Za-z0-9_-]{8,}/g,
59
+ /\bAKIA[0-9A-Z]{16}\b/g, // AWS access key id
60
+ /\bAIza[0-9A-Za-z_-]{35}\b/g, // Google API key
61
+ /Bearer\s+[A-Za-z0-9\-._~+/]{8,}/gi,
62
+ // Generic token/secret/apikey/api_key = <value> assignments.
63
+ /\b(?:api[_-]?key|apikey|secret|token|access[_-]?token|auth[_-]?token)\b\s*[:=]\s*["']?[A-Za-z0-9\-._~+/]{6,}["']?/gi,
64
+ /[A-Fa-f0-9]{32,}/g,
65
+ /[A-Za-z0-9+/]{40,}={0,2}/g, // long base64 blobs
66
+ /:[^@\s]{8,}@[a-zA-Z0-9.-]+/g, // password in URL
67
+ /password=[^\s]{4,}/gi, // password= assignments
68
+ ];
69
+ /** Strip secret-shaped substrings from a string. */
70
+ function stripSecrets(text) {
71
+ let out = text;
72
+ for (const re of SECRET_PATTERNS) {
73
+ out = out.replace(re, '[REDACTED]');
74
+ }
75
+ return out;
76
+ }
77
+ // ---------------------------------------------------------------------------
78
+ // Text similarity (Jaccard on trigrams) — for deduplication
79
+ // ---------------------------------------------------------------------------
80
+ /** Produce the set of character trigrams from a string (lowercased). */
81
+ function trigrams(s) {
82
+ const norm = s.toLowerCase().replace(/\s+/g, ' ').trim();
83
+ const result = new Set();
84
+ for (let i = 0; i + 2 < norm.length; i++) {
85
+ result.add(norm.slice(i, i + 3));
86
+ }
87
+ return result;
88
+ }
89
+ /** Jaccard similarity between two trigram sets. Returns 0–1. */
90
+ function jaccardSimilarity(a, b) {
91
+ if (a.size === 0 && b.size === 0)
92
+ return 1;
93
+ if (a.size === 0 || b.size === 0)
94
+ return 0;
95
+ let intersection = 0;
96
+ for (const t of a) {
97
+ if (b.has(t))
98
+ intersection++;
99
+ }
100
+ return intersection / (a.size + b.size - intersection);
101
+ }
102
+ // ---------------------------------------------------------------------------
103
+ // Deduplication check
104
+ // ---------------------------------------------------------------------------
105
+ /**
106
+ * Returns true when the genome already contains a near-identical recent entry
107
+ * for the same goal + project. Scans only the most recent DEDUPE_SCAN_LIMIT
108
+ * hub entries for performance. Never throws.
109
+ */
110
+ function isDuplicate(goal, project, summaryText, cfg) {
111
+ try {
112
+ const all = loadGenome(cfg);
113
+ // Only look at hub-sourced entries (auto-captures live there), most recent first.
114
+ const hubEntries = all
115
+ .filter((e) => e.source === 'hub')
116
+ .slice(-DEDUPE_SCAN_LIMIT);
117
+ const newTrigoals = trigrams(goal);
118
+ const newTriText = trigrams(summaryText);
119
+ for (const e of hubEntries) {
120
+ // Project must match (or both null/empty).
121
+ const eProj = e.project ?? null;
122
+ const projMatch = eProj === project || (!eProj && !project);
123
+ if (!projMatch)
124
+ continue;
125
+ // Goal similarity check.
126
+ const goalSim = jaccardSimilarity(newTrigoals, trigrams(e.title));
127
+ if (goalSim < 0.5)
128
+ continue;
129
+ // Summary/text overlap check.
130
+ const textSim = jaccardSimilarity(newTriText, trigrams(e.text));
131
+ if (goalSim + textSim >= DEDUPE_THRESHOLD * 2) {
132
+ return true;
133
+ }
134
+ }
135
+ return false;
136
+ }
137
+ catch {
138
+ // On any error be conservative: allow the append.
139
+ return false;
140
+ }
141
+ }
142
+ // ---------------------------------------------------------------------------
143
+ // Public: summarizeForGenome
144
+ // ---------------------------------------------------------------------------
145
+ /**
146
+ * Produce a concise METADATA/SUMMARY-ONLY string describing a completed run
147
+ * or swarm. Deterministic; no I/O; no model call; never throws.
148
+ *
149
+ * Captures: goal, outcome gist, and for swarms a bounded task-count sketch.
150
+ * NEVER includes: secrets, raw result bodies, full prompts, tool args, or
151
+ * file contents.
152
+ */
153
+ export function summarizeForGenome(input) {
154
+ const parts = [];
155
+ // Goal line (truncated + secret-stripped).
156
+ const goal = stripSecrets((input.goal ?? '').trim()).slice(0, 200);
157
+ if (goal) {
158
+ parts.push(`Goal: ${goal}`);
159
+ }
160
+ // Task sketch — counts and goals only, no result bodies.
161
+ if (Array.isArray(input.tasks) && input.tasks.length > 0) {
162
+ // Filter out null/non-object elements defensively.
163
+ const tasks = input.tasks
164
+ .filter((t) => typeof t === 'object' && t !== null);
165
+ const total = tasks.length;
166
+ const done = tasks.filter((t) => t['status'] === 'done').length;
167
+ const failed = tasks.filter((t) => t['status'] === 'failed').length;
168
+ const skipped = tasks.filter((t) => t['status'] === 'skipped').length;
169
+ parts.push(`Tasks: ${total} total — ${done} done, ${failed} failed, ${skipped} skipped`);
170
+ // Include up to 5 task goals (goal text only, never result/error bodies).
171
+ const taskGoals = tasks
172
+ .slice(0, 5)
173
+ .map((t) => {
174
+ const tgoal = typeof t['goal'] === 'string' ? stripSecrets(t['goal']).trim().slice(0, 80) : null;
175
+ const tstatus = typeof t['status'] === 'string' ? t['status'] : '';
176
+ return tgoal ? ` • [${tstatus}] ${tgoal}` : null;
177
+ })
178
+ .filter((s) => s !== null);
179
+ if (taskGoals.length > 0) {
180
+ parts.push(taskGoals.join('\n'));
181
+ }
182
+ if (total > 5) {
183
+ parts.push(` … and ${total - 5} more`);
184
+ }
185
+ }
186
+ // Outcome gist — first sentence of result only, stripped of secrets.
187
+ if (typeof input.result === 'string' && input.result.trim()) {
188
+ const firstSentence = input.result
189
+ .trim()
190
+ .replace(/\n+/g, ' ')
191
+ .slice(0, 300)
192
+ .split(/(?<=[.!?])\s+/)[0] ?? '';
193
+ const cleaned = stripSecrets(firstSentence).trim().slice(0, 250);
194
+ if (cleaned) {
195
+ parts.push(`Outcome: ${cleaned}`);
196
+ }
197
+ }
198
+ const raw = parts.join('\n');
199
+ // Hard cap — truncate with elision marker if needed.
200
+ if (raw.length <= SUMMARY_MAX_CHARS)
201
+ return raw;
202
+ return raw.slice(0, SUMMARY_MAX_CHARS - 3) + '...';
203
+ }
204
+ // ---------------------------------------------------------------------------
205
+ // Outcome mapping helpers
206
+ // ---------------------------------------------------------------------------
207
+ function mapRunOutcome(status) {
208
+ if (status === 'done')
209
+ return 'done';
210
+ if (status === 'aborted')
211
+ return 'aborted';
212
+ return 'failed';
213
+ }
214
+ function mapSwarmOutcome(status) {
215
+ if (status === 'done')
216
+ return 'done';
217
+ if (status === 'aborted')
218
+ return 'aborted';
219
+ return 'failed';
220
+ }
221
+ // ---------------------------------------------------------------------------
222
+ // Tag helpers
223
+ // ---------------------------------------------------------------------------
224
+ /** Produce a deduped, lowercased tag array. */
225
+ function buildTags(...parts) {
226
+ const seen = new Set();
227
+ const out = [];
228
+ for (const p of parts) {
229
+ if (!p)
230
+ continue;
231
+ const t = p.trim().toLowerCase();
232
+ if (t && !seen.has(t)) {
233
+ seen.add(t);
234
+ out.push(t);
235
+ }
236
+ }
237
+ return out;
238
+ }
239
+ // ---------------------------------------------------------------------------
240
+ // Public: captureFromRun
241
+ // ---------------------------------------------------------------------------
242
+ /**
243
+ * Fire-and-forget: capture a GenomeEntry summarising a completed RunState.
244
+ *
245
+ * - MUST NOT throw. MUST NOT block the caller (all async appends are
246
+ * unobserved Promises; never awaited in the hot path).
247
+ * - No-op when cfg.genome?.autoCapture === false.
248
+ * - Dedupe-aware: skips near-identical recent entries.
249
+ */
250
+ export function captureFromRun(run, cfg) {
251
+ // Fast no-op guard — synchronous, never throws.
252
+ if (!cfg || cfg.genome?.autoCapture === false)
253
+ return;
254
+ // Kick off async work without blocking the caller.
255
+ void (async () => {
256
+ try {
257
+ const goal = stripSecrets((run.goal ?? '').trim());
258
+ if (!goal)
259
+ return;
260
+ // Derive project from run's cwd or engine — not available on RunState
261
+ // directly, so we leave it null (hub-scoped).
262
+ const project = null;
263
+ const summary = summarizeForGenome({
264
+ goal,
265
+ result: run.result,
266
+ tasks: run.tasks,
267
+ });
268
+ if (isDuplicate(goal, project, summary, cfg))
269
+ return;
270
+ const outcome = mapRunOutcome(run.status);
271
+ const tags = buildTags('run', outcome, run.engine, run.provider);
272
+ appendHubEntry({
273
+ title: goal.slice(0, TITLE_MAX_CHARS),
274
+ text: summary,
275
+ project: project ?? undefined,
276
+ tags,
277
+ // Auto-capture: hub store only — never write into a repo working tree.
278
+ hubOnly: true,
279
+ });
280
+ }
281
+ catch {
282
+ // Swallow all errors — never surface to caller.
283
+ }
284
+ })();
285
+ }
286
+ // ---------------------------------------------------------------------------
287
+ // Public: captureFromSwarm
288
+ // ---------------------------------------------------------------------------
289
+ /**
290
+ * Fire-and-forget: capture a GenomeEntry summarising a completed SwarmRun.
291
+ *
292
+ * - MUST NOT throw. MUST NOT block the caller.
293
+ * - No-op when cfg.genome?.autoCapture === false.
294
+ * - Dedupe-aware: skips near-identical recent entries.
295
+ */
296
+ export function captureFromSwarm(s, cfg) {
297
+ if (!cfg || cfg.genome?.autoCapture === false)
298
+ return;
299
+ void (async () => {
300
+ try {
301
+ const goal = stripSecrets((s.goal ?? '').trim());
302
+ if (!goal)
303
+ return;
304
+ // Project: the swarm has an explicit project path; use its basename.
305
+ const project = s.project
306
+ ? s.project.trim() || null
307
+ : null;
308
+ // Build task list for summarizer — use SwarmTaskRun records (status +
309
+ // goal from the plan spec via id match). We pass SwarmTaskRun as tasks;
310
+ // summarizeForGenome reads .goal and .status generically.
311
+ const planTasksByPhase = s.plan?.tasks ?? [];
312
+ // Merge plan goals onto task run statuses for a richer sketch.
313
+ const taskSummaries = s.tasks.map((t) => {
314
+ const spec = planTasksByPhase.find((p) => p.id === t.id);
315
+ return {
316
+ id: t.id,
317
+ status: t.status,
318
+ // Goal from the spec (never from result/error body).
319
+ goal: typeof spec?.['goal'] === 'string'
320
+ ? spec['goal']
321
+ : t.id,
322
+ };
323
+ });
324
+ // Phase sketch (count only, no content).
325
+ const phases = new Set(s.tasks.map((t) => t.phase).filter(Boolean));
326
+ const phaseNote = phases.size > 0
327
+ ? `Phases: ${[...phases].join(', ')}`
328
+ : '';
329
+ const summary = summarizeForGenome({
330
+ goal,
331
+ result: phaseNote || s.result,
332
+ tasks: taskSummaries,
333
+ });
334
+ if (isDuplicate(goal, project, summary, cfg))
335
+ return;
336
+ const outcome = mapSwarmOutcome(s.status);
337
+ const tags = buildTags('swarm', outcome, project, phases.size > 0 ? `phases:${phases.size}` : null);
338
+ appendHubEntry({
339
+ title: goal.slice(0, TITLE_MAX_CHARS),
340
+ text: summary,
341
+ project: project ?? undefined,
342
+ tags,
343
+ // Auto-capture: hub store only — never write into a repo working tree.
344
+ hubOnly: true,
345
+ });
346
+ }
347
+ catch {
348
+ // Swallow all errors — never surface to caller.
349
+ }
350
+ })();
351
+ }
352
+ //# sourceMappingURL=capture.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capture.js","sourceRoot":"","sources":["../../../src/core/genome/capture.ts"],"names":[],"mappings":"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"}