jfl 0.8.1 → 0.9.1

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 (296) hide show
  1. package/README.md +35 -4
  2. package/dist/commands/digest.d.ts +6 -0
  3. package/dist/commands/digest.d.ts.map +1 -1
  4. package/dist/commands/digest.js +70 -69
  5. package/dist/commands/digest.js.map +1 -1
  6. package/dist/commands/doctor.d.ts +1 -0
  7. package/dist/commands/doctor.d.ts.map +1 -1
  8. package/dist/commands/doctor.js +30 -1
  9. package/dist/commands/doctor.js.map +1 -1
  10. package/dist/commands/eval.d.ts +40 -0
  11. package/dist/commands/eval.d.ts.map +1 -1
  12. package/dist/commands/eval.js +8 -8
  13. package/dist/commands/eval.js.map +1 -1
  14. package/dist/commands/findings.d.ts +7 -0
  15. package/dist/commands/findings.d.ts.map +1 -1
  16. package/dist/commands/findings.js +4 -4
  17. package/dist/commands/findings.js.map +1 -1
  18. package/dist/commands/ide.d.ts +2 -1
  19. package/dist/commands/ide.d.ts.map +1 -1
  20. package/dist/commands/ide.js +61 -1
  21. package/dist/commands/ide.js.map +1 -1
  22. package/dist/commands/init-from-service.d.ts +15 -0
  23. package/dist/commands/init-from-service.d.ts.map +1 -0
  24. package/dist/commands/init-from-service.js +541 -0
  25. package/dist/commands/init-from-service.js.map +1 -0
  26. package/dist/commands/init.d.ts +1 -0
  27. package/dist/commands/init.d.ts.map +1 -1
  28. package/dist/commands/init.js +32 -1
  29. package/dist/commands/init.js.map +1 -1
  30. package/dist/commands/kanban.d.ts.map +1 -1
  31. package/dist/commands/kanban.js +13 -4
  32. package/dist/commands/kanban.js.map +1 -1
  33. package/dist/commands/linear.d.ts +41 -0
  34. package/dist/commands/linear.d.ts.map +1 -0
  35. package/dist/commands/linear.js +715 -0
  36. package/dist/commands/linear.js.map +1 -0
  37. package/dist/commands/peter.d.ts.map +1 -1
  38. package/dist/commands/peter.js +232 -25
  39. package/dist/commands/peter.js.map +1 -1
  40. package/dist/commands/portfolio.d.ts +5 -0
  41. package/dist/commands/portfolio.d.ts.map +1 -1
  42. package/dist/commands/portfolio.js +193 -203
  43. package/dist/commands/portfolio.js.map +1 -1
  44. package/dist/commands/predict.d.ts +19 -0
  45. package/dist/commands/predict.d.ts.map +1 -1
  46. package/dist/commands/predict.js +4 -4
  47. package/dist/commands/predict.js.map +1 -1
  48. package/dist/commands/services.d.ts.map +1 -1
  49. package/dist/commands/services.js +146 -0
  50. package/dist/commands/services.js.map +1 -1
  51. package/dist/commands/setup.d.ts.map +1 -1
  52. package/dist/commands/setup.js +279 -20
  53. package/dist/commands/setup.js.map +1 -1
  54. package/dist/commands/start.d.ts +25 -0
  55. package/dist/commands/start.d.ts.map +1 -0
  56. package/dist/commands/start.js +191 -0
  57. package/dist/commands/start.js.map +1 -0
  58. package/dist/commands/telemetry-monitor.d.ts +11 -0
  59. package/dist/commands/telemetry-monitor.d.ts.map +1 -0
  60. package/dist/commands/telemetry-monitor.js +224 -0
  61. package/dist/commands/telemetry-monitor.js.map +1 -0
  62. package/dist/commands/telemetry-test.d.ts +11 -0
  63. package/dist/commands/telemetry-test.d.ts.map +1 -0
  64. package/dist/commands/telemetry-test.js +67 -0
  65. package/dist/commands/telemetry-test.js.map +1 -0
  66. package/dist/commands/tenet-agents.d.ts +13 -0
  67. package/dist/commands/tenet-agents.d.ts.map +1 -0
  68. package/dist/commands/tenet-agents.js +191 -0
  69. package/dist/commands/tenet-agents.js.map +1 -0
  70. package/dist/commands/tenet-setup.d.ts +20 -0
  71. package/dist/commands/tenet-setup.d.ts.map +1 -0
  72. package/dist/commands/tenet-setup.js +135 -0
  73. package/dist/commands/tenet-setup.js.map +1 -0
  74. package/dist/commands/train.d.ts +18 -0
  75. package/dist/commands/train.d.ts.map +1 -1
  76. package/dist/commands/train.js +182 -0
  77. package/dist/commands/train.js.map +1 -1
  78. package/dist/commands/viz.d.ts +33 -0
  79. package/dist/commands/viz.d.ts.map +1 -1
  80. package/dist/commands/viz.js +9 -9
  81. package/dist/commands/viz.js.map +1 -1
  82. package/dist/commands/whoami.d.ts +2 -0
  83. package/dist/commands/whoami.d.ts.map +1 -0
  84. package/dist/commands/whoami.js +24 -0
  85. package/dist/commands/whoami.js.map +1 -0
  86. package/dist/index.js +230 -30
  87. package/dist/index.js.map +1 -1
  88. package/dist/lib/advanced-setup.d.ts +78 -0
  89. package/dist/lib/advanced-setup.d.ts.map +1 -0
  90. package/dist/lib/advanced-setup.js +433 -0
  91. package/dist/lib/advanced-setup.js.map +1 -0
  92. package/dist/lib/agent-config.d.ts +33 -0
  93. package/dist/lib/agent-config.d.ts.map +1 -1
  94. package/dist/lib/agent-config.js +26 -0
  95. package/dist/lib/agent-config.js.map +1 -1
  96. package/dist/lib/counterfactual-training-bridge.d.ts +114 -0
  97. package/dist/lib/counterfactual-training-bridge.d.ts.map +1 -0
  98. package/dist/lib/counterfactual-training-bridge.js +322 -0
  99. package/dist/lib/counterfactual-training-bridge.js.map +1 -0
  100. package/dist/lib/discovery-agent.d.ts +48 -0
  101. package/dist/lib/discovery-agent.d.ts.map +1 -0
  102. package/dist/lib/discovery-agent.js +111 -0
  103. package/dist/lib/discovery-agent.js.map +1 -0
  104. package/dist/lib/flow-engine.d.ts.map +1 -1
  105. package/dist/lib/flow-engine.js +46 -8
  106. package/dist/lib/flow-engine.js.map +1 -1
  107. package/dist/lib/gtm-generator.d.ts +29 -0
  108. package/dist/lib/gtm-generator.d.ts.map +1 -0
  109. package/dist/lib/gtm-generator.js +252 -0
  110. package/dist/lib/gtm-generator.js.map +1 -0
  111. package/dist/lib/hub-health.d.ts +40 -0
  112. package/dist/lib/hub-health.d.ts.map +1 -0
  113. package/dist/lib/hub-health.js +89 -0
  114. package/dist/lib/hub-health.js.map +1 -0
  115. package/dist/lib/invariant-monitor.d.ts +6 -2
  116. package/dist/lib/invariant-monitor.d.ts.map +1 -1
  117. package/dist/lib/invariant-monitor.js +89 -2
  118. package/dist/lib/invariant-monitor.js.map +1 -1
  119. package/dist/lib/journal-analyzer.d.ts +71 -0
  120. package/dist/lib/journal-analyzer.d.ts.map +1 -0
  121. package/dist/lib/journal-analyzer.js +306 -0
  122. package/dist/lib/journal-analyzer.js.map +1 -0
  123. package/dist/lib/linear-client.d.ts +73 -0
  124. package/dist/lib/linear-client.d.ts.map +1 -0
  125. package/dist/lib/linear-client.js +112 -0
  126. package/dist/lib/linear-client.js.map +1 -0
  127. package/dist/lib/linear-id-map.d.ts +20 -0
  128. package/dist/lib/linear-id-map.d.ts.map +1 -0
  129. package/dist/lib/linear-id-map.js +59 -0
  130. package/dist/lib/linear-id-map.js.map +1 -0
  131. package/dist/lib/linear-kanban.d.ts +66 -0
  132. package/dist/lib/linear-kanban.d.ts.map +1 -0
  133. package/dist/lib/linear-kanban.js +175 -0
  134. package/dist/lib/linear-kanban.js.map +1 -0
  135. package/dist/lib/onboarding.d.ts +40 -0
  136. package/dist/lib/onboarding.d.ts.map +1 -0
  137. package/dist/lib/onboarding.js +213 -0
  138. package/dist/lib/onboarding.js.map +1 -0
  139. package/dist/lib/physical-world-model.d.ts +50 -0
  140. package/dist/lib/physical-world-model.d.ts.map +1 -0
  141. package/dist/lib/physical-world-model.js +251 -0
  142. package/dist/lib/physical-world-model.js.map +1 -0
  143. package/dist/lib/planning-loop.d.ts +157 -0
  144. package/dist/lib/planning-loop.d.ts.map +1 -0
  145. package/dist/lib/planning-loop.js +537 -0
  146. package/dist/lib/planning-loop.js.map +1 -0
  147. package/dist/lib/policy-head.d.ts +13 -0
  148. package/dist/lib/policy-head.d.ts.map +1 -1
  149. package/dist/lib/policy-head.js +168 -2
  150. package/dist/lib/policy-head.js.map +1 -1
  151. package/dist/lib/resource-optimizer-middleware.d.ts +39 -0
  152. package/dist/lib/resource-optimizer-middleware.d.ts.map +1 -0
  153. package/dist/lib/resource-optimizer-middleware.js +222 -0
  154. package/dist/lib/resource-optimizer-middleware.js.map +1 -0
  155. package/dist/lib/resource-optimizer.d.ts +71 -0
  156. package/dist/lib/resource-optimizer.d.ts.map +1 -0
  157. package/dist/lib/resource-optimizer.js +228 -0
  158. package/dist/lib/resource-optimizer.js.map +1 -0
  159. package/dist/lib/rl-manager.d.ts +74 -0
  160. package/dist/lib/rl-manager.d.ts.map +1 -0
  161. package/dist/lib/rl-manager.js +245 -0
  162. package/dist/lib/rl-manager.js.map +1 -0
  163. package/dist/lib/service-analyzer.d.ts +76 -0
  164. package/dist/lib/service-analyzer.d.ts.map +1 -0
  165. package/dist/lib/service-analyzer.js +704 -0
  166. package/dist/lib/service-analyzer.js.map +1 -0
  167. package/dist/lib/service-gtm.js +2 -2
  168. package/dist/lib/service-gtm.js.map +1 -1
  169. package/dist/lib/service-questionnaire.d.ts +11 -0
  170. package/dist/lib/service-questionnaire.d.ts.map +1 -0
  171. package/dist/lib/service-questionnaire.js +89 -0
  172. package/dist/lib/service-questionnaire.js.map +1 -0
  173. package/dist/lib/setup/agent-generator.d.ts +2 -0
  174. package/dist/lib/setup/agent-generator.d.ts.map +1 -1
  175. package/dist/lib/setup/agent-generator.js +128 -4
  176. package/dist/lib/setup/agent-generator.js.map +1 -1
  177. package/dist/lib/setup/flow-generator.d.ts +10 -0
  178. package/dist/lib/setup/flow-generator.d.ts.map +1 -0
  179. package/dist/lib/setup/flow-generator.js +113 -0
  180. package/dist/lib/setup/flow-generator.js.map +1 -0
  181. package/dist/lib/setup/invariant-bridge.d.ts +91 -0
  182. package/dist/lib/setup/invariant-bridge.d.ts.map +1 -0
  183. package/dist/lib/setup/invariant-bridge.js +384 -0
  184. package/dist/lib/setup/invariant-bridge.js.map +1 -0
  185. package/dist/lib/setup/spec-generator.d.ts +41 -5
  186. package/dist/lib/setup/spec-generator.d.ts.map +1 -1
  187. package/dist/lib/setup/spec-generator.js +503 -29
  188. package/dist/lib/setup/spec-generator.js.map +1 -1
  189. package/dist/lib/setup/starter-intelligence.d.ts +25 -0
  190. package/dist/lib/setup/starter-intelligence.d.ts.map +1 -0
  191. package/dist/lib/setup/starter-intelligence.js +309 -0
  192. package/dist/lib/setup/starter-intelligence.js.map +1 -0
  193. package/dist/lib/stratus-client.js +1 -1
  194. package/dist/lib/stratus-client.js.map +1 -1
  195. package/dist/lib/surface-agent.d.ts +78 -0
  196. package/dist/lib/surface-agent.d.ts.map +1 -0
  197. package/dist/lib/surface-agent.js +105 -0
  198. package/dist/lib/surface-agent.js.map +1 -0
  199. package/dist/lib/surface-coordination-example.d.ts +30 -0
  200. package/dist/lib/surface-coordination-example.d.ts.map +1 -0
  201. package/dist/lib/surface-coordination-example.js +164 -0
  202. package/dist/lib/surface-coordination-example.js.map +1 -0
  203. package/dist/lib/telemetry/physical-world-collector.d.ts +15 -0
  204. package/dist/lib/telemetry/physical-world-collector.d.ts.map +1 -0
  205. package/dist/lib/telemetry/physical-world-collector.js +177 -0
  206. package/dist/lib/telemetry/physical-world-collector.js.map +1 -0
  207. package/dist/lib/telemetry/training-bridge.d.ts +51 -0
  208. package/dist/lib/telemetry/training-bridge.d.ts.map +1 -0
  209. package/dist/lib/telemetry/training-bridge.js +185 -0
  210. package/dist/lib/telemetry/training-bridge.js.map +1 -0
  211. package/dist/lib/telemetry.d.ts +2 -1
  212. package/dist/lib/telemetry.d.ts.map +1 -1
  213. package/dist/lib/telemetry.js +23 -2
  214. package/dist/lib/telemetry.js.map +1 -1
  215. package/dist/lib/tenet-board-agent.d.ts +52 -0
  216. package/dist/lib/tenet-board-agent.d.ts.map +1 -0
  217. package/dist/lib/tenet-board-agent.js +226 -0
  218. package/dist/lib/tenet-board-agent.js.map +1 -0
  219. package/dist/lib/tenet-ide-agent.d.ts +40 -0
  220. package/dist/lib/tenet-ide-agent.d.ts.map +1 -0
  221. package/dist/lib/tenet-ide-agent.js +199 -0
  222. package/dist/lib/tenet-ide-agent.js.map +1 -0
  223. package/dist/lib/workspace/data-pipeline.d.ts.map +1 -1
  224. package/dist/lib/workspace/data-pipeline.js +27 -5
  225. package/dist/lib/workspace/data-pipeline.js.map +1 -1
  226. package/dist/lib/workspace/sidebar-runner.d.ts +13 -0
  227. package/dist/lib/workspace/sidebar-runner.d.ts.map +1 -0
  228. package/dist/lib/workspace/sidebar-runner.js +419 -0
  229. package/dist/lib/workspace/sidebar-runner.js.map +1 -0
  230. package/dist/lib/workspace/surface-registry.d.ts.map +1 -1
  231. package/dist/lib/workspace/surface-registry.js +9 -1
  232. package/dist/lib/workspace/surface-registry.js.map +1 -1
  233. package/dist/lib/workspace/surfaces/agent-overview.d.ts +3 -3
  234. package/dist/lib/workspace/surfaces/agent-overview.d.ts.map +1 -1
  235. package/dist/lib/workspace/surfaces/agent-overview.js +3 -3
  236. package/dist/lib/workspace/surfaces/agent-overview.js.map +1 -1
  237. package/dist/lib/workspace/surfaces/index.d.ts +3 -0
  238. package/dist/lib/workspace/surfaces/index.d.ts.map +1 -1
  239. package/dist/lib/workspace/surfaces/index.js +3 -0
  240. package/dist/lib/workspace/surfaces/index.js.map +1 -1
  241. package/dist/lib/workspace/surfaces/kanban.d.ts +15 -0
  242. package/dist/lib/workspace/surfaces/kanban.d.ts.map +1 -0
  243. package/dist/lib/workspace/surfaces/kanban.js +43 -0
  244. package/dist/lib/workspace/surfaces/kanban.js.map +1 -0
  245. package/dist/lib/workspace/surfaces/physical-world.d.ts +15 -0
  246. package/dist/lib/workspace/surfaces/physical-world.d.ts.map +1 -0
  247. package/dist/lib/workspace/surfaces/physical-world.js +37 -0
  248. package/dist/lib/workspace/surfaces/physical-world.js.map +1 -0
  249. package/dist/lib/workspace/surfaces/sidebar.d.ts +22 -0
  250. package/dist/lib/workspace/surfaces/sidebar.d.ts.map +1 -0
  251. package/dist/lib/workspace/surfaces/sidebar.js +94 -0
  252. package/dist/lib/workspace/surfaces/sidebar.js.map +1 -0
  253. package/dist/lib/workspace/tmux-adapter.d.ts +8 -5
  254. package/dist/lib/workspace/tmux-adapter.d.ts.map +1 -1
  255. package/dist/lib/workspace/tmux-adapter.js +38 -7
  256. package/dist/lib/workspace/tmux-adapter.js.map +1 -1
  257. package/dist/lib/workspace/tmux-sidebar.d.ts +14 -0
  258. package/dist/lib/workspace/tmux-sidebar.d.ts.map +1 -0
  259. package/dist/lib/workspace/tmux-sidebar.js +230 -0
  260. package/dist/lib/workspace/tmux-sidebar.js.map +1 -0
  261. package/dist/types/flows.d.ts +2 -1
  262. package/dist/types/flows.d.ts.map +1 -1
  263. package/dist/types/physical-world-model.d.ts +65 -0
  264. package/dist/types/physical-world-model.d.ts.map +1 -0
  265. package/dist/types/physical-world-model.js +43 -0
  266. package/dist/types/physical-world-model.js.map +1 -0
  267. package/dist/types/telemetry.d.ts +37 -0
  268. package/dist/types/telemetry.d.ts.map +1 -1
  269. package/dist/types/world-model.d.ts.map +1 -1
  270. package/dist/types/world-model.js +14 -7
  271. package/dist/types/world-model.js.map +1 -1
  272. package/dist/utils/context-hub-port.d.ts.map +1 -1
  273. package/dist/utils/context-hub-port.js +6 -1
  274. package/dist/utils/context-hub-port.js.map +1 -1
  275. package/dist/utils/jfl-config.d.ts +7 -2
  276. package/dist/utils/jfl-config.d.ts.map +1 -1
  277. package/dist/utils/jfl-config.js +14 -4
  278. package/dist/utils/jfl-config.js.map +1 -1
  279. package/package.json +3 -2
  280. package/packages/pi/extensions/context.ts +51 -1
  281. package/packages/pi/extensions/hub-tools.ts +247 -0
  282. package/packages/pi/extensions/index.ts +38 -6
  283. package/packages/pi/extensions/memory-tool.ts +84 -4
  284. package/packages/pi/extensions/service-skills.ts +214 -0
  285. package/scripts/telemetry-dashboard.sh +44 -0
  286. package/scripts/test-planning-loop-e2e.ts +181 -0
  287. package/scripts/test-server-inference.ts +49 -0
  288. package/scripts/test-state-sensitivity.ts +32 -0
  289. package/scripts/train/v2/benchmark.py +661 -0
  290. package/scripts/train/v2/generate_balanced.py +439 -0
  291. package/scripts/train/v2/generate_hard_negatives.py +219 -0
  292. package/scripts/train/v2/infer.py +149 -36
  293. package/scripts/train/v2/infer_server.py +224 -0
  294. package/scripts/train/v2/online_train.py +576 -0
  295. package/scripts/train/v2/precompute.py +24 -6
  296. package/template/CLAUDE.md +74 -132
@@ -0,0 +1 @@
1
+ {"version":3,"file":"linear.js","sourceRoot":"","sources":["../../src/commands/linear.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"peter.d.ts","sourceRoot":"","sources":["../../src/commands/peter.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAwsEH,wBAAsB,YAAY,CAChC,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,OAAO,CAAA;CAAO,iBA4JrK"}
1
+ {"version":3,"file":"peter.d.ts","sourceRoot":"","sources":["../../src/commands/peter.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA07EH,wBAAsB,YAAY,CAChC,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,OAAO,CAAA;CAAO,iBA4JrK"}
@@ -19,6 +19,7 @@ import { readEvals } from "../lib/eval-store.js";
19
19
  import { TrainingBuffer } from "../lib/training-buffer.js";
20
20
  import { PolicyHeadInference } from "../lib/policy-head.js";
21
21
  import { PiRpcBridge, CostMonitor, EventRouter } from "../lib/pi-sky/index.js";
22
+ import { createPlanningLoop } from "../lib/planning-loop.js";
22
23
  function hasRalphTui() {
23
24
  try {
24
25
  execSync("which ralph-tui", { stdio: "ignore" });
@@ -275,6 +276,21 @@ async function runTaskWithPi(bridge, task, costMonitor, timeout = 300000) {
275
276
  if (!bridge.started) {
276
277
  await bridge.start();
277
278
  }
279
+ // TOCTOU guard: re-verify hub before starting agent (TLA+ invariant: HubRequiredForScheduling)
280
+ // TLC found: agent can be scheduled when hub is up, then hub crashes before start
281
+ try {
282
+ const { guardHubAvailable } = await import("../lib/hub-health.js");
283
+ const projectRoot = process.cwd();
284
+ const guard = await guardHubAvailable(projectRoot, "peter-parker");
285
+ if (!guard.proceed) {
286
+ console.log(chalk.yellow(`\n ⚠ Hub health check failed: ${guard.reason}`));
287
+ console.log(chalk.gray(` Proceeding without hub (results won't be tracked).\n`));
288
+ // Don't block — hub is optional for execution, just warn
289
+ }
290
+ }
291
+ catch {
292
+ // Hub health check not available — proceed
293
+ }
278
294
  // Check critical path for model upgrade if cost monitor is active
279
295
  if (costMonitor) {
280
296
  await costMonitor.checkCriticalPath("experiment", task);
@@ -306,36 +322,84 @@ async function shutdownPiRuntime(state) {
306
322
  await state.bridge.shutdown().catch(() => { });
307
323
  }
308
324
  }
309
- async function runWithPR(projectRoot, task) {
310
- if (!task) {
311
- console.log(chalk.yellow("\n --task is required for pr mode"));
312
- console.log(chalk.gray(" Usage: jfl peter pr --task \"fix the login bug\"\n"));
313
- return;
314
- }
315
- if (!hasRalphTui()) {
316
- console.log(chalk.yellow("\n ralph-tui is not installed"));
317
- console.log(chalk.gray(" Install: bun install -g ralph-tui\n"));
318
- return;
319
- }
325
+ /**
326
+ * Run an agent task using pi in non-interactive mode.
327
+ *
328
+ * Pi automatically picks up project context:
329
+ * - AGENTS.md / CLAUDE.md — project instructions, skills, commands
330
+ * - JFL custom tools — jfl_context, jfl_memory_search, jfl_eval_status, etc.
331
+ * - Skills — eval, context, react-best-practices, etc.
332
+ *
333
+ * No lock files, no session management — just runs the task and exits.
334
+ */
335
+ async function runAgentWithPi(projectRoot, task) {
336
+ // Minimal append — pi already loads AGENTS.md and project context.
337
+ // Just add PP-specific guardrails.
338
+ const appendPrompt = [
339
+ "You are Peter Parker (PP), an autonomous agent in the JFL self-driving loop.",
340
+ "You are fixing an issue that was auto-picked from the backlog.",
341
+ "Rules:",
342
+ "- Make minimal, focused changes. Don't refactor unrelated code.",
343
+ "- Run the build (npm run build) and check for type errors before finishing.",
344
+ "- If tests exist for the area you're changing, run them.",
345
+ "- Do NOT create new test files unless the task specifically asks for tests.",
346
+ "- Do NOT modify files outside the scope of the task.",
347
+ "- When done, stop immediately. Do not ask for confirmation.",
348
+ ].join("\n");
349
+ console.log(chalk.cyan(" PP: Using pi agent (headless, with full JFL context)"));
350
+ await new Promise((resolve) => {
351
+ const env = { ...process.env };
352
+ // Prevent pi from detecting it's inside another agent
353
+ delete env.CLAUDECODE;
354
+ delete env.CLAUDE_CODE;
355
+ const child = spawn("pi", [
356
+ "--print", task,
357
+ "--append-system-prompt", appendPrompt,
358
+ "--no-session", // Ephemeral — no lock files, no session state
359
+ ], {
360
+ cwd: projectRoot,
361
+ stdio: "inherit",
362
+ env,
363
+ });
364
+ child.on("error", (error) => {
365
+ console.error(chalk.red(` PP: Failed to start pi: ${error.message}`));
366
+ resolve();
367
+ });
368
+ child.on("exit", () => {
369
+ resolve();
370
+ });
371
+ });
372
+ }
373
+ /**
374
+ * Run an agent task using ralph-tui (legacy fallback).
375
+ * Has session lock issues — prefer pi.
376
+ */
377
+ async function runAgentWithRalphTui(projectRoot, task) {
320
378
  const configPath = path.join(projectRoot, ".ralph-tui", "config.toml");
321
379
  if (!fs.existsSync(configPath)) {
322
380
  console.log(chalk.yellow("\n No Peter Parker config found"));
323
381
  console.log(chalk.gray(" Run: jfl peter setup\n"));
324
382
  return;
325
383
  }
326
- const baseBranch = "main";
327
- const branchName = `pp/fix-${Date.now()}`;
328
- console.log(chalk.cyan(`\n PP: Creating branch ${branchName}`));
329
- gitExec(["fetch", "origin", baseBranch], projectRoot);
330
- let checkout = gitExec(["checkout", "-b", branchName, `origin/${baseBranch}`], projectRoot);
331
- if (!checkout.ok) {
332
- checkout = gitExec(["checkout", "-b", branchName, baseBranch], projectRoot);
333
- }
334
- if (!checkout.ok) {
335
- console.log(chalk.red(` PP: Failed to create branch ${branchName}`));
336
- return;
384
+ // Clear stale locks — dead PIDs shouldn't block autonomous operation
385
+ const lockPath = path.join(projectRoot, ".ralph-tui", "ralph.lock");
386
+ if (fs.existsSync(lockPath)) {
387
+ try {
388
+ const lock = JSON.parse(fs.readFileSync(lockPath, "utf-8"));
389
+ try {
390
+ process.kill(lock.pid, 0); // Check if PID is alive
391
+ }
392
+ catch {
393
+ // PID is dead remove stale lock
394
+ fs.unlinkSync(lockPath);
395
+ console.log(chalk.gray(" PP: Cleared stale ralph-tui lock"));
396
+ }
397
+ }
398
+ catch {
399
+ fs.unlinkSync(lockPath);
400
+ }
337
401
  }
338
- console.log(chalk.cyan(` PP: Running agent on task: ${task}`));
402
+ console.log(chalk.cyan(" PP: Using ralph-tui agent (legacy)"));
339
403
  await new Promise((resolve) => {
340
404
  const ralphDir = path.join(projectRoot, ".ralph-tui");
341
405
  if (!fs.existsSync(ralphDir)) {
@@ -403,6 +467,39 @@ async function runWithPR(projectRoot, task) {
403
467
  resolve();
404
468
  });
405
469
  });
470
+ }
471
+ async function runWithPR(projectRoot, task) {
472
+ if (!task) {
473
+ console.log(chalk.yellow("\n --task is required for pr mode"));
474
+ console.log(chalk.gray(" Usage: jfl peter pr --task \"fix the login bug\"\n"));
475
+ return;
476
+ }
477
+ if (!hasPi() && !hasRalphTui()) {
478
+ console.log(chalk.yellow("\n Neither pi nor ralph-tui is installed"));
479
+ console.log(chalk.gray(" Install pi: npm i -g @mariozechner/pi-coding-agent"));
480
+ console.log(chalk.gray(" Or ralph-tui: bun install -g ralph-tui\n"));
481
+ return;
482
+ }
483
+ const baseBranch = "main";
484
+ const branchName = `pp/fix-${Date.now()}`;
485
+ console.log(chalk.cyan(`\n PP: Creating branch ${branchName}`));
486
+ gitExec(["fetch", "origin", baseBranch], projectRoot);
487
+ let checkout = gitExec(["checkout", "-b", branchName, `origin/${baseBranch}`], projectRoot);
488
+ if (!checkout.ok) {
489
+ checkout = gitExec(["checkout", "-b", branchName, baseBranch], projectRoot);
490
+ }
491
+ if (!checkout.ok) {
492
+ console.log(chalk.red(` PP: Failed to create branch ${branchName}`));
493
+ return;
494
+ }
495
+ console.log(chalk.cyan(` PP: Running agent on task: ${task}`));
496
+ // Use pi (preferred) or fall back to ralph-tui
497
+ if (hasPi()) {
498
+ await runAgentWithPi(projectRoot, task);
499
+ }
500
+ else {
501
+ await runAgentWithRalphTui(projectRoot, task);
502
+ }
406
503
  const diffCheck = gitExec(["diff", "--quiet", "HEAD"], projectRoot);
407
504
  const untrackedResult = spawnSync("git", ["ls-files", "--others", "--exclude-standard"], {
408
505
  cwd: projectRoot,
@@ -442,12 +539,16 @@ async function runWithPR(projectRoot, task) {
442
539
  }
443
540
  console.log(chalk.cyan(" PP: Creating PR..."));
444
541
  const prTitle = `PP: ${task.slice(0, 60)}`;
542
+ // Extract issue number from task text (e.g. "GitHub #20: ..." or "Closes #20")
543
+ const issueMatch = task.match(/GitHub #(\d+)/i) || task.match(/(?:Closes|Fixes|Resolves) #(\d+)/i);
544
+ const linkedIssue = issueMatch ? issueMatch[1] : null;
445
545
  const prBody = [
446
546
  "## Auto-generated by Peter Parker",
447
547
  "",
448
548
  `**Task:** ${task}`,
449
549
  `**Branch:** \`${branchName}\``,
450
550
  "",
551
+ ...(linkedIssue ? [`Closes #${linkedIssue}`, ""] : []),
451
552
  "### Eval Suite",
452
553
  "This PR will be evaluated by the CI eval suite.",
453
554
  "Auto-merge will trigger if eval score improves over baseline.",
@@ -533,6 +634,92 @@ async function rerankWithPolicyHead(projectRoot, proposals, evals, recentDeltas)
533
634
  return proposals;
534
635
  }
535
636
  }
637
+ /**
638
+ * Use the planning loop (PH → WM rollouts → select) to choose the best action.
639
+ * Falls back to rerankWithPolicyHead if planning loop fails.
640
+ */
641
+ async function planWithRollouts(projectRoot, agentId, goal, proposals, evals, recentDeltas, verbose = false) {
642
+ try {
643
+ const planner = createPlanningLoop(projectRoot, {
644
+ topK: Math.min(5, proposals.length),
645
+ verbose,
646
+ maxPlanningTimeMs: 10000, // 10s for experiment selection
647
+ });
648
+ if (!planner.isReady) {
649
+ if (verbose)
650
+ console.log(chalk.gray(" Planning loop: PolicyHead not loaded, using rerank fallback"));
651
+ const reranked = await rerankWithPolicyHead(projectRoot, proposals, evals, recentDeltas);
652
+ return { proposals: reranked, planningResult: null };
653
+ }
654
+ console.log(chalk.magenta(" Planning loop: PH → WM rollouts → select"));
655
+ const result = await planner.plan(agentId, goal);
656
+ if (result.selectedAction) {
657
+ console.log(chalk.magenta(` Planning completed in ${result.planningTimeMs}ms, ${result.rolloutsPerformed} rollouts`));
658
+ // Map planning results back to proposals by scoring alignment
659
+ const scoredProposals = proposals.map(p => {
660
+ // Find best matching evaluated action
661
+ const bestMatch = result.allActions
662
+ .filter(a => !a.filtered)
663
+ .sort((a, b) => {
664
+ // Score by how well the action type matches the proposal
665
+ const aMatch = proposalMatchesAction(p, a) ? 1 : 0;
666
+ const bMatch = proposalMatchesAction(p, b) ? 1 : 0;
667
+ if (aMatch !== bMatch)
668
+ return bMatch - aMatch;
669
+ return b.combinedScore - a.combinedScore;
670
+ })[0];
671
+ return {
672
+ proposal: p,
673
+ score: bestMatch?.combinedScore ?? 0,
674
+ prediction: bestMatch?.prediction,
675
+ };
676
+ });
677
+ scoredProposals.sort((a, b) => b.score - a.score);
678
+ // Log the ranked results
679
+ for (let i = 0; i < scoredProposals.length; i++) {
680
+ const s = scoredProposals[i];
681
+ const predDelta = s.prediction?.outcome?.immediate?.evalScoreChange;
682
+ const conf = s.prediction?.confidence;
683
+ console.log(chalk.gray(` #${i + 1} [score=${s.score.toFixed(3)}` +
684
+ (predDelta !== undefined ? ` pred_delta=${predDelta > 0 ? "+" : ""}${predDelta.toFixed(4)}` : "") +
685
+ (conf !== undefined ? ` conf=${conf.toFixed(2)}` : "") +
686
+ `] ${s.proposal.task.slice(0, 60)}`));
687
+ }
688
+ console.log();
689
+ return {
690
+ proposals: scoredProposals.map(s => s.proposal),
691
+ planningResult: result,
692
+ };
693
+ }
694
+ else {
695
+ console.log(chalk.yellow(` Planning loop: no valid action selected (${result.noSelectionReason})`));
696
+ const reranked = await rerankWithPolicyHead(projectRoot, proposals, evals, recentDeltas);
697
+ return { proposals: reranked, planningResult: result };
698
+ }
699
+ }
700
+ catch (err) {
701
+ console.log(chalk.yellow(` Planning loop failed: ${err.message}`));
702
+ const reranked = await rerankWithPolicyHead(projectRoot, proposals, evals, recentDeltas);
703
+ return { proposals: reranked, planningResult: null };
704
+ }
705
+ }
706
+ /** Check if a proposal's task description matches an evaluated action type */
707
+ function proposalMatchesAction(proposal, action) {
708
+ const task = proposal.task.toLowerCase();
709
+ const actionType = action.action.actionType;
710
+ const matches = {
711
+ "fix": ["fix", "bug", "error", "crash", "broken"],
712
+ "refactor": ["refactor", "clean", "simplify", "extract", "dedup"],
713
+ "feature": ["add", "implement", "create", "build", "new"],
714
+ "test": ["test", "coverage", "spec", "assert"],
715
+ "config": ["config", "setting", "env", "deploy"],
716
+ "experiment": ["experiment", "try", "investigate", "explore"],
717
+ "eval": ["eval", "score", "metric", "measure"],
718
+ "research": ["research", "read", "analyze", "understand"],
719
+ };
720
+ const keywords = matches[actionType] || [];
721
+ return keywords.some(kw => task.includes(kw));
722
+ }
536
723
  function writeJournalEntry(projectRoot, entry) {
537
724
  const journalDir = path.join(projectRoot, ".jfl", "journal");
538
725
  if (!fs.existsSync(journalDir)) {
@@ -650,7 +837,9 @@ Respond with ONLY a JSON array, no other text.`;
650
837
  .slice(0, 5)
651
838
  .map(e => e.score_delta ?? 0)
652
839
  .filter((d) => typeof d === "number");
653
- proposals = await rerankWithPolicyHead(projectRoot, proposals, evals, recentDeltas);
840
+ // Use planning loop (PH WM rollouts) when available, fallback to rerank
841
+ const planResult = await planWithRollouts(projectRoot, "peter-parker", "Select highest-impact experiment for eval score improvement", proposals, evals, recentDeltas);
842
+ proposals = planResult.proposals;
654
843
  console.log(chalk.bold(" Top 3 Proposals:\n"));
655
844
  for (let i = 0; i < Math.min(3, proposals.length); i++) {
656
845
  const p = proposals[i];
@@ -883,7 +1072,9 @@ Suggest the SINGLE highest-value change. JSON format:
883
1072
  if (jsonMatch) {
884
1073
  let proposals = JSON.parse(jsonMatch[0]);
885
1074
  const recentDeltas = results.slice(-5).map(r => r.delta);
886
- proposals = await rerankWithPolicyHead(projectRoot, proposals, evals, recentDeltas);
1075
+ // Use planning loop (PH WM rollouts) when available
1076
+ const planResult = await planWithRollouts(projectRoot, "peter-parker", `Autoresearch round ${round}: improve eval score`, proposals, evals, recentDeltas);
1077
+ proposals = planResult.proposals;
887
1078
  if (proposals.length > 0)
888
1079
  proposal = proposals[0];
889
1080
  }
@@ -1741,6 +1932,22 @@ Be concise. Output a JSON object: { "run": ["agent1", "agent2"], "skip": ["agent
1741
1932
  }
1742
1933
  console.log();
1743
1934
  }
1935
+ // TOCTOU guard: verify hub before starting agents (TLA+ invariant: HubRequiredForScheduling)
1936
+ try {
1937
+ const { guardHubAvailable } = await import("../lib/hub-health.js");
1938
+ const hubGuard = await guardHubAvailable(projectRoot, "daily-loop");
1939
+ if (hubGuard.proceed) {
1940
+ console.log(chalk.green(` Hub health: ✓ (${hubGuard.status.responseMs}ms)`));
1941
+ }
1942
+ else {
1943
+ console.log(chalk.yellow(` Hub health: ✗ (${hubGuard.status.error})`));
1944
+ console.log(chalk.gray(" Agents will run without hub tracking. Results may not be recorded."));
1945
+ }
1946
+ console.log();
1947
+ }
1948
+ catch {
1949
+ // Hub check unavailable — proceed
1950
+ }
1744
1951
  // Schedule next agent using meta-orchestrator
1745
1952
  const decision = orchestrator.scheduleNext();
1746
1953
  if (!decision) {