taskchef 7.14.1 → 7.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.codex-plugin/plugin.json +1 -1
- package/README.md +10 -5
- package/docs/firstmate-taskchef-comparison.md +5 -5
- package/docs/spec.md +44 -29
- package/docs/workflows.md +38 -29
- package/package.json +1 -1
- package/skills/taskchef-delegate/SKILL.md +4 -2
- package/skills/taskchef-executor/SKILL.md +18 -12
- package/src/cli.js +8 -3
- package/src/dashboard/app.js +23 -18
- package/src/dashboard/github-links.js +160 -24
- package/src/dashboard/state.js +61 -9
- package/src/dashboard.js +5 -0
- package/src/delegation.js +18 -3
- package/src/mcp.js +9 -2
- package/src/workspace.js +282 -109
package/src/mcp.js
CHANGED
|
@@ -22,7 +22,7 @@ const projectSchema = z.object({
|
|
|
22
22
|
|
|
23
23
|
const taskSchema = z.object({
|
|
24
24
|
schemaVersion: z.union([
|
|
25
|
-
z.literal(4), z.literal(5), z.literal(6), z.literal(7), z.literal(8),
|
|
25
|
+
z.literal(4), z.literal(5), z.literal(6), z.literal(7), z.literal(8), z.literal(9),
|
|
26
26
|
]),
|
|
27
27
|
id: z.string(),
|
|
28
28
|
project: projectSchema,
|
|
@@ -32,10 +32,12 @@ const taskSchema = z.object({
|
|
|
32
32
|
createdAt: z.string(),
|
|
33
33
|
status: z.enum(["working", "needs_input", "completed", "failed"]),
|
|
34
34
|
summary: z.string().nullable(),
|
|
35
|
+
turnRef: z.string().nullable(),
|
|
35
36
|
turnId: z.string().nullable(),
|
|
36
37
|
updatedAt: z.string(),
|
|
37
38
|
updatedBy: z.enum(["dispatcher", "mcp"]),
|
|
38
39
|
turns: z.array(z.object({
|
|
40
|
+
turnRef: z.string().nullable(),
|
|
39
41
|
turnId: z.string().nullable(),
|
|
40
42
|
requestSummary: z.string().nullable(),
|
|
41
43
|
startedAt: z.string(),
|
|
@@ -46,6 +48,7 @@ const taskSchema = z.object({
|
|
|
46
48
|
}).nullable(),
|
|
47
49
|
})),
|
|
48
50
|
latestTurn: z.object({
|
|
51
|
+
turnRef: z.string().nullable(),
|
|
49
52
|
turnId: z.string().nullable(),
|
|
50
53
|
requestSummary: z.string().nullable(),
|
|
51
54
|
startedAt: z.string(),
|
|
@@ -58,12 +61,14 @@ const taskSchema = z.object({
|
|
|
58
61
|
results: z.array(z.object({
|
|
59
62
|
status: z.enum(["needs_input", "completed", "failed"]),
|
|
60
63
|
summary: z.string(),
|
|
64
|
+
turnRef: z.string().nullable(),
|
|
61
65
|
turnId: z.string().nullable(),
|
|
62
66
|
updatedAt: z.string(),
|
|
63
67
|
})),
|
|
64
68
|
lastResult: z.object({
|
|
65
69
|
status: z.enum(["needs_input", "completed", "failed"]),
|
|
66
70
|
summary: z.string(),
|
|
71
|
+
turnRef: z.string().nullable(),
|
|
67
72
|
turnId: z.string().nullable(),
|
|
68
73
|
updatedAt: z.string(),
|
|
69
74
|
}).nullable(),
|
|
@@ -225,10 +230,11 @@ export function createTaskChefMcpServer({
|
|
|
225
230
|
{
|
|
226
231
|
title: "Report TaskChef state",
|
|
227
232
|
description:
|
|
228
|
-
"Report this self-linked executor turn's lifecycle state. Use
|
|
233
|
+
"Report this self-linked executor turn's lifecycle state. Use one stable turnRef for working and its terminal report; pass the native Codex turn ID as both turnRef and turnId when available, otherwise pass a client-generated UUID turnRef and null turnId. Preserve known repository context and delivered links. Exact retries are idempotent; stale or mismatched turnRefs are rejected.",
|
|
229
234
|
inputSchema: {
|
|
230
235
|
taskId: z.string().min(1),
|
|
231
236
|
threadId: z.string().min(1).nullable(),
|
|
237
|
+
turnRef: z.string().min(1).max(256).nullable().optional(),
|
|
232
238
|
turnId: z.string().min(1).max(256).nullable(),
|
|
233
239
|
status: z.enum(["working", "needs_input", "completed", "failed"]),
|
|
234
240
|
summary: z.string().min(1).max(2_000).nullable().optional(),
|
|
@@ -256,6 +262,7 @@ export function createTaskChefMcpServer({
|
|
|
256
262
|
inputSchema: {
|
|
257
263
|
taskId: z.string().min(1),
|
|
258
264
|
threadId: z.string().min(1).nullable(),
|
|
265
|
+
turnRef: z.string().min(1).max(256).nullable().optional(),
|
|
259
266
|
turnId: z.string().min(1).max(256).nullable(),
|
|
260
267
|
status: z.enum(["needs_input", "completed", "failed"]),
|
|
261
268
|
summary: z.string().min(1).max(2_000),
|