@lax-wp/editor 0.4.13 → 0.4.15-beta.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 (160) hide show
  1. package/README.md +25 -0
  2. package/dist/api/audit.d.ts +79 -0
  3. package/dist/api/derivedRulebook.d.ts +470 -0
  4. package/dist/api/documentVersions.d.ts +519 -0
  5. package/dist/api/effectiveRules.d.ts +372 -0
  6. package/dist/api/methodology.d.ts +62 -0
  7. package/dist/api/playbook.d.ts +604 -0
  8. package/dist/api/promotions.d.ts +1432 -0
  9. package/dist/api/r1.d.ts +1097 -0
  10. package/dist/api/r1.fixtures.d.ts +111 -0
  11. package/dist/api/redlineJobs.d.ts +377 -0
  12. package/dist/api/redlineStream.d.ts +2979 -0
  13. package/dist/api/redlines.d.ts +504 -0
  14. package/dist/api/regsync.d.ts +2355 -0
  15. package/dist/api/ruleAuthoring.d.ts +305 -0
  16. package/dist/api/ruleBuilder.d.ts +1009 -0
  17. package/dist/api/ruleOverrides.d.ts +31 -0
  18. package/dist/api/ruleStats.d.ts +84 -0
  19. package/dist/api/rulesCatalog.d.ts +234 -0
  20. package/dist/api/versions.d.ts +76 -0
  21. package/dist/api/workspace.d.ts +41 -0
  22. package/dist/components/EditorSidebar.d.ts +4 -1
  23. package/dist/components/audit/AuditView.d.ts +8 -0
  24. package/dist/components/capturededits/AddAsRuleModal.d.ts +8 -0
  25. package/dist/components/capturededits/CapturedEditCard.d.ts +15 -0
  26. package/dist/components/capturededits/CapturedEditsTray.d.ts +4 -0
  27. package/dist/components/capturededits/capturedEditIntent.d.ts +23 -0
  28. package/dist/components/common/EscDropdown.d.ts +2 -0
  29. package/dist/components/compliance/MethodologyPanel.d.ts +14 -0
  30. package/dist/components/compliance/RegSyncPanel.d.ts +18 -0
  31. package/dist/components/compliance/index.d.ts +8 -0
  32. package/dist/components/compliance/primitives.d.ts +41 -0
  33. package/dist/components/documents/DocumentVersionHistory.d.ts +12 -0
  34. package/dist/components/documents/documentDiff.d.ts +68 -0
  35. package/dist/components/documents/index.d.ts +4 -0
  36. package/dist/components/flowdown/FlowdownPanel.d.ts +28 -0
  37. package/dist/components/flowdown/FlowdownRowCard.d.ts +27 -0
  38. package/dist/components/flowdown/flowdownModel.d.ts +150 -0
  39. package/dist/components/history/PlaybookVersionHistory.d.ts +10 -0
  40. package/dist/components/history/versionDiff.d.ts +14 -0
  41. package/dist/components/playbook/AllPlaybooksView.d.ts +41 -0
  42. package/dist/components/playbook/DerivedRulebookView.d.ts +9 -0
  43. package/dist/components/playbook/DraftedRulePreview.d.ts +17 -0
  44. package/dist/components/playbook/EffectiveRulesView.d.ts +11 -0
  45. package/dist/components/playbook/NewRuleDrawer.d.ts +11 -0
  46. package/dist/components/playbook/PlaybookCard.d.ts +13 -0
  47. package/dist/components/playbook/PlaybookPage.d.ts +29 -0
  48. package/dist/components/playbook/PlaybookPanel.d.ts +73 -0
  49. package/dist/components/playbook/PromotionSuggestions.d.ts +1 -0
  50. package/dist/components/playbook/ReprioritizeDialog.d.ts +16 -0
  51. package/dist/components/playbook/RuleDetail.d.ts +27 -0
  52. package/dist/components/playbook/RuleEditorFields.d.ts +42 -0
  53. package/dist/components/playbook/RuleEditorModal.d.ts +27 -0
  54. package/dist/components/playbook/RulePerformancePanel.d.ts +4 -0
  55. package/dist/components/playbook/RuleRow.d.ts +26 -0
  56. package/dist/components/playbook/ThisDocumentView.d.ts +45 -0
  57. package/dist/components/playbook/ViewTabs.d.ts +8 -0
  58. package/dist/components/playbook/index.d.ts +14 -0
  59. package/dist/components/playbook/predicateSummary.d.ts +10 -0
  60. package/dist/components/playbook/primitives.d.ts +82 -0
  61. package/dist/components/playbook/useFocusTrap.d.ts +6 -0
  62. package/dist/components/playbook/usePlaybookData.d.ts +161 -0
  63. package/dist/components/playbook/usePlaybookLabel.d.ts +18 -0
  64. package/dist/components/r1/ApprovalPanel.d.ts +10 -0
  65. package/dist/components/r1/CandidateRuleCard.d.ts +8 -0
  66. package/dist/components/r1/ExecSummaryPanel.d.ts +23 -0
  67. package/dist/components/r1/PrimeUploadPanel.d.ts +8 -0
  68. package/dist/components/r1/ReviewStartControls.d.ts +24 -0
  69. package/dist/components/r1/ReviewSummaryTab.d.ts +38 -0
  70. package/dist/components/r1/index.d.ts +13 -0
  71. package/dist/components/r1/primitives.d.ts +59 -0
  72. package/dist/components/redline/AiReviewPanel.d.ts +194 -0
  73. package/dist/components/redline/RedlineHoverCard.d.ts +13 -0
  74. package/dist/components/redline/RedlineItem.d.ts +12 -0
  75. package/dist/components/redline/ReviewCard.d.ts +49 -0
  76. package/dist/components/redline/index.d.ts +6 -0
  77. package/dist/components/redline/reviewItems.d.ts +49 -0
  78. package/dist/components/redline/reviewPrefs.d.ts +18 -0
  79. package/dist/components/redline/useRunScopedCards.d.ts +16 -0
  80. package/dist/components/rulebuilder/AuthorForms.d.ts +28 -0
  81. package/dist/components/rulebuilder/CandidateQueue.d.ts +21 -0
  82. package/dist/components/rulebuilder/DraftPane.d.ts +12 -0
  83. package/dist/components/rulebuilder/RuleBuilderPanel.d.ts +6 -0
  84. package/dist/components/rulebuilder/RuleCard.d.ts +16 -0
  85. package/dist/components/rulebuilder/TestBench.d.ts +10 -0
  86. package/dist/components/rulebuilder/VocabularyPanel.d.ts +26 -0
  87. package/dist/components/rulebuilder/index.d.ts +13 -0
  88. package/dist/components/rulebuilder/primitives.d.ts +54 -0
  89. package/dist/components/rulebuilder/useRuleBuilder.d.ts +291 -0
  90. package/dist/components/sidebar/ExpandableSidebar.d.ts +2 -0
  91. package/dist/components/sidebar/WorkspaceRetentionPanel.d.ts +18 -0
  92. package/dist/components/sidebar/content/TrackChangesContent.d.ts +8 -0
  93. package/dist/components/sidebar/content/anonymization-page/PIIAnonymization.d.ts +1 -1
  94. package/dist/components/sidebar/content/anonymization-page/PiiIdleView.d.ts +12 -0
  95. package/dist/components/sidebar/content/anonymization-page/PiiRecoveryView.d.ts +16 -0
  96. package/dist/components/sidebar/content/anonymization-page/PiiSummaryView.d.ts +34 -0
  97. package/dist/components/sidebar/content/anonymization-page/PiiUnavailableView.d.ts +1 -0
  98. package/dist/components/sidebar/content/anonymization-page/RestoreConfirmDialog.d.ts +9 -0
  99. package/dist/components/sidebar/content/anonymization-page/anonymizationUtils.d.ts +38 -17
  100. package/dist/components/sidebar/content/anonymization-page/piiVault.d.ts +18 -0
  101. package/dist/components/sidebar/content/index.d.ts +0 -1
  102. package/dist/components/toolbar/AutocompletionToggle.d.ts +1 -0
  103. package/dist/components/trackChanges/TrackChangesCards.d.ts +1 -0
  104. package/dist/components/trackChanges/index.d.ts +2 -0
  105. package/dist/components/trackChanges/utils.d.ts +5 -0
  106. package/dist/config/EditorConfig.d.ts +197 -73
  107. package/dist/constants/Extensions.d.ts +12 -0
  108. package/dist/constants/playbook.d.ts +108 -0
  109. package/dist/contexts/CapturedEditsContext.d.ts +56 -0
  110. package/dist/contexts/EditorShellContext.d.ts +4 -1
  111. package/dist/editor.css +1 -1
  112. package/dist/extensions/AnonymizedText.d.ts +31 -2
  113. package/dist/extensions/VariableText.d.ts +20 -0
  114. package/dist/extensions/index.d.ts +1 -1
  115. package/dist/extensions/plugins/CapturedEditsPlugin.d.ts +90 -0
  116. package/dist/extensions/plugins/MarkHighlightPlugin.d.ts +0 -1
  117. package/dist/extensions/plugins/RedlinePlugin.d.ts +9 -0
  118. package/dist/extensions/redline/changeTypes.d.ts +70 -0
  119. package/dist/extensions/redline/constants.d.ts +25 -0
  120. package/dist/extensions/redline/engine/blockNodes.d.ts +31 -0
  121. package/dist/extensions/redline/engine/clipboard.d.ts +16 -0
  122. package/dist/extensions/redline/engine/deletion.d.ts +34 -0
  123. package/dist/extensions/redline/engine/formatSplit.d.ts +16 -0
  124. package/dist/extensions/redline/engine/insertion.d.ts +26 -0
  125. package/dist/extensions/redline/engine/predicates.d.ts +73 -0
  126. package/dist/extensions/redline/engine/textReplace.d.ts +19 -0
  127. package/dist/extensions/redline/id.d.ts +7 -0
  128. package/dist/extensions/redline/index.d.ts +36 -0
  129. package/dist/extensions/redline/plugin.d.ts +34 -0
  130. package/dist/extensions/redline/query/scan.d.ts +52 -0
  131. package/dist/extensions/redline/review/applyChange.d.ts +25 -0
  132. package/dist/extensions/redline/review/index.d.ts +1 -0
  133. package/dist/extensions/redline/review/nodeResolvers.d.ts +29 -0
  134. package/dist/extensions/redline/review/pairedNodes.d.ts +38 -0
  135. package/dist/extensions/redline/review/structuralRevert.d.ts +20 -0
  136. package/dist/extensions/redline/review/textResolver.d.ts +9 -0
  137. package/dist/extensions/redline/schema/marks.d.ts +65 -0
  138. package/dist/extensions/redline/schema/shared.d.ts +34 -0
  139. package/dist/extensions/redline/session.d.ts +71 -0
  140. package/dist/extensions/redline/types.d.ts +24 -0
  141. package/dist/extensions/trackedChanges/TrackedChanges.d.ts +64 -0
  142. package/dist/extensions/trackedChanges/constants.d.ts +34 -0
  143. package/dist/extensions/trackedChanges/engine.d.ts +32 -0
  144. package/dist/extensions/trackedChanges/index.d.ts +13 -0
  145. package/dist/extensions/trackedChanges/marks.d.ts +20 -0
  146. package/dist/extensions/trackedChanges/normalize.d.ts +2 -0
  147. package/dist/extensions/trackedChanges/plugin.d.ts +32 -0
  148. package/dist/extensions/trackedChanges/query.d.ts +3 -0
  149. package/dist/extensions/trackedChanges/review.d.ts +34 -0
  150. package/dist/extensions/trackedChanges/types.d.ts +72 -0
  151. package/dist/extensions/trackedChanges/utils.d.ts +20 -0
  152. package/dist/hooks/useMediaQuery.d.ts +2 -0
  153. package/dist/hooks/useRedlineHover.d.ts +17 -0
  154. package/dist/hooks/useRedlineReview.d.ts +83 -0
  155. package/dist/index.d.ts +46 -0
  156. package/dist/index.es.js +38491 -22189
  157. package/dist/index.umd.js +224 -125
  158. package/dist/utils/cdts.d.ts +37 -0
  159. package/dist/utils/groundingAdapter.d.ts +36 -0
  160. package/package.json +39 -33
@@ -0,0 +1,1009 @@
1
+ /**
2
+ * ruleBuilder.ts — the discovery / test / import half of the no-code rule
3
+ * builder (plan §P2).
4
+ *
5
+ * Five backend routes live here:
6
+ *
7
+ * GET /v1/playbooks/predicates always mounted
8
+ * GET /v1/playbooks/fields HEADER_FIELDS_PROVIDER_ENABLED
9
+ * GET /v1/playbooks/taxonomy HEADER_FIELDS_PROVIDER_ENABLED
10
+ * POST /v1/playbooks/{id}/evaluate always mounted
11
+ * POST /v1/playbooks/ingest always mounted
12
+ *
13
+ * The three authoring routes are in `ruleAuthoring.ts`; both modules share
14
+ * this file's capability model and the one fetch/auth/error core exported by
15
+ * `playbook.ts` (`request`) — there is exactly one auth + error-normalization
16
+ * path in this package and neither module re-implements it.
17
+ *
18
+ * FEATURE FLAGS ARE PART OF THE CONTRACT. `HEADER_FIELDS_PROVIDER_ENABLED`
19
+ * and `RULE_AUTHORING_ENABLED` both default OFF, and the Go handlers answer a
20
+ * bare 404 when off — deliberately, so a workspace without the feature cannot
21
+ * learn the endpoint exists. A UI that renders the control anyway produces a
22
+ * 404 the user cannot act on. So every gated capability is *probed*, the
23
+ * result is a `CapabilityStatus`, and the surface tells the user the
24
+ * capability is disabled server-side instead of offering a dead control.
25
+ *
26
+ * `/fields` and `/taxonomy` share one flag but have two distinct failure
27
+ * modes: `/fields` also needs the lax-core config credentials, and
28
+ * `/taxonomy` forwards the caller's own bearer to the platform (401/403 means
29
+ * the caller, not an outage). The status union keeps those apart.
30
+ */
31
+ import { z } from "zod";
32
+ import { type CdtsScope } from "./playbook";
33
+ /**
34
+ * What a gated surface is allowed to render.
35
+ *
36
+ * - `available` — probed, the route answered.
37
+ * - `disabled` — 404. The server flag is off. NOT an error: say so plainly.
38
+ * - `unauthorized`— 401/403. Wired, but this caller's token was refused
39
+ * upstream (the taxonomy pass-through forwards the bearer).
40
+ * - `unavailable` — 503 / network. A dependency is down; retry is meaningful.
41
+ */
42
+ export type CapabilityStatus = {
43
+ state: "unknown";
44
+ } | {
45
+ state: "checking";
46
+ } | {
47
+ state: "available";
48
+ } | {
49
+ state: "disabled";
50
+ reason: string;
51
+ } | {
52
+ state: "unauthorized";
53
+ reason: string;
54
+ } | {
55
+ state: "unavailable";
56
+ reason: string;
57
+ };
58
+ /** The server-side flag each gated capability is behind (shown to the user). */
59
+ export declare const CAPABILITY_FLAGS: {
60
+ readonly authoring: "RULE_AUTHORING_ENABLED";
61
+ readonly fields: "HEADER_FIELDS_PROVIDER_ENABLED";
62
+ readonly taxonomy: "HEADER_FIELDS_PROVIDER_ENABLED";
63
+ readonly escalation: "RULE_ESCALATION_ENABLED";
64
+ };
65
+ /**
66
+ * Maps a thrown error to a capability status. A 404 from a gated route is the
67
+ * flag being off — never surfaced as "something broke".
68
+ */
69
+ export declare const capabilityFromError: (error: unknown, flag: string) => CapabilityStatus;
70
+ export declare const isCapabilityUsable: (status: CapabilityStatus) => boolean;
71
+ /**
72
+ * Predicate AST. Recursive: `all` / `any` / `not` carry `children`. Kept
73
+ * permissive (`passthrough`) because the catalog is compile-time data in Go
74
+ * (`api/predicates.go`) and grows without a wire-version bump.
75
+ */
76
+ export interface PredicateNode {
77
+ kind: string;
78
+ phrase?: string;
79
+ pattern?: string;
80
+ threshold?: number;
81
+ hypothesis?: string;
82
+ expect?: string;
83
+ field?: string;
84
+ op?: string;
85
+ operand?: unknown;
86
+ allowed?: unknown[];
87
+ children?: PredicateNode[];
88
+ [key: string]: unknown;
89
+ }
90
+ export declare const predicateSchema: z.ZodType<PredicateNode>;
91
+ /** One slot of the negotiation ladder (`standard_position` and friends). */
92
+ export declare const ruleConditionSchema: z.ZodObject<{
93
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
94
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
95
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
96
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
97
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
98
+ }, z.ZodTypeAny, "passthrough">>;
99
+ /**
100
+ * A rule as the builder sees it. Superset of the authored subset (the LLM may
101
+ * only write these) plus the server-owned identity fields it stamps on.
102
+ */
103
+ export declare const builderRuleSchema: z.ZodObject<{
104
+ id: z.ZodString;
105
+ playbook_id: z.ZodString;
106
+ workspace_id: z.ZodOptional<z.ZodString>;
107
+ predicate: z.ZodOptional<z.ZodType<PredicateNode, z.ZodTypeDef, PredicateNode>>;
108
+ action: z.ZodOptional<z.ZodString>;
109
+ default_severity: z.ZodOptional<z.ZodString>;
110
+ category: z.ZodOptional<z.ZodString>;
111
+ rationale: z.ZodDefault<z.ZodOptional<z.ZodString>>;
112
+ semantic_intent: z.ZodOptional<z.ZodString>;
113
+ source: z.ZodOptional<z.ZodString>;
114
+ read_only: z.ZodOptional<z.ZodBoolean>;
115
+ mandatory: z.ZodOptional<z.ZodBoolean>;
116
+ authority: z.ZodOptional<z.ZodString>;
117
+ effort: z.ZodOptional<z.ZodString>;
118
+ standard_position: z.ZodOptional<z.ZodNullable<z.ZodObject<{
119
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
120
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
121
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
122
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
123
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
124
+ }, z.ZodTypeAny, "passthrough">>>>;
125
+ fallback_condition: z.ZodOptional<z.ZodNullable<z.ZodObject<{
126
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
127
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
128
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
129
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
130
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
131
+ }, z.ZodTypeAny, "passthrough">>>>;
132
+ walkaway_condition: z.ZodOptional<z.ZodNullable<z.ZodObject<{
133
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
134
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
135
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
136
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
137
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
138
+ }, z.ZodTypeAny, "passthrough">>>>;
139
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
140
+ id: z.ZodString;
141
+ playbook_id: z.ZodString;
142
+ workspace_id: z.ZodOptional<z.ZodString>;
143
+ predicate: z.ZodOptional<z.ZodType<PredicateNode, z.ZodTypeDef, PredicateNode>>;
144
+ action: z.ZodOptional<z.ZodString>;
145
+ default_severity: z.ZodOptional<z.ZodString>;
146
+ category: z.ZodOptional<z.ZodString>;
147
+ rationale: z.ZodDefault<z.ZodOptional<z.ZodString>>;
148
+ semantic_intent: z.ZodOptional<z.ZodString>;
149
+ source: z.ZodOptional<z.ZodString>;
150
+ read_only: z.ZodOptional<z.ZodBoolean>;
151
+ mandatory: z.ZodOptional<z.ZodBoolean>;
152
+ authority: z.ZodOptional<z.ZodString>;
153
+ effort: z.ZodOptional<z.ZodString>;
154
+ standard_position: z.ZodOptional<z.ZodNullable<z.ZodObject<{
155
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
156
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
157
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
158
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
159
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
160
+ }, z.ZodTypeAny, "passthrough">>>>;
161
+ fallback_condition: z.ZodOptional<z.ZodNullable<z.ZodObject<{
162
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
163
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
164
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
165
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
166
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
167
+ }, z.ZodTypeAny, "passthrough">>>>;
168
+ walkaway_condition: z.ZodOptional<z.ZodNullable<z.ZodObject<{
169
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
170
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
171
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
172
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
173
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
174
+ }, z.ZodTypeAny, "passthrough">>>>;
175
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
176
+ id: z.ZodString;
177
+ playbook_id: z.ZodString;
178
+ workspace_id: z.ZodOptional<z.ZodString>;
179
+ predicate: z.ZodOptional<z.ZodType<PredicateNode, z.ZodTypeDef, PredicateNode>>;
180
+ action: z.ZodOptional<z.ZodString>;
181
+ default_severity: z.ZodOptional<z.ZodString>;
182
+ category: z.ZodOptional<z.ZodString>;
183
+ rationale: z.ZodDefault<z.ZodOptional<z.ZodString>>;
184
+ semantic_intent: z.ZodOptional<z.ZodString>;
185
+ source: z.ZodOptional<z.ZodString>;
186
+ read_only: z.ZodOptional<z.ZodBoolean>;
187
+ mandatory: z.ZodOptional<z.ZodBoolean>;
188
+ authority: z.ZodOptional<z.ZodString>;
189
+ effort: z.ZodOptional<z.ZodString>;
190
+ standard_position: z.ZodOptional<z.ZodNullable<z.ZodObject<{
191
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
192
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
193
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
194
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
195
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
196
+ }, z.ZodTypeAny, "passthrough">>>>;
197
+ fallback_condition: z.ZodOptional<z.ZodNullable<z.ZodObject<{
198
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
199
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
200
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
201
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
202
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
203
+ }, z.ZodTypeAny, "passthrough">>>>;
204
+ walkaway_condition: z.ZodOptional<z.ZodNullable<z.ZodObject<{
205
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
206
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
207
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
208
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
209
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
210
+ }, z.ZodTypeAny, "passthrough">>>>;
211
+ }, z.ZodTypeAny, "passthrough">>;
212
+ export type BuilderRule = z.infer<typeof builderRuleSchema>;
213
+ /** GET /v1/playbooks/predicates → `api.PredicateInfo`. */
214
+ export declare const predicateInfoSchema: z.ZodObject<{
215
+ kind: z.ZodString;
216
+ description: z.ZodDefault<z.ZodOptional<z.ZodString>>;
217
+ /** "clause" | "field" | "composite" — what the predicate reads. */
218
+ subject: z.ZodDefault<z.ZodOptional<z.ZodString>>;
219
+ params: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString, "many">>>, string[], string[] | null | undefined>;
220
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
221
+ kind: z.ZodString;
222
+ description: z.ZodDefault<z.ZodOptional<z.ZodString>>;
223
+ /** "clause" | "field" | "composite" — what the predicate reads. */
224
+ subject: z.ZodDefault<z.ZodOptional<z.ZodString>>;
225
+ params: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString, "many">>>, string[], string[] | null | undefined>;
226
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
227
+ kind: z.ZodString;
228
+ description: z.ZodDefault<z.ZodOptional<z.ZodString>>;
229
+ /** "clause" | "field" | "composite" — what the predicate reads. */
230
+ subject: z.ZodDefault<z.ZodOptional<z.ZodString>>;
231
+ params: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString, "many">>>, string[], string[] | null | undefined>;
232
+ }, z.ZodTypeAny, "passthrough">>;
233
+ export type PredicateInfo = z.infer<typeof predicateInfoSchema>;
234
+ /** GET /v1/playbooks/fields → `{fields: extraction.Catalog}` (name → spec). */
235
+ export declare const fieldSpecSchema: z.ZodObject<{
236
+ type: z.ZodDefault<z.ZodOptional<z.ZodString>>;
237
+ group: z.ZodDefault<z.ZodOptional<z.ZodString>>;
238
+ required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
239
+ mapped_to: z.ZodDefault<z.ZodOptional<z.ZodString>>;
240
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
241
+ type: z.ZodDefault<z.ZodOptional<z.ZodString>>;
242
+ group: z.ZodDefault<z.ZodOptional<z.ZodString>>;
243
+ required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
244
+ mapped_to: z.ZodDefault<z.ZodOptional<z.ZodString>>;
245
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
246
+ type: z.ZodDefault<z.ZodOptional<z.ZodString>>;
247
+ group: z.ZodDefault<z.ZodOptional<z.ZodString>>;
248
+ required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
249
+ mapped_to: z.ZodDefault<z.ZodOptional<z.ZodString>>;
250
+ }, z.ZodTypeAny, "passthrough">>;
251
+ export type FieldSpec = z.infer<typeof fieldSpecSchema>;
252
+ /** One named field plus its spec, sorted for display. */
253
+ export interface FieldCatalogEntry extends FieldSpec {
254
+ name: string;
255
+ }
256
+ /**
257
+ * POST /v1/playbooks/{id}/evaluate → `api.EvaluateResponse`. The fired
258
+ * entries are `contracts.RedlineSuggestion`; the builder reads the handful of
259
+ * fields that answer "did my rule fire, and what would it have said".
260
+ */
261
+ export declare const firedSuggestionSchema: z.ZodObject<{
262
+ outcome: z.ZodDefault<z.ZodOptional<z.ZodString>>;
263
+ fires: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
264
+ rationale: z.ZodDefault<z.ZodOptional<z.ZodString>>;
265
+ suggested_text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
266
+ fallback_text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
267
+ walkaway_text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
268
+ text_before: z.ZodDefault<z.ZodOptional<z.ZodString>>;
269
+ text_after: z.ZodDefault<z.ZodOptional<z.ZodString>>;
270
+ category: z.ZodDefault<z.ZodOptional<z.ZodString>>;
271
+ severity: z.ZodDefault<z.ZodOptional<z.ZodString>>;
272
+ action: z.ZodDefault<z.ZodOptional<z.ZodString>>;
273
+ text_provenance: z.ZodDefault<z.ZodOptional<z.ZodString>>;
274
+ citation: z.ZodOptional<z.ZodObject<{
275
+ playbook_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
276
+ rule_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
277
+ playbook_regime: z.ZodOptional<z.ZodString>;
278
+ verbatim_excerpt: z.ZodOptional<z.ZodString>;
279
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
280
+ playbook_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
281
+ rule_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
282
+ playbook_regime: z.ZodOptional<z.ZodString>;
283
+ verbatim_excerpt: z.ZodOptional<z.ZodString>;
284
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
285
+ playbook_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
286
+ rule_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
287
+ playbook_regime: z.ZodOptional<z.ZodString>;
288
+ verbatim_excerpt: z.ZodOptional<z.ZodString>;
289
+ }, z.ZodTypeAny, "passthrough">>>;
290
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
291
+ outcome: z.ZodDefault<z.ZodOptional<z.ZodString>>;
292
+ fires: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
293
+ rationale: z.ZodDefault<z.ZodOptional<z.ZodString>>;
294
+ suggested_text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
295
+ fallback_text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
296
+ walkaway_text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
297
+ text_before: z.ZodDefault<z.ZodOptional<z.ZodString>>;
298
+ text_after: z.ZodDefault<z.ZodOptional<z.ZodString>>;
299
+ category: z.ZodDefault<z.ZodOptional<z.ZodString>>;
300
+ severity: z.ZodDefault<z.ZodOptional<z.ZodString>>;
301
+ action: z.ZodDefault<z.ZodOptional<z.ZodString>>;
302
+ text_provenance: z.ZodDefault<z.ZodOptional<z.ZodString>>;
303
+ citation: z.ZodOptional<z.ZodObject<{
304
+ playbook_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
305
+ rule_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
306
+ playbook_regime: z.ZodOptional<z.ZodString>;
307
+ verbatim_excerpt: z.ZodOptional<z.ZodString>;
308
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
309
+ playbook_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
310
+ rule_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
311
+ playbook_regime: z.ZodOptional<z.ZodString>;
312
+ verbatim_excerpt: z.ZodOptional<z.ZodString>;
313
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
314
+ playbook_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
315
+ rule_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
316
+ playbook_regime: z.ZodOptional<z.ZodString>;
317
+ verbatim_excerpt: z.ZodOptional<z.ZodString>;
318
+ }, z.ZodTypeAny, "passthrough">>>;
319
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
320
+ outcome: z.ZodDefault<z.ZodOptional<z.ZodString>>;
321
+ fires: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
322
+ rationale: z.ZodDefault<z.ZodOptional<z.ZodString>>;
323
+ suggested_text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
324
+ fallback_text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
325
+ walkaway_text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
326
+ text_before: z.ZodDefault<z.ZodOptional<z.ZodString>>;
327
+ text_after: z.ZodDefault<z.ZodOptional<z.ZodString>>;
328
+ category: z.ZodDefault<z.ZodOptional<z.ZodString>>;
329
+ severity: z.ZodDefault<z.ZodOptional<z.ZodString>>;
330
+ action: z.ZodDefault<z.ZodOptional<z.ZodString>>;
331
+ text_provenance: z.ZodDefault<z.ZodOptional<z.ZodString>>;
332
+ citation: z.ZodOptional<z.ZodObject<{
333
+ playbook_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
334
+ rule_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
335
+ playbook_regime: z.ZodOptional<z.ZodString>;
336
+ verbatim_excerpt: z.ZodOptional<z.ZodString>;
337
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
338
+ playbook_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
339
+ rule_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
340
+ playbook_regime: z.ZodOptional<z.ZodString>;
341
+ verbatim_excerpt: z.ZodOptional<z.ZodString>;
342
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
343
+ playbook_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
344
+ rule_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
345
+ playbook_regime: z.ZodOptional<z.ZodString>;
346
+ verbatim_excerpt: z.ZodOptional<z.ZodString>;
347
+ }, z.ZodTypeAny, "passthrough">>>;
348
+ }, z.ZodTypeAny, "passthrough">>;
349
+ export type FiredSuggestion = z.infer<typeof firedSuggestionSchema>;
350
+ export declare const supersededRuleSchema: z.ZodObject<{
351
+ rule_id: z.ZodString;
352
+ playbook_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
353
+ winner_rule_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
354
+ reason: z.ZodDefault<z.ZodOptional<z.ZodString>>;
355
+ authority: z.ZodOptional<z.ZodString>;
356
+ source: z.ZodOptional<z.ZodString>;
357
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
358
+ rule_id: z.ZodString;
359
+ playbook_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
360
+ winner_rule_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
361
+ reason: z.ZodDefault<z.ZodOptional<z.ZodString>>;
362
+ authority: z.ZodOptional<z.ZodString>;
363
+ source: z.ZodOptional<z.ZodString>;
364
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
365
+ rule_id: z.ZodString;
366
+ playbook_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
367
+ winner_rule_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
368
+ reason: z.ZodDefault<z.ZodOptional<z.ZodString>>;
369
+ authority: z.ZodOptional<z.ZodString>;
370
+ source: z.ZodOptional<z.ZodString>;
371
+ }, z.ZodTypeAny, "passthrough">>;
372
+ export declare const evaluateResponseSchema: z.ZodObject<{
373
+ rules_fired: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
374
+ outcome: z.ZodDefault<z.ZodOptional<z.ZodString>>;
375
+ fires: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
376
+ rationale: z.ZodDefault<z.ZodOptional<z.ZodString>>;
377
+ suggested_text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
378
+ fallback_text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
379
+ walkaway_text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
380
+ text_before: z.ZodDefault<z.ZodOptional<z.ZodString>>;
381
+ text_after: z.ZodDefault<z.ZodOptional<z.ZodString>>;
382
+ category: z.ZodDefault<z.ZodOptional<z.ZodString>>;
383
+ severity: z.ZodDefault<z.ZodOptional<z.ZodString>>;
384
+ action: z.ZodDefault<z.ZodOptional<z.ZodString>>;
385
+ text_provenance: z.ZodDefault<z.ZodOptional<z.ZodString>>;
386
+ citation: z.ZodOptional<z.ZodObject<{
387
+ playbook_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
388
+ rule_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
389
+ playbook_regime: z.ZodOptional<z.ZodString>;
390
+ verbatim_excerpt: z.ZodOptional<z.ZodString>;
391
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
392
+ playbook_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
393
+ rule_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
394
+ playbook_regime: z.ZodOptional<z.ZodString>;
395
+ verbatim_excerpt: z.ZodOptional<z.ZodString>;
396
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
397
+ playbook_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
398
+ rule_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
399
+ playbook_regime: z.ZodOptional<z.ZodString>;
400
+ verbatim_excerpt: z.ZodOptional<z.ZodString>;
401
+ }, z.ZodTypeAny, "passthrough">>>;
402
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
403
+ outcome: z.ZodDefault<z.ZodOptional<z.ZodString>>;
404
+ fires: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
405
+ rationale: z.ZodDefault<z.ZodOptional<z.ZodString>>;
406
+ suggested_text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
407
+ fallback_text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
408
+ walkaway_text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
409
+ text_before: z.ZodDefault<z.ZodOptional<z.ZodString>>;
410
+ text_after: z.ZodDefault<z.ZodOptional<z.ZodString>>;
411
+ category: z.ZodDefault<z.ZodOptional<z.ZodString>>;
412
+ severity: z.ZodDefault<z.ZodOptional<z.ZodString>>;
413
+ action: z.ZodDefault<z.ZodOptional<z.ZodString>>;
414
+ text_provenance: z.ZodDefault<z.ZodOptional<z.ZodString>>;
415
+ citation: z.ZodOptional<z.ZodObject<{
416
+ playbook_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
417
+ rule_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
418
+ playbook_regime: z.ZodOptional<z.ZodString>;
419
+ verbatim_excerpt: z.ZodOptional<z.ZodString>;
420
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
421
+ playbook_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
422
+ rule_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
423
+ playbook_regime: z.ZodOptional<z.ZodString>;
424
+ verbatim_excerpt: z.ZodOptional<z.ZodString>;
425
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
426
+ playbook_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
427
+ rule_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
428
+ playbook_regime: z.ZodOptional<z.ZodString>;
429
+ verbatim_excerpt: z.ZodOptional<z.ZodString>;
430
+ }, z.ZodTypeAny, "passthrough">>>;
431
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
432
+ outcome: z.ZodDefault<z.ZodOptional<z.ZodString>>;
433
+ fires: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
434
+ rationale: z.ZodDefault<z.ZodOptional<z.ZodString>>;
435
+ suggested_text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
436
+ fallback_text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
437
+ walkaway_text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
438
+ text_before: z.ZodDefault<z.ZodOptional<z.ZodString>>;
439
+ text_after: z.ZodDefault<z.ZodOptional<z.ZodString>>;
440
+ category: z.ZodDefault<z.ZodOptional<z.ZodString>>;
441
+ severity: z.ZodDefault<z.ZodOptional<z.ZodString>>;
442
+ action: z.ZodDefault<z.ZodOptional<z.ZodString>>;
443
+ text_provenance: z.ZodDefault<z.ZodOptional<z.ZodString>>;
444
+ citation: z.ZodOptional<z.ZodObject<{
445
+ playbook_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
446
+ rule_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
447
+ playbook_regime: z.ZodOptional<z.ZodString>;
448
+ verbatim_excerpt: z.ZodOptional<z.ZodString>;
449
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
450
+ playbook_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
451
+ rule_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
452
+ playbook_regime: z.ZodOptional<z.ZodString>;
453
+ verbatim_excerpt: z.ZodOptional<z.ZodString>;
454
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
455
+ playbook_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
456
+ rule_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
457
+ playbook_regime: z.ZodOptional<z.ZodString>;
458
+ verbatim_excerpt: z.ZodOptional<z.ZodString>;
459
+ }, z.ZodTypeAny, "passthrough">>>;
460
+ }, z.ZodTypeAny, "passthrough">>, "many">>>, z.objectOutputType<{
461
+ outcome: z.ZodDefault<z.ZodOptional<z.ZodString>>;
462
+ fires: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
463
+ rationale: z.ZodDefault<z.ZodOptional<z.ZodString>>;
464
+ suggested_text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
465
+ fallback_text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
466
+ walkaway_text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
467
+ text_before: z.ZodDefault<z.ZodOptional<z.ZodString>>;
468
+ text_after: z.ZodDefault<z.ZodOptional<z.ZodString>>;
469
+ category: z.ZodDefault<z.ZodOptional<z.ZodString>>;
470
+ severity: z.ZodDefault<z.ZodOptional<z.ZodString>>;
471
+ action: z.ZodDefault<z.ZodOptional<z.ZodString>>;
472
+ text_provenance: z.ZodDefault<z.ZodOptional<z.ZodString>>;
473
+ citation: z.ZodOptional<z.ZodObject<{
474
+ playbook_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
475
+ rule_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
476
+ playbook_regime: z.ZodOptional<z.ZodString>;
477
+ verbatim_excerpt: z.ZodOptional<z.ZodString>;
478
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
479
+ playbook_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
480
+ rule_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
481
+ playbook_regime: z.ZodOptional<z.ZodString>;
482
+ verbatim_excerpt: z.ZodOptional<z.ZodString>;
483
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
484
+ playbook_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
485
+ rule_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
486
+ playbook_regime: z.ZodOptional<z.ZodString>;
487
+ verbatim_excerpt: z.ZodOptional<z.ZodString>;
488
+ }, z.ZodTypeAny, "passthrough">>>;
489
+ }, z.ZodTypeAny, "passthrough">[], z.objectInputType<{
490
+ outcome: z.ZodDefault<z.ZodOptional<z.ZodString>>;
491
+ fires: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
492
+ rationale: z.ZodDefault<z.ZodOptional<z.ZodString>>;
493
+ suggested_text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
494
+ fallback_text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
495
+ walkaway_text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
496
+ text_before: z.ZodDefault<z.ZodOptional<z.ZodString>>;
497
+ text_after: z.ZodDefault<z.ZodOptional<z.ZodString>>;
498
+ category: z.ZodDefault<z.ZodOptional<z.ZodString>>;
499
+ severity: z.ZodDefault<z.ZodOptional<z.ZodString>>;
500
+ action: z.ZodDefault<z.ZodOptional<z.ZodString>>;
501
+ text_provenance: z.ZodDefault<z.ZodOptional<z.ZodString>>;
502
+ citation: z.ZodOptional<z.ZodObject<{
503
+ playbook_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
504
+ rule_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
505
+ playbook_regime: z.ZodOptional<z.ZodString>;
506
+ verbatim_excerpt: z.ZodOptional<z.ZodString>;
507
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
508
+ playbook_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
509
+ rule_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
510
+ playbook_regime: z.ZodOptional<z.ZodString>;
511
+ verbatim_excerpt: z.ZodOptional<z.ZodString>;
512
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
513
+ playbook_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
514
+ rule_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
515
+ playbook_regime: z.ZodOptional<z.ZodString>;
516
+ verbatim_excerpt: z.ZodOptional<z.ZodString>;
517
+ }, z.ZodTypeAny, "passthrough">>>;
518
+ }, z.ZodTypeAny, "passthrough">[] | null | undefined>;
519
+ superseded: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
520
+ rule_id: z.ZodString;
521
+ playbook_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
522
+ winner_rule_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
523
+ reason: z.ZodDefault<z.ZodOptional<z.ZodString>>;
524
+ authority: z.ZodOptional<z.ZodString>;
525
+ source: z.ZodOptional<z.ZodString>;
526
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
527
+ rule_id: z.ZodString;
528
+ playbook_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
529
+ winner_rule_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
530
+ reason: z.ZodDefault<z.ZodOptional<z.ZodString>>;
531
+ authority: z.ZodOptional<z.ZodString>;
532
+ source: z.ZodOptional<z.ZodString>;
533
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
534
+ rule_id: z.ZodString;
535
+ playbook_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
536
+ winner_rule_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
537
+ reason: z.ZodDefault<z.ZodOptional<z.ZodString>>;
538
+ authority: z.ZodOptional<z.ZodString>;
539
+ source: z.ZodOptional<z.ZodString>;
540
+ }, z.ZodTypeAny, "passthrough">>, "many">>>, z.objectOutputType<{
541
+ rule_id: z.ZodString;
542
+ playbook_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
543
+ winner_rule_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
544
+ reason: z.ZodDefault<z.ZodOptional<z.ZodString>>;
545
+ authority: z.ZodOptional<z.ZodString>;
546
+ source: z.ZodOptional<z.ZodString>;
547
+ }, z.ZodTypeAny, "passthrough">[], z.objectInputType<{
548
+ rule_id: z.ZodString;
549
+ playbook_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
550
+ winner_rule_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
551
+ reason: z.ZodDefault<z.ZodOptional<z.ZodString>>;
552
+ authority: z.ZodOptional<z.ZodString>;
553
+ source: z.ZodOptional<z.ZodString>;
554
+ }, z.ZodTypeAny, "passthrough">[] | null | undefined>;
555
+ }, "strip", z.ZodTypeAny, {
556
+ superseded: z.objectOutputType<{
557
+ rule_id: z.ZodString;
558
+ playbook_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
559
+ winner_rule_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
560
+ reason: z.ZodDefault<z.ZodOptional<z.ZodString>>;
561
+ authority: z.ZodOptional<z.ZodString>;
562
+ source: z.ZodOptional<z.ZodString>;
563
+ }, z.ZodTypeAny, "passthrough">[];
564
+ rules_fired: z.objectOutputType<{
565
+ outcome: z.ZodDefault<z.ZodOptional<z.ZodString>>;
566
+ fires: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
567
+ rationale: z.ZodDefault<z.ZodOptional<z.ZodString>>;
568
+ suggested_text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
569
+ fallback_text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
570
+ walkaway_text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
571
+ text_before: z.ZodDefault<z.ZodOptional<z.ZodString>>;
572
+ text_after: z.ZodDefault<z.ZodOptional<z.ZodString>>;
573
+ category: z.ZodDefault<z.ZodOptional<z.ZodString>>;
574
+ severity: z.ZodDefault<z.ZodOptional<z.ZodString>>;
575
+ action: z.ZodDefault<z.ZodOptional<z.ZodString>>;
576
+ text_provenance: z.ZodDefault<z.ZodOptional<z.ZodString>>;
577
+ citation: z.ZodOptional<z.ZodObject<{
578
+ playbook_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
579
+ rule_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
580
+ playbook_regime: z.ZodOptional<z.ZodString>;
581
+ verbatim_excerpt: z.ZodOptional<z.ZodString>;
582
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
583
+ playbook_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
584
+ rule_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
585
+ playbook_regime: z.ZodOptional<z.ZodString>;
586
+ verbatim_excerpt: z.ZodOptional<z.ZodString>;
587
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
588
+ playbook_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
589
+ rule_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
590
+ playbook_regime: z.ZodOptional<z.ZodString>;
591
+ verbatim_excerpt: z.ZodOptional<z.ZodString>;
592
+ }, z.ZodTypeAny, "passthrough">>>;
593
+ }, z.ZodTypeAny, "passthrough">[];
594
+ }, {
595
+ superseded?: z.objectInputType<{
596
+ rule_id: z.ZodString;
597
+ playbook_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
598
+ winner_rule_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
599
+ reason: z.ZodDefault<z.ZodOptional<z.ZodString>>;
600
+ authority: z.ZodOptional<z.ZodString>;
601
+ source: z.ZodOptional<z.ZodString>;
602
+ }, z.ZodTypeAny, "passthrough">[] | null | undefined;
603
+ rules_fired?: z.objectInputType<{
604
+ outcome: z.ZodDefault<z.ZodOptional<z.ZodString>>;
605
+ fires: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
606
+ rationale: z.ZodDefault<z.ZodOptional<z.ZodString>>;
607
+ suggested_text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
608
+ fallback_text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
609
+ walkaway_text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
610
+ text_before: z.ZodDefault<z.ZodOptional<z.ZodString>>;
611
+ text_after: z.ZodDefault<z.ZodOptional<z.ZodString>>;
612
+ category: z.ZodDefault<z.ZodOptional<z.ZodString>>;
613
+ severity: z.ZodDefault<z.ZodOptional<z.ZodString>>;
614
+ action: z.ZodDefault<z.ZodOptional<z.ZodString>>;
615
+ text_provenance: z.ZodDefault<z.ZodOptional<z.ZodString>>;
616
+ citation: z.ZodOptional<z.ZodObject<{
617
+ playbook_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
618
+ rule_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
619
+ playbook_regime: z.ZodOptional<z.ZodString>;
620
+ verbatim_excerpt: z.ZodOptional<z.ZodString>;
621
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
622
+ playbook_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
623
+ rule_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
624
+ playbook_regime: z.ZodOptional<z.ZodString>;
625
+ verbatim_excerpt: z.ZodOptional<z.ZodString>;
626
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
627
+ playbook_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
628
+ rule_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
629
+ playbook_regime: z.ZodOptional<z.ZodString>;
630
+ verbatim_excerpt: z.ZodOptional<z.ZodString>;
631
+ }, z.ZodTypeAny, "passthrough">>>;
632
+ }, z.ZodTypeAny, "passthrough">[] | null | undefined;
633
+ }>;
634
+ export type EvaluateResult = z.infer<typeof evaluateResponseSchema>;
635
+ /** POST /v1/playbooks/ingest → `ingest.Result`. */
636
+ export declare const parseErrorSchema: z.ZodObject<{
637
+ paragraph_n: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
638
+ problem: z.ZodDefault<z.ZodOptional<z.ZodString>>;
639
+ excerpt: z.ZodDefault<z.ZodOptional<z.ZodString>>;
640
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
641
+ paragraph_n: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
642
+ problem: z.ZodDefault<z.ZodOptional<z.ZodString>>;
643
+ excerpt: z.ZodDefault<z.ZodOptional<z.ZodString>>;
644
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
645
+ paragraph_n: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
646
+ problem: z.ZodDefault<z.ZodOptional<z.ZodString>>;
647
+ excerpt: z.ZodDefault<z.ZodOptional<z.ZodString>>;
648
+ }, z.ZodTypeAny, "passthrough">>;
649
+ export type IngestParseError = z.infer<typeof parseErrorSchema>;
650
+ export declare const ingestResultSchema: z.ZodObject<{
651
+ /**
652
+ * `null` on a document where nothing parsed — the Go zero slice marshals to
653
+ * null, not []. Normalized here so callers can always `.map`.
654
+ */
655
+ rules: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
656
+ id: z.ZodString;
657
+ playbook_id: z.ZodString;
658
+ workspace_id: z.ZodOptional<z.ZodString>;
659
+ predicate: z.ZodOptional<z.ZodType<PredicateNode, z.ZodTypeDef, PredicateNode>>;
660
+ action: z.ZodOptional<z.ZodString>;
661
+ default_severity: z.ZodOptional<z.ZodString>;
662
+ category: z.ZodOptional<z.ZodString>;
663
+ rationale: z.ZodDefault<z.ZodOptional<z.ZodString>>;
664
+ semantic_intent: z.ZodOptional<z.ZodString>;
665
+ source: z.ZodOptional<z.ZodString>;
666
+ read_only: z.ZodOptional<z.ZodBoolean>;
667
+ mandatory: z.ZodOptional<z.ZodBoolean>;
668
+ authority: z.ZodOptional<z.ZodString>;
669
+ effort: z.ZodOptional<z.ZodString>;
670
+ standard_position: z.ZodOptional<z.ZodNullable<z.ZodObject<{
671
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
672
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
673
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
674
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
675
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
676
+ }, z.ZodTypeAny, "passthrough">>>>;
677
+ fallback_condition: z.ZodOptional<z.ZodNullable<z.ZodObject<{
678
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
679
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
680
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
681
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
682
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
683
+ }, z.ZodTypeAny, "passthrough">>>>;
684
+ walkaway_condition: z.ZodOptional<z.ZodNullable<z.ZodObject<{
685
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
686
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
687
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
688
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
689
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
690
+ }, z.ZodTypeAny, "passthrough">>>>;
691
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
692
+ id: z.ZodString;
693
+ playbook_id: z.ZodString;
694
+ workspace_id: z.ZodOptional<z.ZodString>;
695
+ predicate: z.ZodOptional<z.ZodType<PredicateNode, z.ZodTypeDef, PredicateNode>>;
696
+ action: z.ZodOptional<z.ZodString>;
697
+ default_severity: z.ZodOptional<z.ZodString>;
698
+ category: z.ZodOptional<z.ZodString>;
699
+ rationale: z.ZodDefault<z.ZodOptional<z.ZodString>>;
700
+ semantic_intent: z.ZodOptional<z.ZodString>;
701
+ source: z.ZodOptional<z.ZodString>;
702
+ read_only: z.ZodOptional<z.ZodBoolean>;
703
+ mandatory: z.ZodOptional<z.ZodBoolean>;
704
+ authority: z.ZodOptional<z.ZodString>;
705
+ effort: z.ZodOptional<z.ZodString>;
706
+ standard_position: z.ZodOptional<z.ZodNullable<z.ZodObject<{
707
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
708
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
709
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
710
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
711
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
712
+ }, z.ZodTypeAny, "passthrough">>>>;
713
+ fallback_condition: z.ZodOptional<z.ZodNullable<z.ZodObject<{
714
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
715
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
716
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
717
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
718
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
719
+ }, z.ZodTypeAny, "passthrough">>>>;
720
+ walkaway_condition: z.ZodOptional<z.ZodNullable<z.ZodObject<{
721
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
722
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
723
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
724
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
725
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
726
+ }, z.ZodTypeAny, "passthrough">>>>;
727
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
728
+ id: z.ZodString;
729
+ playbook_id: z.ZodString;
730
+ workspace_id: z.ZodOptional<z.ZodString>;
731
+ predicate: z.ZodOptional<z.ZodType<PredicateNode, z.ZodTypeDef, PredicateNode>>;
732
+ action: z.ZodOptional<z.ZodString>;
733
+ default_severity: z.ZodOptional<z.ZodString>;
734
+ category: z.ZodOptional<z.ZodString>;
735
+ rationale: z.ZodDefault<z.ZodOptional<z.ZodString>>;
736
+ semantic_intent: z.ZodOptional<z.ZodString>;
737
+ source: z.ZodOptional<z.ZodString>;
738
+ read_only: z.ZodOptional<z.ZodBoolean>;
739
+ mandatory: z.ZodOptional<z.ZodBoolean>;
740
+ authority: z.ZodOptional<z.ZodString>;
741
+ effort: z.ZodOptional<z.ZodString>;
742
+ standard_position: z.ZodOptional<z.ZodNullable<z.ZodObject<{
743
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
744
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
745
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
746
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
747
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
748
+ }, z.ZodTypeAny, "passthrough">>>>;
749
+ fallback_condition: z.ZodOptional<z.ZodNullable<z.ZodObject<{
750
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
751
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
752
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
753
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
754
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
755
+ }, z.ZodTypeAny, "passthrough">>>>;
756
+ walkaway_condition: z.ZodOptional<z.ZodNullable<z.ZodObject<{
757
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
758
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
759
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
760
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
761
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
762
+ }, z.ZodTypeAny, "passthrough">>>>;
763
+ }, z.ZodTypeAny, "passthrough">>, "many">>>, z.objectOutputType<{
764
+ id: z.ZodString;
765
+ playbook_id: z.ZodString;
766
+ workspace_id: z.ZodOptional<z.ZodString>;
767
+ predicate: z.ZodOptional<z.ZodType<PredicateNode, z.ZodTypeDef, PredicateNode>>;
768
+ action: z.ZodOptional<z.ZodString>;
769
+ default_severity: z.ZodOptional<z.ZodString>;
770
+ category: z.ZodOptional<z.ZodString>;
771
+ rationale: z.ZodDefault<z.ZodOptional<z.ZodString>>;
772
+ semantic_intent: z.ZodOptional<z.ZodString>;
773
+ source: z.ZodOptional<z.ZodString>;
774
+ read_only: z.ZodOptional<z.ZodBoolean>;
775
+ mandatory: z.ZodOptional<z.ZodBoolean>;
776
+ authority: z.ZodOptional<z.ZodString>;
777
+ effort: z.ZodOptional<z.ZodString>;
778
+ standard_position: z.ZodOptional<z.ZodNullable<z.ZodObject<{
779
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
780
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
781
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
782
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
783
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
784
+ }, z.ZodTypeAny, "passthrough">>>>;
785
+ fallback_condition: z.ZodOptional<z.ZodNullable<z.ZodObject<{
786
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
787
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
788
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
789
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
790
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
791
+ }, z.ZodTypeAny, "passthrough">>>>;
792
+ walkaway_condition: z.ZodOptional<z.ZodNullable<z.ZodObject<{
793
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
794
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
795
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
796
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
797
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
798
+ }, z.ZodTypeAny, "passthrough">>>>;
799
+ }, z.ZodTypeAny, "passthrough">[], z.objectInputType<{
800
+ id: z.ZodString;
801
+ playbook_id: z.ZodString;
802
+ workspace_id: z.ZodOptional<z.ZodString>;
803
+ predicate: z.ZodOptional<z.ZodType<PredicateNode, z.ZodTypeDef, PredicateNode>>;
804
+ action: z.ZodOptional<z.ZodString>;
805
+ default_severity: z.ZodOptional<z.ZodString>;
806
+ category: z.ZodOptional<z.ZodString>;
807
+ rationale: z.ZodDefault<z.ZodOptional<z.ZodString>>;
808
+ semantic_intent: z.ZodOptional<z.ZodString>;
809
+ source: z.ZodOptional<z.ZodString>;
810
+ read_only: z.ZodOptional<z.ZodBoolean>;
811
+ mandatory: z.ZodOptional<z.ZodBoolean>;
812
+ authority: z.ZodOptional<z.ZodString>;
813
+ effort: z.ZodOptional<z.ZodString>;
814
+ standard_position: z.ZodOptional<z.ZodNullable<z.ZodObject<{
815
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
816
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
817
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
818
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
819
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
820
+ }, z.ZodTypeAny, "passthrough">>>>;
821
+ fallback_condition: z.ZodOptional<z.ZodNullable<z.ZodObject<{
822
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
823
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
824
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
825
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
826
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
827
+ }, z.ZodTypeAny, "passthrough">>>>;
828
+ walkaway_condition: z.ZodOptional<z.ZodNullable<z.ZodObject<{
829
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
830
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
831
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
832
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
833
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
834
+ }, z.ZodTypeAny, "passthrough">>>>;
835
+ }, z.ZodTypeAny, "passthrough">[] | null | undefined>;
836
+ errors: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
837
+ paragraph_n: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
838
+ problem: z.ZodDefault<z.ZodOptional<z.ZodString>>;
839
+ excerpt: z.ZodDefault<z.ZodOptional<z.ZodString>>;
840
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
841
+ paragraph_n: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
842
+ problem: z.ZodDefault<z.ZodOptional<z.ZodString>>;
843
+ excerpt: z.ZodDefault<z.ZodOptional<z.ZodString>>;
844
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
845
+ paragraph_n: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
846
+ problem: z.ZodDefault<z.ZodOptional<z.ZodString>>;
847
+ excerpt: z.ZodDefault<z.ZodOptional<z.ZodString>>;
848
+ }, z.ZodTypeAny, "passthrough">>, "many">>>, z.objectOutputType<{
849
+ paragraph_n: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
850
+ problem: z.ZodDefault<z.ZodOptional<z.ZodString>>;
851
+ excerpt: z.ZodDefault<z.ZodOptional<z.ZodString>>;
852
+ }, z.ZodTypeAny, "passthrough">[], z.objectInputType<{
853
+ paragraph_n: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
854
+ problem: z.ZodDefault<z.ZodOptional<z.ZodString>>;
855
+ excerpt: z.ZodDefault<z.ZodOptional<z.ZodString>>;
856
+ }, z.ZodTypeAny, "passthrough">[] | null | undefined>;
857
+ }, "strip", z.ZodTypeAny, {
858
+ rules: z.objectOutputType<{
859
+ id: z.ZodString;
860
+ playbook_id: z.ZodString;
861
+ workspace_id: z.ZodOptional<z.ZodString>;
862
+ predicate: z.ZodOptional<z.ZodType<PredicateNode, z.ZodTypeDef, PredicateNode>>;
863
+ action: z.ZodOptional<z.ZodString>;
864
+ default_severity: z.ZodOptional<z.ZodString>;
865
+ category: z.ZodOptional<z.ZodString>;
866
+ rationale: z.ZodDefault<z.ZodOptional<z.ZodString>>;
867
+ semantic_intent: z.ZodOptional<z.ZodString>;
868
+ source: z.ZodOptional<z.ZodString>;
869
+ read_only: z.ZodOptional<z.ZodBoolean>;
870
+ mandatory: z.ZodOptional<z.ZodBoolean>;
871
+ authority: z.ZodOptional<z.ZodString>;
872
+ effort: z.ZodOptional<z.ZodString>;
873
+ standard_position: z.ZodOptional<z.ZodNullable<z.ZodObject<{
874
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
875
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
876
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
877
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
878
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
879
+ }, z.ZodTypeAny, "passthrough">>>>;
880
+ fallback_condition: z.ZodOptional<z.ZodNullable<z.ZodObject<{
881
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
882
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
883
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
884
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
885
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
886
+ }, z.ZodTypeAny, "passthrough">>>>;
887
+ walkaway_condition: z.ZodOptional<z.ZodNullable<z.ZodObject<{
888
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
889
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
890
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
891
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
892
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
893
+ }, z.ZodTypeAny, "passthrough">>>>;
894
+ }, z.ZodTypeAny, "passthrough">[];
895
+ errors: z.objectOutputType<{
896
+ paragraph_n: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
897
+ problem: z.ZodDefault<z.ZodOptional<z.ZodString>>;
898
+ excerpt: z.ZodDefault<z.ZodOptional<z.ZodString>>;
899
+ }, z.ZodTypeAny, "passthrough">[];
900
+ }, {
901
+ rules?: z.objectInputType<{
902
+ id: z.ZodString;
903
+ playbook_id: z.ZodString;
904
+ workspace_id: z.ZodOptional<z.ZodString>;
905
+ predicate: z.ZodOptional<z.ZodType<PredicateNode, z.ZodTypeDef, PredicateNode>>;
906
+ action: z.ZodOptional<z.ZodString>;
907
+ default_severity: z.ZodOptional<z.ZodString>;
908
+ category: z.ZodOptional<z.ZodString>;
909
+ rationale: z.ZodDefault<z.ZodOptional<z.ZodString>>;
910
+ semantic_intent: z.ZodOptional<z.ZodString>;
911
+ source: z.ZodOptional<z.ZodString>;
912
+ read_only: z.ZodOptional<z.ZodBoolean>;
913
+ mandatory: z.ZodOptional<z.ZodBoolean>;
914
+ authority: z.ZodOptional<z.ZodString>;
915
+ effort: z.ZodOptional<z.ZodString>;
916
+ standard_position: z.ZodOptional<z.ZodNullable<z.ZodObject<{
917
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
918
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
919
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
920
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
921
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
922
+ }, z.ZodTypeAny, "passthrough">>>>;
923
+ fallback_condition: z.ZodOptional<z.ZodNullable<z.ZodObject<{
924
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
925
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
926
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
927
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
928
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
929
+ }, z.ZodTypeAny, "passthrough">>>>;
930
+ walkaway_condition: z.ZodOptional<z.ZodNullable<z.ZodObject<{
931
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
932
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
933
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
934
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
935
+ text: z.ZodDefault<z.ZodOptional<z.ZodString>>;
936
+ }, z.ZodTypeAny, "passthrough">>>>;
937
+ }, z.ZodTypeAny, "passthrough">[] | null | undefined;
938
+ errors?: z.objectInputType<{
939
+ paragraph_n: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
940
+ problem: z.ZodDefault<z.ZodOptional<z.ZodString>>;
941
+ excerpt: z.ZodDefault<z.ZodOptional<z.ZodString>>;
942
+ }, z.ZodTypeAny, "passthrough">[] | null | undefined;
943
+ }>;
944
+ export type IngestResult = z.infer<typeof ingestResultSchema>;
945
+ /** The predicate-kind catalog. Never gated; a failure here is a real outage. */
946
+ export declare const getPredicateCatalog: () => Promise<PredicateInfo[]>;
947
+ /**
948
+ * The header-field catalog for one CDTS coordinate. All four coordinates are
949
+ * REQUIRED by the handler (a partial scope is a 400, not an empty catalog),
950
+ * so the caller is refused locally rather than round-tripping a guaranteed
951
+ * failure.
952
+ */
953
+ export declare const getFieldCatalog: (scope: CdtsScope) => Promise<FieldCatalogEntry[]>;
954
+ /**
955
+ * The CDTS taxonomy tree, passed through verbatim from the platform. The Go
956
+ * handler deliberately does not re-model it ("the tree is large, nested, and
957
+ * owned by the platform"), so neither do we: the raw payload is returned and
958
+ * `taxonomyNodes` does a best-effort read for the scope picker, degrading to
959
+ * an empty list rather than guessing at a shape.
960
+ */
961
+ export declare const getCdtsTaxonomy: () => Promise<unknown>;
962
+ export interface TaxonomyNode {
963
+ label: string;
964
+ children: TaxonomyNode[];
965
+ }
966
+ /**
967
+ * Best-effort flatten of the platform tree into label/children pairs. Shape
968
+ * is not contractual (see above), so anything unrecognized yields [] and the
969
+ * UI falls back to free-text scope entry — never a crash on a tree we did not
970
+ * author.
971
+ */
972
+ export declare const taxonomyNodes: (raw: unknown) => TaxonomyNode[];
973
+ export interface EvaluateOptions {
974
+ /** Restrict to these V6 categories. An unknown category is a 400. */
975
+ categories?: string[];
976
+ /** Overrides the playbook's own scope; omitted → the playbook's scope. */
977
+ cdts?: CdtsScope;
978
+ }
979
+ /**
980
+ * Runs one clause against one playbook's effective rule set.
981
+ *
982
+ * IMPORTANT and surfaced in the UI: this evaluates the rules the playbook
983
+ * has STORED. A draft that has not been committed is not in the store and
984
+ * therefore cannot fire — "test it before you save it" is not something this
985
+ * endpoint can do, so the builder offers save-then-test instead of pretending.
986
+ */
987
+ export declare const evaluateAgainstPlaybook: (playbookId: string, clauseText: string, options?: EvaluateOptions) => Promise<EvaluateResult>;
988
+ export type IngestFormat = "word" | "pdf" | "wiki" | "markdown" | "tiptap";
989
+ /**
990
+ * Turns a customer playbook document into CANDIDATE rules. Nothing is
991
+ * persisted: the handler's own doc says the builder UI is expected to let a
992
+ * human review every candidate before it is written. `saveCandidateRule` is
993
+ * that accept step — review-before-accept is the feature, not a nicety.
994
+ *
995
+ * `format` is auto-detected from the filename when omitted.
996
+ */
997
+ export declare const ingestPlaybookDocument: (input: {
998
+ playbookId: string;
999
+ file: File;
1000
+ format?: IngestFormat;
1001
+ }) => Promise<IngestResult>;
1002
+ /**
1003
+ * Accepts one reviewed candidate into the playbook (POST /v1/rules — the same
1004
+ * single write path `commit:true` uses). The candidate is posted as authored:
1005
+ * unlike the panel's generic `createRule`, the predicate and the negotiation
1006
+ * ladder are preserved verbatim, because a candidate whose predicate is
1007
+ * rewritten on save is not the rule the reviewer approved.
1008
+ */
1009
+ export declare const saveCandidateRule: (rule: BuilderRule) => Promise<BuilderRule>;