openfox 2.0.113 → 2.0.115

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 (99) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/dist/CHANGELOG.md +43 -0
  3. package/dist/agent-defaults/builder.agent.md +1 -0
  4. package/dist/agent-defaults/planner.agent.md +1 -0
  5. package/dist/{backend-P3GHHLHJ.js → backend-LVYHLGQJ.js} +2 -2
  6. package/dist/{chat-handler-PEK5JDHO.js → chat-handler-5SP265CR.js} +32 -26
  7. package/dist/{chunk-HKD4IMOE.js → chunk-27NABDXB.js} +2 -2
  8. package/dist/{chunk-FF2EKUQO.js → chunk-2FCLCUVR.js} +6 -6
  9. package/dist/{chunk-ONONXV3N.js → chunk-37QLXLML.js} +4 -4
  10. package/dist/{chunk-YB6WYVNY.js → chunk-3KBRMBTP.js} +2 -2
  11. package/dist/{chunk-YGPPFVLJ.js → chunk-3NPLERPQ.js} +17 -17
  12. package/dist/{chunk-XQR76MQ5.js → chunk-3PG65AXG.js} +18 -3
  13. package/dist/chunk-3QQAIUZI.js +957 -0
  14. package/dist/{chunk-PWXBIUEY.js → chunk-5PT4UMRR.js} +89 -1
  15. package/dist/chunk-5V3BF67X.js +7 -0
  16. package/dist/{chunk-6UPBZ2ZR.js → chunk-6KPJLELC.js} +4 -4
  17. package/dist/chunk-6RGACY4E.js +1081 -0
  18. package/dist/{chunk-BNFGDTEU.js → chunk-AESOGRFK.js} +2 -2
  19. package/dist/{chunk-YHEQTVFV.js → chunk-AZHWLLPP.js} +1 -1
  20. package/dist/{chunk-TCGWZBTS.js → chunk-BVVCRIVM.js} +4 -4
  21. package/dist/{chunk-EMI3YYLP.js → chunk-BWVO5WFK.js} +4 -4
  22. package/dist/{chunk-CP44U7BT.js → chunk-ERNWAKUB.js} +7 -7
  23. package/dist/{chunk-WWTYWLDM.js → chunk-HD6Y77RO.js} +2 -2
  24. package/dist/{chunk-4NMGX5F2.js → chunk-I7FY2LTR.js} +2 -2
  25. package/dist/{chunk-5VYSKVZT.js → chunk-JFK4GKQD.js} +321 -54
  26. package/dist/{chunk-43M7QZMX.js → chunk-JGWHRYWG.js} +4 -4
  27. package/dist/{chunk-Y64PEWKP.js → chunk-JLAR2CMV.js} +2 -2
  28. package/dist/{chunk-BYSUSSSC.js → chunk-LNNBLB6G.js} +48 -151
  29. package/dist/{chunk-V4664YKR.js → chunk-LTYL6ZGH.js} +2 -2
  30. package/dist/{chunk-R2MTWC7C.js → chunk-M6X6AIEG.js} +6 -4
  31. package/dist/{chunk-VGRVPYZ5.js → chunk-O6DU226D.js} +2 -2
  32. package/dist/{chunk-TEQEDOWI.js → chunk-OCBBAEMT.js} +288 -316
  33. package/dist/{chunk-SNLLOXCM.js → chunk-OCSTEGK7.js} +3 -3
  34. package/dist/{chunk-HGOTZWON.js → chunk-OKVHMKE2.js} +60 -1064
  35. package/dist/chunk-OSXPQSLW.js +128 -0
  36. package/dist/{chunk-O2YSYW2F.js → chunk-TFF5T3K3.js} +10 -10
  37. package/dist/{chunk-3R43CMLS.js → chunk-TGLVWAFC.js} +11 -11
  38. package/dist/{chunk-L737Y63F.js → chunk-TOKQ2UVG.js} +2 -2
  39. package/dist/{chunk-AZFZE36I.js → chunk-VWEATA7R.js} +18 -8
  40. package/dist/{chunk-BKCW3JLL.js → chunk-X25Q6RAV.js} +1 -1
  41. package/dist/{chunk-JR54MDZI.js → chunk-YX3OQBNX.js} +3 -3
  42. package/dist/{chunk-EC5T5A6O.js → chunk-ZTOG6LJD.js} +3 -3
  43. package/dist/cli/dev.js +1 -1
  44. package/dist/cli/index.js +1 -1
  45. package/dist/client-KE7EDI2D.js +16 -0
  46. package/dist/{client-pure-VFZIIK4S.js → client-pure-66Z6FWS6.js} +2 -2
  47. package/dist/command-defaults/mark-done.command.md +14 -0
  48. package/dist/compactor-SKVC2VNL.js +32 -0
  49. package/dist/{dynamic-context-F2XTQJR5.js → dynamic-context-QNB4ELLP.js} +10 -9
  50. package/dist/{events-224IO5NJ.js → events-5PLO4QJU.js} +9 -7
  51. package/dist/{folding-YTTTVS56.js → folding-CJWYFUKD.js} +7 -5
  52. package/dist/http-client-KLODRQC2.js +11 -0
  53. package/dist/{inspect-proxy-B7LGGTM7.js → inspect-proxy-K6QKEYDT.js} +4 -4
  54. package/dist/launch-EOXVWLOP.js +52 -0
  55. package/dist/{manager-4QGXI6WZ.js → manager-LZ3JQ443.js} +5 -5
  56. package/dist/{model-overrides-OY2YKUNV.js → model-overrides-5UVW3KTE.js} +4 -4
  57. package/dist/orchestrator-ED3KFPXO.js +63 -0
  58. package/dist/package.json +3 -3
  59. package/dist/{path-security-PFMZY7IA.js → path-security-B6EZC63L.js} +13 -11
  60. package/dist/{platform-QNGCKX4L.js → platform-6RPPBHKH.js} +4 -4
  61. package/dist/{processor-NYPJ5PFA.js → processor-226ZOTRI.js} +31 -25
  62. package/dist/{project-creator-AWP2JUFS.js → project-creator-VBFE35NI.js} +3 -3
  63. package/dist/{projects-C4353IQK.js → projects-AXHZOBR2.js} +5 -3
  64. package/dist/{protocol-CBT1d98i.d.ts → protocol-JdxRpPxM.d.ts} +21 -3
  65. package/dist/{protocol-LZZ7C4VQ.js → protocol-RKSWKNXI.js} +3 -3
  66. package/dist/provider/index.d.ts +4 -4
  67. package/dist/{provider-PIRPN2CC.js → provider-DL4ZWQY7.js} +8 -8
  68. package/dist/{provider-manager-GNEPR6UN.js → provider-manager-6CLRMGDE.js} +8 -8
  69. package/dist/{registry-VCKDSVKA.js → registry-5XI5NDBF.js} +6 -4
  70. package/dist/{serve-6DRHQLCG.js → serve-DARV4NJG.js} +36 -33
  71. package/dist/server/index.d.ts +13 -6
  72. package/dist/server/index.js +35 -32
  73. package/dist/server-LQJ7MBDS.js +55 -0
  74. package/dist/service-4JKTGPRG.js +25 -0
  75. package/dist/{session-overrides-RNKV35MU.js → session-overrides-AZKV6BRD.js} +8 -6
  76. package/dist/{sessions-D5CEPQGU.js → sessions-752IZIIK.js} +7 -5
  77. package/dist/{settings-BNRNX6IW.js → settings-2AHDKCD7.js} +3 -3
  78. package/dist/shared/index.d.ts +3 -3
  79. package/dist/shared/index.js +1 -1
  80. package/dist/skill-defaults/workflows/SKILL.md +24 -6
  81. package/dist/tasks-XJXHU623.js +217 -0
  82. package/dist/{tools-2B363F7L.js → tools-QYYNFMGU.js} +31 -23
  83. package/dist/{types-cVfqOj6M.d.ts → types-CIVhQMvD.d.ts} +1 -1
  84. package/dist/{types-BAxh20ZL.d.ts → types-Df7NM9b5.d.ts} +76 -1
  85. package/dist/{update-IQMRYN7J.js → update-2REP2WB6.js} +2 -2
  86. package/dist/web/assets/{index-CjWC6EQ4.css → index-BmILAZrT.css} +1 -1
  87. package/dist/web/assets/index-M7ToECa4.js +324 -0
  88. package/dist/web/index.html +2 -2
  89. package/dist/web/sw.js +1 -1
  90. package/dist/workflow-defaults/default.workflow.json +5 -3
  91. package/dist/{workspace-YUNHV4WS.js → workspace-RMZVTFJD.js} +4 -4
  92. package/package.json +3 -3
  93. package/dist/chunk-B2PHPBFU.js +0 -7
  94. package/dist/client-3LJGD6KY.js +0 -16
  95. package/dist/compactor-ZBNKANHV.js +0 -30
  96. package/dist/http-client-YC3UA5OZ.js +0 -11
  97. package/dist/orchestrator-JKBY7B3P.js +0 -57
  98. package/dist/server-HUHFJW7U.js +0 -48
  99. package/dist/web/assets/index-DBUtUSHK.js +0 -323
@@ -1,52 +1,55 @@
1
1
  import {
2
2
  createServer,
3
3
  createServerHandle
4
- } from "../chunk-TEQEDOWI.js";
4
+ } from "../chunk-OCBBAEMT.js";
5
5
  import "../chunk-RSB4AR2A.js";
6
6
  import "../chunk-IJ53Y77N.js";
7
- import "../chunk-HGOTZWON.js";
8
- import "../chunk-3R43CMLS.js";
9
- import "../chunk-YGPPFVLJ.js";
10
- import "../chunk-O2YSYW2F.js";
7
+ import "../chunk-OKVHMKE2.js";
8
+ import "../chunk-TGLVWAFC.js";
9
+ import "../chunk-3QQAIUZI.js";
10
+ import "../chunk-3NPLERPQ.js";
11
+ import "../chunk-JFK4GKQD.js";
12
+ import "../chunk-TFF5T3K3.js";
13
+ import "../chunk-2FCLCUVR.js";
11
14
  import "../chunk-WLJJRX22.js";
12
- import "../chunk-EMI3YYLP.js";
13
- import "../chunk-5VYSKVZT.js";
14
- import "../chunk-FF2EKUQO.js";
15
- import "../chunk-JR54MDZI.js";
16
- import "../chunk-HKD4IMOE.js";
17
- import "../chunk-R2MTWC7C.js";
18
- import "../chunk-EC5T5A6O.js";
15
+ import "../chunk-BWVO5WFK.js";
16
+ import "../chunk-YX3OQBNX.js";
17
+ import "../chunk-27NABDXB.js";
18
+ import "../chunk-M6X6AIEG.js";
19
+ import "../chunk-ZTOG6LJD.js";
19
20
  import "../chunk-I72ACQ6R.js";
20
21
  import "../chunk-JE7LW7Y6.js";
21
22
  import "../chunk-OAN4BXEW.js";
22
- import "../chunk-VGRVPYZ5.js";
23
+ import "../chunk-O6DU226D.js";
23
24
  import "../chunk-J7GAZGZT.js";
24
- import "../chunk-SNLLOXCM.js";
25
- import "../chunk-6UPBZ2ZR.js";
26
- import "../chunk-CP44U7BT.js";
27
- import "../chunk-4NMGX5F2.js";
28
- import "../chunk-BNFGDTEU.js";
25
+ import "../chunk-6RGACY4E.js";
26
+ import "../chunk-OCSTEGK7.js";
27
+ import "../chunk-6KPJLELC.js";
28
+ import "../chunk-ERNWAKUB.js";
29
+ import "../chunk-VWEATA7R.js";
30
+ import "../chunk-I7FY2LTR.js";
31
+ import "../chunk-AESOGRFK.js";
29
32
  import "../chunk-JURM3RPZ.js";
30
- import "../chunk-Y64PEWKP.js";
31
- import "../chunk-XQR76MQ5.js";
32
- import "../chunk-B2PHPBFU.js";
33
- import "../chunk-YB6WYVNY.js";
33
+ import "../chunk-JLAR2CMV.js";
34
+ import "../chunk-5V3BF67X.js";
35
+ import "../chunk-3KBRMBTP.js";
34
36
  import "../chunk-LCLH6ZUL.js";
35
- import "../chunk-AZFZE36I.js";
36
- import "../chunk-BYSUSSSC.js";
37
- import "../chunk-TCGWZBTS.js";
37
+ import "../chunk-LNNBLB6G.js";
38
+ import "../chunk-OSXPQSLW.js";
39
+ import "../chunk-3PG65AXG.js";
40
+ import "../chunk-BVVCRIVM.js";
38
41
  import "../chunk-J2GP3J3X.js";
39
- import "../chunk-43M7QZMX.js";
42
+ import "../chunk-JGWHRYWG.js";
40
43
  import "../chunk-V4IE7HJY.js";
41
- import "../chunk-YHEQTVFV.js";
44
+ import "../chunk-AZHWLLPP.js";
42
45
  import "../chunk-HNCM3D7Y.js";
43
- import "../chunk-L737Y63F.js";
44
- import "../chunk-V4664YKR.js";
45
- import "../chunk-WWTYWLDM.js";
46
- import "../chunk-PWXBIUEY.js";
46
+ import "../chunk-TOKQ2UVG.js";
47
+ import "../chunk-LTYL6ZGH.js";
48
+ import "../chunk-HD6Y77RO.js";
49
+ import "../chunk-5PT4UMRR.js";
47
50
  import "../chunk-K44MW7JJ.js";
48
51
  import "../chunk-VUQCQXXJ.js";
49
- import "../chunk-BKCW3JLL.js";
52
+ import "../chunk-X25Q6RAV.js";
50
53
  import "../chunk-KSXCOHHW.js";
51
54
  import "../chunk-CQGTEGKL.js";
52
55
  import "../chunk-5WRI5ZAA.js";
@@ -0,0 +1,55 @@
1
+ import {
2
+ createWebSocketServer,
3
+ signalMcpReady
4
+ } from "./chunk-OKVHMKE2.js";
5
+ import "./chunk-TGLVWAFC.js";
6
+ import "./chunk-3QQAIUZI.js";
7
+ import "./chunk-3NPLERPQ.js";
8
+ import "./chunk-JFK4GKQD.js";
9
+ import "./chunk-TFF5T3K3.js";
10
+ import "./chunk-2FCLCUVR.js";
11
+ import "./chunk-BWVO5WFK.js";
12
+ import "./chunk-YX3OQBNX.js";
13
+ import "./chunk-27NABDXB.js";
14
+ import "./chunk-M6X6AIEG.js";
15
+ import "./chunk-ZTOG6LJD.js";
16
+ import "./chunk-I72ACQ6R.js";
17
+ import "./chunk-JE7LW7Y6.js";
18
+ import "./chunk-OAN4BXEW.js";
19
+ import "./chunk-O6DU226D.js";
20
+ import "./chunk-J7GAZGZT.js";
21
+ import "./chunk-6RGACY4E.js";
22
+ import "./chunk-OCSTEGK7.js";
23
+ import "./chunk-6KPJLELC.js";
24
+ import "./chunk-ERNWAKUB.js";
25
+ import "./chunk-VWEATA7R.js";
26
+ import "./chunk-I7FY2LTR.js";
27
+ import "./chunk-AESOGRFK.js";
28
+ import "./chunk-JURM3RPZ.js";
29
+ import "./chunk-JLAR2CMV.js";
30
+ import "./chunk-3KBRMBTP.js";
31
+ import "./chunk-LCLH6ZUL.js";
32
+ import "./chunk-LNNBLB6G.js";
33
+ import "./chunk-OSXPQSLW.js";
34
+ import "./chunk-3PG65AXG.js";
35
+ import "./chunk-BVVCRIVM.js";
36
+ import "./chunk-J2GP3J3X.js";
37
+ import "./chunk-JGWHRYWG.js";
38
+ import "./chunk-V4IE7HJY.js";
39
+ import "./chunk-AZHWLLPP.js";
40
+ import "./chunk-HNCM3D7Y.js";
41
+ import "./chunk-TOKQ2UVG.js";
42
+ import "./chunk-LTYL6ZGH.js";
43
+ import "./chunk-HD6Y77RO.js";
44
+ import "./chunk-5PT4UMRR.js";
45
+ import "./chunk-K44MW7JJ.js";
46
+ import "./chunk-VUQCQXXJ.js";
47
+ import "./chunk-X25Q6RAV.js";
48
+ import "./chunk-KSXCOHHW.js";
49
+ import "./chunk-CQGTEGKL.js";
50
+ import "./chunk-5WRI5ZAA.js";
51
+ export {
52
+ createWebSocketServer,
53
+ signalMcpReady
54
+ };
55
+ //# sourceMappingURL=server-LQJ7MBDS.js.map
@@ -0,0 +1,25 @@
1
+ import {
2
+ createTasksService,
3
+ isTaskConflictError,
4
+ isTaskGateError
5
+ } from "./chunk-6RGACY4E.js";
6
+ import "./chunk-OSXPQSLW.js";
7
+ import "./chunk-3PG65AXG.js";
8
+ import "./chunk-BVVCRIVM.js";
9
+ import "./chunk-J2GP3J3X.js";
10
+ import "./chunk-JGWHRYWG.js";
11
+ import "./chunk-V4IE7HJY.js";
12
+ import "./chunk-AZHWLLPP.js";
13
+ import "./chunk-HNCM3D7Y.js";
14
+ import "./chunk-TOKQ2UVG.js";
15
+ import "./chunk-LTYL6ZGH.js";
16
+ import "./chunk-HD6Y77RO.js";
17
+ import "./chunk-5PT4UMRR.js";
18
+ import "./chunk-K44MW7JJ.js";
19
+ import "./chunk-5WRI5ZAA.js";
20
+ export {
21
+ createTasksService,
22
+ isTaskConflictError,
23
+ isTaskGateError
24
+ };
25
+ //# sourceMappingURL=service-4JKTGPRG.js.map
@@ -3,11 +3,13 @@ import {
3
3
  getAllSessionOverrides,
4
4
  getSessionDisabledServers,
5
5
  setSessionDisabledServers
6
- } from "./chunk-SNLLOXCM.js";
7
- import "./chunk-AZFZE36I.js";
8
- import "./chunk-BYSUSSSC.js";
9
- import "./chunk-WWTYWLDM.js";
10
- import "./chunk-PWXBIUEY.js";
6
+ } from "./chunk-OCSTEGK7.js";
7
+ import "./chunk-VWEATA7R.js";
8
+ import "./chunk-LNNBLB6G.js";
9
+ import "./chunk-OSXPQSLW.js";
10
+ import "./chunk-3PG65AXG.js";
11
+ import "./chunk-HD6Y77RO.js";
12
+ import "./chunk-5PT4UMRR.js";
11
13
  import "./chunk-K44MW7JJ.js";
12
14
  import "./chunk-CQGTEGKL.js";
13
15
  import "./chunk-5WRI5ZAA.js";
@@ -17,4 +19,4 @@ export {
17
19
  getSessionDisabledServers,
18
20
  setSessionDisabledServers
19
21
  };
20
- //# sourceMappingURL=session-overrides-RNKV35MU.js.map
22
+ //# sourceMappingURL=session-overrides-AZKV6BRD.js.map
@@ -24,10 +24,12 @@ import {
24
24
  updateSessionRunning,
25
25
  updateSessionWorkdir,
26
26
  updateWorkflowExecutionStatus
27
- } from "./chunk-AZFZE36I.js";
28
- import "./chunk-BYSUSSSC.js";
29
- import "./chunk-WWTYWLDM.js";
30
- import "./chunk-PWXBIUEY.js";
27
+ } from "./chunk-VWEATA7R.js";
28
+ import "./chunk-LNNBLB6G.js";
29
+ import "./chunk-OSXPQSLW.js";
30
+ import "./chunk-3PG65AXG.js";
31
+ import "./chunk-HD6Y77RO.js";
32
+ import "./chunk-5PT4UMRR.js";
31
33
  import "./chunk-K44MW7JJ.js";
32
34
  import "./chunk-CQGTEGKL.js";
33
35
  import "./chunk-5WRI5ZAA.js";
@@ -58,4 +60,4 @@ export {
58
60
  updateSessionWorkdir,
59
61
  updateWorkflowExecutionStatus
60
62
  };
61
- //# sourceMappingURL=sessions-D5CEPQGU.js.map
63
+ //# sourceMappingURL=sessions-752IZIIK.js.map
@@ -6,8 +6,8 @@ import {
6
6
  getMaxVisibleItems,
7
7
  getSetting,
8
8
  setSetting
9
- } from "./chunk-WWTYWLDM.js";
10
- import "./chunk-PWXBIUEY.js";
9
+ } from "./chunk-HD6Y77RO.js";
10
+ import "./chunk-5PT4UMRR.js";
11
11
  import "./chunk-K44MW7JJ.js";
12
12
  import "./chunk-5WRI5ZAA.js";
13
13
  export {
@@ -19,4 +19,4 @@ export {
19
19
  getSetting,
20
20
  setSetting
21
21
  };
22
- //# sourceMappingURL=settings-BNRNX6IW.js.map
22
+ //# sourceMappingURL=settings-2AHDKCD7.js.map
@@ -1,6 +1,6 @@
1
- import { a as Message, S as SessionStats } from '../types-BAxh20ZL.js';
2
- export { A as Attachment, C as CallStatsDataPoint, b as Config, c as ContextState, d as ContextWindow, e as Criterion, f as CriterionAttempt, g as CriterionStatus, h as CriterionValidation, D as DangerLevel, i as Diagnostic, E as EditContextEdit, j as EditContextLine, k as EditContextRegion, l as ElementData, m as ExecutionState, F as FileReadEntry, I as InjectedFile, L as LLMCallStats, n as LlmBackend, o as MessageRole, p as MessageSegment, q as MessageStats, r as MetadataEntry, M as ModelConfig, s as ModelSessionStats, P as PreparingToolCall, t as Project, u as Provider, v as ProviderBackend, R as RecentUserPrompt, w as Session, x as SessionMetadata, y as SessionMode, z as SessionPhase, B as SessionSummary, G as StatsDataPoint, H as StatsIdentity, J as Todo, T as ToolCall, K as ToolMode, N as ToolName, O as ToolResult, U as UserStepChoice, V as ValidationResult, W as WorkflowExecution, Q as WorkflowExecutionStatus, X as WorkflowLaunchScope, Y as WorkflowParameter, Z as WorkflowScope } from '../types-BAxh20ZL.js';
3
- export { A as AgentEvent, a as AskAnswerPayload, b as AskUserEvent, B as BackgroundProcess, c as BackgroundProcessExitedPayload, d as BackgroundProcessOutputPayload, e as BackgroundProcessRemovedPayload, f as BackgroundProcessStartedPayload, g as BackgroundProcessStatus, C as ChatAskUserPayload, h as ChatDeltaPayload, i as ChatDonePayload, j as ChatErrorPayload, k as ChatFormatRetryPayload, l as ChatMessagePayload, m as ChatMessageUpdatedPayload, n as ChatPathConfirmationPayload, o as ChatProgressPayload, p as ChatThinkingPayload, q as ChatTodoPayload, r as ChatToolCallPayload, s as ChatToolOutputPayload, t as ChatToolPreparingPayload, u as ChatToolResultPayload, v as ChatVisionFallbackPayload, w as ChoiceOption, x as ClientMessage, y as ClientMessageType, z as ContextCompactionEvent, D as ContextPreviewPayload, E as ContextStatePayload, F as CriteriaUpdatedPayload, G as DevServerOutputPayload, H as DevServerStatePayload, I as DiffLine, J as ErrorPayload, K as GitDiffFile, L as GitStatusPayload, M as LogLine, N as LspDiagnosticsPayload, O as MetadataUpdatedPayload, P as ModeChangedPayload, Q as PathConfirmPayload, R as PathConfirmationReason, S as PendingPathConfirmationPayload, T as PendingQuestionPayload, U as PhaseChangedPayload, V as ProjectDeletedPayload, W as ProjectListPayload, X as ProjectStatePayload, Y as ProviderChangedPayload, Z as QueueAddedEvent, _ as QueueCancelledEvent, $ as QueueDrainedEvent, a0 as QueueEvent, a1 as QueueEventType, a2 as QueueStatePayload, a3 as QueuedMessage, a4 as ServerMessage, a5 as ServerMessageType, a6 as SessionCreatedPayload, a7 as SessionListPayload, a8 as SessionLoadPayload, a9 as SessionNameGeneratedPayload, aa as SessionRunningPayload, ab as SessionStatePayload, ac as TaskCompletedPayload, ad as WorkflowWaitingPayload, ae as createClientMessage, af as createServerMessage, ag as isClientMessage, ah as isServerMessage } from '../protocol-CBT1d98i.js';
1
+ import { a as Message, S as SessionStats } from '../types-Df7NM9b5.js';
2
+ export { A as Attachment, C as CallStatsDataPoint, b as Config, c as ContextState, d as ContextWindow, e as Criterion, f as CriterionAttempt, g as CriterionStatus, h as CriterionValidation, D as DangerLevel, i as Diagnostic, E as EditContextEdit, j as EditContextLine, k as EditContextRegion, l as ElementData, m as ExecutionState, F as FileReadEntry, I as InjectedFile, L as LLMCallStats, n as LlmBackend, o as MessageRole, p as MessageSegment, q as MessageStats, r as MetadataEntry, M as ModelConfig, s as ModelSessionStats, P as PreparingToolCall, t as Project, u as ProjectTask, v as ProjectTaskCounts, w as ProjectTaskSettings, x as Provider, y as ProviderBackend, R as RecentUserPrompt, z as Session, B as SessionMetadata, G as SessionMode, H as SessionPhase, J as SessionSummary, K as StatsDataPoint, N as StatsIdentity, O as TaskActor, Q as TaskAuditEntry, U as TaskGateConfig, V as TaskGateValue, W as TaskRunState, X as TaskStatus, Y as Todo, T as ToolCall, Z as ToolMode, _ as ToolName, $ as ToolResult, a0 as UserStepChoice, a1 as ValidationResult, a2 as WorkflowExecution, a3 as WorkflowExecutionStatus, a4 as WorkflowLaunchScope, a5 as WorkflowParameter, a6 as WorkflowScope } from '../types-Df7NM9b5.js';
3
+ export { A as AgentEvent, a as AskAnswerPayload, b as AskUserEvent, B as BackgroundProcess, c as BackgroundProcessExitedPayload, d as BackgroundProcessOutputPayload, e as BackgroundProcessRemovedPayload, f as BackgroundProcessStartedPayload, g as BackgroundProcessStatus, C as ChatAskUserPayload, h as ChatDeltaPayload, i as ChatDonePayload, j as ChatErrorPayload, k as ChatFormatRetryPayload, l as ChatMessagePayload, m as ChatMessageUpdatedPayload, n as ChatPathConfirmationPayload, o as ChatProgressPayload, p as ChatThinkingPayload, q as ChatTodoPayload, r as ChatToolCallPayload, s as ChatToolOutputPayload, t as ChatToolPreparingPayload, u as ChatToolResultPayload, v as ChatVisionFallbackPayload, w as ChoiceOption, x as ClientMessage, y as ClientMessageType, z as ContextCompactionEvent, D as ContextPreviewPayload, E as ContextStatePayload, F as CriteriaUpdatedPayload, G as DevServerOutputPayload, H as DevServerStatePayload, I as DiffLine, J as ErrorPayload, K as GitDiffFile, L as GitStatusPayload, M as LogLine, N as LspDiagnosticsPayload, O as MetadataUpdatedPayload, P as ModeChangedPayload, Q as PathConfirmPayload, R as PathConfirmationReason, S as PendingPathConfirmationPayload, T as PendingQuestionPayload, U as PhaseChangedPayload, V as ProjectDeletedPayload, W as ProjectListPayload, X as ProjectStatePayload, Y as ProviderChangedPayload, Z as QueueAddedEvent, _ as QueueCancelledEvent, $ as QueueDrainedEvent, a0 as QueueEvent, a1 as QueueEventType, a2 as QueueStatePayload, a3 as QueuedMessage, a4 as ServerMessage, a5 as ServerMessageType, a6 as SessionCreatedPayload, a7 as SessionListPayload, a8 as SessionLoadPayload, a9 as SessionNameGeneratedPayload, aa as SessionRunningPayload, ab as SessionStatePayload, ac as TaskCompletedPayload, ad as TasksUpdatePayload, ae as WorkflowWaitingPayload, af as createClientMessage, ag as createServerMessage, ah as isClientMessage, ai as isServerMessage } from '../protocol-JdxRpPxM.js';
4
4
 
5
5
  /**
6
6
  * Session stats computation - aggregates response-level MessageStats from
@@ -6,7 +6,7 @@ import {
6
6
  createServerMessage,
7
7
  isClientMessage,
8
8
  isServerMessage
9
- } from "../chunk-BKCW3JLL.js";
9
+ } from "../chunk-X25Q6RAV.js";
10
10
  import "../chunk-5WRI5ZAA.js";
11
11
  export {
12
12
  computeSessionStats,
@@ -323,12 +323,30 @@ workflow):
323
323
 
324
324
  - Running a sub-group executes **only** steps whose `subGroup` matches, starting at the
325
325
  group's first step.
326
- - Within a group, only transitions with no `subGroup` **or** the same `subGroup` are
327
- considered.
328
- - A transition pointing to a step **outside** the active group is treated as `$done` (the
329
- slice completes).
330
-
331
- On a full run, `subGroup` is purely organizational (used for display/grouping).
326
+ - Only untagged transitions and transitions tagged with the running sub-group (or a
327
+ sub-group already entered via escape) are candidates, evaluated first-match-wins.
328
+ - A candidate transition pointing to a step **outside** the active group is treated as
329
+ `$done` (the slice completes) — **unless** it is tagged with an entered sub-group.
330
+ Such a transition **escapes**: its target step is pulled into the slice and executes,
331
+ and the target's own sub-group tag becomes eligible too, so a slice can loop into
332
+ another sub-group and back (e.g. `verify` failure → `build` → `verify` → … →
333
+ all passed → `$done`).
334
+
335
+ Escaping example from the bundled "Build & Verify" workflow:
336
+
337
+ - `verify` step: `always → build` tagged `subGroup: "verify"` — lets the "verify" slice
338
+ pull the builder back in on failure.
339
+
340
+ Untagged transitions keep slices closed: in the "build" slice, the `build` step's
341
+ untagged `metadata_all_in → verify` edge is clamped to `$done`, so implementing alone
342
+ finishes without escalating into the verifier (verification is the "verify" slice's job).
343
+
344
+ Because only tagged transitions may leave the slice, a foreign-group-tagged transition
345
+ cannot preempt an in-slice one: transitions tagged with a sub-group that was never
346
+ entered are not evaluated at all in a slice run.
347
+
348
+ On a full run, `subGroup` (on steps and transitions) is purely organizational; transition
349
+ tags are ignored and every step's transitions apply as written.
332
350
 
333
351
  ---
334
352
 
@@ -0,0 +1,217 @@
1
+ import {
2
+ getGateConfig,
3
+ getTaskSettings,
4
+ isTaskConflictError,
5
+ isTaskGateError
6
+ } from "./chunk-6RGACY4E.js";
7
+ import "./chunk-OSXPQSLW.js";
8
+ import {
9
+ getProject
10
+ } from "./chunk-3PG65AXG.js";
11
+ import "./chunk-BVVCRIVM.js";
12
+ import "./chunk-J2GP3J3X.js";
13
+ import "./chunk-JGWHRYWG.js";
14
+ import "./chunk-V4IE7HJY.js";
15
+ import "./chunk-AZHWLLPP.js";
16
+ import "./chunk-HNCM3D7Y.js";
17
+ import "./chunk-TOKQ2UVG.js";
18
+ import "./chunk-LTYL6ZGH.js";
19
+ import "./chunk-HD6Y77RO.js";
20
+ import "./chunk-5PT4UMRR.js";
21
+ import "./chunk-K44MW7JJ.js";
22
+ import "./chunk-5WRI5ZAA.js";
23
+
24
+ // src/server/routes/tasks.ts
25
+ import "express";
26
+ function registerTaskRoutes(router, tasksService) {
27
+ const requireProject = (req, res) => {
28
+ const projectId = req.params["projectId"];
29
+ if (!getProject(projectId)) {
30
+ res.status(404).json({ error: "Project not found" });
31
+ return null;
32
+ }
33
+ return projectId;
34
+ };
35
+ const handleError = (res, error) => {
36
+ if (isTaskGateError(error)) {
37
+ return res.status(422).json({
38
+ error: error.message,
39
+ code: "GATE_BLOCKED",
40
+ missing: error.missing,
41
+ task: error.task
42
+ });
43
+ }
44
+ if (isTaskConflictError(error)) {
45
+ return res.status(409).json({ error: error.message, code: "CONFLICT", task: error.task });
46
+ }
47
+ return res.status(400).json({ error: error instanceof Error ? error.message : "Unknown error" });
48
+ };
49
+ const HUMAN = "human";
50
+ router.get("/projects/:projectId/tasks", (req, res) => {
51
+ const projectId = requireProject(req, res);
52
+ if (!projectId) return;
53
+ res.json(tasksService.snapshot(projectId));
54
+ });
55
+ router.get("/projects/:projectId/tasks/count", (req, res) => {
56
+ const projectId = requireProject(req, res);
57
+ if (!projectId) return;
58
+ res.json({ counts: tasksService.counts(projectId) });
59
+ });
60
+ router.get("/projects/:projectId/tasks/gates", (req, res) => {
61
+ const projectId = requireProject(req, res);
62
+ if (!projectId) return;
63
+ res.json({ gates: getGateConfig(projectId) });
64
+ });
65
+ router.put("/projects/:projectId/tasks/gates", (req, res) => {
66
+ const projectId = requireProject(req, res);
67
+ if (!projectId) return;
68
+ const { gates } = req.body;
69
+ if (!Array.isArray(gates)) {
70
+ return res.status(400).json({ error: "gates (array) is required" });
71
+ }
72
+ const normalized = gates.map(
73
+ (g, i) => ({
74
+ id: typeof g?.id === "string" && g.id ? g.id : `gate_${i}`,
75
+ name: typeof g?.name === "string" && g.name ? g.name : `Gate ${i + 1}`,
76
+ description: typeof g?.description === "string" ? g.description : "",
77
+ required: g?.required !== false,
78
+ variant: g?.variant === "ready" ? "ready" : "done"
79
+ })
80
+ );
81
+ res.json({ gates: tasksService.setGateConfig(projectId, normalized, { actor: HUMAN }) });
82
+ });
83
+ router.get("/projects/:projectId/tasks/settings", (req, res) => {
84
+ const projectId = requireProject(req, res);
85
+ if (!projectId) return;
86
+ res.json({ settings: getTaskSettings(projectId) });
87
+ });
88
+ router.put("/projects/:projectId/tasks/settings", (req, res) => {
89
+ const projectId = requireProject(req, res);
90
+ if (!projectId) return;
91
+ const { slotLimit, queuePaused } = req.body;
92
+ const settings = {};
93
+ if (typeof slotLimit === "number") {
94
+ if (!Number.isInteger(slotLimit) || slotLimit < 1 || slotLimit > 10) {
95
+ return res.status(400).json({ error: "slotLimit must be an integer between 1 and 10" });
96
+ }
97
+ settings.slotLimit = slotLimit;
98
+ }
99
+ if (typeof queuePaused === "boolean") settings.queuePaused = queuePaused;
100
+ if (Object.keys(settings).length === 0) {
101
+ return res.status(400).json({ error: "Provide slotLimit and/or queuePaused" });
102
+ }
103
+ tasksService.setSettings(projectId, settings).then((saved) => {
104
+ res.json({ settings: saved });
105
+ });
106
+ });
107
+ router.post("/projects/:projectId/tasks", (req, res) => {
108
+ const projectId = requireProject(req, res);
109
+ if (!projectId) return;
110
+ const { prompt, attachments, agentId, providerId, model } = req.body;
111
+ if (typeof prompt !== "string") {
112
+ return res.status(400).json({ error: "prompt (string) is required" });
113
+ }
114
+ try {
115
+ const task = tasksService.create(
116
+ projectId,
117
+ {
118
+ prompt,
119
+ ...Array.isArray(attachments) ? { attachments } : {},
120
+ ...typeof agentId === "string" ? { agentId } : {},
121
+ ...typeof providerId === "string" ? { providerId } : {},
122
+ ...typeof model === "string" ? { model } : {}
123
+ },
124
+ { actor: HUMAN }
125
+ );
126
+ res.status(201).json({ task });
127
+ } catch (error) {
128
+ handleError(res, error);
129
+ }
130
+ });
131
+ router.get("/projects/:projectId/tasks/:taskId", (req, res) => {
132
+ const projectId = requireProject(req, res);
133
+ if (!projectId) return;
134
+ const task = tasksService.get(projectId, req.params["taskId"]);
135
+ if (!task) return res.status(404).json({ error: "Task not found" });
136
+ res.json({ task });
137
+ });
138
+ router.put("/projects/:projectId/tasks/:taskId", (req, res) => {
139
+ const projectId = requireProject(req, res);
140
+ if (!projectId) return;
141
+ const { prompt, attachments, agentId, providerId, model, expectedVersion } = req.body;
142
+ const patch = {};
143
+ if (typeof prompt === "string") patch.prompt = prompt;
144
+ if (Array.isArray(attachments)) {
145
+ patch.attachments = attachments;
146
+ }
147
+ if (typeof agentId === "string" || agentId === null) patch.agentId = agentId;
148
+ if (typeof providerId === "string" || providerId === null) patch.providerId = providerId;
149
+ if (typeof model === "string" || model === null) patch.model = model;
150
+ if (Object.keys(patch).length === 0) {
151
+ return res.status(400).json({ error: "No updatable fields provided" });
152
+ }
153
+ tasksService.update(projectId, req.params["taskId"], patch, { actor: HUMAN }, expectedVersion).then(({ task }) => res.json({ task })).catch((error) => handleError(res, error));
154
+ });
155
+ router.delete("/projects/:projectId/tasks/:taskId", (req, res) => {
156
+ const projectId = requireProject(req, res);
157
+ if (!projectId) return;
158
+ tasksService.remove(projectId, req.params["taskId"], { actor: HUMAN }).then(() => res.status(204).end()).catch((error) => handleError(res, error));
159
+ });
160
+ router.post("/projects/:projectId/tasks/:taskId/duplicate", (req, res) => {
161
+ const projectId = requireProject(req, res);
162
+ if (!projectId) return;
163
+ try {
164
+ const task = tasksService.duplicate(projectId, req.params["taskId"], { actor: HUMAN });
165
+ res.status(201).json({ task });
166
+ } catch (error) {
167
+ handleError(res, error);
168
+ }
169
+ });
170
+ router.post("/projects/:projectId/tasks/:taskId/move", (req, res) => {
171
+ const projectId = requireProject(req, res);
172
+ if (!projectId) return;
173
+ const { to, reason, expectedVersion } = req.body;
174
+ if (!["todo", "in_progress", "done"].includes(to)) {
175
+ return res.status(400).json({ error: "to must be one of: todo, in_progress, done" });
176
+ }
177
+ tasksService.move(projectId, req.params["taskId"], to, {
178
+ actor: HUMAN,
179
+ ...typeof reason === "string" ? { reason } : {},
180
+ ...typeof expectedVersion === "number" ? { expectedVersion } : {}
181
+ }).then((result) => res.json(result)).catch((error) => handleError(res, error));
182
+ });
183
+ router.put("/projects/:projectId/tasks/:taskId/gate-values/:gateId", (req, res) => {
184
+ const projectId = requireProject(req, res);
185
+ if (!projectId) return;
186
+ const { value, expectedVersion } = req.body;
187
+ if (typeof value !== "string") {
188
+ return res.status(400).json({ error: "value (string) is required" });
189
+ }
190
+ tasksService.setGateValue(
191
+ projectId,
192
+ req.params["taskId"],
193
+ req.params["gateId"],
194
+ value,
195
+ { actor: HUMAN },
196
+ void 0,
197
+ expectedVersion
198
+ ).then(({ task }) => res.json({ task })).catch((error) => handleError(res, error));
199
+ });
200
+ router.post("/projects/:projectId/tasks/:taskId/reorder", (req, res) => {
201
+ const projectId = requireProject(req, res);
202
+ if (!projectId) return;
203
+ const { status, index } = req.body;
204
+ if (!["todo", "in_progress", "done"].includes(status) || typeof index !== "number") {
205
+ return res.status(400).json({ error: "status and index (number) are required" });
206
+ }
207
+ try {
208
+ res.json({ task: tasksService.reorder(projectId, req.params["taskId"], status, index) });
209
+ } catch (error) {
210
+ handleError(res, error);
211
+ }
212
+ });
213
+ }
214
+ export {
215
+ registerTaskRoutes
216
+ };
217
+ //# sourceMappingURL=tasks-XJXHU623.js.map
@@ -7,50 +7,57 @@ import {
7
7
  getToolRegistryForSubAgent,
8
8
  parseToolPermissions,
9
9
  setMcpTools,
10
+ setTasksService,
10
11
  stepDoneTool,
11
12
  validateToolAction
12
- } from "./chunk-5VYSKVZT.js";
13
- import "./chunk-FF2EKUQO.js";
14
- import "./chunk-JR54MDZI.js";
15
- import "./chunk-HKD4IMOE.js";
16
- import "./chunk-R2MTWC7C.js";
17
- import "./chunk-EC5T5A6O.js";
13
+ } from "./chunk-JFK4GKQD.js";
14
+ import "./chunk-2FCLCUVR.js";
15
+ import "./chunk-YX3OQBNX.js";
16
+ import "./chunk-27NABDXB.js";
17
+ import "./chunk-M6X6AIEG.js";
18
+ import "./chunk-ZTOG6LJD.js";
18
19
  import "./chunk-I72ACQ6R.js";
19
20
  import "./chunk-JE7LW7Y6.js";
20
21
  import "./chunk-OAN4BXEW.js";
21
- import "./chunk-VGRVPYZ5.js";
22
+ import "./chunk-O6DU226D.js";
22
23
  import "./chunk-J7GAZGZT.js";
23
- import "./chunk-SNLLOXCM.js";
24
+ import "./chunk-6RGACY4E.js";
25
+ import "./chunk-OCSTEGK7.js";
24
26
  import {
25
27
  PathAccessDeniedError,
26
28
  cancelPathConfirmationsForSession,
27
29
  getConfirmationSessionId,
28
30
  providePathConfirmation,
29
31
  requestPathAccess
30
- } from "./chunk-6UPBZ2ZR.js";
31
- import "./chunk-CP44U7BT.js";
32
- import "./chunk-4NMGX5F2.js";
33
- import "./chunk-BNFGDTEU.js";
32
+ } from "./chunk-6KPJLELC.js";
33
+ import "./chunk-ERNWAKUB.js";
34
+ import "./chunk-VWEATA7R.js";
35
+ import "./chunk-I7FY2LTR.js";
36
+ import "./chunk-AESOGRFK.js";
34
37
  import {
35
38
  AskUserInterrupt,
36
39
  cancelQuestionsForSession,
37
40
  getPendingQuestionsForSession,
38
41
  provideAnswer
39
42
  } from "./chunk-JURM3RPZ.js";
40
- import "./chunk-Y64PEWKP.js";
41
- import "./chunk-XQR76MQ5.js";
42
- import "./chunk-YB6WYVNY.js";
43
+ import "./chunk-JLAR2CMV.js";
44
+ import "./chunk-3KBRMBTP.js";
43
45
  import "./chunk-LCLH6ZUL.js";
44
- import "./chunk-AZFZE36I.js";
45
- import "./chunk-BYSUSSSC.js";
46
+ import "./chunk-LNNBLB6G.js";
47
+ import "./chunk-OSXPQSLW.js";
48
+ import "./chunk-3PG65AXG.js";
49
+ import "./chunk-BVVCRIVM.js";
46
50
  import "./chunk-J2GP3J3X.js";
51
+ import "./chunk-JGWHRYWG.js";
47
52
  import "./chunk-V4IE7HJY.js";
48
- import "./chunk-YHEQTVFV.js";
49
- import "./chunk-L737Y63F.js";
50
- import "./chunk-WWTYWLDM.js";
51
- import "./chunk-PWXBIUEY.js";
53
+ import "./chunk-AZHWLLPP.js";
54
+ import "./chunk-HNCM3D7Y.js";
55
+ import "./chunk-TOKQ2UVG.js";
56
+ import "./chunk-LTYL6ZGH.js";
57
+ import "./chunk-HD6Y77RO.js";
58
+ import "./chunk-5PT4UMRR.js";
52
59
  import "./chunk-K44MW7JJ.js";
53
- import "./chunk-BKCW3JLL.js";
60
+ import "./chunk-X25Q6RAV.js";
54
61
  import "./chunk-KSXCOHHW.js";
55
62
  import "./chunk-CQGTEGKL.js";
56
63
  import "./chunk-5WRI5ZAA.js";
@@ -72,7 +79,8 @@ export {
72
79
  providePathConfirmation,
73
80
  requestPathAccess,
74
81
  setMcpTools,
82
+ setTasksService,
75
83
  stepDoneTool,
76
84
  validateToolAction
77
85
  };
78
- //# sourceMappingURL=tools-2B363F7L.js.map
86
+ //# sourceMappingURL=tools-QYYNFMGU.js.map
@@ -1,4 +1,4 @@
1
- import { T as ToolCall, A as Attachment } from './types-BAxh20ZL.js';
1
+ import { T as ToolCall, A as Attachment } from './types-Df7NM9b5.js';
2
2
 
3
3
  interface LLMMessage {
4
4
  role: 'system' | 'user' | 'assistant' | 'tool';