@cat-factory/contracts 0.199.0 → 0.200.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,20 @@
1
+ import type { AgentKind } from './primitives.js';
2
+ /**
3
+ * Built-in agent kinds that may carry estimate gating. A kind absent from this set is
4
+ * unconditional — the engine refuses it at pipeline save and at run start, and the SPA's
5
+ * pipeline-health advisory flags a stored pipeline that carries it.
6
+ *
7
+ * A DEPLOYMENT-registered kind answers for itself through its own `gatable` flag; that lookup needs
8
+ * the app-owned agent-kind registry, which is a backend concept, so it stays in
9
+ * `@cat-factory/agents` (`isGatableKind`) and reads this set as its fallback.
10
+ */
11
+ export declare const BUILTIN_GATABLE_KINDS: ReadonlySet<string>;
12
+ /**
13
+ * Whether `kind` may carry estimate gating according to the BUILT-IN vocabulary.
14
+ *
15
+ * Callers that can see the agent-kind registry should prefer `isGatableKind` from
16
+ * `@cat-factory/agents`, which lets a deployment-registered kind override this answer for itself.
17
+ * The SPA has no registry, so this is the predicate it uses.
18
+ */
19
+ export declare function isBuiltinGatableKind(kind: AgentKind | string): boolean;
20
+ //# sourceMappingURL=agent-gating.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-gating.d.ts","sourceRoot":"","sources":["../src/agent-gating.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAuChD;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,EAAE,WAAW,CAAC,MAAM,CAyCpD,CAAA;AAEF;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,GAAG,OAAO,CAEtE"}
@@ -0,0 +1,99 @@
1
+ // Which agent kinds may be ESTIMATE-GATED — skipped at runtime when the task estimate written by an
2
+ // earlier `task-estimator` step falls below the step's thresholds.
3
+ //
4
+ // This lives in `contracts` rather than beside the engine because TWO surfaces must answer the
5
+ // question identically, and they are in different packages: the engine's shape validation
6
+ // (`assertValidGating`, refusing an illegal pipeline at save AND at run start) and the SPA's
7
+ // pipeline-health advisory, which re-derives the same verdict client-side to tell a workspace which
8
+ // of its stored pipelines would fail. When the SPA carried its own copy of the rule, generalising
9
+ // the engine's rule past companions left the advisory declaring a pipeline the product itself
10
+ // SHIPS invalid — and because the advisory auto-opens a modal over the board, that is not a stale
11
+ // warning but an unusable board. A shared constant is the only shape in which the two cannot
12
+ // disagree.
13
+ //
14
+ // Gating was originally restricted to COMPANION kinds, on the reasoning that skipping a producer
15
+ // would starve its downstream steps. That is too strong, and the old catalog proved it: `pl_simple`
16
+ // carried no architect and no spec-writer, `pl_quick` carried no reviewer, and both shipped and ran.
17
+ // A producer's output reaches later steps as PROMPT CONTEXT (prior step outputs + the in-repo spec),
18
+ // not as a precondition — so omitting it degrades the context a later step reasons from rather than
19
+ // breaking it.
20
+ //
21
+ // What genuinely cannot be skipped is a step some OTHER mechanism reads structurally:
22
+ //
23
+ // - `merger` — `runOpensPr` tests `instance.steps` for a merger to decide whether a committing
24
+ // kind delivers via a pull request. It reads the AUTHORED steps, not the un-skipped ones, so a
25
+ // skipped merger would leave `spike`/`spec-writer` opening a PR that nothing merges.
26
+ // - `deployer` — `assertDeployerBeforeConsumer` guarantees an environment exists for a tester /
27
+ // human-test / playwright step. Skipping it independently of its consumer would dead-end that
28
+ // consumer. (It is a no-op on an infraless service, so leaving it unconditional costs nothing.)
29
+ // - `conflicts` / `ci` — the mergeability + green-build guards. "Pass the guards" is not
30
+ // negotiable on task size; a small change merged over a red build is the same outage as a big
31
+ // one.
32
+ // - `bug-intake` — pulls the run's work item from a schedule's tracker board. Skipping it leaves
33
+ // the run with no subject at all.
34
+ //
35
+ // A COMPANION is gatable, and additionally cascades: skipping a producer skips the companion that
36
+ // reviews it (see `producerWasSkipped`), because a companion whose producer never ran would
37
+ // otherwise grade whatever happened to precede it.
38
+ /**
39
+ * Built-in agent kinds that may carry estimate gating. A kind absent from this set is
40
+ * unconditional — the engine refuses it at pipeline save and at run start, and the SPA's
41
+ * pipeline-health advisory flags a stored pipeline that carries it.
42
+ *
43
+ * A DEPLOYMENT-registered kind answers for itself through its own `gatable` flag; that lookup needs
44
+ * the app-owned agent-kind registry, which is a backend concept, so it stays in
45
+ * `@cat-factory/agents` (`isGatableKind`) and reads this set as its fallback.
46
+ */
47
+ export const BUILTIN_GATABLE_KINDS = new Set([
48
+ // Companions — the original gatable set. Each also cascades with its producer.
49
+ 'reviewer',
50
+ 'architect-companion',
51
+ 'spec-companion',
52
+ 'doc-reviewer',
53
+ // Design / analysis producers. Their output is context for the coder, not a precondition:
54
+ // a task simple enough not to need a design is exactly what the estimate identifies.
55
+ 'architect',
56
+ 'researcher',
57
+ 'spec-writer',
58
+ // Build-adjacent producers whose artifacts are additive.
59
+ 'mocker',
60
+ 'blueprints',
61
+ 'code-commenter',
62
+ // Verification depth. The tester is gatable; `deployer` before it is not (it provisions the
63
+ // environment the tester reads, and is a no-op when the service declares no infra).
64
+ 'tester-api',
65
+ 'tester-ui',
66
+ 'playwright',
67
+ // Documentation of work already done.
68
+ 'documenter',
69
+ 'business-documenter',
70
+ // Human checkpoints whose whole purpose IS the human. Gating their PRESENCE is escalation —
71
+ // "require a human PR review once risk clears .8" — not the cancellation of an approval pause
72
+ // a pipeline author asked for. That distinction is enforced separately: the gating validation
73
+ // refuses a step carrying BOTH an estimate gate and the `gates[i]` human-approval flag.
74
+ //
75
+ // `requirements-review` belongs HERE, not with the design producers above: it is not a producer
76
+ // whose artifact later steps read, it is an iterative answer/dismiss/re-review conversation that
77
+ // PARKS the run. Its pause is intrinsic to the kind rather than expressed as `gates[i]`, so the
78
+ // exclusivity rule cannot see it — which makes it the one entry in this set where a reader has to
79
+ // take the escalation argument on its own terms rather than leaning on that guard. It holds for
80
+ // the same reason it holds for `human-review`: gating the step is the author CHOOSING to have the
81
+ // checkpoint conditionally, never a third party deleting a pause somebody else asked for. An
82
+ // author who wants the conversation unconditionally leaves the step ungated, and one who
83
+ // additionally marks it `gates[i]` is refused outright.
84
+ 'requirements-review',
85
+ 'human-review',
86
+ 'human-test',
87
+ 'visual-confirmation',
88
+ ]);
89
+ /**
90
+ * Whether `kind` may carry estimate gating according to the BUILT-IN vocabulary.
91
+ *
92
+ * Callers that can see the agent-kind registry should prefer `isGatableKind` from
93
+ * `@cat-factory/agents`, which lets a deployment-registered kind override this answer for itself.
94
+ * The SPA has no registry, so this is the predicate it uses.
95
+ */
96
+ export function isBuiltinGatableKind(kind) {
97
+ return BUILTIN_GATABLE_KINDS.has(kind);
98
+ }
99
+ //# sourceMappingURL=agent-gating.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-gating.js","sourceRoot":"","sources":["../src/agent-gating.ts"],"names":[],"mappings":"AAEA,oGAAoG;AACpG,mEAAmE;AACnE,EAAE;AACF,+FAA+F;AAC/F,0FAA0F;AAC1F,6FAA6F;AAC7F,oGAAoG;AACpG,kGAAkG;AAClG,8FAA8F;AAC9F,kGAAkG;AAClG,6FAA6F;AAC7F,YAAY;AACZ,EAAE;AACF,iGAAiG;AACjG,oGAAoG;AACpG,qGAAqG;AACrG,qGAAqG;AACrG,oGAAoG;AACpG,eAAe;AACf,EAAE;AACF,sFAAsF;AACtF,EAAE;AACF,iGAAiG;AACjG,mGAAmG;AACnG,yFAAyF;AACzF,kGAAkG;AAClG,kGAAkG;AAClG,oGAAoG;AACpG,2FAA2F;AAC3F,kGAAkG;AAClG,WAAW;AACX,mGAAmG;AACnG,sCAAsC;AACtC,EAAE;AACF,kGAAkG;AAClG,4FAA4F;AAC5F,mDAAmD;AACnD;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAwB,IAAI,GAAG,CAAS;IACxE,+EAA+E;IAC/E,UAAU;IACV,qBAAqB;IACrB,gBAAgB;IAChB,cAAc;IACd,0FAA0F;IAC1F,qFAAqF;IACrF,WAAW;IACX,YAAY;IACZ,aAAa;IACb,yDAAyD;IACzD,QAAQ;IACR,YAAY;IACZ,gBAAgB;IAChB,4FAA4F;IAC5F,oFAAoF;IACpF,YAAY;IACZ,WAAW;IACX,YAAY;IACZ,sCAAsC;IACtC,YAAY;IACZ,qBAAqB;IACrB,4FAA4F;IAC5F,8FAA8F;IAC9F,8FAA8F;IAC9F,wFAAwF;IACxF,EAAE;IACF,gGAAgG;IAChG,iGAAiG;IACjG,gGAAgG;IAChG,kGAAkG;IAClG,gGAAgG;IAChG,kGAAkG;IAClG,6FAA6F;IAC7F,yFAAyF;IACzF,wDAAwD;IACxD,qBAAqB;IACrB,cAAc;IACd,YAAY;IACZ,qBAAqB;CACtB,CAAC,CAAA;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAwB;IAC3D,OAAO,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;AACxC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -14,6 +14,7 @@ export * from './services.js';
14
14
  export * from './fragment-library.js';
15
15
  export * from './fragment-adherence.js';
16
16
  export * from './agent-effort.js';
17
+ export * from './agent-gating.js';
17
18
  export * from './skill-library.js';
18
19
  export * from './accounts.js';
19
20
  export * from './workspace-members.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -14,6 +14,7 @@ export * from './services.js';
14
14
  export * from './fragment-library.js';
15
15
  export * from './fragment-adherence.js';
16
16
  export * from './agent-effort.js';
17
+ export * from './agent-gating.js';
17
18
  export * from './skill-library.js';
18
19
  export * from './accounts.js';
19
20
  export * from './workspace-members.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import * as v from 'valibot';
2
2
  import type { AgentCategory } from './agent-presentation.js';
3
3
  import type { Pipeline } from './entities.js';
4
- import type { TaskType } from './primitives.js';
4
+ import type { BlockLevel, TaskType } from './primitives.js';
5
5
  /**
6
6
  * The USE-CASE of a pipeline — what kind of work it exists to do. Chosen in the pipeline
7
7
  * builder and stamped on every built-in preset, it is the classifier the SPA filters on:
@@ -31,12 +31,47 @@ export type PipelinePurpose = v.InferOutput<typeof pipelinePurposeSchema>;
31
31
  export declare function purposeAllowsAgentCategory(purpose: Pipeline['purpose'] | null | undefined, category: AgentCategory): boolean;
32
32
  /**
33
33
  * Whether `pipeline` should be offered when starting a task of `taskType` — the pickers' gate.
34
- * A `document` task authors a document and a `review` task reviews an existing PR, so each narrows
35
- * the set to ONLY its matching purpose (`document` / `review`): every other pipeline writes/ships
36
- * code, which is meaningless for those tasks. Every OTHER task type (and an undefined `taskType`) is
37
- * unrestricted. A pipeline with no `purpose` is therefore hidden from a document/review task (it
38
- * requires the explicit classifier) and shown for every other. Composed with the launch-availability
39
- * / visual-frame filters at each picker.
34
+ *
35
+ * Each built-in task type narrows to the purposes that can actually do its work:
36
+ *
37
+ * - `document` only `document` pipelines (it authors a document; nothing else applies).
38
+ * - `review` only `review` pipelines (it reviews an existing PR and opens none).
39
+ * - `feature` / `bug` everything EXCEPT `document` / `review` / `planning`
40
+ * ({@link PROGRAMMATIC_PURPOSES}). These ship code, so offering them a document-authoring or
41
+ * PR-review preset was noise in the one picker people use most.
42
+ * - anything else, including a CUSTOM (namespaced) type and an undefined `taskType`, is
43
+ * unrestricted — a deployment's own task type has no purpose mapping we could infer.
44
+ *
45
+ * The two narrowings run in OPPOSITE directions, and the asymmetry is deliberate:
46
+ *
47
+ * - `document` / `review` require the EXPLICIT classifier, because a build pipeline on a document
48
+ * task is actively wrong — running it would author no document and open a code PR nobody asked
49
+ * for. Guessing there costs more than hiding an unclassified preset.
50
+ * - `feature` / `bug` merely EXCLUDE the purposes that cannot ship code. An unclassified pipeline
51
+ * is not known-wrong for a feature, and `purpose` is optional at every write boundary — the
52
+ * builder leaves it unset by default and a `PipelineRegistry` entry need not declare one — so
53
+ * requiring it here would silently hide a workspace's own hand-built pipelines from the picker
54
+ * they were built for, with nothing on screen to explain the absence.
55
+ *
56
+ * Composed with the launch-availability / block-level / visual-frame filters at each picker.
40
57
  */
41
58
  export declare function pipelineAllowedForTaskType(pipeline: Pick<Pipeline, 'purpose'>, taskType: TaskType | undefined): boolean;
59
+ /**
60
+ * Whether `pipeline` may run on a block at `blockLevel` — the surface counterpart to the engine's
61
+ * BIDIRECTIONAL initiative guard (`assertInitiativeShapeAllowed`): a planning pipeline may only
62
+ * start on an `initiative` block, and an initiative block accepts only a planning pipeline.
63
+ *
64
+ * Without this the three planning presets were offered on every ordinary task and then REFUSED at
65
+ * start with a 409 — the worst failure shape, since the user has already chosen before learning it
66
+ * cannot run.
67
+ *
68
+ * Keyed on `purpose: 'planning'` rather than on the initiative AGENT KINDS the engine tests, because
69
+ * the SPA cannot see the kernel's kind vocabulary (it depends on `@cat-factory/contracts` only) —
70
+ * and because a purpose is the more general classifier: a deployment's own planning pipeline is
71
+ * filtered correctly even if it uses kinds this repo has never heard of. For the built-in catalog
72
+ * the two coincide, and a kernel drift guard (`seed.test.ts`) pins that they keep coinciding.
73
+ *
74
+ * `blockLevel` undefined ⇒ unrestricted (an un-typed context shows everything).
75
+ */
76
+ export declare function pipelineAllowedForBlockLevel(pipeline: Pick<Pipeline, 'purpose'>, blockLevel: BlockLevel | undefined): boolean;
42
77
  //# sourceMappingURL=pipeline-purpose.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline-purpose.d.ts","sourceRoot":"","sources":["../src/pipeline-purpose.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAC5B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAE/C;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,iBAAiB,YAAI,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAU,CAAA;AACjG,eAAO,MAAM,qBAAqB,+FAAgC,CAAA;AAClE,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAqBzE;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,IAAI,GAAG,SAAS,EAC/C,QAAQ,EAAE,aAAa,GACtB,OAAO,CAGT;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,EACnC,QAAQ,EAAE,QAAQ,GAAG,SAAS,GAC7B,OAAO,CAIT"}
1
+ {"version":3,"file":"pipeline-purpose.d.ts","sourceRoot":"","sources":["../src/pipeline-purpose.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAC5B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAE3D;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,iBAAiB,YAAI,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAU,CAAA;AACjG,eAAO,MAAM,qBAAqB,+FAAgC,CAAA;AAClE,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAqBzE;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,IAAI,GAAG,SAAS,EAC/C,QAAQ,EAAE,aAAa,GACtB,OAAO,CAGT;AAeD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,EACnC,QAAQ,EAAE,QAAQ,GAAG,SAAS,GAC7B,OAAO,CAOT;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,EACnC,UAAU,EAAE,UAAU,GAAG,SAAS,GACjC,OAAO,CAIT"}
@@ -46,20 +46,76 @@ export function purposeAllowsAgentCategory(purpose, category) {
46
46
  return true;
47
47
  return !NON_BUILD_HIDDEN_CATEGORIES.includes(category);
48
48
  }
49
+ /**
50
+ * The purposes a PROGRAMMATIC task (`feature` / `bug`) may be offered. It ships code, so a
51
+ * `document` or `review` pipeline is meaningless for it — the reverse of the narrowing those task
52
+ * types already got. `research` is included because reaching for a spike before committing to an
53
+ * approach is a legitimate move on a feature someone has not yet scoped; `planning` is not, being
54
+ * initiative-level work that the block-level gate refuses anyway.
55
+ *
56
+ * Applied as a DENY list (everything not named here is hidden) rather than an allow list, which is
57
+ * the one place this narrowing differs in direction from `document` / `review` — see
58
+ * {@link pipelineAllowedForTaskType} for why an UNCLASSIFIED pipeline has to stay visible here.
59
+ */
60
+ const PROGRAMMATIC_PURPOSES = ['build', 'research'];
49
61
  /**
50
62
  * Whether `pipeline` should be offered when starting a task of `taskType` — the pickers' gate.
51
- * A `document` task authors a document and a `review` task reviews an existing PR, so each narrows
52
- * the set to ONLY its matching purpose (`document` / `review`): every other pipeline writes/ships
53
- * code, which is meaningless for those tasks. Every OTHER task type (and an undefined `taskType`) is
54
- * unrestricted. A pipeline with no `purpose` is therefore hidden from a document/review task (it
55
- * requires the explicit classifier) and shown for every other. Composed with the launch-availability
56
- * / visual-frame filters at each picker.
63
+ *
64
+ * Each built-in task type narrows to the purposes that can actually do its work:
65
+ *
66
+ * - `document` only `document` pipelines (it authors a document; nothing else applies).
67
+ * - `review` only `review` pipelines (it reviews an existing PR and opens none).
68
+ * - `feature` / `bug` everything EXCEPT `document` / `review` / `planning`
69
+ * ({@link PROGRAMMATIC_PURPOSES}). These ship code, so offering them a document-authoring or
70
+ * PR-review preset was noise in the one picker people use most.
71
+ * - anything else, including a CUSTOM (namespaced) type and an undefined `taskType`, is
72
+ * unrestricted — a deployment's own task type has no purpose mapping we could infer.
73
+ *
74
+ * The two narrowings run in OPPOSITE directions, and the asymmetry is deliberate:
75
+ *
76
+ * - `document` / `review` require the EXPLICIT classifier, because a build pipeline on a document
77
+ * task is actively wrong — running it would author no document and open a code PR nobody asked
78
+ * for. Guessing there costs more than hiding an unclassified preset.
79
+ * - `feature` / `bug` merely EXCLUDE the purposes that cannot ship code. An unclassified pipeline
80
+ * is not known-wrong for a feature, and `purpose` is optional at every write boundary — the
81
+ * builder leaves it unset by default and a `PipelineRegistry` entry need not declare one — so
82
+ * requiring it here would silently hide a workspace's own hand-built pipelines from the picker
83
+ * they were built for, with nothing on screen to explain the absence.
84
+ *
85
+ * Composed with the launch-availability / block-level / visual-frame filters at each picker.
57
86
  */
58
87
  export function pipelineAllowedForTaskType(pipeline, taskType) {
59
88
  if (taskType === 'document')
60
89
  return pipeline.purpose === 'document';
61
90
  if (taskType === 'review')
62
91
  return pipeline.purpose === 'review';
92
+ if (taskType === 'feature' || taskType === 'bug') {
93
+ return pipeline.purpose === undefined || PROGRAMMATIC_PURPOSES.includes(pipeline.purpose);
94
+ }
63
95
  return true;
64
96
  }
97
+ /**
98
+ * Whether `pipeline` may run on a block at `blockLevel` — the surface counterpart to the engine's
99
+ * BIDIRECTIONAL initiative guard (`assertInitiativeShapeAllowed`): a planning pipeline may only
100
+ * start on an `initiative` block, and an initiative block accepts only a planning pipeline.
101
+ *
102
+ * Without this the three planning presets were offered on every ordinary task and then REFUSED at
103
+ * start with a 409 — the worst failure shape, since the user has already chosen before learning it
104
+ * cannot run.
105
+ *
106
+ * Keyed on `purpose: 'planning'` rather than on the initiative AGENT KINDS the engine tests, because
107
+ * the SPA cannot see the kernel's kind vocabulary (it depends on `@cat-factory/contracts` only) —
108
+ * and because a purpose is the more general classifier: a deployment's own planning pipeline is
109
+ * filtered correctly even if it uses kinds this repo has never heard of. For the built-in catalog
110
+ * the two coincide, and a kernel drift guard (`seed.test.ts`) pins that they keep coinciding.
111
+ *
112
+ * `blockLevel` undefined ⇒ unrestricted (an un-typed context shows everything).
113
+ */
114
+ export function pipelineAllowedForBlockLevel(pipeline, blockLevel) {
115
+ if (blockLevel === undefined)
116
+ return true;
117
+ if (blockLevel === 'initiative')
118
+ return pipeline.purpose === 'planning';
119
+ return pipeline.purpose !== 'planning';
120
+ }
65
121
  //# sourceMappingURL=pipeline-purpose.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline-purpose.js","sourceRoot":"","sources":["../src/pipeline-purpose.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAK5B;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAU,CAAA;AACjG,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAA;AAGlE,8EAA8E;AAC9E,6EAA6E;AAC7E,EAAE;AACF,+EAA+E;AAC/E,kFAAkF;AAClF,wEAAwE;AACxE,oFAAoF;AACpF,qFAAqF;AACrF,qFAAqF;AACrF,0FAA0F;AAC1F,EAAE;AACF,qFAAqF;AACrF,sFAAsF;AACtF,uFAAuF;AACvF,8EAA8E;AAE9E,uGAAuG;AACvG,MAAM,2BAA2B,GAA6B,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;AAE/E;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CACxC,OAA+C,EAC/C,QAAuB;IAEvB,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,OAAO;QAAE,OAAO,IAAI,CAAA;IAChD,OAAO,CAAC,2BAA2B,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;AACxD,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,0BAA0B,CACxC,QAAmC,EACnC,QAA8B;IAE9B,IAAI,QAAQ,KAAK,UAAU;QAAE,OAAO,QAAQ,CAAC,OAAO,KAAK,UAAU,CAAA;IACnE,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC,OAAO,KAAK,QAAQ,CAAA;IAC/D,OAAO,IAAI,CAAA;AACb,CAAC"}
1
+ {"version":3,"file":"pipeline-purpose.js","sourceRoot":"","sources":["../src/pipeline-purpose.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAK5B;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAU,CAAA;AACjG,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAA;AAGlE,8EAA8E;AAC9E,6EAA6E;AAC7E,EAAE;AACF,+EAA+E;AAC/E,kFAAkF;AAClF,wEAAwE;AACxE,oFAAoF;AACpF,qFAAqF;AACrF,qFAAqF;AACrF,0FAA0F;AAC1F,EAAE;AACF,qFAAqF;AACrF,sFAAsF;AACtF,uFAAuF;AACvF,8EAA8E;AAE9E,uGAAuG;AACvG,MAAM,2BAA2B,GAA6B,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;AAE/E;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CACxC,OAA+C,EAC/C,QAAuB;IAEvB,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,OAAO;QAAE,OAAO,IAAI,CAAA;IAChD,OAAO,CAAC,2BAA2B,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;AACxD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,qBAAqB,GAA+B,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;AAE/E;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,0BAA0B,CACxC,QAAmC,EACnC,QAA8B;IAE9B,IAAI,QAAQ,KAAK,UAAU;QAAE,OAAO,QAAQ,CAAC,OAAO,KAAK,UAAU,CAAA;IACnE,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC,OAAO,KAAK,QAAQ,CAAA;IAC/D,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;QACjD,OAAO,QAAQ,CAAC,OAAO,KAAK,SAAS,IAAI,qBAAqB,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;IAC3F,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,4BAA4B,CAC1C,QAAmC,EACnC,UAAkC;IAElC,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,IAAI,CAAA;IACzC,IAAI,UAAU,KAAK,YAAY;QAAE,OAAO,QAAQ,CAAC,OAAO,KAAK,UAAU,CAAA;IACvE,OAAO,QAAQ,CAAC,OAAO,KAAK,UAAU,CAAA;AACxC,CAAC"}
@@ -1,5 +1,13 @@
1
1
  import * as v from 'valibot';
2
- /** Template a schedule was created from; drives the seeded block description. */
2
+ /**
3
+ * Template a schedule was created from; drives the seeded block description.
4
+ *
5
+ * `tech-debt` and `bug-triage` are INFERRED by the SPA from the picked pipeline, whose shape is
6
+ * specific to that kind of work. `dep-update` is not: its pipeline was retired in the catalog
7
+ * collapse (it was the ordinary build tail under a recurring name), so a dependency-update schedule
8
+ * runs a plain build rung and there is nothing to infer from. It stays in the union because an
9
+ * explicit API caller can still name it to get the canned description.
10
+ */
3
11
  export declare const scheduleTemplateSchema: v.PicklistSchema<["dep-update", "tech-debt", "bug-triage", "custom"], undefined>;
4
12
  export type ScheduleTemplate = v.InferOutput<typeof scheduleTemplateSchema>;
5
13
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"recurring.d.ts","sourceRoot":"","sources":["../src/recurring.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAkB5B,iFAAiF;AACjF,eAAO,MAAM,sBAAsB,kFAKjC,CAAA;AACF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAI3E;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB;IAClC,uDAAuD;;IAEvD,wFAAwF;;QAEtF,qCAAqC;;QAErC,6BAA6B;;QAE7B,yCAAyC;;;IAG3C,oEAAoE;;QAElE,qDAAqD;;QAErD,sDAAsD;;QAEtD,2FAA2F;;;IAG7F;;;OAGG;;aAEH,CAAA;AACF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAK7E;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB;;IAE3B,qDAAqD;;IAErD,qFAAqF;;IAErF,mFAAmF;;IAEnF,6DAA6D;;aAE7D,CAAA;AACF,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAE/D;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,sBAAsB;;IAEjC;;;;OAIG;;;;;;;;;QA9BH,qDAAqD;;QAErD,qFAAqF;;QAErF,mFAAmF;;QAEnF,6DAA6D;;;IAgC7D,uFAAuF;;IAEvF,gFAAgF;;QAhFhF,uDAAuD;;QAEvD,wFAAwF;;YAEtF,qCAAqC;;YAErC,6BAA6B;;YAE7B,yCAAyC;;;QAG3C,oEAAoE;;YAElE,qDAAqD;;YAErD,sDAAsD;;YAEtD,2FAA2F;;;QAG7F;;;WAGG;;;;;;;aA+DH,CAAA;AACF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAE3E,uFAAuF;AACvF,eAAO,MAAM,iBAAiB;;;IAG5B,gFAAgF;;;;;IAKhF,6EAA6E;;aAE7E,CAAA;AACF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAMjE,sDAAsD;AACtD,eAAO,MAAM,oBAAoB;;;;;IAK/B;;;OAGG;;;QA5EH,qDAAqD;;QAErD,qFAAqF;;QAErF,mFAAmF;;QAEnF,6DAA6D;;;IAwE7D;;;OAGG;;IAEH,sGAAsG;;QA3HtG,uDAAuD;;QAEvD,wFAAwF;;YAEtF,qCAAqC;;YAErC,6BAA6B;;YAE7B,yCAAyC;;;QAG3C,oEAAoE;;YAElE,qDAAqD;;YAErD,sDAAsD;;YAEtD,2FAA2F;;;QAG7F;;;WAGG;;;;IAuGH;;;;OAIG;;aAEH,CAAA;AACF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAE5E,wDAAwD;AACxD,eAAO,MAAM,oBAAoB;;;;;QAhG/B,qDAAqD;;QAErD,qFAAqF;;QAErF,mFAAmF;;QAEnF,6DAA6D;;;IA8F7D,mEAAmE;;QA5InE,uDAAuD;;QAEvD,wFAAwF;;YAEtF,qCAAqC;;YAErC,6BAA6B;;YAE7B,yCAAyC;;;QAG3C,oEAAoE;;YAElE,qDAAqD;;YAErD,sDAAsD;;YAEtD,2FAA2F;;;QAG7F;;;WAGG;;;;aAwHH,CAAA;AACF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,oBAAoB,CAAC,CAAA"}
1
+ {"version":3,"file":"recurring.d.ts","sourceRoot":"","sources":["../src/recurring.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAkB5B;;;;;;;;GAQG;AACH,eAAO,MAAM,sBAAsB,kFAKjC,CAAA;AACF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAI3E;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB;IAClC,uDAAuD;;IAEvD,wFAAwF;;QAEtF,qCAAqC;;QAErC,6BAA6B;;QAE7B,yCAAyC;;;IAG3C,oEAAoE;;QAElE,qDAAqD;;QAErD,sDAAsD;;QAEtD,2FAA2F;;;IAG7F;;;OAGG;;aAEH,CAAA;AACF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAK7E;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB;;IAE3B,qDAAqD;;IAErD,qFAAqF;;IAErF,mFAAmF;;IAEnF,6DAA6D;;aAE7D,CAAA;AACF,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAE/D;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,sBAAsB;;IAEjC;;;;OAIG;;;;;;;;;QA9BH,qDAAqD;;QAErD,qFAAqF;;QAErF,mFAAmF;;QAEnF,6DAA6D;;;IAgC7D,uFAAuF;;IAEvF,gFAAgF;;QAhFhF,uDAAuD;;QAEvD,wFAAwF;;YAEtF,qCAAqC;;YAErC,6BAA6B;;YAE7B,yCAAyC;;;QAG3C,oEAAoE;;YAElE,qDAAqD;;YAErD,sDAAsD;;YAEtD,2FAA2F;;;QAG7F;;;WAGG;;;;;;;aA+DH,CAAA;AACF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAE3E,uFAAuF;AACvF,eAAO,MAAM,iBAAiB;;;IAG5B,gFAAgF;;;;;IAKhF,6EAA6E;;aAE7E,CAAA;AACF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAMjE,sDAAsD;AACtD,eAAO,MAAM,oBAAoB;;;;;IAK/B;;;OAGG;;;QA5EH,qDAAqD;;QAErD,qFAAqF;;QAErF,mFAAmF;;QAEnF,6DAA6D;;;IAwE7D;;;OAGG;;IAEH,sGAAsG;;QA3HtG,uDAAuD;;QAEvD,wFAAwF;;YAEtF,qCAAqC;;YAErC,6BAA6B;;YAE7B,yCAAyC;;;QAG3C,oEAAoE;;YAElE,qDAAqD;;YAErD,sDAAsD;;YAEtD,2FAA2F;;;QAG7F;;;WAGG;;;;IAuGH;;;;OAIG;;aAEH,CAAA;AACF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAE5E,wDAAwD;AACxD,eAAO,MAAM,oBAAoB;;;;;QAhG/B,qDAAqD;;QAErD,qFAAqF;;QAErF,mFAAmF;;QAEnF,6DAA6D;;;IA8F7D,mEAAmE;;QA5InE,uDAAuD;;QAEvD,wFAAwF;;YAEtF,qCAAqC;;YAErC,6BAA6B;;YAE7B,yCAAyC;;;QAG3C,oEAAoE;;YAElE,qDAAqD;;YAErD,sDAAsD;;YAEtD,2FAA2F;;;QAG7F;;;WAGG;;;;aAwHH,CAAA;AACF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,oBAAoB,CAAC,CAAA"}
package/dist/recurring.js CHANGED
@@ -14,7 +14,15 @@ import { taskSourceKindSchema } from './tasks.js';
14
14
  // hours) evaluated in the schedule's timezone. The engine rolls the computed next
15
15
  // run forward until it lands inside an allowed window.
16
16
  // ---------------------------------------------------------------------------
17
- /** Template a schedule was created from; drives the seeded block description. */
17
+ /**
18
+ * Template a schedule was created from; drives the seeded block description.
19
+ *
20
+ * `tech-debt` and `bug-triage` are INFERRED by the SPA from the picked pipeline, whose shape is
21
+ * specific to that kind of work. `dep-update` is not: its pipeline was retired in the catalog
22
+ * collapse (it was the ordinary build tail under a recurring name), so a dependency-update schedule
23
+ * runs a plain build rung and there is nothing to infer from. It stays in the union because an
24
+ * explicit API caller can still name it to get the canned description.
25
+ */
18
26
  export const scheduleTemplateSchema = v.picklist([
19
27
  'dep-update',
20
28
  'tech-debt',
@@ -1 +1 @@
1
- {"version":3,"file":"recurring.js","sourceRoot":"","sources":["../src/recurring.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"recurring.js","sourceRoot":"","sources":["../src/recurring.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-factory/contracts",
3
- "version": "0.199.0",
3
+ "version": "0.200.0",
4
4
  "description": "Valibot wire contract shared between the Agent Architecture Board frontend and backend.",
5
5
  "repository": {
6
6
  "type": "git",