@workflow-cannon/workspace-kit 0.16.1 → 0.18.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.
@@ -0,0 +1,560 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://workflow-cannon.dev/schemas/task-engine-run-contracts.schema.json",
4
+ "title": "Task Engine run command contracts",
5
+ "description": "Versioned schema surface for task-engine `workspace-kit run` argument and response-data payloads.",
6
+ "type": "object",
7
+ "required": ["schemaVersion", "packageVersion", "moduleId", "commands"],
8
+ "additionalProperties": false,
9
+ "packageVersion": "0.18.0",
10
+ "properties": {
11
+ "schemaVersion": {
12
+ "const": 1
13
+ },
14
+ "packageVersion": {
15
+ "const": "0.18.0",
16
+ "description": "Must match package.json version."
17
+ },
18
+ "moduleId": {
19
+ "const": "task-engine"
20
+ },
21
+ "commands": {
22
+ "type": "object",
23
+ "required": [
24
+ "run-transition",
25
+ "create-task",
26
+ "update-task",
27
+ "update-wishlist",
28
+ "archive-task",
29
+ "add-dependency",
30
+ "remove-dependency",
31
+ "get-dependency-graph",
32
+ "get-task-history",
33
+ "get-recent-task-activity",
34
+ "get-task-summary",
35
+ "get-blocked-summary",
36
+ "create-task-from-plan",
37
+ "convert-wishlist",
38
+ "create-wishlist",
39
+ "get-wishlist",
40
+ "get-task",
41
+ "list-tasks",
42
+ "list-wishlist",
43
+ "get-ready-queue",
44
+ "get-next-actions",
45
+ "explain-task-engine-model",
46
+ "migrate-task-persistence",
47
+ "dashboard-summary"
48
+ ],
49
+ "additionalProperties": false,
50
+ "properties": {
51
+ "run-transition": { "$ref": "#/$defs/contractRunTransition" },
52
+ "create-task": { "$ref": "#/$defs/contractCreateTask" },
53
+ "update-task": { "$ref": "#/$defs/contractUpdateTask" },
54
+ "update-wishlist": { "$ref": "#/$defs/contractUpdateWishlist" },
55
+ "archive-task": { "$ref": "#/$defs/contractArchiveTask" },
56
+ "add-dependency": { "$ref": "#/$defs/contractDependencyMutation" },
57
+ "remove-dependency": { "$ref": "#/$defs/contractDependencyMutation" },
58
+ "get-dependency-graph": { "$ref": "#/$defs/contractDependencyGraph" },
59
+ "get-task-history": { "$ref": "#/$defs/contractTaskHistory" },
60
+ "get-recent-task-activity": { "$ref": "#/$defs/contractRecentTaskActivity" },
61
+ "get-task-summary": { "$ref": "#/$defs/contractTaskSummary" },
62
+ "get-blocked-summary": { "$ref": "#/$defs/contractBlockedSummary" },
63
+ "create-task-from-plan": { "$ref": "#/$defs/contractCreateTaskFromPlan" },
64
+ "convert-wishlist": { "$ref": "#/$defs/contractConvertWishlist" },
65
+ "create-wishlist": { "$ref": "#/$defs/contractCreateWishlist" },
66
+ "get-wishlist": { "$ref": "#/$defs/contractGetWishlist" },
67
+ "get-task": { "$ref": "#/$defs/contractGetTask" },
68
+ "list-tasks": { "$ref": "#/$defs/contractListTasks" },
69
+ "list-wishlist": { "$ref": "#/$defs/contractListWishlist" },
70
+ "get-ready-queue": { "$ref": "#/$defs/contractReadyQueue" },
71
+ "get-next-actions": { "$ref": "#/$defs/contractNextActions" },
72
+ "explain-task-engine-model": { "$ref": "#/$defs/contractExplainTaskEngineModel" },
73
+ "migrate-task-persistence": { "$ref": "#/$defs/contractMigrateTaskPersistence" },
74
+ "dashboard-summary": { "$ref": "#/$defs/contractDashboardSummary" }
75
+ }
76
+ }
77
+ },
78
+ "$defs": {
79
+ "contractBase": {
80
+ "type": "object",
81
+ "required": ["args", "responseData"],
82
+ "additionalProperties": false,
83
+ "properties": {
84
+ "args": {
85
+ "type": "object"
86
+ },
87
+ "responseData": {
88
+ "type": "object"
89
+ }
90
+ }
91
+ },
92
+ "contractRunTransition": {
93
+ "allOf": [
94
+ { "$ref": "#/$defs/contractBase" },
95
+ {
96
+ "properties": {
97
+ "args": {
98
+ "type": "object",
99
+ "required": ["taskId", "action"],
100
+ "additionalProperties": true,
101
+ "properties": {
102
+ "taskId": { "type": "string", "pattern": "^T[0-9]+$" },
103
+ "action": { "type": "string" },
104
+ "policyApproval": { "type": "object" }
105
+ }
106
+ },
107
+ "responseData": {
108
+ "type": "object",
109
+ "required": ["task", "presentation"],
110
+ "additionalProperties": true
111
+ }
112
+ }
113
+ }
114
+ ]
115
+ },
116
+ "contractCreateTask": {
117
+ "allOf": [
118
+ { "$ref": "#/$defs/contractBase" },
119
+ {
120
+ "properties": {
121
+ "args": {
122
+ "type": "object",
123
+ "required": ["id", "title"],
124
+ "additionalProperties": true,
125
+ "properties": {
126
+ "id": { "type": "string", "pattern": "^T[0-9]+$" },
127
+ "title": { "type": "string" },
128
+ "status": { "type": "string", "enum": ["proposed", "ready"] },
129
+ "clientMutationId": { "type": "string", "minLength": 1 }
130
+ }
131
+ },
132
+ "responseData": {
133
+ "type": "object",
134
+ "required": ["task", "presentation"],
135
+ "additionalProperties": true
136
+ }
137
+ }
138
+ }
139
+ ]
140
+ },
141
+ "contractCreateTaskFromPlan": {
142
+ "allOf": [
143
+ { "$ref": "#/$defs/contractCreateTask" },
144
+ {
145
+ "properties": {
146
+ "args": {
147
+ "required": ["planRef"]
148
+ }
149
+ }
150
+ }
151
+ ]
152
+ },
153
+ "contractUpdateTask": {
154
+ "allOf": [
155
+ { "$ref": "#/$defs/contractBase" },
156
+ {
157
+ "properties": {
158
+ "args": {
159
+ "type": "object",
160
+ "required": ["taskId", "updates"],
161
+ "additionalProperties": true,
162
+ "properties": {
163
+ "taskId": { "type": "string", "pattern": "^T[0-9]+$" },
164
+ "updates": { "type": "object" },
165
+ "clientMutationId": { "type": "string", "minLength": 1 }
166
+ }
167
+ },
168
+ "responseData": {
169
+ "type": "object",
170
+ "required": ["task", "presentation"],
171
+ "additionalProperties": true
172
+ }
173
+ }
174
+ }
175
+ ]
176
+ },
177
+ "contractArchiveTask": {
178
+ "allOf": [
179
+ { "$ref": "#/$defs/contractBase" },
180
+ {
181
+ "properties": {
182
+ "args": {
183
+ "type": "object",
184
+ "required": ["taskId"],
185
+ "additionalProperties": true,
186
+ "properties": {
187
+ "taskId": { "type": "string", "pattern": "^T[0-9]+$" },
188
+ "archiveReason": { "type": "string" }
189
+ }
190
+ },
191
+ "responseData": {
192
+ "type": "object",
193
+ "required": ["task", "presentation"],
194
+ "additionalProperties": true
195
+ }
196
+ }
197
+ }
198
+ ]
199
+ },
200
+ "contractDependencyMutation": {
201
+ "allOf": [
202
+ { "$ref": "#/$defs/contractBase" },
203
+ {
204
+ "properties": {
205
+ "args": {
206
+ "type": "object",
207
+ "required": ["taskId", "dependsOnTaskId"],
208
+ "additionalProperties": false,
209
+ "properties": {
210
+ "taskId": { "type": "string", "pattern": "^T[0-9]+$" },
211
+ "dependsOnTaskId": { "type": "string", "pattern": "^T[0-9]+$" }
212
+ }
213
+ },
214
+ "responseData": {
215
+ "type": "object",
216
+ "required": ["task", "presentation"],
217
+ "additionalProperties": true
218
+ }
219
+ }
220
+ }
221
+ ]
222
+ },
223
+ "contractDependencyGraph": {
224
+ "allOf": [
225
+ { "$ref": "#/$defs/contractBase" },
226
+ {
227
+ "properties": {
228
+ "args": {
229
+ "type": "object",
230
+ "additionalProperties": false,
231
+ "properties": {
232
+ "taskId": { "type": "string", "pattern": "^T[0-9]+$" }
233
+ }
234
+ },
235
+ "responseData": {
236
+ "type": "object",
237
+ "required": ["nodes", "edges"],
238
+ "additionalProperties": true
239
+ }
240
+ }
241
+ }
242
+ ]
243
+ },
244
+ "contractTaskHistory": {
245
+ "allOf": [
246
+ { "$ref": "#/$defs/contractBase" },
247
+ {
248
+ "properties": {
249
+ "args": {
250
+ "type": "object",
251
+ "additionalProperties": false,
252
+ "properties": {
253
+ "taskId": { "type": "string", "pattern": "^T[0-9]+$" },
254
+ "limit": { "type": "number" }
255
+ }
256
+ },
257
+ "responseData": {
258
+ "type": "object",
259
+ "required": ["taskId", "items", "count"],
260
+ "additionalProperties": true
261
+ }
262
+ }
263
+ }
264
+ ]
265
+ },
266
+ "contractRecentTaskActivity": {
267
+ "allOf": [
268
+ { "$ref": "#/$defs/contractTaskHistory" }
269
+ ]
270
+ },
271
+ "contractTaskSummary": {
272
+ "allOf": [
273
+ { "$ref": "#/$defs/contractBase" },
274
+ {
275
+ "properties": {
276
+ "args": {
277
+ "type": "object",
278
+ "additionalProperties": false
279
+ },
280
+ "responseData": {
281
+ "type": "object",
282
+ "required": ["stateSummary", "totalActive", "scope"],
283
+ "additionalProperties": true
284
+ }
285
+ }
286
+ }
287
+ ]
288
+ },
289
+ "contractBlockedSummary": {
290
+ "allOf": [
291
+ { "$ref": "#/$defs/contractTaskSummary" }
292
+ ]
293
+ },
294
+ "contractCreateWishlist": {
295
+ "allOf": [
296
+ { "$ref": "#/$defs/contractBase" },
297
+ {
298
+ "properties": {
299
+ "args": {
300
+ "type": "object",
301
+ "required": ["title", "problemStatement", "expectedOutcome", "impact", "constraints", "successSignals", "requestor", "evidenceRef"],
302
+ "additionalProperties": true
303
+ },
304
+ "responseData": {
305
+ "type": "object",
306
+ "required": ["wishlist", "presentation"],
307
+ "additionalProperties": true
308
+ }
309
+ }
310
+ }
311
+ ]
312
+ },
313
+ "contractUpdateWishlist": {
314
+ "allOf": [
315
+ { "$ref": "#/$defs/contractBase" },
316
+ {
317
+ "properties": {
318
+ "args": {
319
+ "type": "object",
320
+ "required": ["wishlistId", "patch"],
321
+ "additionalProperties": true
322
+ },
323
+ "responseData": {
324
+ "type": "object",
325
+ "required": ["wishlist", "presentation"],
326
+ "additionalProperties": true
327
+ }
328
+ }
329
+ }
330
+ ]
331
+ },
332
+ "contractGetWishlist": {
333
+ "allOf": [
334
+ { "$ref": "#/$defs/contractBase" },
335
+ {
336
+ "properties": {
337
+ "args": {
338
+ "type": "object",
339
+ "required": ["wishlistId"],
340
+ "additionalProperties": false,
341
+ "properties": {
342
+ "wishlistId": { "type": "string", "pattern": "^W[0-9]+$" }
343
+ }
344
+ },
345
+ "responseData": {
346
+ "type": "object",
347
+ "required": ["wishlist"],
348
+ "additionalProperties": true
349
+ }
350
+ }
351
+ }
352
+ ]
353
+ },
354
+ "contractConvertWishlist": {
355
+ "allOf": [
356
+ { "$ref": "#/$defs/contractBase" },
357
+ {
358
+ "properties": {
359
+ "args": {
360
+ "type": "object",
361
+ "required": ["wishlistId", "decomposition"],
362
+ "additionalProperties": true
363
+ },
364
+ "responseData": {
365
+ "type": "object",
366
+ "required": ["wishlist", "createdTasks", "presentation"],
367
+ "additionalProperties": true
368
+ }
369
+ }
370
+ }
371
+ ]
372
+ },
373
+ "contractGetTask": {
374
+ "allOf": [
375
+ { "$ref": "#/$defs/contractBase" },
376
+ {
377
+ "properties": {
378
+ "args": {
379
+ "type": "object",
380
+ "required": ["taskId"],
381
+ "additionalProperties": false,
382
+ "properties": {
383
+ "taskId": { "type": "string", "pattern": "^T[0-9]+$" },
384
+ "historyLimit": { "type": "number" }
385
+ }
386
+ },
387
+ "responseData": {
388
+ "type": "object",
389
+ "required": ["task", "recentTransitions", "allowedActions", "presentation"],
390
+ "additionalProperties": true
391
+ }
392
+ }
393
+ }
394
+ ]
395
+ },
396
+ "contractListTasks": {
397
+ "allOf": [
398
+ { "$ref": "#/$defs/contractBase" },
399
+ {
400
+ "properties": {
401
+ "args": {
402
+ "type": "object",
403
+ "additionalProperties": false,
404
+ "properties": {
405
+ "status": { "type": "string" },
406
+ "phase": { "type": "string" },
407
+ "type": { "type": "string" },
408
+ "category": { "type": "string" },
409
+ "tags": {
410
+ "oneOf": [
411
+ { "type": "string" },
412
+ { "type": "array", "items": { "type": "string" } }
413
+ ]
414
+ },
415
+ "metadataFilters": {
416
+ "type": "object",
417
+ "patternProperties": {
418
+ "^[a-zA-Z0-9_-]+(?:\\.[a-zA-Z0-9_-]+)*$": {
419
+ "type": ["string", "number", "boolean", "null"]
420
+ }
421
+ },
422
+ "additionalProperties": false
423
+ },
424
+ "includeArchived": { "type": "boolean" }
425
+ }
426
+ },
427
+ "responseData": {
428
+ "type": "object",
429
+ "required": ["tasks", "count", "scope"],
430
+ "additionalProperties": true
431
+ }
432
+ }
433
+ }
434
+ ]
435
+ },
436
+ "contractListWishlist": {
437
+ "allOf": [
438
+ { "$ref": "#/$defs/contractBase" },
439
+ {
440
+ "properties": {
441
+ "args": {
442
+ "type": "object",
443
+ "additionalProperties": false,
444
+ "properties": {
445
+ "status": { "type": "string" }
446
+ }
447
+ },
448
+ "responseData": {
449
+ "type": "object",
450
+ "required": ["items", "count", "scope"],
451
+ "additionalProperties": true
452
+ }
453
+ }
454
+ }
455
+ ]
456
+ },
457
+ "contractReadyQueue": {
458
+ "allOf": [
459
+ { "$ref": "#/$defs/contractBase" },
460
+ {
461
+ "properties": {
462
+ "args": {
463
+ "type": "object",
464
+ "additionalProperties": false
465
+ },
466
+ "responseData": {
467
+ "type": "object",
468
+ "required": ["tasks", "count", "scope"],
469
+ "additionalProperties": true
470
+ }
471
+ }
472
+ }
473
+ ]
474
+ },
475
+ "contractNextActions": {
476
+ "allOf": [
477
+ { "$ref": "#/$defs/contractBase" },
478
+ {
479
+ "properties": {
480
+ "args": {
481
+ "type": "object",
482
+ "additionalProperties": false
483
+ },
484
+ "responseData": {
485
+ "type": "object",
486
+ "required": ["readyQueue", "suggestedNext", "stateSummary", "blockingAnalysis", "scope"],
487
+ "additionalProperties": true
488
+ }
489
+ }
490
+ }
491
+ ]
492
+ },
493
+ "contractExplainTaskEngineModel": {
494
+ "allOf": [
495
+ { "$ref": "#/$defs/contractBase" },
496
+ {
497
+ "properties": {
498
+ "args": {
499
+ "type": "object",
500
+ "additionalProperties": false
501
+ },
502
+ "responseData": {
503
+ "type": "object",
504
+ "required": ["modelVersion", "variants", "planningBoundary", "executionTaskLifecycle"],
505
+ "additionalProperties": true
506
+ }
507
+ }
508
+ }
509
+ ]
510
+ },
511
+ "contractMigrateTaskPersistence": {
512
+ "allOf": [
513
+ { "$ref": "#/$defs/contractBase" },
514
+ {
515
+ "properties": {
516
+ "args": {
517
+ "type": "object",
518
+ "additionalProperties": true
519
+ },
520
+ "responseData": {
521
+ "type": "object",
522
+ "required": ["migration"],
523
+ "additionalProperties": true
524
+ }
525
+ }
526
+ }
527
+ ]
528
+ },
529
+ "contractDashboardSummary": {
530
+ "allOf": [
531
+ { "$ref": "#/$defs/contractBase" },
532
+ {
533
+ "properties": {
534
+ "args": {
535
+ "type": "object",
536
+ "additionalProperties": false
537
+ },
538
+ "responseData": {
539
+ "type": "object",
540
+ "required": [
541
+ "schemaVersion",
542
+ "taskStoreLastUpdated",
543
+ "workspaceStatus",
544
+ "stateSummary",
545
+ "readyQueueTop",
546
+ "readyQueueCount",
547
+ "executionPlanningScope",
548
+ "wishlist",
549
+ "blockedSummary",
550
+ "suggestedNext",
551
+ "blockingAnalysis"
552
+ ],
553
+ "additionalProperties": true
554
+ }
555
+ }
556
+ }
557
+ ]
558
+ }
559
+ }
560
+ }
@@ -0,0 +1,41 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://workflow-cannon.local/schemas/task-engine-state.schema.json",
4
+ "title": "Workspace kit task engine state (subset)",
5
+ "description": "Editor-assist schema only; runtime does not validate state.json against this file.",
6
+ "type": "object",
7
+ "required": ["schemaVersion", "tasks"],
8
+ "properties": {
9
+ "schemaVersion": { "type": "integer" },
10
+ "lastUpdated": { "type": "string", "format": "date-time" },
11
+ "tasks": {
12
+ "type": "array",
13
+ "items": {
14
+ "type": "object",
15
+ "required": ["id", "status", "type", "title", "createdAt", "updatedAt", "priority"],
16
+ "properties": {
17
+ "id": { "type": "string" },
18
+ "status": {
19
+ "type": "string",
20
+ "enum": ["proposed", "ready", "in_progress", "blocked", "completed", "cancelled"]
21
+ },
22
+ "type": { "type": "string" },
23
+ "title": { "type": "string" },
24
+ "phase": { "type": "string" },
25
+ "priority": { "type": "string" },
26
+ "dependsOn": { "type": "array", "items": { "type": "string" } },
27
+ "unblocks": { "type": "array", "items": { "type": "string" } },
28
+ "approach": { "type": "string" },
29
+ "technicalScope": { "type": "array", "items": { "type": "string" } },
30
+ "acceptanceCriteria": { "type": "array", "items": { "type": "string" } },
31
+ "metadata": { "type": "object" },
32
+ "createdAt": { "type": "string" },
33
+ "updatedAt": { "type": "string" }
34
+ },
35
+ "additionalProperties": true
36
+ }
37
+ },
38
+ "transitionLog": { "type": "array" }
39
+ },
40
+ "additionalProperties": true
41
+ }
@@ -0,0 +1,55 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://example.com/schemas/workspace-kit-profile.schema.json",
4
+ "title": "Workspace Kit Profile",
5
+ "type": "object",
6
+ "required": ["project", "packageManager", "commands", "github"],
7
+ "properties": {
8
+ "project": {
9
+ "type": "object",
10
+ "required": ["name"],
11
+ "properties": {
12
+ "name": {
13
+ "type": "string",
14
+ "minLength": 1
15
+ }
16
+ },
17
+ "additionalProperties": true
18
+ },
19
+ "packageManager": {
20
+ "type": "string",
21
+ "enum": ["pnpm", "npm", "yarn"]
22
+ },
23
+ "commands": {
24
+ "type": "object",
25
+ "required": ["test", "lint", "typecheck"],
26
+ "properties": {
27
+ "test": {
28
+ "type": "string",
29
+ "minLength": 1
30
+ },
31
+ "lint": {
32
+ "type": "string",
33
+ "minLength": 1
34
+ },
35
+ "typecheck": {
36
+ "type": "string",
37
+ "minLength": 1
38
+ }
39
+ },
40
+ "additionalProperties": true
41
+ },
42
+ "github": {
43
+ "type": "object",
44
+ "required": ["defaultBranch"],
45
+ "properties": {
46
+ "defaultBranch": {
47
+ "type": "string",
48
+ "minLength": 1
49
+ }
50
+ },
51
+ "additionalProperties": true
52
+ }
53
+ },
54
+ "additionalProperties": true
55
+ }