openfox 2.0.113 → 2.0.114
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.
- package/CHANGELOG.md +22 -0
- package/dist/CHANGELOG.md +22 -0
- package/dist/agent-defaults/builder.agent.md +1 -0
- package/dist/agent-defaults/planner.agent.md +1 -0
- package/dist/{backend-P3GHHLHJ.js → backend-LVYHLGQJ.js} +2 -2
- package/dist/{chat-handler-PEK5JDHO.js → chat-handler-KWXRSWXZ.js} +31 -25
- package/dist/{chunk-HKD4IMOE.js → chunk-2XD65L7M.js} +2 -2
- package/dist/{chunk-AZFZE36I.js → chunk-3O77NT4T.js} +17 -7
- package/dist/{chunk-HGOTZWON.js → chunk-7GWARYQC.js} +60 -1064
- package/dist/{chunk-YHEQTVFV.js → chunk-AZHWLLPP.js} +1 -1
- package/dist/{chunk-6UPBZ2ZR.js → chunk-BZVW77PI.js} +4 -4
- package/dist/{chunk-YGPPFVLJ.js → chunk-FW4NDUBL.js} +15 -15
- package/dist/{chunk-O2YSYW2F.js → chunk-GUHHUDNL.js} +6 -6
- package/dist/{chunk-WWTYWLDM.js → chunk-HP5CIB66.js} +2 -2
- package/dist/{chunk-ONONXV3N.js → chunk-HV6IALXF.js} +4 -4
- package/dist/{chunk-4NMGX5F2.js → chunk-I7FY2LTR.js} +2 -2
- package/dist/{chunk-Y64PEWKP.js → chunk-JP7NM545.js} +2 -2
- package/dist/{chunk-CP44U7BT.js → chunk-JXLRL5JR.js} +5 -5
- package/dist/{chunk-5VYSKVZT.js → chunk-K733B5T2.js} +254 -20
- package/dist/{chunk-SNLLOXCM.js → chunk-L63Q4JQJ.js} +3 -3
- package/dist/{chunk-43M7QZMX.js → chunk-LXYPMFTH.js} +3 -3
- package/dist/{chunk-TCGWZBTS.js → chunk-MUSPWEBB.js} +3 -3
- package/dist/chunk-NCZRWCJN.js +7 -0
- package/dist/{chunk-JR54MDZI.js → chunk-NLO64UE3.js} +2 -2
- package/dist/{chunk-3R43CMLS.js → chunk-NWJLWLKF.js} +8 -8
- package/dist/chunk-OSXPQSLW.js +128 -0
- package/dist/chunk-OTYAEEX3.js +1081 -0
- package/dist/{chunk-V4664YKR.js → chunk-OXSTNSCF.js} +2 -2
- package/dist/{chunk-R2MTWC7C.js → chunk-P5UANBBX.js} +6 -4
- package/dist/{chunk-PWXBIUEY.js → chunk-PBW3YC3G.js} +85 -1
- package/dist/{chunk-TEQEDOWI.js → chunk-QD7MRMCH.js} +245 -289
- package/dist/{chunk-BNFGDTEU.js → chunk-SA34STZ6.js} +2 -2
- package/dist/{chunk-VGRVPYZ5.js → chunk-SBSUDHL4.js} +2 -2
- package/dist/{chunk-XQR76MQ5.js → chunk-SFZGMB2G.js} +2 -2
- package/dist/{chunk-EC5T5A6O.js → chunk-TKKP56QK.js} +3 -3
- package/dist/{chunk-BYSUSSSC.js → chunk-UPBWEHIL.js} +30 -148
- package/dist/{chunk-YB6WYVNY.js → chunk-UTIQ7OO5.js} +2 -2
- package/dist/{chunk-EMI3YYLP.js → chunk-VPVLO436.js} +4 -4
- package/dist/chunk-W77NBJAZ.js +957 -0
- package/dist/{chunk-BKCW3JLL.js → chunk-X25Q6RAV.js} +1 -1
- package/dist/{chunk-FF2EKUQO.js → chunk-YGJIK3CG.js} +4 -4
- package/dist/cli/dev.js +1 -1
- package/dist/cli/index.js +1 -1
- package/dist/{client-3LJGD6KY.js → client-EM7ISGUP.js} +6 -6
- package/dist/{compactor-ZBNKANHV.js → compactor-V3LR7APW.js} +13 -12
- package/dist/{dynamic-context-F2XTQJR5.js → dynamic-context-MVGOF5V2.js} +10 -9
- package/dist/{events-224IO5NJ.js → events-PI7IMPHT.js} +8 -7
- package/dist/{folding-YTTTVS56.js → folding-FO57K4JM.js} +6 -5
- package/dist/http-client-33EZ3BLR.js +11 -0
- package/dist/{inspect-proxy-B7LGGTM7.js → inspect-proxy-NHKQQ2CD.js} +4 -4
- package/dist/launch-L5ROVNI3.js +52 -0
- package/dist/{manager-4QGXI6WZ.js → manager-66YAEO7K.js} +5 -5
- package/dist/{model-overrides-OY2YKUNV.js → model-overrides-L53PZNZA.js} +4 -4
- package/dist/orchestrator-XK5K3RPL.js +63 -0
- package/dist/package.json +3 -3
- package/dist/{path-security-PFMZY7IA.js → path-security-RSEI3YKB.js} +12 -11
- package/dist/{platform-QNGCKX4L.js → platform-WA4GK5BO.js} +4 -4
- package/dist/{processor-NYPJ5PFA.js → processor-WDZSFBVO.js} +30 -24
- package/dist/{project-creator-AWP2JUFS.js → project-creator-676WQXVI.js} +3 -3
- package/dist/{projects-C4353IQK.js → projects-SSBWIYL4.js} +3 -3
- package/dist/{protocol-CBT1d98i.d.ts → protocol-BzHs024-.d.ts} +21 -3
- package/dist/{protocol-LZZ7C4VQ.js → protocol-RKSWKNXI.js} +3 -3
- package/dist/provider/index.d.ts +4 -4
- package/dist/{provider-PIRPN2CC.js → provider-PLIWRBCF.js} +7 -7
- package/dist/{provider-manager-GNEPR6UN.js → provider-manager-2QSJTPWS.js} +7 -7
- package/dist/{registry-VCKDSVKA.js → registry-ZP4TN2IN.js} +5 -4
- package/dist/{serve-6DRHQLCG.js → serve-MZ3BCCWC.js} +35 -32
- package/dist/server/index.d.ts +4 -4
- package/dist/server/index.js +34 -31
- package/dist/server-EPXODFMB.js +55 -0
- package/dist/service-54PGIPDQ.js +25 -0
- package/dist/{session-overrides-RNKV35MU.js → session-overrides-LXN6W7SA.js} +7 -6
- package/dist/{sessions-D5CEPQGU.js → sessions-CHPVUG6H.js} +6 -5
- package/dist/{settings-BNRNX6IW.js → settings-NEBM3GQX.js} +3 -3
- package/dist/shared/index.d.ts +3 -3
- package/dist/shared/index.js +1 -1
- package/dist/skill-defaults/workflows/SKILL.md +24 -6
- package/dist/tasks-TJXG2V3U.js +217 -0
- package/dist/{tools-2B363F7L.js → tools-CIM26IFB.js} +30 -22
- package/dist/{types-BAxh20ZL.d.ts → types-CMtHpDWT.d.ts} +74 -1
- package/dist/{types-cVfqOj6M.d.ts → types-CbggXFvR.d.ts} +1 -1
- package/dist/{update-IQMRYN7J.js → update-UZBBO42X.js} +2 -2
- package/dist/web/assets/{index-CjWC6EQ4.css → index-BmILAZrT.css} +1 -1
- package/dist/web/assets/index-rZHXkfMq.js +324 -0
- package/dist/web/index.html +2 -2
- package/dist/web/sw.js +1 -1
- package/dist/workflow-defaults/default.workflow.json +5 -3
- package/dist/{workspace-YUNHV4WS.js → workspace-2XODU4YJ.js} +4 -4
- package/package.json +3 -3
- package/dist/chunk-B2PHPBFU.js +0 -7
- package/dist/http-client-YC3UA5OZ.js +0 -11
- package/dist/orchestrator-JKBY7B3P.js +0 -57
- package/dist/server-HUHFJW7U.js +0 -48
- package/dist/web/assets/index-DBUtUSHK.js +0 -323
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
import {
|
|
2
|
+
getGateConfig,
|
|
3
|
+
getTaskSettings,
|
|
4
|
+
isTaskConflictError,
|
|
5
|
+
isTaskGateError
|
|
6
|
+
} from "./chunk-OTYAEEX3.js";
|
|
7
|
+
import {
|
|
8
|
+
getProject
|
|
9
|
+
} from "./chunk-SFZGMB2G.js";
|
|
10
|
+
import "./chunk-OSXPQSLW.js";
|
|
11
|
+
import "./chunk-MUSPWEBB.js";
|
|
12
|
+
import "./chunk-J2GP3J3X.js";
|
|
13
|
+
import "./chunk-LXYPMFTH.js";
|
|
14
|
+
import "./chunk-V4IE7HJY.js";
|
|
15
|
+
import "./chunk-AZHWLLPP.js";
|
|
16
|
+
import "./chunk-HNCM3D7Y.js";
|
|
17
|
+
import "./chunk-L737Y63F.js";
|
|
18
|
+
import "./chunk-OXSTNSCF.js";
|
|
19
|
+
import "./chunk-HP5CIB66.js";
|
|
20
|
+
import "./chunk-PBW3YC3G.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-TJXG2V3U.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-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-
|
|
17
|
-
import "./chunk-
|
|
13
|
+
} from "./chunk-K733B5T2.js";
|
|
14
|
+
import "./chunk-YGJIK3CG.js";
|
|
15
|
+
import "./chunk-NLO64UE3.js";
|
|
16
|
+
import "./chunk-2XD65L7M.js";
|
|
17
|
+
import "./chunk-P5UANBBX.js";
|
|
18
|
+
import "./chunk-TKKP56QK.js";
|
|
18
19
|
import "./chunk-I72ACQ6R.js";
|
|
19
20
|
import "./chunk-JE7LW7Y6.js";
|
|
20
21
|
import "./chunk-OAN4BXEW.js";
|
|
21
|
-
import "./chunk-
|
|
22
|
+
import "./chunk-SBSUDHL4.js";
|
|
22
23
|
import "./chunk-J7GAZGZT.js";
|
|
23
|
-
import "./chunk-
|
|
24
|
+
import "./chunk-OTYAEEX3.js";
|
|
25
|
+
import "./chunk-L63Q4JQJ.js";
|
|
24
26
|
import {
|
|
25
27
|
PathAccessDeniedError,
|
|
26
28
|
cancelPathConfirmationsForSession,
|
|
27
29
|
getConfirmationSessionId,
|
|
28
30
|
providePathConfirmation,
|
|
29
31
|
requestPathAccess
|
|
30
|
-
} from "./chunk-
|
|
31
|
-
import "./chunk-
|
|
32
|
-
import "./chunk-
|
|
33
|
-
import "./chunk-
|
|
32
|
+
} from "./chunk-BZVW77PI.js";
|
|
33
|
+
import "./chunk-JXLRL5JR.js";
|
|
34
|
+
import "./chunk-I7FY2LTR.js";
|
|
35
|
+
import "./chunk-SA34STZ6.js";
|
|
34
36
|
import {
|
|
35
37
|
AskUserInterrupt,
|
|
36
38
|
cancelQuestionsForSession,
|
|
37
39
|
getPendingQuestionsForSession,
|
|
38
40
|
provideAnswer
|
|
39
41
|
} from "./chunk-JURM3RPZ.js";
|
|
40
|
-
import "./chunk-
|
|
41
|
-
import "./chunk-
|
|
42
|
-
import "./chunk-
|
|
42
|
+
import "./chunk-JP7NM545.js";
|
|
43
|
+
import "./chunk-SFZGMB2G.js";
|
|
44
|
+
import "./chunk-UTIQ7OO5.js";
|
|
43
45
|
import "./chunk-LCLH6ZUL.js";
|
|
44
|
-
import "./chunk-
|
|
45
|
-
import "./chunk-
|
|
46
|
+
import "./chunk-3O77NT4T.js";
|
|
47
|
+
import "./chunk-UPBWEHIL.js";
|
|
48
|
+
import "./chunk-OSXPQSLW.js";
|
|
49
|
+
import "./chunk-MUSPWEBB.js";
|
|
46
50
|
import "./chunk-J2GP3J3X.js";
|
|
51
|
+
import "./chunk-LXYPMFTH.js";
|
|
47
52
|
import "./chunk-V4IE7HJY.js";
|
|
48
|
-
import "./chunk-
|
|
53
|
+
import "./chunk-AZHWLLPP.js";
|
|
54
|
+
import "./chunk-HNCM3D7Y.js";
|
|
49
55
|
import "./chunk-L737Y63F.js";
|
|
50
|
-
import "./chunk-
|
|
51
|
-
import "./chunk-
|
|
56
|
+
import "./chunk-OXSTNSCF.js";
|
|
57
|
+
import "./chunk-HP5CIB66.js";
|
|
58
|
+
import "./chunk-PBW3YC3G.js";
|
|
52
59
|
import "./chunk-K44MW7JJ.js";
|
|
53
|
-
import "./chunk-
|
|
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-
|
|
86
|
+
//# sourceMappingURL=tools-CIM26IFB.js.map
|
|
@@ -52,6 +52,8 @@ interface WorkflowExecution {
|
|
|
52
52
|
params: Record<string, string>;
|
|
53
53
|
/** Available branches at a paused user step, if any. */
|
|
54
54
|
pendingChoices?: UserStepChoice[];
|
|
55
|
+
/** Sub-group slice this run belongs to, when launched as a slice. */
|
|
56
|
+
subGroup?: string;
|
|
55
57
|
createdAt: number;
|
|
56
58
|
updatedAt: number;
|
|
57
59
|
}
|
|
@@ -349,6 +351,77 @@ interface ToolResult {
|
|
|
349
351
|
metadata?: Record<string, unknown>;
|
|
350
352
|
}
|
|
351
353
|
type ToolName = 'read_file' | 'write_file' | 'edit_file' | 'run_command' | 'glob' | 'grep' | 'ask_user' | 'session_metadata' | 'web_fetch';
|
|
354
|
+
type TaskStatus = 'todo' | 'in_progress' | 'done';
|
|
355
|
+
/** Active state of an in-progress task: launched (occupies a slot) or queued (waiting for a slot). */
|
|
356
|
+
type TaskRunState = 'running' | 'queued';
|
|
357
|
+
type TaskActor = 'human' | 'agent' | 'system';
|
|
358
|
+
/** Per-project gate (Definition of Done) configuration. */
|
|
359
|
+
interface TaskGateConfig {
|
|
360
|
+
id: string;
|
|
361
|
+
name: string;
|
|
362
|
+
/** Description of acceptable proof, e.g. "all green — every criterion passes with evidence". */
|
|
363
|
+
description: string;
|
|
364
|
+
/** Whether the gate blocks Done until satisfied. */
|
|
365
|
+
required: boolean;
|
|
366
|
+
/** 'done' = definition of done (blocks entering Done). 'ready' = definition of ready (off by default). */
|
|
367
|
+
variant: 'done' | 'ready';
|
|
368
|
+
}
|
|
369
|
+
/** A filled-in value for a gate field, recording who set it and when. */
|
|
370
|
+
interface TaskGateValue {
|
|
371
|
+
gateId: string;
|
|
372
|
+
value: string;
|
|
373
|
+
actor: TaskActor;
|
|
374
|
+
actorName?: string;
|
|
375
|
+
sessionId?: string;
|
|
376
|
+
timestamp: string;
|
|
377
|
+
}
|
|
378
|
+
interface TaskAuditEntry {
|
|
379
|
+
id: string;
|
|
380
|
+
timestamp: string;
|
|
381
|
+
actor: TaskActor;
|
|
382
|
+
actorName?: string;
|
|
383
|
+
action: string;
|
|
384
|
+
detail: string;
|
|
385
|
+
}
|
|
386
|
+
interface ProjectTask {
|
|
387
|
+
id: string;
|
|
388
|
+
projectId: string;
|
|
389
|
+
prompt: string;
|
|
390
|
+
attachments: Attachment[];
|
|
391
|
+
status: TaskStatus;
|
|
392
|
+
/** Present only while status is in_progress. */
|
|
393
|
+
runState?: TaskRunState;
|
|
394
|
+
/** 1-based queue position while queued. */
|
|
395
|
+
queuePosition?: number;
|
|
396
|
+
/** Ordering within the column (stable, used for drag-reorder). */
|
|
397
|
+
position: number;
|
|
398
|
+
/** Monotonic revision counter — bumped on every mutation. Optimistic concurrency guard. */
|
|
399
|
+
version: number;
|
|
400
|
+
agentId?: string;
|
|
401
|
+
providerId?: string;
|
|
402
|
+
model?: string;
|
|
403
|
+
/** Linked sessions, active working session first, then historical attempts. */
|
|
404
|
+
sessionIds: string[];
|
|
405
|
+
activeSessionId?: string;
|
|
406
|
+
gateValues: TaskGateValue[];
|
|
407
|
+
auditTrail: TaskAuditEntry[];
|
|
408
|
+
createdAt: string;
|
|
409
|
+
updatedAt: string;
|
|
410
|
+
}
|
|
411
|
+
interface ProjectTaskSettings {
|
|
412
|
+
slotLimit: number;
|
|
413
|
+
queuePaused: boolean;
|
|
414
|
+
}
|
|
415
|
+
interface ProjectTaskCounts {
|
|
416
|
+
open: number;
|
|
417
|
+
todo: number;
|
|
418
|
+
inProgress: number;
|
|
419
|
+
/** Actively running (occupying a slot). */
|
|
420
|
+
running: number;
|
|
421
|
+
/** Waiting for a slot to free. */
|
|
422
|
+
queued: number;
|
|
423
|
+
done: number;
|
|
424
|
+
}
|
|
352
425
|
interface Criterion {
|
|
353
426
|
id: string;
|
|
354
427
|
description: string;
|
|
@@ -598,4 +671,4 @@ interface ElementData {
|
|
|
598
671
|
attributes: Record<string, string>;
|
|
599
672
|
}
|
|
600
673
|
|
|
601
|
-
export type { Attachment as A,
|
|
674
|
+
export type { ToolResult as $, Attachment as A, SessionMetadata as B, CallStatsDataPoint as C, DangerLevel as D, EditContextEdit as E, FileReadEntry as F, SessionMode as G, SessionPhase as H, InjectedFile as I, SessionSummary as J, StatsDataPoint as K, LLMCallStats as L, ModelConfig as M, StatsIdentity as N, TaskActor as O, PreparingToolCall as P, TaskAuditEntry as Q, RecentUserPrompt as R, SessionStats as S, ToolCall as T, TaskGateConfig as U, TaskGateValue as V, TaskRunState as W, TaskStatus as X, Todo as Y, ToolMode as Z, ToolName as _, Message as a, UserStepChoice as a0, ValidationResult as a1, WorkflowExecution as a2, WorkflowExecutionStatus as a3, WorkflowLaunchScope as a4, WorkflowParameter as a5, WorkflowScope as a6, Config as b, ContextState as c, ContextWindow as d, Criterion as e, CriterionAttempt as f, CriterionStatus as g, CriterionValidation as h, Diagnostic as i, EditContextLine as j, EditContextRegion as k, ElementData as l, ExecutionState as m, LlmBackend as n, MessageRole as o, MessageSegment as p, MessageStats as q, MetadataEntry as r, ModelSessionStats as s, Project as t, ProjectTask as u, ProjectTaskCounts as v, ProjectTaskSettings as w, Provider as x, ProviderBackend as y, Session as z };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
VERSION
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-NCZRWCJN.js";
|
|
4
4
|
import "./chunk-5WRI5ZAA.js";
|
|
5
5
|
|
|
6
6
|
// src/cli/update.ts
|
|
@@ -46,4 +46,4 @@ async function runUpdate(options = {}) {
|
|
|
46
46
|
export {
|
|
47
47
|
runUpdate
|
|
48
48
|
};
|
|
49
|
-
//# sourceMappingURL=update-
|
|
49
|
+
//# sourceMappingURL=update-UZBBO42X.js.map
|