@jterrats/open-orchestra 0.4.2-beta.1 → 0.5.0-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 (170) hide show
  1. package/AGENTS.md +5 -3
  2. package/README.md +29 -5
  3. package/dist/advisory-artifacts.d.ts +20 -0
  4. package/dist/advisory-artifacts.js +136 -0
  5. package/dist/advisory-artifacts.js.map +1 -0
  6. package/dist/assets/web-console.js +436 -4
  7. package/dist/cli.js +16 -117
  8. package/dist/cli.js.map +1 -1
  9. package/dist/command-manifest.d.ts +6 -0
  10. package/dist/command-manifest.js +141 -43
  11. package/dist/command-manifest.js.map +1 -1
  12. package/dist/command-utils.d.ts +5 -0
  13. package/dist/command-utils.js +23 -0
  14. package/dist/command-utils.js.map +1 -1
  15. package/dist/commands.d.ts +7 -42
  16. package/dist/commands.js +214 -1356
  17. package/dist/commands.js.map +1 -1
  18. package/dist/constants.js +3 -0
  19. package/dist/constants.js.map +1 -1
  20. package/dist/context-budget.d.ts +4 -0
  21. package/dist/context-budget.js +119 -0
  22. package/dist/context-budget.js.map +1 -0
  23. package/dist/delivery-commands.d.ts +10 -0
  24. package/dist/delivery-commands.js +152 -0
  25. package/dist/delivery-commands.js.map +1 -0
  26. package/dist/github.d.ts +50 -1
  27. package/dist/github.js +234 -0
  28. package/dist/github.js.map +1 -1
  29. package/dist/health-checks.d.ts +1 -0
  30. package/dist/health-checks.js +11 -1
  31. package/dist/health-checks.js.map +1 -1
  32. package/dist/health-commands.js +2 -0
  33. package/dist/health-commands.js.map +1 -1
  34. package/dist/mcp-oauth-proxy.d.ts +32 -0
  35. package/dist/mcp-oauth-proxy.js +120 -0
  36. package/dist/mcp-oauth-proxy.js.map +1 -1
  37. package/dist/memory.d.ts +2 -1
  38. package/dist/memory.js +71 -10
  39. package/dist/memory.js.map +1 -1
  40. package/dist/package-update-check.d.ts +5 -1
  41. package/dist/package-update-check.js +20 -8
  42. package/dist/package-update-check.js.map +1 -1
  43. package/dist/planning-commands.d.ts +14 -0
  44. package/dist/planning-commands.js +372 -0
  45. package/dist/planning-commands.js.map +1 -0
  46. package/dist/release-candidate.d.ts +2 -0
  47. package/dist/release-candidate.js +9 -14
  48. package/dist/release-candidate.js.map +1 -1
  49. package/dist/release-commands.d.ts +2 -0
  50. package/dist/release-commands.js +58 -6
  51. package/dist/release-commands.js.map +1 -1
  52. package/dist/release-readiness.d.ts +49 -0
  53. package/dist/release-readiness.js +172 -0
  54. package/dist/release-readiness.js.map +1 -0
  55. package/dist/runtime-commands.js +11 -4
  56. package/dist/runtime-commands.js.map +1 -1
  57. package/dist/runtime-execution-renderer.js +2 -0
  58. package/dist/runtime-execution-renderer.js.map +1 -1
  59. package/dist/runtime-execution.d.ts +4 -2
  60. package/dist/runtime-execution.js +11 -4
  61. package/dist/runtime-execution.js.map +1 -1
  62. package/dist/setup-agents-import.d.ts +42 -0
  63. package/dist/setup-agents-import.js +335 -0
  64. package/dist/setup-agents-import.js.map +1 -0
  65. package/dist/skills-catalog-service.d.ts +2 -0
  66. package/dist/skills-catalog-service.js +8 -0
  67. package/dist/skills-catalog-service.js.map +1 -0
  68. package/dist/skills-catalog.d.ts +2 -0
  69. package/dist/skills-catalog.js +389 -0
  70. package/dist/skills-catalog.js.map +1 -0
  71. package/dist/skills-commands.js +1 -11
  72. package/dist/skills-commands.js.map +1 -1
  73. package/dist/skills-events.d.ts +9 -0
  74. package/dist/skills-events.js +50 -0
  75. package/dist/skills-events.js.map +1 -0
  76. package/dist/skills-memory.d.ts +18 -0
  77. package/dist/skills-memory.js +127 -0
  78. package/dist/skills-memory.js.map +1 -0
  79. package/dist/skills-planning.d.ts +2 -0
  80. package/dist/skills-planning.js +87 -0
  81. package/dist/skills-planning.js.map +1 -0
  82. package/dist/skills-render.d.ts +14 -0
  83. package/dist/skills-render.js +83 -0
  84. package/dist/skills-render.js.map +1 -0
  85. package/dist/skills-validation.d.ts +2 -0
  86. package/dist/skills-validation.js +49 -0
  87. package/dist/skills-validation.js.map +1 -0
  88. package/dist/skills.d.ts +6 -42
  89. package/dist/skills.js +6 -773
  90. package/dist/skills.js.map +1 -1
  91. package/dist/task-graph-commands.d.ts +14 -0
  92. package/dist/task-graph-commands.js +367 -0
  93. package/dist/task-graph-commands.js.map +1 -0
  94. package/dist/tool-commands.js +8 -0
  95. package/dist/tool-commands.js.map +1 -1
  96. package/dist/types/context.d.ts +12 -0
  97. package/dist/types/context.js +2 -0
  98. package/dist/types/context.js.map +1 -0
  99. package/dist/types/metrics.d.ts +114 -0
  100. package/dist/types/metrics.js +2 -0
  101. package/dist/types/metrics.js.map +1 -0
  102. package/dist/types/model-config.d.ts +212 -0
  103. package/dist/types/model-config.js +2 -0
  104. package/dist/types/model-config.js.map +1 -0
  105. package/dist/types/runtime.d.ts +93 -0
  106. package/dist/types/runtime.js +2 -0
  107. package/dist/types/runtime.js.map +1 -0
  108. package/dist/types/skills.d.ts +147 -0
  109. package/dist/types/skills.js +2 -0
  110. package/dist/types/skills.js.map +1 -0
  111. package/dist/types/tasks.d.ts +171 -0
  112. package/dist/types/tasks.js +2 -0
  113. package/dist/types/tasks.js.map +1 -0
  114. package/dist/types/workflow-run.d.ts +79 -0
  115. package/dist/types/workflow-run.js +2 -0
  116. package/dist/types/workflow-run.js.map +1 -0
  117. package/dist/types.d.ts +13 -798
  118. package/dist/types.js +1 -1
  119. package/dist/types.js.map +1 -1
  120. package/dist/upgrade-commands.d.ts +2 -0
  121. package/dist/upgrade-commands.js +65 -0
  122. package/dist/upgrade-commands.js.map +1 -0
  123. package/dist/web-api-read-routes.d.ts +5 -0
  124. package/dist/web-api-read-routes.js +37 -0
  125. package/dist/web-api-read-routes.js.map +1 -0
  126. package/dist/web-api.d.ts +1 -3
  127. package/dist/web-api.js +145 -44
  128. package/dist/web-api.js.map +1 -1
  129. package/dist/web-console-sections.d.ts +2 -0
  130. package/dist/web-console-sections.js +7 -0
  131. package/dist/web-console-sections.js.map +1 -0
  132. package/dist/web-console.js +23 -3
  133. package/dist/web-console.js.map +1 -1
  134. package/dist/workflow-approval-service.d.ts +9 -0
  135. package/dist/workflow-approval-service.js +126 -0
  136. package/dist/workflow-approval-service.js.map +1 -0
  137. package/dist/workflow-approval-utils.d.ts +10 -0
  138. package/dist/workflow-approval-utils.js +82 -0
  139. package/dist/workflow-approval-utils.js.map +1 -0
  140. package/dist/workflow-budget-utils.d.ts +7 -0
  141. package/dist/workflow-budget-utils.js +96 -0
  142. package/dist/workflow-budget-utils.js.map +1 -0
  143. package/dist/workflow-evidence-service.d.ts +7 -0
  144. package/dist/workflow-evidence-service.js +100 -0
  145. package/dist/workflow-evidence-service.js.map +1 -0
  146. package/dist/workflow-run-commands.d.ts +8 -0
  147. package/dist/workflow-run-commands.js +479 -0
  148. package/dist/workflow-run-commands.js.map +1 -0
  149. package/dist/workflow-services.d.ts +8 -18
  150. package/dist/workflow-services.js +30 -481
  151. package/dist/workflow-services.js.map +1 -1
  152. package/dist/workflow-summary-service.d.ts +4 -0
  153. package/dist/workflow-summary-service.js +82 -0
  154. package/dist/workflow-summary-service.js.map +1 -0
  155. package/dist/workflow-templates.d.ts +1 -0
  156. package/dist/workflow-templates.js +1 -0
  157. package/dist/workflow-templates.js.map +1 -1
  158. package/dist/workspace.d.ts +18 -1
  159. package/dist/workspace.js +72 -4
  160. package/dist/workspace.js.map +1 -1
  161. package/docs/command-contracts.md +22 -0
  162. package/docs/mcp-oauth-proxy-evaluation.md +14 -0
  163. package/docs/orchestra-mvp.md +158 -114
  164. package/docs/package-naming.md +20 -0
  165. package/docs/persona-workflows.md +209 -0
  166. package/docs/runtime-adapters.md +19 -14
  167. package/docs/runtime-llm-flow.md +29 -28
  168. package/docs/setup-agents-bridge.md +61 -0
  169. package/docs/traceability-flow.md +89 -0
  170. package/package.json +9 -7
package/dist/types.d.ts CHANGED
@@ -1,98 +1,14 @@
1
- export type TaskStatus = "pending" | "ready" | "in_progress" | "blocked" | "review" | "approved" | "rejected" | "done" | "canceled" | "archived";
2
- export type ReviewResult = "approve" | "block" | "changes";
3
- export type Severity = "info" | "low" | "medium" | "high" | "critical";
4
- export type EvidenceType = "command" | "file" | "screenshot" | "trace" | "video" | "log" | "report";
5
- export type SkillLoadBudget = "small" | "normal" | "large";
6
- export type SkillRenderTarget = "generic" | "claude" | "cursor" | "codex" | "vscode" | "windsurf";
7
- export type RuntimeAdapterKind = "llm" | "ide" | "cli";
8
- export type RuntimeExecutionId = "claude-cli" | "codex-cli" | "cursor-cli" | "vscode-agent" | "windsurf-agent" | "generic-runtime";
9
- export type RuntimeDelegationMode = "runtime-native" | "brief-only";
10
- export interface RuntimeAdapter {
11
- target: SkillRenderTarget;
12
- label: string;
13
- kind: RuntimeAdapterKind;
14
- defaultInstructionFiles: string[];
15
- supportsStructuredPayload: boolean;
16
- supportsManagedBlocks: boolean;
17
- supportsImports: boolean;
18
- guidance: string;
19
- }
20
- export interface RuntimeExecutionCapabilities {
21
- nonInteractive: boolean;
22
- promptInjection: boolean;
23
- structuredOutput: boolean;
24
- fileEdits: boolean;
25
- testExecution: boolean;
26
- evidenceReturn: boolean;
27
- requiresTty: boolean;
28
- requiresUserApproval: boolean;
29
- resumeSession: boolean;
30
- }
31
- export interface RuntimeSubagentCapabilities {
32
- runtimeNative: boolean;
33
- parallel: boolean;
34
- namedRoles: boolean;
35
- forkedContext: boolean;
36
- structuredHandoff: boolean;
37
- fileOwnership: boolean;
38
- requiresParentApproval: boolean;
39
- }
40
- export interface RuntimeExecutionAdapter {
41
- id: RuntimeExecutionId;
42
- target: SkillRenderTarget;
43
- label: string;
44
- kind: RuntimeAdapterKind;
45
- summary: string;
46
- execution: RuntimeExecutionCapabilities;
47
- subagents: RuntimeSubagentCapabilities;
48
- briefOnlyFallback: boolean;
49
- directProviderApiAllowed: false;
50
- guidance: string;
51
- }
52
- export interface RuntimeExecutorConfig {
53
- executor?: RuntimeExecutionId;
54
- }
55
- export interface RuntimeDelegationPolicy {
56
- mode: RuntimeDelegationMode;
57
- allowDirectProviderApi: boolean;
58
- }
59
- export interface RuntimeExecutionPolicy {
60
- defaults?: RuntimeExecutorConfig;
61
- byRole: Record<string, RuntimeExecutorConfig>;
62
- byTask: Record<string, RuntimeExecutorConfig>;
63
- delegation: RuntimeDelegationPolicy;
64
- }
65
- export interface RuntimeSelection {
66
- taskId: string;
67
- role: string;
68
- runtime: RuntimeExecutionAdapter;
69
- source: "explicit" | "task" | "role" | "default" | "fallback";
70
- directProviderApiAllowed: false;
71
- }
72
- export interface RuntimeDelegationAssignment {
73
- role: string;
74
- paths: string[];
75
- allowedCommands: string[];
76
- expectedArtifacts: string[];
77
- }
78
- export interface RuntimeBrief {
79
- taskId: string;
80
- runtime: RuntimeExecutionId;
81
- artifact: string;
82
- content: string;
83
- mode: "brief-only";
84
- directProviderApiAllowed: false;
85
- }
86
- export interface RuntimeDelegationPacket {
87
- taskId: string;
88
- runtime: RuntimeExecutionId;
89
- artifact: string;
90
- content: string;
91
- mode: RuntimeDelegationMode;
92
- directProviderApiAllowed: false;
93
- assignments: RuntimeDelegationAssignment[];
94
- requiresApproval: boolean;
95
- }
1
+ import type { ContextBudgetMetadata } from "./types/context.js";
2
+ import type { ModelProvenanceRecord, TelemetryConsentState } from "./types/model-config.js";
3
+ import type { CollaborationFlowRecommendation, MemoryPacket, SkillPlan, SkillRenderTarget, WorkflowTemplateSelection } from "./types/skills.js";
4
+ import type { EventEntry, LockEntry, Task, TaskStatus } from "./types/tasks.js";
5
+ export type { ContextBudgetMetadata, ContextBudgetSection, } from "./types/context.js";
6
+ export type { BudgetLimit, BudgetPolicy, ConfiguredProviderSummary, GitHubConfig, GitHubNotificationConfig, ModelMessage, ModelProvider, ModelProviderCapabilities, ModelProviderError, ModelProvenanceInput, ModelProvenanceRecord, ModelRequest, ModelResponse, ModelStreamEvent, NotificationChannelResult, NotificationsConfig, PhaseExecutionMode, PhaseExecutorPhase, PhaseLlmResult, PhaseOutcome, PhaseStructuredOutput, ProviderFallbackResult, ProviderPolicyConfig, ProviderRouting, SlackNotificationConfig, TelemetryConsentState, TelemetryLevel, ToolConfig, WorkflowConfig, WorkflowProvidersConfig, } from "./types/model-config.js";
7
+ export type { RuntimeAdapter, RuntimeAdapterKind, RuntimeBrief, RuntimeDelegationAssignment, RuntimeDelegationMode, RuntimeDelegationPacket, RuntimeDelegationPolicy, RuntimeExecutionAdapter, RuntimeExecutionCapabilities, RuntimeExecutionId, RuntimeExecutionPolicy, RuntimeExecutorConfig, RuntimeSelection, RuntimeSubagentCapabilities, } from "./types/runtime.js";
8
+ export type { AgentLesson, AgentLessonInput, CollaborationFlow, CollaborationFlowRecommendation, CollaborationFlowStep, MemoryHookPoint, MemoryLessonSnippet, MemoryPacket, MemoryPromptSnippet, MemorySectionReport, Skill, SkillLoadBudget, SkillPlan, SkillPlanItem, SkillRenderTarget, SkillValidationReport, RenderedWorkflowTemplate, WorkflowTemplate, WorkflowTemplateSelection, } from "./types/skills.js";
9
+ export { SIZING_LABELS, type BenchmarkQualitySignals, type BenchmarkResult, type BenchmarkSummary, type BurndownPoint, type BurndownSeries, type CalibrationReport, type CalibrationRoleReport, type EstimateConfidence, type EstimateInput, type EstimateRecord, type SizingLabel, type SprintRecord, type SprintVelocity, type SprintVelocityReport, type TaskEstimateBreakdown, type VelocityReport, type VelocityWeek, } from "./types/metrics.js";
10
+ export type { AddTaskInput, ArchitectureApproval, ArtifactResult, ClaimLockInput, DecisionInput, DecisionRecord, EventEntry, EventInput, EvidenceInput, EvidenceType, ExternalTaskReferences, HandoffInput, LockEntry, MechanicalOverride, PlaywrightEvidenceInput, QaGateMetadata, ReviewInput, ReviewResult, RiskAcceptance, RiskGateMetadata, RiskImpactArea, SetupAgentsTaskReference, Severity, Task, TaskStatus, UpdateTaskInput, } from "./types/tasks.js";
11
+ export type { AutonomousGateMode, AutonomousPhase, AutonomousPhaseStatus, AutonomousRun, AutonomousRunResult, BenchmarkPhaseDuration, ClarificationAnswerInput, ClarificationInput, ClarificationRecord, ClarificationStatus, ClarificationTarget, WorkflowGateApprovalInput, WorkflowGateApprovalResult, } from "./types/workflow-run.js";
96
12
  export type WorkspaceClassificationKind = "project" | "advisory" | "unsafe" | "unknown";
97
13
  export type WorkspaceWritePolicy = "allow" | "confirm_required" | "blocked";
98
14
  export interface WorkspaceClassification {
@@ -106,140 +22,6 @@ export interface WorkspaceClassification {
106
22
  recommendedAction: string;
107
23
  supportedTargets: SkillRenderTarget[];
108
24
  }
109
- export interface Skill {
110
- id: string;
111
- name: string;
112
- summary: string;
113
- triggers: string[];
114
- roles: string[];
115
- capabilities: string[];
116
- riskAreas: string[];
117
- sourceGroups: string[];
118
- entry: string;
119
- assets: string[];
120
- evidence: EvidenceType[];
121
- loadBudget: SkillLoadBudget;
122
- instructions: string[];
123
- }
124
- export interface SkillPlanItem {
125
- skill: Skill;
126
- score: number;
127
- rationale: string[];
128
- }
129
- export interface SkillPlan {
130
- taskId: string;
131
- selected: SkillPlanItem[];
132
- skipped: SkillPlanItem[];
133
- sourceGroups: string[];
134
- }
135
- export interface SkillValidationReport {
136
- valid: boolean;
137
- errors: string[];
138
- warnings: string[];
139
- }
140
- export interface CollaborationFlowStep {
141
- from: string;
142
- to: string;
143
- purpose: string;
144
- requiredContext: string[];
145
- requiredArtifacts: string[];
146
- exitCriteria: string[];
147
- }
148
- export interface CollaborationFlow {
149
- id: string;
150
- name: string;
151
- summary: string;
152
- triggers: string[];
153
- roles: string[];
154
- riskAreas: string[];
155
- requiredContext: string[];
156
- requiredArtifacts: string[];
157
- exitCriteria: string[];
158
- optionalReviewers: string[];
159
- steps: CollaborationFlowStep[];
160
- }
161
- export interface CollaborationFlowRecommendation {
162
- flow: CollaborationFlow;
163
- score: number;
164
- rationale: string[];
165
- missingArtifacts: string[];
166
- requiredHandoffFields: string[];
167
- optionalReviewers: string[];
168
- }
169
- export interface WorkflowTemplate {
170
- id: string;
171
- name: string;
172
- summary: string;
173
- triggers: string[];
174
- roles: string[];
175
- riskAreas: string[];
176
- inputs: string[];
177
- outputs: string[];
178
- evidenceRequirements: EvidenceType[];
179
- gates: string[];
180
- compatibleSkills: string[];
181
- steps: string[];
182
- }
183
- export interface WorkflowTemplateSelection {
184
- template: WorkflowTemplate;
185
- score: number;
186
- rationale: string[];
187
- missingEvidence: EvidenceType[];
188
- }
189
- export interface RenderedWorkflowTemplate {
190
- target: SkillRenderTarget;
191
- taskId?: string;
192
- selected: WorkflowTemplateSelection[];
193
- content: string;
194
- }
195
- export interface AgentLessonInput {
196
- taskId?: string;
197
- actor: string;
198
- operation: string;
199
- failedAction: string;
200
- errorSignature: string;
201
- rootCause: string;
202
- fix: string;
203
- prevention: string;
204
- appliesTo: string[];
205
- verifiedBy: string[];
206
- }
207
- export interface AgentLesson extends AgentLessonInput {
208
- id: string;
209
- timestamp: string;
210
- }
211
- export type MemoryHookPoint = "before_plan" | "before_implementation" | "before_handoff" | "before_final" | "after_failure";
212
- export interface MemoryLessonSnippet {
213
- type: "lesson";
214
- score: number;
215
- operation: string;
216
- errorSignature: string;
217
- fix: string;
218
- prevention: string;
219
- appliesTo: string[];
220
- taskId?: string;
221
- timestamp: string;
222
- }
223
- export interface MemoryPromptSnippet {
224
- type: "prompt";
225
- score: number;
226
- file: string;
227
- artifact: string;
228
- summary: string;
229
- }
230
- export interface MemoryPacket {
231
- taskId?: string;
232
- hook: MemoryHookPoint;
233
- queryTerms: string[];
234
- tokenBudget: number;
235
- estimatedTokens: number;
236
- lessons: MemoryLessonSnippet[];
237
- prompts: MemoryPromptSnippet[];
238
- redaction: {
239
- applied: boolean;
240
- patterns: string[];
241
- };
242
- }
243
25
  export interface Role {
244
26
  id: string;
245
27
  name: string;
@@ -251,290 +33,6 @@ export interface Role {
251
33
  expectedEvidence?: string[];
252
34
  gateParticipation?: string[];
253
35
  }
254
- export interface MechanicalOverride {
255
- rationale: string;
256
- }
257
- export interface ArchitectureApproval {
258
- proposal?: string;
259
- userApproved?: boolean;
260
- approvedBy?: string;
261
- approvedAt?: string;
262
- }
263
- export interface QaGateMetadata {
264
- plan?: string;
265
- executionStatus?: "not_run" | "passed" | "failed" | "deferred";
266
- deferredRationale?: string;
267
- deferredOwner?: string;
268
- }
269
- export type RiskImpactArea = "security" | "sre" | "dba" | "data" | "devops" | "compliance" | "accessibility" | "ux";
270
- export interface RiskAcceptance {
271
- acceptedBy?: string;
272
- rationale?: string;
273
- }
274
- export interface RiskGateMetadata {
275
- impactAreas?: RiskImpactArea[];
276
- acceptance?: RiskAcceptance;
277
- }
278
- export interface Task {
279
- id: string;
280
- title: string;
281
- ownerRole: string;
282
- status: TaskStatus;
283
- dependencies: string[];
284
- backlogItem?: string;
285
- goal?: string;
286
- scope?: string;
287
- acceptanceCriteria?: string[];
288
- assumptions?: string[];
289
- risks?: string[];
290
- paths?: string[];
291
- testStrategy?: string;
292
- blockedReason?: string;
293
- mechanicalOverride?: MechanicalOverride;
294
- architectureApproval?: ArchitectureApproval;
295
- qaGate?: QaGateMetadata;
296
- riskGate?: RiskGateMetadata;
297
- createdAt?: string;
298
- updatedAt?: string;
299
- }
300
- export interface LockEntry {
301
- id: string;
302
- taskId: string;
303
- ownerRole: string;
304
- path: string;
305
- reason: string;
306
- createdAt: string;
307
- expiresAt?: string;
308
- }
309
- export interface EventEntry {
310
- id: string;
311
- type: string;
312
- timestamp: string;
313
- actor: string;
314
- summary: string;
315
- taskId: string | null;
316
- artifacts?: string[];
317
- metadata: Record<string, unknown>;
318
- }
319
- export interface EventInput {
320
- type: string;
321
- actor: string;
322
- summary: string;
323
- taskId?: string;
324
- artifacts?: string[];
325
- metadata?: Record<string, unknown>;
326
- }
327
- export interface ToolConfig {
328
- enabled?: boolean;
329
- command: string;
330
- args: string[];
331
- cwd: string;
332
- allowedRoles: string[];
333
- timeoutMs: number;
334
- evidence: string;
335
- risk: string;
336
- }
337
- export interface ModelProviderCapabilities {
338
- streaming: boolean;
339
- tools: boolean;
340
- vision: boolean;
341
- jsonMode: boolean;
342
- maxContextTokens: number;
343
- timeoutMs: number;
344
- }
345
- export interface ModelMessage {
346
- role: "system" | "user" | "assistant" | "tool";
347
- content: string;
348
- }
349
- export interface ModelRequest {
350
- messages: ModelMessage[];
351
- model: string;
352
- temperature?: number;
353
- maxTokens?: number;
354
- jsonMode?: boolean;
355
- tools?: unknown[];
356
- timeoutMs?: number;
357
- }
358
- export interface ModelResponse {
359
- id: string;
360
- provider: string;
361
- model: string;
362
- content: string;
363
- usage: {
364
- inputTokens: number;
365
- outputTokens: number;
366
- };
367
- finishReason: "stop" | "length" | "tool_call" | "error";
368
- }
369
- export interface ModelStreamEvent {
370
- type: "content" | "tool_call" | "done" | "error";
371
- content?: string;
372
- error?: string;
373
- }
374
- export interface ModelProviderError {
375
- provider: string;
376
- code: string;
377
- message: string;
378
- retryable: boolean;
379
- }
380
- export interface ProviderFallbackResult {
381
- provider: string;
382
- model: string;
383
- response: ModelResponse;
384
- fallbackUsed: boolean;
385
- failedProviders: {
386
- provider: string;
387
- reason: string;
388
- }[];
389
- }
390
- export interface ModelProvenanceInput {
391
- task: string;
392
- role: string;
393
- provider: string;
394
- model: string;
395
- promptId: string;
396
- responseId: string;
397
- inputTokens: number;
398
- outputTokens: number;
399
- estimatedCostUsd: number;
400
- finishReason: ModelResponse["finishReason"];
401
- }
402
- export interface ModelProvenanceRecord extends ModelProvenanceInput {
403
- timestamp: string;
404
- }
405
- export type PhaseOutcome = {
406
- kind: "done";
407
- notes: string;
408
- } | {
409
- kind: "gate_pause";
410
- reviewArtifact: string;
411
- } | {
412
- kind: "qa_fail";
413
- notes: string;
414
- };
415
- export type PhaseExecutionMode = "deterministic" | "llm";
416
- export interface PhaseExecutorPhase {
417
- phase: string;
418
- role: string;
419
- summary: string;
420
- }
421
- export interface PhaseStructuredOutput {
422
- summary: string;
423
- notes: string;
424
- verdict: "pass" | "fail";
425
- findings: string[];
426
- decisions: string[];
427
- evidence: string[];
428
- handoff: string;
429
- sizing?: string;
430
- }
431
- export interface PhaseLlmResult {
432
- mode: PhaseExecutionMode;
433
- outcome: PhaseOutcome;
434
- artifact?: string;
435
- output?: PhaseStructuredOutput;
436
- }
437
- export interface ModelProvider {
438
- id: string;
439
- capabilities: ModelProviderCapabilities;
440
- complete(request: ModelRequest): Promise<ModelResponse>;
441
- stream?(request: ModelRequest): AsyncIterable<ModelStreamEvent>;
442
- }
443
- export interface ConfiguredProviderSummary {
444
- scope: string;
445
- provider: string;
446
- model: string;
447
- fallbacks: string[];
448
- maxTokens: number;
449
- maxCostUsd: number;
450
- timeoutMs: number;
451
- retries: number;
452
- requiredCapabilities: string[];
453
- }
454
- export interface ProviderRouting {
455
- provider: string;
456
- model: string;
457
- fallbacks: string[];
458
- maxTokens: number;
459
- maxCostUsd: number;
460
- timeoutMs: number;
461
- retries: number;
462
- requiredCapabilities: string[];
463
- }
464
- export interface WorkflowProvidersConfig {
465
- defaults: ProviderRouting;
466
- byRole: Record<string, ProviderRouting>;
467
- }
468
- export interface ProviderPolicyConfig {
469
- allowedProviders?: string[];
470
- blockedProviders?: string[];
471
- allowVendorFallbackWithoutApproval?: boolean;
472
- }
473
- export interface BudgetLimit {
474
- maxRequests?: number;
475
- maxInputTokens?: number;
476
- maxOutputTokens?: number;
477
- maxTotalTokens?: number;
478
- maxEstimatedCostUsd?: number;
479
- }
480
- export interface BudgetPolicy {
481
- defaults?: BudgetLimit;
482
- byRole: Record<string, BudgetLimit>;
483
- byTask: Record<string, BudgetLimit>;
484
- }
485
- export type TelemetryLevel = "off" | "metadata" | "prompt-summary" | "prompt-sample" | "eval-dataset";
486
- export interface TelemetryConsentState {
487
- enabled: boolean;
488
- level: TelemetryLevel;
489
- policyVersion: string;
490
- actor: string;
491
- updatedAt?: string;
492
- }
493
- export interface GitHubConfig {
494
- autoCreatePr?: boolean;
495
- baseBranch?: string;
496
- }
497
- export interface NotificationChannelResult {
498
- channel: "slack" | "github";
499
- status: "sent" | "skipped" | "failed";
500
- detail: string;
501
- }
502
- export interface SlackNotificationConfig {
503
- webhookUrl?: string;
504
- webhookUrlEnv?: string;
505
- }
506
- export interface GitHubNotificationConfig {
507
- issueComment?: boolean;
508
- }
509
- export interface NotificationsConfig {
510
- slack?: SlackNotificationConfig;
511
- github?: GitHubNotificationConfig;
512
- }
513
- export interface WorkflowConfig {
514
- version: number;
515
- providers: WorkflowProvidersConfig;
516
- budgets?: BudgetPolicy;
517
- workflow?: {
518
- phaseSequence?: string[];
519
- phaseTimeoutMinutes?: number;
520
- };
521
- tools: Record<string, ToolConfig>;
522
- telemetry?: TelemetryConsentState;
523
- github?: GitHubConfig;
524
- notifications?: NotificationsConfig;
525
- providerPolicy?: ProviderPolicyConfig;
526
- runtimePolicy?: RuntimeExecutionPolicy;
527
- staticAnalysis: {
528
- preCommit: {
529
- required: boolean;
530
- checks: string[];
531
- disallowNoVerifyWithoutApproval: boolean;
532
- };
533
- ci: {
534
- checks: string[];
535
- };
536
- };
537
- }
538
36
  export interface Workspace {
539
37
  base: string;
540
38
  roles: Role[];
@@ -572,6 +70,7 @@ export interface WorkflowGate {
572
70
  evaluate(context: GateEvaluationContext): GateEvaluationResult;
573
71
  }
574
72
  export interface WorkflowStatus {
73
+ mode?: "project" | "advisory";
575
74
  tasks: {
576
75
  total: number;
577
76
  byStatus: Record<string, number>;
@@ -710,99 +209,6 @@ export interface PlaywrightTestPlan {
710
209
  fixtures: string[];
711
210
  notes: string[];
712
211
  }
713
- export interface AddTaskInput {
714
- id: string;
715
- title: string;
716
- ownerRole: string;
717
- dependencies: string[];
718
- backlogItem?: string;
719
- goal?: string;
720
- scope?: string;
721
- acceptanceCriteria?: string[];
722
- assumptions?: string[];
723
- risks?: string[];
724
- paths?: string[];
725
- testStrategy?: string;
726
- architectureApproval?: ArchitectureApproval;
727
- qaGate?: QaGateMetadata;
728
- riskGate?: RiskGateMetadata;
729
- }
730
- export interface UpdateTaskInput {
731
- id: string;
732
- title?: string;
733
- ownerRole?: string;
734
- goal?: string;
735
- scope?: string;
736
- paths?: string[];
737
- acceptanceCriteria?: string[];
738
- assumptions?: string[];
739
- risks?: string[];
740
- testStrategy?: string;
741
- status?: TaskStatus;
742
- blockedReason?: string;
743
- }
744
- export interface ClaimLockInput {
745
- id?: string;
746
- taskId: string;
747
- ownerRole: string;
748
- path: string;
749
- reason: string;
750
- expiresAt?: string;
751
- }
752
- export interface HandoffInput {
753
- task: string;
754
- from: string;
755
- to: string;
756
- changed: string;
757
- behavior: string;
758
- tests: string;
759
- commands: string;
760
- status?: string;
761
- gaps?: string;
762
- risks?: string;
763
- playwright?: string;
764
- updateOwner?: boolean;
765
- }
766
- export interface ReviewInput {
767
- task: string;
768
- role: string;
769
- result: string;
770
- severity: string;
771
- findings: string;
772
- recommendation: string;
773
- }
774
- export interface EvidenceInput {
775
- task: string;
776
- role: string;
777
- type: string;
778
- summary: string;
779
- path?: string | boolean | string[];
780
- command?: string | boolean | string[];
781
- exitCode?: string | boolean | string[];
782
- }
783
- export interface PlaywrightEvidenceInput {
784
- task: string;
785
- kind: "screenshot" | "trace" | "video" | "report";
786
- path: string;
787
- summary: string;
788
- runId?: string;
789
- }
790
- export interface ArtifactResult {
791
- artifact: string;
792
- content: string;
793
- }
794
- export interface DecisionInput {
795
- task: string;
796
- title: string;
797
- context: string;
798
- decision: string;
799
- consequences: string;
800
- status: "proposed" | "accepted" | "superseded";
801
- owner: string;
802
- }
803
- export interface DecisionRecord extends DecisionInput {
804
- artifact: string;
805
- }
806
212
  export type DelegationRecommendation = "local" | "single_delegate" | "parallel_delegate" | "review_delegate" | "no_delegation";
807
213
  export type DelegationMode = "execute" | "review";
808
214
  export interface DelegationAssignment {
@@ -841,6 +247,7 @@ export interface TaskContext {
841
247
  delegation?: DelegationDecision;
842
248
  collaborationFlow: CollaborationFlowRecommendation | null;
843
249
  workflowTemplates: WorkflowTemplateSelection[];
250
+ contextBudget: ContextBudgetMetadata;
844
251
  }
845
252
  export interface ExecutionPlanStep {
846
253
  id: string;
@@ -959,195 +366,3 @@ export interface ApprovalDecisionInput {
959
366
  approver: string;
960
367
  rationale: string;
961
368
  }
962
- export type SizingLabel = "xs" | "s" | "m" | "l" | "xl";
963
- export declare const SIZING_LABELS: SizingLabel[];
964
- export type AutonomousGateMode = "none" | "phase" | "all";
965
- export type AutonomousPhaseStatus = "pending" | "running" | "done" | "skipped" | "failed" | "gate_paused" | "qa_failed" | "blocked" | "awaiting_clarification" | "canceled";
966
- export interface AutonomousPhase {
967
- phase: string;
968
- role: string;
969
- status: AutonomousPhaseStatus;
970
- taskId: string;
971
- gateId?: string;
972
- handoffArtifact?: string;
973
- reviewArtifact?: string;
974
- approvedBy?: string;
975
- approvedAt?: string;
976
- approvalRationale?: string;
977
- startedAt: string;
978
- completedAt?: string;
979
- skippedAt?: string;
980
- notes?: string;
981
- }
982
- export interface WorkflowGateApprovalInput {
983
- runId: string;
984
- gateId: string;
985
- approver: string;
986
- rationale: string;
987
- }
988
- export interface WorkflowGateApprovalResult {
989
- run: AutonomousRun;
990
- gateId: string;
991
- approver: string;
992
- approvedAt: string;
993
- alreadyApproved: boolean;
994
- }
995
- export interface AutonomousRun {
996
- id: string;
997
- taskId: string;
998
- gates: AutonomousGateMode;
999
- maxIterations: number;
1000
- phaseSequence?: string[];
1001
- qaIterations: number;
1002
- phases: AutonomousPhase[];
1003
- status: "running" | "paused" | "done" | "failed" | "canceled";
1004
- createdAt: string;
1005
- updatedAt: string;
1006
- }
1007
- export interface AutonomousRunResult {
1008
- run: AutonomousRun;
1009
- file: string;
1010
- cwd: string;
1011
- }
1012
- export interface BenchmarkPhaseDuration {
1013
- phase: string;
1014
- startedAt: string;
1015
- completedAt?: string;
1016
- durationMs: number | null;
1017
- }
1018
- export type ClarificationStatus = "open" | "answered";
1019
- export type ClarificationTarget = string;
1020
- export interface ClarificationRecord {
1021
- id: string;
1022
- runId: string;
1023
- taskId: string;
1024
- fromRole: string;
1025
- toRole: string;
1026
- question: string;
1027
- answer?: string;
1028
- status: ClarificationStatus;
1029
- createdAt: string;
1030
- answeredAt?: string;
1031
- }
1032
- export interface ClarificationInput {
1033
- runId: string;
1034
- taskId: string;
1035
- fromRole: string;
1036
- to: ClarificationTarget;
1037
- question: string;
1038
- }
1039
- export interface ClarificationAnswerInput {
1040
- id: string;
1041
- answer: string;
1042
- }
1043
- export type EstimateConfidence = "low" | "medium" | "high";
1044
- export interface EstimateRecord {
1045
- id: string;
1046
- taskId: string;
1047
- sizingLabel: SizingLabel;
1048
- soloEstimateDays: number;
1049
- aiUnguidedEstimateDays: number;
1050
- confidence: EstimateConfidence;
1051
- declaredBy: string;
1052
- declaredAt: string;
1053
- }
1054
- export interface EstimateInput {
1055
- taskId: string;
1056
- sizingLabel: SizingLabel;
1057
- soloEstimateDays: number;
1058
- aiUnguidedEstimateDays: number;
1059
- confidence: EstimateConfidence;
1060
- declaredBy: string;
1061
- }
1062
- export interface BenchmarkQualitySignals {
1063
- reviewCount: number;
1064
- blockingReviews: number;
1065
- evidenceCount: number;
1066
- gateBlockCount: number;
1067
- lessonCount: number;
1068
- totalInputTokens: number;
1069
- totalOutputTokens: number;
1070
- estimatedCostUsd: number;
1071
- }
1072
- export interface BenchmarkResult {
1073
- taskId: string;
1074
- sizingLabel: SizingLabel;
1075
- soloEstimateDays: number;
1076
- aiUnguidedEstimateDays: number;
1077
- actualDays: number | null;
1078
- vsSoloPct: number | null;
1079
- vsAiUnguidedPct: number | null;
1080
- qaIterations: number;
1081
- phaseDurations: BenchmarkPhaseDuration[];
1082
- quality: BenchmarkQualitySignals;
1083
- status: "pending" | "complete";
1084
- }
1085
- export interface BenchmarkSummary {
1086
- stories: BenchmarkResult[];
1087
- totalWithActuals: number;
1088
- avgVsSoloPct: number | null;
1089
- avgVsAiUnguidedPct: number | null;
1090
- }
1091
- export interface VelocityWeek {
1092
- week: string;
1093
- storiesCompleted: number;
1094
- pointsCompleted: number;
1095
- }
1096
- export interface VelocityReport {
1097
- totalStoriesCompleted: number;
1098
- totalPointsCompleted: number;
1099
- avgActualDaysPerStory: number | null;
1100
- avgVsSoloPct: number | null;
1101
- avgVsAiUnguidedPct: number | null;
1102
- weeks: VelocityWeek[];
1103
- trend: "improving" | "stable" | "declining" | "insufficient_data";
1104
- }
1105
- export interface SprintRecord {
1106
- id: string;
1107
- taskIds: string[];
1108
- status: "active" | "closed";
1109
- startedAt: string;
1110
- closedAt: string | null;
1111
- }
1112
- export interface SprintVelocity {
1113
- sprintId: string;
1114
- taskIds: string[];
1115
- storiesCompleted: number;
1116
- pointsCompleted: number;
1117
- }
1118
- export interface SprintVelocityReport {
1119
- sprints: SprintVelocity[];
1120
- trend: "improving" | "stable" | "declining" | "insufficient_data";
1121
- }
1122
- export interface CalibrationRoleReport {
1123
- role: string;
1124
- stories: number;
1125
- avgDeclaredDays: number;
1126
- avgActualDays: number;
1127
- avgErrorPct: number;
1128
- bias: "over" | "under" | "balanced" | "insufficient_data";
1129
- lessonRecorded: boolean;
1130
- }
1131
- export interface CalibrationReport {
1132
- roles: CalibrationRoleReport[];
1133
- }
1134
- export interface BurndownPoint {
1135
- day: number;
1136
- remaining: number;
1137
- completedTaskIds?: string[];
1138
- }
1139
- export interface TaskEstimateBreakdown {
1140
- taskId: string;
1141
- architectPoints: number | null;
1142
- developerPoints: number | null;
1143
- resolvedPoints: number;
1144
- completedAt: string | null;
1145
- }
1146
- export interface BurndownSeries {
1147
- sprintTaskIds: string[];
1148
- totalPoints: number;
1149
- idealLine: BurndownPoint[];
1150
- actualLine: BurndownPoint[];
1151
- taskBreakdown: TaskEstimateBreakdown[];
1152
- warnings: string[];
1153
- }