@specforge/canary-cli 0.2.2 → 0.2.4
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/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +2 -130
- package/dist/tools/index.js.map +1 -1
- package/dist/validation/index.d.ts.map +1 -1
- package/dist/validation/index.js +0 -9
- package/dist/validation/index.js.map +1 -1
- package/node_modules/@specforge/api-types/dist/mcp/lifecycle-envelope.d.ts.map +1 -1
- package/node_modules/@specforge/api-types/dist/runtime/epic-record.d.ts +1 -1
- package/node_modules/@specforge/api-types/dist/runtime/epic-record.d.ts.map +1 -1
- package/node_modules/@specforge/api-types/dist/runtime/project.d.ts +0 -1
- package/node_modules/@specforge/api-types/dist/runtime/project.d.ts.map +1 -1
- package/node_modules/@specforge/api-types/dist/runtime/ticket-record.d.ts +1 -1
- package/node_modules/@specforge/api-types/dist/runtime/ticket-record.d.ts.map +1 -1
- package/node_modules/@specforge/api-types/dist/stores/i-project-store.d.ts +0 -2
- package/node_modules/@specforge/api-types/dist/stores/i-project-store.d.ts.map +1 -1
- package/node_modules/@specforge/api-types/package.json +1 -1
- package/node_modules/@specforge/session-types/dist/runtime/enums.d.ts +1 -1
- package/node_modules/@specforge/session-types/dist/runtime/enums.d.ts.map +1 -1
- package/node_modules/@specforge/session-types/dist/runtime/enums.js +1 -2
- package/node_modules/@specforge/session-types/dist/runtime/enums.js.map +1 -1
- package/node_modules/@specforge/session-types/dist/runtime/implementation-session-aggregate.d.ts +57 -1
- package/node_modules/@specforge/session-types/dist/runtime/implementation-session-aggregate.d.ts.map +1 -1
- package/node_modules/@specforge/session-types/dist/runtime/implementation-session-aggregate.js +25 -1
- package/node_modules/@specforge/session-types/dist/runtime/implementation-session-aggregate.js.map +1 -1
- package/node_modules/@specforge/session-types/dist/schema/work-session-action.d.ts +3 -0
- package/node_modules/@specforge/session-types/dist/schema/work-session-action.d.ts.map +1 -1
- package/node_modules/@specforge/session-types/dist/schema/work-session-action.js +5 -0
- package/node_modules/@specforge/session-types/dist/schema/work-session-action.js.map +1 -1
- package/node_modules/@specforge/session-types/dist/schema/work-session.d.ts +18 -0
- package/node_modules/@specforge/session-types/dist/schema/work-session.d.ts.map +1 -1
- package/node_modules/@specforge/session-types/dist/schema/work-session.js +14 -0
- package/node_modules/@specforge/session-types/dist/schema/work-session.js.map +1 -1
- package/node_modules/@specforge/session-types/package.json +1 -1
- package/node_modules/@specforge/spec-types/dist/schema/planning/planning-type.d.ts +7 -1
- package/node_modules/@specforge/spec-types/dist/schema/planning/planning-type.d.ts.map +1 -1
- package/node_modules/@specforge/spec-types/dist/schema/planning/planning-type.js +7 -1
- package/node_modules/@specforge/spec-types/dist/schema/planning/planning-type.js.map +1 -1
- package/node_modules/@specforge/spec-types/dist/schema/specification.d.ts +1 -1
- package/node_modules/@specforge/spec-types/dist/schema/specification.d.ts.map +1 -1
- package/node_modules/@specforge/spec-types/dist/schema/specification.js +1 -2
- package/node_modules/@specforge/spec-types/dist/schema/specification.js.map +1 -1
- package/node_modules/@specforge/spec-types/package.json +1 -1
- package/package.json +6 -6
- package/src/cli/templates/skills/specforge-orchestrator.md +1 -1
- package/src/cli/templates/skills/specforge-worker.md +1 -1
|
@@ -117,6 +117,20 @@ export declare const WorkSessionSchema: z.ZodObject<{
|
|
|
117
117
|
* with the real stores in M19.
|
|
118
118
|
*/
|
|
119
119
|
coherenceScore: z.ZodOptional<z.ZodNumber>;
|
|
120
|
+
/**
|
|
121
|
+
* Close-to-start elapsed (ML.1.3). Stamped ONCE at CWS finalize from
|
|
122
|
+
* `completedAt − startedAt` — the total wall-clock the session was open, NOT
|
|
123
|
+
* per-step time tracking (that is MP). `durationMs` is the exact elapsed in
|
|
124
|
+
* milliseconds; `actualMinutes` is that rounded to whole minutes (floored at 1
|
|
125
|
+
* for any positive elapsed) and is copied onto `Ticket.actualMinutes` on
|
|
126
|
+
* completion (the count-propagator folds it via the WorkSession stream, and the
|
|
127
|
+
* CWS success write-plan sets it directly). The live Amplify columns already
|
|
128
|
+
* exist (`resource.ts` `WorkSession.actualMinutes: a.integer()` /
|
|
129
|
+
* `durationMs: a.integer()`); the TS surface had no field — mirrored here so the
|
|
130
|
+
* typed write round-trips. Absent until the session completes.
|
|
131
|
+
*/
|
|
132
|
+
actualMinutes: z.ZodOptional<z.ZodNumber>;
|
|
133
|
+
durationMs: z.ZodOptional<z.ZodNumber>;
|
|
120
134
|
}, "strip", z.ZodTypeAny, {
|
|
121
135
|
status: "active" | "paused" | "completed" | "failed" | "aborted";
|
|
122
136
|
id: string;
|
|
@@ -126,6 +140,7 @@ export declare const WorkSessionSchema: z.ZodObject<{
|
|
|
126
140
|
implementationSessionId: string;
|
|
127
141
|
specificationId?: string | undefined;
|
|
128
142
|
completedAt?: string | undefined;
|
|
143
|
+
durationMs?: number | undefined;
|
|
129
144
|
branch?: string | undefined;
|
|
130
145
|
commitSha?: string | undefined;
|
|
131
146
|
worktreePath?: string | undefined;
|
|
@@ -149,6 +164,7 @@ export declare const WorkSessionSchema: z.ZodObject<{
|
|
|
149
164
|
deletions: z.ZodOptional<z.ZodNumber>;
|
|
150
165
|
}, z.ZodTypeAny, "passthrough"> | undefined;
|
|
151
166
|
coherenceScore?: number | undefined;
|
|
167
|
+
actualMinutes?: number | undefined;
|
|
152
168
|
}, {
|
|
153
169
|
status: "active" | "paused" | "completed" | "failed" | "aborted";
|
|
154
170
|
id: string;
|
|
@@ -158,6 +174,7 @@ export declare const WorkSessionSchema: z.ZodObject<{
|
|
|
158
174
|
implementationSessionId: string;
|
|
159
175
|
specificationId?: string | undefined;
|
|
160
176
|
completedAt?: string | undefined;
|
|
177
|
+
durationMs?: number | undefined;
|
|
161
178
|
branch?: string | undefined;
|
|
162
179
|
commitSha?: string | undefined;
|
|
163
180
|
worktreePath?: string | undefined;
|
|
@@ -181,5 +198,6 @@ export declare const WorkSessionSchema: z.ZodObject<{
|
|
|
181
198
|
deletions: z.ZodOptional<z.ZodNumber>;
|
|
182
199
|
}, z.ZodTypeAny, "passthrough"> | undefined;
|
|
183
200
|
coherenceScore?: number | undefined;
|
|
201
|
+
actualMinutes?: number | undefined;
|
|
184
202
|
}>;
|
|
185
203
|
//# sourceMappingURL=work-session.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"work-session.d.ts","sourceRoot":"","sources":["../../src/schema/work-session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;;;IAK5B;;;;;;;OAOG;;IAGH;;;;;OAKG;;;;;IAOH;;;;;;;OAOG;;;IAIH;;;;;;;;;OASG;;IAGH;;;;;;OAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAIH;;;;;;;;OAQG
|
|
1
|
+
{"version":3,"file":"work-session.d.ts","sourceRoot":"","sources":["../../src/schema/work-session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;;;IAK5B;;;;;;;OAOG;;IAGH;;;;;OAKG;;;;;IAOH;;;;;;;OAOG;;;IAIH;;;;;;;;;OASG;;IAGH;;;;;;OAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAIH;;;;;;;;OAQG;;IAGH;;;;;;;;;;;OAWG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGH,CAAC"}
|
|
@@ -68,5 +68,19 @@ export const WorkSessionSchema = z.object({
|
|
|
68
68
|
* with the real stores in M19.
|
|
69
69
|
*/
|
|
70
70
|
coherenceScore: z.number().optional(),
|
|
71
|
+
/**
|
|
72
|
+
* Close-to-start elapsed (ML.1.3). Stamped ONCE at CWS finalize from
|
|
73
|
+
* `completedAt − startedAt` — the total wall-clock the session was open, NOT
|
|
74
|
+
* per-step time tracking (that is MP). `durationMs` is the exact elapsed in
|
|
75
|
+
* milliseconds; `actualMinutes` is that rounded to whole minutes (floored at 1
|
|
76
|
+
* for any positive elapsed) and is copied onto `Ticket.actualMinutes` on
|
|
77
|
+
* completion (the count-propagator folds it via the WorkSession stream, and the
|
|
78
|
+
* CWS success write-plan sets it directly). The live Amplify columns already
|
|
79
|
+
* exist (`resource.ts` `WorkSession.actualMinutes: a.integer()` /
|
|
80
|
+
* `durationMs: a.integer()`); the TS surface had no field — mirrored here so the
|
|
81
|
+
* typed write round-trips. Absent until the session completes.
|
|
82
|
+
*/
|
|
83
|
+
actualMinutes: z.number().int().nonnegative().optional(),
|
|
84
|
+
durationMs: z.number().int().nonnegative().optional(),
|
|
71
85
|
});
|
|
72
86
|
//# sourceMappingURL=work-session.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"work-session.js","sourceRoot":"","sources":["../../src/schema/work-session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAEnE;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IAErB;;;;;;;OAOG;IACH,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAEtC;;;;;OAKG;IACH,uBAAuB,EAAE,CAAC,CAAC,MAAM,EAAE;IAEnC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC;IACrC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAE7C;;;;;;;OAOG;IACH,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAE7B;;;;;;;;;OASG;IACH,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAElC;;;;;;OAMG;IACH,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,WAAW,EAAE,uBAAuB,CAAC,QAAQ,EAAE;IAE/C;;;;;;;;OAQG;IACH,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;
|
|
1
|
+
{"version":3,"file":"work-session.js","sourceRoot":"","sources":["../../src/schema/work-session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAEnE;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IAErB;;;;;;;OAOG;IACH,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAEtC;;;;;OAKG;IACH,uBAAuB,EAAE,CAAC,CAAC,MAAM,EAAE;IAEnC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC;IACrC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAE7C;;;;;;;OAOG;IACH,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAE7B;;;;;;;;;OASG;IACH,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAElC;;;;;;OAMG;IACH,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,WAAW,EAAE,uBAAuB,CAAC,QAAQ,EAAE;IAE/C;;;;;;;;OAQG;IACH,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAErC;;;;;;;;;;;OAWG;IACH,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IACxD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;CACtD,CAAC,CAAC"}
|
|
@@ -5,7 +5,13 @@ import { z } from 'zod';
|
|
|
5
5
|
* canonical home lives here so the ME.14.2 APS enum write-guard (lifecycle) and the
|
|
6
6
|
* validator enum-parity guard share one source and can never drift from the AppSync
|
|
7
7
|
* model. Poisoning this field breaks the gate's own ListEpics read.
|
|
8
|
+
*
|
|
9
|
+
* ML.1.9 (B10) — the `review` lifecycle was torn down at M27, so `review` is retired
|
|
10
|
+
* from this canonical set. Dropping it here flows automatically to the validator
|
|
11
|
+
* enum-parity guard, the lifecycle APS enum write-guard, and the `ticket_general_actions`
|
|
12
|
+
* typed planningType field (an out-of-enum `review` is now denied). Kept in lockstep with
|
|
13
|
+
* the Amplify model (`resource.ts` Epic/Ticket `planningType`) so parity never drifts.
|
|
8
14
|
*/
|
|
9
|
-
export declare const PlanningTypeEnum: z.ZodEnum<["planning", "on_flight"
|
|
15
|
+
export declare const PlanningTypeEnum: z.ZodEnum<["planning", "on_flight"]>;
|
|
10
16
|
export type PlanningType = z.infer<typeof PlanningTypeEnum>;
|
|
11
17
|
//# sourceMappingURL=planning-type.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"planning-type.d.ts","sourceRoot":"","sources":["../../../src/schema/planning/planning-type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB
|
|
1
|
+
{"version":3,"file":"planning-type.d.ts","sourceRoot":"","sources":["../../../src/schema/planning/planning-type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,gBAAgB,sCAAoC,CAAC;AAClE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
|
|
@@ -5,6 +5,12 @@ import { z } from 'zod';
|
|
|
5
5
|
* canonical home lives here so the ME.14.2 APS enum write-guard (lifecycle) and the
|
|
6
6
|
* validator enum-parity guard share one source and can never drift from the AppSync
|
|
7
7
|
* model. Poisoning this field breaks the gate's own ListEpics read.
|
|
8
|
+
*
|
|
9
|
+
* ML.1.9 (B10) — the `review` lifecycle was torn down at M27, so `review` is retired
|
|
10
|
+
* from this canonical set. Dropping it here flows automatically to the validator
|
|
11
|
+
* enum-parity guard, the lifecycle APS enum write-guard, and the `ticket_general_actions`
|
|
12
|
+
* typed planningType field (an out-of-enum `review` is now denied). Kept in lockstep with
|
|
13
|
+
* the Amplify model (`resource.ts` Epic/Ticket `planningType`) so parity never drifts.
|
|
8
14
|
*/
|
|
9
|
-
export const PlanningTypeEnum = z.enum(['planning', 'on_flight'
|
|
15
|
+
export const PlanningTypeEnum = z.enum(['planning', 'on_flight']);
|
|
10
16
|
//# sourceMappingURL=planning-type.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"planning-type.js","sourceRoot":"","sources":["../../../src/schema/planning/planning-type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB
|
|
1
|
+
{"version":3,"file":"planning-type.js","sourceRoot":"","sources":["../../../src/schema/planning/planning-type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
export declare const SpecStatusEnum: z.ZodEnum<["draft", "planning", "ready", "in_progress", "
|
|
2
|
+
export declare const SpecStatusEnum: z.ZodEnum<["draft", "planning", "ready", "in_progress", "done"]>;
|
|
3
3
|
export type SpecificationStatus = z.infer<typeof SpecStatusEnum>;
|
|
4
4
|
export declare const SpecificationSchema: z.ZodObject<{
|
|
5
5
|
schemaVersion: z.ZodLiteral<"1.1">;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"specification.d.ts","sourceRoot":"","sources":["../../src/schema/specification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAqBxB,eAAO,MAAM,cAAc
|
|
1
|
+
{"version":3,"file":"specification.d.ts","sourceRoot":"","sources":["../../src/schema/specification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAqBxB,eAAO,MAAM,cAAc,kEAEzB,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAEjE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkC9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
|
|
@@ -9,8 +9,7 @@ import { GoalSchema, RequirementSchema, NonFunctionalRequirementSchema, Guardrai
|
|
|
9
9
|
// getSpecFull read. Named `SpecificationStatus` to avoid clashing with session-types'
|
|
10
10
|
// `SpecStatus`. The public SpecificationSchema keeps `status` loose (products narrow).
|
|
11
11
|
export const SpecStatusEnum = z.enum([
|
|
12
|
-
'draft', 'planning', 'ready', 'in_progress',
|
|
13
|
-
'ready_for_review', 'in_review', 'reviewed', 'done',
|
|
12
|
+
'draft', 'planning', 'ready', 'in_progress', 'done',
|
|
14
13
|
]);
|
|
15
14
|
export const SpecificationSchema = z.object({
|
|
16
15
|
schemaVersion: z.literal('1.1'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"specification.js","sourceRoot":"","sources":["../../src/schema/specification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACnF,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,8BAA8B,EAC9B,eAAe,EACf,WAAW,EACX,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAE7B,sFAAsF;AACtF,sFAAsF;AACtF,oFAAoF;AACpF,sFAAsF;AACtF,uFAAuF;AACvF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC;IACnC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa
|
|
1
|
+
{"version":3,"file":"specification.js","sourceRoot":"","sources":["../../src/schema/specification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACnF,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,8BAA8B,EAC9B,eAAe,EACf,WAAW,EACX,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAE7B,sFAAsF;AACtF,sFAAsF;AACtF,oFAAoF;AACpF,sFAAsF;AACtF,uFAAuF;AACvF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC;IACnC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM;CACpD,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IAC/B,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAElC,0DAA0D;IAC1D,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAElB,6BAA6B;IAC7B,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACjC,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/C,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,KAAK,EAAE,WAAW;IAElB,gCAAgC;IAChC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC;IACvC,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACrD,kBAAkB,EAAE,CAAC,CAAC,KAAK,CAAC,yBAAyB,CAAC;IACtD,yBAAyB,EAAE,CAAC,CAAC,KAAK,CAAC,8BAA8B,CAAC;IAClE,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,QAAQ,EAAE;IACvD,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC;IAEpC,qBAAqB;IACrB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAEjC,WAAW;IACX,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC;IAC1B,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC;IAEpC,iBAAiB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,sBAAsB,CAAC,CAAC,QAAQ,EAAE;IAC1E,WAAW,EAAE,iBAAiB,CAAC,QAAQ,EAAE;IACzC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CACrD,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@specforge/canary-cli",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.4",
|
|
4
4
|
"description": "MCP server for SpecForge - AI agent integration",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -18,10 +18,10 @@
|
|
|
18
18
|
"minimatch": "^10.1.1",
|
|
19
19
|
"ora": "^8.2.0",
|
|
20
20
|
"zod": "^3.22.0",
|
|
21
|
-
"@specforge/
|
|
22
|
-
"@specforge/
|
|
21
|
+
"@specforge/session-types": "0.4.10",
|
|
22
|
+
"@specforge/api-types": "0.4.11",
|
|
23
23
|
"@specforge/report-types": "0.4.3",
|
|
24
|
-
"@specforge/spec-types": "0.4.
|
|
24
|
+
"@specforge/spec-types": "0.4.10"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
27
|
"@types/inquirer": "^9.0.9",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"tsx": "^4.7.0",
|
|
34
34
|
"typescript": "^5.0.0",
|
|
35
35
|
"vitest": "4.0.18",
|
|
36
|
-
"@specforge/lifecycle": "0.3.
|
|
36
|
+
"@specforge/lifecycle": "0.3.10"
|
|
37
37
|
},
|
|
38
38
|
"engines": {
|
|
39
39
|
"node": ">=18.0.0"
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
"@specforge/session-types",
|
|
62
62
|
"@specforge/report-types"
|
|
63
63
|
],
|
|
64
|
-
"gitHead": "
|
|
64
|
+
"gitHead": "b62f0655247ad7e0ebc61414832dec2e59c371f1",
|
|
65
65
|
"scripts": {
|
|
66
66
|
"build": "tsup && tsc --emitDeclarationOnly --outDir dist",
|
|
67
67
|
"typecheck": "tsc --noEmit",
|
|
@@ -411,4 +411,4 @@ When `.specforge.json` has monorepo configuration:
|
|
|
411
411
|
- **Epic:** `todo` | `in_progress` | `completed`
|
|
412
412
|
- **Specification:** `draft` | `planning` | `ready` | `in_progress` | `completed`
|
|
413
413
|
|
|
414
|
-
Note: There is no
|
|
414
|
+
Note: There is no in-review status. Tickets go directly from `active` to `done`.
|
|
@@ -404,7 +404,7 @@ If you cannot complete the ticket after reasonable attempts:
|
|
|
404
404
|
## Status Values
|
|
405
405
|
|
|
406
406
|
- **Ticket:** `pending` | `ready` | `active` | `done` | `blocked`
|
|
407
|
-
- There is no
|
|
407
|
+
- There is no in-review status. Tickets go directly from `active` to `done`.
|
|
408
408
|
- `pending` means dependencies are not met. `ready` means all dependencies satisfied.
|
|
409
409
|
- `blocked` is a first-class status set by a `blocking` discovery; resolving it returns the ticket to `pending`.
|
|
410
410
|
- `start_work_session` transitions `ready` → `active`.
|