@10et/cli 1.0.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 (1401) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +79 -0
  3. package/clawdbot-plugin/clawdbot.plugin.json +20 -0
  4. package/clawdbot-plugin/index.js +555 -0
  5. package/clawdbot-plugin/index.ts +582 -0
  6. package/clawdbot-skill/README.md +328 -0
  7. package/clawdbot-skill/SKILL.md +59 -0
  8. package/clawdbot-skill/index.ts +683 -0
  9. package/clawdbot-skill/package.json +28 -0
  10. package/clawdbot-skill/skill.json +19 -0
  11. package/dist/commands/agent.d.ts +7 -0
  12. package/dist/commands/agent.d.ts.map +1 -0
  13. package/dist/commands/agent.js +170 -0
  14. package/dist/commands/agent.js.map +1 -0
  15. package/dist/commands/agents.d.ts +5 -0
  16. package/dist/commands/agents.d.ts.map +1 -0
  17. package/dist/commands/agents.js +400 -0
  18. package/dist/commands/agents.js.map +1 -0
  19. package/dist/commands/ci-setup.d.ts +5 -0
  20. package/dist/commands/ci-setup.d.ts.map +1 -0
  21. package/dist/commands/ci-setup.js +82 -0
  22. package/dist/commands/ci-setup.js.map +1 -0
  23. package/dist/commands/clawdbot.d.ts +11 -0
  24. package/dist/commands/clawdbot.d.ts.map +1 -0
  25. package/dist/commands/clawdbot.js +215 -0
  26. package/dist/commands/clawdbot.js.map +1 -0
  27. package/dist/commands/context-hub.d.ts +22 -0
  28. package/dist/commands/context-hub.d.ts.map +1 -0
  29. package/dist/commands/context-hub.js +3505 -0
  30. package/dist/commands/context-hub.js.map +1 -0
  31. package/dist/commands/deploy.d.ts +5 -0
  32. package/dist/commands/deploy.d.ts.map +1 -0
  33. package/dist/commands/deploy.js +371 -0
  34. package/dist/commands/deploy.js.map +1 -0
  35. package/dist/commands/digest.d.ts +12 -0
  36. package/dist/commands/digest.d.ts.map +1 -0
  37. package/dist/commands/digest.js +128 -0
  38. package/dist/commands/digest.js.map +1 -0
  39. package/dist/commands/doctor.d.ts +8 -0
  40. package/dist/commands/doctor.d.ts.map +1 -0
  41. package/dist/commands/doctor.js +265 -0
  42. package/dist/commands/doctor.js.map +1 -0
  43. package/dist/commands/eval.d.ts +46 -0
  44. package/dist/commands/eval.d.ts.map +1 -0
  45. package/dist/commands/eval.js +427 -0
  46. package/dist/commands/eval.js.map +1 -0
  47. package/dist/commands/feedback.d.ts +2 -0
  48. package/dist/commands/feedback.d.ts.map +1 -0
  49. package/dist/commands/feedback.js +179 -0
  50. package/dist/commands/feedback.js.map +1 -0
  51. package/dist/commands/findings.d.ts +13 -0
  52. package/dist/commands/findings.d.ts.map +1 -0
  53. package/dist/commands/findings.js +203 -0
  54. package/dist/commands/findings.js.map +1 -0
  55. package/dist/commands/flows.d.ts +10 -0
  56. package/dist/commands/flows.d.ts.map +1 -0
  57. package/dist/commands/flows.js +423 -0
  58. package/dist/commands/flows.js.map +1 -0
  59. package/dist/commands/gtm-process-update.d.ts +10 -0
  60. package/dist/commands/gtm-process-update.d.ts.map +1 -0
  61. package/dist/commands/gtm-process-update.js +101 -0
  62. package/dist/commands/gtm-process-update.js.map +1 -0
  63. package/dist/commands/hooks.d.ts +13 -0
  64. package/dist/commands/hooks.d.ts.map +1 -0
  65. package/dist/commands/hooks.js +304 -0
  66. package/dist/commands/hooks.js.map +1 -0
  67. package/dist/commands/hud.d.ts +4 -0
  68. package/dist/commands/hud.d.ts.map +1 -0
  69. package/dist/commands/hud.js +300 -0
  70. package/dist/commands/hud.js.map +1 -0
  71. package/dist/commands/ide.d.ts +28 -0
  72. package/dist/commands/ide.d.ts.map +1 -0
  73. package/dist/commands/ide.js +628 -0
  74. package/dist/commands/ide.js.map +1 -0
  75. package/dist/commands/improve.d.ts +11 -0
  76. package/dist/commands/improve.d.ts.map +1 -0
  77. package/dist/commands/improve.js +77 -0
  78. package/dist/commands/improve.js.map +1 -0
  79. package/dist/commands/init-from-service.d.ts +15 -0
  80. package/dist/commands/init-from-service.d.ts.map +1 -0
  81. package/dist/commands/init-from-service.js +540 -0
  82. package/dist/commands/init-from-service.js.map +1 -0
  83. package/dist/commands/init.d.ts +15 -0
  84. package/dist/commands/init.d.ts.map +1 -0
  85. package/dist/commands/init.js +940 -0
  86. package/dist/commands/init.js.map +1 -0
  87. package/dist/commands/kanban.d.ts +34 -0
  88. package/dist/commands/kanban.d.ts.map +1 -0
  89. package/dist/commands/kanban.js +225 -0
  90. package/dist/commands/kanban.js.map +1 -0
  91. package/dist/commands/linear.d.ts +41 -0
  92. package/dist/commands/linear.d.ts.map +1 -0
  93. package/dist/commands/linear.js +740 -0
  94. package/dist/commands/linear.js.map +1 -0
  95. package/dist/commands/login.d.ts +12 -0
  96. package/dist/commands/login.d.ts.map +1 -0
  97. package/dist/commands/login.js +780 -0
  98. package/dist/commands/login.js.map +1 -0
  99. package/dist/commands/memory.d.ts +38 -0
  100. package/dist/commands/memory.d.ts.map +1 -0
  101. package/dist/commands/memory.js +229 -0
  102. package/dist/commands/memory.js.map +1 -0
  103. package/dist/commands/migrate-services.d.ts +8 -0
  104. package/dist/commands/migrate-services.d.ts.map +1 -0
  105. package/dist/commands/migrate-services.js +182 -0
  106. package/dist/commands/migrate-services.js.map +1 -0
  107. package/dist/commands/migrate-tenet.d.ts +25 -0
  108. package/dist/commands/migrate-tenet.d.ts.map +1 -0
  109. package/dist/commands/migrate-tenet.js +252 -0
  110. package/dist/commands/migrate-tenet.js.map +1 -0
  111. package/dist/commands/onboard.d.ts +24 -0
  112. package/dist/commands/onboard.d.ts.map +1 -0
  113. package/dist/commands/onboard.js +873 -0
  114. package/dist/commands/onboard.js.map +1 -0
  115. package/dist/commands/openclaw.d.ts +59 -0
  116. package/dist/commands/openclaw.d.ts.map +1 -0
  117. package/dist/commands/openclaw.js +775 -0
  118. package/dist/commands/openclaw.js.map +1 -0
  119. package/dist/commands/orchestrate.d.ts +14 -0
  120. package/dist/commands/orchestrate.d.ts.map +1 -0
  121. package/dist/commands/orchestrate.js +270 -0
  122. package/dist/commands/orchestrate.js.map +1 -0
  123. package/dist/commands/organize.d.ts +16 -0
  124. package/dist/commands/organize.d.ts.map +1 -0
  125. package/dist/commands/organize.js +334 -0
  126. package/dist/commands/organize.js.map +1 -0
  127. package/dist/commands/peter.d.ts +21 -0
  128. package/dist/commands/peter.d.ts.map +1 -0
  129. package/dist/commands/peter.js +2778 -0
  130. package/dist/commands/peter.js.map +1 -0
  131. package/dist/commands/pi-fleet.d.ts +18 -0
  132. package/dist/commands/pi-fleet.d.ts.map +1 -0
  133. package/dist/commands/pi-fleet.js +382 -0
  134. package/dist/commands/pi-fleet.js.map +1 -0
  135. package/dist/commands/pi.d.ts +25 -0
  136. package/dist/commands/pi.d.ts.map +1 -0
  137. package/dist/commands/pi.js +218 -0
  138. package/dist/commands/pi.js.map +1 -0
  139. package/dist/commands/pivot.d.ts +28 -0
  140. package/dist/commands/pivot.d.ts.map +1 -0
  141. package/dist/commands/pivot.js +216 -0
  142. package/dist/commands/pivot.js.map +1 -0
  143. package/dist/commands/portfolio.d.ts +11 -0
  144. package/dist/commands/portfolio.d.ts.map +1 -0
  145. package/dist/commands/portfolio.js +239 -0
  146. package/dist/commands/portfolio.js.map +1 -0
  147. package/dist/commands/predict.d.ts +25 -0
  148. package/dist/commands/predict.d.ts.map +1 -0
  149. package/dist/commands/predict.js +234 -0
  150. package/dist/commands/predict.js.map +1 -0
  151. package/dist/commands/profile.d.ts +46 -0
  152. package/dist/commands/profile.d.ts.map +1 -0
  153. package/dist/commands/profile.js +498 -0
  154. package/dist/commands/profile.js.map +1 -0
  155. package/dist/commands/ralph.d.ts +11 -0
  156. package/dist/commands/ralph.d.ts.map +1 -0
  157. package/dist/commands/ralph.js +102 -0
  158. package/dist/commands/ralph.js.map +1 -0
  159. package/dist/commands/repair.d.ts +7 -0
  160. package/dist/commands/repair.d.ts.map +1 -0
  161. package/dist/commands/repair.js +356 -0
  162. package/dist/commands/repair.js.map +1 -0
  163. package/dist/commands/scope.d.ts +8 -0
  164. package/dist/commands/scope.d.ts.map +1 -0
  165. package/dist/commands/scope.js +503 -0
  166. package/dist/commands/scope.js.map +1 -0
  167. package/dist/commands/service-agent.d.ts +16 -0
  168. package/dist/commands/service-agent.d.ts.map +1 -0
  169. package/dist/commands/service-agent.js +375 -0
  170. package/dist/commands/service-agent.js.map +1 -0
  171. package/dist/commands/service-manager.d.ts +12 -0
  172. package/dist/commands/service-manager.d.ts.map +1 -0
  173. package/dist/commands/service-manager.js +969 -0
  174. package/dist/commands/service-manager.js.map +1 -0
  175. package/dist/commands/service-validate.d.ts +12 -0
  176. package/dist/commands/service-validate.d.ts.map +1 -0
  177. package/dist/commands/service-validate.js +619 -0
  178. package/dist/commands/service-validate.js.map +1 -0
  179. package/dist/commands/services-create.d.ts +15 -0
  180. package/dist/commands/services-create.d.ts.map +1 -0
  181. package/dist/commands/services-create.js +1800 -0
  182. package/dist/commands/services-create.js.map +1 -0
  183. package/dist/commands/services-scan.d.ts +13 -0
  184. package/dist/commands/services-scan.d.ts.map +1 -0
  185. package/dist/commands/services-scan.js +251 -0
  186. package/dist/commands/services-scan.js.map +1 -0
  187. package/dist/commands/services-sync-agents.d.ts +23 -0
  188. package/dist/commands/services-sync-agents.d.ts.map +1 -0
  189. package/dist/commands/services-sync-agents.js +207 -0
  190. package/dist/commands/services-sync-agents.js.map +1 -0
  191. package/dist/commands/services.d.ts +19 -0
  192. package/dist/commands/services.d.ts.map +1 -0
  193. package/dist/commands/services.js +906 -0
  194. package/dist/commands/services.js.map +1 -0
  195. package/dist/commands/session.d.ts +7 -0
  196. package/dist/commands/session.d.ts.map +1 -0
  197. package/dist/commands/session.js +597 -0
  198. package/dist/commands/session.js.map +1 -0
  199. package/dist/commands/setup.d.ts +12 -0
  200. package/dist/commands/setup.d.ts.map +1 -0
  201. package/dist/commands/setup.js +727 -0
  202. package/dist/commands/setup.js.map +1 -0
  203. package/dist/commands/skills.d.ts +31 -0
  204. package/dist/commands/skills.d.ts.map +1 -0
  205. package/dist/commands/skills.js +314 -0
  206. package/dist/commands/skills.js.map +1 -0
  207. package/dist/commands/start.d.ts +25 -0
  208. package/dist/commands/start.d.ts.map +1 -0
  209. package/dist/commands/start.js +251 -0
  210. package/dist/commands/start.js.map +1 -0
  211. package/dist/commands/status.d.ts +2 -0
  212. package/dist/commands/status.d.ts.map +1 -0
  213. package/dist/commands/status.js +163 -0
  214. package/dist/commands/status.js.map +1 -0
  215. package/dist/commands/synopsis.d.ts +54 -0
  216. package/dist/commands/synopsis.d.ts.map +1 -0
  217. package/dist/commands/synopsis.js +277 -0
  218. package/dist/commands/synopsis.js.map +1 -0
  219. package/dist/commands/telemetry-monitor.d.ts +11 -0
  220. package/dist/commands/telemetry-monitor.d.ts.map +1 -0
  221. package/dist/commands/telemetry-monitor.js +224 -0
  222. package/dist/commands/telemetry-monitor.js.map +1 -0
  223. package/dist/commands/telemetry-test.d.ts +11 -0
  224. package/dist/commands/telemetry-test.d.ts.map +1 -0
  225. package/dist/commands/telemetry-test.js +67 -0
  226. package/dist/commands/telemetry-test.js.map +1 -0
  227. package/dist/commands/tenet-agents.d.ts +13 -0
  228. package/dist/commands/tenet-agents.d.ts.map +1 -0
  229. package/dist/commands/tenet-agents.js +191 -0
  230. package/dist/commands/tenet-agents.js.map +1 -0
  231. package/dist/commands/tenet-setup.d.ts +20 -0
  232. package/dist/commands/tenet-setup.d.ts.map +1 -0
  233. package/dist/commands/tenet-setup.js +135 -0
  234. package/dist/commands/tenet-setup.js.map +1 -0
  235. package/dist/commands/train.d.ts +51 -0
  236. package/dist/commands/train.d.ts.map +1 -0
  237. package/dist/commands/train.js +692 -0
  238. package/dist/commands/train.js.map +1 -0
  239. package/dist/commands/update.d.ts +12 -0
  240. package/dist/commands/update.d.ts.map +1 -0
  241. package/dist/commands/update.js +559 -0
  242. package/dist/commands/update.js.map +1 -0
  243. package/dist/commands/validate-settings.d.ts +37 -0
  244. package/dist/commands/validate-settings.d.ts.map +1 -0
  245. package/dist/commands/validate-settings.js +197 -0
  246. package/dist/commands/validate-settings.js.map +1 -0
  247. package/dist/commands/verify.d.ts +14 -0
  248. package/dist/commands/verify.d.ts.map +1 -0
  249. package/dist/commands/verify.js +304 -0
  250. package/dist/commands/verify.js.map +1 -0
  251. package/dist/commands/viz.d.ts +40 -0
  252. package/dist/commands/viz.d.ts.map +1 -0
  253. package/dist/commands/viz.js +877 -0
  254. package/dist/commands/viz.js.map +1 -0
  255. package/dist/commands/voice.d.ts +409 -0
  256. package/dist/commands/voice.d.ts.map +1 -0
  257. package/dist/commands/voice.js +4765 -0
  258. package/dist/commands/voice.js.map +1 -0
  259. package/dist/commands/whoami.d.ts +2 -0
  260. package/dist/commands/whoami.d.ts.map +1 -0
  261. package/dist/commands/whoami.js +24 -0
  262. package/dist/commands/whoami.js.map +1 -0
  263. package/dist/dashboard/index.d.ts +11 -0
  264. package/dist/dashboard/index.d.ts.map +1 -0
  265. package/dist/dashboard/index.js +70 -0
  266. package/dist/dashboard/index.js.map +1 -0
  267. package/dist/dashboard-static/assets/index-BVrmW-ZI.js +154 -0
  268. package/dist/dashboard-static/assets/index-DtruPD44.css +1 -0
  269. package/dist/dashboard-static/index.html +16 -0
  270. package/dist/index.d.ts +4 -0
  271. package/dist/index.d.ts.map +1 -0
  272. package/dist/index.js +1707 -0
  273. package/dist/index.js.map +1 -0
  274. package/dist/lib/advanced-setup.d.ts +78 -0
  275. package/dist/lib/advanced-setup.d.ts.map +1 -0
  276. package/dist/lib/advanced-setup.js +433 -0
  277. package/dist/lib/advanced-setup.js.map +1 -0
  278. package/dist/lib/agent-config.d.ts +86 -0
  279. package/dist/lib/agent-config.d.ts.map +1 -0
  280. package/dist/lib/agent-config.js +281 -0
  281. package/dist/lib/agent-config.js.map +1 -0
  282. package/dist/lib/agent-generator.d.ts +36 -0
  283. package/dist/lib/agent-generator.d.ts.map +1 -0
  284. package/dist/lib/agent-generator.js +400 -0
  285. package/dist/lib/agent-generator.js.map +1 -0
  286. package/dist/lib/agent-guards.d.ts +67 -0
  287. package/dist/lib/agent-guards.d.ts.map +1 -0
  288. package/dist/lib/agent-guards.js +229 -0
  289. package/dist/lib/agent-guards.js.map +1 -0
  290. package/dist/lib/agent-manifest.d.ts +35 -0
  291. package/dist/lib/agent-manifest.d.ts.map +1 -0
  292. package/dist/lib/agent-manifest.js +75 -0
  293. package/dist/lib/agent-manifest.js.map +1 -0
  294. package/dist/lib/agent-runtime-api.d.ts +32 -0
  295. package/dist/lib/agent-runtime-api.d.ts.map +1 -0
  296. package/dist/lib/agent-runtime-api.js +270 -0
  297. package/dist/lib/agent-runtime-api.js.map +1 -0
  298. package/dist/lib/agent-session.d.ts +104 -0
  299. package/dist/lib/agent-session.d.ts.map +1 -0
  300. package/dist/lib/agent-session.js +954 -0
  301. package/dist/lib/agent-session.js.map +1 -0
  302. package/dist/lib/build-supervisor.d.ts +44 -0
  303. package/dist/lib/build-supervisor.d.ts.map +1 -0
  304. package/dist/lib/build-supervisor.js +79 -0
  305. package/dist/lib/build-supervisor.js.map +1 -0
  306. package/dist/lib/connectors/index.d.ts +19 -0
  307. package/dist/lib/connectors/index.d.ts.map +1 -0
  308. package/dist/lib/connectors/index.js +23 -0
  309. package/dist/lib/connectors/index.js.map +1 -0
  310. package/dist/lib/counterfactual-engine.d.ts +136 -0
  311. package/dist/lib/counterfactual-engine.d.ts.map +1 -0
  312. package/dist/lib/counterfactual-engine.js +417 -0
  313. package/dist/lib/counterfactual-engine.js.map +1 -0
  314. package/dist/lib/counterfactual-training-bridge.d.ts +114 -0
  315. package/dist/lib/counterfactual-training-bridge.d.ts.map +1 -0
  316. package/dist/lib/counterfactual-training-bridge.js +322 -0
  317. package/dist/lib/counterfactual-training-bridge.js.map +1 -0
  318. package/dist/lib/discovery-agent.d.ts +48 -0
  319. package/dist/lib/discovery-agent.d.ts.map +1 -0
  320. package/dist/lib/discovery-agent.js +111 -0
  321. package/dist/lib/discovery-agent.js.map +1 -0
  322. package/dist/lib/domain/engine.d.ts +11 -0
  323. package/dist/lib/domain/engine.d.ts.map +1 -0
  324. package/dist/lib/domain/engine.js +23 -0
  325. package/dist/lib/domain/engine.js.map +1 -0
  326. package/dist/lib/domain/index.d.ts +3 -0
  327. package/dist/lib/domain/index.d.ts.map +1 -0
  328. package/dist/lib/domain/index.js +3 -0
  329. package/dist/lib/domain/index.js.map +1 -0
  330. package/dist/lib/domain/template-loader.d.ts +9 -0
  331. package/dist/lib/domain/template-loader.d.ts.map +1 -0
  332. package/dist/lib/domain/template-loader.js +29 -0
  333. package/dist/lib/domain/template-loader.js.map +1 -0
  334. package/dist/lib/domain/types.d.ts +29 -0
  335. package/dist/lib/domain/types.d.ts.map +1 -0
  336. package/dist/lib/domain/types.js +2 -0
  337. package/dist/lib/domain/types.js.map +1 -0
  338. package/dist/lib/dynamics-model.d.ts +107 -0
  339. package/dist/lib/dynamics-model.d.ts.map +1 -0
  340. package/dist/lib/dynamics-model.js +363 -0
  341. package/dist/lib/dynamics-model.js.map +1 -0
  342. package/dist/lib/eval-snapshot.d.ts +47 -0
  343. package/dist/lib/eval-snapshot.d.ts.map +1 -0
  344. package/dist/lib/eval-snapshot.js +326 -0
  345. package/dist/lib/eval-snapshot.js.map +1 -0
  346. package/dist/lib/eval-store.d.ts +20 -0
  347. package/dist/lib/eval-store.d.ts.map +1 -0
  348. package/dist/lib/eval-store.js +209 -0
  349. package/dist/lib/eval-store.js.map +1 -0
  350. package/dist/lib/findings-engine.d.ts +51 -0
  351. package/dist/lib/findings-engine.d.ts.map +1 -0
  352. package/dist/lib/findings-engine.js +338 -0
  353. package/dist/lib/findings-engine.js.map +1 -0
  354. package/dist/lib/flow-engine.d.ts +57 -0
  355. package/dist/lib/flow-engine.d.ts.map +1 -0
  356. package/dist/lib/flow-engine.js +717 -0
  357. package/dist/lib/flow-engine.js.map +1 -0
  358. package/dist/lib/gtm-generator.d.ts +29 -0
  359. package/dist/lib/gtm-generator.d.ts.map +1 -0
  360. package/dist/lib/gtm-generator.js +250 -0
  361. package/dist/lib/gtm-generator.js.map +1 -0
  362. package/dist/lib/hook-transformer.d.ts +11 -0
  363. package/dist/lib/hook-transformer.d.ts.map +1 -0
  364. package/dist/lib/hook-transformer.js +74 -0
  365. package/dist/lib/hook-transformer.js.map +1 -0
  366. package/dist/lib/hub-client.d.ts +81 -0
  367. package/dist/lib/hub-client.d.ts.map +1 -0
  368. package/dist/lib/hub-client.js +73 -0
  369. package/dist/lib/hub-client.js.map +1 -0
  370. package/dist/lib/hub-health.d.ts +40 -0
  371. package/dist/lib/hub-health.d.ts.map +1 -0
  372. package/dist/lib/hub-health.js +101 -0
  373. package/dist/lib/hub-health.js.map +1 -0
  374. package/dist/lib/ide-panes.d.ts +58 -0
  375. package/dist/lib/ide-panes.d.ts.map +1 -0
  376. package/dist/lib/ide-panes.js +508 -0
  377. package/dist/lib/ide-panes.js.map +1 -0
  378. package/dist/lib/invariant-monitor.d.ts +54 -0
  379. package/dist/lib/invariant-monitor.d.ts.map +1 -0
  380. package/dist/lib/invariant-monitor.js +487 -0
  381. package/dist/lib/invariant-monitor.js.map +1 -0
  382. package/dist/lib/journal-analyzer.d.ts +71 -0
  383. package/dist/lib/journal-analyzer.d.ts.map +1 -0
  384. package/dist/lib/journal-analyzer.js +306 -0
  385. package/dist/lib/journal-analyzer.js.map +1 -0
  386. package/dist/lib/kanban-github.d.ts +81 -0
  387. package/dist/lib/kanban-github.d.ts.map +1 -0
  388. package/dist/lib/kanban-github.js +318 -0
  389. package/dist/lib/kanban-github.js.map +1 -0
  390. package/dist/lib/kanban.d.ts +131 -0
  391. package/dist/lib/kanban.d.ts.map +1 -0
  392. package/dist/lib/kanban.js +340 -0
  393. package/dist/lib/kanban.js.map +1 -0
  394. package/dist/lib/kuva.d.ts +45 -0
  395. package/dist/lib/kuva.d.ts.map +1 -0
  396. package/dist/lib/kuva.js +131 -0
  397. package/dist/lib/kuva.js.map +1 -0
  398. package/dist/lib/linear-client.d.ts +73 -0
  399. package/dist/lib/linear-client.d.ts.map +1 -0
  400. package/dist/lib/linear-client.js +112 -0
  401. package/dist/lib/linear-client.js.map +1 -0
  402. package/dist/lib/linear-id-map.d.ts +20 -0
  403. package/dist/lib/linear-id-map.d.ts.map +1 -0
  404. package/dist/lib/linear-id-map.js +59 -0
  405. package/dist/lib/linear-id-map.js.map +1 -0
  406. package/dist/lib/linear-kanban.d.ts +66 -0
  407. package/dist/lib/linear-kanban.d.ts.map +1 -0
  408. package/dist/lib/linear-kanban.js +175 -0
  409. package/dist/lib/linear-kanban.js.map +1 -0
  410. package/dist/lib/linear-webhook.d.ts +50 -0
  411. package/dist/lib/linear-webhook.d.ts.map +1 -0
  412. package/dist/lib/linear-webhook.js +92 -0
  413. package/dist/lib/linear-webhook.js.map +1 -0
  414. package/dist/lib/map-event-bus.d.ts +50 -0
  415. package/dist/lib/map-event-bus.d.ts.map +1 -0
  416. package/dist/lib/map-event-bus.js +366 -0
  417. package/dist/lib/map-event-bus.js.map +1 -0
  418. package/dist/lib/memory-db.d.ts +136 -0
  419. package/dist/lib/memory-db.d.ts.map +1 -0
  420. package/dist/lib/memory-db.js +429 -0
  421. package/dist/lib/memory-db.js.map +1 -0
  422. package/dist/lib/memory-indexer.d.ts +61 -0
  423. package/dist/lib/memory-indexer.d.ts.map +1 -0
  424. package/dist/lib/memory-indexer.js +418 -0
  425. package/dist/lib/memory-indexer.js.map +1 -0
  426. package/dist/lib/memory-search.d.ts +185 -0
  427. package/dist/lib/memory-search.d.ts.map +1 -0
  428. package/dist/lib/memory-search.js +678 -0
  429. package/dist/lib/memory-search.js.map +1 -0
  430. package/dist/lib/meta-orchestrator.d.ts +141 -0
  431. package/dist/lib/meta-orchestrator.d.ts.map +1 -0
  432. package/dist/lib/meta-orchestrator.js +552 -0
  433. package/dist/lib/meta-orchestrator.js.map +1 -0
  434. package/dist/lib/model-pricing.d.ts +11 -0
  435. package/dist/lib/model-pricing.d.ts.map +1 -0
  436. package/dist/lib/model-pricing.js +27 -0
  437. package/dist/lib/model-pricing.js.map +1 -0
  438. package/dist/lib/onboarding.d.ts +40 -0
  439. package/dist/lib/onboarding.d.ts.map +1 -0
  440. package/dist/lib/onboarding.js +213 -0
  441. package/dist/lib/onboarding.js.map +1 -0
  442. package/dist/lib/openclaw-registry.d.ts +48 -0
  443. package/dist/lib/openclaw-registry.d.ts.map +1 -0
  444. package/dist/lib/openclaw-registry.js +181 -0
  445. package/dist/lib/openclaw-registry.js.map +1 -0
  446. package/dist/lib/openclaw-sdk.d.ts +115 -0
  447. package/dist/lib/openclaw-sdk.d.ts.map +1 -0
  448. package/dist/lib/openclaw-sdk.js +220 -0
  449. package/dist/lib/openclaw-sdk.js.map +1 -0
  450. package/dist/lib/peer-agent-generator.d.ts +44 -0
  451. package/dist/lib/peer-agent-generator.d.ts.map +1 -0
  452. package/dist/lib/peer-agent-generator.js +310 -0
  453. package/dist/lib/peer-agent-generator.js.map +1 -0
  454. package/dist/lib/peter-parker-bridge.d.ts +70 -0
  455. package/dist/lib/peter-parker-bridge.d.ts.map +1 -0
  456. package/dist/lib/peter-parker-bridge.js +345 -0
  457. package/dist/lib/peter-parker-bridge.js.map +1 -0
  458. package/dist/lib/peter-parker-config.d.ts +13 -0
  459. package/dist/lib/peter-parker-config.d.ts.map +1 -0
  460. package/dist/lib/peter-parker-config.js +86 -0
  461. package/dist/lib/peter-parker-config.js.map +1 -0
  462. package/dist/lib/physical-world-model.d.ts +50 -0
  463. package/dist/lib/physical-world-model.d.ts.map +1 -0
  464. package/dist/lib/physical-world-model.js +251 -0
  465. package/dist/lib/physical-world-model.js.map +1 -0
  466. package/dist/lib/pi-sky/bridge.d.ts +55 -0
  467. package/dist/lib/pi-sky/bridge.d.ts.map +1 -0
  468. package/dist/lib/pi-sky/bridge.js +264 -0
  469. package/dist/lib/pi-sky/bridge.js.map +1 -0
  470. package/dist/lib/pi-sky/cost-monitor.d.ts +21 -0
  471. package/dist/lib/pi-sky/cost-monitor.d.ts.map +1 -0
  472. package/dist/lib/pi-sky/cost-monitor.js +126 -0
  473. package/dist/lib/pi-sky/cost-monitor.js.map +1 -0
  474. package/dist/lib/pi-sky/eval-sweep.d.ts +27 -0
  475. package/dist/lib/pi-sky/eval-sweep.d.ts.map +1 -0
  476. package/dist/lib/pi-sky/eval-sweep.js +141 -0
  477. package/dist/lib/pi-sky/eval-sweep.js.map +1 -0
  478. package/dist/lib/pi-sky/event-router.d.ts +32 -0
  479. package/dist/lib/pi-sky/event-router.d.ts.map +1 -0
  480. package/dist/lib/pi-sky/event-router.js +176 -0
  481. package/dist/lib/pi-sky/event-router.js.map +1 -0
  482. package/dist/lib/pi-sky/experiment.d.ts +9 -0
  483. package/dist/lib/pi-sky/experiment.d.ts.map +1 -0
  484. package/dist/lib/pi-sky/experiment.js +83 -0
  485. package/dist/lib/pi-sky/experiment.js.map +1 -0
  486. package/dist/lib/pi-sky/index.d.ts +16 -0
  487. package/dist/lib/pi-sky/index.d.ts.map +1 -0
  488. package/dist/lib/pi-sky/index.js +16 -0
  489. package/dist/lib/pi-sky/index.js.map +1 -0
  490. package/dist/lib/pi-sky/stratus-gate.d.ts +28 -0
  491. package/dist/lib/pi-sky/stratus-gate.d.ts.map +1 -0
  492. package/dist/lib/pi-sky/stratus-gate.js +61 -0
  493. package/dist/lib/pi-sky/stratus-gate.js.map +1 -0
  494. package/dist/lib/pi-sky/swarm.d.ts +28 -0
  495. package/dist/lib/pi-sky/swarm.d.ts.map +1 -0
  496. package/dist/lib/pi-sky/swarm.js +208 -0
  497. package/dist/lib/pi-sky/swarm.js.map +1 -0
  498. package/dist/lib/pi-sky/types.d.ts +139 -0
  499. package/dist/lib/pi-sky/types.d.ts.map +1 -0
  500. package/dist/lib/pi-sky/types.js +2 -0
  501. package/dist/lib/pi-sky/types.js.map +1 -0
  502. package/dist/lib/pi-sky/voice-bridge.d.ts +20 -0
  503. package/dist/lib/pi-sky/voice-bridge.d.ts.map +1 -0
  504. package/dist/lib/pi-sky/voice-bridge.js +91 -0
  505. package/dist/lib/pi-sky/voice-bridge.js.map +1 -0
  506. package/dist/lib/planning-loop.d.ts +157 -0
  507. package/dist/lib/planning-loop.d.ts.map +1 -0
  508. package/dist/lib/planning-loop.js +537 -0
  509. package/dist/lib/planning-loop.js.map +1 -0
  510. package/dist/lib/policy-head.d.ts +53 -0
  511. package/dist/lib/policy-head.d.ts.map +1 -0
  512. package/dist/lib/policy-head.js +400 -0
  513. package/dist/lib/policy-head.js.map +1 -0
  514. package/dist/lib/predictor.d.ts +109 -0
  515. package/dist/lib/predictor.d.ts.map +1 -0
  516. package/dist/lib/predictor.js +433 -0
  517. package/dist/lib/predictor.js.map +1 -0
  518. package/dist/lib/replay-buffer.d.ts +93 -0
  519. package/dist/lib/replay-buffer.d.ts.map +1 -0
  520. package/dist/lib/replay-buffer.js +302 -0
  521. package/dist/lib/replay-buffer.js.map +1 -0
  522. package/dist/lib/resource-optimizer-middleware.d.ts +39 -0
  523. package/dist/lib/resource-optimizer-middleware.d.ts.map +1 -0
  524. package/dist/lib/resource-optimizer-middleware.js +228 -0
  525. package/dist/lib/resource-optimizer-middleware.js.map +1 -0
  526. package/dist/lib/resource-optimizer.d.ts +71 -0
  527. package/dist/lib/resource-optimizer.d.ts.map +1 -0
  528. package/dist/lib/resource-optimizer.js +228 -0
  529. package/dist/lib/resource-optimizer.js.map +1 -0
  530. package/dist/lib/rewards/index.d.ts +14 -0
  531. package/dist/lib/rewards/index.d.ts.map +1 -0
  532. package/dist/lib/rewards/index.js +15 -0
  533. package/dist/lib/rewards/index.js.map +1 -0
  534. package/dist/lib/rl-manager.d.ts +74 -0
  535. package/dist/lib/rl-manager.d.ts.map +1 -0
  536. package/dist/lib/rl-manager.js +245 -0
  537. package/dist/lib/rl-manager.js.map +1 -0
  538. package/dist/lib/sentinel-rl.d.ts +97 -0
  539. package/dist/lib/sentinel-rl.d.ts.map +1 -0
  540. package/dist/lib/sentinel-rl.js +430 -0
  541. package/dist/lib/sentinel-rl.js.map +1 -0
  542. package/dist/lib/service-analyzer.d.ts +76 -0
  543. package/dist/lib/service-analyzer.d.ts.map +1 -0
  544. package/dist/lib/service-analyzer.js +704 -0
  545. package/dist/lib/service-analyzer.js.map +1 -0
  546. package/dist/lib/service-dependencies.d.ts +44 -0
  547. package/dist/lib/service-dependencies.d.ts.map +1 -0
  548. package/dist/lib/service-dependencies.js +314 -0
  549. package/dist/lib/service-dependencies.js.map +1 -0
  550. package/dist/lib/service-detector.d.ts +61 -0
  551. package/dist/lib/service-detector.d.ts.map +1 -0
  552. package/dist/lib/service-detector.js +541 -0
  553. package/dist/lib/service-detector.js.map +1 -0
  554. package/dist/lib/service-gtm.d.ts +208 -0
  555. package/dist/lib/service-gtm.d.ts.map +1 -0
  556. package/dist/lib/service-gtm.js +1006 -0
  557. package/dist/lib/service-gtm.js.map +1 -0
  558. package/dist/lib/service-mcp-base.d.ts +103 -0
  559. package/dist/lib/service-mcp-base.d.ts.map +1 -0
  560. package/dist/lib/service-mcp-base.js +263 -0
  561. package/dist/lib/service-mcp-base.js.map +1 -0
  562. package/dist/lib/service-questionnaire.d.ts +11 -0
  563. package/dist/lib/service-questionnaire.d.ts.map +1 -0
  564. package/dist/lib/service-questionnaire.js +89 -0
  565. package/dist/lib/service-questionnaire.js.map +1 -0
  566. package/dist/lib/service-utils.d.ts +103 -0
  567. package/dist/lib/service-utils.d.ts.map +1 -0
  568. package/dist/lib/service-utils.js +385 -0
  569. package/dist/lib/service-utils.js.map +1 -0
  570. package/dist/lib/session-lock.d.ts +61 -0
  571. package/dist/lib/session-lock.d.ts.map +1 -0
  572. package/dist/lib/session-lock.js +438 -0
  573. package/dist/lib/session-lock.js.map +1 -0
  574. package/dist/lib/setup/agent-generator.d.ts +25 -0
  575. package/dist/lib/setup/agent-generator.d.ts.map +1 -0
  576. package/dist/lib/setup/agent-generator.js +444 -0
  577. package/dist/lib/setup/agent-generator.js.map +1 -0
  578. package/dist/lib/setup/context-analyzer.d.ts +16 -0
  579. package/dist/lib/setup/context-analyzer.d.ts.map +1 -0
  580. package/dist/lib/setup/context-analyzer.js +112 -0
  581. package/dist/lib/setup/context-analyzer.js.map +1 -0
  582. package/dist/lib/setup/doc-auditor.d.ts +54 -0
  583. package/dist/lib/setup/doc-auditor.d.ts.map +1 -0
  584. package/dist/lib/setup/doc-auditor.js +629 -0
  585. package/dist/lib/setup/doc-auditor.js.map +1 -0
  586. package/dist/lib/setup/domain-generator.d.ts +7 -0
  587. package/dist/lib/setup/domain-generator.d.ts.map +1 -0
  588. package/dist/lib/setup/domain-generator.js +58 -0
  589. package/dist/lib/setup/domain-generator.js.map +1 -0
  590. package/dist/lib/setup/flow-generator.d.ts +10 -0
  591. package/dist/lib/setup/flow-generator.d.ts.map +1 -0
  592. package/dist/lib/setup/flow-generator.js +113 -0
  593. package/dist/lib/setup/flow-generator.js.map +1 -0
  594. package/dist/lib/setup/invariant-bridge.d.ts +91 -0
  595. package/dist/lib/setup/invariant-bridge.d.ts.map +1 -0
  596. package/dist/lib/setup/invariant-bridge.js +384 -0
  597. package/dist/lib/setup/invariant-bridge.js.map +1 -0
  598. package/dist/lib/setup/smart-eval-generator.d.ts +38 -0
  599. package/dist/lib/setup/smart-eval-generator.d.ts.map +1 -0
  600. package/dist/lib/setup/smart-eval-generator.js +378 -0
  601. package/dist/lib/setup/smart-eval-generator.js.map +1 -0
  602. package/dist/lib/setup/smart-recommender.d.ts +63 -0
  603. package/dist/lib/setup/smart-recommender.d.ts.map +1 -0
  604. package/dist/lib/setup/smart-recommender.js +329 -0
  605. package/dist/lib/setup/smart-recommender.js.map +1 -0
  606. package/dist/lib/setup/spec-generator.d.ts +99 -0
  607. package/dist/lib/setup/spec-generator.d.ts.map +1 -0
  608. package/dist/lib/setup/spec-generator.js +784 -0
  609. package/dist/lib/setup/spec-generator.js.map +1 -0
  610. package/dist/lib/setup/starter-intelligence.d.ts +25 -0
  611. package/dist/lib/setup/starter-intelligence.d.ts.map +1 -0
  612. package/dist/lib/setup/starter-intelligence.js +309 -0
  613. package/dist/lib/setup/starter-intelligence.js.map +1 -0
  614. package/dist/lib/setup/violation-agent-generator.d.ts +32 -0
  615. package/dist/lib/setup/violation-agent-generator.d.ts.map +1 -0
  616. package/dist/lib/setup/violation-agent-generator.js +255 -0
  617. package/dist/lib/setup/violation-agent-generator.js.map +1 -0
  618. package/dist/lib/skill-generator.d.ts +21 -0
  619. package/dist/lib/skill-generator.d.ts.map +1 -0
  620. package/dist/lib/skill-generator.js +253 -0
  621. package/dist/lib/skill-generator.js.map +1 -0
  622. package/dist/lib/state-capture.d.ts +36 -0
  623. package/dist/lib/state-capture.d.ts.map +1 -0
  624. package/dist/lib/state-capture.js +541 -0
  625. package/dist/lib/state-capture.js.map +1 -0
  626. package/dist/lib/stealth-onboarding.d.ts +40 -0
  627. package/dist/lib/stealth-onboarding.d.ts.map +1 -0
  628. package/dist/lib/stealth-onboarding.js +213 -0
  629. package/dist/lib/stealth-onboarding.js.map +1 -0
  630. package/dist/lib/storage/cloud.d.ts +27 -0
  631. package/dist/lib/storage/cloud.d.ts.map +1 -0
  632. package/dist/lib/storage/cloud.js +75 -0
  633. package/dist/lib/storage/cloud.js.map +1 -0
  634. package/dist/lib/storage/index.d.ts +15 -0
  635. package/dist/lib/storage/index.d.ts.map +1 -0
  636. package/dist/lib/storage/index.js +15 -0
  637. package/dist/lib/storage/index.js.map +1 -0
  638. package/dist/lib/storage/interface.d.ts +56 -0
  639. package/dist/lib/storage/interface.d.ts.map +1 -0
  640. package/dist/lib/storage/interface.js +2 -0
  641. package/dist/lib/storage/interface.js.map +1 -0
  642. package/dist/lib/storage/local.d.ts +26 -0
  643. package/dist/lib/storage/local.d.ts.map +1 -0
  644. package/dist/lib/storage/local.js +164 -0
  645. package/dist/lib/storage/local.js.map +1 -0
  646. package/dist/lib/stratus-client.d.ts +178 -0
  647. package/dist/lib/stratus-client.d.ts.map +1 -0
  648. package/dist/lib/stratus-client.js +739 -0
  649. package/dist/lib/stratus-client.js.map +1 -0
  650. package/dist/lib/stratus-rollout-test.d.ts +10 -0
  651. package/dist/lib/stratus-rollout-test.d.ts.map +1 -0
  652. package/dist/lib/stratus-rollout-test.js +412 -0
  653. package/dist/lib/stratus-rollout-test.js.map +1 -0
  654. package/dist/lib/surface-agent.d.ts +78 -0
  655. package/dist/lib/surface-agent.d.ts.map +1 -0
  656. package/dist/lib/surface-agent.js +105 -0
  657. package/dist/lib/surface-agent.js.map +1 -0
  658. package/dist/lib/surface-coordination-example.d.ts +30 -0
  659. package/dist/lib/surface-coordination-example.d.ts.map +1 -0
  660. package/dist/lib/surface-coordination-example.js +164 -0
  661. package/dist/lib/surface-coordination-example.js.map +1 -0
  662. package/dist/lib/telemetry/physical-world-collector.d.ts +15 -0
  663. package/dist/lib/telemetry/physical-world-collector.d.ts.map +1 -0
  664. package/dist/lib/telemetry/physical-world-collector.js +177 -0
  665. package/dist/lib/telemetry/physical-world-collector.js.map +1 -0
  666. package/dist/lib/telemetry/training-bridge.d.ts +51 -0
  667. package/dist/lib/telemetry/training-bridge.d.ts.map +1 -0
  668. package/dist/lib/telemetry/training-bridge.js +185 -0
  669. package/dist/lib/telemetry/training-bridge.js.map +1 -0
  670. package/dist/lib/telemetry-agent-v2.d.ts +128 -0
  671. package/dist/lib/telemetry-agent-v2.d.ts.map +1 -0
  672. package/dist/lib/telemetry-agent-v2.js +1043 -0
  673. package/dist/lib/telemetry-agent-v2.js.map +1 -0
  674. package/dist/lib/telemetry-agent.d.ts +57 -0
  675. package/dist/lib/telemetry-agent.d.ts.map +1 -0
  676. package/dist/lib/telemetry-agent.js +289 -0
  677. package/dist/lib/telemetry-agent.js.map +1 -0
  678. package/dist/lib/telemetry-digest.d.ts +10 -0
  679. package/dist/lib/telemetry-digest.d.ts.map +1 -0
  680. package/dist/lib/telemetry-digest.js +381 -0
  681. package/dist/lib/telemetry-digest.js.map +1 -0
  682. package/dist/lib/telemetry.d.ts +37 -0
  683. package/dist/lib/telemetry.d.ts.map +1 -0
  684. package/dist/lib/telemetry.js +376 -0
  685. package/dist/lib/telemetry.js.map +1 -0
  686. package/dist/lib/tenet-board-agent.d.ts +52 -0
  687. package/dist/lib/tenet-board-agent.d.ts.map +1 -0
  688. package/dist/lib/tenet-board-agent.js +226 -0
  689. package/dist/lib/tenet-board-agent.js.map +1 -0
  690. package/dist/lib/tenet-ide-agent.d.ts +40 -0
  691. package/dist/lib/tenet-ide-agent.d.ts.map +1 -0
  692. package/dist/lib/tenet-ide-agent.js +199 -0
  693. package/dist/lib/tenet-ide-agent.js.map +1 -0
  694. package/dist/lib/text-preprocessing.d.ts +83 -0
  695. package/dist/lib/text-preprocessing.d.ts.map +1 -0
  696. package/dist/lib/text-preprocessing.js +261 -0
  697. package/dist/lib/text-preprocessing.js.map +1 -0
  698. package/dist/lib/tool-schemas.d.ts +35 -0
  699. package/dist/lib/tool-schemas.d.ts.map +1 -0
  700. package/dist/lib/tool-schemas.js +246 -0
  701. package/dist/lib/tool-schemas.js.map +1 -0
  702. package/dist/lib/training-buffer.d.ts +86 -0
  703. package/dist/lib/training-buffer.d.ts.map +1 -0
  704. package/dist/lib/training-buffer.js +139 -0
  705. package/dist/lib/training-buffer.js.map +1 -0
  706. package/dist/lib/training-tuples.d.ts +33 -0
  707. package/dist/lib/training-tuples.d.ts.map +1 -0
  708. package/dist/lib/training-tuples.js +273 -0
  709. package/dist/lib/training-tuples.js.map +1 -0
  710. package/dist/lib/trajectory-loader.d.ts +82 -0
  711. package/dist/lib/trajectory-loader.d.ts.map +1 -0
  712. package/dist/lib/trajectory-loader.js +406 -0
  713. package/dist/lib/trajectory-loader.js.map +1 -0
  714. package/dist/lib/tuple-miner.d.ts +30 -0
  715. package/dist/lib/tuple-miner.d.ts.map +1 -0
  716. package/dist/lib/tuple-miner.js +427 -0
  717. package/dist/lib/tuple-miner.js.map +1 -0
  718. package/dist/lib/vm-backend.d.ts +72 -0
  719. package/dist/lib/vm-backend.d.ts.map +1 -0
  720. package/dist/lib/vm-backend.js +175 -0
  721. package/dist/lib/vm-backend.js.map +1 -0
  722. package/dist/lib/workspace/backend.d.ts +53 -0
  723. package/dist/lib/workspace/backend.d.ts.map +1 -0
  724. package/dist/lib/workspace/backend.js +37 -0
  725. package/dist/lib/workspace/backend.js.map +1 -0
  726. package/dist/lib/workspace/cmux-adapter.d.ts +46 -0
  727. package/dist/lib/workspace/cmux-adapter.d.ts.map +1 -0
  728. package/dist/lib/workspace/cmux-adapter.js +261 -0
  729. package/dist/lib/workspace/cmux-adapter.js.map +1 -0
  730. package/dist/lib/workspace/data-pipeline.d.ts +35 -0
  731. package/dist/lib/workspace/data-pipeline.d.ts.map +1 -0
  732. package/dist/lib/workspace/data-pipeline.js +494 -0
  733. package/dist/lib/workspace/data-pipeline.js.map +1 -0
  734. package/dist/lib/workspace/engine.d.ts +65 -0
  735. package/dist/lib/workspace/engine.d.ts.map +1 -0
  736. package/dist/lib/workspace/engine.js +407 -0
  737. package/dist/lib/workspace/engine.js.map +1 -0
  738. package/dist/lib/workspace/notifications.d.ts +14 -0
  739. package/dist/lib/workspace/notifications.d.ts.map +1 -0
  740. package/dist/lib/workspace/notifications.js +41 -0
  741. package/dist/lib/workspace/notifications.js.map +1 -0
  742. package/dist/lib/workspace/sidebar-runner.d.ts +13 -0
  743. package/dist/lib/workspace/sidebar-runner.d.ts.map +1 -0
  744. package/dist/lib/workspace/sidebar-runner.js +419 -0
  745. package/dist/lib/workspace/sidebar-runner.js.map +1 -0
  746. package/dist/lib/workspace/surface-registry.d.ts +49 -0
  747. package/dist/lib/workspace/surface-registry.d.ts.map +1 -0
  748. package/dist/lib/workspace/surface-registry.js +225 -0
  749. package/dist/lib/workspace/surface-registry.js.map +1 -0
  750. package/dist/lib/workspace/surface-type.d.ts +153 -0
  751. package/dist/lib/workspace/surface-type.d.ts.map +1 -0
  752. package/dist/lib/workspace/surface-type.js +9 -0
  753. package/dist/lib/workspace/surface-type.js.map +1 -0
  754. package/dist/lib/workspace/surfaces/agent-overview.d.ts +16 -0
  755. package/dist/lib/workspace/surfaces/agent-overview.d.ts.map +1 -0
  756. package/dist/lib/workspace/surfaces/agent-overview.js +116 -0
  757. package/dist/lib/workspace/surfaces/agent-overview.js.map +1 -0
  758. package/dist/lib/workspace/surfaces/agent.d.ts +16 -0
  759. package/dist/lib/workspace/surfaces/agent.d.ts.map +1 -0
  760. package/dist/lib/workspace/surfaces/agent.js +112 -0
  761. package/dist/lib/workspace/surfaces/agent.js.map +1 -0
  762. package/dist/lib/workspace/surfaces/claude.d.ts +15 -0
  763. package/dist/lib/workspace/surfaces/claude.d.ts.map +1 -0
  764. package/dist/lib/workspace/surfaces/claude.js +23 -0
  765. package/dist/lib/workspace/surfaces/claude.js.map +1 -0
  766. package/dist/lib/workspace/surfaces/dashboard.d.ts +21 -0
  767. package/dist/lib/workspace/surfaces/dashboard.d.ts.map +1 -0
  768. package/dist/lib/workspace/surfaces/dashboard.js +32 -0
  769. package/dist/lib/workspace/surfaces/dashboard.js.map +1 -0
  770. package/dist/lib/workspace/surfaces/eval.d.ts +15 -0
  771. package/dist/lib/workspace/surfaces/eval.d.ts.map +1 -0
  772. package/dist/lib/workspace/surfaces/eval.js +42 -0
  773. package/dist/lib/workspace/surfaces/eval.js.map +1 -0
  774. package/dist/lib/workspace/surfaces/event-stream.d.ts +16 -0
  775. package/dist/lib/workspace/surfaces/event-stream.d.ts.map +1 -0
  776. package/dist/lib/workspace/surfaces/event-stream.js +40 -0
  777. package/dist/lib/workspace/surfaces/event-stream.js.map +1 -0
  778. package/dist/lib/workspace/surfaces/flow.d.ts +16 -0
  779. package/dist/lib/workspace/surfaces/flow.d.ts.map +1 -0
  780. package/dist/lib/workspace/surfaces/flow.js +49 -0
  781. package/dist/lib/workspace/surfaces/flow.js.map +1 -0
  782. package/dist/lib/workspace/surfaces/index.d.ts +19 -0
  783. package/dist/lib/workspace/surfaces/index.d.ts.map +1 -0
  784. package/dist/lib/workspace/surfaces/index.js +19 -0
  785. package/dist/lib/workspace/surfaces/index.js.map +1 -0
  786. package/dist/lib/workspace/surfaces/kanban.d.ts +15 -0
  787. package/dist/lib/workspace/surfaces/kanban.d.ts.map +1 -0
  788. package/dist/lib/workspace/surfaces/kanban.js +43 -0
  789. package/dist/lib/workspace/surfaces/kanban.js.map +1 -0
  790. package/dist/lib/workspace/surfaces/physical-world.d.ts +15 -0
  791. package/dist/lib/workspace/surfaces/physical-world.d.ts.map +1 -0
  792. package/dist/lib/workspace/surfaces/physical-world.js +37 -0
  793. package/dist/lib/workspace/surfaces/physical-world.js.map +1 -0
  794. package/dist/lib/workspace/surfaces/portfolio.d.ts +16 -0
  795. package/dist/lib/workspace/surfaces/portfolio.d.ts.map +1 -0
  796. package/dist/lib/workspace/surfaces/portfolio.js +102 -0
  797. package/dist/lib/workspace/surfaces/portfolio.js.map +1 -0
  798. package/dist/lib/workspace/surfaces/service.d.ts +16 -0
  799. package/dist/lib/workspace/surfaces/service.d.ts.map +1 -0
  800. package/dist/lib/workspace/surfaces/service.js +45 -0
  801. package/dist/lib/workspace/surfaces/service.js.map +1 -0
  802. package/dist/lib/workspace/surfaces/shell.d.ts +15 -0
  803. package/dist/lib/workspace/surfaces/shell.d.ts.map +1 -0
  804. package/dist/lib/workspace/surfaces/shell.js +19 -0
  805. package/dist/lib/workspace/surfaces/shell.js.map +1 -0
  806. package/dist/lib/workspace/surfaces/sidebar.d.ts +22 -0
  807. package/dist/lib/workspace/surfaces/sidebar.d.ts.map +1 -0
  808. package/dist/lib/workspace/surfaces/sidebar.js +94 -0
  809. package/dist/lib/workspace/surfaces/sidebar.js.map +1 -0
  810. package/dist/lib/workspace/surfaces/telemetry.d.ts +16 -0
  811. package/dist/lib/workspace/surfaces/telemetry.d.ts.map +1 -0
  812. package/dist/lib/workspace/surfaces/telemetry.js +48 -0
  813. package/dist/lib/workspace/surfaces/telemetry.js.map +1 -0
  814. package/dist/lib/workspace/surfaces/topology.d.ts +15 -0
  815. package/dist/lib/workspace/surfaces/topology.d.ts.map +1 -0
  816. package/dist/lib/workspace/surfaces/topology.js +19 -0
  817. package/dist/lib/workspace/surfaces/topology.js.map +1 -0
  818. package/dist/lib/workspace/surfaces/training.d.ts +16 -0
  819. package/dist/lib/workspace/surfaces/training.d.ts.map +1 -0
  820. package/dist/lib/workspace/surfaces/training.js +22 -0
  821. package/dist/lib/workspace/surfaces/training.js.map +1 -0
  822. package/dist/lib/workspace/tmux-adapter.d.ts +30 -0
  823. package/dist/lib/workspace/tmux-adapter.d.ts.map +1 -0
  824. package/dist/lib/workspace/tmux-adapter.js +137 -0
  825. package/dist/lib/workspace/tmux-adapter.js.map +1 -0
  826. package/dist/lib/workspace/tmux-sidebar.d.ts +14 -0
  827. package/dist/lib/workspace/tmux-sidebar.d.ts.map +1 -0
  828. package/dist/lib/workspace/tmux-sidebar.js +230 -0
  829. package/dist/lib/workspace/tmux-sidebar.js.map +1 -0
  830. package/dist/lib/world-model-store.d.ts +172 -0
  831. package/dist/lib/world-model-store.d.ts.map +1 -0
  832. package/dist/lib/world-model-store.js +487 -0
  833. package/dist/lib/world-model-store.js.map +1 -0
  834. package/dist/mcp/context-hub-mcp.d.ts +11 -0
  835. package/dist/mcp/context-hub-mcp.d.ts.map +1 -0
  836. package/dist/mcp/context-hub-mcp.js +797 -0
  837. package/dist/mcp/context-hub-mcp.js.map +1 -0
  838. package/dist/mcp/service-mcp-server.d.ts +12 -0
  839. package/dist/mcp/service-mcp-server.d.ts.map +1 -0
  840. package/dist/mcp/service-mcp-server.js +434 -0
  841. package/dist/mcp/service-mcp-server.js.map +1 -0
  842. package/dist/mcp/service-peer-mcp.d.ts +36 -0
  843. package/dist/mcp/service-peer-mcp.d.ts.map +1 -0
  844. package/dist/mcp/service-peer-mcp.js +220 -0
  845. package/dist/mcp/service-peer-mcp.js.map +1 -0
  846. package/dist/mcp/service-registry-mcp.d.ts +13 -0
  847. package/dist/mcp/service-registry-mcp.d.ts.map +1 -0
  848. package/dist/mcp/service-registry-mcp.js +330 -0
  849. package/dist/mcp/service-registry-mcp.js.map +1 -0
  850. package/dist/telegram/voice.d.ts +146 -0
  851. package/dist/telegram/voice.d.ts.map +1 -0
  852. package/dist/telegram/voice.js +351 -0
  853. package/dist/telegram/voice.js.map +1 -0
  854. package/dist/types/eval.d.ts +18 -0
  855. package/dist/types/eval.d.ts.map +1 -0
  856. package/dist/types/eval.js +5 -0
  857. package/dist/types/eval.js.map +1 -0
  858. package/dist/types/flows.d.ts +72 -0
  859. package/dist/types/flows.d.ts.map +1 -0
  860. package/dist/types/flows.js +10 -0
  861. package/dist/types/flows.js.map +1 -0
  862. package/dist/types/ide.d.ts +49 -0
  863. package/dist/types/ide.d.ts.map +1 -0
  864. package/dist/types/ide.js +5 -0
  865. package/dist/types/ide.js.map +1 -0
  866. package/dist/types/journal.d.ts +133 -0
  867. package/dist/types/journal.d.ts.map +1 -0
  868. package/dist/types/journal.js +59 -0
  869. package/dist/types/journal.js.map +1 -0
  870. package/dist/types/map.d.ts +42 -0
  871. package/dist/types/map.d.ts.map +1 -0
  872. package/dist/types/map.js +39 -0
  873. package/dist/types/map.js.map +1 -0
  874. package/dist/types/physical-world-model.d.ts +65 -0
  875. package/dist/types/physical-world-model.d.ts.map +1 -0
  876. package/dist/types/physical-world-model.js +43 -0
  877. package/dist/types/physical-world-model.js.map +1 -0
  878. package/dist/types/platform-digest.d.ts +228 -0
  879. package/dist/types/platform-digest.d.ts.map +1 -0
  880. package/dist/types/platform-digest.js +5 -0
  881. package/dist/types/platform-digest.js.map +1 -0
  882. package/dist/types/skills.d.ts +44 -0
  883. package/dist/types/skills.d.ts.map +1 -0
  884. package/dist/types/skills.js +5 -0
  885. package/dist/types/skills.js.map +1 -0
  886. package/dist/types/telemetry-digest.d.ts +75 -0
  887. package/dist/types/telemetry-digest.d.ts.map +1 -0
  888. package/dist/types/telemetry-digest.js +5 -0
  889. package/dist/types/telemetry-digest.js.map +1 -0
  890. package/dist/types/telemetry.d.ts +107 -0
  891. package/dist/types/telemetry.d.ts.map +1 -0
  892. package/dist/types/telemetry.js +5 -0
  893. package/dist/types/telemetry.js.map +1 -0
  894. package/dist/types/world-model.d.ts +478 -0
  895. package/dist/types/world-model.d.ts.map +1 -0
  896. package/dist/types/world-model.js +87 -0
  897. package/dist/types/world-model.js.map +1 -0
  898. package/dist/ui/banner.d.ts +18 -0
  899. package/dist/ui/banner.d.ts.map +1 -0
  900. package/dist/ui/banner.js +323 -0
  901. package/dist/ui/banner.js.map +1 -0
  902. package/dist/ui/context-hub-logs.d.ts +10 -0
  903. package/dist/ui/context-hub-logs.d.ts.map +1 -0
  904. package/dist/ui/context-hub-logs.js +175 -0
  905. package/dist/ui/context-hub-logs.js.map +1 -0
  906. package/dist/ui/event-dashboard.d.ts +12 -0
  907. package/dist/ui/event-dashboard.d.ts.map +1 -0
  908. package/dist/ui/event-dashboard.js +342 -0
  909. package/dist/ui/event-dashboard.js.map +1 -0
  910. package/dist/ui/index.d.ts +8 -0
  911. package/dist/ui/index.d.ts.map +1 -0
  912. package/dist/ui/index.js +8 -0
  913. package/dist/ui/index.js.map +1 -0
  914. package/dist/ui/prompts.d.ts +52 -0
  915. package/dist/ui/prompts.d.ts.map +1 -0
  916. package/dist/ui/prompts.js +72 -0
  917. package/dist/ui/prompts.js.map +1 -0
  918. package/dist/ui/service-dashboard.d.ts +11 -0
  919. package/dist/ui/service-dashboard.d.ts.map +1 -0
  920. package/dist/ui/service-dashboard.js +357 -0
  921. package/dist/ui/service-dashboard.js.map +1 -0
  922. package/dist/ui/services-manager.d.ts +11 -0
  923. package/dist/ui/services-manager.d.ts.map +1 -0
  924. package/dist/ui/services-manager.js +507 -0
  925. package/dist/ui/services-manager.js.map +1 -0
  926. package/dist/ui/theme.d.ts +82 -0
  927. package/dist/ui/theme.d.ts.map +1 -0
  928. package/dist/ui/theme.js +142 -0
  929. package/dist/ui/theme.js.map +1 -0
  930. package/dist/utils/auth-guard.d.ts +66 -0
  931. package/dist/utils/auth-guard.d.ts.map +1 -0
  932. package/dist/utils/auth-guard.js +347 -0
  933. package/dist/utils/auth-guard.js.map +1 -0
  934. package/dist/utils/auth-status.d.ts +21 -0
  935. package/dist/utils/auth-status.d.ts.map +1 -0
  936. package/dist/utils/auth-status.js +53 -0
  937. package/dist/utils/auth-status.js.map +1 -0
  938. package/dist/utils/claude-md-generator.d.ts +10 -0
  939. package/dist/utils/claude-md-generator.d.ts.map +1 -0
  940. package/dist/utils/claude-md-generator.js +215 -0
  941. package/dist/utils/claude-md-generator.js.map +1 -0
  942. package/dist/utils/context-hub-port.d.ts +33 -0
  943. package/dist/utils/context-hub-port.d.ts.map +1 -0
  944. package/dist/utils/context-hub-port.js +118 -0
  945. package/dist/utils/context-hub-port.js.map +1 -0
  946. package/dist/utils/ensure-context-hub.d.ts +20 -0
  947. package/dist/utils/ensure-context-hub.d.ts.map +1 -0
  948. package/dist/utils/ensure-context-hub.js +66 -0
  949. package/dist/utils/ensure-context-hub.js.map +1 -0
  950. package/dist/utils/ensure-project.d.ts +12 -0
  951. package/dist/utils/ensure-project.d.ts.map +1 -0
  952. package/dist/utils/ensure-project.js +81 -0
  953. package/dist/utils/ensure-project.js.map +1 -0
  954. package/dist/utils/git.d.ts +73 -0
  955. package/dist/utils/git.d.ts.map +1 -0
  956. package/dist/utils/git.js +222 -0
  957. package/dist/utils/git.js.map +1 -0
  958. package/dist/utils/github-auth.d.ts +54 -0
  959. package/dist/utils/github-auth.d.ts.map +1 -0
  960. package/dist/utils/github-auth.js +376 -0
  961. package/dist/utils/github-auth.js.map +1 -0
  962. package/dist/utils/github-repo.d.ts +30 -0
  963. package/dist/utils/github-repo.d.ts.map +1 -0
  964. package/dist/utils/github-repo.js +219 -0
  965. package/dist/utils/github-repo.js.map +1 -0
  966. package/dist/utils/jfl-config.d.ts +30 -0
  967. package/dist/utils/jfl-config.d.ts.map +1 -0
  968. package/dist/utils/jfl-config.js +153 -0
  969. package/dist/utils/jfl-config.js.map +1 -0
  970. package/dist/utils/jfl-migration.d.ts +29 -0
  971. package/dist/utils/jfl-migration.d.ts.map +1 -0
  972. package/dist/utils/jfl-migration.js +142 -0
  973. package/dist/utils/jfl-migration.js.map +1 -0
  974. package/dist/utils/jfl-paths.d.ts +71 -0
  975. package/dist/utils/jfl-paths.d.ts.map +1 -0
  976. package/dist/utils/jfl-paths.js +157 -0
  977. package/dist/utils/jfl-paths.js.map +1 -0
  978. package/dist/utils/platform-auth.d.ts +81 -0
  979. package/dist/utils/platform-auth.d.ts.map +1 -0
  980. package/dist/utils/platform-auth.js +192 -0
  981. package/dist/utils/platform-auth.js.map +1 -0
  982. package/dist/utils/project-config.d.ts +43 -0
  983. package/dist/utils/project-config.d.ts.map +1 -0
  984. package/dist/utils/project-config.js +97 -0
  985. package/dist/utils/project-config.js.map +1 -0
  986. package/dist/utils/provenance.d.ts +65 -0
  987. package/dist/utils/provenance.d.ts.map +1 -0
  988. package/dist/utils/provenance.js +213 -0
  989. package/dist/utils/provenance.js.map +1 -0
  990. package/dist/utils/settings-validator.d.ts +74 -0
  991. package/dist/utils/settings-validator.d.ts.map +1 -0
  992. package/dist/utils/settings-validator.js +241 -0
  993. package/dist/utils/settings-validator.js.map +1 -0
  994. package/dist/utils/skill-registry.d.ts +49 -0
  995. package/dist/utils/skill-registry.d.ts.map +1 -0
  996. package/dist/utils/skill-registry.js +192 -0
  997. package/dist/utils/skill-registry.js.map +1 -0
  998. package/dist/utils/tenet-env.d.ts +34 -0
  999. package/dist/utils/tenet-env.d.ts.map +1 -0
  1000. package/dist/utils/tenet-env.js +42 -0
  1001. package/dist/utils/tenet-env.js.map +1 -0
  1002. package/dist/utils/wallet.d.ts +62 -0
  1003. package/dist/utils/wallet.d.ts.map +1 -0
  1004. package/dist/utils/wallet.js +253 -0
  1005. package/dist/utils/wallet.js.map +1 -0
  1006. package/dist/utils/x402-client.d.ts +86 -0
  1007. package/dist/utils/x402-client.d.ts.map +1 -0
  1008. package/dist/utils/x402-client.js +266 -0
  1009. package/dist/utils/x402-client.js.map +1 -0
  1010. package/package.json +105 -0
  1011. package/packages/pi/AGENTS.md +112 -0
  1012. package/packages/pi/assets/boot.mp3 +0 -0
  1013. package/packages/pi/dist/agent-grid.d.ts +24 -0
  1014. package/packages/pi/dist/agent-grid.d.ts.map +1 -0
  1015. package/packages/pi/dist/agent-grid.js +162 -0
  1016. package/packages/pi/dist/agent-grid.js.map +1 -0
  1017. package/packages/pi/dist/agent-names.d.ts +43 -0
  1018. package/packages/pi/dist/agent-names.d.ts.map +1 -0
  1019. package/packages/pi/dist/agent-names.js +156 -0
  1020. package/packages/pi/dist/agent-names.js.map +1 -0
  1021. package/packages/pi/dist/autoresearch.d.ts +15 -0
  1022. package/packages/pi/dist/autoresearch.d.ts.map +1 -0
  1023. package/packages/pi/dist/autoresearch.js +372 -0
  1024. package/packages/pi/dist/autoresearch.js.map +1 -0
  1025. package/packages/pi/dist/bookmarks.d.ts +15 -0
  1026. package/packages/pi/dist/bookmarks.d.ts.map +1 -0
  1027. package/packages/pi/dist/bookmarks.js +77 -0
  1028. package/packages/pi/dist/bookmarks.js.map +1 -0
  1029. package/packages/pi/dist/context.d.ts +17 -0
  1030. package/packages/pi/dist/context.d.ts.map +1 -0
  1031. package/packages/pi/dist/context.js +152 -0
  1032. package/packages/pi/dist/context.js.map +1 -0
  1033. package/packages/pi/dist/crm-tool.d.ts +12 -0
  1034. package/packages/pi/dist/crm-tool.d.ts.map +1 -0
  1035. package/packages/pi/dist/crm-tool.js +58 -0
  1036. package/packages/pi/dist/crm-tool.js.map +1 -0
  1037. package/packages/pi/dist/eval-tool.d.ts +11 -0
  1038. package/packages/pi/dist/eval-tool.d.ts.map +1 -0
  1039. package/packages/pi/dist/eval-tool.js +188 -0
  1040. package/packages/pi/dist/eval-tool.js.map +1 -0
  1041. package/packages/pi/dist/eval.d.ts +12 -0
  1042. package/packages/pi/dist/eval.d.ts.map +1 -0
  1043. package/packages/pi/dist/eval.js +43 -0
  1044. package/packages/pi/dist/eval.js.map +1 -0
  1045. package/packages/pi/dist/footer.d.ts +20 -0
  1046. package/packages/pi/dist/footer.d.ts.map +1 -0
  1047. package/packages/pi/dist/footer.js +222 -0
  1048. package/packages/pi/dist/footer.js.map +1 -0
  1049. package/packages/pi/dist/header.d.ts +17 -0
  1050. package/packages/pi/dist/header.d.ts.map +1 -0
  1051. package/packages/pi/dist/header.js +156 -0
  1052. package/packages/pi/dist/header.js.map +1 -0
  1053. package/packages/pi/dist/hub-resolver.d.ts +11 -0
  1054. package/packages/pi/dist/hub-resolver.d.ts.map +1 -0
  1055. package/packages/pi/dist/hub-resolver.js +58 -0
  1056. package/packages/pi/dist/hub-resolver.js.map +1 -0
  1057. package/packages/pi/dist/hub-tools.d.ts +14 -0
  1058. package/packages/pi/dist/hub-tools.d.ts.map +1 -0
  1059. package/packages/pi/dist/hub-tools.js +266 -0
  1060. package/packages/pi/dist/hub-tools.js.map +1 -0
  1061. package/packages/pi/dist/hud-tool.d.ts +17 -0
  1062. package/packages/pi/dist/hud-tool.d.ts.map +1 -0
  1063. package/packages/pi/dist/hud-tool.js +297 -0
  1064. package/packages/pi/dist/hud-tool.js.map +1 -0
  1065. package/packages/pi/dist/index.d.ts +12 -0
  1066. package/packages/pi/dist/index.d.ts.map +1 -0
  1067. package/packages/pi/dist/index.js +556 -0
  1068. package/packages/pi/dist/index.js.map +1 -0
  1069. package/packages/pi/dist/jfl-resolve.d.ts +29 -0
  1070. package/packages/pi/dist/jfl-resolve.d.ts.map +1 -0
  1071. package/packages/pi/dist/jfl-resolve.js +89 -0
  1072. package/packages/pi/dist/jfl-resolve.js.map +1 -0
  1073. package/packages/pi/dist/journal.d.ts +23 -0
  1074. package/packages/pi/dist/journal.d.ts.map +1 -0
  1075. package/packages/pi/dist/journal.js +250 -0
  1076. package/packages/pi/dist/journal.js.map +1 -0
  1077. package/packages/pi/dist/map-bridge.d.ts +20 -0
  1078. package/packages/pi/dist/map-bridge.d.ts.map +1 -0
  1079. package/packages/pi/dist/map-bridge.js +181 -0
  1080. package/packages/pi/dist/map-bridge.js.map +1 -0
  1081. package/packages/pi/dist/memory-tool.d.ts +11 -0
  1082. package/packages/pi/dist/memory-tool.d.ts.map +1 -0
  1083. package/packages/pi/dist/memory-tool.js +162 -0
  1084. package/packages/pi/dist/memory-tool.js.map +1 -0
  1085. package/packages/pi/dist/notifications.d.ts +15 -0
  1086. package/packages/pi/dist/notifications.d.ts.map +1 -0
  1087. package/packages/pi/dist/notifications.js +65 -0
  1088. package/packages/pi/dist/notifications.js.map +1 -0
  1089. package/packages/pi/dist/onboarding-v1.d.ts +15 -0
  1090. package/packages/pi/dist/onboarding-v1.d.ts.map +1 -0
  1091. package/packages/pi/dist/onboarding-v1.js +417 -0
  1092. package/packages/pi/dist/onboarding-v1.js.map +1 -0
  1093. package/packages/pi/dist/onboarding-v2.d.ts +18 -0
  1094. package/packages/pi/dist/onboarding-v2.d.ts.map +1 -0
  1095. package/packages/pi/dist/onboarding-v2.js +402 -0
  1096. package/packages/pi/dist/onboarding-v2.js.map +1 -0
  1097. package/packages/pi/dist/onboarding-v3.d.ts +13 -0
  1098. package/packages/pi/dist/onboarding-v3.d.ts.map +1 -0
  1099. package/packages/pi/dist/onboarding-v3.js +581 -0
  1100. package/packages/pi/dist/onboarding-v3.js.map +1 -0
  1101. package/packages/pi/dist/peter-parker.d.ts +12 -0
  1102. package/packages/pi/dist/peter-parker.d.ts.map +1 -0
  1103. package/packages/pi/dist/peter-parker.js +162 -0
  1104. package/packages/pi/dist/peter-parker.js.map +1 -0
  1105. package/packages/pi/dist/pivot-tool.d.ts +11 -0
  1106. package/packages/pi/dist/pivot-tool.d.ts.map +1 -0
  1107. package/packages/pi/dist/pivot-tool.js +56 -0
  1108. package/packages/pi/dist/pivot-tool.js.map +1 -0
  1109. package/packages/pi/dist/policy-head-tool.d.ts +15 -0
  1110. package/packages/pi/dist/policy-head-tool.d.ts.map +1 -0
  1111. package/packages/pi/dist/policy-head-tool.js +220 -0
  1112. package/packages/pi/dist/policy-head-tool.js.map +1 -0
  1113. package/packages/pi/dist/portfolio-bridge.d.ts +12 -0
  1114. package/packages/pi/dist/portfolio-bridge.d.ts.map +1 -0
  1115. package/packages/pi/dist/portfolio-bridge.js +81 -0
  1116. package/packages/pi/dist/portfolio-bridge.js.map +1 -0
  1117. package/packages/pi/dist/service-skills.d.ts +15 -0
  1118. package/packages/pi/dist/service-skills.d.ts.map +1 -0
  1119. package/packages/pi/dist/service-skills.js +198 -0
  1120. package/packages/pi/dist/service-skills.js.map +1 -0
  1121. package/packages/pi/dist/session.d.ts +28 -0
  1122. package/packages/pi/dist/session.d.ts.map +1 -0
  1123. package/packages/pi/dist/session.js +649 -0
  1124. package/packages/pi/dist/session.js.map +1 -0
  1125. package/packages/pi/dist/shortcuts.d.ts +11 -0
  1126. package/packages/pi/dist/shortcuts.d.ts.map +1 -0
  1127. package/packages/pi/dist/shortcuts.js +231 -0
  1128. package/packages/pi/dist/shortcuts.js.map +1 -0
  1129. package/packages/pi/dist/startup-briefing.d.ts +13 -0
  1130. package/packages/pi/dist/startup-briefing.d.ts.map +1 -0
  1131. package/packages/pi/dist/startup-briefing.js +432 -0
  1132. package/packages/pi/dist/startup-briefing.js.map +1 -0
  1133. package/packages/pi/dist/stratus-bridge.d.ts +14 -0
  1134. package/packages/pi/dist/stratus-bridge.d.ts.map +1 -0
  1135. package/packages/pi/dist/stratus-bridge.js +104 -0
  1136. package/packages/pi/dist/stratus-bridge.js.map +1 -0
  1137. package/packages/pi/dist/subway-mesh.d.ts +88 -0
  1138. package/packages/pi/dist/subway-mesh.d.ts.map +1 -0
  1139. package/packages/pi/dist/subway-mesh.js +813 -0
  1140. package/packages/pi/dist/subway-mesh.js.map +1 -0
  1141. package/packages/pi/dist/synopsis-tool.d.ts +12 -0
  1142. package/packages/pi/dist/synopsis-tool.d.ts.map +1 -0
  1143. package/packages/pi/dist/synopsis-tool.js +84 -0
  1144. package/packages/pi/dist/synopsis-tool.js.map +1 -0
  1145. package/packages/pi/dist/tool-renderers.d.ts +55 -0
  1146. package/packages/pi/dist/tool-renderers.d.ts.map +1 -0
  1147. package/packages/pi/dist/tool-renderers.js +349 -0
  1148. package/packages/pi/dist/tool-renderers.js.map +1 -0
  1149. package/packages/pi/dist/training-buffer-tool.d.ts +16 -0
  1150. package/packages/pi/dist/training-buffer-tool.d.ts.map +1 -0
  1151. package/packages/pi/dist/training-buffer-tool.js +319 -0
  1152. package/packages/pi/dist/training-buffer-tool.js.map +1 -0
  1153. package/packages/pi/dist/types.d.ts +195 -0
  1154. package/packages/pi/dist/types.d.ts.map +1 -0
  1155. package/packages/pi/dist/types.js +11 -0
  1156. package/packages/pi/dist/types.js.map +1 -0
  1157. package/packages/pi/extensions/agent-grid.ts +191 -0
  1158. package/packages/pi/extensions/agent-names.ts +178 -0
  1159. package/packages/pi/extensions/autoresearch.ts +428 -0
  1160. package/packages/pi/extensions/bookmarks.ts +85 -0
  1161. package/packages/pi/extensions/context.ts +158 -0
  1162. package/packages/pi/extensions/crm-tool.ts +61 -0
  1163. package/packages/pi/extensions/eval-tool.ts +224 -0
  1164. package/packages/pi/extensions/eval.ts +61 -0
  1165. package/packages/pi/extensions/footer.ts +239 -0
  1166. package/packages/pi/extensions/header.ts +171 -0
  1167. package/packages/pi/extensions/hub-resolver.ts +63 -0
  1168. package/packages/pi/extensions/hub-tools.ts +267 -0
  1169. package/packages/pi/extensions/hud-tool.ts +294 -0
  1170. package/packages/pi/extensions/index.ts +601 -0
  1171. package/packages/pi/extensions/jfl-resolve.ts +98 -0
  1172. package/packages/pi/extensions/journal.ts +309 -0
  1173. package/packages/pi/extensions/map-bridge.ts +209 -0
  1174. package/packages/pi/extensions/memory-tool.ts +170 -0
  1175. package/packages/pi/extensions/notifications.ts +73 -0
  1176. package/packages/pi/extensions/onboarding-v1.ts +455 -0
  1177. package/packages/pi/extensions/onboarding-v2.ts +374 -0
  1178. package/packages/pi/extensions/onboarding-v3.ts +686 -0
  1179. package/packages/pi/extensions/peter-parker.ts +203 -0
  1180. package/packages/pi/extensions/pivot-tool.ts +59 -0
  1181. package/packages/pi/extensions/policy-head-tool.ts +277 -0
  1182. package/packages/pi/extensions/portfolio-bridge.ts +89 -0
  1183. package/packages/pi/extensions/service-skills.ts +219 -0
  1184. package/packages/pi/extensions/session.ts +684 -0
  1185. package/packages/pi/extensions/shortcuts.ts +259 -0
  1186. package/packages/pi/extensions/startup-briefing.ts +482 -0
  1187. package/packages/pi/extensions/stratus-bridge.ts +116 -0
  1188. package/packages/pi/extensions/subway-mesh.ts +893 -0
  1189. package/packages/pi/extensions/synopsis-tool.ts +88 -0
  1190. package/packages/pi/extensions/tool-renderers.ts +366 -0
  1191. package/packages/pi/extensions/training-buffer-tool.ts +376 -0
  1192. package/packages/pi/extensions/types.ts +169 -0
  1193. package/packages/pi/package-lock.json +346 -0
  1194. package/packages/pi/package.json +42 -0
  1195. package/packages/pi/skills/agent-browser/SKILL.md +116 -0
  1196. package/packages/pi/skills/brand-architect/SKILL.md +240 -0
  1197. package/packages/pi/skills/brand-architect/config.yaml +137 -0
  1198. package/packages/pi/skills/campaign-hud/config.yaml +112 -0
  1199. package/packages/pi/skills/content-creator/SKILL.md +294 -0
  1200. package/packages/pi/skills/context/SKILL.md +65 -0
  1201. package/packages/pi/skills/debug/MULTI_AGENT.md +360 -0
  1202. package/packages/pi/skills/debug/SKILL.md +554 -0
  1203. package/packages/pi/skills/end/SKILL.md +1790 -0
  1204. package/packages/pi/skills/eval/SKILL.md +75 -0
  1205. package/packages/pi/skills/fly-deploy/SKILL.md +676 -0
  1206. package/packages/pi/skills/founder-video/SKILL.md +467 -0
  1207. package/packages/pi/skills/hud/SKILL.md +160 -0
  1208. package/packages/pi/skills/orchestrate/SKILL.md +74 -0
  1209. package/packages/pi/skills/pi-agents/SKILL.md +78 -0
  1210. package/packages/pi/skills/pivot/SKILL.md +91 -0
  1211. package/packages/pi/skills/react-best-practices/AGENTS.md +2249 -0
  1212. package/packages/pi/skills/react-best-practices/README.md +123 -0
  1213. package/packages/pi/skills/react-best-practices/SKILL.md +125 -0
  1214. package/packages/pi/skills/react-best-practices/metadata.json +15 -0
  1215. package/packages/pi/skills/react-best-practices/rules/_sections.md +46 -0
  1216. package/packages/pi/skills/react-best-practices/rules/_template.md +28 -0
  1217. package/packages/pi/skills/react-best-practices/rules/advanced-event-handler-refs.md +55 -0
  1218. package/packages/pi/skills/react-best-practices/rules/advanced-use-latest.md +49 -0
  1219. package/packages/pi/skills/react-best-practices/rules/async-api-routes.md +38 -0
  1220. package/packages/pi/skills/react-best-practices/rules/async-defer-await.md +80 -0
  1221. package/packages/pi/skills/react-best-practices/rules/async-dependencies.md +36 -0
  1222. package/packages/pi/skills/react-best-practices/rules/async-parallel.md +28 -0
  1223. package/packages/pi/skills/react-best-practices/rules/async-suspense-boundaries.md +99 -0
  1224. package/packages/pi/skills/react-best-practices/rules/bundle-barrel-imports.md +59 -0
  1225. package/packages/pi/skills/react-best-practices/rules/bundle-conditional.md +31 -0
  1226. package/packages/pi/skills/react-best-practices/rules/bundle-defer-third-party.md +49 -0
  1227. package/packages/pi/skills/react-best-practices/rules/bundle-dynamic-imports.md +35 -0
  1228. package/packages/pi/skills/react-best-practices/rules/bundle-preload.md +50 -0
  1229. package/packages/pi/skills/react-best-practices/rules/client-event-listeners.md +74 -0
  1230. package/packages/pi/skills/react-best-practices/rules/client-swr-dedup.md +56 -0
  1231. package/packages/pi/skills/react-best-practices/rules/js-batch-dom-css.md +82 -0
  1232. package/packages/pi/skills/react-best-practices/rules/js-cache-function-results.md +80 -0
  1233. package/packages/pi/skills/react-best-practices/rules/js-cache-property-access.md +28 -0
  1234. package/packages/pi/skills/react-best-practices/rules/js-cache-storage.md +70 -0
  1235. package/packages/pi/skills/react-best-practices/rules/js-combine-iterations.md +32 -0
  1236. package/packages/pi/skills/react-best-practices/rules/js-early-exit.md +50 -0
  1237. package/packages/pi/skills/react-best-practices/rules/js-hoist-regexp.md +45 -0
  1238. package/packages/pi/skills/react-best-practices/rules/js-index-maps.md +37 -0
  1239. package/packages/pi/skills/react-best-practices/rules/js-length-check-first.md +49 -0
  1240. package/packages/pi/skills/react-best-practices/rules/js-min-max-loop.md +82 -0
  1241. package/packages/pi/skills/react-best-practices/rules/js-set-map-lookups.md +24 -0
  1242. package/packages/pi/skills/react-best-practices/rules/js-tosorted-immutable.md +57 -0
  1243. package/packages/pi/skills/react-best-practices/rules/rendering-activity.md +26 -0
  1244. package/packages/pi/skills/react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
  1245. package/packages/pi/skills/react-best-practices/rules/rendering-conditional-render.md +40 -0
  1246. package/packages/pi/skills/react-best-practices/rules/rendering-content-visibility.md +38 -0
  1247. package/packages/pi/skills/react-best-practices/rules/rendering-hoist-jsx.md +46 -0
  1248. package/packages/pi/skills/react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
  1249. package/packages/pi/skills/react-best-practices/rules/rendering-svg-precision.md +28 -0
  1250. package/packages/pi/skills/react-best-practices/rules/rerender-defer-reads.md +39 -0
  1251. package/packages/pi/skills/react-best-practices/rules/rerender-dependencies.md +45 -0
  1252. package/packages/pi/skills/react-best-practices/rules/rerender-derived-state.md +29 -0
  1253. package/packages/pi/skills/react-best-practices/rules/rerender-functional-setstate.md +74 -0
  1254. package/packages/pi/skills/react-best-practices/rules/rerender-lazy-state-init.md +58 -0
  1255. package/packages/pi/skills/react-best-practices/rules/rerender-memo.md +44 -0
  1256. package/packages/pi/skills/react-best-practices/rules/rerender-transitions.md +40 -0
  1257. package/packages/pi/skills/react-best-practices/rules/server-after-nonblocking.md +73 -0
  1258. package/packages/pi/skills/react-best-practices/rules/server-cache-lru.md +41 -0
  1259. package/packages/pi/skills/react-best-practices/rules/server-cache-react.md +26 -0
  1260. package/packages/pi/skills/react-best-practices/rules/server-parallel-fetching.md +79 -0
  1261. package/packages/pi/skills/react-best-practices/rules/server-serialization.md +38 -0
  1262. package/packages/pi/skills/remotion-best-practices/SKILL.md +43 -0
  1263. package/packages/pi/skills/remotion-best-practices/rules/3d.md +86 -0
  1264. package/packages/pi/skills/remotion-best-practices/rules/animations.md +29 -0
  1265. package/packages/pi/skills/remotion-best-practices/rules/assets/charts-bar-chart.tsx +173 -0
  1266. package/packages/pi/skills/remotion-best-practices/rules/assets/text-animations-typewriter.tsx +100 -0
  1267. package/packages/pi/skills/remotion-best-practices/rules/assets/text-animations-word-highlight.tsx +108 -0
  1268. package/packages/pi/skills/remotion-best-practices/rules/assets.md +78 -0
  1269. package/packages/pi/skills/remotion-best-practices/rules/audio.md +172 -0
  1270. package/packages/pi/skills/remotion-best-practices/rules/calculate-metadata.md +104 -0
  1271. package/packages/pi/skills/remotion-best-practices/rules/can-decode.md +75 -0
  1272. package/packages/pi/skills/remotion-best-practices/rules/charts.md +58 -0
  1273. package/packages/pi/skills/remotion-best-practices/rules/compositions.md +146 -0
  1274. package/packages/pi/skills/remotion-best-practices/rules/display-captions.md +126 -0
  1275. package/packages/pi/skills/remotion-best-practices/rules/extract-frames.md +229 -0
  1276. package/packages/pi/skills/remotion-best-practices/rules/fonts.md +152 -0
  1277. package/packages/pi/skills/remotion-best-practices/rules/get-audio-duration.md +58 -0
  1278. package/packages/pi/skills/remotion-best-practices/rules/get-video-dimensions.md +68 -0
  1279. package/packages/pi/skills/remotion-best-practices/rules/get-video-duration.md +58 -0
  1280. package/packages/pi/skills/remotion-best-practices/rules/gifs.md +138 -0
  1281. package/packages/pi/skills/remotion-best-practices/rules/images.md +130 -0
  1282. package/packages/pi/skills/remotion-best-practices/rules/import-srt-captions.md +67 -0
  1283. package/packages/pi/skills/remotion-best-practices/rules/lottie.md +68 -0
  1284. package/packages/pi/skills/remotion-best-practices/rules/measuring-dom-nodes.md +35 -0
  1285. package/packages/pi/skills/remotion-best-practices/rules/measuring-text.md +143 -0
  1286. package/packages/pi/skills/remotion-best-practices/rules/sequencing.md +106 -0
  1287. package/packages/pi/skills/remotion-best-practices/rules/tailwind.md +11 -0
  1288. package/packages/pi/skills/remotion-best-practices/rules/text-animations.md +20 -0
  1289. package/packages/pi/skills/remotion-best-practices/rules/timing.md +179 -0
  1290. package/packages/pi/skills/remotion-best-practices/rules/transcribe-captions.md +19 -0
  1291. package/packages/pi/skills/remotion-best-practices/rules/transitions.md +122 -0
  1292. package/packages/pi/skills/remotion-best-practices/rules/trimming.md +53 -0
  1293. package/packages/pi/skills/remotion-best-practices/rules/videos.md +171 -0
  1294. package/packages/pi/skills/search/SKILL.md +220 -0
  1295. package/packages/pi/skills/spec/SKILL.md +377 -0
  1296. package/packages/pi/skills/startup/SKILL.md +315 -0
  1297. package/packages/pi/skills/subway-browser/SKILL.md +292 -0
  1298. package/packages/pi/skills/viz/SKILL.md +204 -0
  1299. package/packages/pi/skills/web-architect/SKILL.md +309 -0
  1300. package/packages/pi/skills/x-algorithm/SKILL.md +305 -0
  1301. package/packages/pi/teams/dev-team.yaml +63 -0
  1302. package/packages/pi/teams/gtm-team.yaml +79 -0
  1303. package/packages/pi/themes/jfl.theme.json +76 -0
  1304. package/packages/pi/tsconfig.json +21 -0
  1305. package/scripts/__pycache__/train-policy-head.cpython-314.pyc +0 -0
  1306. package/scripts/collect-tuples.sh +124 -0
  1307. package/scripts/commit-gtm.sh +56 -0
  1308. package/scripts/commit-product.sh +68 -0
  1309. package/scripts/context-query.sh +45 -0
  1310. package/scripts/destroy-fleet.sh +37 -0
  1311. package/scripts/generate-changesets.sh +113 -0
  1312. package/scripts/jfl-ide.sh +48 -0
  1313. package/scripts/migrate-to-branch-sessions.sh +201 -0
  1314. package/scripts/postinstall.js +146 -0
  1315. package/scripts/pp-branch-pr.sh +133 -0
  1316. package/scripts/pp-branch-pr.sh.bak +115 -0
  1317. package/scripts/session/auto-commit.sh +297 -0
  1318. package/scripts/session/fix-tracked-logs.sh +97 -0
  1319. package/scripts/session/jfl-doctor.sh +707 -0
  1320. package/scripts/session/session-cleanup.sh +292 -0
  1321. package/scripts/session/session-end.sh +198 -0
  1322. package/scripts/session/session-init.sh +356 -0
  1323. package/scripts/session/session-init.sh.backup +292 -0
  1324. package/scripts/session/session-sync.sh +192 -0
  1325. package/scripts/session/test-context-preservation.sh +160 -0
  1326. package/scripts/session/test-critical-infrastructure.sh +293 -0
  1327. package/scripts/session/test-experience-level.sh +336 -0
  1328. package/scripts/session/test-session-cleanup.sh +268 -0
  1329. package/scripts/session/test-session-sync.sh +320 -0
  1330. package/scripts/setup-branch-protection.sh +106 -0
  1331. package/scripts/spawn-fleet.sh +144 -0
  1332. package/scripts/telemetry-dashboard.sh +44 -0
  1333. package/scripts/test-map-eventbus.sh +357 -0
  1334. package/scripts/test-onboarding.sh +121 -0
  1335. package/scripts/test-planning-loop-e2e.ts +181 -0
  1336. package/scripts/test-server-inference.ts +49 -0
  1337. package/scripts/test-state-sensitivity.ts +32 -0
  1338. package/scripts/train/requirements.txt +5 -0
  1339. package/scripts/train/train-policy-head.py +477 -0
  1340. package/scripts/train/v2/__pycache__/dataset.cpython-314.pyc +0 -0
  1341. package/scripts/train/v2/__pycache__/eval.cpython-314.pyc +0 -0
  1342. package/scripts/train/v2/__pycache__/generate_data.cpython-314.pyc +0 -0
  1343. package/scripts/train/v2/__pycache__/infer.cpython-314.pyc +0 -0
  1344. package/scripts/train/v2/__pycache__/model.cpython-314.pyc +0 -0
  1345. package/scripts/train/v2/__pycache__/precompute.cpython-314.pyc +0 -0
  1346. package/scripts/train/v2/__pycache__/train.cpython-314.pyc +0 -0
  1347. package/scripts/train/v2/__pycache__/transform_buffer.cpython-314.pyc +0 -0
  1348. package/scripts/train/v2/__pycache__/validate_data.cpython-314.pyc +0 -0
  1349. package/scripts/train/v2/benchmark.py +661 -0
  1350. package/scripts/train/v2/dataset.py +81 -0
  1351. package/scripts/train/v2/domain.json +66 -0
  1352. package/scripts/train/v2/eval.py +196 -0
  1353. package/scripts/train/v2/generate_balanced.py +439 -0
  1354. package/scripts/train/v2/generate_data.py +219 -0
  1355. package/scripts/train/v2/generate_hard_negatives.py +219 -0
  1356. package/scripts/train/v2/infer.py +301 -0
  1357. package/scripts/train/v2/infer_server.py +224 -0
  1358. package/scripts/train/v2/model.py +112 -0
  1359. package/scripts/train/v2/online_train.py +576 -0
  1360. package/scripts/train/v2/precompute.py +150 -0
  1361. package/scripts/train/v2/train.py +302 -0
  1362. package/scripts/train/v2/transform_buffer.py +227 -0
  1363. package/scripts/train/v2/validate_data.py +115 -0
  1364. package/scripts/train-policy-head.py +434 -0
  1365. package/scripts/vm-swarm/README.md +301 -0
  1366. package/scripts/vm-swarm/collect-tuples.sh +331 -0
  1367. package/scripts/vm-swarm/create-base-template.sh +339 -0
  1368. package/scripts/vm-swarm/kill-fleet.sh +204 -0
  1369. package/scripts/vm-swarm/monitor-fleet.sh +346 -0
  1370. package/scripts/vm-swarm/spawn-fleet.sh +304 -0
  1371. package/scripts/voice-start.sh +156 -0
  1372. package/scripts/voice-stop.sh +33 -0
  1373. package/scripts/where-am-i.sh +78 -0
  1374. package/templates/QUICKSTART_SKILL_TO_PRODUCT.md +242 -0
  1375. package/templates/brand/BRAND_BRIEF.md +124 -0
  1376. package/templates/brand/BRAND_DECISIONS.md +168 -0
  1377. package/templates/brand/BRAND_GUIDELINES.md +251 -0
  1378. package/templates/brand/VOICE_AND_TONE.md +146 -0
  1379. package/templates/brand/global.css +240 -0
  1380. package/templates/collaboration/CONTRIBUTOR.md +74 -0
  1381. package/templates/collaboration/CRM.md +97 -0
  1382. package/templates/collaboration/TASKS.md +83 -0
  1383. package/templates/dating/FUNNEL.md +29 -0
  1384. package/templates/dating/REWARDS.md +24 -0
  1385. package/templates/dating/SIGNALS.md +18 -0
  1386. package/templates/dating/anti_patterns.md +23 -0
  1387. package/templates/dating/connectors/index.md +16 -0
  1388. package/templates/dating/modes.md +21 -0
  1389. package/templates/dating/psychology.md +18 -0
  1390. package/templates/default/README.md +19 -0
  1391. package/templates/service-agent/.claude/settings.json +32 -0
  1392. package/templates/service-agent/CLAUDE.md +334 -0
  1393. package/templates/service-agent/knowledge/ARCHITECTURE.md +115 -0
  1394. package/templates/service-agent/knowledge/DEPLOYMENT.md +199 -0
  1395. package/templates/service-agent/knowledge/RUNBOOK.md +412 -0
  1396. package/templates/service-agent/knowledge/SERVICE_SPEC.md +77 -0
  1397. package/templates/service-mcp-template.js +325 -0
  1398. package/templates/strategic/NARRATIVE.md +114 -0
  1399. package/templates/strategic/ROADMAP.md +128 -0
  1400. package/templates/strategic/THESIS.md +108 -0
  1401. package/templates/strategic/VISION.md +74 -0
@@ -0,0 +1,1043 @@
1
+ /**
2
+ * Telemetry Agent V2 - Real Platform Digest Consumer
3
+ *
4
+ * Fetches production telemetry from jfl-platform digest API,
5
+ * extracts real metrics, compares to previous runs, generates
6
+ * training tuples, and proposes scoped RL agents.
7
+ *
8
+ * @purpose Real telemetry agent consuming platform digest API for metrics-driven RL
9
+ */
10
+ import { readFileSync, writeFileSync, existsSync, mkdirSync, readdirSync, appendFileSync } from 'fs';
11
+ import { join } from 'path';
12
+ import { spawnSync } from 'child_process';
13
+ import { TENET_PLATFORM_URL } from '../utils/tenet-env.js';
14
+ import { TrainingBuffer } from './training-buffer.js';
15
+ // ============================================================================
16
+ // Implementation
17
+ // ============================================================================
18
+ export class TelemetryAgentV2 {
19
+ projectRoot;
20
+ platformUrl;
21
+ installId;
22
+ stratusUrl;
23
+ stratusKey;
24
+ emitEvent;
25
+ statePath;
26
+ state;
27
+ constructor(opts) {
28
+ this.projectRoot = opts.projectRoot;
29
+ this.platformUrl = opts.platformUrl || TENET_PLATFORM_URL || this.loadPlatformUrl();
30
+ this.installId = opts.installId || this.loadInstallId();
31
+ this.stratusUrl = opts.stratusUrl || process.env.STRATUS_API_URL || 'https://api.stratus.run';
32
+ this.stratusKey = opts.stratusKey || process.env.STRATUS_API_KEY || '';
33
+ this.emitEvent = opts.emitEvent || (() => { });
34
+ this.statePath = join(this.projectRoot, '.jfl', 'telemetry-agent-v2-state.json');
35
+ this.state = this.loadState();
36
+ }
37
+ loadPlatformUrl() {
38
+ // Try project config first
39
+ const configPath = join(this.projectRoot, '.jfl', 'config.json');
40
+ if (existsSync(configPath)) {
41
+ try {
42
+ const config = JSON.parse(readFileSync(configPath, 'utf-8'));
43
+ if (config.platformUrl)
44
+ return config.platformUrl;
45
+ }
46
+ catch { }
47
+ }
48
+ return 'https://tenet.ai';
49
+ }
50
+ loadInstallId() {
51
+ // Try to get from telemetry config
52
+ const telemetryConfigPath = join(this.projectRoot, '.jfl', 'telemetry-config.json');
53
+ if (existsSync(telemetryConfigPath)) {
54
+ try {
55
+ const config = JSON.parse(readFileSync(telemetryConfigPath, 'utf-8'));
56
+ if (config.installId)
57
+ return config.installId;
58
+ }
59
+ catch { }
60
+ }
61
+ // Generate new one
62
+ return `jfl_${Date.now().toString(36)}_${Math.random().toString(36).slice(2, 8)}`;
63
+ }
64
+ loadState() {
65
+ const defaults = {
66
+ lastRun: '',
67
+ runCount: 0,
68
+ recentTrainingTuples: 0,
69
+ totalTrainingTuples: 0,
70
+ proposedAgents: [],
71
+ lastStratusRun: '',
72
+ stratusFailures: 0,
73
+ healthTrajectory: [],
74
+ };
75
+ if (existsSync(this.statePath)) {
76
+ try {
77
+ return { ...defaults, ...JSON.parse(readFileSync(this.statePath, 'utf-8')) };
78
+ }
79
+ catch { }
80
+ }
81
+ return defaults;
82
+ }
83
+ saveState() {
84
+ try {
85
+ const dir = join(this.projectRoot, '.jfl');
86
+ if (!existsSync(dir))
87
+ mkdirSync(dir, { recursive: true });
88
+ writeFileSync(this.statePath, JSON.stringify(this.state, null, 2));
89
+ }
90
+ catch { }
91
+ }
92
+ /**
93
+ * Fetch digest from platform API
94
+ */
95
+ async fetchDigest(hours = 24) {
96
+ try {
97
+ // Wake up Fly.io first (cold start can take 10+ seconds)
98
+ try {
99
+ await fetch(`${this.platformUrl}`, { method: 'HEAD', signal: AbortSignal.timeout(10000) }).catch(() => { });
100
+ }
101
+ catch { }
102
+ const controller = new AbortController();
103
+ const timer = setTimeout(() => controller.abort(), 60000); // 60s after warmup
104
+ const response = await fetch(`${this.platformUrl}/api/v1/telemetry/digest`, {
105
+ method: 'POST',
106
+ headers: {
107
+ 'Content-Type': 'application/json',
108
+ 'x-install-id': this.installId,
109
+ },
110
+ body: JSON.stringify({ hours }),
111
+ signal: controller.signal,
112
+ });
113
+ clearTimeout(timer);
114
+ if (response.status === 429) {
115
+ // Rate limited — wait and retry once
116
+ const retryAfter = parseInt(response.headers.get('retry-after') || '30', 10);
117
+ console.log(`Digest API rate limited, waiting ${retryAfter}s...`);
118
+ await new Promise(r => setTimeout(r, retryAfter * 1000));
119
+ const retry = await fetch(`${this.platformUrl}/api/v1/telemetry/digest`, {
120
+ method: 'POST',
121
+ headers: { 'Content-Type': 'application/json', 'x-install-id': this.installId },
122
+ body: JSON.stringify({ hours }),
123
+ signal: AbortSignal.timeout(60000),
124
+ });
125
+ if (!retry.ok) {
126
+ console.error(`Digest API retry returned ${retry.status}`);
127
+ return null;
128
+ }
129
+ const raw = await retry.json();
130
+ return this.normalizeDigest(raw);
131
+ }
132
+ if (!response.ok) {
133
+ console.error(`Digest API returned ${response.status}`);
134
+ return null;
135
+ }
136
+ const raw = await response.json();
137
+ return this.normalizeDigest(raw);
138
+ }
139
+ catch (err) {
140
+ console.error(`Failed to fetch digest: ${err.message}`);
141
+ return null;
142
+ }
143
+ }
144
+ normalizeDigest(raw) {
145
+ // Normalize API field names to our PlatformDigest interface
146
+ // API returns: commandUsage, toolFrequency, flowActivity, hookUsage
147
+ // Our types expect: commands, toolStats, flowStats, hookStats
148
+ const normalized = {
149
+ periodHours: raw.periodHours,
150
+ generatedAt: raw.generatedAt,
151
+ activeInstalls: raw.activeInstalls || 0,
152
+ totalEvents: raw.totalEvents || 0,
153
+ totalSessions: raw.sessionCosts?.length || raw.totalSessions || 0,
154
+ // Commands: normalize commandUsage → commands
155
+ commands: (raw.commandUsage || raw.commands || []).map((c) => ({
156
+ command: c.command,
157
+ count: c.count,
158
+ avgDurationMs: c.avgDurationMs || 0,
159
+ p90DurationMs: c.p90DurationMs || 0,
160
+ p99DurationMs: c.p99DurationMs || 0,
161
+ successRate: c.successRate ?? 1,
162
+ errorCount: c.errorCount || 0,
163
+ })),
164
+ commandSuccessRate: raw.commandSuccessRate ?? 1,
165
+ worstP90Command: raw.worstP90Command,
166
+ // Errors
167
+ errorClusters: raw.errorClusters || [],
168
+ totalErrors: raw.totalErrors || 0,
169
+ // Session health
170
+ sessionHealth: raw.sessionHealth || { started: 0, ended: 0, crashed: 0, avgDurationS: 0, crashRate: 0 },
171
+ // Hub health
172
+ hubHealth: raw.hubHealth || { starts: 0, stops: 0, crashes: 0, mcpCalls: 0, avgMcpLatencyMs: 0, p90McpLatencyMs: 0, p99McpLatencyMs: 0 },
173
+ // Hooks: normalize hookUsage → hookStats
174
+ hookStats: raw.hookStats || {
175
+ totalReceived: (raw.hookUsage || []).reduce((s, h) => s + (h.count || 0), 0),
176
+ byEvent: Object.fromEntries((raw.hookUsage || []).map((h) => [h.hookEventName, h.count])),
177
+ byTool: {},
178
+ fileHotspots: (raw.fileHotspots || []).map((f) => ({ file: f.file || f.path, edits: f.edits || f.count || 0 })),
179
+ },
180
+ // Tools: normalize toolFrequency → toolStats
181
+ toolStats: (raw.toolFrequency || raw.toolStats || []).map((t) => ({
182
+ toolName: t.toolName,
183
+ callCount: t.callCount || t.count || 0,
184
+ avgLatencyMs: t.avgLatencyMs || t.avgDurationMs || 0,
185
+ p90LatencyMs: t.p90LatencyMs || 0,
186
+ errorRate: t.errorRate || 0,
187
+ })),
188
+ // Flows: normalize flowActivity → flowStats
189
+ flowStats: raw.flowStats || {
190
+ triggered: (raw.flowActivity || []).reduce((s, f) => s + (f.triggerCount || 0), 0),
191
+ completed: (raw.flowActivity || []).reduce((s, f) => s + (f.completedCount || 0), 0),
192
+ failed: (raw.flowActivity || []).reduce((s, f) => s + (f.failedActions || 0), 0),
193
+ byFlow: Object.fromEntries((raw.flowActivity || []).map((f) => [f.flowName, {
194
+ triggered: f.triggerCount || 0,
195
+ completed: f.completedCount || 0,
196
+ failed: f.failedActions || 0,
197
+ }])),
198
+ completionRate: (() => {
199
+ const t = (raw.flowActivity || []).reduce((s, f) => s + (f.triggerCount || 0), 0);
200
+ const c = (raw.flowActivity || []).reduce((s, f) => s + (f.completedCount || 0), 0);
201
+ return t > 0 ? c / t : 1;
202
+ })(),
203
+ },
204
+ // Latency
205
+ latencyPercentiles: raw.latencyPercentiles || [],
206
+ // Costs
207
+ modelCosts: raw.modelCosts || [],
208
+ sessionCosts: (raw.sessionCosts || []).map((s) => ({
209
+ sessionId: s.sessionId,
210
+ installId: s.installId,
211
+ totalTokens: s.totalTokens || 0,
212
+ estimatedCostUsd: s.estimatedCostUsd || 0,
213
+ durationS: s.durationS || 0,
214
+ modelBreakdown: s.modelBreakdown || [],
215
+ })),
216
+ totalCostUsd: raw.totalCostUsd || 0,
217
+ costPerSessionUsd: raw.costPerSessionUsd || 0,
218
+ };
219
+ return normalized;
220
+ }
221
+ /**
222
+ * Extract real metrics from platform digest
223
+ */
224
+ extractMetrics(digest) {
225
+ // Command success rate: weighted average across all commands
226
+ let totalCommands = 0;
227
+ let successfulCommands = 0;
228
+ let worstP90 = 0;
229
+ for (const cmd of digest.commands) {
230
+ totalCommands += cmd.count;
231
+ successfulCommands += cmd.count * cmd.successRate;
232
+ if (cmd.p90DurationMs > worstP90)
233
+ worstP90 = cmd.p90DurationMs;
234
+ }
235
+ const commandSuccessRate = totalCommands > 0 ? successfulCommands / totalCommands : 1;
236
+ // Hub crash rate
237
+ const hubTotal = digest.hubHealth.starts + digest.hubHealth.stops + digest.hubHealth.crashes;
238
+ const hubCrashRate = hubTotal > 0 ? digest.hubHealth.crashes / hubTotal : 0;
239
+ // Session crash rate
240
+ const sessionCrashRate = digest.sessionHealth.started > 0
241
+ ? digest.sessionHealth.crashed / digest.sessionHealth.started
242
+ : 0;
243
+ // Hook hit rate: total hooks received vs expected (approx)
244
+ // We use total received as a signal - more hits = better coverage
245
+ const hookHitRate = Math.min(1, digest.hookStats.totalReceived / Math.max(100, digest.totalSessions * 10));
246
+ // Flow completion rate
247
+ const flowCompletionRate = digest.flowStats.triggered > 0
248
+ ? digest.flowStats.completed / digest.flowStats.triggered
249
+ : 1;
250
+ // Cost per session
251
+ const costPerSession = digest.totalSessions > 0
252
+ ? digest.totalCostUsd / digest.totalSessions
253
+ : 0;
254
+ return {
255
+ command_success_rate: commandSuccessRate,
256
+ command_p90_latency_ms: worstP90,
257
+ hub_crash_rate: hubCrashRate,
258
+ session_crash_rate: sessionCrashRate,
259
+ hook_hit_rate: hookHitRate,
260
+ mcp_avg_latency_ms: digest.hubHealth.avgMcpLatencyMs,
261
+ error_cluster_count: digest.errorClusters.length,
262
+ flow_completion_rate: flowCompletionRate,
263
+ cost_per_session_usd: costPerSession,
264
+ active_installs: digest.activeInstalls,
265
+ };
266
+ }
267
+ /**
268
+ * Compare metrics to previous run
269
+ */
270
+ compareMetrics(current) {
271
+ const comparisons = [];
272
+ const previous = this.state.previousDigest?.metrics || {};
273
+ // Define which direction is "better" for each metric
274
+ const metricDirections = {
275
+ command_success_rate: 'higher',
276
+ command_p90_latency_ms: 'lower',
277
+ hub_crash_rate: 'lower',
278
+ session_crash_rate: 'lower',
279
+ hook_hit_rate: 'higher',
280
+ mcp_avg_latency_ms: 'lower',
281
+ error_cluster_count: 'lower',
282
+ flow_completion_rate: 'higher',
283
+ cost_per_session_usd: 'lower',
284
+ active_installs: 'higher',
285
+ };
286
+ for (const [name, currentValue] of Object.entries(current)) {
287
+ const previousValue = previous[name] ?? currentValue;
288
+ const delta = currentValue - previousValue;
289
+ const percentChange = previousValue !== 0
290
+ ? (delta / Math.abs(previousValue)) * 100
291
+ : (currentValue !== 0 ? 100 : 0);
292
+ const direction = metricDirections[name] || 'higher';
293
+ const isImproving = direction === 'higher' ? delta > 0 : delta < 0;
294
+ const isDeclining = direction === 'higher' ? delta < 0 : delta > 0;
295
+ // Threshold: >10% decline = alert, >20% improvement = win
296
+ const significantChange = Math.abs(percentChange) > 10;
297
+ const bigWin = isImproving && Math.abs(percentChange) > 20;
298
+ comparisons.push({
299
+ name,
300
+ current: currentValue,
301
+ previous: previousValue,
302
+ delta,
303
+ percentChange,
304
+ trend: isImproving ? 'improving' : (isDeclining && significantChange ? 'declining' : 'stable'),
305
+ isAlert: isDeclining && significantChange,
306
+ isWin: bigWin,
307
+ });
308
+ }
309
+ return comparisons;
310
+ }
311
+ /**
312
+ * Generate training tuple from digest comparison
313
+ */
314
+ generateTrainingTuple(digest, metrics, comparisons) {
315
+ // Get recent commits as the "action"
316
+ const recentCommits = this.getRecentCommits();
317
+ if (!recentCommits || recentCommits.length === 0)
318
+ return;
319
+ // Build state
320
+ const state = {
321
+ composite_score: metrics.command_success_rate * (1 - metrics.session_crash_rate),
322
+ dimension_scores: {
323
+ command_success: metrics.command_success_rate,
324
+ hub_stability: 1 - metrics.hub_crash_rate,
325
+ session_stability: 1 - metrics.session_crash_rate,
326
+ flow_completion: metrics.flow_completion_rate,
327
+ cost_efficiency: 1 / (1 + metrics.cost_per_session_usd),
328
+ },
329
+ tests_passing: 0, // Not tracked here
330
+ tests_total: 0,
331
+ trajectory_length: this.state.runCount,
332
+ recent_deltas: this.state.healthTrajectory.slice(-5),
333
+ agent: 'telemetry-agent-v2',
334
+ };
335
+ // Build action from recent commits
336
+ const action = {
337
+ type: 'feature', // Could be 'fix' based on commit messages
338
+ description: recentCommits.slice(0, 3).join('; '),
339
+ files_affected: this.getRecentChangedFiles(),
340
+ scope: 'medium',
341
+ branch: this.getCurrentBranch(),
342
+ };
343
+ // Calculate composite reward from metric changes
344
+ const improvingMetrics = comparisons.filter(c => c.trend === 'improving');
345
+ const decliningMetrics = comparisons.filter(c => c.trend === 'declining');
346
+ const reward = {
347
+ composite_delta: improvingMetrics.length * 0.1 - decliningMetrics.length * 0.2,
348
+ dimension_deltas: Object.fromEntries(comparisons.map(c => [c.name, c.delta])),
349
+ tests_added: 0,
350
+ quality_score: metrics.command_success_rate,
351
+ improved: improvingMetrics.length > decliningMetrics.length,
352
+ };
353
+ // Write to training buffer
354
+ const buffer = new TrainingBuffer(this.projectRoot);
355
+ buffer.append({
356
+ agent: 'telemetry-agent-v2',
357
+ state,
358
+ action,
359
+ reward,
360
+ metadata: {
361
+ branch: this.getCurrentBranch(),
362
+ source: 'autoresearch',
363
+ },
364
+ });
365
+ this.state.recentTrainingTuples++;
366
+ this.state.totalTrainingTuples++;
367
+ }
368
+ /**
369
+ * Propose scoped agents based on metric analysis
370
+ */
371
+ proposeAgents(metrics, comparisons) {
372
+ const proposed = [];
373
+ // CLI speed agent if p90 latency is high
374
+ if (metrics.command_p90_latency_ms > 1000) {
375
+ proposed.push({
376
+ name: 'cli-speed',
377
+ reason: `Command p90 latency is ${metrics.command_p90_latency_ms}ms (>1000ms threshold)`,
378
+ triggeredBy: 'command_p90_latency_ms',
379
+ priority: metrics.command_p90_latency_ms > 2000 ? 'high' : 'medium',
380
+ config: {
381
+ metric: 'avg_ms',
382
+ direction: 'minimize',
383
+ scope: 'performance',
384
+ filesInScope: ['src/commands/**', 'src/lib/**'],
385
+ timeBudgetSeconds: 300,
386
+ },
387
+ });
388
+ }
389
+ // Bug-fix agent if error clusters are growing
390
+ const errorComparison = comparisons.find(c => c.name === 'error_cluster_count');
391
+ if (errorComparison && errorComparison.trend === 'declining' && metrics.error_cluster_count > 3) {
392
+ proposed.push({
393
+ name: 'bug-fix',
394
+ reason: `Error clusters increased to ${metrics.error_cluster_count} (was ${errorComparison.previous})`,
395
+ triggeredBy: 'error_cluster_count',
396
+ priority: 'high',
397
+ config: {
398
+ metric: 'error_count_inverse',
399
+ direction: 'maximize',
400
+ scope: 'reliability',
401
+ filesInScope: ['src/**'],
402
+ timeBudgetSeconds: 300,
403
+ },
404
+ });
405
+ }
406
+ // Hook optimization agent if hit rate is low
407
+ if (metrics.hook_hit_rate < 0.3) {
408
+ proposed.push({
409
+ name: 'hook-optimization',
410
+ reason: `Hook hit rate is ${(metrics.hook_hit_rate * 100).toFixed(1)}% (<30% threshold)`,
411
+ triggeredBy: 'hook_hit_rate',
412
+ priority: 'low',
413
+ config: {
414
+ metric: 'hook_hit_rate',
415
+ direction: 'maximize',
416
+ scope: 'hooks',
417
+ filesInScope: ['src/lib/**/hooks*', 'src/commands/hooks.ts'],
418
+ timeBudgetSeconds: 300,
419
+ },
420
+ });
421
+ }
422
+ // Flow reliability agent if completion rate is dropping
423
+ const flowComparison = comparisons.find(c => c.name === 'flow_completion_rate');
424
+ if (flowComparison && flowComparison.trend === 'declining' && metrics.flow_completion_rate < 0.9) {
425
+ proposed.push({
426
+ name: 'flow-reliability',
427
+ reason: `Flow completion rate dropped to ${(metrics.flow_completion_rate * 100).toFixed(1)}%`,
428
+ triggeredBy: 'flow_completion_rate',
429
+ priority: 'medium',
430
+ config: {
431
+ metric: 'flow_completion_rate',
432
+ direction: 'maximize',
433
+ scope: 'flows',
434
+ filesInScope: ['src/lib/flows*', 'src/commands/flows.ts'],
435
+ timeBudgetSeconds: 300,
436
+ },
437
+ });
438
+ }
439
+ // Cost efficiency agent if cost per session is high
440
+ if (metrics.cost_per_session_usd > 0.50) {
441
+ proposed.push({
442
+ name: 'cost-efficiency',
443
+ reason: `Cost per session is $${metrics.cost_per_session_usd.toFixed(4)} (>$0.50 threshold)`,
444
+ triggeredBy: 'cost_per_session_usd',
445
+ priority: 'medium',
446
+ config: {
447
+ metric: 'cost_inverse',
448
+ direction: 'maximize',
449
+ scope: 'cost',
450
+ filesInScope: ['src/lib/**'],
451
+ timeBudgetSeconds: 300,
452
+ },
453
+ });
454
+ }
455
+ return proposed;
456
+ }
457
+ /**
458
+ * Write proposed agents to .jfl/agents/proposed/
459
+ */
460
+ writeProposedAgents(agents) {
461
+ const proposedDir = join(this.projectRoot, '.jfl', 'agents', 'proposed');
462
+ if (!existsSync(proposedDir)) {
463
+ mkdirSync(proposedDir, { recursive: true });
464
+ }
465
+ for (const agent of agents) {
466
+ const toml = this.generateAgentToml(agent);
467
+ const path = join(proposedDir, `${agent.name}.toml`);
468
+ writeFileSync(path, toml);
469
+ this.state.proposedAgents.push({
470
+ timestamp: new Date().toISOString(),
471
+ agent: agent.name,
472
+ status: 'proposed',
473
+ });
474
+ }
475
+ }
476
+ generateAgentToml(agent) {
477
+ return `# ${agent.name} - Auto-proposed by telemetry-agent-v2
478
+ # Reason: ${agent.reason}
479
+ # Triggered by: ${agent.triggeredBy}
480
+ # Priority: ${agent.priority}
481
+
482
+ [agent]
483
+ name = "${agent.name}"
484
+ scope = "${agent.config.scope}"
485
+ metric = "${agent.config.metric}"
486
+ direction = "${agent.config.direction}"
487
+ time_budget_seconds = ${agent.config.timeBudgetSeconds}
488
+
489
+ [eval]
490
+ script = "eval/${agent.name}.sh"
491
+ data = "eval/fixtures/${agent.name}.jsonl"
492
+
493
+ [constraints]
494
+ files_in_scope = [${agent.config.filesInScope.map(f => `"${f}"`).join(', ')}]
495
+ files_readonly = ["eval/**", "node_modules/**"]
496
+ max_file_changes = 10
497
+
498
+ [policy]
499
+ embedding_model = "stratus-x1ac-base-claude-sonnet-4-6"
500
+ exploration_rate = 0.2
501
+ decay_per_round = 0.01
502
+ min_exploration = 0.05
503
+
504
+ [context_scope]
505
+ produces = ["${agent.config.scope}:improved"]
506
+ consumes = []
507
+ `;
508
+ }
509
+ /**
510
+ * Analyze ALL data sources — platform telemetry + local data — for product improvement insights
511
+ */
512
+ async analyzeProduct(platformDigest) {
513
+ const insights = [];
514
+ const claudeMdUpdates = [];
515
+ const staleDocs = [];
516
+ const trainingGaps = [];
517
+ // ══════════════════════════════════════════════════════════════════
518
+ // PLATFORM TELEMETRY — the real shit from the database
519
+ // ══════════════════════════════════════════════════════════════════
520
+ // Fetch digests if not provided
521
+ const digest24h = platformDigest || await this.fetchDigest(24);
522
+ const digest7d = await this.fetchDigest(168);
523
+ let platformMetrics = null;
524
+ if (digest24h) {
525
+ platformMetrics = {};
526
+ // ── Command performance analysis ──
527
+ const slowCommands = digest24h.commands.filter(c => c.p90DurationMs > 1000);
528
+ if (slowCommands.length > 0) {
529
+ insights.push({
530
+ type: 'performance', severity: 'warning',
531
+ title: `${slowCommands.length} slow commands (p90 > 1s)`,
532
+ detail: slowCommands.map(c => `${c.command}: p90=${c.p90DurationMs}ms, avg=${c.avgDurationMs}ms (${c.count} calls)`).join('; ')
533
+ });
534
+ }
535
+ const failingCommands = digest24h.commands.filter(c => c.successRate < 0.9 && c.count >= 3);
536
+ if (failingCommands.length > 0) {
537
+ insights.push({
538
+ type: 'performance', severity: 'critical',
539
+ title: `${failingCommands.length} unreliable commands (<90% success)`,
540
+ detail: failingCommands.map(c => `${c.command}: ${(c.successRate * 100).toFixed(0)}% success, ${c.errorCount} errors out of ${c.count}`).join('; ')
541
+ });
542
+ }
543
+ // ── Which command is used most? That's what to optimize first ──
544
+ const sorted = [...digest24h.commands].sort((a, b) => b.count - a.count);
545
+ if (sorted.length > 0) {
546
+ platformMetrics.mostUsedCommand = sorted[0].command;
547
+ platformMetrics.mostUsedCount = sorted[0].count;
548
+ platformMetrics.leastUsedCommand = sorted[sorted.length - 1].command;
549
+ platformMetrics.leastUsedCount = sorted[sorted.length - 1].count;
550
+ }
551
+ // ── Error cluster analysis ──
552
+ if (digest24h.errorClusters.length > 0) {
553
+ const growingErrors = digest24h.errorClusters.filter(e => e.count >= 3);
554
+ if (growingErrors.length > 0) {
555
+ insights.push({
556
+ type: 'system', severity: 'critical',
557
+ title: `${growingErrors.length} recurring error clusters`,
558
+ detail: growingErrors.map(e => `[${e.errorType}] "${e.message}" — ${e.count}x across ${e.affectedInstalls} install(s), last seen ${e.lastSeen}`).join('\n')
559
+ });
560
+ }
561
+ platformMetrics.errorClusters = digest24h.errorClusters.length;
562
+ platformMetrics.totalErrors = digest24h.totalErrors;
563
+ }
564
+ // ── Cost analysis ──
565
+ if (digest24h.modelCosts.length > 0) {
566
+ const totalCost = digest24h.totalCostUsd;
567
+ const costPerSession = digest24h.costPerSessionUsd;
568
+ platformMetrics.totalCost24h = totalCost;
569
+ platformMetrics.costPerSession = costPerSession;
570
+ // Which model burns the most?
571
+ const sortedCosts = [...digest24h.modelCosts].sort((a, b) => b.estimatedCostUsd - a.estimatedCostUsd);
572
+ const topCostModel = sortedCosts[0];
573
+ if (topCostModel && topCostModel.estimatedCostUsd > 0.10) {
574
+ insights.push({
575
+ type: 'performance', severity: 'info',
576
+ title: `Top cost: ${topCostModel.model} ($${topCostModel.estimatedCostUsd.toFixed(4)})`,
577
+ detail: `${topCostModel.callCount} calls, ${topCostModel.totalTokens} tokens. Total 24h cost: $${totalCost.toFixed(4)} across ${digest24h.totalSessions} sessions ($${costPerSession.toFixed(4)}/session).`
578
+ });
579
+ }
580
+ // Cost trend: compare 24h vs 7d average
581
+ if (digest7d && digest7d.totalCostUsd > 0) {
582
+ const dailyAvg7d = digest7d.totalCostUsd / 7;
583
+ const costTrend = totalCost / dailyAvg7d;
584
+ if (costTrend > 1.5) {
585
+ insights.push({
586
+ type: 'performance', severity: 'warning',
587
+ title: `Cost spike: ${(costTrend * 100).toFixed(0)}% of 7-day daily average`,
588
+ detail: `24h cost: $${totalCost.toFixed(4)} vs 7d daily avg: $${dailyAvg7d.toFixed(4)}. Check for runaway sessions or expensive model upgrades.`
589
+ });
590
+ }
591
+ platformMetrics.costTrend = costTrend;
592
+ }
593
+ }
594
+ // ── Session health ──
595
+ if (digest24h.sessionHealth.crashRate > 0.05) {
596
+ insights.push({
597
+ type: 'system', severity: 'critical',
598
+ title: `Session crash rate: ${(digest24h.sessionHealth.crashRate * 100).toFixed(1)}%`,
599
+ detail: `${digest24h.sessionHealth.crashed} crashed out of ${digest24h.sessionHealth.started} started. Avg session duration: ${digest24h.sessionHealth.avgDurationS.toFixed(0)}s.`
600
+ });
601
+ }
602
+ platformMetrics.sessionCrashRate = digest24h.sessionHealth.crashRate;
603
+ platformMetrics.avgSessionDuration = digest24h.sessionHealth.avgDurationS;
604
+ // ── Hub health ──
605
+ if (digest24h.hubHealth.crashes > 0) {
606
+ insights.push({
607
+ type: 'system', severity: 'warning',
608
+ title: `Hub crashed ${digest24h.hubHealth.crashes}x in 24h`,
609
+ detail: `${digest24h.hubHealth.starts} starts, ${digest24h.hubHealth.stops} stops, ${digest24h.hubHealth.crashes} crashes. MCP latency: avg=${digest24h.hubHealth.avgMcpLatencyMs}ms p90=${digest24h.hubHealth.p90McpLatencyMs}ms.`
610
+ });
611
+ }
612
+ if (digest24h.hubHealth.p90McpLatencyMs > 500) {
613
+ insights.push({
614
+ type: 'performance', severity: 'warning',
615
+ title: `MCP p90 latency: ${digest24h.hubHealth.p90McpLatencyMs}ms`,
616
+ detail: `Context hub MCP calls are slow. Avg: ${digest24h.hubHealth.avgMcpLatencyMs}ms, p90: ${digest24h.hubHealth.p90McpLatencyMs}ms, p99: ${digest24h.hubHealth.p99McpLatencyMs}ms.`
617
+ });
618
+ }
619
+ // ── Hook coverage ──
620
+ if (digest24h.hookStats.totalReceived > 0 && digest24h.hookStats.fileHotspots.length > 0) {
621
+ const hotFiles = digest24h.hookStats.fileHotspots.slice(0, 5);
622
+ platformMetrics.fileHotspots = hotFiles;
623
+ insights.push({
624
+ type: 'product', severity: 'info',
625
+ title: `File hotspots (most edited)`,
626
+ detail: hotFiles.map(f => `${f.file}: ${f.edits} edits`).join(', ')
627
+ });
628
+ }
629
+ // ── Tool usage patterns ──
630
+ if (digest24h.toolStats.length > 0) {
631
+ const unusedTools = digest24h.toolStats.filter(t => t.callCount === 0);
632
+ const errorProneTools = digest24h.toolStats.filter(t => t.errorRate > 0.1 && t.callCount >= 5);
633
+ if (errorProneTools.length > 0) {
634
+ insights.push({
635
+ type: 'system', severity: 'warning',
636
+ title: `${errorProneTools.length} MCP tools with >10% error rate`,
637
+ detail: errorProneTools.map(t => `${t.toolName}: ${(t.errorRate * 100).toFixed(0)}% errors, ${t.callCount} calls`).join('; ')
638
+ });
639
+ }
640
+ platformMetrics.totalToolCalls = digest24h.toolStats.reduce((sum, t) => sum + t.callCount, 0);
641
+ }
642
+ // ── Flow health ──
643
+ if (digest24h.flowStats.completionRate < 0.8 && digest24h.flowStats.triggered >= 5) {
644
+ insights.push({
645
+ type: 'system', severity: 'warning',
646
+ title: `Flow completion rate: ${(digest24h.flowStats.completionRate * 100).toFixed(0)}%`,
647
+ detail: `${digest24h.flowStats.completed}/${digest24h.flowStats.triggered} flows completed. ${digest24h.flowStats.failed} failed.`
648
+ });
649
+ }
650
+ // ── Session cost outliers ──
651
+ if (digest24h.sessionCosts.length > 0) {
652
+ const avgCost = digest24h.totalCostUsd / digest24h.sessionCosts.length;
653
+ const expensive = digest24h.sessionCosts.filter(s => s.estimatedCostUsd > avgCost * 3);
654
+ if (expensive.length > 0) {
655
+ insights.push({
656
+ type: 'performance', severity: 'info',
657
+ title: `${expensive.length} expensive sessions (>3x avg cost)`,
658
+ detail: expensive.map(s => `Session ${s.sessionId.slice(0, 8)}: $${s.estimatedCostUsd.toFixed(4)}, ${s.durationS}s, ${s.totalTokens} tokens`).join('; ')
659
+ });
660
+ }
661
+ }
662
+ platformMetrics.totalEvents24h = digest24h.totalEvents;
663
+ platformMetrics.totalSessions24h = digest24h.totalSessions;
664
+ platformMetrics.activeInstalls = digest24h.activeInstalls;
665
+ platformMetrics.commandSuccessRate = digest24h.commandSuccessRate;
666
+ }
667
+ // ══════════════════════════════════════════════════════════════════
668
+ // LOCAL DATA — journals, MAP events, training buffer, agent configs
669
+ // ══════════════════════════════════════════════════════════════════
670
+ // 1. Read MAP events
671
+ const eventsPath = join(this.projectRoot, '.jfl', 'map-events.jsonl');
672
+ let recentEvents = [];
673
+ if (existsSync(eventsPath)) {
674
+ const lines = readFileSync(eventsPath, 'utf-8').trim().split('\n').slice(-200);
675
+ for (const line of lines) {
676
+ try {
677
+ recentEvents.push(JSON.parse(line));
678
+ }
679
+ catch { }
680
+ }
681
+ }
682
+ const eventTypes = new Map();
683
+ for (const e of recentEvents) {
684
+ eventTypes.set(e.type, (eventTypes.get(e.type) || 0) + 1);
685
+ }
686
+ // 2. Read journals
687
+ const journalDir = join(this.projectRoot, '.jfl', 'journal');
688
+ let recentJournalEntries = [];
689
+ if (existsSync(journalDir)) {
690
+ const files = readdirSync(journalDir).filter(f => f.endsWith('.jsonl')).sort().slice(-5);
691
+ for (const f of files) {
692
+ const lines = readFileSync(join(journalDir, f), 'utf-8').trim().split('\n');
693
+ for (const line of lines) {
694
+ try {
695
+ recentJournalEntries.push(JSON.parse(line));
696
+ }
697
+ catch { }
698
+ }
699
+ }
700
+ }
701
+ // 3. Training buffer analysis
702
+ const bufferPath = join(this.projectRoot, '.jfl', 'training-buffer.jsonl');
703
+ let tupleCount = 0;
704
+ let improvedCount = 0;
705
+ let tuplesWithDiffs = 0;
706
+ let agentDistribution = new Map();
707
+ if (existsSync(bufferPath)) {
708
+ const lines = readFileSync(bufferPath, 'utf-8').trim().split('\n');
709
+ tupleCount = lines.length;
710
+ for (const line of lines.slice(-100)) {
711
+ try {
712
+ const t = JSON.parse(line);
713
+ agentDistribution.set(t.agent || 'unknown', (agentDistribution.get(t.agent || 'unknown') || 0) + 1);
714
+ if (t.reward?.improved)
715
+ improvedCount++;
716
+ if (t.action?.code_diff)
717
+ tuplesWithDiffs++;
718
+ }
719
+ catch { }
720
+ }
721
+ }
722
+ // 4. Agent configs
723
+ const agentDir = join(this.projectRoot, '.jfl', 'agents');
724
+ const agentConfigs = [];
725
+ if (existsSync(agentDir)) {
726
+ for (const f of readdirSync(agentDir).filter(f => f.endsWith('.toml'))) {
727
+ agentConfigs.push(f.replace('.toml', ''));
728
+ }
729
+ }
730
+ // 5. Product context freshness
731
+ const contextPath = join(this.projectRoot, '.jfl', 'product-context.md');
732
+ let contextAge = 999;
733
+ if (existsSync(contextPath)) {
734
+ const stat = spawnSync('stat', ['-f', '%m', contextPath], { encoding: 'utf-8' });
735
+ if (stat.stdout) {
736
+ contextAge = Math.floor((Date.now() / 1000 - parseInt(stat.stdout.trim())) / 3600);
737
+ }
738
+ }
739
+ // 6. CLAUDE.md drift detection
740
+ const claudeMdPath = join(this.projectRoot, 'CLAUDE.md');
741
+ let claudeMdContent = '';
742
+ if (existsSync(claudeMdPath)) {
743
+ claudeMdContent = readFileSync(claudeMdPath, 'utf-8');
744
+ }
745
+ // 7. Dashboard telemetry from local events
746
+ const dashboardEvents = recentEvents.filter(e => e.type.startsWith('dashboard:'));
747
+ const pageViews = new Map();
748
+ for (const e of dashboardEvents) {
749
+ if (e.type === 'dashboard:page-view' && e.data?.page) {
750
+ const page = String(e.data.page);
751
+ pageViews.set(page, (pageViews.get(page) || 0) + 1);
752
+ }
753
+ }
754
+ // ══════════════════════════════════════════════════════════════════
755
+ // LOCAL INSIGHTS
756
+ // ══════════════════════════════════════════════════════════════════
757
+ // Training data health
758
+ if (tupleCount < 100) {
759
+ insights.push({ type: 'training', severity: 'warning', title: 'Low training data', detail: `Only ${tupleCount} tuples in buffer. Need 500+ for meaningful policy head training. Run: jfl eval mine --all` });
760
+ }
761
+ if (tupleCount > 100 && improvedCount === 0) {
762
+ insights.push({ type: 'training', severity: 'critical', title: 'No improvements in recent tuples', detail: `Last 100 tuples have 0 improvements. Agents may be stuck or metrics are wrong.` });
763
+ }
764
+ if (tupleCount > 0 && tuplesWithDiffs === 0) {
765
+ insights.push({ type: 'training', severity: 'info', title: 'No code diffs in training data', detail: `${tupleCount} tuples but none have code_diff attached. Run autoresearch to generate diff-enriched tuples for code-policy training.` });
766
+ }
767
+ trainingGaps.push(`Buffer: ${tupleCount} tuples, ${improvedCount}/100 recent improved, ${tuplesWithDiffs} with code diffs`);
768
+ trainingGaps.push(`Agent distribution: ${[...agentDistribution].map(([k, v]) => `${k}=${v}`).join(', ')}`);
769
+ if (contextAge > 24) {
770
+ insights.push({ type: 'product', severity: 'warning', title: 'Product context stale', detail: `Product context is ${contextAge}h old. Run: jfl peter synthesize` });
771
+ }
772
+ if (recentEvents.length < 10) {
773
+ insights.push({ type: 'system', severity: 'warning', title: 'Low event flow', detail: `Only ${recentEvents.length} recent events. Context hub may not be running.` });
774
+ }
775
+ const recentJournals = recentJournalEntries.filter(j => {
776
+ const age = Date.now() - new Date(j.ts).getTime();
777
+ return age < 24 * 60 * 60 * 1000;
778
+ });
779
+ if (recentJournals.length === 0) {
780
+ insights.push({ type: 'product', severity: 'info', title: 'No journal entries in 24h', detail: 'No sessions have produced journal entries recently. System may be idle.' });
781
+ }
782
+ const agentsWithTuples = new Set([...agentDistribution.keys()]);
783
+ const agentsWithoutData = agentConfigs.filter(a => !agentsWithTuples.has(a));
784
+ if (agentsWithoutData.length > 0) {
785
+ insights.push({ type: 'training', severity: 'info', title: 'Agents with no training data', detail: `${agentsWithoutData.join(', ')} have never produced tuples. Run autoresearch for them.` });
786
+ }
787
+ if (pageViews.size > 0) {
788
+ const sorted = [...pageViews].sort((a, b) => b[1] - a[1]);
789
+ insights.push({ type: 'product', severity: 'info', title: 'Dashboard usage', detail: `Most visited: ${sorted[0][0]} (${sorted[0][1]}x). Least visited: ${sorted[sorted.length - 1][0]} (${sorted[sorted.length - 1][1]}x).` });
790
+ }
791
+ // CLAUDE.md drift
792
+ const servicesPath = join(this.projectRoot, '.jfl', 'services.json');
793
+ if (existsSync(servicesPath)) {
794
+ try {
795
+ const services = JSON.parse(readFileSync(servicesPath, 'utf-8'));
796
+ const serviceNames = (services.services || services || []).map((s) => s.name || s).filter(Boolean);
797
+ for (const svc of serviceNames) {
798
+ if (!claudeMdContent.includes(svc)) {
799
+ claudeMdUpdates.push(`Service "${svc}" is registered but not mentioned in CLAUDE.md`);
800
+ }
801
+ }
802
+ }
803
+ catch { }
804
+ }
805
+ for (const agent of agentConfigs) {
806
+ if (!claudeMdContent.includes(agent)) {
807
+ claudeMdUpdates.push(`Agent "${agent}" exists in .jfl/agents/ but not mentioned in CLAUDE.md`);
808
+ }
809
+ }
810
+ // Stale docs
811
+ const knowledgeDir = join(this.projectRoot, 'knowledge');
812
+ if (existsSync(knowledgeDir)) {
813
+ const checkDir = (dir, prefix) => {
814
+ if (!existsSync(dir))
815
+ return;
816
+ for (const f of readdirSync(dir)) {
817
+ const full = join(dir, f);
818
+ const stat2 = spawnSync('stat', ['-f', '%m', full], { encoding: 'utf-8' });
819
+ if (f.endsWith('.md') && stat2.stdout) {
820
+ const age = Math.floor((Date.now() / 1000 - parseInt(stat2.stdout.trim())) / (3600 * 24));
821
+ if (age > 14)
822
+ staleDocs.push(`${prefix}${f} (${age} days old)`);
823
+ }
824
+ }
825
+ };
826
+ checkDir(knowledgeDir, '');
827
+ checkDir(join(knowledgeDir, 'research'), 'research/');
828
+ }
829
+ // Write insights to journal
830
+ if (insights.length > 0) {
831
+ const journalPath2 = join(this.projectRoot, '.jfl', 'journal');
832
+ if (existsSync(journalPath2)) {
833
+ const files = readdirSync(journalPath2).filter(f => f.endsWith('.jsonl')).sort();
834
+ const latest = files[files.length - 1];
835
+ if (latest) {
836
+ const entry = {
837
+ v: 2, ts: new Date().toISOString(), session: 'telemetry-agent',
838
+ type: 'discovery', status: 'complete',
839
+ title: `Product analysis: ${insights.length} insights (${insights.filter(i => i.severity === 'critical').length} critical)`,
840
+ summary: insights.map(i => `[${i.severity}] ${i.title}`).join('; '),
841
+ detail: JSON.stringify({ insights, claudeMdUpdates, staleDocs, trainingGaps, platformMetrics }),
842
+ };
843
+ appendFileSync(join(journalPath2, latest), '\n' + JSON.stringify(entry));
844
+ }
845
+ }
846
+ }
847
+ // Emit event
848
+ this.emitEvent('telemetry:product-analysis', {
849
+ insightCount: insights.length,
850
+ criticalCount: insights.filter(i => i.severity === 'critical').length,
851
+ warningCount: insights.filter(i => i.severity === 'warning').length,
852
+ claudeMdUpdates: claudeMdUpdates.length,
853
+ staleDocs: staleDocs.length,
854
+ trainingGaps: trainingGaps.length,
855
+ tupleCount,
856
+ tuplesWithDiffs,
857
+ improvedRate: tupleCount > 0 ? (improvedCount / Math.min(100, tupleCount)) : 0,
858
+ contextAgeH: contextAge,
859
+ hasPlatformData: !!digest24h,
860
+ }, 'telemetry-agent-v2');
861
+ return { insights, claudeMdUpdates, staleDocs, trainingGaps, platformMetrics };
862
+ }
863
+ /**
864
+ * Run the telemetry agent
865
+ */
866
+ async run() {
867
+ const now = new Date().toISOString();
868
+ // Fetch 24h and 7d digests
869
+ const [digest24h, digest7d] = await Promise.all([
870
+ this.fetchDigest(24),
871
+ this.fetchDigest(168), // 7 days
872
+ ]);
873
+ if (!digest24h) {
874
+ // Even without platform digest, run local product analysis
875
+ let localAnalysis = null;
876
+ try {
877
+ localAnalysis = await this.analyzeProduct(null);
878
+ }
879
+ catch { }
880
+ return {
881
+ digest24h: null,
882
+ digest7d: null,
883
+ metrics: null,
884
+ comparisons: [],
885
+ proposedAgents: [],
886
+ alerts: [],
887
+ wins: [],
888
+ productAnalysis: localAnalysis,
889
+ };
890
+ }
891
+ // Extract metrics
892
+ const metrics = this.extractMetrics(digest24h);
893
+ // Compare to previous run
894
+ const comparisons = this.compareMetrics(metrics);
895
+ // Identify alerts and wins
896
+ const alerts = comparisons.filter(c => c.isAlert);
897
+ const wins = comparisons.filter(c => c.isWin);
898
+ // Generate training tuple
899
+ this.generateTrainingTuple(digest24h, metrics, comparisons);
900
+ // Propose agents based on metrics
901
+ const proposedAgents = this.proposeAgents(metrics, comparisons);
902
+ if (proposedAgents.length > 0) {
903
+ this.writeProposedAgents(proposedAgents);
904
+ }
905
+ // Update health trajectory
906
+ const healthScore = metrics.command_success_rate * (1 - metrics.session_crash_rate);
907
+ this.state.healthTrajectory.push(healthScore);
908
+ if (this.state.healthTrajectory.length > 50) {
909
+ this.state.healthTrajectory = this.state.healthTrajectory.slice(-50);
910
+ }
911
+ // Emit events
912
+ this.emitEvent('telemetry:digest-analyzed', {
913
+ timestamp: now,
914
+ metrics,
915
+ alerts: alerts.length,
916
+ wins: wins.length,
917
+ proposed_agents: proposedAgents.length,
918
+ }, 'telemetry-agent-v2');
919
+ for (const alert of alerts) {
920
+ this.emitEvent('telemetry:metric-alert', {
921
+ metric: alert.name,
922
+ current: alert.current,
923
+ previous: alert.previous,
924
+ delta: alert.delta,
925
+ percentChange: alert.percentChange,
926
+ }, 'telemetry-agent-v2');
927
+ }
928
+ for (const agent of proposedAgents) {
929
+ this.emitEvent('telemetry:agent-proposed', {
930
+ agent: agent.name,
931
+ reason: agent.reason,
932
+ triggeredBy: agent.triggeredBy,
933
+ priority: agent.priority,
934
+ }, 'telemetry-agent-v2');
935
+ }
936
+ // Run product analysis (platform telemetry + local data)
937
+ let productAnalysis = null;
938
+ try {
939
+ productAnalysis = await this.analyzeProduct(digest24h);
940
+ if (productAnalysis.insights.length > 0) {
941
+ console.log(` Product analysis: ${productAnalysis.insights.length} insights`);
942
+ for (const insight of productAnalysis.insights) {
943
+ console.log(` [${insight.severity}] ${insight.title}`);
944
+ }
945
+ }
946
+ if (productAnalysis.claudeMdUpdates.length > 0) {
947
+ console.log(` CLAUDE.md drift: ${productAnalysis.claudeMdUpdates.length} items need updating`);
948
+ }
949
+ if (productAnalysis.staleDocs.length > 0) {
950
+ console.log(` Stale docs: ${productAnalysis.staleDocs.join(', ')}`);
951
+ }
952
+ }
953
+ catch (err) {
954
+ console.error(` Product analysis failed: ${err.message}`);
955
+ }
956
+ // Save state
957
+ this.state.lastRun = now;
958
+ this.state.runCount++;
959
+ this.state.previousDigest = {
960
+ timestamp: now,
961
+ metrics: metrics,
962
+ };
963
+ this.saveState();
964
+ return {
965
+ digest24h,
966
+ digest7d,
967
+ metrics,
968
+ comparisons,
969
+ proposedAgents,
970
+ alerts,
971
+ wins,
972
+ productAnalysis,
973
+ };
974
+ }
975
+ /**
976
+ * Get current metrics (cached from last run or fetch fresh)
977
+ */
978
+ async getMetrics() {
979
+ const digest = await this.fetchDigest(24);
980
+ if (!digest)
981
+ return null;
982
+ return this.extractMetrics(digest);
983
+ }
984
+ /**
985
+ * Helper to get recent commits
986
+ */
987
+ getRecentCommits() {
988
+ try {
989
+ const result = spawnSync('git', ['log', '--oneline', '-10', '--pretty=format:%s'], {
990
+ cwd: this.projectRoot,
991
+ encoding: 'utf-8',
992
+ stdio: 'pipe',
993
+ });
994
+ if (result.status !== 0)
995
+ return [];
996
+ return (result.stdout || '').split('\n').filter(Boolean);
997
+ }
998
+ catch {
999
+ return [];
1000
+ }
1001
+ }
1002
+ /**
1003
+ * Helper to get recent changed files
1004
+ */
1005
+ getRecentChangedFiles() {
1006
+ try {
1007
+ const result = spawnSync('git', ['diff', '--name-only', 'HEAD~5..HEAD'], {
1008
+ cwd: this.projectRoot,
1009
+ encoding: 'utf-8',
1010
+ stdio: 'pipe',
1011
+ });
1012
+ if (result.status !== 0)
1013
+ return [];
1014
+ return (result.stdout || '').split('\n').filter(Boolean).slice(0, 20);
1015
+ }
1016
+ catch {
1017
+ return [];
1018
+ }
1019
+ }
1020
+ /**
1021
+ * Helper to get current branch
1022
+ */
1023
+ getCurrentBranch() {
1024
+ try {
1025
+ const result = spawnSync('git', ['branch', '--show-current'], {
1026
+ cwd: this.projectRoot,
1027
+ encoding: 'utf-8',
1028
+ stdio: 'pipe',
1029
+ });
1030
+ return (result.stdout || '').trim() || 'main';
1031
+ }
1032
+ catch {
1033
+ return 'main';
1034
+ }
1035
+ }
1036
+ /**
1037
+ * Get agent status
1038
+ */
1039
+ getStatus() {
1040
+ return this.state;
1041
+ }
1042
+ }
1043
+ //# sourceMappingURL=telemetry-agent-v2.js.map