@yattalo/task-system 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/README.md +66 -0
- package/dist/commands/dashboard.d.ts +7 -0
- package/dist/commands/dashboard.d.ts.map +1 -0
- package/dist/commands/dashboard.js +30 -0
- package/dist/commands/dashboard.js.map +1 -0
- package/dist/commands/init.d.ts +8 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +316 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/kanban.d.ts +7 -0
- package/dist/commands/kanban.d.ts.map +1 -0
- package/dist/commands/kanban.js +68 -0
- package/dist/commands/kanban.js.map +1 -0
- package/dist/commands/report.d.ts +8 -0
- package/dist/commands/report.d.ts.map +1 -0
- package/dist/commands/report.js +60 -0
- package/dist/commands/report.js.map +1 -0
- package/dist/commands/seed.d.ts +6 -0
- package/dist/commands/seed.d.ts.map +1 -0
- package/dist/commands/seed.js +30 -0
- package/dist/commands/seed.js.map +1 -0
- package/dist/commands/status.d.ts +6 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +62 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/generators/agent-ops-scripts.d.ts +8 -0
- package/dist/generators/agent-ops-scripts.d.ts.map +1 -0
- package/dist/generators/agent-ops-scripts.js +843 -0
- package/dist/generators/agent-ops-scripts.js.map +1 -0
- package/dist/generators/agent-ops.d.ts +6 -0
- package/dist/generators/agent-ops.d.ts.map +1 -0
- package/dist/generators/agent-ops.js +290 -0
- package/dist/generators/agent-ops.js.map +1 -0
- package/dist/generators/claude-hooks.d.ts +6 -0
- package/dist/generators/claude-hooks.d.ts.map +1 -0
- package/dist/generators/claude-hooks.js +260 -0
- package/dist/generators/claude-hooks.js.map +1 -0
- package/dist/generators/cli-aliases.d.ts +6 -0
- package/dist/generators/cli-aliases.d.ts.map +1 -0
- package/dist/generators/cli-aliases.js +187 -0
- package/dist/generators/cli-aliases.js.map +1 -0
- package/dist/generators/dashboard.d.ts +6 -0
- package/dist/generators/dashboard.d.ts.map +1 -0
- package/dist/generators/dashboard.js +732 -0
- package/dist/generators/dashboard.js.map +1 -0
- package/dist/generators/git-hook.d.ts +6 -0
- package/dist/generators/git-hook.d.ts.map +1 -0
- package/dist/generators/git-hook.js +163 -0
- package/dist/generators/git-hook.js.map +1 -0
- package/dist/generators/http.d.ts +6 -0
- package/dist/generators/http.d.ts.map +1 -0
- package/dist/generators/http.js +175 -0
- package/dist/generators/http.js.map +1 -0
- package/dist/generators/orchestrator.d.ts +6 -0
- package/dist/generators/orchestrator.d.ts.map +1 -0
- package/dist/generators/orchestrator.js +391 -0
- package/dist/generators/orchestrator.js.map +1 -0
- package/dist/generators/schema.d.ts +8 -0
- package/dist/generators/schema.d.ts.map +1 -0
- package/dist/generators/schema.js +470 -0
- package/dist/generators/schema.js.map +1 -0
- package/dist/generators/skill.d.ts +6 -0
- package/dist/generators/skill.d.ts.map +1 -0
- package/dist/generators/skill.js +147 -0
- package/dist/generators/skill.js.map +1 -0
- package/dist/generators/slash-commands.d.ts +6 -0
- package/dist/generators/slash-commands.d.ts.map +1 -0
- package/dist/generators/slash-commands.js +268 -0
- package/dist/generators/slash-commands.js.map +1 -0
- package/dist/generators/tasks.d.ts +6 -0
- package/dist/generators/tasks.d.ts.map +1 -0
- package/dist/generators/tasks.js +451 -0
- package/dist/generators/tasks.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +54 -0
- package/dist/index.js.map +1 -0
- package/dist/presets/research.d.ts +3 -0
- package/dist/presets/research.d.ts.map +1 -0
- package/dist/presets/research.js +56 -0
- package/dist/presets/research.js.map +1 -0
- package/dist/presets/software.d.ts +3 -0
- package/dist/presets/software.d.ts.map +1 -0
- package/dist/presets/software.js +56 -0
- package/dist/presets/software.js.map +1 -0
- package/dist/utils/detect.d.ts +3 -0
- package/dist/utils/detect.d.ts.map +1 -0
- package/dist/utils/detect.js +76 -0
- package/dist/utils/detect.js.map +1 -0
- package/dist/utils/merge.d.ts +14 -0
- package/dist/utils/merge.d.ts.map +1 -0
- package/dist/utils/merge.js +43 -0
- package/dist/utils/merge.js.map +1 -0
- package/package.json +39 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-ops-scripts.js","sourceRoot":"","sources":["../../src/generators/agent-ops-scripts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-ops.d.ts","sourceRoot":"","sources":["../../src/generators/agent-ops.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAGlE,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,gBAAgB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAoTvF"}
|
|
@@ -0,0 +1,290 @@
|
|
|
1
|
+
// ============================================================
|
|
2
|
+
// Generator: Layer 4 — Convex Agent-Ops Backend
|
|
3
|
+
// Generates convex/taskSystem/agentOps.ts
|
|
4
|
+
// ============================================================
|
|
5
|
+
import { writeFileSync } from "node:fs";
|
|
6
|
+
import { join } from "node:path";
|
|
7
|
+
export function generateAgentOps(ctx) {
|
|
8
|
+
const { config, targetDir, dryRun } = ctx;
|
|
9
|
+
const agentKeys = Object.keys(config.agents);
|
|
10
|
+
const agentUnion = agentKeys.map((k) => `v.literal("${k}")`).join(", ");
|
|
11
|
+
const L = [];
|
|
12
|
+
L.push(`// ============================================================`);
|
|
13
|
+
L.push(`// Agent-Ops Backend — generated by @yattalo/task-system`);
|
|
14
|
+
L.push(`// Project: ${config.projectName}`);
|
|
15
|
+
L.push(`// ============================================================`);
|
|
16
|
+
L.push(``);
|
|
17
|
+
L.push(`import { v } from "convex/values";`);
|
|
18
|
+
L.push(`import { query, mutation } from "../_generated/server";`);
|
|
19
|
+
L.push(``);
|
|
20
|
+
// Shared validators
|
|
21
|
+
L.push(`const SCHEDULE_TYPE = v.union(v.literal("cron"), v.literal("interval"), v.literal("one-shot"), v.literal("trigger"));`);
|
|
22
|
+
L.push(`const AGENT_TYPE = v.union(${agentUnion});`);
|
|
23
|
+
L.push(`const EXEC_MODE = v.union(v.literal("isolated"), v.literal("read-only"), v.literal("dry-run"));`);
|
|
24
|
+
L.push(`const RUN_STATUS = v.union(v.literal("queued"), v.literal("provisioning"), v.literal("running"), v.literal("completing"), v.literal("success"), v.literal("failed"), v.literal("timeout"), v.literal("cancelled"));`);
|
|
25
|
+
L.push(`const TRIGGERED_BY = v.union(v.literal("schedule"), v.literal("trigger"), v.literal("manual"), v.literal("retry"));`);
|
|
26
|
+
L.push(``);
|
|
27
|
+
// ── QUERIES ──
|
|
28
|
+
L.push(`// ══════════════════════════════════════════════════════════════`);
|
|
29
|
+
L.push(`// QUERIES`);
|
|
30
|
+
L.push(`// ══════════════════════════════════════════════════════════════`);
|
|
31
|
+
L.push(``);
|
|
32
|
+
// listJobs
|
|
33
|
+
L.push(`export const listJobs = query({`);
|
|
34
|
+
L.push(` args: { enabled: v.optional(v.boolean()), agent: v.optional(AGENT_TYPE), scheduleType: v.optional(SCHEDULE_TYPE) },`);
|
|
35
|
+
L.push(` handler: async (ctx, args) => {`);
|
|
36
|
+
L.push(` let jobs;`);
|
|
37
|
+
L.push(` if (args.enabled !== undefined) {`);
|
|
38
|
+
L.push(` jobs = await ctx.db.query("agentOpsJobs").withIndex("by_enabled", (q) => q.eq("enabled", args.enabled!)).collect();`);
|
|
39
|
+
L.push(` } else if (args.agent) {`);
|
|
40
|
+
L.push(` jobs = await ctx.db.query("agentOpsJobs").withIndex("by_agent", (q) => q.eq("agent", args.agent!)).collect();`);
|
|
41
|
+
L.push(` } else {`);
|
|
42
|
+
L.push(` jobs = await ctx.db.query("agentOpsJobs").collect();`);
|
|
43
|
+
L.push(` }`);
|
|
44
|
+
L.push(` if (args.agent && args.enabled !== undefined) jobs = jobs.filter((j) => j.agent === args.agent);`);
|
|
45
|
+
L.push(` if (args.scheduleType) jobs = jobs.filter((j) => j.scheduleType === args.scheduleType);`);
|
|
46
|
+
L.push(` return jobs.sort((a, b) => b.updatedAt - a.updatedAt);`);
|
|
47
|
+
L.push(` },`);
|
|
48
|
+
L.push(`});`);
|
|
49
|
+
L.push(``);
|
|
50
|
+
// getJob
|
|
51
|
+
L.push(`export const getJob = query({`);
|
|
52
|
+
L.push(` args: { jobId: v.string() },`);
|
|
53
|
+
L.push(` handler: async (ctx, { jobId }) => ctx.db.query("agentOpsJobs").withIndex("by_jobId", (q) => q.eq("jobId", jobId)).unique(),`);
|
|
54
|
+
L.push(`});`);
|
|
55
|
+
L.push(``);
|
|
56
|
+
// getDashboardStats
|
|
57
|
+
L.push(`export const getDashboardStats = query({`);
|
|
58
|
+
L.push(` args: {},`);
|
|
59
|
+
L.push(` handler: async (ctx) => {`);
|
|
60
|
+
L.push(` const jobs = await ctx.db.query("agentOpsJobs").collect();`);
|
|
61
|
+
L.push(` const runs = await ctx.db.query("agentOpsRuns").collect();`);
|
|
62
|
+
L.push(` const byStatus: Record<string, number> = {};`);
|
|
63
|
+
L.push(` for (const r of runs) byStatus[r.status] = (byStatus[r.status] ?? 0) + 1;`);
|
|
64
|
+
L.push(` return {`);
|
|
65
|
+
L.push(` totalJobs: jobs.length,`);
|
|
66
|
+
L.push(` enabledJobs: jobs.filter((j) => j.enabled).length,`);
|
|
67
|
+
L.push(` totalRuns: runs.length,`);
|
|
68
|
+
L.push(` byStatus,`);
|
|
69
|
+
L.push(` recentRuns: runs.sort((a, b) => b.queuedAt - a.queuedAt).slice(0, 10),`);
|
|
70
|
+
L.push(` };`);
|
|
71
|
+
L.push(` },`);
|
|
72
|
+
L.push(`});`);
|
|
73
|
+
L.push(``);
|
|
74
|
+
// listRuns
|
|
75
|
+
L.push(`export const listRuns = query({`);
|
|
76
|
+
L.push(` args: { jobId: v.optional(v.string()), status: v.optional(RUN_STATUS), agent: v.optional(AGENT_TYPE), limit: v.optional(v.number()) },`);
|
|
77
|
+
L.push(` handler: async (ctx, args) => {`);
|
|
78
|
+
L.push(` let runs;`);
|
|
79
|
+
L.push(` if (args.jobId) {`);
|
|
80
|
+
L.push(` runs = await ctx.db.query("agentOpsRuns").withIndex("by_jobId", (q) => q.eq("jobId", args.jobId!)).collect();`);
|
|
81
|
+
L.push(` } else if (args.status) {`);
|
|
82
|
+
L.push(` runs = await ctx.db.query("agentOpsRuns").withIndex("by_status", (q) => q.eq("status", args.status!)).collect();`);
|
|
83
|
+
L.push(` } else {`);
|
|
84
|
+
L.push(` runs = await ctx.db.query("agentOpsRuns").collect();`);
|
|
85
|
+
L.push(` }`);
|
|
86
|
+
L.push(` if (args.agent) runs = runs.filter((r) => r.agent === args.agent);`);
|
|
87
|
+
L.push(` runs.sort((a, b) => b.queuedAt - a.queuedAt);`);
|
|
88
|
+
L.push(` return args.limit ? runs.slice(0, args.limit) : runs;`);
|
|
89
|
+
L.push(` },`);
|
|
90
|
+
L.push(`});`);
|
|
91
|
+
L.push(``);
|
|
92
|
+
// getRun
|
|
93
|
+
L.push(`export const getRun = query({`);
|
|
94
|
+
L.push(` args: { runId: v.string() },`);
|
|
95
|
+
L.push(` handler: async (ctx, { runId }) => ctx.db.query("agentOpsRuns").withIndex("by_runId", (q) => q.eq("runId", runId)).unique(),`);
|
|
96
|
+
L.push(`});`);
|
|
97
|
+
L.push(``);
|
|
98
|
+
// getRunLogs
|
|
99
|
+
L.push(`export const getRunLogs = query({`);
|
|
100
|
+
L.push(` args: { runId: v.string() },`);
|
|
101
|
+
L.push(` handler: async (ctx, { runId }) => {`);
|
|
102
|
+
L.push(` const run = await ctx.db.query("agentOpsRuns").withIndex("by_runId", (q) => q.eq("runId", runId)).unique();`);
|
|
103
|
+
L.push(` return run?.logs ?? [];`);
|
|
104
|
+
L.push(` },`);
|
|
105
|
+
L.push(`});`);
|
|
106
|
+
L.push(``);
|
|
107
|
+
// getPendingRuns
|
|
108
|
+
L.push(`export const getPendingRuns = query({`);
|
|
109
|
+
L.push(` args: {},`);
|
|
110
|
+
L.push(` handler: async (ctx) => {`);
|
|
111
|
+
L.push(` const queued = await ctx.db.query("agentOpsRuns").withIndex("by_status", (q) => q.eq("status", "queued")).collect();`);
|
|
112
|
+
L.push(` const prov = await ctx.db.query("agentOpsRuns").withIndex("by_status", (q) => q.eq("status", "provisioning")).collect();`);
|
|
113
|
+
L.push(` return [...queued, ...prov].sort((a, b) => a.queuedAt - b.queuedAt);`);
|
|
114
|
+
L.push(` },`);
|
|
115
|
+
L.push(`});`);
|
|
116
|
+
L.push(``);
|
|
117
|
+
// ── MUTATIONS ──
|
|
118
|
+
L.push(`// ══════════════════════════════════════════════════════════════`);
|
|
119
|
+
L.push(`// MUTATIONS`);
|
|
120
|
+
L.push(`// ══════════════════════════════════════════════════════════════`);
|
|
121
|
+
L.push(``);
|
|
122
|
+
// createJob
|
|
123
|
+
L.push(`export const createJob = mutation({`);
|
|
124
|
+
L.push(` args: {`);
|
|
125
|
+
L.push(` jobId: v.string(), name: v.string(), description: v.optional(v.string()),`);
|
|
126
|
+
L.push(` scheduleType: SCHEDULE_TYPE, cronExpression: v.optional(v.string()),`);
|
|
127
|
+
L.push(` intervalSeconds: v.optional(v.number()), timezone: v.optional(v.string()),`);
|
|
128
|
+
L.push(` triggerType: v.optional(v.string()), triggerFilter: v.optional(v.any()),`);
|
|
129
|
+
L.push(` agent: AGENT_TYPE, prompt: v.string(), executionMode: EXEC_MODE,`);
|
|
130
|
+
L.push(` createPR: v.boolean(), prBaseBranch: v.optional(v.string()),`);
|
|
131
|
+
L.push(` maxDurationMinutes: v.optional(v.number()), laneId: v.optional(v.string()),`);
|
|
132
|
+
L.push(` },`);
|
|
133
|
+
L.push(` handler: async (ctx, args) => {`);
|
|
134
|
+
L.push(` const now = Date.now();`);
|
|
135
|
+
L.push(` return await ctx.db.insert("agentOpsJobs", {`);
|
|
136
|
+
L.push(` ...args, enabled: true, totalRuns: 0, successfulRuns: 0, failedRuns: 0, createdAt: now, updatedAt: now,`);
|
|
137
|
+
L.push(` });`);
|
|
138
|
+
L.push(` },`);
|
|
139
|
+
L.push(`});`);
|
|
140
|
+
L.push(``);
|
|
141
|
+
// updateJob
|
|
142
|
+
L.push(`export const updateJob = mutation({`);
|
|
143
|
+
L.push(` args: { jobId: v.string(), fields: v.any() },`);
|
|
144
|
+
L.push(` handler: async (ctx, { jobId, fields }) => {`);
|
|
145
|
+
L.push(` const job = await ctx.db.query("agentOpsJobs").withIndex("by_jobId", (q) => q.eq("jobId", jobId)).unique();`);
|
|
146
|
+
L.push(` if (!job) throw new Error(\`Job \${jobId} not found\`);`);
|
|
147
|
+
L.push(` await ctx.db.patch(job._id, { ...fields, updatedAt: Date.now() });`);
|
|
148
|
+
L.push(` },`);
|
|
149
|
+
L.push(`});`);
|
|
150
|
+
L.push(``);
|
|
151
|
+
// toggleJob
|
|
152
|
+
L.push(`export const toggleJob = mutation({`);
|
|
153
|
+
L.push(` args: { jobId: v.string() },`);
|
|
154
|
+
L.push(` handler: async (ctx, { jobId }) => {`);
|
|
155
|
+
L.push(` const job = await ctx.db.query("agentOpsJobs").withIndex("by_jobId", (q) => q.eq("jobId", jobId)).unique();`);
|
|
156
|
+
L.push(` if (!job) throw new Error(\`Job \${jobId} not found\`);`);
|
|
157
|
+
L.push(` await ctx.db.patch(job._id, { enabled: !job.enabled, updatedAt: Date.now() });`);
|
|
158
|
+
L.push(` },`);
|
|
159
|
+
L.push(`});`);
|
|
160
|
+
L.push(``);
|
|
161
|
+
// deleteJob
|
|
162
|
+
L.push(`export const deleteJob = mutation({`);
|
|
163
|
+
L.push(` args: { jobId: v.string() },`);
|
|
164
|
+
L.push(` handler: async (ctx, { jobId }) => {`);
|
|
165
|
+
L.push(` const job = await ctx.db.query("agentOpsJobs").withIndex("by_jobId", (q) => q.eq("jobId", jobId)).unique();`);
|
|
166
|
+
L.push(` if (!job) throw new Error(\`Job \${jobId} not found\`);`);
|
|
167
|
+
L.push(` await ctx.db.delete(job._id);`);
|
|
168
|
+
L.push(` },`);
|
|
169
|
+
L.push(`});`);
|
|
170
|
+
L.push(``);
|
|
171
|
+
// createRun
|
|
172
|
+
L.push(`export const createRun = mutation({`);
|
|
173
|
+
L.push(` args: {`);
|
|
174
|
+
L.push(` runId: v.string(), jobId: v.string(), agent: AGENT_TYPE, prompt: v.string(),`);
|
|
175
|
+
L.push(` executionMode: v.string(), triggeredBy: TRIGGERED_BY,`);
|
|
176
|
+
L.push(` triggerContext: v.optional(v.any()), baseBranch: v.optional(v.string()),`);
|
|
177
|
+
L.push(` },`);
|
|
178
|
+
L.push(` handler: async (ctx, args) => {`);
|
|
179
|
+
L.push(` return await ctx.db.insert("agentOpsRuns", {`);
|
|
180
|
+
L.push(` ...args, status: "queued", queuedAt: Date.now(), logs: [],`);
|
|
181
|
+
L.push(` });`);
|
|
182
|
+
L.push(` },`);
|
|
183
|
+
L.push(`});`);
|
|
184
|
+
L.push(``);
|
|
185
|
+
// updateRunStatus
|
|
186
|
+
L.push(`export const updateRunStatus = mutation({`);
|
|
187
|
+
L.push(` args: { runId: v.string(), status: RUN_STATUS },`);
|
|
188
|
+
L.push(` handler: async (ctx, { runId, status }) => {`);
|
|
189
|
+
L.push(` const run = await ctx.db.query("agentOpsRuns").withIndex("by_runId", (q) => q.eq("runId", runId)).unique();`);
|
|
190
|
+
L.push(` if (!run) throw new Error(\`Run \${runId} not found\`);`);
|
|
191
|
+
L.push(` const patch: Record<string, unknown> = { status };`);
|
|
192
|
+
L.push(` if (status === "running" && !run.startedAt) patch.startedAt = Date.now();`);
|
|
193
|
+
L.push(` if (["success", "failed", "timeout", "cancelled"].includes(status)) patch.completedAt = Date.now();`);
|
|
194
|
+
L.push(` await ctx.db.patch(run._id, patch);`);
|
|
195
|
+
L.push(` },`);
|
|
196
|
+
L.push(`});`);
|
|
197
|
+
L.push(``);
|
|
198
|
+
// appendRunLog
|
|
199
|
+
L.push(`export const appendRunLog = mutation({`);
|
|
200
|
+
L.push(` args: {`);
|
|
201
|
+
L.push(` runId: v.string(),`);
|
|
202
|
+
L.push(` entries: v.array(v.object({ timestamp: v.number(), level: v.union(v.literal("info"), v.literal("warn"), v.literal("error"), v.literal("debug")), message: v.string() })),`);
|
|
203
|
+
L.push(` },`);
|
|
204
|
+
L.push(` handler: async (ctx, { runId, entries }) => {`);
|
|
205
|
+
L.push(` const run = await ctx.db.query("agentOpsRuns").withIndex("by_runId", (q) => q.eq("runId", runId)).unique();`);
|
|
206
|
+
L.push(` if (!run) return;`);
|
|
207
|
+
L.push(` await ctx.db.patch(run._id, { logs: [...run.logs, ...entries] });`);
|
|
208
|
+
L.push(` },`);
|
|
209
|
+
L.push(`});`);
|
|
210
|
+
L.push(``);
|
|
211
|
+
// updateRunGitInfo
|
|
212
|
+
L.push(`export const updateRunGitInfo = mutation({`);
|
|
213
|
+
L.push(` args: {`);
|
|
214
|
+
L.push(` runId: v.string(),`);
|
|
215
|
+
L.push(` worktreePath: v.optional(v.string()), branchName: v.optional(v.string()),`);
|
|
216
|
+
L.push(` commitCount: v.optional(v.number()), filesChanged: v.optional(v.number()),`);
|
|
217
|
+
L.push(` linesAdded: v.optional(v.number()), linesRemoved: v.optional(v.number()),`);
|
|
218
|
+
L.push(` },`);
|
|
219
|
+
L.push(` handler: async (ctx, { runId, ...info }) => {`);
|
|
220
|
+
L.push(` const run = await ctx.db.query("agentOpsRuns").withIndex("by_runId", (q) => q.eq("runId", runId)).unique();`);
|
|
221
|
+
L.push(` if (!run) return;`);
|
|
222
|
+
L.push(` const patch: Record<string, unknown> = {};`);
|
|
223
|
+
L.push(` for (const [k, val] of Object.entries(info)) { if (val !== undefined) patch[k] = val; }`);
|
|
224
|
+
L.push(` await ctx.db.patch(run._id, patch);`);
|
|
225
|
+
L.push(` },`);
|
|
226
|
+
L.push(`});`);
|
|
227
|
+
L.push(``);
|
|
228
|
+
// completeRun
|
|
229
|
+
L.push(`export const completeRun = mutation({`);
|
|
230
|
+
L.push(` args: {`);
|
|
231
|
+
L.push(` runId: v.string(), status: v.union(v.literal("success"), v.literal("failed")),`);
|
|
232
|
+
L.push(` summary: v.optional(v.string()), error: v.optional(v.string()),`);
|
|
233
|
+
L.push(` exitCode: v.optional(v.number()), prUrl: v.optional(v.string()), prNumber: v.optional(v.number()),`);
|
|
234
|
+
L.push(` },`);
|
|
235
|
+
L.push(` handler: async (ctx, { runId, status, ...rest }) => {`);
|
|
236
|
+
L.push(` const run = await ctx.db.query("agentOpsRuns").withIndex("by_runId", (q) => q.eq("runId", runId)).unique();`);
|
|
237
|
+
L.push(` if (!run) throw new Error(\`Run \${runId} not found\`);`);
|
|
238
|
+
L.push(` const now = Date.now();`);
|
|
239
|
+
L.push(` const patch: Record<string, unknown> = { status, completedAt: now };`);
|
|
240
|
+
L.push(` for (const [k, val] of Object.entries(rest)) { if (val !== undefined) patch[k] = val; }`);
|
|
241
|
+
L.push(` await ctx.db.patch(run._id, patch);`);
|
|
242
|
+
L.push(``);
|
|
243
|
+
L.push(` // Update job stats`);
|
|
244
|
+
L.push(` const job = await ctx.db.query("agentOpsJobs").withIndex("by_jobId", (q) => q.eq("jobId", run.jobId)).unique();`);
|
|
245
|
+
L.push(` if (job) {`);
|
|
246
|
+
L.push(` const statPatch: Record<string, unknown> = { lastRunAt: now, updatedAt: now };`);
|
|
247
|
+
L.push(` if (status === "success") statPatch.successfulRuns = job.successfulRuns + 1;`);
|
|
248
|
+
L.push(` if (status === "failed") statPatch.failedRuns = job.failedRuns + 1;`);
|
|
249
|
+
L.push(` await ctx.db.patch(job._id, statPatch);`);
|
|
250
|
+
L.push(` }`);
|
|
251
|
+
L.push(` },`);
|
|
252
|
+
L.push(`});`);
|
|
253
|
+
L.push(``);
|
|
254
|
+
// cancelRun
|
|
255
|
+
L.push(`export const cancelRun = mutation({`);
|
|
256
|
+
L.push(` args: { runId: v.string() },`);
|
|
257
|
+
L.push(` handler: async (ctx, { runId }) => {`);
|
|
258
|
+
L.push(` const run = await ctx.db.query("agentOpsRuns").withIndex("by_runId", (q) => q.eq("runId", runId)).unique();`);
|
|
259
|
+
L.push(` if (!run) throw new Error(\`Run \${runId} not found\`);`);
|
|
260
|
+
L.push(` await ctx.db.patch(run._id, { status: "cancelled", completedAt: Date.now() });`);
|
|
261
|
+
L.push(` },`);
|
|
262
|
+
L.push(`});`);
|
|
263
|
+
L.push(``);
|
|
264
|
+
// triggerManualRun
|
|
265
|
+
L.push(`export const triggerManualRun = mutation({`);
|
|
266
|
+
L.push(` args: { jobId: v.string() },`);
|
|
267
|
+
L.push(` handler: async (ctx, { jobId }) => {`);
|
|
268
|
+
L.push(` const job = await ctx.db.query("agentOpsJobs").withIndex("by_jobId", (q) => q.eq("jobId", jobId)).unique();`);
|
|
269
|
+
L.push(` if (!job) throw new Error(\`Job \${jobId} not found\`);`);
|
|
270
|
+
L.push(` const now = Date.now();`);
|
|
271
|
+
L.push(` const runId = \`\${jobId}-manual-\${now}\`;`);
|
|
272
|
+
L.push(` await ctx.db.insert("agentOpsRuns", {`);
|
|
273
|
+
L.push(` runId, jobId, status: "queued", agent: job.agent, prompt: job.prompt,`);
|
|
274
|
+
L.push(` executionMode: job.executionMode, queuedAt: now, triggeredBy: "manual",`);
|
|
275
|
+
L.push(` baseBranch: job.prBaseBranch,`);
|
|
276
|
+
L.push(` logs: [{ timestamp: now, level: "info", message: "Manual trigger" }],`);
|
|
277
|
+
L.push(` });`);
|
|
278
|
+
L.push(` await ctx.db.patch(job._id, { totalRuns: job.totalRuns + 1, updatedAt: now });`);
|
|
279
|
+
L.push(` return runId;`);
|
|
280
|
+
L.push(` },`);
|
|
281
|
+
L.push(`});`);
|
|
282
|
+
L.push(``);
|
|
283
|
+
const content = L.join("\n");
|
|
284
|
+
const filePath = join(targetDir, "convex", "taskSystem", "agentOps.ts");
|
|
285
|
+
if (!dryRun) {
|
|
286
|
+
writeFileSync(filePath, content, "utf-8");
|
|
287
|
+
}
|
|
288
|
+
return { file: "convex/taskSystem/agentOps.ts", lines: L.length };
|
|
289
|
+
}
|
|
290
|
+
//# sourceMappingURL=agent-ops.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-ops.js","sourceRoot":"","sources":["../../src/generators/agent-ops.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-hooks.d.ts","sourceRoot":"","sources":["../../src/generators/claude-hooks.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAQlE,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,gBAAgB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,CAgD5F"}
|
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
// ============================================================
|
|
2
|
+
// Generator: Claude Code Hooks
|
|
3
|
+
// Generates .claude/hooks/*.sh and .claude/settings.json
|
|
4
|
+
// ============================================================
|
|
5
|
+
import { writeFileSync, readFileSync, existsSync, mkdirSync, chmodSync } from "node:fs";
|
|
6
|
+
import { join } from "node:path";
|
|
7
|
+
import { getTableName } from "@yattalo/task-system-core";
|
|
8
|
+
/** Convert regex \d to POSIX ERE [0-9] for shell grep compatibility (M3) */
|
|
9
|
+
function toPosixPattern(pattern) {
|
|
10
|
+
return pattern.replace(/\\d/g, "[0-9]");
|
|
11
|
+
}
|
|
12
|
+
export function generateClaudeHooks(ctx) {
|
|
13
|
+
const { config, targetDir, dryRun } = ctx;
|
|
14
|
+
const tableName = getTableName(config);
|
|
15
|
+
const pattern = toPosixPattern(config.taskIdPattern);
|
|
16
|
+
const results = [];
|
|
17
|
+
const hooksDir = join(targetDir, ".claude", "hooks");
|
|
18
|
+
if (!dryRun && !existsSync(hooksDir)) {
|
|
19
|
+
mkdirSync(hooksDir, { recursive: true });
|
|
20
|
+
}
|
|
21
|
+
// 1. Task ID detector hook - extracts task IDs from prompts
|
|
22
|
+
const detectorContent = generateTaskDetectorHook(pattern);
|
|
23
|
+
const detectorPath = join(hooksDir, "detect-task-id.sh");
|
|
24
|
+
if (!dryRun) {
|
|
25
|
+
writeFileSync(detectorPath, detectorContent, "utf-8");
|
|
26
|
+
chmodSync(detectorPath, 0o755);
|
|
27
|
+
}
|
|
28
|
+
results.push({ file: ".claude/hooks/detect-task-id.sh", lines: detectorContent.split("\n").length });
|
|
29
|
+
// 2. Post-commit task check hook (C3: changed from PreToolUse to PostToolUse)
|
|
30
|
+
const postCommitContent = generatePostCommitHook(tableName, pattern);
|
|
31
|
+
const postCommitPath = join(hooksDir, "check-task-status.sh");
|
|
32
|
+
if (!dryRun) {
|
|
33
|
+
writeFileSync(postCommitPath, postCommitContent, "utf-8");
|
|
34
|
+
chmodSync(postCommitPath, 0o755);
|
|
35
|
+
}
|
|
36
|
+
results.push({ file: ".claude/hooks/check-task-status.sh", lines: postCommitContent.split("\n").length });
|
|
37
|
+
// 3. Session summary hook
|
|
38
|
+
const sessionSummaryContent = generateSessionSummaryHook(tableName);
|
|
39
|
+
const sessionSummaryPath = join(hooksDir, "session-summary.sh");
|
|
40
|
+
if (!dryRun) {
|
|
41
|
+
writeFileSync(sessionSummaryPath, sessionSummaryContent, "utf-8");
|
|
42
|
+
chmodSync(sessionSummaryPath, 0o755);
|
|
43
|
+
}
|
|
44
|
+
results.push({ file: ".claude/hooks/session-summary.sh", lines: sessionSummaryContent.split("\n").length });
|
|
45
|
+
// 4. Generate settings.json with hooks configuration (M1: merge instead of overwrite)
|
|
46
|
+
const settingsContent = generateSettingsJson(config);
|
|
47
|
+
const settingsPath = join(targetDir, ".claude", "settings.json");
|
|
48
|
+
if (!dryRun) {
|
|
49
|
+
mergeSettingsJson(settingsPath, settingsContent);
|
|
50
|
+
}
|
|
51
|
+
results.push({ file: ".claude/settings.json", lines: settingsContent.split("\n").length });
|
|
52
|
+
return results;
|
|
53
|
+
}
|
|
54
|
+
/** M1: Merge new hooks into existing settings.json instead of overwriting */
|
|
55
|
+
function mergeSettingsJson(settingsPath, newContent) {
|
|
56
|
+
const newSettings = JSON.parse(newContent);
|
|
57
|
+
if (existsSync(settingsPath)) {
|
|
58
|
+
try {
|
|
59
|
+
const existing = JSON.parse(readFileSync(settingsPath, "utf-8"));
|
|
60
|
+
const existingHooks = (existing.hooks ?? {});
|
|
61
|
+
const newHooks = (newSettings.hooks ?? {});
|
|
62
|
+
const merged = {
|
|
63
|
+
...existing,
|
|
64
|
+
hooks: { ...existingHooks, ...newHooks },
|
|
65
|
+
};
|
|
66
|
+
writeFileSync(settingsPath, JSON.stringify(merged, null, 2), "utf-8");
|
|
67
|
+
}
|
|
68
|
+
catch {
|
|
69
|
+
// If existing file is not valid JSON, overwrite
|
|
70
|
+
writeFileSync(settingsPath, newContent, "utf-8");
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
writeFileSync(settingsPath, newContent, "utf-8");
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
function generateTaskDetectorHook(pattern) {
|
|
78
|
+
const L = [];
|
|
79
|
+
L.push(`#!/bin/bash`);
|
|
80
|
+
L.push(`set -e`);
|
|
81
|
+
L.push(`# ============================================================`);
|
|
82
|
+
L.push(`# Task ID Detector - extracts task IDs from user prompts`);
|
|
83
|
+
L.push(`# ============================================================`);
|
|
84
|
+
L.push(``);
|
|
85
|
+
L.push(`TASK_PATTERN="${pattern}"`);
|
|
86
|
+
L.push(``);
|
|
87
|
+
L.push(`# Read JSON input from stdin`);
|
|
88
|
+
L.push(`INPUT=$(cat /dev/stdin)`);
|
|
89
|
+
L.push(``);
|
|
90
|
+
L.push(`# Extract prompt from JSON`);
|
|
91
|
+
L.push(`PROMPT=$(echo "$INPUT" | jq -r '.prompt // empty' 2>/dev/null) || exit 0`);
|
|
92
|
+
L.push(``);
|
|
93
|
+
L.push(`if [ -z "$PROMPT" ]; then`);
|
|
94
|
+
L.push(` exit 0`);
|
|
95
|
+
L.push(`fi`);
|
|
96
|
+
L.push(``);
|
|
97
|
+
L.push(`# Extract task IDs matching pattern`);
|
|
98
|
+
L.push(`TASK_IDS=$(echo "$PROMPT" | grep -oE "$TASK_PATTERN" | sort -u) || exit 0`);
|
|
99
|
+
L.push(``);
|
|
100
|
+
L.push(`if [ -z "$TASK_IDS" ]; then`);
|
|
101
|
+
L.push(` exit 0`);
|
|
102
|
+
L.push(`fi`);
|
|
103
|
+
L.push(``);
|
|
104
|
+
L.push(`# For each task ID, get current status from Convex`);
|
|
105
|
+
// C2: Build context without embedded newlines, use semicolons as separator
|
|
106
|
+
L.push(`CONTEXT=""`);
|
|
107
|
+
L.push(`for TASK_ID in $TASK_IDS; do`);
|
|
108
|
+
L.push(` STATUS=$(npx convex run taskSystem/tasks:get '{"taskId":"'"$TASK_ID"'"}' 2>/dev/null | jq -r '.status // "not_found"' 2>/dev/null) || true`);
|
|
109
|
+
L.push(` if [ "$STATUS" != "not_found" ] && [ -n "$STATUS" ]; then`);
|
|
110
|
+
L.push(` CONTEXT="$CONTEXT $TASK_ID=$STATUS"`);
|
|
111
|
+
L.push(` fi`);
|
|
112
|
+
L.push(`done`);
|
|
113
|
+
L.push(``);
|
|
114
|
+
// C2: Use jq --arg for safe JSON construction
|
|
115
|
+
L.push(`if [ -n "$CONTEXT" ]; then`);
|
|
116
|
+
L.push(` jq -n --arg ctx "$CONTEXT" '{`);
|
|
117
|
+
L.push(` "hookSpecificOutput": {`);
|
|
118
|
+
L.push(` "hookEventName": "UserPromptSubmit",`);
|
|
119
|
+
L.push(` "additionalContext": ("Task status:" + $ctx)`);
|
|
120
|
+
L.push(` }`);
|
|
121
|
+
L.push(` }'`);
|
|
122
|
+
L.push(` exit 0`);
|
|
123
|
+
L.push(`fi`);
|
|
124
|
+
L.push(``);
|
|
125
|
+
L.push(`exit 0`);
|
|
126
|
+
return L.join("\n");
|
|
127
|
+
}
|
|
128
|
+
// C3: Changed from PreToolUse to PostToolUse — now reads the actual commit
|
|
129
|
+
function generatePostCommitHook(tableName, pattern) {
|
|
130
|
+
const L = [];
|
|
131
|
+
L.push(`#!/bin/bash`);
|
|
132
|
+
L.push(`set -e`);
|
|
133
|
+
L.push(`# ============================================================`);
|
|
134
|
+
L.push(`# Post-commit Task Check - validates task references in commits`);
|
|
135
|
+
L.push(`# ============================================================`);
|
|
136
|
+
L.push(``);
|
|
137
|
+
L.push(`TASK_PATTERN="${pattern}"`);
|
|
138
|
+
L.push(``);
|
|
139
|
+
L.push(`# Read JSON input from stdin`);
|
|
140
|
+
L.push(`INPUT=$(cat /dev/stdin)`);
|
|
141
|
+
L.push(``);
|
|
142
|
+
L.push(`# Only run on Bash tool (git commands)`);
|
|
143
|
+
L.push(`TOOL_NAME=$(echo "$INPUT" | jq -r '.tool_name') || exit 0`);
|
|
144
|
+
L.push(`if [ "$TOOL_NAME" != "Bash" ]; then`);
|
|
145
|
+
L.push(` exit 0`);
|
|
146
|
+
L.push(`fi`);
|
|
147
|
+
L.push(``);
|
|
148
|
+
L.push(`# Extract command`);
|
|
149
|
+
L.push(`COMMAND=$(echo "$INPUT" | jq -r '.tool_input.command' 2>/dev/null) || exit 0`);
|
|
150
|
+
L.push(``);
|
|
151
|
+
L.push(`# Only check git commit commands`);
|
|
152
|
+
L.push(`if ! echo "$COMMAND" | grep -qE "(git commit|git push)"; then`);
|
|
153
|
+
L.push(` exit 0`);
|
|
154
|
+
L.push(`fi`);
|
|
155
|
+
L.push(``);
|
|
156
|
+
L.push(`# Get the commit message (PostToolUse: commit already happened)`);
|
|
157
|
+
L.push(`MSG=$(git log -1 --pretty=%B 2>/dev/null) || exit 0`);
|
|
158
|
+
L.push(``);
|
|
159
|
+
L.push(`# Extract task IDs`);
|
|
160
|
+
L.push(`TASK_IDS=$(echo "$MSG" | grep -oE "$TASK_PATTERN" | sort -u) || exit 0`);
|
|
161
|
+
L.push(``);
|
|
162
|
+
L.push(`if [ -z "$TASK_IDS" ]; then`);
|
|
163
|
+
L.push(` exit 0`);
|
|
164
|
+
L.push(`fi`);
|
|
165
|
+
L.push(``);
|
|
166
|
+
L.push(`# Check each task ID`);
|
|
167
|
+
L.push(`for TASK_ID in $TASK_IDS; do`);
|
|
168
|
+
L.push(` EXISTS=$(npx convex run taskSystem/tasks:get '{"taskId":"'"$TASK_ID"'"}' 2>/dev/null | jq -r '.taskId // empty' 2>/dev/null) || true`);
|
|
169
|
+
L.push(` if [ -z "$EXISTS" ]; then`);
|
|
170
|
+
// C1: Use TS interpolation for tableName, not shell variable
|
|
171
|
+
L.push(` echo "Warning: $TASK_ID not found in ${tableName}" >&2`);
|
|
172
|
+
L.push(` fi`);
|
|
173
|
+
L.push(`done`);
|
|
174
|
+
L.push(``);
|
|
175
|
+
L.push(`exit 0`);
|
|
176
|
+
return L.join("\n");
|
|
177
|
+
}
|
|
178
|
+
function generateSessionSummaryHook(tableName) {
|
|
179
|
+
const L = [];
|
|
180
|
+
L.push(`#!/bin/bash`);
|
|
181
|
+
L.push(`set -e`);
|
|
182
|
+
L.push(`# ============================================================`);
|
|
183
|
+
L.push(`# Session Summary - shows task progress when session ends`);
|
|
184
|
+
L.push(`# ============================================================`);
|
|
185
|
+
L.push(``);
|
|
186
|
+
L.push(`# Read JSON input from stdin`);
|
|
187
|
+
L.push(`INPUT=$(cat /dev/stdin)`);
|
|
188
|
+
L.push(``);
|
|
189
|
+
L.push(`# Get current working directory`);
|
|
190
|
+
L.push(`PROJECT_DIR=$(echo "$INPUT" | jq -r '.cwd') || exit 0`);
|
|
191
|
+
L.push(``);
|
|
192
|
+
L.push(`cd "$PROJECT_DIR" 2>/dev/null || exit 0`);
|
|
193
|
+
L.push(``);
|
|
194
|
+
L.push(`# Check if task-system is initialized`);
|
|
195
|
+
L.push(`if [ ! -f "task-system.config.ts" ]; then`);
|
|
196
|
+
L.push(` exit 0`);
|
|
197
|
+
L.push(`fi`);
|
|
198
|
+
L.push(``);
|
|
199
|
+
L.push(`# Get task statistics`);
|
|
200
|
+
L.push(`STATS=$(npx convex run taskSystem/orchestrator:getStats 2>/dev/null) || exit 0`);
|
|
201
|
+
L.push(``);
|
|
202
|
+
L.push(`if [ -n "$STATS" ] && [ "$STATS" != "null" ]; then`);
|
|
203
|
+
L.push(` TOTAL=$(echo "$STATS" | jq -r '.total // 0' 2>/dev/null)`);
|
|
204
|
+
// M6: Fix jq paths to match actual getStats return shape (.byStatus.*)
|
|
205
|
+
L.push(` DONE=$(echo "$STATS" | jq -r '.byStatus.done // 0' 2>/dev/null)`);
|
|
206
|
+
L.push(` IN_PROGRESS=$(echo "$STATS" | jq -r '.byStatus.in_progress // 0' 2>/dev/null)`);
|
|
207
|
+
L.push(` BLOCKED=$(echo "$STATS" | jq -r '.byStatus.blocked // 0' 2>/dev/null)`);
|
|
208
|
+
L.push(``);
|
|
209
|
+
L.push(` if [ "$IN_PROGRESS" -gt 0 ] 2>/dev/null || [ "$BLOCKED" -gt 0 ] 2>/dev/null; then`);
|
|
210
|
+
L.push(` SUMMARY="Task Progress: $DONE/$TOTAL done, $IN_PROGRESS in progress, $BLOCKED blocked"`);
|
|
211
|
+
L.push(` jq -n --arg summary "$SUMMARY" '{"additionalContext": $summary}'`);
|
|
212
|
+
L.push(` fi`);
|
|
213
|
+
L.push(`fi`);
|
|
214
|
+
L.push(``);
|
|
215
|
+
L.push(`exit 0`);
|
|
216
|
+
return L.join("\n");
|
|
217
|
+
}
|
|
218
|
+
// C3: Changed PreToolUse to PostToolUse for check-task-status hook
|
|
219
|
+
function generateSettingsJson(ctx) {
|
|
220
|
+
const settings = {
|
|
221
|
+
hooks: {
|
|
222
|
+
UserPromptSubmit: [
|
|
223
|
+
{
|
|
224
|
+
hooks: [
|
|
225
|
+
{
|
|
226
|
+
type: "command",
|
|
227
|
+
command: "$CLAUDE_PROJECT_DIR/.claude/hooks/detect-task-id.sh",
|
|
228
|
+
statusMessage: "Checking task references",
|
|
229
|
+
},
|
|
230
|
+
],
|
|
231
|
+
},
|
|
232
|
+
],
|
|
233
|
+
PostToolUse: [
|
|
234
|
+
{
|
|
235
|
+
matcher: "Bash",
|
|
236
|
+
hooks: [
|
|
237
|
+
{
|
|
238
|
+
type: "command",
|
|
239
|
+
command: "$CLAUDE_PROJECT_DIR/.claude/hooks/check-task-status.sh",
|
|
240
|
+
statusMessage: "Validating task references",
|
|
241
|
+
},
|
|
242
|
+
],
|
|
243
|
+
},
|
|
244
|
+
],
|
|
245
|
+
Stop: [
|
|
246
|
+
{
|
|
247
|
+
hooks: [
|
|
248
|
+
{
|
|
249
|
+
type: "command",
|
|
250
|
+
command: "$CLAUDE_PROJECT_DIR/.claude/hooks/session-summary.sh",
|
|
251
|
+
statusMessage: "Generating session summary",
|
|
252
|
+
},
|
|
253
|
+
],
|
|
254
|
+
},
|
|
255
|
+
],
|
|
256
|
+
},
|
|
257
|
+
};
|
|
258
|
+
return JSON.stringify(settings, null, 2);
|
|
259
|
+
}
|
|
260
|
+
//# sourceMappingURL=claude-hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-hooks.js","sourceRoot":"","sources":["../../src/generators/claude-hooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-aliases.d.ts","sourceRoot":"","sources":["../../src/generators/cli-aliases.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElE,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,gBAAgB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAuLzF"}
|