@principles/core 1.186.0 → 1.187.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.
Files changed (69) hide show
  1. package/dist/runtime-v2/__tests__/architecture-regression.test.js +7 -1
  2. package/dist/runtime-v2/__tests__/architecture-regression.test.js.map +1 -1
  3. package/dist/runtime-v2/diagnostician/__tests__/diag-rootcause-output.test.js +134 -15
  4. package/dist/runtime-v2/diagnostician/__tests__/diag-rootcause-output.test.js.map +1 -1
  5. package/dist/runtime-v2/diagnostician/__tests__/intent-tension-schema.test.d.ts +18 -0
  6. package/dist/runtime-v2/diagnostician/__tests__/intent-tension-schema.test.d.ts.map +1 -0
  7. package/dist/runtime-v2/diagnostician/__tests__/intent-tension-schema.test.js +251 -0
  8. package/dist/runtime-v2/diagnostician/__tests__/intent-tension-schema.test.js.map +1 -0
  9. package/dist/runtime-v2/diagnostician/__tests__/rootcause-prompt-builder.test.js +73 -0
  10. package/dist/runtime-v2/diagnostician/__tests__/rootcause-prompt-builder.test.js.map +1 -1
  11. package/dist/runtime-v2/diagnostician/diag-rootcause-output.d.ts +90 -0
  12. package/dist/runtime-v2/diagnostician/diag-rootcause-output.d.ts.map +1 -1
  13. package/dist/runtime-v2/diagnostician/diag-rootcause-output.js +108 -0
  14. package/dist/runtime-v2/diagnostician/diag-rootcause-output.js.map +1 -1
  15. package/dist/runtime-v2/diagnostician/rootcause-prompt-builder.d.ts +8 -0
  16. package/dist/runtime-v2/diagnostician/rootcause-prompt-builder.d.ts.map +1 -1
  17. package/dist/runtime-v2/diagnostician/rootcause-prompt-builder.js +66 -3
  18. package/dist/runtime-v2/diagnostician/rootcause-prompt-builder.js.map +1 -1
  19. package/dist/runtime-v2/diagnostician-output.d.ts +23 -0
  20. package/dist/runtime-v2/diagnostician-output.d.ts.map +1 -1
  21. package/dist/runtime-v2/diagnostician-output.js +16 -0
  22. package/dist/runtime-v2/diagnostician-output.js.map +1 -1
  23. package/dist/runtime-v2/diagnostician-prompt-builder.d.ts +32 -0
  24. package/dist/runtime-v2/diagnostician-prompt-builder.d.ts.map +1 -1
  25. package/dist/runtime-v2/diagnostician-prompt-builder.js.map +1 -1
  26. package/dist/runtime-v2/index.d.ts +4 -2
  27. package/dist/runtime-v2/index.d.ts.map +1 -1
  28. package/dist/runtime-v2/index.js +5 -3
  29. package/dist/runtime-v2/index.js.map +1 -1
  30. package/dist/runtime-v2/intent/index.d.ts +1 -0
  31. package/dist/runtime-v2/intent/index.d.ts.map +1 -1
  32. package/dist/runtime-v2/intent/index.js +1 -0
  33. package/dist/runtime-v2/intent/index.js.map +1 -1
  34. package/dist/runtime-v2/intent/intent-doc-reader-port.d.ts +95 -0
  35. package/dist/runtime-v2/intent/intent-doc-reader-port.d.ts.map +1 -0
  36. package/dist/runtime-v2/intent/intent-doc-reader-port.js +43 -0
  37. package/dist/runtime-v2/intent/intent-doc-reader-port.js.map +1 -0
  38. package/dist/runtime-v2/internalization/__tests__/__fixtures__/intent-tension-cases.d.ts +54 -0
  39. package/dist/runtime-v2/internalization/__tests__/__fixtures__/intent-tension-cases.d.ts.map +1 -0
  40. package/dist/runtime-v2/internalization/__tests__/__fixtures__/intent-tension-cases.js +219 -0
  41. package/dist/runtime-v2/internalization/__tests__/__fixtures__/intent-tension-cases.js.map +1 -0
  42. package/dist/runtime-v2/internalization/__tests__/diag-rootcause-intent-tension.test.d.ts +2 -0
  43. package/dist/runtime-v2/internalization/__tests__/diag-rootcause-intent-tension.test.d.ts.map +1 -0
  44. package/dist/runtime-v2/internalization/__tests__/diag-rootcause-intent-tension.test.js +360 -0
  45. package/dist/runtime-v2/internalization/__tests__/diag-rootcause-intent-tension.test.js.map +1 -0
  46. package/dist/runtime-v2/internalization/__tests__/diag-router-intent-tension.test.d.ts +2 -0
  47. package/dist/runtime-v2/internalization/__tests__/diag-router-intent-tension.test.d.ts.map +1 -0
  48. package/dist/runtime-v2/internalization/__tests__/diag-router-intent-tension.test.js +333 -0
  49. package/dist/runtime-v2/internalization/__tests__/diag-router-intent-tension.test.js.map +1 -0
  50. package/dist/runtime-v2/internalization/__tests__/intent-tension-cases.test.d.ts +2 -0
  51. package/dist/runtime-v2/internalization/__tests__/intent-tension-cases.test.d.ts.map +1 -0
  52. package/dist/runtime-v2/internalization/__tests__/intent-tension-cases.test.js +113 -0
  53. package/dist/runtime-v2/internalization/__tests__/intent-tension-cases.test.js.map +1 -0
  54. package/dist/runtime-v2/internalization/diag-rootcause-runner.d.ts +13 -0
  55. package/dist/runtime-v2/internalization/diag-rootcause-runner.d.ts.map +1 -1
  56. package/dist/runtime-v2/internalization/diag-rootcause-runner.js +42 -0
  57. package/dist/runtime-v2/internalization/diag-rootcause-runner.js.map +1 -1
  58. package/dist/runtime-v2/internalization/diag-router-runner.d.ts.map +1 -1
  59. package/dist/runtime-v2/internalization/diag-router-runner.js +27 -0
  60. package/dist/runtime-v2/internalization/diag-router-runner.js.map +1 -1
  61. package/dist/runtime-v2/pain-signal-runtime-factory.d.ts +12 -0
  62. package/dist/runtime-v2/pain-signal-runtime-factory.d.ts.map +1 -1
  63. package/dist/runtime-v2/pain-signal-runtime-factory.js +1 -1
  64. package/dist/runtime-v2/pain-signal-runtime-factory.js.map +1 -1
  65. package/dist/runtime-v2/pain-to-principle-service.d.ts +6 -0
  66. package/dist/runtime-v2/pain-to-principle-service.d.ts.map +1 -1
  67. package/dist/runtime-v2/pain-to-principle-service.js +2 -0
  68. package/dist/runtime-v2/pain-to-principle-service.js.map +1 -1
  69. package/package.json +1 -1
@@ -43,6 +43,78 @@ export declare const DiagRootCauseEvidenceSchema: import("@sinclair/typebox").TO
43
43
  }>;
44
44
  /** Evidence entry linking a source reference to an explanatory note. */
45
45
  export type DiagRootCauseEvidence = Static<typeof DiagRootCauseEvidenceSchema>;
46
+ /**
47
+ * Intent tension source enum (SPEC §16.5).
48
+ *
49
+ * - `none` — no tension detected
50
+ * - `action_drift` — Agent's action appears to drift from INTENT
51
+ * - `intent_suspect` — INTENT itself may be stale, ambiguous, or contradictory
52
+ * - `healthy_tension` — genuine strategic trade-off, no drift
53
+ */
54
+ export declare const IntentTensionSourceSchema: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"none">, import("@sinclair/typebox").TLiteral<"action_drift">, import("@sinclair/typebox").TLiteral<"intent_suspect">, import("@sinclair/typebox").TLiteral<"healthy_tension">]>;
55
+ /** Intent tension source: none | action_drift | intent_suspect | healthy_tension */
56
+ export type IntentTensionSource = Static<typeof IntentTensionSourceSchema>;
57
+ /**
58
+ * Evidence strength enum (SPEC §16.6).
59
+ *
60
+ * Coarse three-level scale; intentionally NOT a numeric confidence
61
+ * (SPEC §16.3 forbids `intentTension.confidence`).
62
+ */
63
+ export declare const EvidenceStrengthSchema: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"weak">, import("@sinclair/typebox").TLiteral<"moderate">, import("@sinclair/typebox").TLiteral<"strong">]>;
64
+ /** Evidence strength: weak | moderate | strong */
65
+ export type EvidenceStrength = Static<typeof EvidenceStrengthSchema>;
66
+ /**
67
+ * Related INTENT.md field enum (SPEC §16.7).
68
+ *
69
+ * Snake_case keys mirror the INTENT.md section identifiers used in the
70
+ * prompt block. The LLM picks one or more fields that the tension
71
+ * relates to.
72
+ */
73
+ export declare const IntentRelatedFieldSchema: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"why">, import("@sinclair/typebox").TLiteral<"desired_outcome">, import("@sinclair/typebox").TLiteral<"non_negotiables">, import("@sinclair/typebox").TLiteral<"stop_escalation">, import("@sinclair/typebox").TLiteral<"current_strategic_focus">]>;
74
+ /** Related INTENT field: why | desired_outcome | non_negotiables | stop_escalation | current_strategic_focus */
75
+ export type IntentRelatedField = Static<typeof IntentRelatedFieldSchema>;
76
+ /**
77
+ * Suggested Owner action enum (SPEC §21).
78
+ *
79
+ * PD surfaces tension; the Owner decides value. This field is a
80
+ * SUGGESTION — never auto-applied. The Owner must record a
81
+ * IntentDecisionRecord (PRI-470) before any follow-up action executes.
82
+ */
83
+ export declare const SuggestedOwnerActionSchema: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"confirm_drift">, import("@sinclair/typebox").TLiteral<"revise_intent">, import("@sinclair/typebox").TLiteral<"observe">, import("@sinclair/typebox").TLiteral<"dismiss">, import("@sinclair/typebox").TLiteral<"promote_to_principle">, import("@sinclair/typebox").TLiteral<"promote_to_rulehost">]>;
84
+ /** Suggested Owner action: confirm_drift | revise_intent | observe | dismiss | promote_to_principle | promote_to_rulehost */
85
+ export type SuggestedOwnerAction = Static<typeof SuggestedOwnerActionSchema>;
86
+ /**
87
+ * IntentTension schema (SPEC §16.2).
88
+ *
89
+ * Optional object produced by Stage A when the Agent detects a tension
90
+ * between its action and the Owner-authored INTENT.md.
91
+ *
92
+ * CRITICAL (SPEC §16.3): this object MUST NOT carry a `confidence`
93
+ * field. The Stage A `confidence` (rootCause-level) is the only
94
+ * diagnostician confidence. To enforce this, `additionalProperties: false`
95
+ * is set so any extra property (including `confidence`) is rejected by
96
+ * `Value.Check`.
97
+ *
98
+ * Lineage (SPEC §16.2): `intentDocHash` is optional but, when present,
99
+ * MUST match the hash of the INTENT.md that was injected into the
100
+ * prompt. The Stage A runner enforces this invariant (PRI-468).
101
+ */
102
+ export declare const IntentTensionSchema: import("@sinclair/typebox").TObject<{
103
+ source: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"none">, import("@sinclair/typebox").TLiteral<"action_drift">, import("@sinclair/typebox").TLiteral<"intent_suspect">, import("@sinclair/typebox").TLiteral<"healthy_tension">]>;
104
+ evidenceStrength: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"weak">, import("@sinclair/typebox").TLiteral<"moderate">, import("@sinclair/typebox").TLiteral<"strong">]>;
105
+ relatedIntentFields: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"why">, import("@sinclair/typebox").TLiteral<"desired_outcome">, import("@sinclair/typebox").TLiteral<"non_negotiables">, import("@sinclair/typebox").TLiteral<"stop_escalation">, import("@sinclair/typebox").TLiteral<"current_strategic_focus">]>>;
106
+ evidence: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
107
+ explanation: import("@sinclair/typebox").TString;
108
+ suggestedOwnerAction: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"confirm_drift">, import("@sinclair/typebox").TLiteral<"revise_intent">, import("@sinclair/typebox").TLiteral<"observe">, import("@sinclair/typebox").TLiteral<"dismiss">, import("@sinclair/typebox").TLiteral<"promote_to_principle">, import("@sinclair/typebox").TLiteral<"promote_to_rulehost">]>;
109
+ intentDocHash: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
110
+ }>;
111
+ /**
112
+ * IntentTension — optional Stage A output describing a tension between
113
+ * the Agent's action and the Owner-authored INTENT.md.
114
+ *
115
+ * `confidence` is forbidden on this object (SPEC §16.3).
116
+ */
117
+ export type IntentTension = Static<typeof IntentTensionSchema>;
46
118
  /**
47
119
  * TypeBox schema for the Root Cause stage (Stage A) output.
48
120
  *
@@ -70,6 +142,24 @@ export declare const DiagRootCauseOutputV1Schema: import("@sinclair/typebox").TO
70
142
  }>>;
71
143
  confidence: import("@sinclair/typebox").TNumber;
72
144
  ambiguityNotes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
145
+ /**
146
+ * Optional intent tension (PRI-468, SPEC §16). Present only when:
147
+ * 1. The `intent_engineering` flag is on, AND
148
+ * 2. The Stage A prompt was built with the INTENT context injected, AND
149
+ * 3. The LLM chose to emit a tension.
150
+ *
151
+ * When absent (flag off or LLM omitted), Stage C passthrough must NOT
152
+ * synthesize one (SPEC §18 — additive only, never generates).
153
+ */
154
+ intentTension: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
155
+ source: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"none">, import("@sinclair/typebox").TLiteral<"action_drift">, import("@sinclair/typebox").TLiteral<"intent_suspect">, import("@sinclair/typebox").TLiteral<"healthy_tension">]>;
156
+ evidenceStrength: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"weak">, import("@sinclair/typebox").TLiteral<"moderate">, import("@sinclair/typebox").TLiteral<"strong">]>;
157
+ relatedIntentFields: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"why">, import("@sinclair/typebox").TLiteral<"desired_outcome">, import("@sinclair/typebox").TLiteral<"non_negotiables">, import("@sinclair/typebox").TLiteral<"stop_escalation">, import("@sinclair/typebox").TLiteral<"current_strategic_focus">]>>;
158
+ evidence: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
159
+ explanation: import("@sinclair/typebox").TString;
160
+ suggestedOwnerAction: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"confirm_drift">, import("@sinclair/typebox").TLiteral<"revise_intent">, import("@sinclair/typebox").TLiteral<"observe">, import("@sinclair/typebox").TLiteral<"dismiss">, import("@sinclair/typebox").TLiteral<"promote_to_principle">, import("@sinclair/typebox").TLiteral<"promote_to_rulehost">]>;
161
+ intentDocHash: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
162
+ }>>;
73
163
  }>;
74
164
  /** Typed output of the Root Cause stage (Stage A). */
75
165
  export type DiagRootCauseOutputV1 = Static<typeof DiagRootCauseOutputV1Schema>;
@@ -1 +1 @@
1
- {"version":3,"file":"diag-rootcause-output.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/diagnostician/diag-rootcause-output.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAKtD;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,2OAKlC,CAAC;AAEH,kEAAkE;AAClE,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAEvE;;;;GAIG;AACH,eAAO,MAAM,sBAAsB;;;;EAIjC,CAAC;AAEH,iDAAiD;AACjD,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAErE;;GAEG;AACH,eAAO,MAAM,2BAA2B;;;EAGtC,CAAC;AAEH,wEAAwE;AACxE,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAI/E;;;;;;;;GAQG;AACH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;EActC,CAAC;AAEH,sDAAsD;AACtD,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAM/E;;;;;;GAMG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;;;;OAMG;IACH,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;CACvI;AAED;;;;;;;;;;GAUG;AACH,qBAAa,6BAA8B,YAAW,sBAAsB;IAEpE,QAAQ,CACZ,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,MAAM,GACb,OAAO,CAAC;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CA2G9F"}
1
+ {"version":3,"file":"diag-rootcause-output.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/diagnostician/diag-rootcause-output.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAKtD;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,2OAKlC,CAAC;AAEH,kEAAkE;AAClE,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAEvE;;;;GAIG;AACH,eAAO,MAAM,sBAAsB;;;;EAIjC,CAAC;AAEH,iDAAiD;AACjD,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAErE;;GAEG;AACH,eAAO,MAAM,2BAA2B;;;EAGtC,CAAC;AAEH,wEAAwE;AACxE,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAI/E;;;;;;;GAOG;AACH,eAAO,MAAM,yBAAyB,2PAKpC,CAAC;AAEH,oFAAoF;AACpF,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE3E;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,sLAIjC,CAAC;AAEH,kDAAkD;AAClD,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAErE;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,+TAMnC,CAAC;AAEH,gHAAgH;AAChH,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAEzE;;;;;;GAMG;AACH,eAAO,MAAM,0BAA0B,iXAOrC,CAAC;AAEH,6HAA6H;AAC7H,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE7E;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;EAQG,CAAC;AAEpC;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAI/D;;;;;;;;GAQG;AACH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;IActC;;;;;;;;OAQG;;;;;;;;;;EAEH,CAAC;AAEH,sDAAsD;AACtD,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAM/E;;;;;;GAMG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;;;;OAMG;IACH,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;CACvI;AAED;;;;;;;;;;GAUG;AACH,qBAAa,6BAA8B,YAAW,sBAAsB;IAEpE,QAAQ,CACZ,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,MAAM,GACb,OAAO,CAAC;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CA6H9F"}
@@ -44,6 +44,86 @@ export const DiagRootCauseEvidenceSchema = Type.Object({
44
44
  sourceRef: Type.String({ minLength: 1 }),
45
45
  note: Type.String({ minLength: 1 }),
46
46
  });
47
+ // ── Intent Tension sub-schemas (PRI-468, SPEC §16) ──────────────────────────
48
+ /**
49
+ * Intent tension source enum (SPEC §16.5).
50
+ *
51
+ * - `none` — no tension detected
52
+ * - `action_drift` — Agent's action appears to drift from INTENT
53
+ * - `intent_suspect` — INTENT itself may be stale, ambiguous, or contradictory
54
+ * - `healthy_tension` — genuine strategic trade-off, no drift
55
+ */
56
+ export const IntentTensionSourceSchema = Type.Union([
57
+ Type.Literal('none'),
58
+ Type.Literal('action_drift'),
59
+ Type.Literal('intent_suspect'),
60
+ Type.Literal('healthy_tension'),
61
+ ]);
62
+ /**
63
+ * Evidence strength enum (SPEC §16.6).
64
+ *
65
+ * Coarse three-level scale; intentionally NOT a numeric confidence
66
+ * (SPEC §16.3 forbids `intentTension.confidence`).
67
+ */
68
+ export const EvidenceStrengthSchema = Type.Union([
69
+ Type.Literal('weak'),
70
+ Type.Literal('moderate'),
71
+ Type.Literal('strong'),
72
+ ]);
73
+ /**
74
+ * Related INTENT.md field enum (SPEC §16.7).
75
+ *
76
+ * Snake_case keys mirror the INTENT.md section identifiers used in the
77
+ * prompt block. The LLM picks one or more fields that the tension
78
+ * relates to.
79
+ */
80
+ export const IntentRelatedFieldSchema = Type.Union([
81
+ Type.Literal('why'),
82
+ Type.Literal('desired_outcome'),
83
+ Type.Literal('non_negotiables'),
84
+ Type.Literal('stop_escalation'),
85
+ Type.Literal('current_strategic_focus'),
86
+ ]);
87
+ /**
88
+ * Suggested Owner action enum (SPEC §21).
89
+ *
90
+ * PD surfaces tension; the Owner decides value. This field is a
91
+ * SUGGESTION — never auto-applied. The Owner must record a
92
+ * IntentDecisionRecord (PRI-470) before any follow-up action executes.
93
+ */
94
+ export const SuggestedOwnerActionSchema = Type.Union([
95
+ Type.Literal('confirm_drift'),
96
+ Type.Literal('revise_intent'),
97
+ Type.Literal('observe'),
98
+ Type.Literal('dismiss'),
99
+ Type.Literal('promote_to_principle'),
100
+ Type.Literal('promote_to_rulehost'),
101
+ ]);
102
+ /**
103
+ * IntentTension schema (SPEC §16.2).
104
+ *
105
+ * Optional object produced by Stage A when the Agent detects a tension
106
+ * between its action and the Owner-authored INTENT.md.
107
+ *
108
+ * CRITICAL (SPEC §16.3): this object MUST NOT carry a `confidence`
109
+ * field. The Stage A `confidence` (rootCause-level) is the only
110
+ * diagnostician confidence. To enforce this, `additionalProperties: false`
111
+ * is set so any extra property (including `confidence`) is rejected by
112
+ * `Value.Check`.
113
+ *
114
+ * Lineage (SPEC §16.2): `intentDocHash` is optional but, when present,
115
+ * MUST match the hash of the INTENT.md that was injected into the
116
+ * prompt. The Stage A runner enforces this invariant (PRI-468).
117
+ */
118
+ export const IntentTensionSchema = Type.Object({
119
+ source: IntentTensionSourceSchema,
120
+ evidenceStrength: EvidenceStrengthSchema,
121
+ relatedIntentFields: Type.Array(IntentRelatedFieldSchema),
122
+ evidence: Type.Array(Type.String(), { maxItems: 3 }),
123
+ explanation: Type.String({ minLength: 1 }),
124
+ suggestedOwnerAction: SuggestedOwnerActionSchema,
125
+ intentDocHash: Type.Optional(Type.String()),
126
+ }, { additionalProperties: false });
47
127
  // ── Main output schema ───────────────────────────────────────────────────────
48
128
  /**
49
129
  * TypeBox schema for the Root Cause stage (Stage A) output.
@@ -68,6 +148,16 @@ export const DiagRootCauseOutputV1Schema = Type.Object({
68
148
  evidence: Type.Array(DiagRootCauseEvidenceSchema),
69
149
  confidence: Type.Number({ minimum: 0, maximum: 1 }),
70
150
  ambiguityNotes: Type.Optional(Type.Array(Type.String())),
151
+ /**
152
+ * Optional intent tension (PRI-468, SPEC §16). Present only when:
153
+ * 1. The `intent_engineering` flag is on, AND
154
+ * 2. The Stage A prompt was built with the INTENT context injected, AND
155
+ * 3. The LLM chose to emit a tension.
156
+ *
157
+ * When absent (flag off or LLM omitted), Stage C passthrough must NOT
158
+ * synthesize one (SPEC §18 — additive only, never generates).
159
+ */
160
+ intentTension: Type.Optional(IntentTensionSchema),
71
161
  });
72
162
  // ── Validator ────────────────────────────────────────────────────────────────
73
163
  const VALID_ROOT_CAUSE_CATEGORIES = new Set(['People', 'Design', 'Assumption', 'Tooling']);
@@ -167,6 +257,24 @@ export class DefaultDiagRootCauseValidator {
167
257
  }
168
258
  }
169
259
  }
260
+ // ── Step 6b: intentTension element-level checks (PRI-468, SPEC §16) ─────
261
+ // Provide clearer error messages than the TypeBox fallback for the most
262
+ // critical SPEC §16.3 violation (forbidden `confidence` field) and for
263
+ // non-object intentTension. The TypeBox schema (with additionalProperties:
264
+ // false) catches these as well, but the explicit check produces a
265
+ // human-readable message that references the SPEC clause.
266
+ if (Object.hasOwn(record, 'intentTension')) {
267
+ const tension = record.intentTension;
268
+ if (tension === null || typeof tension !== 'object') {
269
+ errors.push('intentTension must be an object when present');
270
+ }
271
+ else {
272
+ const tensionRecord = tension;
273
+ if (Object.hasOwn(tensionRecord, 'confidence')) {
274
+ errors.push('intentTension.confidence is forbidden (SPEC §16.3); use rootCause-level confidence instead');
275
+ }
276
+ }
277
+ }
170
278
  // ── Step 7: TypeBox schema validation as fallback ───────────────────────
171
279
  if (!Value.Check(DiagRootCauseOutputV1Schema, output)) {
172
280
  const schemaErrors = [...Value.Errors(DiagRootCauseOutputV1Schema, output)];
@@ -1 +1 @@
1
- {"version":3,"file":"diag-rootcause-output.js","sourceRoot":"","sources":["../../../src/runtime-v2/diagnostician/diag-rootcause-output.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diag-rootcause-output.js","sourceRoot":"","sources":["../../../src/runtime-v2/diagnostician/diag-rootcause-output.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,IAAI,EAAe,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAEhD,gFAAgF;AAEhF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,CAAC,KAAK,CAAC;IAChD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;IACtB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;IACtB,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;IAC1B,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;CACxB,CAAC,CAAC;AAKH;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,CAAC,MAAM,CAAC;IAChD,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAC5C,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;IACxC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;CACzE,CAAC,CAAC;AAKH;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,IAAI,CAAC,MAAM,CAAC;IACrD,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;IACxC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;CACpC,CAAC,CAAC;AAKH,+EAA+E;AAE/E;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,IAAI,CAAC,KAAK,CAAC;IAClD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IACpB,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;IAC5B,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC;IAC9B,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC;CAChC,CAAC,CAAC;AAKH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,CAAC,KAAK,CAAC;IAC/C,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IACpB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;IACxB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;CACvB,CAAC,CAAC;AAKH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,CAAC,KAAK,CAAC;IACjD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;IACnB,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC;IAC/B,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC;IAC/B,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC;IAC/B,IAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC;CACxC,CAAC,CAAC;AAKH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,CAAC,KAAK,CAAC;IACnD,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;IAC7B,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;IAC7B,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;IACvB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;IACvB,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC;IACpC,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC;CACpC,CAAC,CAAC;AAKH;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC,MAAM,CAAC;IAC7C,MAAM,EAAE,yBAAyB;IACjC,gBAAgB,EAAE,sBAAsB;IACxC,mBAAmB,EAAE,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC;IACzD,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IACpD,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;IAC1C,oBAAoB,EAAE,0BAA0B;IAChD,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;CAC5C,EAAE,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC,CAAC;AAUpC,gFAAgF;AAEhF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,IAAI,CAAC,MAAM,CAAC;IACrD,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE;IACrB,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;IAC1C,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,4CAA4C,EAAE,CAAC;IAChG,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;IACtC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC;IAC/C,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC;QACrB,SAAS,EAAE,CAAC;QACZ,WAAW,EAAE,qGAAqG;KACnH,CAAC;IACF,iBAAiB,EAAE,uBAAuB;IAC1C,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,2BAA2B,CAAC;IACjD,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IACnD,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACxD;;;;;;;;OAQG;IACH,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC;CAClD,CAAC,CAAC;AAKH,gFAAgF;AAEhF,MAAM,2BAA2B,GAAG,IAAI,GAAG,CAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC;AAoBnG;;;;;;;;;;GAUG;AACH,MAAM,OAAO,6BAA6B;IACxC,qEAAqE;IACrE,KAAK,CAAC,QAAQ,CACZ,MAAe,EACf,MAAc;QAEd,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAa,EAAE,CAAC;QAE9B,2EAA2E;QAC3E,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YAClD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,yBAAyB,CAAC,EAAE,aAAa,EAAE,gBAAgB,EAAE,CAAC;QAChG,CAAC;QAED,gFAAgF;QAChF,MAAM,MAAM,GAAG,MAAiC,CAAC;QAEjD,2EAA2E;QAC3E,gFAAgF;QAChF,4EAA4E;QAC5E,yEAAyE;QACzE,gEAAgE;QAChE,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAClE,MAAM,qBAAqB,GAAG,iBAAiB,CAAC;YAChD,IACE,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ;mBAC9B,MAAM,CAAC,UAAU,CAAC,qBAAqB,CAAC;mBACxC,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAC/D,CAAC;gBACD,sEAAsE;gBACtE,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;gBACnC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;gBACvB,QAAQ,CAAC,IAAI,CAAC,6CAA6C,YAAY,oBAAoB,MAAM,aAAa,CAAC,CAAC;YAClH,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,6BAA6B,MAAM,SAAS,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACnF,CAAC;QACH,CAAC;QAED,2EAA2E;QAC3E,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YAC1B,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAC3C,CAAC;QAED,2EAA2E;QAC3E,IAAI,OAAO,MAAM,CAAC,iBAAiB,KAAK,QAAQ,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC/G,MAAM,CAAC,IAAI,CAAC,0EAA0E,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;QAC5H,CAAC;QAED,2EAA2E;QAC3E,IACE,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ;eACjC,OAAO,MAAM,CAAC,iBAAiB,KAAK,QAAQ;eAC5C,2BAA2B,CAAC,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAC5D,CAAC;YACD,MAAM,cAAc,GAAG,GAAG,MAAM,CAAC,iBAAiB,IAAI,CAAC;YACvD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;gBACjD,MAAM,CAAC,IAAI,CAAC,8BAA8B,cAAc,kCAAkC,MAAM,CAAC,iBAAiB,aAAa,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAC/M,CAAC;QACH,CAAC;QAED,2EAA2E;QAC3E,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;YACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACnD,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAwC,CAAC;gBAC3E,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;oBACxC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,qBAAqB,CAAC,CAAC;oBACnD,SAAS;gBACX,CAAC;gBACD,IAAI,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC;oBACpE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,kCAAkC,CAAC,CAAC;gBAClE,CAAC;gBACD,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;oBACzE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,wCAAwC,CAAC,CAAC;gBACxE,CAAC;gBACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;oBACvC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,iCAAiC,CAAC,CAAC;gBACjE,CAAC;qBAAM,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC3C,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,0CAA0C,CAAC,CAAC;gBAC1E,CAAC;YACH,CAAC;QACH,CAAC;QAED,2EAA2E;QAC3E,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAChD,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAwC,CAAC;gBACrE,IAAI,CAAC,EAAE,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;oBAClC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC;oBAChD,SAAS;gBACX,CAAC;gBACD,IAAI,OAAO,EAAE,CAAC,SAAS,KAAK,QAAQ,IAAI,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;oBACnE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,wCAAwC,CAAC,CAAC;gBACrE,CAAC;gBACD,IAAI,OAAO,EAAE,CAAC,IAAI,KAAK,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;oBACzD,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,mCAAmC,CAAC,CAAC;gBAChE,CAAC;YACH,CAAC;QACH,CAAC;QAED,2EAA2E;QAC3E,wEAAwE;QACxE,uEAAuE;QACvE,2EAA2E;QAC3E,kEAAkE;QAClE,0DAA0D;QAC1D,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,CAAC;YAC3C,MAAM,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC;YACrC,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;gBACpD,MAAM,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;YAC9D,CAAC;iBAAM,CAAC;gBACN,MAAM,aAAa,GAAG,OAAkC,CAAC;gBACzD,IAAI,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,YAAY,CAAC,EAAE,CAAC;oBAC/C,MAAM,CAAC,IAAI,CAAC,4FAA4F,CAAC,CAAC;gBAC5G,CAAC;YACH,CAAC;QACH,CAAC;QAED,2EAA2E;QAC3E,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,2BAA2B,EAAE,MAAM,CAAC,EAAE,CAAC;YACtD,MAAM,YAAY,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,2BAA2B,EAAE,MAAM,CAAC,CAAC,CAAC;YAC5E,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YACpE,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;QAC3B,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAC;QAC7E,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC;IAC/C,CAAC;CACF"}
@@ -39,6 +39,14 @@ export interface RootCausePromptBuilderOptions {
39
39
  outputLanguage?: OutputLanguage;
40
40
  /** T-E (PRI-371): Inject core axiom grounding as PHASE 3.5 (default: false) */
41
41
  coreGrounding?: boolean;
42
+ /**
43
+ * PRI-468: Inject intent tension check as PHASE 3.6 (default: false).
44
+ *
45
+ * When true, inserts the SPEC §17 text instructing the LLM to optionally
46
+ * produce an `intentTension` field. When false/undefined, the prompt is
47
+ * byte-identical to the pre-PRI-468 prompt (EP-03: no silent fallback).
48
+ */
49
+ intentGrounding?: boolean;
42
50
  }
43
51
  /**
44
52
  * Build the Stage A diagnostic protocol instruction (PHASE 1–3 + optional PHASE 3.5).
@@ -1 +1 @@
1
- {"version":3,"file":"rootcause-prompt-builder.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/diagnostician/rootcause-prompt-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAG/E,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG/D,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,oCAAoC,CAAC;AAS5C;;;;;;GAMG;AACH,MAAM,WAAW,6BAA6B;IAC5C,kEAAkE;IAClE,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,kFAAkF;IAClF,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,gDAAgD;IAChD,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,+EAA+E;IAC/E,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAID;;;;;;;;;;;;GAYG;AACH,wBAAgB,iCAAiC,CAC/C,IAAI,GAAE,6BAAkC,GACvC,MAAM,CAmER;AAID;;;;;;;;;;GAUG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;gBAErB,IAAI,GAAE,6BAAkC;IAKpD;;;;;;;;OAQG;IACH,yBAAyB,CAAC,IAAI,GAAE,6BAAkC,GAAG,MAAM;IAS3E;;;;;;;;;;;OAWG;IACH,WAAW,CACT,OAAO,EAAE,2BAA2B,EACpC,IAAI,GAAE,kBAAuB,GAC5B,iBAAiB;CAwErB"}
1
+ {"version":3,"file":"rootcause-prompt-builder.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/diagnostician/rootcause-prompt-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAG/E,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG/D,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,oCAAoC,CAAC;AA6D5C;;;;;;GAMG;AACH,MAAM,WAAW,6BAA6B;IAC5C,kEAAkE;IAClE,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,kFAAkF;IAClF,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,gDAAgD;IAChD,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,+EAA+E;IAC/E,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAID;;;;;;;;;;;;GAYG;AACH,wBAAgB,iCAAiC,CAC/C,IAAI,GAAE,6BAAkC,GACvC,MAAM,CA0ER;AAID;;;;;;;;;;GAUG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;gBAErB,IAAI,GAAE,6BAAkC;IAKpD;;;;;;;;OAQG;IACH,yBAAyB,CAAC,IAAI,GAAE,6BAAkC,GAAG,MAAM;IAU3E;;;;;;;;;;;OAWG;IACH,WAAW,CACT,OAAO,EAAE,2BAA2B,EACpC,IAAI,GAAE,kBAAuB,GAC5B,iBAAiB;CA6ErB"}
@@ -23,6 +23,57 @@ import { DiagRootCauseOutputV1Schema } from './diag-rootcause-output.js';
23
23
  import { buildLanguageDirective } from '../language-directive.js';
24
24
  import { buildCoreAxiomBlock } from '../core-principles/core-axiom-block.js';
25
25
  import { DEFAULT_PROMPT_BUILDER_LIMITS, summarizeConversationWindow, } from '../diagnostician-prompt-builder.js';
26
+ // ── Options ──────────────────────────────────────────────────────────────────
27
+ /**
28
+ * Build the PHASE 3.6 — Intent Tension Check block (PRI-468, SPEC §17).
29
+ *
30
+ * When `intentGrounding` is true, returns the SPEC §17 verbatim text that
31
+ * instructs the LLM to optionally produce an `intentTension` field.
32
+ *
33
+ * When false/undefined, returns `''` (empty string) so that
34
+ * `${phase35Block}${phase36Block}CRITICAL:` is byte-identical to
35
+ * `${phase35Block}CRITICAL:` — preserving the pre-PRI-468 prompt output
36
+ * (EP-03: no silent fallback).
37
+ *
38
+ * This is a pure function — no I/O, no side effects, never throws.
39
+ */
40
+ function buildIntentTensionBlock(intentGrounding) {
41
+ if (!intentGrounding) {
42
+ return '';
43
+ }
44
+ // SPEC §17 — verbatim text. The LLM is told:
45
+ // - INTENT.md is optional reference, not a hard rule system
46
+ // - source='none' / evidenceStrength='weak' when evidence is insufficient
47
+ // - intent_suspect only for contradiction, vagueness, outdatedness, or
48
+ // repeated challenge — not for strategic preference
49
+ // - intentTension is an optional additive field
50
+ // - PD surfaces tension; Owner decides value
51
+ return `
52
+ PHASE 3.6 — Intent Tension Check:
53
+ You may be given an optional Owner-owned INTENT.md.
54
+
55
+ Use it only as a stable reference for judging whether the pain indicates tension between:
56
+ - the Owner's stated long-term intent
57
+ - the current focus
58
+ - the Agent's actions
59
+ - the Owner's correction
60
+
61
+ Do not assume every failure is intent drift.
62
+
63
+ Do not treat INTENT.md as a hard rule system.
64
+ Hard runtime boundaries belong to RuleHost.
65
+
66
+ If evidence is insufficient, use source='none' or evidenceStrength='weak'.
67
+
68
+ Only mark intent_suspect when INTENT.md is contradictory, vague, outdated, or repeatedly challenged by confirmed Pain evidence.
69
+ Do not mark intent_suspect merely because you prefer another strategy.
70
+
71
+ Return intentTension as an optional additive field.
72
+
73
+ PD surfaces tension.
74
+ Owner decides value.
75
+ `;
76
+ }
26
77
  // ── Instruction builder ──────────────────────────────────────────────────────
27
78
  /**
28
79
  * Build the Stage A diagnostic protocol instruction (PHASE 1–3 + optional PHASE 3.5).
@@ -40,7 +91,7 @@ import { DEFAULT_PROMPT_BUILDER_LIMITS, summarizeConversationWindow, } from '../
40
91
  export function buildRootCauseProtocolInstruction(opts = {}) {
41
92
  const adapter = opts.adapter ?? new DefaultSchemaPromptAdapter();
42
93
  const schema = opts.schema ?? DiagRootCauseOutputV1Schema;
43
- const { outputLanguage, coreGrounding } = opts;
94
+ const { outputLanguage, coreGrounding, intentGrounding } = opts;
44
95
  const example = adapter.generateExample(schema);
45
96
  const constraints = adapter.generateConstraints(schema);
46
97
  const languageDirective = buildLanguageDirective(outputLanguage);
@@ -55,6 +106,12 @@ export function buildRootCauseProtocolInstruction(opts = {}) {
55
106
  outputLanguage,
56
107
  fallback: '\n',
57
108
  });
109
+ // PRI-468: When intentGrounding is true, insert PHASE 3.6.
110
+ // When false or undefined, output is byte-identical to the pre-PRI-468
111
+ // prompt (EP-03: no silent fallback). The fallback is '' (empty string)
112
+ // so that `${phase35Block}${phase36Block}CRITICAL:` produces the same
113
+ // string as `${phase35Block}CRITICAL:` when intentGrounding is off.
114
+ const phase36Block = buildIntentTensionBlock(intentGrounding);
58
115
  return `You are a root cause analysis expert. Follow this protocol:
59
116
 
60
117
  PHASE 1 — Evidence Review:
@@ -82,7 +139,7 @@ Classify into ONE: People | Design | Assumption | Tooling
82
139
  - Design: architecture defects, missing gates, process gaps
83
140
  - Assumption: wrong assumptions about env/versions/deps
84
141
  - Tooling: tool misconfiguration, API changes
85
- ${phase35Block}CRITICAL: Your ENTIRE response must be ONLY the JSON object below. Do NOT include any text before or after the JSON. Do NOT wrap the JSON in markdown code fences. Do NOT add explanatory prose. Output the raw JSON object and nothing else.
142
+ ${phase35Block}${phase36Block}CRITICAL: Your ENTIRE response must be ONLY the JSON object below. Do NOT include any text before or after the JSON. Do NOT wrap the JSON in markdown code fences. Do NOT add explanatory prose. Output the raw JSON object and nothing else.
86
143
 
87
144
  COMPLETE EXAMPLE OUTPUT (follow this exact structure):
88
145
  ${example}
@@ -135,6 +192,7 @@ export class RootCausePromptBuilder {
135
192
  schema: opts.schema ?? this.schema,
136
193
  outputLanguage: opts.outputLanguage,
137
194
  coreGrounding: opts.coreGrounding,
195
+ intentGrounding: opts.intentGrounding,
138
196
  });
139
197
  }
140
198
  /**
@@ -151,7 +209,7 @@ export class RootCausePromptBuilder {
151
209
  */
152
210
  buildPrompt(payload, opts = {}) {
153
211
  const limits = opts.limits ?? DEFAULT_PROMPT_BUILDER_LIMITS;
154
- const { outputLanguage, coreGrounding } = opts;
212
+ const { outputLanguage, coreGrounding, intentGrounding, intentDoc } = opts;
155
213
  const truncationWarnings = [];
156
214
  // DPB-04: Apply truncation to conversationWindow to prevent token overflow
157
215
  const rawWindow = summarizeConversationWindow(payload.conversationWindow);
@@ -177,8 +235,12 @@ export class RootCausePromptBuilder {
177
235
  const diagnosticInstruction = this.buildRootCauseInstruction({
178
236
  outputLanguage,
179
237
  coreGrounding,
238
+ intentGrounding,
180
239
  });
181
240
  // DPB-04: Explicit top-level fields at the prompt level
241
+ // PRI-468: Only include `intentDoc` when intentGrounding is on AND a doc
242
+ // was successfully read. When absent, the prompt is byte-identical to
243
+ // the pre-PRI-468 prompt (EP-03: no silent fallback).
182
244
  const promptInput = {
183
245
  taskId: payload.taskId,
184
246
  contextHash: payload.contextHash,
@@ -188,6 +250,7 @@ export class RootCausePromptBuilder {
188
250
  context: compactContext,
189
251
  diagnosticInstruction,
190
252
  ...(truncationWarnings.length > 0 ? { truncationWarnings } : {}),
253
+ ...(intentGrounding && intentDoc ? { intentDoc } : {}),
191
254
  };
192
255
  // DPB-02: Output is ONLY JSON — no markdown, no file ops, no tool calls
193
256
  let message = JSON.stringify(promptInput);
@@ -1 +1 @@
1
- {"version":3,"file":"rootcause-prompt-builder.js","sourceRoot":"","sources":["../../../src/runtime-v2/diagnostician/rootcause-prompt-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAIH,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAGzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAK7E,OAAO,EACL,6BAA6B,EAC7B,2BAA2B,GAC5B,MAAM,oCAAoC,CAAC;AAuB5C,gFAAgF;AAEhF;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,iCAAiC,CAC/C,OAAsC,EAAE;IAExC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,0BAA0B,EAAE,CAAC;IACjE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,2BAA2B,CAAC;IAC1D,MAAM,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;IAE/C,MAAM,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IAChD,MAAM,WAAW,GAAG,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACxD,MAAM,iBAAiB,GAAG,sBAAsB,CAAC,cAAc,CAAC,CAAC;IAEjE,+DAA+D;IAC/D,oEAAoE;IACpE,+BAA+B;IAC/B,MAAM,YAAY,GAAG,mBAAmB,CAAC;QACvC,aAAa;QACb,YAAY,EAAE,mCAAmC;QACjD,WAAW,EACT,mFAAmF;YACnF,6DAA6D;QAC/D,cAAc;QACd,QAAQ,EAAE,IAAI;KACf,CAAC,CAAC;IAEH,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2BP,YAAY;;;EAGZ,OAAO;;;;;;;;;;;;;;EAcP,WAAW,GAAG,iBAAiB,EAAE,CAAC;AACpC,CAAC;AAED,gFAAgF;AAEhF;;;;;;;;;;GAUG;AACH,MAAM,OAAO,sBAAsB;IAChB,OAAO,CAAsB;IAC7B,MAAM,CAAU;IAEjC,YAAY,OAAsC,EAAE;QAClD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,0BAA0B,EAAE,CAAC;QAChE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,2BAA2B,CAAC;IAC3D,CAAC;IAED;;;;;;;;OAQG;IACH,yBAAyB,CAAC,OAAsC,EAAE;QAChE,OAAO,iCAAiC,CAAC;YACvC,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO;YACrC,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM;YAClC,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,aAAa,EAAE,IAAI,CAAC,aAAa;SAClC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;OAWG;IACH,WAAW,CACT,OAAoC,EACpC,OAA2B,EAAE;QAE7B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,6BAA6B,CAAC;QAC5D,MAAM,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;QAE/C,MAAM,kBAAkB,GAAa,EAAE,CAAC;QAExC,2EAA2E;QAC3E,MAAM,SAAS,GAAG,2BAA2B,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QAC1E,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,sBAAsB,CAAC,CAAC;QACxE,IAAI,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,sBAAsB,EAAE,CAAC;YACrD,kBAAkB,CAAC,IAAI,CACrB,qCAAqC,SAAS,CAAC,MAAM,OAAO,MAAM,CAAC,sBAAsB,UAAU,CACpG,CAAC;QACJ,CAAC;QAED,iCAAiC;QACjC,MAAM,kBAAkB,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACrD,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC;gBAC/D,OAAO;oBACL,GAAG,KAAK;oBACR,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,iBAAiB,CAAC,GAAG,gBAAgB;iBACvE,CAAC;YACJ,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,4EAA4E;QAC5E,MAAM,cAAc,GAAgC;YAClD,GAAG,OAAO;YACV,kBAAkB;SACnB,CAAC;QAEF,MAAM,qBAAqB,GAAG,IAAI,CAAC,yBAAyB,CAAC;YAC3D,cAAc;YACd,aAAa;SACd,CAAC,CAAC;QAEH,wDAAwD;QACxD,MAAM,WAAW,GAAgB;YAC/B,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,eAAe,EAAE,OAAO,CAAC,eAAe;YACxC,kBAAkB;YAClB,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,OAAO,EAAE,cAAc;YACvB,qBAAqB;YACrB,GAAG,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACjE,CAAC;QAEF,wEAAwE;QACxE,IAAI,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAE1C,0EAA0E;QAC1E,IAAI,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;YAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,eAAe,CAAC;YACxD,MAAM,WAAW,GAAG,qBAAqB,CAAC;YAE1C,gEAAgE;YAChE,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,MAAM,GAAG,OAAO,GAAG,GAAG,CAAC,CAAC;YACrE,MAAM,oBAAoB,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC;gBAC3D,qFAAqF,CAAC;YAExF,WAAW,CAAC,qBAAqB,GAAG,oBAAoB,CAAC;YACzD,WAAW,CAAC,kBAAkB,GAAG;gBAC/B,GAAG,kBAAkB;gBACrB,gDAAgD,OAAO,CAAC,MAAM,MAAM,MAAM,CAAC,eAAe,GAAG;aAC9F,CAAC;YACF,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACxC,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;IAClC,CAAC;CACF"}
1
+ {"version":3,"file":"rootcause-prompt-builder.js","sourceRoot":"","sources":["../../../src/runtime-v2/diagnostician/rootcause-prompt-builder.ts"],"names":[],"mappings":"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"}
@@ -53,6 +53,29 @@ export declare const DiagnosticianOutputV1Schema: import("@sinclair/typebox").TO
53
53
  }>>;
54
54
  confidence: import("@sinclair/typebox").TNumber;
55
55
  ambiguityNotes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
56
+ /**
57
+ * PRI-468: Optional intent tension passed through from Stage A.
58
+ *
59
+ * Present only when:
60
+ * 1. The `intent_engineering` flag is on, AND
61
+ * 2. Stage A emitted an intentTension, AND
62
+ * 3. Stage C additive passthrough copied it here.
63
+ *
64
+ * Stage C MUST NOT generate intentTension when Stage A omitted it
65
+ * (SPEC §18.2 — additive only, never generates).
66
+ *
67
+ * This field is additive — existing consumers that don't know about
68
+ * intentTension will ignore it (SPEC §18.3 — don't break downstream).
69
+ */
70
+ intentTension: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
71
+ source: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"none">, import("@sinclair/typebox").TLiteral<"action_drift">, import("@sinclair/typebox").TLiteral<"intent_suspect">, import("@sinclair/typebox").TLiteral<"healthy_tension">]>;
72
+ evidenceStrength: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"weak">, import("@sinclair/typebox").TLiteral<"moderate">, import("@sinclair/typebox").TLiteral<"strong">]>;
73
+ relatedIntentFields: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"why">, import("@sinclair/typebox").TLiteral<"desired_outcome">, import("@sinclair/typebox").TLiteral<"non_negotiables">, import("@sinclair/typebox").TLiteral<"stop_escalation">, import("@sinclair/typebox").TLiteral<"current_strategic_focus">]>>;
74
+ evidence: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
75
+ explanation: import("@sinclair/typebox").TString;
76
+ suggestedOwnerAction: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"confirm_drift">, import("@sinclair/typebox").TLiteral<"revise_intent">, import("@sinclair/typebox").TLiteral<"observe">, import("@sinclair/typebox").TLiteral<"dismiss">, import("@sinclair/typebox").TLiteral<"promote_to_principle">, import("@sinclair/typebox").TLiteral<"promote_to_rulehost">]>;
77
+ intentDocHash: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
78
+ }>>;
56
79
  }>;
57
80
  export type DiagnosticianOutputV1 = Static<typeof DiagnosticianOutputV1Schema>;
58
81
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostician-output.d.ts","sourceRoot":"","sources":["../../src/runtime-v2/diagnostician-output.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AAIxE,eAAO,MAAM,oCAAoC;;;;EAI/C,CAAC;AAEH,MAAM,MAAM,8BAA8B,GAAG,MAAM,CAAC,OAAO,oCAAoC,CAAC,CAAC;AAEjG,eAAO,MAAM,2BAA2B;;;EAGtC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAE/E,eAAO,MAAM,wBAAwB,8RAMnC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAEzE,eAAO,MAAM,iCAAiC;;;;;;EAM5C,CAAC;AAEH,MAAM,MAAM,2BAA2B,GAAG,MAAM,CAAC,OAAO,iCAAiC,CAAC,CAAC;AAE3F,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;EAUtC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAI/E;;;;;GAKG;AACH,eAAO,MAAM,kCAAkC;;;;;;EAM7C,CAAC;AAEH,gHAAgH;AAChH,MAAM,WAAW,4BAA4B;IAC3C,6EAA6E;IAC7E,OAAO,EAAE,MAAM,CAAC;IAChB,gCAAgC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,OAAO,EAAE,2BAA2B,CAAC;IACrC,8CAA8C;IAC9C,eAAe,EAAE,yBAAyB,CAAC;IAC3C,mDAAmD;IACnD,SAAS,EAAE,MAAM,CAAC;CACnB"}
1
+ {"version":3,"file":"diagnostician-output.d.ts","sourceRoot":"","sources":["../../src/runtime-v2/diagnostician-output.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AAKxE,eAAO,MAAM,oCAAoC;;;;EAI/C,CAAC;AAEH,MAAM,MAAM,8BAA8B,GAAG,MAAM,CAAC,OAAO,oCAAoC,CAAC,CAAC;AAEjG,eAAO,MAAM,2BAA2B;;;EAGtC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAE/E,eAAO,MAAM,wBAAwB,8RAMnC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAEzE,eAAO,MAAM,iCAAiC;;;;;;EAM5C,CAAC;AAEH,MAAM,MAAM,2BAA2B,GAAG,MAAM,CAAC,OAAO,iCAAiC,CAAC,CAAC;AAE3F,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;IAUtC;;;;;;;;;;;;;OAaG;;;;;;;;;;EAEH,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAI/E;;;;;GAKG;AACH,eAAO,MAAM,kCAAkC;;;;;;EAM7C,CAAC;AAEH,gHAAgH;AAChH,MAAM,WAAW,4BAA4B;IAC3C,6EAA6E;IAC7E,OAAO,EAAE,MAAM,CAAC;IAChB,gCAAgC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,OAAO,EAAE,2BAA2B,CAAC;IACrC,8CAA8C;IAC9C,eAAe,EAAE,yBAAyB,CAAC;IAC3C,mDAAmD;IACnD,SAAS,EAAE,MAAM,CAAC;CACnB"}
@@ -8,6 +8,7 @@
8
8
  * All runtime adapters producing diagnostician output must conform to this schema.
9
9
  */
10
10
  import { Type } from '@sinclair/typebox';
11
+ import { IntentTensionSchema } from './diagnostician/diag-rootcause-output.js';
11
12
  // ── Diagnostician Output V1 ──
12
13
  export const DiagnosticianViolatedPrincipleSchema = Type.Object({
13
14
  principleId: Type.Optional(Type.String({ minLength: 1 })),
@@ -42,6 +43,21 @@ export const DiagnosticianOutputV1Schema = Type.Object({
42
43
  recommendations: Type.Array(DiagnosticianRecommendationSchema),
43
44
  confidence: Type.Number({ minimum: 0, maximum: 1, description: 'A number between 0.0 and 1.0 (NOT a string, NOT a percentage)' }),
44
45
  ambiguityNotes: Type.Optional(Type.Array(Type.String())),
46
+ /**
47
+ * PRI-468: Optional intent tension passed through from Stage A.
48
+ *
49
+ * Present only when:
50
+ * 1. The `intent_engineering` flag is on, AND
51
+ * 2. Stage A emitted an intentTension, AND
52
+ * 3. Stage C additive passthrough copied it here.
53
+ *
54
+ * Stage C MUST NOT generate intentTension when Stage A omitted it
55
+ * (SPEC §18.2 — additive only, never generates).
56
+ *
57
+ * This field is additive — existing consumers that don't know about
58
+ * intentTension will ignore it (SPEC §18.3 — don't break downstream).
59
+ */
60
+ intentTension: Type.Optional(IntentTensionSchema),
45
61
  });
46
62
  // ── Diagnostician Invocation Input ──
47
63
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostician-output.js","sourceRoot":"","sources":["../../src/runtime-v2/diagnostician-output.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diagnostician-output.js","sourceRoot":"","sources":["../../src/runtime-v2/diagnostician-output.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,22 @@ export interface BuildPromptOptions {
21
21
  outputLanguage?: OutputLanguage;
22
22
  /** T-E (PRI-371): Inject core axiom grounding as PHASE 3.5 (default: false) */
23
23
  coreGrounding?: boolean;
24
+ /** PRI-468: Inject intent tension check as PHASE 3.6 (default: false) */
25
+ intentGrounding?: boolean;
26
+ /**
27
+ * PRI-468: INTENT.md reference to include in the prompt payload.
28
+ *
29
+ * When provided (along with `intentGrounding: true`), the `raw` content
30
+ * is included in the prompt as `intentDoc.raw` so the LLM can reference
31
+ * it. The `contentHash` is the lineage link for `intentTension.intentDocHash`.
32
+ *
33
+ * When absent, the prompt is byte-identical to the pre-PRI-468 prompt.
34
+ */
35
+ intentDoc?: {
36
+ readonly raw: string;
37
+ readonly contentHash: string;
38
+ readonly path: string;
39
+ };
24
40
  }
25
41
  /**
26
42
  * PromptInput — the JSON message sent to openclaw agent via --message flag.
@@ -57,6 +73,22 @@ export interface PromptInput {
57
73
  diagnosticInstruction: string;
58
74
  /** Warnings added during truncation (e.g., conversationWindow entries removed) */
59
75
  truncationWarnings?: string[];
76
+ /**
77
+ * PRI-468: Optional INTENT.md reference for Stage A intent tension check.
78
+ *
79
+ * Present only when `intent_engineering` flag is on AND INTENT.md was
80
+ * successfully read. The `raw` content is included verbatim (unescaped)
81
+ * so the LLM can use it as a stable reference for judging intent tension.
82
+ * The `contentHash` is the lineage link for `intentTension.intentDocHash`.
83
+ *
84
+ * When absent (flag off or read failed), the prompt is byte-identical to
85
+ * the pre-PRI-468 prompt (EP-03: no silent fallback).
86
+ */
87
+ intentDoc?: {
88
+ readonly raw: string;
89
+ readonly contentHash: string;
90
+ readonly path: string;
91
+ };
60
92
  }
61
93
  /** Size limits for buildPrompt() to prevent token overflow. */
62
94
  export interface PromptBuilderLimits {
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostician-prompt-builder.d.ts","sourceRoot":"","sources":["../../src/runtime-v2/diagnostician-prompt-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EACV,2BAA2B,EAC3B,iBAAiB,EACjB,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,wFAAwF;AACxF,MAAM,WAAW,kBAAkB;IACjC,qFAAqF;IACrF,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,gDAAgD;IAChD,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,+EAA+E;IAC/E,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,WAAW;IAC1B,2BAA2B;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,WAAW,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,eAAe,EAAE,eAAe,CAAC;IACjC;;;;OAIG;IACH,kBAAkB,EAAE,iBAAiB,EAAE,CAAC;IACxC,0CAA0C;IAC1C,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,kEAAkE;IAClE,OAAO,EAAE,2BAA2B,CAAC;IACrC;;;;;OAKG;IACH,qBAAqB,EAAE,MAAM,CAAC;IAC9B,kFAAkF;IAClF,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC/B;AAED,+DAA+D;AAC/D,MAAM,WAAW,mBAAmB;IAClC,2DAA2D;IAC3D,sBAAsB,EAAE,MAAM,CAAC;IAC/B,wDAAwD;IACxD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,wDAAwD;IACxD,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,6BAA6B,EAAE,mBAIlC,CAAC;AAEX;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,iFAAiF;IACjF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,yDAAyD;IACzD,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;CACnC;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,iBAAiB,EAAE,GAC3B,iBAAiB,EAAE,CAErB"}
1
+ {"version":3,"file":"diagnostician-prompt-builder.d.ts","sourceRoot":"","sources":["../../src/runtime-v2/diagnostician-prompt-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EACV,2BAA2B,EAC3B,iBAAiB,EACjB,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,wFAAwF;AACxF,MAAM,WAAW,kBAAkB;IACjC,qFAAqF;IACrF,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,gDAAgD;IAChD,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,+EAA+E;IAC/E,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,yEAAyE;IACzE,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE;QACV,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,WAAW;IAC1B,2BAA2B;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,WAAW,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,eAAe,EAAE,eAAe,CAAC;IACjC;;;;OAIG;IACH,kBAAkB,EAAE,iBAAiB,EAAE,CAAC;IACxC,0CAA0C;IAC1C,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,kEAAkE;IAClE,OAAO,EAAE,2BAA2B,CAAC;IACrC;;;;;OAKG;IACH,qBAAqB,EAAE,MAAM,CAAC;IAC9B,kFAAkF;IAClF,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B;;;;;;;;;;OAUG;IACH,SAAS,CAAC,EAAE;QACV,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAED,+DAA+D;AAC/D,MAAM,WAAW,mBAAmB;IAClC,2DAA2D;IAC3D,sBAAsB,EAAE,MAAM,CAAC;IAC/B,wDAAwD;IACxD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,wDAAwD;IACxD,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,6BAA6B,EAAE,mBAIlC,CAAC;AAEX;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,iFAAiF;IACjF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,yDAAyD;IACzD,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;CACnC;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,iBAAiB,EAAE,GAC3B,iBAAiB,EAAE,CAErB"}
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostician-prompt-builder.js","sourceRoot":"","sources":["../../src/runtime-v2/diagnostician-prompt-builder.ts"],"names":[],"mappings":"AA6EA,MAAM,CAAC,MAAM,6BAA6B,GAAwB;IAChE,sBAAsB,EAAE,EAAE;IAC1B,iBAAiB,EAAE,IAAI;IACvB,eAAe,EAAE,MAAM;CACf,CAAC;AAeX;;;;;;GAMG;AACH,MAAM,UAAU,2BAA2B,CACzC,OAA4B;IAE5B,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"diagnostician-prompt-builder.js","sourceRoot":"","sources":["../../src/runtime-v2/diagnostician-prompt-builder.ts"],"names":[],"mappings":"AA6GA,MAAM,CAAC,MAAM,6BAA6B,GAAwB;IAChE,sBAAsB,EAAE,EAAE;IAC1B,iBAAiB,EAAE,IAAI;IACvB,eAAe,EAAE,MAAM;CACf,CAAC;AAeX;;;;;;GAMG;AACH,MAAM,UAAU,2BAA2B,CACzC,OAA4B;IAE5B,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -90,6 +90,8 @@ export { DiagRootCauseRunner } from './internalization/diag-rootcause-runner.js'
90
90
  export { DiagDistillerRunner } from './internalization/diag-distiller-runner.js';
91
91
  export { DiagRouterRunner } from './internalization/diag-router-runner.js';
92
92
  export { DefaultDiagRootCauseValidator } from './diagnostician/diag-rootcause-output.js';
93
+ export { IntentTensionSchema, IntentTensionSourceSchema, EvidenceStrengthSchema, IntentRelatedFieldSchema, SuggestedOwnerActionSchema, } from './diagnostician/diag-rootcause-output.js';
94
+ export type { IntentTension, IntentTensionSource, EvidenceStrength, IntentRelatedField, SuggestedOwnerAction, } from './diagnostician/diag-rootcause-output.js';
93
95
  export { DefaultDiagDistillerValidator } from './diagnostician/diag-distiller-output.js';
94
96
  export { DisabledDiagnosticianRunner } from './pain-signal-runtime-factory.js';
95
97
  export { TestDoubleRuntimeAdapter } from './adapter/index.js';
@@ -324,6 +326,6 @@ export type { PainDiagnosticSource, PainDiagnosticGateReason, PainDiagnosticGate
324
326
  export { DEFAULT_COOLDOWN_MS, DEFAULT_PAIN_TRIGGER, DEFAULT_HIGH_SEVERITY, DEFAULT_REPEATED_FAILURE, DEFAULT_SEMANTIC_PAIN_FLOOR, normalizedSource, buildEpisodeKey, evaluatePainDiagnosticGateDecision, isCooldownActive, } from './pain-gate/index.js';
325
327
  export type { DetectionResult, PainMatchResult, PainMatcher, TextHasher, ProtocolTokenGate, DetectionFunnelConfig, } from './detection/index.js';
326
328
  export { SimpleLRU, DetectionFunnelCore } from './detection/index.js';
327
- export { INTENT_MAX_BYTES, INTENT_DOC_TEMPLATE, INTENT_INJECT_MAX_CHARS, INTENT_TRUNCATION_MARKER, parseIntentDocSections, computeIntentContentHash, validateIntentDocSections, buildIntentFrictionBlock, } from './intent/index.js';
328
- export type { IntentDocSections, IntentDocWarning, IntentDocWarningCode, IntentFrictionBlockInput, } from './intent/index.js';
329
+ export { INTENT_MAX_BYTES, INTENT_DOC_TEMPLATE, INTENT_INJECT_MAX_CHARS, INTENT_TRUNCATION_MARKER, parseIntentDocSections, computeIntentContentHash, validateIntentDocSections, buildIntentFrictionBlock, NullIntentDocReader, } from './intent/index.js';
330
+ export type { IntentDocSections, IntentDocWarning, IntentDocWarningCode, IntentFrictionBlockInput, IntentDocReader, IntentDocReadResult, IntentDocReference, IntentDocReadReason, } from './intent/index.js';
329
331
  //# sourceMappingURL=index.d.ts.map