@yattalo/task-system 0.1.2 → 0.3.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.
@@ -8,6 +8,7 @@ import { hasSoftwareExtensions, hasResearchExtensions, getTableName, } from "@ya
8
8
  export function generateOrchestrator(ctx) {
9
9
  const { config, targetDir, dryRun } = ctx;
10
10
  const tableName = getTableName(config);
11
+ const defaultProjectId = JSON.stringify(config.projectId ?? "default");
11
12
  const isSoftware = hasSoftwareExtensions(config);
12
13
  const isResearch = hasResearchExtensions(config);
13
14
  const agentKeys = Object.keys(config.agents);
@@ -21,9 +22,14 @@ export function generateOrchestrator(ctx) {
21
22
  L.push(``);
22
23
  L.push(`import { v } from "convex/values";`);
23
24
  L.push(`import { query, mutation } from "../_generated/server";`);
24
- L.push(`import { TASK_DEFINITIONS } from "./taskDefinitions";`);
25
+ L.push(`import { TASK_DEFINITIONS } from "./task-definitions";`);
25
26
  L.push(``);
26
27
  L.push(`const TABLE = "${tableName}" as const;`);
28
+ L.push(`const DEFAULT_PROJECT_ID = ${defaultProjectId} as const;`);
29
+ L.push(``);
30
+ L.push(`function resolveProjectId(projectId?: string): string {`);
31
+ L.push(` return projectId ?? DEFAULT_PROJECT_ID;`);
32
+ L.push(`}`);
27
33
  L.push(``);
28
34
  // ── seed ──
29
35
  L.push(`// ══════════════════════════════════════════════════════════════`);
@@ -31,9 +37,10 @@ export function generateOrchestrator(ctx) {
31
37
  L.push(`// ══════════════════════════════════════════════════════════════`);
32
38
  L.push(``);
33
39
  L.push(`export const seed = mutation({`);
34
- L.push(` args: {},`);
35
- L.push(` handler: async (ctx) => {`);
36
- L.push(` const existing = await ctx.db.query(TABLE).collect();`);
40
+ L.push(` args: { projectId: v.optional(v.string()) },`);
41
+ L.push(` handler: async (ctx, { projectId }) => {`);
42
+ L.push(` const scope = resolveProjectId(projectId);`);
43
+ L.push(` const existing = await ctx.db.query(TABLE).withIndex("by_projectId", (q) => q.eq("projectId", scope)).collect();`);
37
44
  L.push(` const existingIds = new Set(existing.map((t) => t.taskId));`);
38
45
  L.push(` let created = 0, skipped = 0;`);
39
46
  L.push(` const now = Date.now();`);
@@ -50,6 +57,7 @@ export function generateOrchestrator(ctx) {
50
57
  L.push(` }`);
51
58
  L.push(``);
52
59
  L.push(` await ctx.db.insert(TABLE, {`);
60
+ L.push(` projectId: scope,`);
53
61
  L.push(` taskId: def.taskId,`);
54
62
  L.push(` agent: def.agent as any,`);
55
63
  L.push(` title: def.title,`);
@@ -84,6 +92,7 @@ export function generateOrchestrator(ctx) {
84
92
  L.push(` }`);
85
93
  L.push(``);
86
94
  L.push(` await ctx.db.insert("taskSyncLog", {`);
95
+ L.push(` projectId: scope,`);
87
96
  L.push(` operation: "import", source: "seed", tasksAffected: created + skipped,`);
88
97
  L.push(` tasksCreated: created, timestamp: now,`);
89
98
  L.push(` });`);
@@ -99,9 +108,10 @@ export function generateOrchestrator(ctx) {
99
108
  L.push(``);
100
109
  // list
101
110
  L.push(`export const list = query({`);
102
- L.push(` args: {},`);
103
- L.push(` handler: async (ctx) => {`);
104
- L.push(` const tasks = await ctx.db.query(TABLE).collect();`);
111
+ L.push(` args: { projectId: v.optional(v.string()) },`);
112
+ L.push(` handler: async (ctx, { projectId }) => {`);
113
+ L.push(` const scope = resolveProjectId(projectId);`);
114
+ L.push(` const tasks = await ctx.db.query(TABLE).withIndex("by_projectId", (q) => q.eq("projectId", scope)).collect();`);
105
115
  L.push(` const order: Record<string, number> = { CRITICAL: 0, HIGH: 1, MEDIUM: 2, LOW: 3 };`);
106
116
  L.push(` return tasks.sort((a, b) => {`);
107
117
  L.push(` if (a.wave !== b.wave) return a.wave - b.wave;`);
@@ -112,25 +122,28 @@ export function generateOrchestrator(ctx) {
112
122
  L.push(``);
113
123
  // get
114
124
  L.push(`export const get = query({`);
115
- L.push(` args: { taskId: v.string() },`);
116
- L.push(` handler: async (ctx, { taskId }) => {`);
117
- L.push(` return await ctx.db.query(TABLE).withIndex("by_taskId", (q) => q.eq("taskId", taskId)).unique();`);
125
+ L.push(` args: { taskId: v.string(), projectId: v.optional(v.string()) },`);
126
+ L.push(` handler: async (ctx, { taskId, projectId }) => {`);
127
+ L.push(` const scope = resolveProjectId(projectId);`);
128
+ L.push(` return await ctx.db.query(TABLE).withIndex("by_project_taskId", (q) => q.eq("projectId", scope).eq("taskId", taskId)).unique();`);
118
129
  L.push(` },`);
119
130
  L.push(`});`);
120
131
  L.push(``);
121
132
  // getByAgent
122
133
  L.push(`export const getByAgent = query({`);
123
- L.push(` args: { agent: v.union(${agentUnion}) },`);
124
- L.push(` handler: async (ctx, { agent }) => {`);
125
- L.push(` const tasks = await ctx.db.query(TABLE).withIndex("by_agent", (q) => q.eq("agent", agent)).collect();`);
134
+ L.push(` args: { agent: v.union(${agentUnion}), projectId: v.optional(v.string()) },`);
135
+ L.push(` handler: async (ctx, { agent, projectId }) => {`);
136
+ L.push(` const scope = resolveProjectId(projectId);`);
137
+ L.push(` const tasks = await ctx.db.query(TABLE).withIndex("by_projectId", (q) => q.eq("projectId", scope)).collect();`);
138
+ L.push(` const filtered = tasks.filter((t) => t.agent === agent);`);
126
139
  L.push(` return {`);
127
- L.push(` tasks,`);
140
+ L.push(` tasks: filtered,`);
128
141
  L.push(` stats: {`);
129
- L.push(` total: tasks.length,`);
130
- L.push(` done: tasks.filter((t) => t.status === "done").length,`);
131
- L.push(` inProgress: tasks.filter((t) => t.status === "in_progress").length,`);
132
- L.push(` blocked: tasks.filter((t) => t.status === "blocked").length,`);
133
- L.push(` todo: tasks.filter((t) => t.status === "todo").length,`);
142
+ L.push(` total: filtered.length,`);
143
+ L.push(` done: filtered.filter((t) => t.status === "done").length,`);
144
+ L.push(` inProgress: filtered.filter((t) => t.status === "in_progress").length,`);
145
+ L.push(` blocked: filtered.filter((t) => t.status === "blocked").length,`);
146
+ L.push(` todo: filtered.filter((t) => t.status === "todo").length,`);
134
147
  L.push(` },`);
135
148
  L.push(` };`);
136
149
  L.push(` },`);
@@ -138,9 +151,10 @@ export function generateOrchestrator(ctx) {
138
151
  L.push(``);
139
152
  // getKanban
140
153
  L.push(`export const getKanban = query({`);
141
- L.push(` args: {},`);
142
- L.push(` handler: async (ctx) => {`);
143
- L.push(` const all = await ctx.db.query(TABLE).collect();`);
154
+ L.push(` args: { projectId: v.optional(v.string()) },`);
155
+ L.push(` handler: async (ctx, { projectId }) => {`);
156
+ L.push(` const scope = resolveProjectId(projectId);`);
157
+ L.push(` const all = await ctx.db.query(TABLE).withIndex("by_projectId", (q) => q.eq("projectId", scope)).collect();`);
144
158
  L.push(` return {`);
145
159
  L.push(` backlog: all.filter((t) => t.status === "backlog" || t.status === "pending"),`);
146
160
  L.push(` todo: all.filter((t) => t.status === "todo"),`);
@@ -155,13 +169,14 @@ export function generateOrchestrator(ctx) {
155
169
  L.push(``);
156
170
  // checkDependencies
157
171
  L.push(`export const checkDependencies = query({`);
158
- L.push(` args: { taskId: v.string() },`);
159
- L.push(` handler: async (ctx, { taskId }) => {`);
160
- L.push(` const task = await ctx.db.query(TABLE).withIndex("by_taskId", (q) => q.eq("taskId", taskId)).unique();`);
172
+ L.push(` args: { taskId: v.string(), projectId: v.optional(v.string()) },`);
173
+ L.push(` handler: async (ctx, { taskId, projectId }) => {`);
174
+ L.push(` const scope = resolveProjectId(projectId);`);
175
+ L.push(` const task = await ctx.db.query(TABLE).withIndex("by_project_taskId", (q) => q.eq("projectId", scope).eq("taskId", taskId)).unique();`);
161
176
  L.push(` if (!task?.dependencies?.length) return { canStart: true, unmetDependencies: [] as string[] };`);
162
177
  L.push(` const unmet: string[] = [];`);
163
178
  L.push(` for (const d of task.dependencies) {`);
164
- L.push(` const dep = await ctx.db.query(TABLE).withIndex("by_taskId", (q) => q.eq("taskId", d)).unique();`);
179
+ L.push(` const dep = await ctx.db.query(TABLE).withIndex("by_project_taskId", (q) => q.eq("projectId", scope).eq("taskId", d)).unique();`);
165
180
  L.push(` if (!dep || dep.status !== "done") unmet.push(d);`);
166
181
  L.push(` }`);
167
182
  L.push(` return { canStart: unmet.length === 0, unmetDependencies: unmet };`);
@@ -170,9 +185,10 @@ export function generateOrchestrator(ctx) {
170
185
  L.push(``);
171
186
  // getStats
172
187
  L.push(`export const getStats = query({`);
173
- L.push(` args: {},`);
174
- L.push(` handler: async (ctx) => {`);
175
- L.push(` const all = await ctx.db.query(TABLE).collect();`);
188
+ L.push(` args: { projectId: v.optional(v.string()) },`);
189
+ L.push(` handler: async (ctx, { projectId }) => {`);
190
+ L.push(` const scope = resolveProjectId(projectId);`);
191
+ L.push(` const all = await ctx.db.query(TABLE).withIndex("by_projectId", (q) => q.eq("projectId", scope)).collect();`);
176
192
  L.push(` const byStatus: Record<string, number> = {};`);
177
193
  L.push(` const byAgent: Record<string, number> = {};`);
178
194
  L.push(` const byWave: Record<number, number> = {};`);
@@ -189,9 +205,10 @@ export function generateOrchestrator(ctx) {
189
205
  L.push(``);
190
206
  // generateReport
191
207
  L.push(`export const generateReport = query({`);
192
- L.push(` args: { scope: v.optional(v.string()) },`);
193
- L.push(` handler: async (ctx, { scope }) => {`);
194
- L.push(` let all = await ctx.db.query(TABLE).collect();`);
208
+ L.push(` args: { scope: v.optional(v.string()), projectId: v.optional(v.string()) },`);
209
+ L.push(` handler: async (ctx, { scope, projectId }) => {`);
210
+ L.push(` const projectScope = resolveProjectId(projectId);`);
211
+ L.push(` let all = await ctx.db.query(TABLE).withIndex("by_projectId", (q) => q.eq("projectId", projectScope)).collect();`);
195
212
  L.push(` if (scope) all = all.filter((t) => t.agent === scope);`);
196
213
  L.push(` const byStatus: Record<string, typeof all> = {};`);
197
214
  L.push(` for (const t of all) { (byStatus[t.status] ??= []).push(t); }`);
@@ -210,9 +227,10 @@ export function generateOrchestrator(ctx) {
210
227
  L.push(``);
211
228
  // updateStatus
212
229
  L.push(`export const updateStatus = mutation({`);
213
- L.push(` args: { taskId: v.string(), newStatus: v.string(), note: v.optional(v.string()), agent: v.optional(v.string()) },`);
214
- L.push(` handler: async (ctx, { taskId, newStatus, note, agent }) => {`);
215
- L.push(` const task = await ctx.db.query(TABLE).withIndex("by_taskId", (q) => q.eq("taskId", taskId)).unique();`);
230
+ L.push(` args: { taskId: v.string(), newStatus: v.string(), note: v.optional(v.string()), agent: v.optional(v.string()), projectId: v.optional(v.string()) },`);
231
+ L.push(` handler: async (ctx, { taskId, newStatus, note, agent, projectId }) => {`);
232
+ L.push(` const scope = resolveProjectId(projectId);`);
233
+ L.push(` const task = await ctx.db.query(TABLE).withIndex("by_project_taskId", (q) => q.eq("projectId", scope).eq("taskId", taskId)).unique();`);
216
234
  L.push(` if (!task) throw new Error(\`Task \${taskId} not found\`);`);
217
235
  L.push(` const now = Date.now();`);
218
236
  L.push(` const history = [...(task.statusHistory ?? []), { status: newStatus, timestamp: now, note, agent }];`);
@@ -222,7 +240,7 @@ export function generateOrchestrator(ctx) {
222
240
  L.push(` await ctx.db.patch(task._id, patch);`);
223
241
  L.push(``);
224
242
  L.push(` if (newStatus === "done") {`);
225
- L.push(` const all = await ctx.db.query(TABLE).collect();`);
243
+ L.push(` const all = await ctx.db.query(TABLE).withIndex("by_projectId", (q) => q.eq("projectId", scope)).collect();`);
226
244
  L.push(` for (const t of all) {`);
227
245
  L.push(` if (t.status !== "blocked" || !t.dependencies?.includes(taskId)) continue;`);
228
246
  L.push(` const allMet = t.dependencies.every((d) => d === taskId || all.find((x) => x.taskId === d)?.status === "done");`);
@@ -234,11 +252,12 @@ export function generateOrchestrator(ctx) {
234
252
  L.push(``);
235
253
  // reset
236
254
  L.push(`export const reset = mutation({`);
237
- L.push(` args: {},`);
238
- L.push(` handler: async (ctx) => {`);
239
- L.push(` const all = await ctx.db.query(TABLE).collect();`);
255
+ L.push(` args: { projectId: v.optional(v.string()) },`);
256
+ L.push(` handler: async (ctx, { projectId }) => {`);
257
+ L.push(` const scope = resolveProjectId(projectId);`);
258
+ L.push(` const all = await ctx.db.query(TABLE).withIndex("by_projectId", (q) => q.eq("projectId", scope)).collect();`);
240
259
  L.push(` for (const t of all) await ctx.db.delete(t._id);`);
241
- L.push(` await ctx.db.insert("taskSyncLog", { operation: "import", source: "reset", tasksAffected: all.length, tasksDeleted: all.length, timestamp: Date.now() });`);
260
+ L.push(` await ctx.db.insert("taskSyncLog", { projectId: scope, operation: "import", source: "reset", tasksAffected: all.length, tasksDeleted: all.length, timestamp: Date.now() });`);
242
261
  L.push(` return { deleted: all.length };`);
243
262
  L.push(` },`);
244
263
  L.push(`});`);
@@ -252,9 +271,10 @@ export function generateOrchestrator(ctx) {
252
271
  // getPhaseStatus
253
272
  if (config.phases.length > 0) {
254
273
  L.push(`export const getPhaseStatus = query({`);
255
- L.push(` args: { phaseId: v.string() },`);
256
- L.push(` handler: async (ctx, { phaseId }) => {`);
257
- L.push(` const tasks = await ctx.db.query(TABLE).withIndex("by_phaseId", (q) => q.eq("phaseId", phaseId as any)).collect();`);
274
+ L.push(` args: { phaseId: v.string(), projectId: v.optional(v.string()) },`);
275
+ L.push(` handler: async (ctx, { phaseId, projectId }) => {`);
276
+ L.push(` const scope = resolveProjectId(projectId);`);
277
+ L.push(` const tasks = await ctx.db.query(TABLE).withIndex("by_project_phaseId", (q) => q.eq("projectId", scope).eq("phaseId", phaseId as any)).collect();`);
258
278
  L.push(` const done = tasks.filter((t) => t.status === "done").length;`);
259
279
  L.push(` return { phaseId, total: tasks.length, done, percentComplete: tasks.length ? Math.round((done / tasks.length) * 100) : 0, tasks };`);
260
280
  L.push(` },`);
@@ -264,9 +284,10 @@ export function generateOrchestrator(ctx) {
264
284
  // getConfidenceReport
265
285
  if (config.extensions.confidenceTracking) {
266
286
  L.push(`export const getConfidenceReport = query({`);
267
- L.push(` args: {},`);
268
- L.push(` handler: async (ctx) => {`);
269
- L.push(` const all = await ctx.db.query(TABLE).collect();`);
287
+ L.push(` args: { projectId: v.optional(v.string()) },`);
288
+ L.push(` handler: async (ctx, { projectId }) => {`);
289
+ L.push(` const scope = resolveProjectId(projectId);`);
290
+ L.push(` const all = await ctx.db.query(TABLE).withIndex("by_projectId", (q) => q.eq("projectId", scope)).collect();`);
270
291
  L.push(` const dist: Record<number, number> = { 0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0 };`);
271
292
  L.push(` for (const t of all) {`);
272
293
  L.push(` const c = t.confidenceLevel ?? 3;`);
@@ -282,6 +303,7 @@ export function generateOrchestrator(ctx) {
282
303
  if (config.extensions.checkpointLog) {
283
304
  L.push(`export const addCheckpoint = mutation({`);
284
305
  L.push(` args: {`);
306
+ L.push(` projectId: v.optional(v.string()),`);
285
307
  L.push(` taskId: v.string(),`);
286
308
  L.push(` aligned: v.boolean(),`);
287
309
  L.push(` sourcesRegistered: v.boolean(),`);
@@ -290,7 +312,8 @@ export function generateOrchestrator(ctx) {
290
312
  L.push(` note: v.optional(v.string()),`);
291
313
  L.push(` },`);
292
314
  L.push(` handler: async (ctx, args) => {`);
293
- L.push(` const task = await ctx.db.query(TABLE).withIndex("by_taskId", (q) => q.eq("taskId", args.taskId)).unique();`);
315
+ L.push(` const scope = resolveProjectId(args.projectId);`);
316
+ L.push(` const task = await ctx.db.query(TABLE).withIndex("by_project_taskId", (q) => q.eq("projectId", scope).eq("taskId", args.taskId)).unique();`);
294
317
  L.push(` if (!task) throw new Error(\`Task \${args.taskId} not found\`);`);
295
318
  L.push(` const log = [...(task.checkpointLog ?? []), {`);
296
319
  L.push(` timestamp: Date.now(), aligned: args.aligned, sourcesRegistered: args.sourcesRegistered,`);
@@ -303,9 +326,10 @@ export function generateOrchestrator(ctx) {
303
326
  }
304
327
  // flagDrift
305
328
  L.push(`export const flagDrift = mutation({`);
306
- L.push(` args: { taskId: v.string(), flag: v.string() },`);
307
- L.push(` handler: async (ctx, { taskId, flag }) => {`);
308
- L.push(` const task = await ctx.db.query(TABLE).withIndex("by_taskId", (q) => q.eq("taskId", taskId)).unique();`);
329
+ L.push(` args: { taskId: v.string(), flag: v.string(), projectId: v.optional(v.string()) },`);
330
+ L.push(` handler: async (ctx, { taskId, flag, projectId }) => {`);
331
+ L.push(` const scope = resolveProjectId(projectId);`);
332
+ L.push(` const task = await ctx.db.query(TABLE).withIndex("by_project_taskId", (q) => q.eq("projectId", scope).eq("taskId", taskId)).unique();`);
309
333
  L.push(` if (!task) throw new Error(\`Task \${taskId} not found\`);`);
310
334
  L.push(` const flags = [...(task.driftFlags ?? []), flag];`);
311
335
  L.push(` await ctx.db.patch(task._id, { driftFlags: flags, updatedAt: Date.now() });`);
@@ -314,9 +338,10 @@ export function generateOrchestrator(ctx) {
314
338
  L.push(``);
315
339
  // setValidationFindings
316
340
  L.push(`export const setValidationFindings = mutation({`);
317
- L.push(` args: { taskId: v.string(), findings: v.object({ confidence5: v.number(), confidence4: v.number(), confidence3: v.number(), confidence2: v.number(), confidence1: v.number(), confidence0: v.number() }) },`);
318
- L.push(` handler: async (ctx, { taskId, findings }) => {`);
319
- L.push(` const task = await ctx.db.query(TABLE).withIndex("by_taskId", (q) => q.eq("taskId", taskId)).unique();`);
341
+ L.push(` args: { taskId: v.string(), findings: v.object({ confidence5: v.number(), confidence4: v.number(), confidence3: v.number(), confidence2: v.number(), confidence1: v.number(), confidence0: v.number() }), projectId: v.optional(v.string()) },`);
342
+ L.push(` handler: async (ctx, { taskId, findings, projectId }) => {`);
343
+ L.push(` const scope = resolveProjectId(projectId);`);
344
+ L.push(` const task = await ctx.db.query(TABLE).withIndex("by_project_taskId", (q) => q.eq("projectId", scope).eq("taskId", taskId)).unique();`);
320
345
  L.push(` if (!task) throw new Error(\`Task \${taskId} not found\`);`);
321
346
  L.push(` await ctx.db.patch(task._id, { validationFindings: findings, updatedAt: Date.now() });`);
322
347
  L.push(` },`);
@@ -326,13 +351,16 @@ export function generateOrchestrator(ctx) {
326
351
  if (config.extensions.handoffLog) {
327
352
  L.push(`export const recordHandoff = mutation({`);
328
353
  L.push(` args: {`);
354
+ L.push(` projectId: v.optional(v.string()),`);
329
355
  L.push(` fromAgent: v.string(), toAgent: v.string(),`);
330
356
  L.push(` completedTask: v.string(), nextTask: v.string(),`);
331
357
  L.push(` payloadSummary: v.string(), payloadFiles: v.optional(v.array(v.string())),`);
332
358
  L.push(` },`);
333
359
  L.push(` handler: async (ctx, args) => {`);
360
+ L.push(` const scope = resolveProjectId(args.projectId);`);
334
361
  L.push(` const handoffId = \`HO-\${Date.now()}\`;`);
335
362
  L.push(` await ctx.db.insert("handoffLog", {`);
363
+ L.push(` projectId: scope,`);
336
364
  L.push(` handoffId, fromAgent: args.fromAgent, toAgent: args.toAgent,`);
337
365
  L.push(` completedTask: args.completedTask, nextTask: args.nextTask,`);
338
366
  L.push(` payloadSummary: args.payloadSummary, payloadFiles: args.payloadFiles,`);
@@ -352,9 +380,10 @@ export function generateOrchestrator(ctx) {
352
380
  L.push(``);
353
381
  if (config.extensions.scopeCreepDetection) {
354
382
  L.push(`export const flagScopeCreep = mutation({`);
355
- L.push(` args: { taskId: v.string(), flag: v.string() },`);
356
- L.push(` handler: async (ctx, { taskId, flag }) => {`);
357
- L.push(` const task = await ctx.db.query(TABLE).withIndex("by_taskId", (q) => q.eq("taskId", taskId)).unique();`);
383
+ L.push(` args: { taskId: v.string(), flag: v.string(), projectId: v.optional(v.string()) },`);
384
+ L.push(` handler: async (ctx, { taskId, flag, projectId }) => {`);
385
+ L.push(` const scope = resolveProjectId(projectId);`);
386
+ L.push(` const task = await ctx.db.query(TABLE).withIndex("by_project_taskId", (q) => q.eq("projectId", scope).eq("taskId", taskId)).unique();`);
358
387
  L.push(` if (!task) throw new Error(\`Task \${taskId} not found\`);`);
359
388
  L.push(` const flags = [...(task.scopeCreepFlags ?? []), flag];`);
360
389
  L.push(` await ctx.db.patch(task._id, { scopeCreepFlags: flags, updatedAt: Date.now() });`);
@@ -364,9 +393,10 @@ export function generateOrchestrator(ctx) {
364
393
  }
365
394
  if (config.extensions.reviewFindings) {
366
395
  L.push(`export const setReviewFindings = mutation({`);
367
- L.push(` args: { taskId: v.string(), findings: v.object({ critical: v.number(), high: v.number(), medium: v.number(), low: v.number(), info: v.number() }) },`);
368
- L.push(` handler: async (ctx, { taskId, findings }) => {`);
369
- L.push(` const task = await ctx.db.query(TABLE).withIndex("by_taskId", (q) => q.eq("taskId", taskId)).unique();`);
396
+ L.push(` args: { taskId: v.string(), findings: v.object({ critical: v.number(), high: v.number(), medium: v.number(), low: v.number(), info: v.number() }), projectId: v.optional(v.string()) },`);
397
+ L.push(` handler: async (ctx, { taskId, findings, projectId }) => {`);
398
+ L.push(` const scope = resolveProjectId(projectId);`);
399
+ L.push(` const task = await ctx.db.query(TABLE).withIndex("by_project_taskId", (q) => q.eq("projectId", scope).eq("taskId", taskId)).unique();`);
370
400
  L.push(` if (!task) throw new Error(\`Task \${taskId} not found\`);`);
371
401
  L.push(` await ctx.db.patch(task._id, { reviewFindings: findings, updatedAt: Date.now() });`);
372
402
  L.push(` },`);
@@ -376,13 +406,13 @@ export function generateOrchestrator(ctx) {
376
406
  }
377
407
  const content = L.join("\n");
378
408
  const filePath = join(targetDir, "convex", "taskSystem", "orchestrator.ts");
379
- const taskDefsPath = join(targetDir, "convex", "taskSystem", "taskDefinitions.ts");
409
+ const taskDefsPath = join(targetDir, "convex", "taskSystem", "task-definitions.ts");
380
410
  if (!dryRun) {
381
411
  writeFileSync(filePath, content, "utf-8");
382
412
  writeFileSync(taskDefsPath, [
383
413
  `// Re-export task definitions for the orchestrator`,
384
414
  `// Edit the root task-definitions.ts to add your tasks`,
385
- `export { TASK_DEFINITIONS } from "../../taskDefinitions";`,
415
+ `export { TASK_DEFINITIONS } from "../../task-definitions";`,
386
416
  ``,
387
417
  ].join("\n"), "utf-8");
388
418
  }
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../src/generators/orchestrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../src/generators/orchestrator.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/generators/schema.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAOlE,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,gBAAgB,GAAG,eAAe,CAkfrE"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/generators/schema.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAOlE,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,gBAAgB,GAAG,eAAe,CA+gBrE"}
@@ -28,6 +28,7 @@ export function generateSchema(ctx) {
28
28
  lines.push(` ${tableName}: defineTable({`);
29
29
  // Core Identification
30
30
  lines.push(` // Core Identification`);
31
+ lines.push(` projectId: v.string(),`);
31
32
  lines.push(` taskId: v.string(),`);
32
33
  lines.push(` agent: v.union(`);
33
34
  for (const agentKey of Object.keys(config.agents)) {
@@ -240,6 +241,14 @@ export function generateSchema(ctx) {
240
241
  lines.push(` })`);
241
242
  // Indexes
242
243
  lines.push(` .index("by_taskId", ["taskId"])`);
244
+ lines.push(` .index("by_projectId", ["projectId"])`);
245
+ lines.push(` .index("by_project_taskId", ["projectId", "taskId"])`);
246
+ lines.push(` .index("by_project_agent", ["projectId", "agent"])`);
247
+ lines.push(` .index("by_project_status", ["projectId", "status"])`);
248
+ lines.push(` .index("by_project_wave", ["projectId", "wave"])`);
249
+ lines.push(` .index("by_project_priority", ["projectId", "priority"])`);
250
+ lines.push(` .index("by_project_dueDate", ["projectId", "dueDate"])`);
251
+ lines.push(` .index("by_project_category", ["projectId", "category"])`);
243
252
  lines.push(` .index("by_agent", ["agent"])`);
244
253
  lines.push(` .index("by_status", ["status"])`);
245
254
  lines.push(` .index("by_wave", ["wave"])`);
@@ -248,12 +257,14 @@ export function generateSchema(ctx) {
248
257
  lines.push(` .index("by_category", ["category"])`);
249
258
  if (config.phases.length > 0) {
250
259
  lines.push(` .index("by_phaseId", ["phaseId"])`);
260
+ lines.push(` .index("by_project_phaseId", ["projectId", "phaseId"])`);
251
261
  }
252
262
  lines.push(` ,`);
253
263
  lines.push(``);
254
264
  // ── Sync Log ──
255
265
  lines.push(` // Sync Log`);
256
266
  lines.push(` taskSyncLog: defineTable({`);
267
+ lines.push(` projectId: v.string(),`);
257
268
  lines.push(` operation: v.union(v.literal("import"), v.literal("export"), v.literal("merge")),`);
258
269
  lines.push(` source: v.string(),`);
259
270
  lines.push(` agent: v.optional(v.string()),`);
@@ -265,6 +276,8 @@ export function generateSchema(ctx) {
265
276
  lines.push(` metadata: v.optional(v.any()),`);
266
277
  lines.push(` timestamp: v.number(),`);
267
278
  lines.push(` })`);
279
+ lines.push(` .index("by_projectId", ["projectId"])`);
280
+ lines.push(` .index("by_project_timestamp", ["projectId", "timestamp"])`);
268
281
  lines.push(` .index("by_operation", ["operation"])`);
269
282
  lines.push(` .index("by_agent", ["agent"])`);
270
283
  lines.push(` .index("by_timestamp", ["timestamp"]),`);
@@ -272,6 +285,7 @@ export function generateSchema(ctx) {
272
285
  // ── Comments ──
273
286
  lines.push(` // Task Comments`);
274
287
  lines.push(` taskComments: defineTable({`);
288
+ lines.push(` projectId: v.string(),`);
275
289
  lines.push(` taskId: v.id("${tableName}"),`);
276
290
  lines.push(` author: v.string(),`);
277
291
  lines.push(` content: v.string(),`);
@@ -287,12 +301,14 @@ export function generateSchema(ctx) {
287
301
  lines.push(` ),`);
288
302
  lines.push(` timestamp: v.number(),`);
289
303
  lines.push(` })`);
304
+ lines.push(` .index("by_projectId", ["projectId"])`);
290
305
  lines.push(` .index("by_task", ["taskId"])`);
291
306
  lines.push(` .index("by_timestamp", ["timestamp"]),`);
292
307
  lines.push(``);
293
308
  // ── Time Entries ──
294
309
  lines.push(` // Task Time Entries`);
295
310
  lines.push(` taskTimeEntries: defineTable({`);
311
+ lines.push(` projectId: v.string(),`);
296
312
  lines.push(` taskId: v.id("${tableName}"),`);
297
313
  lines.push(` agent: v.string(),`);
298
314
  lines.push(` startedAt: v.number(),`);
@@ -301,6 +317,7 @@ export function generateSchema(ctx) {
301
317
  lines.push(` description: v.optional(v.string()),`);
302
318
  lines.push(` tags: v.optional(v.array(v.string())),`);
303
319
  lines.push(` })`);
320
+ lines.push(` .index("by_projectId", ["projectId"])`);
304
321
  lines.push(` .index("by_task", ["taskId"])`);
305
322
  lines.push(` .index("by_agent", ["agent"])`);
306
323
  lines.push(` .index("by_started", ["startedAt"]),`);
@@ -309,6 +326,7 @@ export function generateSchema(ctx) {
309
326
  if (config.extensions.evidenceTracker) {
310
327
  lines.push(` // Evidence Tracker`);
311
328
  lines.push(` evidenceTracker: defineTable({`);
329
+ lines.push(` projectId: v.string(),`);
312
330
  lines.push(` sourceId: v.string(),`);
313
331
  lines.push(` title: v.string(),`);
314
332
  lines.push(` sourceType: v.union(`);
@@ -336,6 +354,7 @@ export function generateSchema(ctx) {
336
354
  lines.push(` createdAt: v.number(),`);
337
355
  lines.push(` updatedAt: v.number(),`);
338
356
  lines.push(` })`);
357
+ lines.push(` .index("by_projectId", ["projectId"])`);
339
358
  lines.push(` .index("by_sourceId", ["sourceId"])`);
340
359
  lines.push(` .index("by_status", ["status"])`);
341
360
  lines.push(` .index("by_confidence", ["confidenceLevel"])`);
@@ -346,6 +365,7 @@ export function generateSchema(ctx) {
346
365
  if (config.extensions.handoffLog) {
347
366
  lines.push(` // Handoff Log`);
348
367
  lines.push(` handoffLog: defineTable({`);
368
+ lines.push(` projectId: v.string(),`);
349
369
  lines.push(` handoffId: v.string(),`);
350
370
  lines.push(` fromAgent: v.string(),`);
351
371
  lines.push(` toAgent: v.string(),`);
@@ -357,6 +377,7 @@ export function generateSchema(ctx) {
357
377
  lines.push(` blockers: v.optional(v.array(v.string())),`);
358
378
  lines.push(` timestamp: v.number(),`);
359
379
  lines.push(` })`);
380
+ lines.push(` .index("by_projectId", ["projectId"])`);
360
381
  lines.push(` .index("by_handoffId", ["handoffId"])`);
361
382
  lines.push(` .index("by_fromAgent", ["fromAgent"])`);
362
383
  lines.push(` .index("by_timestamp", ["timestamp"]),`);
@@ -367,6 +388,7 @@ export function generateSchema(ctx) {
367
388
  // Jobs
368
389
  lines.push(` // Agent-Ops Jobs`);
369
390
  lines.push(` agentOpsJobs: defineTable({`);
391
+ lines.push(` projectId: v.string(),`);
370
392
  lines.push(` jobId: v.string(),`);
371
393
  lines.push(` name: v.string(),`);
372
394
  lines.push(` description: v.optional(v.string()),`);
@@ -396,6 +418,8 @@ export function generateSchema(ctx) {
396
418
  lines.push(` createdAt: v.number(),`);
397
419
  lines.push(` updatedAt: v.number(),`);
398
420
  lines.push(` })`);
421
+ lines.push(` .index("by_projectId", ["projectId"])`);
422
+ lines.push(` .index("by_project_jobId", ["projectId", "jobId"])`);
399
423
  lines.push(` .index("by_jobId", ["jobId"])`);
400
424
  lines.push(` .index("by_enabled", ["enabled"])`);
401
425
  lines.push(` .index("by_agent", ["agent"])`);
@@ -406,6 +430,7 @@ export function generateSchema(ctx) {
406
430
  // Runs
407
431
  lines.push(` // Agent-Ops Runs`);
408
432
  lines.push(` agentOpsRuns: defineTable({`);
433
+ lines.push(` projectId: v.string(),`);
409
434
  lines.push(` runId: v.string(),`);
410
435
  lines.push(` jobId: v.string(),`);
411
436
  lines.push(` status: v.union(`);
@@ -451,6 +476,10 @@ export function generateSchema(ctx) {
451
476
  lines.push(` triggeredBy: v.union(v.literal("schedule"), v.literal("trigger"), v.literal("manual"), v.literal("retry")),`);
452
477
  lines.push(` triggerContext: v.optional(v.any()),`);
453
478
  lines.push(` })`);
479
+ lines.push(` .index("by_projectId", ["projectId"])`);
480
+ lines.push(` .index("by_project_runId", ["projectId", "runId"])`);
481
+ lines.push(` .index("by_project_jobId", ["projectId", "jobId"])`);
482
+ lines.push(` .index("by_project_status", ["projectId", "status"])`);
454
483
  lines.push(` .index("by_runId", ["runId"])`);
455
484
  lines.push(` .index("by_jobId", ["jobId"])`);
456
485
  lines.push(` .index("by_status", ["status"])`);