@anyi61/codex-claude-delegate-mcp 0.1.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/LICENSE +21 -0
- package/README.md +262 -0
- package/dist/claude-cli.d.ts +84 -0
- package/dist/claude-cli.js +3123 -0
- package/dist/claude-cli.js.map +1 -0
- package/dist/cli.d.ts +61 -0
- package/dist/cli.js +334 -0
- package/dist/cli.js.map +1 -0
- package/dist/codex-config.d.ts +104 -0
- package/dist/codex-config.js +446 -0
- package/dist/codex-config.js.map +1 -0
- package/dist/guard.d.ts +27 -0
- package/dist/guard.js +229 -0
- package/dist/guard.js.map +1 -0
- package/dist/job-runner.d.ts +13 -0
- package/dist/job-runner.js +75 -0
- package/dist/job-runner.js.map +1 -0
- package/dist/jobs.d.ts +46 -0
- package/dist/jobs.js +175 -0
- package/dist/jobs.js.map +1 -0
- package/dist/package-info.d.ts +4 -0
- package/dist/package-info.js +14 -0
- package/dist/package-info.js.map +1 -0
- package/dist/schema.d.ts +779 -0
- package/dist/schema.js +325 -0
- package/dist/schema.js.map +1 -0
- package/dist/server.d.ts +1142 -0
- package/dist/server.js +693 -0
- package/dist/server.js.map +1 -0
- package/dist/session.d.ts +35 -0
- package/dist/session.js +109 -0
- package/dist/session.js.map +1 -0
- package/package.json +49 -0
- package/plugins/codex-claude-delegate/.codex-plugin/plugin.json +36 -0
- package/plugins/codex-claude-delegate/.mcp.json +9 -0
- package/plugins/codex-claude-delegate/hooks/hooks.json +16 -0
- package/plugins/codex-claude-delegate/hooks/review-gate-stop.mjs +66 -0
- package/plugins/codex-claude-delegate/server/job-runner.js +16999 -0
- package/plugins/codex-claude-delegate/server/server.js +28048 -0
- package/plugins/codex-claude-delegate/skills/claude-delegate.md +30 -0
- package/plugins/codex-claude-delegate/skills/claude-rescue.md +52 -0
- package/plugins/codex-claude-delegate/skills/claude-review.md +25 -0
package/dist/schema.js
ADDED
|
@@ -0,0 +1,325 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export function localExecution(startTime) {
|
|
3
|
+
return {
|
|
4
|
+
exit_code: 0,
|
|
5
|
+
duration_ms: Date.now() - startTime,
|
|
6
|
+
timed_out: false,
|
|
7
|
+
stdout_tail: "",
|
|
8
|
+
stderr_tail: "",
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
// ---- Tool input validation ----
|
|
12
|
+
const cwdSchema = z.string().trim().min(1, "cwd is required");
|
|
13
|
+
const taskSchema = z.string().trim().min(1, "task is required");
|
|
14
|
+
const timeoutSchema = z.number().int().positive().max(3600).optional();
|
|
15
|
+
const maxTurnsSchema = z.number().int().positive().max(50).optional();
|
|
16
|
+
const filesSchema = z.array(z.string().trim().min(1)).optional();
|
|
17
|
+
const constraintsSchema = z.array(z.string().trim().min(1)).optional();
|
|
18
|
+
const worktreeNameSchema = z.string().regex(/^[A-Za-z0-9_-]+$/, "worktreeName may only contain letters, numbers, hyphens, and underscores").optional();
|
|
19
|
+
const dirtyPolicySchema = z.enum(["ask", "committed", "snapshot"]).optional();
|
|
20
|
+
export const claudeStatusInputSchema = z.object({
|
|
21
|
+
cwd: cwdSchema,
|
|
22
|
+
});
|
|
23
|
+
export const claudeSetupInputSchema = z.object({
|
|
24
|
+
cwd: cwdSchema,
|
|
25
|
+
configure_allow_root: z.boolean().optional().default(false),
|
|
26
|
+
});
|
|
27
|
+
export const claudeQueryInputSchema = z.object({
|
|
28
|
+
task: taskSchema,
|
|
29
|
+
cwd: cwdSchema,
|
|
30
|
+
instruction_files: filesSchema,
|
|
31
|
+
timeout_sec: timeoutSchema.optional(),
|
|
32
|
+
max_turns: maxTurnsSchema.optional(),
|
|
33
|
+
fast: z.boolean().optional(),
|
|
34
|
+
resume: z.boolean().optional(),
|
|
35
|
+
});
|
|
36
|
+
export const claudeReviewInputSchema = z.object({
|
|
37
|
+
task: taskSchema,
|
|
38
|
+
cwd: cwdSchema,
|
|
39
|
+
diff: z.string().optional(),
|
|
40
|
+
instruction_files: filesSchema,
|
|
41
|
+
files: filesSchema,
|
|
42
|
+
timeout_sec: timeoutSchema.default(180),
|
|
43
|
+
max_turns: maxTurnsSchema.optional(),
|
|
44
|
+
});
|
|
45
|
+
export const claudeImplementInputSchema = z.object({
|
|
46
|
+
task: taskSchema,
|
|
47
|
+
cwd: cwdSchema,
|
|
48
|
+
files: filesSchema,
|
|
49
|
+
constraints: constraintsSchema,
|
|
50
|
+
timeout_sec: timeoutSchema.default(600),
|
|
51
|
+
max_turns: maxTurnsSchema.optional(),
|
|
52
|
+
session_key: z.string().trim().min(1).optional(),
|
|
53
|
+
fork_session: z.boolean().optional(),
|
|
54
|
+
resume_latest: z.boolean().optional(),
|
|
55
|
+
max_cost_usd: z.number().positive().max(10).optional(),
|
|
56
|
+
max_changed_files: z.number().int().positive().max(100).optional(),
|
|
57
|
+
worktreeName: worktreeNameSchema,
|
|
58
|
+
dirty_policy: dirtyPolicySchema,
|
|
59
|
+
}).refine((value) => !value.fork_session || !!value.session_key, {
|
|
60
|
+
message: "fork_session requires session_key",
|
|
61
|
+
path: ["fork_session"],
|
|
62
|
+
}).refine((value) => !value.resume_latest || !value.session_key, {
|
|
63
|
+
message: "resume_latest cannot be combined with session_key",
|
|
64
|
+
path: ["resume_latest"],
|
|
65
|
+
});
|
|
66
|
+
export const claudeTaskInputSchema = z.object({
|
|
67
|
+
cwd: cwdSchema,
|
|
68
|
+
task: taskSchema,
|
|
69
|
+
mode: z.enum(["auto", "read", "review", "write"]).optional().default("auto"),
|
|
70
|
+
background: z.boolean().optional(),
|
|
71
|
+
resume_latest: z.boolean().optional(),
|
|
72
|
+
instruction_files: filesSchema,
|
|
73
|
+
files: filesSchema,
|
|
74
|
+
constraints: constraintsSchema,
|
|
75
|
+
diff: z.string().optional(),
|
|
76
|
+
timeout_sec: timeoutSchema.optional(),
|
|
77
|
+
dirty_policy: dirtyPolicySchema,
|
|
78
|
+
}).refine((value) => value.mode !== "read" || !value.resume_latest, {
|
|
79
|
+
message: "resume_latest is only supported for write mode",
|
|
80
|
+
path: ["resume_latest"],
|
|
81
|
+
}).refine((value) => value.mode !== "review" || !value.resume_latest, {
|
|
82
|
+
message: "resume_latest is only supported for write mode",
|
|
83
|
+
path: ["resume_latest"],
|
|
84
|
+
});
|
|
85
|
+
export const claudeApplyInputSchema = z.object({
|
|
86
|
+
cwd: cwdSchema,
|
|
87
|
+
worktree_path: z.string().trim().min(1, "worktree_path is required"),
|
|
88
|
+
cleanup: z.boolean().optional(),
|
|
89
|
+
preview: z.boolean().optional(),
|
|
90
|
+
background: z.boolean().optional(),
|
|
91
|
+
confirmed_by_user: z.boolean().optional(),
|
|
92
|
+
}).refine((value) => !(value.preview === true && value.cleanup === true), {
|
|
93
|
+
message: "preview=true cannot be combined with cleanup=true",
|
|
94
|
+
path: ["cleanup"],
|
|
95
|
+
});
|
|
96
|
+
export const claudeCleanupInputSchema = z.object({
|
|
97
|
+
cwd: cwdSchema,
|
|
98
|
+
older_than_hours: z.number().nonnegative().max(24 * 365).optional().default(24),
|
|
99
|
+
dry_run: z.boolean().optional().default(true),
|
|
100
|
+
background: z.boolean().optional(),
|
|
101
|
+
});
|
|
102
|
+
export const claudeRunsInputSchema = z.object({
|
|
103
|
+
cwd: cwdSchema,
|
|
104
|
+
limit: z.number().int().positive().max(200).optional().default(20),
|
|
105
|
+
type: z.enum(["query", "review", "implement", "apply", "cleanup"]).optional(),
|
|
106
|
+
status: z.enum(["success", "failed", "partial", "needs_user", "unknown"]).optional(),
|
|
107
|
+
worktree_name: z.string().trim().min(1).optional(),
|
|
108
|
+
});
|
|
109
|
+
export const claudeRunInspectInputSchema = z.object({
|
|
110
|
+
cwd: cwdSchema,
|
|
111
|
+
run_id: z.string().trim().min(1, "run_id is required"),
|
|
112
|
+
});
|
|
113
|
+
export const claudeJobsInputSchema = z.object({
|
|
114
|
+
cwd: cwdSchema,
|
|
115
|
+
limit: z.number().int().positive().max(200).optional().default(20),
|
|
116
|
+
status: z.enum(["queued", "running", "succeeded", "failed", "cancelled"]).optional(),
|
|
117
|
+
type: z.enum(["query", "review", "implement", "apply", "cleanup"]).optional(),
|
|
118
|
+
});
|
|
119
|
+
export const claudeJobResultInputSchema = z.object({
|
|
120
|
+
cwd: cwdSchema,
|
|
121
|
+
job_id: z.string().trim().min(1, "job_id is required"),
|
|
122
|
+
});
|
|
123
|
+
export const claudeResultInputSchema = z.object({
|
|
124
|
+
cwd: cwdSchema,
|
|
125
|
+
job_id: z.string().trim().min(1).optional(),
|
|
126
|
+
run_id: z.string().trim().min(1).optional(),
|
|
127
|
+
prefer: z.enum(["latest-job", "latest-run", "latest-implement", "latest-review"]).optional().default("latest-job"),
|
|
128
|
+
}).refine((value) => !(value.job_id && value.run_id), {
|
|
129
|
+
message: "job_id and run_id cannot be combined",
|
|
130
|
+
path: ["job_id"],
|
|
131
|
+
});
|
|
132
|
+
export const claudeJobWaitInputSchema = z.object({
|
|
133
|
+
cwd: cwdSchema,
|
|
134
|
+
job_id: z.string().trim().min(1, "job_id is required"),
|
|
135
|
+
not_before: z.string().trim().min(1).optional(),
|
|
136
|
+
}).strict();
|
|
137
|
+
export const claudeJobCancelInputSchema = z.object({
|
|
138
|
+
cwd: cwdSchema,
|
|
139
|
+
job_id: z.string().trim().min(1, "job_id is required"),
|
|
140
|
+
});
|
|
141
|
+
export const claudeJobCleanupInputSchema = z.object({
|
|
142
|
+
cwd: cwdSchema,
|
|
143
|
+
older_than_hours: z.number().nonnegative().max(24 * 365).optional().default(24),
|
|
144
|
+
dry_run: z.boolean().optional().default(true),
|
|
145
|
+
limit: z.number().int().positive().max(200).optional().default(20),
|
|
146
|
+
});
|
|
147
|
+
export const claudeWorkspaceStatusInputSchema = z.object({
|
|
148
|
+
cwd: cwdSchema,
|
|
149
|
+
limit: z.number().int().positive().max(200).optional().default(10),
|
|
150
|
+
include_terminal: z.boolean().optional().default(true),
|
|
151
|
+
});
|
|
152
|
+
export const claudeReviewGateInputSchema = z.object({
|
|
153
|
+
cwd: cwdSchema,
|
|
154
|
+
action: z.enum(["status", "enable", "disable"]).optional().default("status"),
|
|
155
|
+
});
|
|
156
|
+
export function validationErrorMessage(err) {
|
|
157
|
+
if (err instanceof z.ZodError) {
|
|
158
|
+
return err.issues.map((issue) => {
|
|
159
|
+
const path = issue.path.length ? issue.path.join(".") : "input";
|
|
160
|
+
return `${path}: ${issue.message}`;
|
|
161
|
+
}).join("; ");
|
|
162
|
+
}
|
|
163
|
+
return err instanceof Error ? err.message : String(err);
|
|
164
|
+
}
|
|
165
|
+
// ---- JSON Schemas for --json-schema flag ----
|
|
166
|
+
// For claude_query: answer-focused, no file/tool fields.
|
|
167
|
+
export const QUERY_SCHEMA = {
|
|
168
|
+
type: "object",
|
|
169
|
+
required: ["answer"],
|
|
170
|
+
properties: {
|
|
171
|
+
answer: { type: "string", description: "The full, detailed answer to the question. Include all relevant information." },
|
|
172
|
+
},
|
|
173
|
+
};
|
|
174
|
+
// For claude_review: findings-focused, read-only.
|
|
175
|
+
export const REVIEW_SCHEMA = {
|
|
176
|
+
type: "object",
|
|
177
|
+
required: ["findings", "recommendations", "severity"],
|
|
178
|
+
properties: {
|
|
179
|
+
findings: { type: "string", description: "Detailed review findings: bugs, design issues, security concerns, performance problems." },
|
|
180
|
+
recommendations: { type: "string", description: "Specific, actionable recommendations for each finding." },
|
|
181
|
+
severity: { type: "string", enum: ["critical", "high", "medium", "low", "none"], description: "Overall severity of issues found." },
|
|
182
|
+
},
|
|
183
|
+
};
|
|
184
|
+
// For claude_implement: full task report with file changes and test results.
|
|
185
|
+
export const IMPLEMENT_SCHEMA = {
|
|
186
|
+
type: "object",
|
|
187
|
+
required: ["status", "summary", "changed_files", "commands_run", "tests", "risks", "next_steps"],
|
|
188
|
+
properties: {
|
|
189
|
+
status: {
|
|
190
|
+
type: "string",
|
|
191
|
+
enum: ["success", "failed", "partial", "needs_user"],
|
|
192
|
+
},
|
|
193
|
+
summary: { type: "string" },
|
|
194
|
+
changed_files: {
|
|
195
|
+
type: "array",
|
|
196
|
+
items: { type: "string" },
|
|
197
|
+
},
|
|
198
|
+
commands_run: {
|
|
199
|
+
type: "array",
|
|
200
|
+
items: { type: "string" },
|
|
201
|
+
},
|
|
202
|
+
tests: {
|
|
203
|
+
type: "object",
|
|
204
|
+
required: ["ran"],
|
|
205
|
+
properties: {
|
|
206
|
+
ran: { type: "boolean" },
|
|
207
|
+
command: { type: "string" },
|
|
208
|
+
passed: { type: "boolean" },
|
|
209
|
+
output_tail: { type: "string" },
|
|
210
|
+
},
|
|
211
|
+
},
|
|
212
|
+
risks: {
|
|
213
|
+
type: "array",
|
|
214
|
+
items: { type: "string" },
|
|
215
|
+
},
|
|
216
|
+
next_steps: {
|
|
217
|
+
type: "array",
|
|
218
|
+
items: { type: "string" },
|
|
219
|
+
},
|
|
220
|
+
},
|
|
221
|
+
};
|
|
222
|
+
// Backwards-compatible alias
|
|
223
|
+
export const RESULT_SCHEMA = IMPLEMENT_SCHEMA;
|
|
224
|
+
// ---- Prompt templates ----
|
|
225
|
+
export function buildImplementPrompt(input) {
|
|
226
|
+
let prompt = `## Task\n\n${input.task}\n\n`;
|
|
227
|
+
if (input.instruction_files?.length) {
|
|
228
|
+
prompt += `## Instruction Files\n\n`;
|
|
229
|
+
prompt += `These files are task instructions or context, not a modification scope limit. Read them when useful, then modify the relevant source, tests, and documentation required by the task.\n\n`;
|
|
230
|
+
prompt += input.instruction_files.map((f) => `- \`${f}\``).join("\n") + "\n\n";
|
|
231
|
+
}
|
|
232
|
+
if (input.files?.length) {
|
|
233
|
+
prompt += `## Relevant Files\n\n${input.files.map((f) => `- \`${f}\``).join("\n")}\n\n`;
|
|
234
|
+
}
|
|
235
|
+
prompt += `## Constraints\n\n`;
|
|
236
|
+
prompt += `- You are a worker delegated by Codex. Do NOT call Codex or any Codex-related tools.\n`;
|
|
237
|
+
prompt += `- Do not delegate this task to another agent. Complete it yourself.\n`;
|
|
238
|
+
prompt += `- Work exclusively within the provided worktree.\n`;
|
|
239
|
+
prompt += `- After making changes, run the project's tests if available.\n`;
|
|
240
|
+
if (input.constraints?.length) {
|
|
241
|
+
prompt += input.constraints.map((c) => `- ${c}`).join("\n") + "\n";
|
|
242
|
+
}
|
|
243
|
+
prompt += `\n## Deliverable\n\n`;
|
|
244
|
+
prompt += `Return a structured result with: status (success/failed/partial/needs_user), summary, changed_files list, commands_run list, tests (ran, command, passed, output_tail), risks list, and next_steps list.`;
|
|
245
|
+
return prompt;
|
|
246
|
+
}
|
|
247
|
+
export function buildReviewPrompt(input) {
|
|
248
|
+
let prompt = `## Review Request\n\n${input.task}\n\n`;
|
|
249
|
+
if (input.instruction_files?.length) {
|
|
250
|
+
prompt += `## Instruction Files\n\n`;
|
|
251
|
+
prompt += `These files are task instructions or context, not a modification scope limit.\n\n`;
|
|
252
|
+
prompt += input.instruction_files.map((f) => `- \`${f}\``).join("\n") + "\n\n";
|
|
253
|
+
}
|
|
254
|
+
if (input.diff) {
|
|
255
|
+
prompt += `## Diff to Review\n\n\`\`\`diff\n${input.diff}\n\`\`\`\n\n`;
|
|
256
|
+
}
|
|
257
|
+
if (input.files?.length) {
|
|
258
|
+
prompt += `## Relevant Files\n\n${input.files.map((f) => `- \`${f}\``).join("\n")}\n\n`;
|
|
259
|
+
}
|
|
260
|
+
prompt += `\n## Instructions\n\n`;
|
|
261
|
+
prompt += `- You are a reviewer. Do NOT modify any files.\n`;
|
|
262
|
+
prompt += `- Do NOT call Codex or any Codex-related tools.\n`;
|
|
263
|
+
prompt += `- Follow the user's review request exactly. If the request asks for repository status, file lists, command output, workflow validation, or another read-only audit, perform that audit directly instead of inventing code-review findings.\n`;
|
|
264
|
+
prompt += `- If the user restricts you to specific commands or methods, use only those exact commands or methods. Do not try command variants, path-qualified forms, or additional diagnostic commands.\n`;
|
|
265
|
+
prompt += `- When constrained to specific commands or methods, base your findings only on information those commands or methods provide. Do not add file-content analysis, diff stats, or inferred details from other sources.\n`;
|
|
266
|
+
prompt += `- Do not mention line counts, diff size, file contents, or file purpose unless the user explicitly asks for those details.\n`;
|
|
267
|
+
prompt += `- When reviewing code changes, focus on bugs, behavioral regressions, security concerns, performance problems, and missing tests.\n`;
|
|
268
|
+
prompt += `- Return your findings in a structured result with: findings (detailed description of each issue), recommendations (specific actionable fixes), and severity (one of: critical, high, medium, low, none).\n`;
|
|
269
|
+
return prompt;
|
|
270
|
+
}
|
|
271
|
+
export function buildQueryPrompt(input) {
|
|
272
|
+
let prompt = `## Question\n\n${input.task}\n\n`;
|
|
273
|
+
if (input.instruction_files?.length) {
|
|
274
|
+
prompt += `## Instruction Files\n\n`;
|
|
275
|
+
prompt += `These files are task instructions or context for answering the question.\n\n`;
|
|
276
|
+
prompt += input.instruction_files.map((f) => `- \`${f}\``).join("\n") + "\n\n";
|
|
277
|
+
}
|
|
278
|
+
prompt += `## Instructions\n\n`;
|
|
279
|
+
prompt += `- You are in read-only mode. Do NOT modify any files.\n`;
|
|
280
|
+
prompt += `- Do NOT call Codex or any Codex-related tools.\n`;
|
|
281
|
+
if (input.fast) {
|
|
282
|
+
prompt += `- Prefer a concise answer. Read only the minimum files needed to answer confidently.\n`;
|
|
283
|
+
prompt += `- If repository structure is needed, prefer package/config files and top-level source names before deep file reads.\n`;
|
|
284
|
+
}
|
|
285
|
+
else {
|
|
286
|
+
prompt += `- Answer thoroughly with all relevant details.\n`;
|
|
287
|
+
}
|
|
288
|
+
prompt += `- Return your answer in a structured result with: answer (a single string containing your complete answer with all details).\n`;
|
|
289
|
+
return prompt;
|
|
290
|
+
}
|
|
291
|
+
// ---- MCP tool result helpers ----
|
|
292
|
+
export function jsonResult(data) {
|
|
293
|
+
return {
|
|
294
|
+
content: [{ type: "text", text: JSON.stringify(data, null, 2) }],
|
|
295
|
+
};
|
|
296
|
+
}
|
|
297
|
+
export class StructuredToolError extends Error {
|
|
298
|
+
payload;
|
|
299
|
+
constructor(message, payload) {
|
|
300
|
+
super(message);
|
|
301
|
+
this.name = "StructuredToolError";
|
|
302
|
+
this.payload = payload;
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
export function errorResult(error) {
|
|
306
|
+
const payload = typeof error === "string" ? { error } : error;
|
|
307
|
+
return {
|
|
308
|
+
content: [{ type: "text", text: JSON.stringify(payload) }],
|
|
309
|
+
isError: true,
|
|
310
|
+
};
|
|
311
|
+
}
|
|
312
|
+
export function formatDuration(ms) {
|
|
313
|
+
const totalSeconds = ms / 1000;
|
|
314
|
+
if (totalSeconds < 60) {
|
|
315
|
+
return `${totalSeconds.toFixed(1)}s`;
|
|
316
|
+
}
|
|
317
|
+
const minutes = Math.floor(totalSeconds / 60);
|
|
318
|
+
const seconds = Math.floor(totalSeconds % 60);
|
|
319
|
+
return `${minutes}m ${seconds}s`;
|
|
320
|
+
}
|
|
321
|
+
export function withInteraction(result, interaction) {
|
|
322
|
+
return { ...result, interaction };
|
|
323
|
+
}
|
|
324
|
+
// end of file
|
|
325
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
|