@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.
- package/AGENTS.md +5 -3
- package/README.md +29 -5
- package/dist/advisory-artifacts.d.ts +20 -0
- package/dist/advisory-artifacts.js +136 -0
- package/dist/advisory-artifacts.js.map +1 -0
- package/dist/assets/web-console.js +436 -4
- package/dist/cli.js +16 -117
- package/dist/cli.js.map +1 -1
- package/dist/command-manifest.d.ts +6 -0
- package/dist/command-manifest.js +141 -43
- package/dist/command-manifest.js.map +1 -1
- package/dist/command-utils.d.ts +5 -0
- package/dist/command-utils.js +23 -0
- package/dist/command-utils.js.map +1 -1
- package/dist/commands.d.ts +7 -42
- package/dist/commands.js +214 -1356
- package/dist/commands.js.map +1 -1
- package/dist/constants.js +3 -0
- package/dist/constants.js.map +1 -1
- package/dist/context-budget.d.ts +4 -0
- package/dist/context-budget.js +119 -0
- package/dist/context-budget.js.map +1 -0
- package/dist/delivery-commands.d.ts +10 -0
- package/dist/delivery-commands.js +152 -0
- package/dist/delivery-commands.js.map +1 -0
- package/dist/github.d.ts +50 -1
- package/dist/github.js +234 -0
- package/dist/github.js.map +1 -1
- package/dist/health-checks.d.ts +1 -0
- package/dist/health-checks.js +11 -1
- package/dist/health-checks.js.map +1 -1
- package/dist/health-commands.js +2 -0
- package/dist/health-commands.js.map +1 -1
- package/dist/mcp-oauth-proxy.d.ts +32 -0
- package/dist/mcp-oauth-proxy.js +120 -0
- package/dist/mcp-oauth-proxy.js.map +1 -1
- package/dist/memory.d.ts +2 -1
- package/dist/memory.js +71 -10
- package/dist/memory.js.map +1 -1
- package/dist/package-update-check.d.ts +5 -1
- package/dist/package-update-check.js +20 -8
- package/dist/package-update-check.js.map +1 -1
- package/dist/planning-commands.d.ts +14 -0
- package/dist/planning-commands.js +372 -0
- package/dist/planning-commands.js.map +1 -0
- package/dist/release-candidate.d.ts +2 -0
- package/dist/release-candidate.js +9 -14
- package/dist/release-candidate.js.map +1 -1
- package/dist/release-commands.d.ts +2 -0
- package/dist/release-commands.js +58 -6
- package/dist/release-commands.js.map +1 -1
- package/dist/release-readiness.d.ts +49 -0
- package/dist/release-readiness.js +172 -0
- package/dist/release-readiness.js.map +1 -0
- package/dist/runtime-commands.js +11 -4
- package/dist/runtime-commands.js.map +1 -1
- package/dist/runtime-execution-renderer.js +2 -0
- package/dist/runtime-execution-renderer.js.map +1 -1
- package/dist/runtime-execution.d.ts +4 -2
- package/dist/runtime-execution.js +11 -4
- package/dist/runtime-execution.js.map +1 -1
- package/dist/setup-agents-import.d.ts +42 -0
- package/dist/setup-agents-import.js +335 -0
- package/dist/setup-agents-import.js.map +1 -0
- package/dist/skills-catalog-service.d.ts +2 -0
- package/dist/skills-catalog-service.js +8 -0
- package/dist/skills-catalog-service.js.map +1 -0
- package/dist/skills-catalog.d.ts +2 -0
- package/dist/skills-catalog.js +389 -0
- package/dist/skills-catalog.js.map +1 -0
- package/dist/skills-commands.js +1 -11
- package/dist/skills-commands.js.map +1 -1
- package/dist/skills-events.d.ts +9 -0
- package/dist/skills-events.js +50 -0
- package/dist/skills-events.js.map +1 -0
- package/dist/skills-memory.d.ts +18 -0
- package/dist/skills-memory.js +127 -0
- package/dist/skills-memory.js.map +1 -0
- package/dist/skills-planning.d.ts +2 -0
- package/dist/skills-planning.js +87 -0
- package/dist/skills-planning.js.map +1 -0
- package/dist/skills-render.d.ts +14 -0
- package/dist/skills-render.js +83 -0
- package/dist/skills-render.js.map +1 -0
- package/dist/skills-validation.d.ts +2 -0
- package/dist/skills-validation.js +49 -0
- package/dist/skills-validation.js.map +1 -0
- package/dist/skills.d.ts +6 -42
- package/dist/skills.js +6 -773
- package/dist/skills.js.map +1 -1
- package/dist/task-graph-commands.d.ts +14 -0
- package/dist/task-graph-commands.js +367 -0
- package/dist/task-graph-commands.js.map +1 -0
- package/dist/tool-commands.js +8 -0
- package/dist/tool-commands.js.map +1 -1
- package/dist/types/context.d.ts +12 -0
- package/dist/types/context.js +2 -0
- package/dist/types/context.js.map +1 -0
- package/dist/types/metrics.d.ts +114 -0
- package/dist/types/metrics.js +2 -0
- package/dist/types/metrics.js.map +1 -0
- package/dist/types/model-config.d.ts +212 -0
- package/dist/types/model-config.js +2 -0
- package/dist/types/model-config.js.map +1 -0
- package/dist/types/runtime.d.ts +93 -0
- package/dist/types/runtime.js +2 -0
- package/dist/types/runtime.js.map +1 -0
- package/dist/types/skills.d.ts +147 -0
- package/dist/types/skills.js +2 -0
- package/dist/types/skills.js.map +1 -0
- package/dist/types/tasks.d.ts +171 -0
- package/dist/types/tasks.js +2 -0
- package/dist/types/tasks.js.map +1 -0
- package/dist/types/workflow-run.d.ts +79 -0
- package/dist/types/workflow-run.js +2 -0
- package/dist/types/workflow-run.js.map +1 -0
- package/dist/types.d.ts +13 -798
- package/dist/types.js +1 -1
- package/dist/types.js.map +1 -1
- package/dist/upgrade-commands.d.ts +2 -0
- package/dist/upgrade-commands.js +65 -0
- package/dist/upgrade-commands.js.map +1 -0
- package/dist/web-api-read-routes.d.ts +5 -0
- package/dist/web-api-read-routes.js +37 -0
- package/dist/web-api-read-routes.js.map +1 -0
- package/dist/web-api.d.ts +1 -3
- package/dist/web-api.js +145 -44
- package/dist/web-api.js.map +1 -1
- package/dist/web-console-sections.d.ts +2 -0
- package/dist/web-console-sections.js +7 -0
- package/dist/web-console-sections.js.map +1 -0
- package/dist/web-console.js +23 -3
- package/dist/web-console.js.map +1 -1
- package/dist/workflow-approval-service.d.ts +9 -0
- package/dist/workflow-approval-service.js +126 -0
- package/dist/workflow-approval-service.js.map +1 -0
- package/dist/workflow-approval-utils.d.ts +10 -0
- package/dist/workflow-approval-utils.js +82 -0
- package/dist/workflow-approval-utils.js.map +1 -0
- package/dist/workflow-budget-utils.d.ts +7 -0
- package/dist/workflow-budget-utils.js +96 -0
- package/dist/workflow-budget-utils.js.map +1 -0
- package/dist/workflow-evidence-service.d.ts +7 -0
- package/dist/workflow-evidence-service.js +100 -0
- package/dist/workflow-evidence-service.js.map +1 -0
- package/dist/workflow-run-commands.d.ts +8 -0
- package/dist/workflow-run-commands.js +479 -0
- package/dist/workflow-run-commands.js.map +1 -0
- package/dist/workflow-services.d.ts +8 -18
- package/dist/workflow-services.js +30 -481
- package/dist/workflow-services.js.map +1 -1
- package/dist/workflow-summary-service.d.ts +4 -0
- package/dist/workflow-summary-service.js +82 -0
- package/dist/workflow-summary-service.js.map +1 -0
- package/dist/workflow-templates.d.ts +1 -0
- package/dist/workflow-templates.js +1 -0
- package/dist/workflow-templates.js.map +1 -1
- package/dist/workspace.d.ts +18 -1
- package/dist/workspace.js +72 -4
- package/dist/workspace.js.map +1 -1
- package/docs/command-contracts.md +22 -0
- package/docs/mcp-oauth-proxy-evaluation.md +14 -0
- package/docs/orchestra-mvp.md +158 -114
- package/docs/package-naming.md +20 -0
- package/docs/persona-workflows.md +209 -0
- package/docs/runtime-adapters.md +19 -14
- package/docs/runtime-llm-flow.md +29 -28
- package/docs/setup-agents-bridge.md +61 -0
- package/docs/traceability-flow.md +89 -0
- package/package.json +9 -7
package/dist/types.d.ts
CHANGED
|
@@ -1,98 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
export type
|
|
6
|
-
export type
|
|
7
|
-
export type RuntimeAdapterKind
|
|
8
|
-
export type
|
|
9
|
-
export type
|
|
10
|
-
export
|
|
11
|
-
|
|
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
|
-
}
|