@cat-factory/orchestration 0.14.0 → 0.16.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,42 @@
1
+ // Pure inference of a task's BUSINESS-vs-TECHNICAL label from the spec phase.
2
+ //
3
+ // The spec-writer determines whether a task is purely technical (it produces NO business
4
+ // specs — `noBusinessSpecs`), and the spec-companion corroborates or disputes that
5
+ // determination (`technicalCorroborated`). Both signals are persisted on their steps, so
6
+ // the engine can run this inference when the spec-companion CONVERGES (passes) AND when a
7
+ // human PROCEEDS past the companion's iteration cap.
8
+ //
9
+ // Authority/stability rule: once a concrete label is recorded it is frozen — this function
10
+ // returns `undefined` (no change) for any existing `true`/`false`, whether it was set by a
11
+ // human or by a prior inference. A human-set value is thus never overridden by the engine,
12
+ // and an inferred value is not silently flip-flopped on a re-run either; to re-open a task
13
+ // to inference a human clears the label back to "unset" (`null`) via the inspector toggle.
14
+ /**
15
+ * Decide the `technical` label to persist on a block from the spec phase, or `undefined`
16
+ * to leave the block untouched.
17
+ *
18
+ * @param currentTechnical the block's stored label (`true`/`false` = a determination is
19
+ * already recorded — by a human or a prior inference; `null`/`undefined` = not yet
20
+ * determined).
21
+ * @param producerNoBusinessSpecs whether the spec-writer produced no business specs.
22
+ * @param technicalCorroborated the spec-companion's corroboration verdict (`undefined` ⇒
23
+ * the companion gave no opinion).
24
+ * @returns the boolean to persist, or `undefined` to make no change.
25
+ *
26
+ * Rules:
27
+ * - A concrete existing label (`true`/`false`) is authoritative and frozen — return
28
+ * `undefined` (never override a human's, or an already-settled inferred, choice; a human
29
+ * re-opens it by clearing the label to `null`).
30
+ * - With no companion opinion (`technicalCorroborated === undefined`) infer nothing.
31
+ * - Otherwise the label is `noBusinessSpecs && technicalCorroborated`: a task is technical
32
+ * only when the writer produced no business specs AND the companion agrees. Specs
33
+ * produced (or a dispute) ⇒ `false` (the symmetric business case).
34
+ */
35
+ export function inferTechnicalLabel(currentTechnical, producerNoBusinessSpecs, technicalCorroborated) {
36
+ if (typeof currentTechnical === 'boolean')
37
+ return undefined;
38
+ if (technicalCorroborated === undefined)
39
+ return undefined;
40
+ return producerNoBusinessSpecs && technicalCorroborated;
41
+ }
42
+ //# sourceMappingURL=technical.logic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"technical.logic.js","sourceRoot":"","sources":["../../../src/modules/execution/technical.logic.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,EAAE;AACF,yFAAyF;AACzF,mFAAmF;AACnF,yFAAyF;AACzF,0FAA0F;AAC1F,qDAAqD;AACrD,EAAE;AACF,2FAA2F;AAC3F,2FAA2F;AAC3F,2FAA2F;AAC3F,2FAA2F;AAC3F,2FAA2F;AAE3F;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,mBAAmB,CACjC,gBAA4C,EAC5C,uBAAgC,EAChC,qBAA0C;IAE1C,IAAI,OAAO,gBAAgB,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IAC3D,IAAI,qBAAqB,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IACzD,OAAO,uBAAuB,IAAI,qBAAqB,CAAA;AACzD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-factory/orchestration",
3
- "version": "0.14.0",
3
+ "version": "0.16.0",
4
4
  "description": "Delivery-workflow engine for the Agent Architecture Board (execution, bootstrap, pipelines, board, boardScan, requirements, and composition root).",
5
5
  "repository": {
6
6
  "type": "git",
@@ -25,13 +25,13 @@
25
25
  },
26
26
  "dependencies": {
27
27
  "ai": "^6.0.209",
28
- "@cat-factory/agents": "0.11.16",
29
- "@cat-factory/contracts": "0.20.0",
30
- "@cat-factory/integrations": "0.15.0",
31
- "@cat-factory/kernel": "0.19.0",
32
- "@cat-factory/prompt-fragments": "0.7.17",
33
- "@cat-factory/spend": "0.8.18",
34
- "@cat-factory/workspaces": "0.7.24"
28
+ "@cat-factory/agents": "0.13.0",
29
+ "@cat-factory/contracts": "0.21.0",
30
+ "@cat-factory/integrations": "0.16.1",
31
+ "@cat-factory/kernel": "0.21.0",
32
+ "@cat-factory/prompt-fragments": "0.7.18",
33
+ "@cat-factory/spend": "0.8.20",
34
+ "@cat-factory/workspaces": "0.7.26"
35
35
  },
36
36
  "devDependencies": {
37
37
  "typescript": "7.0.1-rc",