jfl 0.4.4 → 0.5.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 (427) hide show
  1. package/dist/commands/context-hub.d.ts.map +1 -1
  2. package/dist/commands/context-hub.js +818 -39
  3. package/dist/commands/context-hub.js.map +1 -1
  4. package/dist/commands/eval.d.ts +1 -1
  5. package/dist/commands/eval.d.ts.map +1 -1
  6. package/dist/commands/eval.js +192 -1
  7. package/dist/commands/eval.js.map +1 -1
  8. package/dist/commands/findings.d.ts +6 -0
  9. package/dist/commands/findings.d.ts.map +1 -0
  10. package/dist/commands/findings.js +203 -0
  11. package/dist/commands/findings.js.map +1 -0
  12. package/dist/commands/hud.d.ts.map +1 -1
  13. package/dist/commands/hud.js +47 -9
  14. package/dist/commands/hud.js.map +1 -1
  15. package/dist/commands/ide.d.ts +27 -0
  16. package/dist/commands/ide.d.ts.map +1 -0
  17. package/dist/commands/ide.js +546 -0
  18. package/dist/commands/ide.js.map +1 -0
  19. package/dist/commands/onboard.d.ts.map +1 -1
  20. package/dist/commands/onboard.js +212 -2
  21. package/dist/commands/onboard.js.map +1 -1
  22. package/dist/commands/openclaw.d.ts +3 -0
  23. package/dist/commands/openclaw.d.ts.map +1 -1
  24. package/dist/commands/openclaw.js +76 -2
  25. package/dist/commands/openclaw.js.map +1 -1
  26. package/dist/commands/peter.d.ts +1 -0
  27. package/dist/commands/peter.d.ts.map +1 -1
  28. package/dist/commands/peter.js +935 -15
  29. package/dist/commands/peter.js.map +1 -1
  30. package/dist/commands/pi-fleet.d.ts +18 -0
  31. package/dist/commands/pi-fleet.d.ts.map +1 -0
  32. package/dist/commands/pi-fleet.js +382 -0
  33. package/dist/commands/pi-fleet.js.map +1 -0
  34. package/dist/commands/pi.d.ts.map +1 -1
  35. package/dist/commands/pi.js +18 -3
  36. package/dist/commands/pi.js.map +1 -1
  37. package/dist/commands/scope.d.ts.map +1 -1
  38. package/dist/commands/scope.js +90 -1
  39. package/dist/commands/scope.js.map +1 -1
  40. package/dist/commands/services.d.ts.map +1 -1
  41. package/dist/commands/services.js +18 -0
  42. package/dist/commands/services.js.map +1 -1
  43. package/dist/commands/status.d.ts.map +1 -1
  44. package/dist/commands/status.js +22 -4
  45. package/dist/commands/status.js.map +1 -1
  46. package/dist/commands/viz.d.ts.map +1 -1
  47. package/dist/commands/viz.js +417 -0
  48. package/dist/commands/viz.js.map +1 -1
  49. package/dist/dashboard-static/assets/index-B6b867Pv.js +121 -0
  50. package/dist/dashboard-static/assets/index-Y4BrqxV-.css +1 -0
  51. package/dist/dashboard-static/index.html +2 -2
  52. package/dist/index.js +225 -61
  53. package/dist/index.js.map +1 -1
  54. package/dist/lib/agent-config.d.ts +52 -0
  55. package/dist/lib/agent-config.d.ts.map +1 -0
  56. package/dist/lib/agent-config.js +231 -0
  57. package/dist/lib/agent-config.js.map +1 -0
  58. package/dist/lib/agent-generator.d.ts +10 -0
  59. package/dist/lib/agent-generator.d.ts.map +1 -1
  60. package/dist/lib/agent-generator.js +64 -10
  61. package/dist/lib/agent-generator.js.map +1 -1
  62. package/dist/lib/agent-session.d.ts +104 -0
  63. package/dist/lib/agent-session.d.ts.map +1 -0
  64. package/dist/lib/agent-session.js +627 -0
  65. package/dist/lib/agent-session.js.map +1 -0
  66. package/dist/lib/eval-snapshot.d.ts +47 -0
  67. package/dist/lib/eval-snapshot.d.ts.map +1 -0
  68. package/dist/lib/eval-snapshot.js +315 -0
  69. package/dist/lib/eval-snapshot.js.map +1 -0
  70. package/dist/lib/eval-store.d.ts +5 -0
  71. package/dist/lib/eval-store.d.ts.map +1 -1
  72. package/dist/lib/eval-store.js +33 -3
  73. package/dist/lib/eval-store.js.map +1 -1
  74. package/dist/lib/findings-engine.d.ts +51 -0
  75. package/dist/lib/findings-engine.d.ts.map +1 -0
  76. package/dist/lib/findings-engine.js +338 -0
  77. package/dist/lib/findings-engine.js.map +1 -0
  78. package/dist/lib/flow-engine.d.ts +8 -0
  79. package/dist/lib/flow-engine.d.ts.map +1 -1
  80. package/dist/lib/flow-engine.js +84 -2
  81. package/dist/lib/flow-engine.js.map +1 -1
  82. package/dist/lib/hub-client.d.ts +1 -0
  83. package/dist/lib/hub-client.d.ts.map +1 -1
  84. package/dist/lib/hub-client.js +33 -6
  85. package/dist/lib/hub-client.js.map +1 -1
  86. package/dist/lib/ide-panes.d.ts +58 -0
  87. package/dist/lib/ide-panes.d.ts.map +1 -0
  88. package/dist/lib/ide-panes.js +508 -0
  89. package/dist/lib/ide-panes.js.map +1 -0
  90. package/dist/lib/memory-db.js +4 -4
  91. package/dist/lib/memory-db.js.map +1 -1
  92. package/dist/lib/memory-indexer.d.ts.map +1 -1
  93. package/dist/lib/memory-indexer.js +3 -0
  94. package/dist/lib/memory-indexer.js.map +1 -1
  95. package/dist/lib/memory-search.d.ts +148 -4
  96. package/dist/lib/memory-search.d.ts.map +1 -1
  97. package/dist/lib/memory-search.js +496 -58
  98. package/dist/lib/memory-search.js.map +1 -1
  99. package/dist/lib/meta-orchestrator.d.ts +104 -0
  100. package/dist/lib/meta-orchestrator.d.ts.map +1 -0
  101. package/dist/lib/meta-orchestrator.js +373 -0
  102. package/dist/lib/meta-orchestrator.js.map +1 -0
  103. package/dist/lib/peer-agent-generator.d.ts.map +1 -1
  104. package/dist/lib/peer-agent-generator.js +43 -19
  105. package/dist/lib/peer-agent-generator.js.map +1 -1
  106. package/dist/lib/policy-head.d.ts +25 -0
  107. package/dist/lib/policy-head.d.ts.map +1 -0
  108. package/dist/lib/policy-head.js +136 -0
  109. package/dist/lib/policy-head.js.map +1 -0
  110. package/dist/lib/replay-buffer.d.ts +93 -0
  111. package/dist/lib/replay-buffer.d.ts.map +1 -0
  112. package/dist/lib/replay-buffer.js +302 -0
  113. package/dist/lib/replay-buffer.js.map +1 -0
  114. package/dist/lib/sentinel-rl.d.ts +97 -0
  115. package/dist/lib/sentinel-rl.d.ts.map +1 -0
  116. package/dist/lib/sentinel-rl.js +430 -0
  117. package/dist/lib/sentinel-rl.js.map +1 -0
  118. package/dist/lib/session-lock.d.ts +61 -0
  119. package/dist/lib/session-lock.d.ts.map +1 -0
  120. package/dist/lib/session-lock.js +438 -0
  121. package/dist/lib/session-lock.js.map +1 -0
  122. package/dist/lib/stratus-client.d.ts +1 -0
  123. package/dist/lib/stratus-client.d.ts.map +1 -1
  124. package/dist/lib/stratus-client.js +24 -2
  125. package/dist/lib/stratus-client.js.map +1 -1
  126. package/dist/lib/telemetry-agent-v2.d.ts +128 -0
  127. package/dist/lib/telemetry-agent-v2.d.ts.map +1 -0
  128. package/dist/lib/telemetry-agent-v2.js +1042 -0
  129. package/dist/lib/telemetry-agent-v2.js.map +1 -0
  130. package/dist/lib/telemetry-agent.d.ts.map +1 -1
  131. package/dist/lib/telemetry-agent.js +27 -6
  132. package/dist/lib/telemetry-agent.js.map +1 -1
  133. package/dist/lib/telemetry-digest.d.ts.map +1 -1
  134. package/dist/lib/telemetry-digest.js +27 -5
  135. package/dist/lib/telemetry-digest.js.map +1 -1
  136. package/dist/lib/telemetry.d.ts.map +1 -1
  137. package/dist/lib/telemetry.js +29 -4
  138. package/dist/lib/telemetry.js.map +1 -1
  139. package/dist/lib/text-preprocessing.d.ts +83 -0
  140. package/dist/lib/text-preprocessing.d.ts.map +1 -0
  141. package/dist/lib/text-preprocessing.js +261 -0
  142. package/dist/lib/text-preprocessing.js.map +1 -0
  143. package/dist/lib/training-buffer.d.ts +86 -0
  144. package/dist/lib/training-buffer.d.ts.map +1 -0
  145. package/dist/lib/training-buffer.js +139 -0
  146. package/dist/lib/training-buffer.js.map +1 -0
  147. package/dist/lib/tuple-miner.d.ts +30 -0
  148. package/dist/lib/tuple-miner.d.ts.map +1 -0
  149. package/dist/lib/tuple-miner.js +427 -0
  150. package/dist/lib/tuple-miner.js.map +1 -0
  151. package/dist/lib/vm-backend.d.ts +72 -0
  152. package/dist/lib/vm-backend.d.ts.map +1 -0
  153. package/dist/lib/vm-backend.js +175 -0
  154. package/dist/lib/vm-backend.js.map +1 -0
  155. package/dist/lib/workspace/backend.d.ts +53 -0
  156. package/dist/lib/workspace/backend.d.ts.map +1 -0
  157. package/dist/lib/workspace/backend.js +37 -0
  158. package/dist/lib/workspace/backend.js.map +1 -0
  159. package/dist/lib/workspace/cmux-adapter.d.ts +46 -0
  160. package/dist/lib/workspace/cmux-adapter.d.ts.map +1 -0
  161. package/dist/lib/workspace/cmux-adapter.js +261 -0
  162. package/dist/lib/workspace/cmux-adapter.js.map +1 -0
  163. package/dist/lib/workspace/data-pipeline.d.ts +35 -0
  164. package/dist/lib/workspace/data-pipeline.d.ts.map +1 -0
  165. package/dist/lib/workspace/data-pipeline.js +463 -0
  166. package/dist/lib/workspace/data-pipeline.js.map +1 -0
  167. package/dist/lib/workspace/engine.d.ts +64 -0
  168. package/dist/lib/workspace/engine.d.ts.map +1 -0
  169. package/dist/lib/workspace/engine.js +397 -0
  170. package/dist/lib/workspace/engine.js.map +1 -0
  171. package/dist/lib/workspace/notifications.d.ts +14 -0
  172. package/dist/lib/workspace/notifications.d.ts.map +1 -0
  173. package/dist/lib/workspace/notifications.js +41 -0
  174. package/dist/lib/workspace/notifications.js.map +1 -0
  175. package/dist/lib/workspace/surface-registry.d.ts +49 -0
  176. package/dist/lib/workspace/surface-registry.d.ts.map +1 -0
  177. package/dist/lib/workspace/surface-registry.js +217 -0
  178. package/dist/lib/workspace/surface-registry.js.map +1 -0
  179. package/dist/lib/workspace/surface-type.d.ts +153 -0
  180. package/dist/lib/workspace/surface-type.d.ts.map +1 -0
  181. package/dist/lib/workspace/surface-type.js +9 -0
  182. package/dist/lib/workspace/surface-type.js.map +1 -0
  183. package/dist/lib/workspace/surfaces/agent-overview.d.ts +16 -0
  184. package/dist/lib/workspace/surfaces/agent-overview.d.ts.map +1 -0
  185. package/dist/lib/workspace/surfaces/agent-overview.js +116 -0
  186. package/dist/lib/workspace/surfaces/agent-overview.js.map +1 -0
  187. package/dist/lib/workspace/surfaces/agent.d.ts +16 -0
  188. package/dist/lib/workspace/surfaces/agent.d.ts.map +1 -0
  189. package/dist/lib/workspace/surfaces/agent.js +112 -0
  190. package/dist/lib/workspace/surfaces/agent.js.map +1 -0
  191. package/dist/lib/workspace/surfaces/claude.d.ts +15 -0
  192. package/dist/lib/workspace/surfaces/claude.d.ts.map +1 -0
  193. package/dist/lib/workspace/surfaces/claude.js +23 -0
  194. package/dist/lib/workspace/surfaces/claude.js.map +1 -0
  195. package/dist/lib/workspace/surfaces/dashboard.d.ts +21 -0
  196. package/dist/lib/workspace/surfaces/dashboard.d.ts.map +1 -0
  197. package/dist/lib/workspace/surfaces/dashboard.js +32 -0
  198. package/dist/lib/workspace/surfaces/dashboard.js.map +1 -0
  199. package/dist/lib/workspace/surfaces/eval.d.ts +15 -0
  200. package/dist/lib/workspace/surfaces/eval.d.ts.map +1 -0
  201. package/dist/lib/workspace/surfaces/eval.js +42 -0
  202. package/dist/lib/workspace/surfaces/eval.js.map +1 -0
  203. package/dist/lib/workspace/surfaces/event-stream.d.ts +16 -0
  204. package/dist/lib/workspace/surfaces/event-stream.d.ts.map +1 -0
  205. package/dist/lib/workspace/surfaces/event-stream.js +40 -0
  206. package/dist/lib/workspace/surfaces/event-stream.js.map +1 -0
  207. package/dist/lib/workspace/surfaces/flow.d.ts +16 -0
  208. package/dist/lib/workspace/surfaces/flow.d.ts.map +1 -0
  209. package/dist/lib/workspace/surfaces/flow.js +49 -0
  210. package/dist/lib/workspace/surfaces/flow.js.map +1 -0
  211. package/dist/lib/workspace/surfaces/index.d.ts +16 -0
  212. package/dist/lib/workspace/surfaces/index.d.ts.map +1 -0
  213. package/dist/lib/workspace/surfaces/index.js +16 -0
  214. package/dist/lib/workspace/surfaces/index.js.map +1 -0
  215. package/dist/lib/workspace/surfaces/portfolio.d.ts +16 -0
  216. package/dist/lib/workspace/surfaces/portfolio.d.ts.map +1 -0
  217. package/dist/lib/workspace/surfaces/portfolio.js +102 -0
  218. package/dist/lib/workspace/surfaces/portfolio.js.map +1 -0
  219. package/dist/lib/workspace/surfaces/service.d.ts +16 -0
  220. package/dist/lib/workspace/surfaces/service.d.ts.map +1 -0
  221. package/dist/lib/workspace/surfaces/service.js +45 -0
  222. package/dist/lib/workspace/surfaces/service.js.map +1 -0
  223. package/dist/lib/workspace/surfaces/shell.d.ts +15 -0
  224. package/dist/lib/workspace/surfaces/shell.d.ts.map +1 -0
  225. package/dist/lib/workspace/surfaces/shell.js +19 -0
  226. package/dist/lib/workspace/surfaces/shell.js.map +1 -0
  227. package/dist/lib/workspace/surfaces/telemetry.d.ts +16 -0
  228. package/dist/lib/workspace/surfaces/telemetry.d.ts.map +1 -0
  229. package/dist/lib/workspace/surfaces/telemetry.js +48 -0
  230. package/dist/lib/workspace/surfaces/telemetry.js.map +1 -0
  231. package/dist/lib/workspace/surfaces/topology.d.ts +15 -0
  232. package/dist/lib/workspace/surfaces/topology.d.ts.map +1 -0
  233. package/dist/lib/workspace/surfaces/topology.js +19 -0
  234. package/dist/lib/workspace/surfaces/topology.js.map +1 -0
  235. package/dist/lib/workspace/surfaces/training.d.ts +16 -0
  236. package/dist/lib/workspace/surfaces/training.d.ts.map +1 -0
  237. package/dist/lib/workspace/surfaces/training.js +22 -0
  238. package/dist/lib/workspace/surfaces/training.js.map +1 -0
  239. package/dist/lib/workspace/tmux-adapter.d.ts +27 -0
  240. package/dist/lib/workspace/tmux-adapter.d.ts.map +1 -0
  241. package/dist/lib/workspace/tmux-adapter.js +106 -0
  242. package/dist/lib/workspace/tmux-adapter.js.map +1 -0
  243. package/dist/mcp/context-hub-mcp.js +7 -24
  244. package/dist/mcp/context-hub-mcp.js.map +1 -1
  245. package/dist/types/flows.d.ts +2 -0
  246. package/dist/types/flows.d.ts.map +1 -1
  247. package/dist/types/ide.d.ts +49 -0
  248. package/dist/types/ide.d.ts.map +1 -0
  249. package/dist/types/ide.js +5 -0
  250. package/dist/types/ide.js.map +1 -0
  251. package/dist/types/platform-digest.d.ts +228 -0
  252. package/dist/types/platform-digest.d.ts.map +1 -0
  253. package/dist/types/platform-digest.js +5 -0
  254. package/dist/types/platform-digest.js.map +1 -0
  255. package/dist/types/telemetry-digest.d.ts +2 -0
  256. package/dist/types/telemetry-digest.d.ts.map +1 -1
  257. package/dist/utils/ensure-project.d.ts +1 -0
  258. package/dist/utils/ensure-project.d.ts.map +1 -1
  259. package/dist/utils/ensure-project.js +19 -7
  260. package/dist/utils/ensure-project.js.map +1 -1
  261. package/dist/utils/jfl-config.d.ts +1 -0
  262. package/dist/utils/jfl-config.d.ts.map +1 -1
  263. package/dist/utils/jfl-config.js +19 -1
  264. package/dist/utils/jfl-config.js.map +1 -1
  265. package/dist/utils/jfl-paths.d.ts +5 -0
  266. package/dist/utils/jfl-paths.d.ts.map +1 -1
  267. package/dist/utils/jfl-paths.js +25 -3
  268. package/dist/utils/jfl-paths.js.map +1 -1
  269. package/package.json +3 -2
  270. package/packages/pi/AGENTS.md +112 -0
  271. package/packages/pi/extensions/agent-grid.ts +191 -0
  272. package/packages/pi/extensions/agent-names.ts +178 -0
  273. package/packages/pi/extensions/autoresearch.ts +427 -0
  274. package/packages/pi/extensions/bookmarks.ts +85 -0
  275. package/packages/pi/extensions/context.ts +151 -0
  276. package/packages/pi/extensions/crm-tool.ts +61 -0
  277. package/packages/pi/extensions/eval-tool.ts +224 -0
  278. package/packages/pi/extensions/eval.ts +60 -0
  279. package/packages/pi/extensions/footer.ts +239 -0
  280. package/packages/pi/extensions/hud-tool.ts +145 -0
  281. package/packages/pi/extensions/index.ts +392 -0
  282. package/packages/pi/extensions/journal.ts +224 -0
  283. package/packages/pi/extensions/map-bridge.ts +178 -0
  284. package/packages/pi/extensions/memory-tool.ts +68 -0
  285. package/packages/pi/extensions/notifications.ts +73 -0
  286. package/packages/pi/extensions/peter-parker.ts +202 -0
  287. package/packages/pi/extensions/policy-head-tool.ts +276 -0
  288. package/packages/pi/extensions/portfolio-bridge.ts +90 -0
  289. package/packages/pi/extensions/session.ts +90 -0
  290. package/packages/pi/extensions/shortcuts.ts +259 -0
  291. package/packages/pi/extensions/stratus-bridge.ts +115 -0
  292. package/packages/pi/extensions/synopsis-tool.ts +83 -0
  293. package/packages/pi/extensions/tool-renderers.ts +352 -0
  294. package/packages/pi/extensions/training-buffer-tool.ts +368 -0
  295. package/packages/pi/extensions/types.ts +163 -0
  296. package/packages/pi/package-lock.json +346 -0
  297. package/packages/pi/package.json +44 -0
  298. package/packages/pi/skills/agent-browser/SKILL.md +116 -0
  299. package/packages/pi/skills/brand-architect/SKILL.md +240 -0
  300. package/packages/pi/skills/brand-architect/config.yaml +137 -0
  301. package/packages/pi/skills/campaign-hud/config.yaml +112 -0
  302. package/packages/pi/skills/content-creator/SKILL.md +294 -0
  303. package/packages/pi/skills/context/SKILL.md +65 -0
  304. package/packages/pi/skills/debug/MULTI_AGENT.md +360 -0
  305. package/packages/pi/skills/debug/SKILL.md +554 -0
  306. package/packages/pi/skills/end/SKILL.md +1782 -0
  307. package/packages/pi/skills/eval/SKILL.md +75 -0
  308. package/packages/pi/skills/fly-deploy/SKILL.md +676 -0
  309. package/packages/pi/skills/founder-video/SKILL.md +467 -0
  310. package/packages/pi/skills/hud/SKILL.md +160 -0
  311. package/packages/pi/skills/orchestrate/SKILL.md +74 -0
  312. package/packages/pi/skills/pi-agents/SKILL.md +78 -0
  313. package/packages/pi/skills/react-best-practices/AGENTS.md +2249 -0
  314. package/packages/pi/skills/react-best-practices/README.md +123 -0
  315. package/packages/pi/skills/react-best-practices/SKILL.md +125 -0
  316. package/packages/pi/skills/react-best-practices/metadata.json +15 -0
  317. package/packages/pi/skills/react-best-practices/rules/_sections.md +46 -0
  318. package/packages/pi/skills/react-best-practices/rules/_template.md +28 -0
  319. package/packages/pi/skills/react-best-practices/rules/advanced-event-handler-refs.md +55 -0
  320. package/packages/pi/skills/react-best-practices/rules/advanced-use-latest.md +49 -0
  321. package/packages/pi/skills/react-best-practices/rules/async-api-routes.md +38 -0
  322. package/packages/pi/skills/react-best-practices/rules/async-defer-await.md +80 -0
  323. package/packages/pi/skills/react-best-practices/rules/async-dependencies.md +36 -0
  324. package/packages/pi/skills/react-best-practices/rules/async-parallel.md +28 -0
  325. package/packages/pi/skills/react-best-practices/rules/async-suspense-boundaries.md +99 -0
  326. package/packages/pi/skills/react-best-practices/rules/bundle-barrel-imports.md +59 -0
  327. package/packages/pi/skills/react-best-practices/rules/bundle-conditional.md +31 -0
  328. package/packages/pi/skills/react-best-practices/rules/bundle-defer-third-party.md +49 -0
  329. package/packages/pi/skills/react-best-practices/rules/bundle-dynamic-imports.md +35 -0
  330. package/packages/pi/skills/react-best-practices/rules/bundle-preload.md +50 -0
  331. package/packages/pi/skills/react-best-practices/rules/client-event-listeners.md +74 -0
  332. package/packages/pi/skills/react-best-practices/rules/client-swr-dedup.md +56 -0
  333. package/packages/pi/skills/react-best-practices/rules/js-batch-dom-css.md +82 -0
  334. package/packages/pi/skills/react-best-practices/rules/js-cache-function-results.md +80 -0
  335. package/packages/pi/skills/react-best-practices/rules/js-cache-property-access.md +28 -0
  336. package/packages/pi/skills/react-best-practices/rules/js-cache-storage.md +70 -0
  337. package/packages/pi/skills/react-best-practices/rules/js-combine-iterations.md +32 -0
  338. package/packages/pi/skills/react-best-practices/rules/js-early-exit.md +50 -0
  339. package/packages/pi/skills/react-best-practices/rules/js-hoist-regexp.md +45 -0
  340. package/packages/pi/skills/react-best-practices/rules/js-index-maps.md +37 -0
  341. package/packages/pi/skills/react-best-practices/rules/js-length-check-first.md +49 -0
  342. package/packages/pi/skills/react-best-practices/rules/js-min-max-loop.md +82 -0
  343. package/packages/pi/skills/react-best-practices/rules/js-set-map-lookups.md +24 -0
  344. package/packages/pi/skills/react-best-practices/rules/js-tosorted-immutable.md +57 -0
  345. package/packages/pi/skills/react-best-practices/rules/rendering-activity.md +26 -0
  346. package/packages/pi/skills/react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
  347. package/packages/pi/skills/react-best-practices/rules/rendering-conditional-render.md +40 -0
  348. package/packages/pi/skills/react-best-practices/rules/rendering-content-visibility.md +38 -0
  349. package/packages/pi/skills/react-best-practices/rules/rendering-hoist-jsx.md +46 -0
  350. package/packages/pi/skills/react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
  351. package/packages/pi/skills/react-best-practices/rules/rendering-svg-precision.md +28 -0
  352. package/packages/pi/skills/react-best-practices/rules/rerender-defer-reads.md +39 -0
  353. package/packages/pi/skills/react-best-practices/rules/rerender-dependencies.md +45 -0
  354. package/packages/pi/skills/react-best-practices/rules/rerender-derived-state.md +29 -0
  355. package/packages/pi/skills/react-best-practices/rules/rerender-functional-setstate.md +74 -0
  356. package/packages/pi/skills/react-best-practices/rules/rerender-lazy-state-init.md +58 -0
  357. package/packages/pi/skills/react-best-practices/rules/rerender-memo.md +44 -0
  358. package/packages/pi/skills/react-best-practices/rules/rerender-transitions.md +40 -0
  359. package/packages/pi/skills/react-best-practices/rules/server-after-nonblocking.md +73 -0
  360. package/packages/pi/skills/react-best-practices/rules/server-cache-lru.md +41 -0
  361. package/packages/pi/skills/react-best-practices/rules/server-cache-react.md +26 -0
  362. package/packages/pi/skills/react-best-practices/rules/server-parallel-fetching.md +79 -0
  363. package/packages/pi/skills/react-best-practices/rules/server-serialization.md +38 -0
  364. package/packages/pi/skills/remotion-best-practices/SKILL.md +43 -0
  365. package/packages/pi/skills/remotion-best-practices/rules/3d.md +86 -0
  366. package/packages/pi/skills/remotion-best-practices/rules/animations.md +29 -0
  367. package/packages/pi/skills/remotion-best-practices/rules/assets/charts-bar-chart.tsx +173 -0
  368. package/packages/pi/skills/remotion-best-practices/rules/assets/text-animations-typewriter.tsx +100 -0
  369. package/packages/pi/skills/remotion-best-practices/rules/assets/text-animations-word-highlight.tsx +108 -0
  370. package/packages/pi/skills/remotion-best-practices/rules/assets.md +78 -0
  371. package/packages/pi/skills/remotion-best-practices/rules/audio.md +172 -0
  372. package/packages/pi/skills/remotion-best-practices/rules/calculate-metadata.md +104 -0
  373. package/packages/pi/skills/remotion-best-practices/rules/can-decode.md +75 -0
  374. package/packages/pi/skills/remotion-best-practices/rules/charts.md +58 -0
  375. package/packages/pi/skills/remotion-best-practices/rules/compositions.md +146 -0
  376. package/packages/pi/skills/remotion-best-practices/rules/display-captions.md +126 -0
  377. package/packages/pi/skills/remotion-best-practices/rules/extract-frames.md +229 -0
  378. package/packages/pi/skills/remotion-best-practices/rules/fonts.md +152 -0
  379. package/packages/pi/skills/remotion-best-practices/rules/get-audio-duration.md +58 -0
  380. package/packages/pi/skills/remotion-best-practices/rules/get-video-dimensions.md +68 -0
  381. package/packages/pi/skills/remotion-best-practices/rules/get-video-duration.md +58 -0
  382. package/packages/pi/skills/remotion-best-practices/rules/gifs.md +138 -0
  383. package/packages/pi/skills/remotion-best-practices/rules/images.md +130 -0
  384. package/packages/pi/skills/remotion-best-practices/rules/import-srt-captions.md +67 -0
  385. package/packages/pi/skills/remotion-best-practices/rules/lottie.md +68 -0
  386. package/packages/pi/skills/remotion-best-practices/rules/measuring-dom-nodes.md +35 -0
  387. package/packages/pi/skills/remotion-best-practices/rules/measuring-text.md +143 -0
  388. package/packages/pi/skills/remotion-best-practices/rules/sequencing.md +106 -0
  389. package/packages/pi/skills/remotion-best-practices/rules/tailwind.md +11 -0
  390. package/packages/pi/skills/remotion-best-practices/rules/text-animations.md +20 -0
  391. package/packages/pi/skills/remotion-best-practices/rules/timing.md +179 -0
  392. package/packages/pi/skills/remotion-best-practices/rules/transcribe-captions.md +19 -0
  393. package/packages/pi/skills/remotion-best-practices/rules/transitions.md +122 -0
  394. package/packages/pi/skills/remotion-best-practices/rules/trimming.md +53 -0
  395. package/packages/pi/skills/remotion-best-practices/rules/videos.md +171 -0
  396. package/packages/pi/skills/search/SKILL.md +220 -0
  397. package/packages/pi/skills/spec/SKILL.md +377 -0
  398. package/packages/pi/skills/startup/SKILL.md +315 -0
  399. package/packages/pi/skills/web-architect/SKILL.md +309 -0
  400. package/packages/pi/skills/x-algorithm/SKILL.md +305 -0
  401. package/packages/pi/teams/dev-team.yaml +63 -0
  402. package/packages/pi/teams/gtm-team.yaml +79 -0
  403. package/packages/pi/themes/jfl.theme.json +76 -0
  404. package/packages/pi/tsconfig.json +21 -0
  405. package/scripts/collect-tuples.sh +124 -0
  406. package/scripts/destroy-fleet.sh +37 -0
  407. package/scripts/jfl-ide.sh +48 -0
  408. package/scripts/session/session-cleanup.sh +4 -11
  409. package/scripts/session/session-init.sh +6 -0
  410. package/scripts/session/session-sync.sh +25 -0
  411. package/scripts/setup-branch-protection.sh +106 -0
  412. package/scripts/spawn-fleet.sh +144 -0
  413. package/scripts/train-policy-head.py +434 -0
  414. package/scripts/vm-swarm/README.md +301 -0
  415. package/scripts/vm-swarm/collect-tuples.sh +331 -0
  416. package/scripts/vm-swarm/create-base-template.sh +339 -0
  417. package/scripts/vm-swarm/kill-fleet.sh +204 -0
  418. package/scripts/vm-swarm/monitor-fleet.sh +346 -0
  419. package/scripts/vm-swarm/spawn-fleet.sh +304 -0
  420. package/template/.github/workflows/jfl-eval.yml +6 -1
  421. package/template/.github/workflows/jfl-review.yml +4 -0
  422. package/template/scripts/session/session-end.sh +69 -6
  423. package/template/scripts/session/session-init.sh +55 -30
  424. package/template/scripts/session/session-lock.sh +464 -0
  425. package/template/templates/service-agent/workflows/jfl-eval.yml +19 -0
  426. package/dist/dashboard-static/assets/index-B6kRK9Rq.js +0 -116
  427. package/dist/dashboard-static/assets/index-BpdKJPLu.css +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"hud.js","sourceRoot":"","sources":["../../src/commands/hud.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hud.js","sourceRoot":"","sources":["../../src/commands/hud.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * @purpose Launch, configure, and manage the jfl ide terminal workspace with config-aware layouts and navigation
3
+ */
4
+ export declare function ideLaunchCommand(_options?: {
5
+ json?: boolean;
6
+ }): Promise<void>;
7
+ export declare function ideAddCommand(name: string | undefined, options: {
8
+ row?: string;
9
+ position?: string;
10
+ title?: string;
11
+ cmd?: string;
12
+ }): Promise<void>;
13
+ export declare function ideRemoveCommand(name: string): Promise<void>;
14
+ export declare function ideOpenCommand(name: string): Promise<void>;
15
+ export declare function ideUpCommand(): Promise<void>;
16
+ export declare function ideAvailableCommand(): Promise<void>;
17
+ export declare function ideStatusCommand(options?: {
18
+ json?: boolean;
19
+ }): Promise<void>;
20
+ export declare function ideSurfacesCommand(options?: {
21
+ json?: boolean;
22
+ }): Promise<void>;
23
+ export declare function ideStopCommand(): Promise<void>;
24
+ export declare function ideRestartCommand(): Promise<void>;
25
+ export declare function ideResetCommand(): Promise<void>;
26
+ export declare function ideConfigCommand(key?: string, value?: string): Promise<void>;
27
+ //# sourceMappingURL=ide.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ide.d.ts","sourceRoot":"","sources":["../../src/commands/ide.ts"],"names":[],"mappings":"AAAA;;GAEG;AAmBH,wBAAsB,gBAAgB,CAAC,QAAQ,GAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CA+EvF;AAED,wBAAsB,aAAa,CACjC,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GACzE,OAAO,CAAC,IAAI,CAAC,CA+Ff;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAkDlE;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBhE;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAuBlD;AAED,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAYzD;AAuCD,wBAAsB,gBAAgB,CAAC,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAmEtF;AAED,wBAAsB,kBAAkB,CAAC,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAuExF;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAmBpD;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAMvD;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAgBrD;AAED,wBAAsB,gBAAgB,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAuDlF"}
@@ -0,0 +1,546 @@
1
+ /**
2
+ * @purpose Launch, configure, and manage the jfl ide terminal workspace with config-aware layouts and navigation
3
+ */
4
+ import chalk from "chalk";
5
+ import { existsSync, unlinkSync } from "fs";
6
+ import { join } from "path";
7
+ import { WorkspaceEngine } from "../lib/workspace/engine.js";
8
+ import { detectBackend } from "../lib/workspace/backend.js";
9
+ import { getProjectRoot, loadIdeLayout, getIdeConfig, setIdeConfig, syncToRoot, hasTmux, } from "../lib/ide-panes.js";
10
+ let activeEngine = null;
11
+ export async function ideLaunchCommand(_options = {}) {
12
+ const root = getProjectRoot();
13
+ const backendType = detectBackend();
14
+ if (backendType === "tmux" && !hasTmux()) {
15
+ console.error(chalk.red("\n No workspace backend found."));
16
+ console.log(chalk.gray(" Install cmux: brew tap manaflow-ai/cmux && brew install --cask cmux"));
17
+ console.log(chalk.gray(" Or install tmux: brew install tmux\n"));
18
+ process.exit(1);
19
+ }
20
+ const engine = new WorkspaceEngine(root);
21
+ activeEngine = engine;
22
+ const config = engine.getProjectConfig();
23
+ const caps = engine.getCapabilities();
24
+ console.log();
25
+ console.log(chalk.bold(` ${config.name}`) + chalk.gray(` [${config.type}]`));
26
+ console.log(chalk.gray(` Backend: ${engine.getBackendName()}`));
27
+ if (caps.sidebar)
28
+ console.log(chalk.green(" Sidebar: enabled"));
29
+ if (caps.notifications)
30
+ console.log(chalk.green(" Notifications: enabled"));
31
+ if (config.portfolioParent) {
32
+ const parentName = config.portfolioParent.split("/").pop();
33
+ console.log(chalk.gray(` Parent: ${parentName}`));
34
+ }
35
+ if (config.registeredServices.length > 0) {
36
+ console.log(chalk.gray(` Services: ${config.registeredServices.length} registered`));
37
+ }
38
+ if (config.agents.length > 0) {
39
+ console.log(chalk.gray(` Agents: ${config.agents.length} configured`));
40
+ }
41
+ const scan = engine.getScanResults();
42
+ if (scan.suggestions.length > 0) {
43
+ console.log();
44
+ console.log(chalk.cyan(" Scanning project..."));
45
+ console.log();
46
+ for (const suggestion of scan.suggestions) {
47
+ console.log(chalk.gray(` ${suggestion}`));
48
+ }
49
+ }
50
+ console.log();
51
+ console.log(chalk.gray(" Launching workspace..."));
52
+ console.log();
53
+ try {
54
+ await engine.launch();
55
+ const shutdown = async () => {
56
+ console.log(chalk.gray("\n Stopping workspace..."));
57
+ await engine.stop();
58
+ process.exit(0);
59
+ };
60
+ process.on("SIGINT", shutdown);
61
+ process.on("SIGTERM", shutdown);
62
+ await new Promise((resolve) => {
63
+ const check = setInterval(() => {
64
+ if (!engine.isRunning()) {
65
+ clearInterval(check);
66
+ resolve();
67
+ }
68
+ }, 1000);
69
+ });
70
+ }
71
+ catch (err) {
72
+ const message = err instanceof Error ? err.message : String(err);
73
+ console.error(chalk.red(` Failed to launch workspace: ${message}`));
74
+ if (backendType === "tmux") {
75
+ console.log(chalk.gray(" Falling back to tmux-ide..."));
76
+ await fallbackTmuxIde(root);
77
+ }
78
+ else {
79
+ process.exit(1);
80
+ }
81
+ }
82
+ }
83
+ export async function ideAddCommand(name, options) {
84
+ const root = getProjectRoot();
85
+ if (!name && !options.title) {
86
+ console.error(chalk.red(" Specify a surface name or use --title and --cmd for custom panes"));
87
+ console.log(chalk.gray(" See available: jfl ide available"));
88
+ process.exit(1);
89
+ }
90
+ if (activeEngine && activeEngine.isRunning()) {
91
+ const surfaceName = name || options.title || "custom";
92
+ const id = await activeEngine.addSurface(surfaceName, {
93
+ agentName: name ? undefined : undefined,
94
+ serviceName: name ? undefined : undefined,
95
+ });
96
+ if (id) {
97
+ console.log(chalk.green(` Added "${surfaceName}" to workspace (live)`));
98
+ }
99
+ else {
100
+ console.error(chalk.red(` Unknown surface: ${surfaceName}`));
101
+ console.log(chalk.gray(" See available: jfl ide available"));
102
+ }
103
+ return;
104
+ }
105
+ const { loadIdeLayout: load, saveIdeLayout: save, resolvePane, checkDependencies, createDefaultLayout, } = await import("../lib/ide-panes.js");
106
+ let layout = load(root);
107
+ if (!layout) {
108
+ const ideConfig = getIdeConfig(root);
109
+ layout = createDefaultLayout(root, ideConfig);
110
+ }
111
+ let pane = null;
112
+ if (options.title && options.cmd) {
113
+ pane = { title: options.title, command: options.cmd, type: "custom" };
114
+ }
115
+ else if (name) {
116
+ pane = resolvePane(root, name, options);
117
+ }
118
+ if (!pane) {
119
+ console.error(chalk.red(` Unknown pane: ${name}`));
120
+ console.log(chalk.gray(" See available: jfl ide available"));
121
+ if (name) {
122
+ console.log(chalk.gray(` Or add custom: jfl ide add --title "${name}" --cmd "your command"`));
123
+ }
124
+ process.exit(1);
125
+ }
126
+ if (name) {
127
+ const deps = checkDependencies(root, name);
128
+ if (deps.checks.length > 0) {
129
+ console.log();
130
+ console.log(chalk.gray(` ${name} requires:`));
131
+ for (const check of deps.checks) {
132
+ const icon = check.ok ? chalk.green("\u2713") : chalk.yellow("\u26A0");
133
+ const hint = check.hint ? chalk.gray(` (${check.hint})`) : "";
134
+ console.log(` ${icon} ${check.label}${hint}`);
135
+ }
136
+ if (!deps.ok) {
137
+ console.log();
138
+ console.error(chalk.red(" Hard dependency missing. Fix before adding."));
139
+ process.exit(1);
140
+ }
141
+ }
142
+ }
143
+ const rowIdx = options.row !== undefined ? parseInt(options.row, 10) : layout.rows.length - 1;
144
+ const posIdx = options.position !== undefined ? parseInt(options.position, 10) : -1;
145
+ while (layout.rows.length <= rowIdx) {
146
+ layout.rows.push({ size: "30%", panes: [] });
147
+ }
148
+ if (posIdx >= 0 && posIdx < layout.rows[rowIdx].panes.length) {
149
+ layout.rows[rowIdx].panes.splice(posIdx, 0, pane);
150
+ }
151
+ else {
152
+ layout.rows[rowIdx].panes.push(pane);
153
+ }
154
+ rebalanceRowSizes(layout);
155
+ save(root, layout);
156
+ syncToRoot(root);
157
+ const rowDisplay = rowIdx;
158
+ const posDisplay = posIdx >= 0 ? posIdx : layout.rows[rowIdx].panes.length - 1;
159
+ console.log();
160
+ console.log(chalk.green(` Added "${pane.title}" to row ${rowDisplay}, position ${posDisplay}`));
161
+ console.log(chalk.gray(" Restart workspace to apply: jfl ide restart"));
162
+ }
163
+ export async function ideRemoveCommand(name) {
164
+ if (activeEngine && activeEngine.isRunning()) {
165
+ const removed = await activeEngine.removeSurface(name);
166
+ if (removed) {
167
+ console.log(chalk.green(` Removed "${name}" from workspace (live)`));
168
+ }
169
+ else {
170
+ console.error(chalk.red(` Surface "${name}" not found in workspace`));
171
+ }
172
+ return;
173
+ }
174
+ const root = getProjectRoot();
175
+ const { loadIdeLayout: load, saveIdeLayout: save, createDefaultLayout } = await import("../lib/ide-panes.js");
176
+ const layout = load(root);
177
+ if (!layout) {
178
+ console.error(chalk.red(" No workspace layout found"));
179
+ process.exit(1);
180
+ }
181
+ let found = false;
182
+ for (const row of layout.rows) {
183
+ const idx = row.panes.findIndex((p) => p.agent === name || p.type === name || p.title.toLowerCase() === name.toLowerCase());
184
+ if (idx >= 0) {
185
+ row.panes.splice(idx, 1);
186
+ found = true;
187
+ break;
188
+ }
189
+ }
190
+ if (!found) {
191
+ console.error(chalk.red(` Pane "${name}" not found in workspace`));
192
+ process.exit(1);
193
+ }
194
+ layout.rows = layout.rows.filter((r) => r.panes.length > 0);
195
+ if (layout.rows.length === 0) {
196
+ const ideConfig = getIdeConfig(root);
197
+ const fresh = createDefaultLayout(root, ideConfig);
198
+ layout.rows = fresh.rows;
199
+ }
200
+ rebalanceRowSizes(layout);
201
+ save(root, layout);
202
+ syncToRoot(root);
203
+ console.log(chalk.green(` Removed "${name}" from workspace`));
204
+ console.log(chalk.gray(" Restart workspace to apply: jfl ide restart"));
205
+ }
206
+ export async function ideOpenCommand(name) {
207
+ if (!activeEngine || !activeEngine.isRunning()) {
208
+ console.error(chalk.red(" No running workspace. Run: jfl ide"));
209
+ process.exit(1);
210
+ }
211
+ const opened = await activeEngine.openChild(name);
212
+ if (opened) {
213
+ console.log(chalk.green(` Opened "${name}" in workspace`));
214
+ }
215
+ else {
216
+ console.error(chalk.red(` "${name}" not found in registered services/products`));
217
+ const state = activeEngine.getState();
218
+ if (state.childCount && state.childCount > 0) {
219
+ console.log(chalk.gray(" Available: jfl ide available"));
220
+ }
221
+ }
222
+ }
223
+ export async function ideUpCommand() {
224
+ if (!activeEngine) {
225
+ const root = getProjectRoot();
226
+ const engine = new WorkspaceEngine(root);
227
+ const parentPath = engine.getParentPath();
228
+ if (parentPath && existsSync(parentPath)) {
229
+ console.log(chalk.cyan(` Parent: ${parentPath}`));
230
+ console.log(chalk.gray(` cd "${parentPath}" && jfl ide`));
231
+ }
232
+ else {
233
+ console.log(chalk.gray(" No parent project configured"));
234
+ }
235
+ return;
236
+ }
237
+ const parentPath = activeEngine.getParentPath();
238
+ if (!parentPath || !existsSync(parentPath)) {
239
+ console.log(chalk.gray(" No parent project configured"));
240
+ return;
241
+ }
242
+ const parentName = parentPath.split("/").pop() || "parent";
243
+ console.log(chalk.cyan(` Parent: ${parentName} (${parentPath})`));
244
+ console.log(chalk.gray(` To navigate: cd "${parentPath}" && jfl ide`));
245
+ }
246
+ export async function ideAvailableCommand() {
247
+ const root = getProjectRoot();
248
+ if (activeEngine) {
249
+ const items = activeEngine.getAvailableItems();
250
+ printAvailableItems(items);
251
+ return;
252
+ }
253
+ const { getAvailableItems: getNewItems } = await import("../lib/workspace/surface-registry.js");
254
+ const items = getNewItems(root, []);
255
+ printAvailableItems(items);
256
+ }
257
+ function printAvailableItems(items) {
258
+ const agents = items.filter((i) => i.category === "agent");
259
+ const builtins = items.filter((i) => i.category === "builtin");
260
+ const services = items.filter((i) => i.category === "service");
261
+ console.log();
262
+ if (agents.length > 0) {
263
+ console.log(chalk.cyan(" Agents:"));
264
+ for (const a of agents) {
265
+ const status = a.inWorkspace ? chalk.green("[active]") : chalk.gray("[available]");
266
+ console.log(` ${a.name.padEnd(20)} ${a.description.padEnd(30)} ${status}`);
267
+ }
268
+ console.log();
269
+ }
270
+ console.log(chalk.cyan(" Surfaces:"));
271
+ for (const b of builtins) {
272
+ const status = b.inWorkspace ? chalk.green("[active]") : chalk.gray("[available]");
273
+ console.log(` ${b.name.padEnd(20)} ${b.description.padEnd(30)} ${status}`);
274
+ }
275
+ console.log();
276
+ if (services.length > 0) {
277
+ console.log(chalk.cyan(" Services:"));
278
+ for (const s of services) {
279
+ const status = s.inWorkspace ? chalk.green("[active]") : chalk.gray("[available]");
280
+ console.log(` ${s.name.padEnd(20)} ${s.description.padEnd(30)} ${status}`);
281
+ }
282
+ console.log();
283
+ }
284
+ console.log(chalk.cyan(" Custom:"));
285
+ console.log(chalk.gray(' --title "..." --cmd "..." add anything'));
286
+ console.log();
287
+ }
288
+ export async function ideStatusCommand(options = {}) {
289
+ if (activeEngine) {
290
+ const state = activeEngine.getState();
291
+ if (options.json) {
292
+ console.log(JSON.stringify(state, null, 2));
293
+ return;
294
+ }
295
+ console.log();
296
+ console.log(chalk.bold(` ${state.projectName}`) + chalk.gray(` [${state.projectType}]`));
297
+ console.log(chalk.gray(` Backend: ${state.backend}`));
298
+ if (state.parentProject) {
299
+ console.log(chalk.gray(` Parent: ${state.parentProject.split("/").pop()}`));
300
+ }
301
+ console.log();
302
+ for (const s of state.surfaces) {
303
+ const label = s.agentName || s.serviceName || s.name;
304
+ console.log(` ${label} ${chalk.gray(`[${s.type}]`)}`);
305
+ }
306
+ console.log();
307
+ console.log(chalk.green(` ${state.surfaces.length} surfaces running`));
308
+ if (state.childCount) {
309
+ console.log(chalk.gray(` ${state.childCount} child projects`));
310
+ }
311
+ console.log();
312
+ return;
313
+ }
314
+ const root = getProjectRoot();
315
+ const layout = loadIdeLayout(root);
316
+ if (!layout) {
317
+ if (options.json) {
318
+ console.log(JSON.stringify({ configured: false }));
319
+ }
320
+ else {
321
+ console.log(chalk.gray(" No workspace configured. Run: jfl ide"));
322
+ }
323
+ return;
324
+ }
325
+ if (options.json) {
326
+ console.log(JSON.stringify(layout, null, 2));
327
+ return;
328
+ }
329
+ console.log();
330
+ console.log(chalk.bold(` Workspace: ${layout.name}`));
331
+ console.log(chalk.gray(` Backend: ${detectBackend()}`));
332
+ console.log();
333
+ let totalPanes = 0;
334
+ for (let rowIdx = 0; rowIdx < layout.rows.length; rowIdx++) {
335
+ const row = layout.rows[rowIdx];
336
+ console.log(chalk.cyan(` Row ${rowIdx}`) + chalk.gray(` (${row.size || "auto"})`));
337
+ for (const pane of row.panes) {
338
+ totalPanes++;
339
+ const type = pane.type ? chalk.gray(`[${pane.type}]`) : "";
340
+ const focus = pane.focus ? chalk.yellow(" *") : "";
341
+ console.log(` ${pane.title} ${type}${focus}`);
342
+ }
343
+ }
344
+ console.log();
345
+ console.log(chalk.gray(` ${totalPanes} panes across ${layout.rows.length} rows`));
346
+ console.log();
347
+ }
348
+ export async function ideSurfacesCommand(options = {}) {
349
+ if (!activeEngine || !activeEngine.isRunning()) {
350
+ console.log(chalk.gray(" No running workspace. Run: jfl ide"));
351
+ return;
352
+ }
353
+ const surfaces = activeEngine.getActiveSurfaces();
354
+ const liveData = activeEngine.getLiveData();
355
+ if (options.json) {
356
+ console.log(JSON.stringify({ surfaces: surfaces.map((s) => ({ name: s.name, type: s.surfaceType.type })), liveData }, null, 2));
357
+ return;
358
+ }
359
+ const config = activeEngine.getProjectConfig();
360
+ console.log();
361
+ console.log(chalk.bold(` ${config.name}`) + chalk.gray(` [${config.type}]`));
362
+ console.log();
363
+ for (const surface of surfaces) {
364
+ const ctx = {
365
+ projectRoot: "",
366
+ surfaceId: surface.id,
367
+ agentName: surface.agentName,
368
+ serviceName: surface.serviceName,
369
+ };
370
+ const entries = surface.surfaceType.getStatusEntries(ctx, liveData);
371
+ console.log(chalk.cyan(` ${surface.name}`) + chalk.gray(` [${surface.surfaceType.type}]`));
372
+ for (const entry of entries) {
373
+ const color = entry.color === "green" ? chalk.green :
374
+ entry.color === "red" ? chalk.red :
375
+ entry.color === "yellow" ? chalk.yellow :
376
+ entry.color === "cyan" ? chalk.cyan : chalk.gray;
377
+ console.log(` ${entry.label}: ${color(entry.value)}`);
378
+ }
379
+ }
380
+ if (liveData.agentSessions && liveData.agentSessions.length > 0) {
381
+ console.log();
382
+ console.log(chalk.bold(" Agent Sessions"));
383
+ for (const s of liveData.agentSessions) {
384
+ const statusColor = s.status === "active" ? chalk.green : s.status === "failed" ? chalk.red : chalk.gray;
385
+ const trendIcon = s.delta > 0 ? chalk.green(`+${s.delta.toFixed(4)}`) : s.delta < 0 ? chalk.red(s.delta.toFixed(4)) : chalk.gray("=0");
386
+ console.log(` ${statusColor(s.agentName)} R${s.round} ${s.metric}:${s.currentScore.toFixed(4)} ${trendIcon}`);
387
+ }
388
+ }
389
+ if (liveData.trainingData && liveData.trainingData.totalTuples > 0) {
390
+ console.log();
391
+ console.log(chalk.bold(" Training Buffer"));
392
+ const td = liveData.trainingData;
393
+ console.log(chalk.gray(` ${td.totalTuples} tuples | ${td.positiveReward} positive | ${(td.improvedRate * 100).toFixed(0)}% win rate`));
394
+ }
395
+ if (liveData.childProjects && liveData.childProjects.length > 0) {
396
+ console.log();
397
+ console.log(chalk.bold(" Child Projects"));
398
+ for (const c of liveData.childProjects) {
399
+ const icon = c.health === "healthy" ? chalk.green("●")
400
+ : c.health === "degraded" ? chalk.yellow("◐")
401
+ : c.health === "unhealthy" ? chalk.red("○")
402
+ : chalk.gray("?");
403
+ let detail = c.type;
404
+ if (c.evalScore !== undefined)
405
+ detail += ` eval:${c.evalScore.toFixed(2)}`;
406
+ if (c.activeAgents)
407
+ detail += ` ${c.activeAgents}ag`;
408
+ console.log(` ${icon} ${c.name.padEnd(20)} ${chalk.gray(detail)}`);
409
+ }
410
+ }
411
+ console.log();
412
+ }
413
+ export async function ideStopCommand() {
414
+ if (activeEngine && activeEngine.isRunning()) {
415
+ await activeEngine.stop();
416
+ activeEngine = null;
417
+ console.log(chalk.green(" Workspace stopped"));
418
+ return;
419
+ }
420
+ const root = getProjectRoot();
421
+ const layout = loadIdeLayout(root);
422
+ const name = layout?.name || root.split("/").pop() || "workspace";
423
+ try {
424
+ const { execSync } = await import("child_process");
425
+ execSync(`tmux kill-session -t "${name}" 2>/dev/null`, { stdio: "ignore" });
426
+ console.log(chalk.green(` Stopped workspace "${name}"`));
427
+ }
428
+ catch {
429
+ console.log(chalk.gray(` No running session "${name}"`));
430
+ }
431
+ }
432
+ export async function ideRestartCommand() {
433
+ if (activeEngine && activeEngine.isRunning()) {
434
+ await activeEngine.stop();
435
+ activeEngine = null;
436
+ }
437
+ await ideLaunchCommand();
438
+ }
439
+ export async function ideResetCommand() {
440
+ if (activeEngine && activeEngine.isRunning()) {
441
+ await activeEngine.stop();
442
+ activeEngine = null;
443
+ }
444
+ const root = getProjectRoot();
445
+ const configPath = join(root, ".jfl", "ide.yml");
446
+ const rootYml = join(root, "ide.yml");
447
+ if (existsSync(configPath))
448
+ unlinkSync(configPath);
449
+ if (existsSync(rootYml))
450
+ unlinkSync(rootYml);
451
+ setIdeConfig(root, { piAsked: false, primary: undefined });
452
+ console.log(chalk.green(" Workspace reset. Run jfl ide to start fresh."));
453
+ }
454
+ export async function ideConfigCommand(key, value) {
455
+ const root = getProjectRoot();
456
+ if (key === "backend" && value) {
457
+ if (!["cmux", "tmux", "auto"].includes(value)) {
458
+ console.error(chalk.red(` Invalid value: ${value}. Use: cmux, tmux, or auto`));
459
+ process.exit(1);
460
+ }
461
+ console.log(chalk.green(` Backend preference set to: ${value}`));
462
+ return;
463
+ }
464
+ if (key === "primary" && value) {
465
+ if (!["pi", "claude", "auto"].includes(value)) {
466
+ console.error(chalk.red(` Invalid value: ${value}. Use: pi, claude, or auto`));
467
+ process.exit(1);
468
+ }
469
+ setIdeConfig(root, { primary: value, piAsked: true });
470
+ console.log(chalk.green(` Primary pane set to: ${value}`));
471
+ return;
472
+ }
473
+ if (key && !value) {
474
+ const config = getIdeConfig(root);
475
+ const val = config[key];
476
+ if (val !== undefined) {
477
+ console.log(` ${key}: ${val}`);
478
+ }
479
+ else {
480
+ console.log(chalk.gray(` ${key}: not set`));
481
+ }
482
+ return;
483
+ }
484
+ const config = getIdeConfig(root);
485
+ const engine = new WorkspaceEngine(root);
486
+ const projectConfig = engine.getProjectConfig();
487
+ const caps = engine.getCapabilities();
488
+ console.log();
489
+ console.log(chalk.bold(" IDE Config"));
490
+ console.log(` project: ${projectConfig.name} [${projectConfig.type}]`);
491
+ console.log(` primary: ${config.primary || "claude"}`);
492
+ console.log(` backend: ${detectBackend()}`);
493
+ console.log(` sidebar: ${caps.sidebar ? chalk.green("yes") : chalk.gray("no")}`);
494
+ console.log(` notify: ${caps.notifications ? chalk.green("yes") : chalk.gray("no")}`);
495
+ if (projectConfig.agents.length > 0) {
496
+ console.log(` agents: ${projectConfig.agents.join(", ")}`);
497
+ }
498
+ if (projectConfig.registeredServices.length > 0) {
499
+ console.log(` services: ${projectConfig.registeredServices.map((s) => s.name).join(", ")}`);
500
+ }
501
+ if (projectConfig.portfolioParent) {
502
+ console.log(` parent: ${projectConfig.portfolioParent.split("/").pop()}`);
503
+ }
504
+ console.log();
505
+ }
506
+ function rebalanceRowSizes(layout) {
507
+ const count = layout.rows.length;
508
+ if (count === 1) {
509
+ layout.rows[0].size = "100%";
510
+ }
511
+ else if (count === 2) {
512
+ layout.rows[0].size = "70%";
513
+ layout.rows[1].size = "30%";
514
+ }
515
+ else {
516
+ const each = Math.floor(100 / count);
517
+ for (let i = 0; i < count; i++) {
518
+ layout.rows[i].size = `${each}%`;
519
+ }
520
+ }
521
+ }
522
+ async function fallbackTmuxIde(root) {
523
+ const { execSync, spawn } = await import("child_process");
524
+ try {
525
+ execSync("which tmux-ide", { stdio: "ignore" });
526
+ }
527
+ catch {
528
+ console.log(chalk.yellow(" tmux-ide not found. Installing..."));
529
+ try {
530
+ execSync("npm install -g tmux-ide", { stdio: "inherit" });
531
+ }
532
+ catch {
533
+ console.error(chalk.red(" Failed to install tmux-ide"));
534
+ process.exit(1);
535
+ }
536
+ }
537
+ syncToRoot(root);
538
+ const child = spawn("tmux-ide", [], { cwd: root, stdio: "inherit" });
539
+ child.on("error", (err) => {
540
+ console.error(chalk.red(` Failed to launch: ${err.message}`));
541
+ });
542
+ await new Promise((resolve) => {
543
+ child.on("close", () => resolve());
544
+ });
545
+ }
546
+ //# sourceMappingURL=ide.js.map