codex-orchestrator 2.0.11 → 2.0.13

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 (262) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/README.md +25 -51
  3. package/dist/src/index.d.ts +2 -8
  4. package/dist/src/index.d.ts.map +1 -1
  5. package/dist/src/index.js +1 -4
  6. package/dist/src/index.js.map +1 -1
  7. package/dist/src/v2/acceptance-proof.d.ts +46 -31
  8. package/dist/src/v2/acceptance-proof.d.ts.map +1 -1
  9. package/dist/src/v2/acceptance-proof.js +157 -195
  10. package/dist/src/v2/acceptance-proof.js.map +1 -1
  11. package/dist/src/v2/active-attempt.d.ts +94 -0
  12. package/dist/src/v2/active-attempt.d.ts.map +1 -0
  13. package/dist/src/v2/active-attempt.js +200 -0
  14. package/dist/src/v2/active-attempt.js.map +1 -0
  15. package/dist/src/v2/adapters/command.d.ts +6 -0
  16. package/dist/src/v2/adapters/command.d.ts.map +1 -1
  17. package/dist/src/v2/adapters/command.js +43 -2
  18. package/dist/src/v2/adapters/command.js.map +1 -1
  19. package/dist/src/v2/candidate.d.ts +15 -31
  20. package/dist/src/v2/candidate.d.ts.map +1 -1
  21. package/dist/src/v2/candidate.js +7 -29
  22. package/dist/src/v2/candidate.js.map +1 -1
  23. package/dist/src/v2/checked-change.d.ts +3 -2
  24. package/dist/src/v2/checked-change.d.ts.map +1 -1
  25. package/dist/src/v2/checked-change.js +4 -3
  26. package/dist/src/v2/checked-change.js.map +1 -1
  27. package/dist/src/v2/cli-contract.d.ts +1 -1
  28. package/dist/src/v2/cli-contract.d.ts.map +1 -1
  29. package/dist/src/v2/cli-contract.js +4 -6
  30. package/dist/src/v2/cli-contract.js.map +1 -1
  31. package/dist/src/v2/cli.d.ts +8 -0
  32. package/dist/src/v2/cli.d.ts.map +1 -1
  33. package/dist/src/v2/cli.js +13 -0
  34. package/dist/src/v2/cli.js.map +1 -1
  35. package/dist/src/v2/code-review-report.d.ts +10 -18
  36. package/dist/src/v2/code-review-report.d.ts.map +1 -1
  37. package/dist/src/v2/code-review-report.js +63 -60
  38. package/dist/src/v2/code-review-report.js.map +1 -1
  39. package/dist/src/v2/codex-process.d.ts +6 -2
  40. package/dist/src/v2/codex-process.d.ts.map +1 -1
  41. package/dist/src/v2/codex-process.js +25 -9
  42. package/dist/src/v2/codex-process.js.map +1 -1
  43. package/dist/src/v2/config.d.ts +0 -2
  44. package/dist/src/v2/config.d.ts.map +1 -1
  45. package/dist/src/v2/config.js +3 -6
  46. package/dist/src/v2/config.js.map +1 -1
  47. package/dist/src/v2/contained-report-operation.d.ts +41 -196
  48. package/dist/src/v2/contained-report-operation.d.ts.map +1 -1
  49. package/dist/src/v2/contained-report-operation.js +139 -466
  50. package/dist/src/v2/contained-report-operation.js.map +1 -1
  51. package/dist/src/v2/containment.d.ts +1 -0
  52. package/dist/src/v2/containment.d.ts.map +1 -1
  53. package/dist/src/v2/containment.js +12 -2
  54. package/dist/src/v2/containment.js.map +1 -1
  55. package/dist/src/v2/delivery-authority.d.ts +26 -0
  56. package/dist/src/v2/delivery-authority.d.ts.map +1 -0
  57. package/dist/src/v2/delivery-authority.js +44 -0
  58. package/dist/src/v2/delivery-authority.js.map +1 -0
  59. package/dist/src/v2/direct-delivery.d.ts +16 -36
  60. package/dist/src/v2/direct-delivery.d.ts.map +1 -1
  61. package/dist/src/v2/direct-delivery.js +135 -122
  62. package/dist/src/v2/direct-delivery.js.map +1 -1
  63. package/dist/src/v2/immutable-workflow-publisher.d.ts.map +1 -1
  64. package/dist/src/v2/immutable-workflow-publisher.js +3 -1
  65. package/dist/src/v2/immutable-workflow-publisher.js.map +1 -1
  66. package/dist/src/v2/implementation-report.d.ts +3 -1
  67. package/dist/src/v2/implementation-report.d.ts.map +1 -1
  68. package/dist/src/v2/implementation-report.js +28 -10
  69. package/dist/src/v2/implementation-report.js.map +1 -1
  70. package/dist/src/v2/implementation-reviewer.d.ts +41 -12
  71. package/dist/src/v2/implementation-reviewer.d.ts.map +1 -1
  72. package/dist/src/v2/implementation-reviewer.js +114 -42
  73. package/dist/src/v2/implementation-reviewer.js.map +1 -1
  74. package/dist/src/v2/pending-effect-settlement.d.ts +44 -0
  75. package/dist/src/v2/pending-effect-settlement.d.ts.map +1 -0
  76. package/dist/src/v2/pending-effect-settlement.js +69 -0
  77. package/dist/src/v2/pending-effect-settlement.js.map +1 -0
  78. package/dist/src/v2/process-identity.d.ts +45 -0
  79. package/dist/src/v2/process-identity.d.ts.map +1 -0
  80. package/dist/src/v2/process-identity.js +118 -0
  81. package/dist/src/v2/process-identity.js.map +1 -0
  82. package/dist/src/v2/proof-report.d.ts +2 -1
  83. package/dist/src/v2/proof-report.d.ts.map +1 -1
  84. package/dist/src/v2/proof-report.js +10 -4
  85. package/dist/src/v2/proof-report.js.map +1 -1
  86. package/dist/src/v2/review-feedback-coordinator.d.ts +1 -1
  87. package/dist/src/v2/review-feedback-coordinator.d.ts.map +1 -1
  88. package/dist/src/v2/review-feedback-coordinator.js +1 -1
  89. package/dist/src/v2/review-feedback-coordinator.js.map +1 -1
  90. package/dist/src/v2/review-feedback.d.ts +14 -20
  91. package/dist/src/v2/review-feedback.d.ts.map +1 -1
  92. package/dist/src/v2/review-feedback.js +45 -87
  93. package/dist/src/v2/review-feedback.js.map +1 -1
  94. package/dist/src/v2/run-issue.d.ts +129 -88
  95. package/dist/src/v2/run-issue.d.ts.map +1 -1
  96. package/dist/src/v2/run-issue.js +1965 -2381
  97. package/dist/src/v2/run-issue.js.map +1 -1
  98. package/dist/src/v2/run-state-projections.d.ts +84 -0
  99. package/dist/src/v2/run-state-projections.d.ts.map +1 -0
  100. package/dist/src/v2/run-state-projections.js +142 -0
  101. package/dist/src/v2/run-state-projections.js.map +1 -0
  102. package/dist/src/v2/run-store.d.ts +99 -81
  103. package/dist/src/v2/run-store.d.ts.map +1 -1
  104. package/dist/src/v2/run-store.js +245 -542
  105. package/dist/src/v2/run-store.js.map +1 -1
  106. package/dist/src/v2/runtime-assets.d.ts +3 -0
  107. package/dist/src/v2/runtime-assets.d.ts.map +1 -1
  108. package/dist/src/v2/runtime-assets.js +104 -0
  109. package/dist/src/v2/runtime-assets.js.map +1 -1
  110. package/dist/src/v2/runtime.d.ts +56 -44
  111. package/dist/src/v2/runtime.d.ts.map +1 -1
  112. package/dist/src/v2/runtime.js +383 -503
  113. package/dist/src/v2/runtime.js.map +1 -1
  114. package/dist/src/v2/setup.js +0 -2
  115. package/dist/src/v2/setup.js.map +1 -1
  116. package/dist/src/v2/validation-progression.d.ts +70 -0
  117. package/dist/src/v2/validation-progression.d.ts.map +1 -0
  118. package/dist/src/v2/validation-progression.js +247 -0
  119. package/dist/src/v2/validation-progression.js.map +1 -0
  120. package/dist/src/v2/workflow-assets.d.ts +9 -3
  121. package/dist/src/v2/workflow-assets.d.ts.map +1 -1
  122. package/dist/src/v2/workflow-assets.js +256 -43
  123. package/dist/src/v2/workflow-assets.js.map +1 -1
  124. package/internal-workflow/docs/agents/bug-workflow-routing.md +9 -7
  125. package/internal-workflow/docs/agents/coding-skill-routing.md +170 -120
  126. package/internal-workflow/docs/agents/tool-usage.md +23 -12
  127. package/internal-workflow/manifest.json +1 -1
  128. package/internal-workflow/operations/code-review/SKILL.md +34 -15
  129. package/internal-workflow/operations/implementation/SKILL.md +21 -16
  130. package/internal-workflow/profiles/implementer.toml +9 -0
  131. package/internal-workflow/profiles/review_coordinator.toml +9 -0
  132. package/internal-workflow/profiles/spec_reviewer.toml +9 -0
  133. package/internal-workflow/profiles/standards_reviewer.toml +9 -0
  134. package/internal-workflow/schemas/code-review-v1.json +1 -1
  135. package/internal-workflow/schemas/implementation-report-v1.json +1 -1
  136. package/internal-workflow/schemas/proof-report-v1.json +1 -1
  137. package/internal-workflow/skills/bug-root-cause-explainer/SKILL.md +114 -0
  138. package/internal-workflow/skills/bug-root-cause-explainer/agents/openai.yaml +7 -0
  139. package/internal-workflow/skills/bug-root-cause-explainer/evals/evals.json +18 -0
  140. package/internal-workflow/skills/code-review/SKILL.md +84 -306
  141. package/internal-workflow/skills/code-review/agents/openai.yaml +5 -3
  142. package/internal-workflow/skills/code-review/evals/evals.json +83 -0
  143. package/internal-workflow/skills/code-review/references/standards-smells.md +41 -0
  144. package/internal-workflow/skills/diagnosing-bugs/SKILL.md +69 -32
  145. package/internal-workflow/skills/diagnosing-bugs/agents/openai.yaml +2 -2
  146. package/internal-workflow/skills/diagnosing-bugs/evals/evals.json +63 -0
  147. package/internal-workflow/skills/grilling/SKILL.md +51 -0
  148. package/internal-workflow/skills/grilling/agents/openai.yaml +6 -0
  149. package/internal-workflow/skills/grilling/evals/evals.json +47 -0
  150. package/internal-workflow/skills/implement/SKILL.md +135 -0
  151. package/internal-workflow/skills/implement/agents/openai.yaml +6 -0
  152. package/internal-workflow/skills/implement/evals/evals.json +150 -0
  153. package/internal-workflow/skills/plan/SKILL.md +59 -0
  154. package/internal-workflow/skills/plan/agents/openai.yaml +6 -0
  155. package/internal-workflow/skills/plan/evals/evals.json +36 -0
  156. package/internal-workflow/skills/prototype/LOGIC.md +130 -0
  157. package/internal-workflow/skills/prototype/SKILL.md +69 -0
  158. package/internal-workflow/skills/prototype/UI.md +157 -0
  159. package/internal-workflow/skills/prototype/agents/openai.yaml +6 -0
  160. package/internal-workflow/skills/prototype/evals/evals.json +67 -0
  161. package/internal-workflow/skills/research/SKILL.md +110 -0
  162. package/internal-workflow/skills/research/agents/openai.yaml +6 -0
  163. package/internal-workflow/skills/research/evals/evals.json +49 -0
  164. package/internal-workflow/skills/tdd/SKILL.md +72 -67
  165. package/internal-workflow/skills/tdd/agents/openai.yaml +2 -2
  166. package/internal-workflow/skills/tdd/evals/evals.json +12 -0
  167. package/internal-workflow/skills/tdd/mocking.md +48 -1
  168. package/internal-workflow/skills/tdd/refactoring.md +3 -3
  169. package/internal-workflow/skills/tickets-orchestrator/SKILL.md +199 -0
  170. package/internal-workflow/skills/tickets-orchestrator/agents/openai.yaml +6 -0
  171. package/internal-workflow/skills/tickets-orchestrator/evals/evals.json +126 -0
  172. package/internal-workflow/skills/tickets-orchestrator/references/delegate-integrate.md +83 -0
  173. package/internal-workflow/skills/tickets-orchestrator/references/finish-delivery.md +69 -0
  174. package/internal-workflow/skills/tickets-orchestrator/references/stop-completion.md +63 -0
  175. package/internal-workflow/skills/to-spec/SKILL.md +133 -0
  176. package/internal-workflow/skills/to-spec/agents/openai.yaml +6 -0
  177. package/internal-workflow/skills/to-spec/evals/evals.json +24 -0
  178. package/internal-workflow/skills/to-tickets/SKILL.md +189 -0
  179. package/internal-workflow/skills/to-tickets/agents/openai.yaml +6 -0
  180. package/internal-workflow/skills/to-tickets/evals/evals.json +79 -0
  181. package/internal-workflow/skills/to-tickets/references/publishing-details.md +117 -0
  182. package/package.json +1 -1
  183. package/dist/src/v2/proof-store.d.ts +0 -54
  184. package/dist/src/v2/proof-store.d.ts.map +0 -1
  185. package/dist/src/v2/proof-store.js +0 -301
  186. package/dist/src/v2/proof-store.js.map +0 -1
  187. package/dist/src/v2/route-continuations.d.ts +0 -32
  188. package/dist/src/v2/route-continuations.d.ts.map +0 -1
  189. package/dist/src/v2/route-continuations.js +0 -2
  190. package/dist/src/v2/route-continuations.js.map +0 -1
  191. package/dist/src/v2/route-coordinator.d.ts +0 -72
  192. package/dist/src/v2/route-coordinator.d.ts.map +0 -1
  193. package/dist/src/v2/route-coordinator.js +0 -275
  194. package/dist/src/v2/route-coordinator.js.map +0 -1
  195. package/dist/src/v2/route-decision.d.ts +0 -120
  196. package/dist/src/v2/route-decision.d.ts.map +0 -1
  197. package/dist/src/v2/route-decision.js +0 -380
  198. package/dist/src/v2/route-decision.js.map +0 -1
  199. package/dist/src/v2/spec-coordinator.d.ts +0 -73
  200. package/dist/src/v2/spec-coordinator.d.ts.map +0 -1
  201. package/dist/src/v2/spec-coordinator.js +0 -126
  202. package/dist/src/v2/spec-coordinator.js.map +0 -1
  203. package/dist/src/v2/spec-delivery.d.ts +0 -112
  204. package/dist/src/v2/spec-delivery.d.ts.map +0 -1
  205. package/dist/src/v2/spec-delivery.js +0 -336
  206. package/dist/src/v2/spec-delivery.js.map +0 -1
  207. package/dist/src/v2/triage-route.d.ts +0 -68
  208. package/dist/src/v2/triage-route.d.ts.map +0 -1
  209. package/dist/src/v2/triage-route.js +0 -223
  210. package/dist/src/v2/triage-route.js.map +0 -1
  211. package/dist/src/v2/waiting-human-coordinator.d.ts +0 -49
  212. package/dist/src/v2/waiting-human-coordinator.d.ts.map +0 -1
  213. package/dist/src/v2/waiting-human-coordinator.js +0 -509
  214. package/dist/src/v2/waiting-human-coordinator.js.map +0 -1
  215. package/dist/src/v2/waiting-human.d.ts +0 -143
  216. package/dist/src/v2/waiting-human.d.ts.map +0 -1
  217. package/dist/src/v2/waiting-human.js +0 -408
  218. package/dist/src/v2/waiting-human.js.map +0 -1
  219. package/internal-workflow/docs/agents/contract-test-ledger.md +0 -71
  220. package/internal-workflow/docs/agents/review-gates.md +0 -42
  221. package/internal-workflow/docs/agents/review-protocol.md +0 -98
  222. package/internal-workflow/evals/coding-skill-evals.json +0 -373
  223. package/internal-workflow/operations/ambiguity-review/SKILL.md +0 -5
  224. package/internal-workflow/operations/qualification-repair/SKILL.md +0 -17
  225. package/internal-workflow/operations/spec-author/SKILL.md +0 -12
  226. package/internal-workflow/operations/spec-review/SKILL.md +0 -12
  227. package/internal-workflow/operations/triage/SKILL.md +0 -12
  228. package/internal-workflow/profiles/analyst_deep.toml +0 -9
  229. package/internal-workflow/profiles/implementer_standard.toml +0 -9
  230. package/internal-workflow/profiles/proof_agent.toml +0 -8
  231. package/internal-workflow/profiles/reviewer_deep.toml +0 -9
  232. package/internal-workflow/profiles/reviewer_standard.toml +0 -9
  233. package/internal-workflow/schemas/ambiguity-review-v1.json +0 -1
  234. package/internal-workflow/schemas/spec-author-v1.json +0 -1
  235. package/internal-workflow/schemas/spec-review-v1.json +0 -30
  236. package/internal-workflow/schemas/triage-route-v1.json +0 -1
  237. package/internal-workflow/skills/agent-auto/SKILL.md +0 -19
  238. package/internal-workflow/skills/agent-auto/agents/openai.yaml +0 -6
  239. package/internal-workflow/skills/code-debugger/SKILL.md +0 -122
  240. package/internal-workflow/skills/code-debugger/agents/openai.yaml +0 -7
  241. package/internal-workflow/skills/code-review/references/bug-classes.md +0 -56
  242. package/internal-workflow/skills/code-review/references/cleanup-lens.md +0 -52
  243. package/internal-workflow/skills/code-review/references/framework-lenses.md +0 -34
  244. package/internal-workflow/skills/code-review/references/targeted-recipes.md +0 -49
  245. package/internal-workflow/skills/implementation-spec-maker/SKILL.md +0 -107
  246. package/internal-workflow/skills/implementation-spec-maker/agents/openai.yaml +0 -6
  247. package/internal-workflow/skills/implementation-spec-maker/references/source-modes.md +0 -32
  248. package/internal-workflow/skills/implementation-spec-maker/references/spec-template.md +0 -146
  249. package/internal-workflow/skills/implementation-spec-review/SKILL.md +0 -131
  250. package/internal-workflow/skills/implementation-spec-review/agents/openai.yaml +0 -6
  251. package/internal-workflow/skills/implementation-spec-review/evals/evals.json +0 -78
  252. package/internal-workflow/skills/implementation-spec-review/references/review-loop.md +0 -121
  253. package/internal-workflow/skills/small-task-implementer/SKILL.md +0 -112
  254. package/internal-workflow/skills/small-task-implementer/agents/openai.yaml +0 -6
  255. package/internal-workflow/skills/spec-implementer/SKILL.md +0 -133
  256. package/internal-workflow/skills/spec-implementer/agents/openai.yaml +0 -6
  257. package/internal-workflow/skills/spec-implementer/evals/evals.json +0 -30
  258. package/internal-workflow/skills/spec-implementer/references/review-loop.md +0 -100
  259. package/internal-workflow/skills/triage/AGENT-BRIEF.md +0 -192
  260. package/internal-workflow/skills/triage/OUT-OF-SCOPE.md +0 -101
  261. package/internal-workflow/skills/triage/SKILL.md +0 -134
  262. package/internal-workflow/skills/triage/agents/openai.yaml +0 -6
@@ -1,112 +0,0 @@
1
- import { type CodeReviewDefectV1 } from './code-review-report.js';
2
- export interface SpecEvidenceV1 {
3
- path: string;
4
- sha256: string;
5
- description: string;
6
- }
7
- export interface SpecActorV1 {
8
- attemptId: string;
9
- sessionId: string;
10
- }
11
- export interface SpecRevisionV1 {
12
- version: 1;
13
- revision: number;
14
- path: string;
15
- content: string;
16
- contentSha256: string;
17
- evidence: SpecEvidenceV1[];
18
- author: SpecActorV1;
19
- previousRevisionSha256: string | null;
20
- revisionSha256: string;
21
- }
22
- export interface SpecAcceptedRiskV1 {
23
- defectId: string;
24
- rationale: string;
25
- policy: string;
26
- acceptedBy: string;
27
- }
28
- export interface SpecReviewReportV1 {
29
- version: 1;
30
- targetRevision: number;
31
- targetSha256: string;
32
- mode: 'full' | 'closure';
33
- verdict: 'approved' | 'needs-work' | 'rejected';
34
- reviewer: SpecActorV1;
35
- coverage: string[];
36
- defects: CodeReviewDefectV1[];
37
- affectedDefectIds: string[];
38
- affectedContracts: string[];
39
- closureRequestSha256: string | null;
40
- acceptedRisks: SpecAcceptedRiskV1[];
41
- coverageInvalidated: boolean;
42
- }
43
- export interface FrozenSpecReceiptV1 {
44
- version: 1;
45
- issueNumber: number;
46
- runId: string;
47
- workflowGenerationSha256: string;
48
- revision: number;
49
- path: string;
50
- contentSha256: string;
51
- revisionSha256: string;
52
- reviewReportSha256: string;
53
- reviewerSessionId: string;
54
- receiptSha256: string;
55
- }
56
- export interface SpecDeliveryV1 {
57
- version: 1;
58
- issueNumber: number;
59
- runId: string;
60
- workflowGenerationSha256: string;
61
- stage: 'authoring' | 'review-full' | 'author-repair' | 'review-closure' | 'approved' | 'frozen' | 'rejected' | 'exhausted';
62
- revisions: SpecRevisionV1[];
63
- authorSessionId: string | null;
64
- review: {
65
- reviewer: SpecActorV1 | null;
66
- reviewerSessionId: string | null;
67
- mode: 'full' | 'closure' | null;
68
- coverage: string[];
69
- defects: CodeReviewDefectV1[];
70
- affectedDefectIds: string[];
71
- affectedContracts: string[];
72
- closureRequestSha256: string | null;
73
- acceptedRisks: SpecAcceptedRiskV1[];
74
- acceptedReportSha256: string | null;
75
- };
76
- budgets: {
77
- author: {
78
- reportRepairs: 0 | 1;
79
- };
80
- review: {
81
- reportRepairs: 0 | 1;
82
- };
83
- repairCycles: 0 | 1;
84
- };
85
- frozen?: FrozenSpecReceiptV1;
86
- }
87
- export declare function createInitialSpecDelivery(input: {
88
- issueNumber: number;
89
- runId: string;
90
- workflowGenerationSha256: string;
91
- }): SpecDeliveryV1;
92
- export declare function createSpecRevision(input: {
93
- revision: number;
94
- path: string;
95
- content: string;
96
- evidence: SpecEvidenceV1[];
97
- author: SpecActorV1;
98
- previousRevision: SpecRevisionV1 | null;
99
- }): SpecRevisionV1;
100
- export declare function hashSpecRevision(revision: Omit<SpecRevisionV1, 'revisionSha256'> | SpecRevisionV1): string;
101
- export declare function validateSpecRevision(value: unknown, previous: SpecRevisionV1 | null): SpecRevisionV1;
102
- export declare function reserveSpecAuthorSession(state: SpecDeliveryV1, sessionId: string): SpecDeliveryV1;
103
- export declare function acceptSpecRevision(state: SpecDeliveryV1, revision: SpecRevisionV1): SpecDeliveryV1;
104
- export declare function acceptSpecReview(state: SpecDeliveryV1, report: SpecReviewReportV1, reportSha256: string): SpecDeliveryV1;
105
- export declare function reserveSpecReviewerSession(state: SpecDeliveryV1, reviewerSessionId: string): SpecDeliveryV1;
106
- export declare function hashSpecClosureRequest(state: SpecDeliveryV1): string;
107
- export declare function consumeSpecReportRepair(state: SpecDeliveryV1, owner: 'author' | 'review'): SpecDeliveryV1;
108
- export declare function recoverMalformedSpecReport(state: SpecDeliveryV1, owner: 'author' | 'review'): SpecDeliveryV1;
109
- export declare function freezeApprovedSpec(state: SpecDeliveryV1): SpecDeliveryV1;
110
- export declare function validateFrozenSpecReceipt(value: unknown, state: SpecDeliveryV1): FrozenSpecReceiptV1;
111
- export declare function validateSpecDelivery(value: unknown): SpecDeliveryV1;
112
- //# sourceMappingURL=spec-delivery.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"spec-delivery.d.ts","sourceRoot":"","sources":["../../../src/v2/spec-delivery.ts"],"names":[],"mappings":"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"}
@@ -1,336 +0,0 @@
1
- import { createHash } from 'node:crypto';
2
- import { canonicalJson } from './containment.js';
3
- import { validateCodeReviewDefects } from './code-review-report.js';
4
- const SHA256 = /^[0-9a-f]{64}$/u;
5
- const MANDATORY_COVERAGE = [
6
- 'approved-product-intent', 'deterministic-executability', 'safety', 'scope', 'validation',
7
- ];
8
- export function createInitialSpecDelivery(input) {
9
- positive(input.issueNumber, 'issue number');
10
- text(input.runId, 'run ID');
11
- hash(input.workflowGenerationSha256, 'workflow generation hash');
12
- return {
13
- version: 1, ...input, stage: 'authoring', revisions: [], authorSessionId: null,
14
- review: { reviewer: null, reviewerSessionId: null, mode: null, coverage: [], defects: [], affectedDefectIds: [], affectedContracts: [], closureRequestSha256: null, acceptedRisks: [], acceptedReportSha256: null },
15
- budgets: { author: { reportRepairs: 0 }, review: { reportRepairs: 0 }, repairCycles: 0 },
16
- };
17
- }
18
- export function createSpecRevision(input) {
19
- const base = {
20
- version: 1, revision: input.revision, path: input.path, content: input.content,
21
- contentSha256: digest(input.content), evidence: structuredClone(input.evidence), author: structuredClone(input.author),
22
- previousRevisionSha256: input.previousRevision?.revisionSha256 ?? null,
23
- };
24
- return { ...base, revisionSha256: hashSpecRevision(base) };
25
- }
26
- export function hashSpecRevision(revision) {
27
- const { revisionSha256: _ignored, ...payload } = revision;
28
- return digest(`codex-orchestrator-spec-revision-v1\0${canonicalJson(payload)}`);
29
- }
30
- export function validateSpecRevision(value, previous) {
31
- exact(value, ['version', 'revision', 'path', 'content', 'contentSha256', 'evidence', 'author', 'previousRevisionSha256', 'revisionSha256'], 'spec revision');
32
- if (value.version !== 1)
33
- throw new Error('spec revision version is invalid');
34
- positive(value.revision, 'spec revision number');
35
- text(value.path, 'spec revision path');
36
- if (typeof value.content !== 'string' || value.content.length === 0)
37
- throw new Error('spec revision content is invalid');
38
- if (value.contentSha256 !== digest(value.content))
39
- throw new Error('spec revision content hash is invalid');
40
- actor(value.author, 'spec revision author');
41
- if (!Array.isArray(value.evidence) || value.evidence.length === 0)
42
- throw new Error('spec revision evidence is invalid');
43
- for (const evidence of value.evidence) {
44
- exact(evidence, ['path', 'sha256', 'description'], 'spec evidence');
45
- text(evidence.path, 'evidence path');
46
- hash(evidence.sha256, 'evidence hash');
47
- text(evidence.description, 'evidence description');
48
- }
49
- if (value.previousRevisionSha256 !== (previous?.revisionSha256 ?? null))
50
- throw new Error('spec revision chain is invalid');
51
- if (previous && (value.revision !== previous.revision + 1 || value.path !== previous.path))
52
- throw new Error('spec revision chain is not append-only');
53
- if (!previous && value.revision !== 1)
54
- throw new Error('first spec revision number is invalid');
55
- if (value.revisionSha256 !== hashSpecRevision(value))
56
- throw new Error('spec revision hash is invalid');
57
- return structuredClone(value);
58
- }
59
- export function reserveSpecAuthorSession(state, sessionId) {
60
- validateSpecDelivery(state);
61
- if (state.stage !== 'authoring' && state.stage !== 'author-repair')
62
- throw new Error('spec stage does not accept an author session');
63
- text(sessionId, 'spec author session ID');
64
- if (state.authorSessionId !== null && state.authorSessionId !== sessionId)
65
- throw new Error('spec author session changed');
66
- return validateSpecDelivery({ ...structuredClone(state), authorSessionId: sessionId });
67
- }
68
- export function acceptSpecRevision(state, revision) {
69
- if ((state.stage !== 'authoring' && state.stage !== 'author-repair') || state.authorSessionId === null
70
- || revision.author.sessionId !== state.authorSessionId)
71
- throw new Error('spec revision author correlation mismatch');
72
- const previous = state.revisions.at(-1) ?? null;
73
- const validated = validateSpecRevision(revision, previous);
74
- const defects = state.stage === 'author-repair'
75
- ? state.review.defects.map((defect) => state.review.affectedDefectIds.includes(defect.id) && ['open', 'reopened'].includes(defect.status)
76
- ? { ...defect, status: 'fixed', statusTargetRevision: validated.revision } : structuredClone(defect))
77
- : state.review.defects;
78
- const next = {
79
- ...structuredClone(state), stage: state.stage === 'authoring' ? 'review-full' : 'review-closure',
80
- revisions: [...state.revisions, validated],
81
- review: { ...structuredClone(state.review), defects },
82
- };
83
- if (next.stage === 'review-closure')
84
- next.review.closureRequestSha256 = hashSpecClosureRequest(next);
85
- return validateSpecDelivery(next);
86
- }
87
- export function acceptSpecReview(state, report, reportSha256) {
88
- hash(reportSha256, 'spec review report hash');
89
- const target = state.revisions.at(-1);
90
- validateReviewReport(report);
91
- validateCodeReviewDefects(report.defects, report.targetRevision);
92
- if (report.acceptedRisks.length !== 0)
93
- throw new Error('reviewer cannot authorize accepted risks');
94
- if (report.targetRevision !== target.revision || report.targetSha256 !== target.revisionSha256
95
- || report.mode !== (state.stage === 'review-full' ? 'full' : 'closure')
96
- || report.reviewer.sessionId === state.authorSessionId
97
- || state.revisions.some((revision) => revision.author.attemptId === report.reviewer.attemptId)
98
- || (state.review.reviewerSessionId !== null && report.reviewer.sessionId !== state.review.reviewerSessionId)
99
- || (state.review.reviewer !== null && report.reviewer.sessionId !== state.review.reviewer.sessionId)
100
- || report.closureRequestSha256 !== (state.stage === 'review-closure' ? state.review.closureRequestSha256 : null))
101
- throw new Error('spec review correlation mismatch');
102
- for (const required of MANDATORY_COVERAGE)
103
- if (!report.coverage.includes(required))
104
- throw new Error('spec review omitted mandatory coverage');
105
- if (report.mode === 'closure' && report.coverageInvalidated) {
106
- const next = structuredClone(state);
107
- next.stage = 'review-full';
108
- next.review.mode = 'full';
109
- next.review.closureRequestSha256 = null;
110
- next.review.affectedDefectIds = [];
111
- next.review.affectedContracts = [];
112
- return validateSpecDelivery(next);
113
- }
114
- const defects = report.mode === 'closure' ? mergeClosureDefects(state, report) : structuredClone(report.defects);
115
- if (report.mode === 'closure')
116
- validateClosure(state, report);
117
- if (report.verdict === 'approved') {
118
- const accepted = new Set(report.acceptedRisks.map((risk) => risk.defectId));
119
- const unresolved = defects.filter((defect) => ['blocker', 'execution-risk'].includes(defect.class) && !['verified', 'superseded'].includes(defect.status) && !accepted.has(defect.id));
120
- if (unresolved.length)
121
- throw new Error('approved spec review has unresolved mandatory defects');
122
- }
123
- const next = {
124
- ...structuredClone(state),
125
- stage: report.verdict === 'approved' ? 'approved'
126
- : report.verdict === 'needs-work' && state.budgets.repairCycles === 0 ? 'author-repair'
127
- : report.verdict === 'needs-work' ? 'exhausted' : 'rejected',
128
- review: {
129
- reviewer: structuredClone(report.reviewer), reviewerSessionId: report.reviewer.sessionId, mode: report.mode, coverage: sorted(report.coverage),
130
- defects: defects.sort((a, b) => a.id.localeCompare(b.id)),
131
- affectedDefectIds: report.verdict === 'needs-work' ? sorted(report.defects.filter((defect) => ['open', 'reopened'].includes(defect.status)).map((defect) => defect.id)) : [],
132
- affectedContracts: report.verdict === 'needs-work' ? sorted(report.affectedContracts) : [],
133
- closureRequestSha256: null, acceptedRisks: structuredClone(report.acceptedRisks), acceptedReportSha256: reportSha256,
134
- },
135
- budgets: {
136
- ...structuredClone(state.budgets),
137
- repairCycles: report.verdict === 'needs-work' && state.budgets.repairCycles === 0 ? 1 : state.budgets.repairCycles,
138
- },
139
- };
140
- return validateSpecDelivery(next);
141
- }
142
- export function reserveSpecReviewerSession(state, reviewerSessionId) {
143
- validateSpecDelivery(state);
144
- text(reviewerSessionId, 'spec reviewer session ID');
145
- if (state.stage !== 'review-full' && state.stage !== 'review-closure')
146
- throw new Error('spec stage does not accept a reviewer session');
147
- if (reviewerSessionId === state.authorSessionId)
148
- throw new Error('spec reviewer is not independent');
149
- if (state.review.reviewerSessionId !== null && state.review.reviewerSessionId !== reviewerSessionId)
150
- throw new Error('spec reviewer session changed');
151
- const next = structuredClone(state);
152
- next.review.reviewerSessionId = reviewerSessionId;
153
- return validateSpecDelivery(next);
154
- }
155
- export function hashSpecClosureRequest(state) {
156
- const target = state.revisions.at(-1);
157
- if (!target)
158
- throw new Error('Closure target revision is missing');
159
- return digest(`codex-orchestrator-spec-closure-v1\0${canonicalJson({
160
- targetRevision: target.revision, targetSha256: target.revisionSha256,
161
- affectedDefectIds: sorted(state.review.affectedDefectIds), affectedContracts: sorted(state.review.affectedContracts),
162
- defects: state.review.defects,
163
- })}`);
164
- }
165
- export function consumeSpecReportRepair(state, owner) {
166
- if (state.budgets[owner].reportRepairs !== 0)
167
- throw new Error(`${owner} report repair budget exhausted`);
168
- return { ...structuredClone(state), budgets: { ...structuredClone(state.budgets), [owner]: { ...state.budgets[owner], reportRepairs: 1 } } };
169
- }
170
- export function recoverMalformedSpecReport(state, owner) {
171
- return validateSpecDelivery(consumeSpecReportRepair(state, owner));
172
- }
173
- export function freezeApprovedSpec(state) {
174
- validateSpecDelivery(state);
175
- if (state.stage !== 'approved' || !state.review.reviewer || !state.review.acceptedReportSha256)
176
- throw new Error('spec is not independently approved');
177
- const revision = state.revisions.at(-1);
178
- const payload = {
179
- version: 1, issueNumber: state.issueNumber, runId: state.runId,
180
- workflowGenerationSha256: state.workflowGenerationSha256, revision: revision.revision, path: revision.path,
181
- contentSha256: revision.contentSha256, revisionSha256: revision.revisionSha256,
182
- reviewReportSha256: state.review.acceptedReportSha256, reviewerSessionId: state.review.reviewer.sessionId,
183
- };
184
- const frozen = { ...payload, receiptSha256: frozenDigest(payload) };
185
- const next = { ...structuredClone(state), stage: 'frozen', frozen };
186
- return validateSpecDelivery(next);
187
- }
188
- export function validateFrozenSpecReceipt(value, state) {
189
- exact(value, ['version', 'issueNumber', 'runId', 'workflowGenerationSha256', 'revision', 'path', 'contentSha256', 'revisionSha256', 'reviewReportSha256', 'reviewerSessionId', 'receiptSha256'], 'frozen spec receipt');
190
- const revision = state.revisions.at(-1);
191
- if (!revision || value.version !== 1 || value.issueNumber !== state.issueNumber || value.runId !== state.runId
192
- || value.workflowGenerationSha256 !== state.workflowGenerationSha256 || value.revision !== revision.revision
193
- || value.path !== revision.path || value.contentSha256 !== revision.contentSha256 || value.revisionSha256 !== revision.revisionSha256
194
- || value.reviewReportSha256 !== state.review.acceptedReportSha256 || value.reviewerSessionId !== state.review.reviewer?.sessionId) {
195
- throw new Error('frozen spec receipt binding is invalid');
196
- }
197
- const { receiptSha256, ...payload } = value;
198
- if (receiptSha256 !== frozenDigest(payload))
199
- throw new Error('frozen spec receipt hash is invalid');
200
- return structuredClone(value);
201
- }
202
- export function validateSpecDelivery(value) {
203
- const optional = ['frozen'].filter((key) => own(value, key));
204
- exact(value, ['version', 'issueNumber', 'runId', 'workflowGenerationSha256', 'stage', 'revisions', 'authorSessionId', 'review', 'budgets', ...optional], 'spec delivery');
205
- if (value.version !== 1)
206
- throw new Error('spec delivery version is invalid');
207
- positive(value.issueNumber, 'issue number');
208
- text(value.runId, 'run ID');
209
- hash(value.workflowGenerationSha256, 'workflow generation hash');
210
- if (!['authoring', 'review-full', 'author-repair', 'review-closure', 'approved', 'frozen', 'rejected', 'exhausted'].includes(value.stage))
211
- throw new Error('spec delivery stage is invalid');
212
- if (!Array.isArray(value.revisions))
213
- throw new Error('spec revisions are invalid');
214
- let previous = null;
215
- for (const revision of value.revisions)
216
- previous = validateSpecRevision(revision, previous);
217
- exact(value.budgets, ['author', 'review', 'repairCycles'], 'spec budgets');
218
- exact(value.budgets.author, ['reportRepairs'], 'author budget');
219
- exact(value.budgets.review, ['reportRepairs'], 'review budget');
220
- if (![value.budgets.author.reportRepairs, value.budgets.review.reportRepairs].every((count) => count === 0 || count === 1))
221
- throw new Error('spec budget is invalid');
222
- if (![0, 1].includes(value.budgets.repairCycles))
223
- throw new Error('spec repair cycle budget is invalid');
224
- validateReviewState(value.review);
225
- const stage = value.stage;
226
- if (stage === 'authoring' && value.revisions.length !== 0)
227
- throw new Error('authoring stage has revisions');
228
- if (stage !== 'authoring' && value.revisions.length === 0)
229
- throw new Error('spec stage requires a revision');
230
- if (stage === 'approved' && (!value.review.reviewer || !value.review.acceptedReportSha256))
231
- throw new Error('approved spec is missing review authority');
232
- if (stage === 'frozen')
233
- validateFrozenSpecReceipt(value.frozen, value);
234
- else if (own(value, 'frozen'))
235
- throw new Error('non-frozen spec has a frozen receipt');
236
- return structuredClone(value);
237
- }
238
- function validateClosure(state, report) {
239
- if (canonicalJson(sorted(report.affectedDefectIds)) !== canonicalJson(sorted(state.review.affectedDefectIds)))
240
- throw new Error('Closure affected defect IDs mismatch');
241
- const reported = new Map(report.defects.map((defect) => [defect.id, defect]));
242
- for (const defect of state.review.defects) {
243
- const next = reported.get(defect.id);
244
- if (state.review.affectedDefectIds.includes(defect.id) && !next)
245
- throw new Error('Closure omitted affected defect IDs');
246
- if (!state.review.affectedDefectIds.includes(defect.id) && next && canonicalJson(next) !== canonicalJson(defect))
247
- throw new Error('Closure changed unaffected defect');
248
- }
249
- }
250
- function mergeClosureDefects(state, report) {
251
- const reported = new Map(report.defects.map((defect) => [defect.id, defect]));
252
- const affected = new Set(state.review.affectedDefectIds);
253
- const merged = state.review.defects.map((defect) => {
254
- const next = reported.get(defect.id);
255
- if (!affected.has(defect.id))
256
- return structuredClone(defect);
257
- if (!next)
258
- throw new Error('Closure omitted affected defect IDs');
259
- for (const field of ['id', 'class', 'invariant', 'failure', 'introducedTargetRevision']) {
260
- if (canonicalJson(defect[field]) !== canonicalJson(next[field]))
261
- throw new Error(`Closure changed immutable defect field: ${field}`);
262
- }
263
- reported.delete(defect.id);
264
- return structuredClone(next);
265
- });
266
- for (const defect of reported.values()) {
267
- if (defect.status !== 'open' && defect.status !== 'reopened')
268
- throw new Error('Closure introduced invalid defect');
269
- merged.push(structuredClone(defect));
270
- }
271
- return merged;
272
- }
273
- function validateReviewReport(value) {
274
- exact(value, ['version', 'targetRevision', 'targetSha256', 'mode', 'verdict', 'reviewer', 'coverage', 'defects', 'affectedDefectIds', 'affectedContracts', 'closureRequestSha256', 'acceptedRisks', 'coverageInvalidated'], 'spec review report');
275
- if (value.version !== 1)
276
- throw new Error('spec review report version is invalid');
277
- positive(value.targetRevision, 'review target revision');
278
- hash(value.targetSha256, 'review target hash');
279
- actor(value.reviewer, 'reviewer');
280
- if (!['full', 'closure'].includes(value.mode) || !['approved', 'needs-work', 'rejected'].includes(value.verdict))
281
- throw new Error('spec review mode/verdict is invalid');
282
- strings(value.coverage, 'review coverage');
283
- strings(value.affectedDefectIds, 'affected defect IDs');
284
- strings(value.affectedContracts, 'affected contracts');
285
- if (!Array.isArray(value.defects) || !Array.isArray(value.acceptedRisks) || typeof value.coverageInvalidated !== 'boolean')
286
- throw new Error('spec review collections are invalid');
287
- if ((value.mode === 'full') !== (value.closureRequestSha256 === null))
288
- throw new Error('spec review Closure hash is invalid');
289
- if (value.closureRequestSha256 !== null)
290
- hash(value.closureRequestSha256, 'Closure request hash');
291
- for (const risk of value.acceptedRisks) {
292
- exact(risk, ['defectId', 'rationale', 'policy', 'acceptedBy'], 'accepted risk');
293
- text(risk.defectId, 'risk defect ID');
294
- text(risk.rationale, 'risk rationale');
295
- text(risk.policy, 'risk policy');
296
- text(risk.acceptedBy, 'risk authority');
297
- }
298
- }
299
- function validateReviewState(value) {
300
- exact(value, ['reviewer', 'reviewerSessionId', 'mode', 'coverage', 'defects', 'affectedDefectIds', 'affectedContracts', 'closureRequestSha256', 'acceptedRisks', 'acceptedReportSha256'], 'spec review state');
301
- if (value.reviewer !== null)
302
- actor(value.reviewer, 'persisted reviewer');
303
- if (value.reviewerSessionId !== null)
304
- text(value.reviewerSessionId, 'persisted reviewer session ID');
305
- if (value.reviewer !== null && value.reviewer.sessionId !== value.reviewerSessionId)
306
- throw new Error('persisted reviewer session correlation mismatch');
307
- if (value.mode !== null && !['full', 'closure'].includes(value.mode))
308
- throw new Error('persisted review mode is invalid');
309
- strings(value.coverage, 'persisted coverage');
310
- strings(value.affectedDefectIds, 'persisted affected defect IDs');
311
- strings(value.affectedContracts, 'persisted affected contracts');
312
- if (!Array.isArray(value.defects) || !Array.isArray(value.acceptedRisks))
313
- throw new Error('persisted review collections are invalid');
314
- if (value.closureRequestSha256 !== null)
315
- hash(value.closureRequestSha256, 'persisted Closure hash');
316
- if (value.acceptedReportSha256 !== null)
317
- hash(value.acceptedReportSha256, 'persisted report hash');
318
- }
319
- function frozenDigest(payload) { return digest(`codex-orchestrator-frozen-spec-v1\0${canonicalJson(payload)}`); }
320
- function digest(value) { return createHash('sha256').update(value, 'utf8').digest('hex'); }
321
- function sorted(values) { return [...new Set(values)].sort(); }
322
- function strings(value, field) { if (!Array.isArray(value) || value.some((item) => typeof item !== 'string' || !item.trim()))
323
- throw new Error(`${field} is invalid`); }
324
- function actor(value, field) { exact(value, ['attemptId', 'sessionId'], field); text(value.attemptId, `${field} attempt ID`); text(value.sessionId, `${field} session ID`); }
325
- function text(value, field) { if (typeof value !== 'string' || !value.trim())
326
- throw new Error(`${field} is invalid`); }
327
- function positive(value, field) { if (!Number.isSafeInteger(value) || value < 1)
328
- throw new Error(`${field} is invalid`); }
329
- function hash(value, field) { if (typeof value !== 'string' || !SHA256.test(value))
330
- throw new Error(`${field} is invalid`); }
331
- function own(value, key) { return typeof value === 'object' && value !== null && Object.prototype.hasOwnProperty.call(value, key); }
332
- function exact(value, keys, field) {
333
- if (typeof value !== 'object' || value === null || Array.isArray(value) || canonicalJson(Object.keys(value).sort()) !== canonicalJson([...keys].sort()))
334
- throw new Error(`${field} has unknown or missing keys`);
335
- }
336
- //# sourceMappingURL=spec-delivery.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"spec-delivery.js","sourceRoot":"","sources":["../../../src/v2/spec-delivery.ts"],"names":[],"mappings":"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"}
@@ -1,68 +0,0 @@
1
- declare const evidenceKinds: readonly ["issue", "comment", "code", "caller", "test", "instruction", "context", "domain", "adr", "behavior"];
2
- interface Evidence {
3
- kind: typeof evidenceKinds[number];
4
- location: string;
5
- summary: string;
6
- }
7
- interface DirectRoute {
8
- summary: string;
9
- behaviors: string[];
10
- verification: string[];
11
- }
12
- interface SpecRequiredRoute {
13
- summary: string;
14
- complexityReasons: string[];
15
- specMode: 'compact' | 'standard';
16
- reviewFocus: string[];
17
- }
18
- interface AwaitingUserRoute {
19
- outcomes: Array<{
20
- id: string;
21
- title: string;
22
- behaviorDelta: string;
23
- evidence: string[];
24
- }>;
25
- absenceOfAuthorizedChoiceEvidence: string[];
26
- recommendation: string;
27
- question: string;
28
- }
29
- interface BlockerRoute {
30
- kind: 'external' | 'safety' | 'exhausted';
31
- code: string;
32
- summary: string;
33
- evidence: string[];
34
- }
35
- interface TriageRouteBase {
36
- version: 1;
37
- inspectedEvidence: Evidence[];
38
- assumptions: string[];
39
- }
40
- export type TriageRouteV1 = TriageRouteBase & ({
41
- status: 'direct';
42
- direct: DirectRoute;
43
- specRequired: null;
44
- awaitingUser: null;
45
- blocker: null;
46
- } | {
47
- status: 'spec-required';
48
- direct: null;
49
- specRequired: SpecRequiredRoute;
50
- awaitingUser: null;
51
- blocker: null;
52
- } | {
53
- status: 'awaiting-user';
54
- direct: null;
55
- specRequired: null;
56
- awaitingUser: AwaitingUserRoute;
57
- blocker: null;
58
- } | {
59
- status: 'blocked';
60
- direct: null;
61
- specRequired: null;
62
- awaitingUser: null;
63
- blocker: BlockerRoute;
64
- });
65
- export declare function validateTriageRoute(value: unknown): TriageRouteV1;
66
- export declare function triageRouteOutputSchema(): Record<string, unknown>;
67
- export {};
68
- //# sourceMappingURL=triage-route.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"triage-route.d.ts","sourceRoot":"","sources":["../../../src/v2/triage-route.ts"],"names":[],"mappings":"AAKA,QAAA,MAAM,aAAa,gHAET,CAAC;AAEX,UAAU,QAAQ;IAChB,IAAI,EAAE,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,WAAW;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,UAAU,iBAAiB;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,QAAQ,EAAE,SAAS,GAAG,UAAU,CAAC;IACjC,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,UAAU,iBAAiB;IACzB,QAAQ,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IAC1F,iCAAiC,EAAE,MAAM,EAAE,CAAC;IAC5C,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,YAAY;IACpB,IAAI,EAAE,UAAU,GAAG,QAAQ,GAAG,WAAW,CAAC;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,UAAU,eAAe;IACvB,OAAO,EAAE,CAAC,CAAC;IACX,iBAAiB,EAAE,QAAQ,EAAE,CAAC;IAC9B,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,MAAM,aAAa,GAAG,eAAe,GAAG,CAC1C;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,WAAW,CAAC;IAAC,YAAY,EAAE,IAAI,CAAC;IAAC,YAAY,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,IAAI,CAAA;CAAE,GAChG;IAAE,MAAM,EAAE,eAAe,CAAC;IAAC,MAAM,EAAE,IAAI,CAAC;IAAC,YAAY,EAAE,iBAAiB,CAAC;IAAC,YAAY,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,IAAI,CAAA;CAAE,GAC7G;IAAE,MAAM,EAAE,eAAe,CAAC;IAAC,MAAM,EAAE,IAAI,CAAC;IAAC,YAAY,EAAE,IAAI,CAAC;IAAC,YAAY,EAAE,iBAAiB,CAAC;IAAC,OAAO,EAAE,IAAI,CAAA;CAAE,GAC7G;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,IAAI,CAAC;IAAC,YAAY,EAAE,IAAI,CAAC;IAAC,YAAY,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,YAAY,CAAA;CAAE,CACrG,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,CAkCjE;AAED,wBAAgB,uBAAuB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAOjE"}