fifony 0.1.47 → 0.1.48

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 (89) hide show
  1. package/README.md +78 -0
  2. package/app/dist/assets/CommandPalette-CZDG20HW.js +1 -0
  3. package/app/dist/assets/{KeyboardShortcutsHelp-CqEFfGcE.js → KeyboardShortcutsHelp-TYhQc4aA.js} +1 -1
  4. package/app/dist/assets/OnboardingWizard-CQ9YmVIT.js +1 -0
  5. package/app/dist/assets/agents.lazy-CgakDm_P.js +1 -0
  6. package/app/dist/assets/analytics.lazy-C0rw3sov.js +1 -0
  7. package/app/dist/assets/{createLucideIcon-luywpIq4.js → createLucideIcon-B3bah5lk.js} +1 -1
  8. package/app/dist/assets/hooks-CNPue7d7.js +1 -0
  9. package/app/dist/assets/index-B8XCmr0-.css +1 -0
  10. package/app/dist/assets/index-Dfn02uW3.js +47 -0
  11. package/app/dist/assets/index.lazy-JdqhBwPd.js +44 -0
  12. package/app/dist/assets/services-CHpVij2M.css +1 -0
  13. package/app/dist/assets/services.lazy-BShKUCOt.js +12 -0
  14. package/app/dist/assets/vendor-X6HTElZW.js +9 -0
  15. package/app/dist/assets/viz-Dsh_q2DK.js +4 -0
  16. package/app/dist/index.html +5 -4
  17. package/app/dist/service-worker.js +32 -1
  18. package/dist/agent/run-local.js +89 -76
  19. package/dist/{agent-DFSFG6DG.js → agent-DJ4SCNBZ.js} +22 -17
  20. package/dist/{analytics-broadcaster-O4AE3RUK.js → analytics-broadcaster-INNYWHDJ.js} +25 -20
  21. package/dist/approve-plan.command-WE2CO3H2.js +21 -0
  22. package/dist/{chunk-HOIOVUHI.js → chunk-5M7PBFMZ.js} +8 -6
  23. package/dist/chunk-7R7XFXJM.js +1247 -0
  24. package/dist/{chunk-2PRRKBG6.js → chunk-A4P2MYJF.js} +22 -9
  25. package/dist/chunk-AFOV3ZAF.js +722 -0
  26. package/dist/chunk-AFP36N23.js +134 -0
  27. package/dist/{chunk-AAZKYWOY.js → chunk-AFYKGVSP.js} +103 -8
  28. package/dist/chunk-APJOZXRP.js +737 -0
  29. package/dist/chunk-DLSPRIQL.js +241 -0
  30. package/dist/{chunk-5AMWD66T.js → chunk-EDIPHR5B.js} +6 -4
  31. package/dist/{chunk-K36BWMUV.js → chunk-JU3MF3MW.js} +2526 -736
  32. package/dist/{chunk-7TXZYZR5.js → chunk-N5HCNY4O.js} +7 -5
  33. package/dist/{chunk-JRLWLZOD.js → chunk-NKMZYPIS.js} +31 -23
  34. package/dist/{chunk-PI7Y77R3.js → chunk-OFIVTM2E.js} +17 -7
  35. package/dist/{chunk-QH6VCTET.js → chunk-RCSJFMQG.js} +909 -98
  36. package/dist/{chunk-AAVROEQC.js → chunk-UR7T7IA6.js} +253 -349
  37. package/dist/{chunk-QHISYRXJ.js → chunk-VOYLU3MI.js} +57 -3
  38. package/dist/{chunk-EBCSQFPR.js → chunk-W5IULOWV.js} +2 -3
  39. package/dist/chunk-X37RNTWU.js +193 -0
  40. package/dist/{chunk-PACI3T4I.js → chunk-XY2APMDE.js} +13 -5
  41. package/dist/chunk-Z6ZWNWWR.js +34 -0
  42. package/dist/cli.js +45 -17
  43. package/dist/constants-AAP7ZGCX.js +124 -0
  44. package/dist/create-issue.command-SX3AXXIC.js +29 -0
  45. package/dist/fsm-agent-JGV22WK4.js +59 -0
  46. package/dist/{fsm-issue-EHTSKMFN.js → fsm-issue-LHIJM5VB.js} +12 -8
  47. package/dist/{fsm-service-7O4AJG2R.js → fsm-service-GGDKUTWS.js} +13 -4
  48. package/dist/{helpers-ON2S7UEF.js → helpers-AENVYEZJ.js} +6 -2
  49. package/dist/{issue-log-broadcaster-FZGVEEIX.js → issue-log-broadcaster-QQWM7LOV.js} +29 -18
  50. package/dist/{issues-3YNNTB4U.js → issues-RXFKKSXB.js} +10 -7
  51. package/dist/{log-analyzer-EIX6R6PP.js → log-analyzer-4LNXQISY.js} +30 -20
  52. package/dist/{logger-IFLXTQPS.js → logger-4F6ATWNA.js} +2 -1
  53. package/dist/mcp/server.js +6 -2
  54. package/dist/merge-workspace.command-ZNGIZC4O.js +29 -0
  55. package/dist/{parallel-executor-DWESCNX3.js → parallel-executor-OL5CB33L.js} +78 -19
  56. package/dist/{pid-manager-UBWXVSMD.js → pid-manager-EDT4DHAU.js} +2 -1
  57. package/dist/queue-workers-NSKIIMQ2.js +43 -0
  58. package/dist/replan-issue.command-73PETERX.js +21 -0
  59. package/dist/retry-issue.command-DIDP4OCS.js +21 -0
  60. package/dist/reverse-proxy-server-QSS3H4UH.js +97 -0
  61. package/dist/scheduler-5YORYECF.js +37 -0
  62. package/dist/service-log-broadcaster-JIUP2L3D.js +21 -0
  63. package/dist/{settings-SOTIS6ZD.js → settings-ZNDXYL46.js} +34 -23
  64. package/dist/settings.resource-OKUHXICJ.js +35 -0
  65. package/dist/{store-S3NAYZ3S.js → store-P3ACO6YA.js} +22 -17
  66. package/dist/telemetry-KVUFHDQS.js +828 -0
  67. package/dist/template-variants-HEPLYKMP.js +24 -0
  68. package/dist/trace-bundle-IJOV7IWH.js +41 -0
  69. package/dist/{web-push-QCTLS7EJ.js → web-push-X2LLMQ4M.js} +2 -1
  70. package/dist/websocket-Q2TUCIC2.js +103 -0
  71. package/dist/{workspace-OS7GPMCN.js → workspace-TDX3NJCX.js} +10 -6
  72. package/package.json +12 -9
  73. package/app/dist/assets/CommandPalette-CL8p78lG.js +0 -1
  74. package/app/dist/assets/OnboardingWizard-BmI50ZUv.js +0 -1
  75. package/app/dist/assets/analytics.lazy-CXGjZabc.js +0 -1
  76. package/app/dist/assets/index-CEaccpYh.js +0 -96
  77. package/app/dist/assets/index-CzzWGzux.css +0 -1
  78. package/app/dist/assets/vendor-uqBx3VSC.js +0 -9
  79. package/dist/approve-plan.command-QGQZZXTQ.js +0 -17
  80. package/dist/chunk-N4KFNX2G.js +0 -370
  81. package/dist/chunk-VM5QAYP5.js +0 -404
  82. package/dist/create-issue.command-VAKYRECC.js +0 -24
  83. package/dist/merge-workspace.command-T2NIGR4M.js +0 -24
  84. package/dist/queue-workers-V57BYXAY.js +0 -38
  85. package/dist/replan-issue.command-2GQ3QXCR.js +0 -17
  86. package/dist/retry-issue.command-GJBUUYDJ.js +0 -17
  87. package/dist/scheduler-KYILMWLD.js +0 -32
  88. package/dist/settings.resource-JMD3JQOS.js +0 -30
  89. package/dist/websocket-T2Y3BY4B.js +0 -61
@@ -17,14 +17,18 @@ import {
17
17
  setIssueStateMachinePlugin,
18
18
  setPersistNowFn,
19
19
  visualizeStateMachine
20
- } from "./chunk-JRLWLZOD.js";
21
- import "./chunk-QH6VCTET.js";
22
- import "./chunk-PI7Y77R3.js";
23
- import "./chunk-QHISYRXJ.js";
24
- import "./chunk-EBCSQFPR.js";
25
- import "./chunk-AAZKYWOY.js";
26
- import "./chunk-VM5QAYP5.js";
20
+ } from "./chunk-NKMZYPIS.js";
21
+ import "./chunk-RCSJFMQG.js";
22
+ import "./chunk-OFIVTM2E.js";
23
+ import "./chunk-AFP36N23.js";
24
+ import "./chunk-VOYLU3MI.js";
25
+ import "./chunk-W5IULOWV.js";
26
+ import "./chunk-APJOZXRP.js";
27
+ import "./chunk-AFYKGVSP.js";
28
+ import "./chunk-DLSPRIQL.js";
29
+ import "./chunk-X37RNTWU.js";
27
30
  import "./chunk-PXTIWKLQ.js";
31
+ import "./chunk-Z6ZWNWWR.js";
28
32
  export {
29
33
  ISSUE_STATE_MACHINE_ID,
30
34
  canTransitionIssue,
@@ -45,4 +49,4 @@ export {
45
49
  setPersistNowFn,
46
50
  visualizeStateMachine
47
51
  };
48
- //# sourceMappingURL=fsm-issue-EHTSKMFN.js.map
52
+ //# sourceMappingURL=fsm-issue-LHIJM5VB.js.map
@@ -4,29 +4,38 @@ import {
4
4
  getAllServiceStatuses,
5
5
  getServiceRuntime,
6
6
  getServiceStatus,
7
+ listServiceLogGenerations,
8
+ readServiceLogGenerationTail,
7
9
  readServiceLogTail,
8
10
  reconcileServiceStates,
9
11
  sendServiceEvent,
12
+ serviceLogGenerationPath,
10
13
  serviceLogPath,
11
14
  serviceStateMachineConfig,
12
15
  setServiceResourceStateApi,
13
16
  setServiceRuntime
14
- } from "./chunk-AAVROEQC.js";
15
- import "./chunk-VM5QAYP5.js";
16
- import "./chunk-PXTIWKLQ.js";
17
+ } from "./chunk-UR7T7IA6.js";
18
+ import "./chunk-7R7XFXJM.js";
17
19
  import "./chunk-3NE23NYW.js";
20
+ import "./chunk-DLSPRIQL.js";
21
+ import "./chunk-X37RNTWU.js";
22
+ import "./chunk-PXTIWKLQ.js";
23
+ import "./chunk-Z6ZWNWWR.js";
18
24
  export {
19
25
  SERVICE_STATE_MACHINE_ID,
20
26
  SERVICE_WATCHER_INTERVAL_MS,
21
27
  getAllServiceStatuses,
22
28
  getServiceRuntime,
23
29
  getServiceStatus,
30
+ listServiceLogGenerations,
31
+ readServiceLogGenerationTail,
24
32
  readServiceLogTail,
25
33
  reconcileServiceStates,
26
34
  sendServiceEvent,
35
+ serviceLogGenerationPath,
27
36
  serviceLogPath,
28
37
  serviceStateMachineConfig,
29
38
  setServiceResourceStateApi,
30
39
  setServiceRuntime
31
40
  };
32
- //# sourceMappingURL=fsm-service-7O4AJG2R.js.map
41
+ //# sourceMappingURL=fsm-service-GGDKUTWS.js.map
@@ -8,6 +8,7 @@ import {
8
8
  getNestedRecord,
9
9
  getNestedString,
10
10
  idToSafePath,
11
+ init_helpers,
11
12
  isoWeek,
12
13
  normalizeState,
13
14
  now,
@@ -23,7 +24,10 @@ import {
23
24
  toStringArray,
24
25
  toStringValue,
25
26
  withRetryBackoff
26
- } from "./chunk-VM5QAYP5.js";
27
+ } from "./chunk-DLSPRIQL.js";
28
+ import "./chunk-X37RNTWU.js";
29
+ import "./chunk-Z6ZWNWWR.js";
30
+ init_helpers();
27
31
  export {
28
32
  appendFileTail,
29
33
  clamp,
@@ -50,4 +54,4 @@ export {
50
54
  toStringValue,
51
55
  withRetryBackoff
52
56
  };
53
- //# sourceMappingURL=helpers-ON2S7UEF.js.map
57
+ //# sourceMappingURL=helpers-AENVYEZJ.js.map
@@ -1,28 +1,33 @@
1
1
  import {
2
2
  agentLogPath
3
- } from "./chunk-K36BWMUV.js";
4
- import "./chunk-PACI3T4I.js";
5
- import "./chunk-HOIOVUHI.js";
3
+ } from "./chunk-JU3MF3MW.js";
4
+ import "./chunk-XY2APMDE.js";
5
+ import "./chunk-5M7PBFMZ.js";
6
6
  import "./chunk-FH7HUPZX.js";
7
+ import "./chunk-EDIPHR5B.js";
8
+ import "./chunk-N5HCNY4O.js";
9
+ import "./chunk-NKMZYPIS.js";
10
+ import "./chunk-RCSJFMQG.js";
11
+ import "./chunk-A4P2MYJF.js";
12
+ import "./chunk-OFIVTM2E.js";
13
+ import "./chunk-AFP36N23.js";
7
14
  import {
8
15
  issueLogRoomSize,
9
16
  sendToIssueLogRoom
10
- } from "./chunk-N4KFNX2G.js";
11
- import "./chunk-AAVROEQC.js";
12
- import "./chunk-5AMWD66T.js";
13
- import "./chunk-7TXZYZR5.js";
14
- import "./chunk-JRLWLZOD.js";
15
- import "./chunk-QH6VCTET.js";
16
- import "./chunk-2PRRKBG6.js";
17
- import "./chunk-PI7Y77R3.js";
18
- import "./chunk-QHISYRXJ.js";
19
- import "./chunk-EBCSQFPR.js";
20
- import "./chunk-AAZKYWOY.js";
21
- import "./chunk-VM5QAYP5.js";
17
+ } from "./chunk-AFOV3ZAF.js";
18
+ import "./chunk-VOYLU3MI.js";
19
+ import "./chunk-W5IULOWV.js";
20
+ import "./chunk-APJOZXRP.js";
21
+ import "./chunk-UR7T7IA6.js";
22
+ import "./chunk-7R7XFXJM.js";
23
+ import "./chunk-3NE23NYW.js";
24
+ import "./chunk-AFYKGVSP.js";
25
+ import "./chunk-DLSPRIQL.js";
26
+ import "./chunk-X37RNTWU.js";
22
27
  import {
23
28
  logger
24
29
  } from "./chunk-PXTIWKLQ.js";
25
- import "./chunk-3NE23NYW.js";
30
+ import "./chunk-Z6ZWNWWR.js";
26
31
 
27
32
  // src/persistence/plugins/issue-log-broadcaster.ts
28
33
  import {
@@ -53,7 +58,13 @@ function readNewBytes(logPath, position) {
53
58
  function startIssueLogBroadcasting(issueId, workspacePath) {
54
59
  stopIssueLogBroadcasting(issueId);
55
60
  const logPath = agentLogPath(workspacePath);
56
- const entry = { timerId: null, position: 0 };
61
+ let initialPosition = 0;
62
+ try {
63
+ initialPosition = statSync(logPath).size;
64
+ } catch {
65
+ initialPosition = 0;
66
+ }
67
+ const entry = { timerId: null, position: initialPosition };
57
68
  const flush = () => {
58
69
  if (!existsSync(logPath)) return;
59
70
  try {
@@ -88,4 +99,4 @@ export {
88
99
  stopAllIssueLogBroadcasting,
89
100
  stopIssueLogBroadcasting
90
101
  };
91
- //# sourceMappingURL=issue-log-broadcaster-FZGVEEIX.js.map
102
+ //# sourceMappingURL=issue-log-broadcaster-QQWM7LOV.js.map
@@ -14,15 +14,18 @@ import {
14
14
  shouldUseFastMode,
15
15
  transitionIssue,
16
16
  validateConfig
17
- } from "./chunk-2PRRKBG6.js";
18
- import "./chunk-PI7Y77R3.js";
17
+ } from "./chunk-A4P2MYJF.js";
18
+ import "./chunk-OFIVTM2E.js";
19
19
  import {
20
20
  computeMetrics
21
- } from "./chunk-QHISYRXJ.js";
22
- import "./chunk-EBCSQFPR.js";
23
- import "./chunk-AAZKYWOY.js";
24
- import "./chunk-VM5QAYP5.js";
21
+ } from "./chunk-VOYLU3MI.js";
22
+ import "./chunk-W5IULOWV.js";
23
+ import "./chunk-APJOZXRP.js";
24
+ import "./chunk-AFYKGVSP.js";
25
+ import "./chunk-DLSPRIQL.js";
26
+ import "./chunk-X37RNTWU.js";
25
27
  import "./chunk-PXTIWKLQ.js";
28
+ import "./chunk-Z6ZWNWWR.js";
26
29
  export {
27
30
  addEvent,
28
31
  applyWorkflowConfig,
@@ -41,4 +44,4 @@ export {
41
44
  transitionIssue,
42
45
  validateConfig
43
46
  };
44
- //# sourceMappingURL=issues-3YNNTB4U.js.map
47
+ //# sourceMappingURL=issues-RXFKKSXB.js.map
@@ -1,35 +1,45 @@
1
1
  import {
2
2
  resolveServicesStageConfig
3
- } from "./chunk-K36BWMUV.js";
4
- import "./chunk-PACI3T4I.js";
5
- import "./chunk-HOIOVUHI.js";
3
+ } from "./chunk-JU3MF3MW.js";
4
+ import "./chunk-XY2APMDE.js";
5
+ import "./chunk-5M7PBFMZ.js";
6
6
  import "./chunk-FH7HUPZX.js";
7
- import "./chunk-N4KFNX2G.js";
8
- import "./chunk-AAVROEQC.js";
9
- import "./chunk-5AMWD66T.js";
10
- import "./chunk-7TXZYZR5.js";
11
- import "./chunk-JRLWLZOD.js";
12
- import "./chunk-QH6VCTET.js";
13
- import "./chunk-2PRRKBG6.js";
7
+ import "./chunk-EDIPHR5B.js";
8
+ import "./chunk-N5HCNY4O.js";
9
+ import "./chunk-NKMZYPIS.js";
10
+ import "./chunk-RCSJFMQG.js";
11
+ import "./chunk-A4P2MYJF.js";
14
12
  import {
15
13
  ADAPTERS,
16
14
  detectAvailableProviders,
17
15
  resolveProviderCapabilities
18
- } from "./chunk-PI7Y77R3.js";
19
- import "./chunk-QHISYRXJ.js";
20
- import "./chunk-EBCSQFPR.js";
21
- import "./chunk-AAZKYWOY.js";
16
+ } from "./chunk-OFIVTM2E.js";
17
+ import "./chunk-AFP36N23.js";
18
+ import "./chunk-AFOV3ZAF.js";
19
+ import "./chunk-VOYLU3MI.js";
20
+ import "./chunk-W5IULOWV.js";
21
+ import "./chunk-APJOZXRP.js";
22
+ import "./chunk-UR7T7IA6.js";
23
+ import "./chunk-7R7XFXJM.js";
24
+ import "./chunk-3NE23NYW.js";
25
+ import "./chunk-AFYKGVSP.js";
22
26
  import {
23
- TARGET_ROOT,
24
27
  appendFileTail,
25
- extractJsonObjects
26
- } from "./chunk-VM5QAYP5.js";
28
+ extractJsonObjects,
29
+ init_helpers
30
+ } from "./chunk-DLSPRIQL.js";
31
+ import {
32
+ TARGET_ROOT,
33
+ init_constants
34
+ } from "./chunk-X37RNTWU.js";
27
35
  import {
28
36
  logger
29
37
  } from "./chunk-PXTIWKLQ.js";
30
- import "./chunk-3NE23NYW.js";
38
+ import "./chunk-Z6ZWNWWR.js";
31
39
 
32
40
  // src/agents/planning/log-analyzer.ts
41
+ init_helpers();
42
+ init_constants();
33
43
  import { env } from "process";
34
44
  import { existsSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from "fs";
35
45
  import { spawn } from "child_process";
@@ -294,7 +304,7 @@ async function analyzeLogForFix(logTail, serviceName, config) {
294
304
  if (result === null) {
295
305
  let envelopeKeys = [];
296
306
  try {
297
- const { extractJsonObjects: extractJsonObjects2 } = await import("./helpers-ON2S7UEF.js");
307
+ const { extractJsonObjects: extractJsonObjects2 } = await import("./helpers-AENVYEZJ.js");
298
308
  const candidates = extractJsonObjects2(raw.trim());
299
309
  if (candidates.length > 0) envelopeKeys = Object.keys(JSON.parse(candidates[candidates.length - 1]));
300
310
  } catch {
@@ -348,4 +358,4 @@ export {
348
358
  analyzeLogForHealthcheck,
349
359
  analyzeLogForInsights
350
360
  };
351
- //# sourceMappingURL=log-analyzer-EIX6R6PP.js.map
361
+ //# sourceMappingURL=log-analyzer-4LNXQISY.js.map
@@ -3,9 +3,10 @@ import {
3
3
  initLogger,
4
4
  logger
5
5
  } from "./chunk-PXTIWKLQ.js";
6
+ import "./chunk-Z6ZWNWWR.js";
6
7
  export {
7
8
  getLogger,
8
9
  initLogger,
9
10
  logger
10
11
  };
11
- //# sourceMappingURL=logger-IFLXTQPS.js.map
12
+ //# sourceMappingURL=logger-4F6ATWNA.js.map
@@ -1,9 +1,12 @@
1
1
  import {
2
2
  renderPrompt
3
- } from "../chunk-AAZKYWOY.js";
3
+ } from "../chunk-AFYKGVSP.js";
4
4
  import {
5
+ init_helpers,
5
6
  parseIssueState
6
- } from "../chunk-VM5QAYP5.js";
7
+ } from "../chunk-DLSPRIQL.js";
8
+ import "../chunk-X37RNTWU.js";
9
+ import "../chunk-Z6ZWNWWR.js";
7
10
 
8
11
  // src/mcp/server.ts
9
12
  import { env as env3, stdin } from "process";
@@ -548,6 +551,7 @@ function listTools() {
548
551
 
549
552
  // src/mcp/tools/tool-executor.ts
550
553
  import { createHash } from "crypto";
554
+ init_helpers();
551
555
  function hashInput(value) {
552
556
  return createHash("sha1").update(value).digest("hex").slice(0, 10);
553
557
  }
@@ -0,0 +1,29 @@
1
+ import {
2
+ mergeWorkspaceCommand
3
+ } from "./chunk-JU3MF3MW.js";
4
+ import "./chunk-XY2APMDE.js";
5
+ import "./chunk-5M7PBFMZ.js";
6
+ import "./chunk-FH7HUPZX.js";
7
+ import "./chunk-EDIPHR5B.js";
8
+ import "./chunk-N5HCNY4O.js";
9
+ import "./chunk-NKMZYPIS.js";
10
+ import "./chunk-RCSJFMQG.js";
11
+ import "./chunk-A4P2MYJF.js";
12
+ import "./chunk-OFIVTM2E.js";
13
+ import "./chunk-AFP36N23.js";
14
+ import "./chunk-AFOV3ZAF.js";
15
+ import "./chunk-VOYLU3MI.js";
16
+ import "./chunk-W5IULOWV.js";
17
+ import "./chunk-APJOZXRP.js";
18
+ import "./chunk-UR7T7IA6.js";
19
+ import "./chunk-7R7XFXJM.js";
20
+ import "./chunk-3NE23NYW.js";
21
+ import "./chunk-AFYKGVSP.js";
22
+ import "./chunk-DLSPRIQL.js";
23
+ import "./chunk-X37RNTWU.js";
24
+ import "./chunk-PXTIWKLQ.js";
25
+ import "./chunk-Z6ZWNWWR.js";
26
+ export {
27
+ mergeWorkspaceCommand
28
+ };
29
+ //# sourceMappingURL=merge-workspace.command-ZNGIZC4O.js.map
@@ -1,37 +1,62 @@
1
1
  import {
2
2
  runAgentSession
3
- } from "./chunk-K36BWMUV.js";
4
- import "./chunk-PACI3T4I.js";
5
- import "./chunk-HOIOVUHI.js";
3
+ } from "./chunk-JU3MF3MW.js";
4
+ import "./chunk-XY2APMDE.js";
5
+ import "./chunk-5M7PBFMZ.js";
6
6
  import "./chunk-FH7HUPZX.js";
7
- import "./chunk-N4KFNX2G.js";
8
- import "./chunk-AAVROEQC.js";
9
- import "./chunk-5AMWD66T.js";
10
- import "./chunk-7TXZYZR5.js";
11
- import "./chunk-JRLWLZOD.js";
7
+ import "./chunk-EDIPHR5B.js";
8
+ import "./chunk-N5HCNY4O.js";
9
+ import "./chunk-NKMZYPIS.js";
12
10
  import {
13
11
  createGitWorktree
14
- } from "./chunk-QH6VCTET.js";
12
+ } from "./chunk-RCSJFMQG.js";
15
13
  import {
16
14
  addEvent
17
- } from "./chunk-2PRRKBG6.js";
15
+ } from "./chunk-A4P2MYJF.js";
18
16
  import {
19
17
  markIssueDirty
20
- } from "./chunk-PI7Y77R3.js";
21
- import "./chunk-QHISYRXJ.js";
22
- import "./chunk-EBCSQFPR.js";
23
- import "./chunk-AAZKYWOY.js";
18
+ } from "./chunk-OFIVTM2E.js";
19
+ import "./chunk-AFP36N23.js";
24
20
  import {
21
+ broadcastIssueProgress,
22
+ sendToAllClients
23
+ } from "./chunk-AFOV3ZAF.js";
24
+ import "./chunk-VOYLU3MI.js";
25
+ import "./chunk-W5IULOWV.js";
26
+ import "./chunk-APJOZXRP.js";
27
+ import "./chunk-UR7T7IA6.js";
28
+ import "./chunk-7R7XFXJM.js";
29
+ import "./chunk-3NE23NYW.js";
30
+ import "./chunk-AFYKGVSP.js";
31
+ import {
32
+ init_helpers,
25
33
  now
26
- } from "./chunk-VM5QAYP5.js";
34
+ } from "./chunk-DLSPRIQL.js";
35
+ import "./chunk-X37RNTWU.js";
27
36
  import {
28
37
  logger
29
38
  } from "./chunk-PXTIWKLQ.js";
30
- import "./chunk-3NE23NYW.js";
39
+ import "./chunk-Z6ZWNWWR.js";
31
40
 
32
41
  // src/agents/parallel-executor.ts
33
42
  import { join } from "path";
34
43
  import { execSync } from "child_process";
44
+ init_helpers();
45
+ function broadcastSubTaskState(issue, phase) {
46
+ const tasks = (issue.parallelSubTasks ?? []).map((t) => ({
47
+ id: t.id,
48
+ label: t.label,
49
+ status: t.status,
50
+ result: t.result?.slice(0, 200)
51
+ }));
52
+ sendToAllClients(JSON.stringify({
53
+ type: "issue:subtasks",
54
+ issueId: issue.id,
55
+ identifier: issue.identifier,
56
+ phase,
57
+ tasks
58
+ }));
59
+ }
35
60
  async function spawnParallelSubTasks(state, issue, provider, cycle, basePromptText, basePromptFile) {
36
61
  const subTaskDefs = issue.plan?.executionContract?.parallelSubTasks;
37
62
  if (!subTaskDefs || subTaskDefs.length < 2) return false;
@@ -44,7 +69,8 @@ async function spawnParallelSubTasks(state, issue, provider, cycle, basePromptTe
44
69
  }));
45
70
  markIssueDirty(issue.id);
46
71
  const mainWorktree = issue.workspacePath;
47
- const maxFanout = Math.min(subTaskDefs.length, 3);
72
+ const configuredFanout = state.config.maxParallelSubTasks ?? 3;
73
+ const maxFanout = Math.min(subTaskDefs.length, configuredFanout);
48
74
  const activeTasks = issue.parallelSubTasks.slice(0, maxFanout);
49
75
  for (const subTask of activeTasks) {
50
76
  const subWorktreePath = join(mainWorktree, `subtask-${subTask.id}`);
@@ -75,11 +101,24 @@ ${steps}
75
101
  Ignore steps not listed above.`;
76
102
  }
77
103
  const readyTasks = activeTasks.filter((t) => t.worktreePath && t.status !== "failed");
78
- addEvent(state, issue.id, "info", `Spawning ${readyTasks.length} parallel sub-agents.`);
104
+ addEvent(state, issue.id, "info", `Spawning ${readyTasks.length} parallel sub-agents: ${readyTasks.map((t) => t.label).join(", ")}.`);
105
+ broadcastSubTaskState(issue, "started");
79
106
  const results = await Promise.allSettled(
80
107
  readyTasks.map(async (subTask) => {
108
+ const subStartTs = Date.now();
81
109
  subTask.status = "running";
82
110
  markIssueDirty(issue.id);
111
+ addEvent(state, issue.id, "runner", `Sub-task "${subTask.label}" started.`);
112
+ broadcastIssueProgress({
113
+ issueId: issue.id,
114
+ identifier: issue.identifier,
115
+ phase: "turn_started",
116
+ turn: 1,
117
+ maxTurns: 1,
118
+ role: `subtask:${subTask.id}`,
119
+ provider: provider.provider,
120
+ elapsedMs: 0
121
+ });
83
122
  const subPrompt = buildSubTaskPrompt(subTask, basePromptText);
84
123
  try {
85
124
  const result = await runAgentSession(state, issue, provider, cycle, subTask.worktreePath, subPrompt, basePromptFile);
@@ -88,16 +127,36 @@ Ignore steps not listed above.`;
88
127
  subTask.completedAt = now();
89
128
  subTask.tokenUsage = issue.tokenUsage;
90
129
  markIssueDirty(issue.id);
130
+ broadcastIssueProgress({
131
+ issueId: issue.id,
132
+ identifier: issue.identifier,
133
+ phase: "turn_completed",
134
+ turn: 1,
135
+ maxTurns: 1,
136
+ role: `subtask:${subTask.id}`,
137
+ provider: provider.provider,
138
+ elapsedMs: Date.now() - subStartTs,
139
+ directiveStatus: result.success ? "done" : "failed",
140
+ directiveSummary: subTask.label
141
+ });
142
+ addEvent(
143
+ state,
144
+ issue.id,
145
+ "runner",
146
+ `Sub-task "${subTask.label}" ${result.success ? "completed" : "failed"} (${Math.round((Date.now() - subStartTs) / 1e3)}s).`
147
+ );
91
148
  return { subTask, result };
92
149
  } catch (err) {
93
150
  subTask.status = "failed";
94
151
  subTask.result = String(err);
95
152
  subTask.completedAt = now();
96
153
  markIssueDirty(issue.id);
154
+ addEvent(state, issue.id, "error", `Sub-task "${subTask.label}" crashed: ${String(err).slice(0, 200)}`);
97
155
  throw err;
98
156
  }
99
157
  })
100
158
  );
159
+ broadcastSubTaskState(issue, "completed");
101
160
  const successful = results.filter((r) => r.status === "fulfilled" && r.value.result.success).map((r) => r.value.subTask);
102
161
  for (const subTask of successful) {
103
162
  try {
@@ -121,4 +180,4 @@ Ignore steps not listed above.`;
121
180
  export {
122
181
  spawnParallelSubTasks
123
182
  };
124
- //# sourceMappingURL=parallel-executor-DWESCNX3.js.map
183
+ //# sourceMappingURL=parallel-executor-OL5CB33L.js.map
@@ -8,6 +8,7 @@ import {
8
8
  readDaemonExit,
9
9
  readDaemonPid
10
10
  } from "./chunk-3NE23NYW.js";
11
+ import "./chunk-Z6ZWNWWR.js";
11
12
  export {
12
13
  cleanStalePidFile,
13
14
  isAgentStillRunning,
@@ -18,4 +19,4 @@ export {
18
19
  readDaemonExit,
19
20
  readDaemonPid
20
21
  };
21
- //# sourceMappingURL=pid-manager-UBWXVSMD.js.map
22
+ //# sourceMappingURL=pid-manager-EDT4DHAU.js.map
@@ -0,0 +1,43 @@
1
+ import {
2
+ areQueueWorkersActive,
3
+ cleanTerminalWorkspaces,
4
+ enqueue,
5
+ getQueueStats,
6
+ initQueueWorkers,
7
+ recoverOrphans,
8
+ recoverState,
9
+ stopQueueWorkers
10
+ } from "./chunk-JU3MF3MW.js";
11
+ import "./chunk-XY2APMDE.js";
12
+ import "./chunk-5M7PBFMZ.js";
13
+ import "./chunk-FH7HUPZX.js";
14
+ import "./chunk-EDIPHR5B.js";
15
+ import "./chunk-N5HCNY4O.js";
16
+ import "./chunk-NKMZYPIS.js";
17
+ import "./chunk-RCSJFMQG.js";
18
+ import "./chunk-A4P2MYJF.js";
19
+ import "./chunk-OFIVTM2E.js";
20
+ import "./chunk-AFP36N23.js";
21
+ import "./chunk-AFOV3ZAF.js";
22
+ import "./chunk-VOYLU3MI.js";
23
+ import "./chunk-W5IULOWV.js";
24
+ import "./chunk-APJOZXRP.js";
25
+ import "./chunk-UR7T7IA6.js";
26
+ import "./chunk-7R7XFXJM.js";
27
+ import "./chunk-3NE23NYW.js";
28
+ import "./chunk-AFYKGVSP.js";
29
+ import "./chunk-DLSPRIQL.js";
30
+ import "./chunk-X37RNTWU.js";
31
+ import "./chunk-PXTIWKLQ.js";
32
+ import "./chunk-Z6ZWNWWR.js";
33
+ export {
34
+ areQueueWorkersActive,
35
+ cleanTerminalWorkspaces,
36
+ enqueue,
37
+ getQueueStats,
38
+ initQueueWorkers,
39
+ recoverOrphans,
40
+ recoverState,
41
+ stopQueueWorkers
42
+ };
43
+ //# sourceMappingURL=queue-workers-NSKIIMQ2.js.map
@@ -0,0 +1,21 @@
1
+ import {
2
+ replanIssueCommand
3
+ } from "./chunk-EDIPHR5B.js";
4
+ import "./chunk-N5HCNY4O.js";
5
+ import "./chunk-NKMZYPIS.js";
6
+ import "./chunk-RCSJFMQG.js";
7
+ import "./chunk-A4P2MYJF.js";
8
+ import "./chunk-OFIVTM2E.js";
9
+ import "./chunk-AFP36N23.js";
10
+ import "./chunk-VOYLU3MI.js";
11
+ import "./chunk-W5IULOWV.js";
12
+ import "./chunk-APJOZXRP.js";
13
+ import "./chunk-AFYKGVSP.js";
14
+ import "./chunk-DLSPRIQL.js";
15
+ import "./chunk-X37RNTWU.js";
16
+ import "./chunk-PXTIWKLQ.js";
17
+ import "./chunk-Z6ZWNWWR.js";
18
+ export {
19
+ replanIssueCommand
20
+ };
21
+ //# sourceMappingURL=replan-issue.command-73PETERX.js.map
@@ -0,0 +1,21 @@
1
+ import {
2
+ retryIssueCommand
3
+ } from "./chunk-XY2APMDE.js";
4
+ import "./chunk-N5HCNY4O.js";
5
+ import "./chunk-NKMZYPIS.js";
6
+ import "./chunk-RCSJFMQG.js";
7
+ import "./chunk-A4P2MYJF.js";
8
+ import "./chunk-OFIVTM2E.js";
9
+ import "./chunk-AFP36N23.js";
10
+ import "./chunk-VOYLU3MI.js";
11
+ import "./chunk-W5IULOWV.js";
12
+ import "./chunk-APJOZXRP.js";
13
+ import "./chunk-AFYKGVSP.js";
14
+ import "./chunk-DLSPRIQL.js";
15
+ import "./chunk-X37RNTWU.js";
16
+ import "./chunk-PXTIWKLQ.js";
17
+ import "./chunk-Z6ZWNWWR.js";
18
+ export {
19
+ retryIssueCommand
20
+ };
21
+ //# sourceMappingURL=retry-issue.command-DIDP4OCS.js.map