@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
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import type { BenchmarkPhaseDuration } from "./workflow-run.js";
|
|
2
|
+
export type SizingLabel = "xs" | "s" | "m" | "l" | "xl";
|
|
3
|
+
export declare const SIZING_LABELS: SizingLabel[];
|
|
4
|
+
export type EstimateConfidence = "low" | "medium" | "high";
|
|
5
|
+
export interface EstimateRecord {
|
|
6
|
+
id: string;
|
|
7
|
+
taskId: string;
|
|
8
|
+
sizingLabel: SizingLabel;
|
|
9
|
+
soloEstimateDays: number;
|
|
10
|
+
aiUnguidedEstimateDays: number;
|
|
11
|
+
confidence: EstimateConfidence;
|
|
12
|
+
declaredBy: string;
|
|
13
|
+
declaredAt: string;
|
|
14
|
+
}
|
|
15
|
+
export interface EstimateInput {
|
|
16
|
+
taskId: string;
|
|
17
|
+
sizingLabel: SizingLabel;
|
|
18
|
+
soloEstimateDays: number;
|
|
19
|
+
aiUnguidedEstimateDays: number;
|
|
20
|
+
confidence: EstimateConfidence;
|
|
21
|
+
declaredBy: string;
|
|
22
|
+
}
|
|
23
|
+
export interface BenchmarkQualitySignals {
|
|
24
|
+
reviewCount: number;
|
|
25
|
+
blockingReviews: number;
|
|
26
|
+
evidenceCount: number;
|
|
27
|
+
gateBlockCount: number;
|
|
28
|
+
lessonCount: number;
|
|
29
|
+
totalInputTokens: number;
|
|
30
|
+
totalOutputTokens: number;
|
|
31
|
+
estimatedCostUsd: number;
|
|
32
|
+
}
|
|
33
|
+
export interface BenchmarkResult {
|
|
34
|
+
taskId: string;
|
|
35
|
+
sizingLabel: SizingLabel;
|
|
36
|
+
soloEstimateDays: number;
|
|
37
|
+
aiUnguidedEstimateDays: number;
|
|
38
|
+
actualDays: number | null;
|
|
39
|
+
vsSoloPct: number | null;
|
|
40
|
+
vsAiUnguidedPct: number | null;
|
|
41
|
+
qaIterations: number;
|
|
42
|
+
phaseDurations: BenchmarkPhaseDuration[];
|
|
43
|
+
quality: BenchmarkQualitySignals;
|
|
44
|
+
status: "pending" | "complete";
|
|
45
|
+
}
|
|
46
|
+
export interface BenchmarkSummary {
|
|
47
|
+
stories: BenchmarkResult[];
|
|
48
|
+
totalWithActuals: number;
|
|
49
|
+
avgVsSoloPct: number | null;
|
|
50
|
+
avgVsAiUnguidedPct: number | null;
|
|
51
|
+
}
|
|
52
|
+
export interface VelocityWeek {
|
|
53
|
+
week: string;
|
|
54
|
+
storiesCompleted: number;
|
|
55
|
+
pointsCompleted: number;
|
|
56
|
+
}
|
|
57
|
+
export interface VelocityReport {
|
|
58
|
+
totalStoriesCompleted: number;
|
|
59
|
+
totalPointsCompleted: number;
|
|
60
|
+
avgActualDaysPerStory: number | null;
|
|
61
|
+
avgVsSoloPct: number | null;
|
|
62
|
+
avgVsAiUnguidedPct: number | null;
|
|
63
|
+
weeks: VelocityWeek[];
|
|
64
|
+
trend: "improving" | "stable" | "declining" | "insufficient_data";
|
|
65
|
+
}
|
|
66
|
+
export interface SprintRecord {
|
|
67
|
+
id: string;
|
|
68
|
+
taskIds: string[];
|
|
69
|
+
status: "active" | "closed";
|
|
70
|
+
startedAt: string;
|
|
71
|
+
closedAt: string | null;
|
|
72
|
+
}
|
|
73
|
+
export interface SprintVelocity {
|
|
74
|
+
sprintId: string;
|
|
75
|
+
taskIds: string[];
|
|
76
|
+
storiesCompleted: number;
|
|
77
|
+
pointsCompleted: number;
|
|
78
|
+
}
|
|
79
|
+
export interface SprintVelocityReport {
|
|
80
|
+
sprints: SprintVelocity[];
|
|
81
|
+
trend: "improving" | "stable" | "declining" | "insufficient_data";
|
|
82
|
+
}
|
|
83
|
+
export interface CalibrationRoleReport {
|
|
84
|
+
role: string;
|
|
85
|
+
stories: number;
|
|
86
|
+
avgDeclaredDays: number;
|
|
87
|
+
avgActualDays: number;
|
|
88
|
+
avgErrorPct: number;
|
|
89
|
+
bias: "over" | "under" | "balanced" | "insufficient_data";
|
|
90
|
+
lessonRecorded: boolean;
|
|
91
|
+
}
|
|
92
|
+
export interface CalibrationReport {
|
|
93
|
+
roles: CalibrationRoleReport[];
|
|
94
|
+
}
|
|
95
|
+
export interface BurndownPoint {
|
|
96
|
+
day: number;
|
|
97
|
+
remaining: number;
|
|
98
|
+
completedTaskIds?: string[];
|
|
99
|
+
}
|
|
100
|
+
export interface TaskEstimateBreakdown {
|
|
101
|
+
taskId: string;
|
|
102
|
+
architectPoints: number | null;
|
|
103
|
+
developerPoints: number | null;
|
|
104
|
+
resolvedPoints: number;
|
|
105
|
+
completedAt: string | null;
|
|
106
|
+
}
|
|
107
|
+
export interface BurndownSeries {
|
|
108
|
+
sprintTaskIds: string[];
|
|
109
|
+
totalPoints: number;
|
|
110
|
+
idealLine: BurndownPoint[];
|
|
111
|
+
actualLine: BurndownPoint[];
|
|
112
|
+
taskBreakdown: TaskEstimateBreakdown[];
|
|
113
|
+
warnings: string[];
|
|
114
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/types/metrics.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,aAAa,GAAkB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC"}
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
import type { RuntimeExecutionPolicy } from "./runtime.js";
|
|
2
|
+
export interface ToolConfig {
|
|
3
|
+
enabled?: boolean;
|
|
4
|
+
command: string;
|
|
5
|
+
args: string[];
|
|
6
|
+
cwd: string;
|
|
7
|
+
allowedRoles: string[];
|
|
8
|
+
timeoutMs: number;
|
|
9
|
+
evidence: string;
|
|
10
|
+
risk: string;
|
|
11
|
+
}
|
|
12
|
+
export interface ModelProviderCapabilities {
|
|
13
|
+
streaming: boolean;
|
|
14
|
+
tools: boolean;
|
|
15
|
+
vision: boolean;
|
|
16
|
+
jsonMode: boolean;
|
|
17
|
+
maxContextTokens: number;
|
|
18
|
+
timeoutMs: number;
|
|
19
|
+
}
|
|
20
|
+
export interface ModelMessage {
|
|
21
|
+
role: "system" | "user" | "assistant" | "tool";
|
|
22
|
+
content: string;
|
|
23
|
+
}
|
|
24
|
+
export interface ModelRequest {
|
|
25
|
+
messages: ModelMessage[];
|
|
26
|
+
model: string;
|
|
27
|
+
temperature?: number;
|
|
28
|
+
maxTokens?: number;
|
|
29
|
+
jsonMode?: boolean;
|
|
30
|
+
tools?: unknown[];
|
|
31
|
+
timeoutMs?: number;
|
|
32
|
+
}
|
|
33
|
+
export interface ModelResponse {
|
|
34
|
+
id: string;
|
|
35
|
+
provider: string;
|
|
36
|
+
model: string;
|
|
37
|
+
content: string;
|
|
38
|
+
usage: {
|
|
39
|
+
inputTokens: number;
|
|
40
|
+
outputTokens: number;
|
|
41
|
+
};
|
|
42
|
+
finishReason: "stop" | "length" | "tool_call" | "error";
|
|
43
|
+
}
|
|
44
|
+
export interface ModelStreamEvent {
|
|
45
|
+
type: "content" | "tool_call" | "done" | "error";
|
|
46
|
+
content?: string;
|
|
47
|
+
error?: string;
|
|
48
|
+
}
|
|
49
|
+
export interface ModelProviderError {
|
|
50
|
+
provider: string;
|
|
51
|
+
code: string;
|
|
52
|
+
message: string;
|
|
53
|
+
retryable: boolean;
|
|
54
|
+
}
|
|
55
|
+
export interface ProviderFallbackResult {
|
|
56
|
+
provider: string;
|
|
57
|
+
model: string;
|
|
58
|
+
response: ModelResponse;
|
|
59
|
+
fallbackUsed: boolean;
|
|
60
|
+
failedProviders: {
|
|
61
|
+
provider: string;
|
|
62
|
+
reason: string;
|
|
63
|
+
}[];
|
|
64
|
+
}
|
|
65
|
+
export interface ModelProvenanceInput {
|
|
66
|
+
task: string;
|
|
67
|
+
role: string;
|
|
68
|
+
provider: string;
|
|
69
|
+
model: string;
|
|
70
|
+
promptId: string;
|
|
71
|
+
responseId: string;
|
|
72
|
+
inputTokens: number;
|
|
73
|
+
outputTokens: number;
|
|
74
|
+
estimatedCostUsd: number;
|
|
75
|
+
finishReason: ModelResponse["finishReason"];
|
|
76
|
+
}
|
|
77
|
+
export interface ModelProvenanceRecord extends ModelProvenanceInput {
|
|
78
|
+
timestamp: string;
|
|
79
|
+
}
|
|
80
|
+
export type PhaseOutcome = {
|
|
81
|
+
kind: "done";
|
|
82
|
+
notes: string;
|
|
83
|
+
} | {
|
|
84
|
+
kind: "gate_pause";
|
|
85
|
+
reviewArtifact: string;
|
|
86
|
+
} | {
|
|
87
|
+
kind: "qa_fail";
|
|
88
|
+
notes: string;
|
|
89
|
+
};
|
|
90
|
+
export type PhaseExecutionMode = "deterministic" | "llm";
|
|
91
|
+
export interface PhaseExecutorPhase {
|
|
92
|
+
phase: string;
|
|
93
|
+
role: string;
|
|
94
|
+
summary: string;
|
|
95
|
+
}
|
|
96
|
+
export interface PhaseStructuredOutput {
|
|
97
|
+
summary: string;
|
|
98
|
+
notes: string;
|
|
99
|
+
verdict: "pass" | "fail";
|
|
100
|
+
findings: string[];
|
|
101
|
+
decisions: string[];
|
|
102
|
+
evidence: string[];
|
|
103
|
+
handoff: string;
|
|
104
|
+
sizing?: string;
|
|
105
|
+
}
|
|
106
|
+
export interface PhaseLlmResult {
|
|
107
|
+
mode: PhaseExecutionMode;
|
|
108
|
+
outcome: PhaseOutcome;
|
|
109
|
+
artifact?: string;
|
|
110
|
+
output?: PhaseStructuredOutput;
|
|
111
|
+
}
|
|
112
|
+
export interface ModelProvider {
|
|
113
|
+
id: string;
|
|
114
|
+
capabilities: ModelProviderCapabilities;
|
|
115
|
+
complete(request: ModelRequest): Promise<ModelResponse>;
|
|
116
|
+
stream?(request: ModelRequest): AsyncIterable<ModelStreamEvent>;
|
|
117
|
+
}
|
|
118
|
+
export interface ConfiguredProviderSummary {
|
|
119
|
+
scope: string;
|
|
120
|
+
provider: string;
|
|
121
|
+
model: string;
|
|
122
|
+
fallbacks: string[];
|
|
123
|
+
maxTokens: number;
|
|
124
|
+
maxCostUsd: number;
|
|
125
|
+
timeoutMs: number;
|
|
126
|
+
retries: number;
|
|
127
|
+
requiredCapabilities: string[];
|
|
128
|
+
}
|
|
129
|
+
export interface ProviderRouting {
|
|
130
|
+
provider: string;
|
|
131
|
+
model: string;
|
|
132
|
+
fallbacks: string[];
|
|
133
|
+
maxTokens: number;
|
|
134
|
+
maxCostUsd: number;
|
|
135
|
+
timeoutMs: number;
|
|
136
|
+
retries: number;
|
|
137
|
+
requiredCapabilities: string[];
|
|
138
|
+
}
|
|
139
|
+
export interface WorkflowProvidersConfig {
|
|
140
|
+
defaults: ProviderRouting;
|
|
141
|
+
byRole: Record<string, ProviderRouting>;
|
|
142
|
+
}
|
|
143
|
+
export interface ProviderPolicyConfig {
|
|
144
|
+
allowedProviders?: string[];
|
|
145
|
+
blockedProviders?: string[];
|
|
146
|
+
allowVendorFallbackWithoutApproval?: boolean;
|
|
147
|
+
}
|
|
148
|
+
export interface BudgetLimit {
|
|
149
|
+
maxRequests?: number;
|
|
150
|
+
maxInputTokens?: number;
|
|
151
|
+
maxOutputTokens?: number;
|
|
152
|
+
maxTotalTokens?: number;
|
|
153
|
+
maxEstimatedCostUsd?: number;
|
|
154
|
+
}
|
|
155
|
+
export interface BudgetPolicy {
|
|
156
|
+
defaults?: BudgetLimit;
|
|
157
|
+
byRole: Record<string, BudgetLimit>;
|
|
158
|
+
byTask: Record<string, BudgetLimit>;
|
|
159
|
+
}
|
|
160
|
+
export type TelemetryLevel = "off" | "metadata" | "prompt-summary" | "prompt-sample" | "eval-dataset";
|
|
161
|
+
export interface TelemetryConsentState {
|
|
162
|
+
enabled: boolean;
|
|
163
|
+
level: TelemetryLevel;
|
|
164
|
+
policyVersion: string;
|
|
165
|
+
actor: string;
|
|
166
|
+
updatedAt?: string;
|
|
167
|
+
}
|
|
168
|
+
export interface GitHubConfig {
|
|
169
|
+
autoCreatePr?: boolean;
|
|
170
|
+
baseBranch?: string;
|
|
171
|
+
}
|
|
172
|
+
export interface NotificationChannelResult {
|
|
173
|
+
channel: "slack" | "github";
|
|
174
|
+
status: "sent" | "skipped" | "failed";
|
|
175
|
+
detail: string;
|
|
176
|
+
}
|
|
177
|
+
export interface SlackNotificationConfig {
|
|
178
|
+
webhookUrl?: string;
|
|
179
|
+
webhookUrlEnv?: string;
|
|
180
|
+
}
|
|
181
|
+
export interface GitHubNotificationConfig {
|
|
182
|
+
issueComment?: boolean;
|
|
183
|
+
}
|
|
184
|
+
export interface NotificationsConfig {
|
|
185
|
+
slack?: SlackNotificationConfig;
|
|
186
|
+
github?: GitHubNotificationConfig;
|
|
187
|
+
}
|
|
188
|
+
export interface WorkflowConfig {
|
|
189
|
+
version: number;
|
|
190
|
+
providers: WorkflowProvidersConfig;
|
|
191
|
+
budgets?: BudgetPolicy;
|
|
192
|
+
workflow?: {
|
|
193
|
+
phaseSequence?: string[];
|
|
194
|
+
phaseTimeoutMinutes?: number;
|
|
195
|
+
};
|
|
196
|
+
tools: Record<string, ToolConfig>;
|
|
197
|
+
telemetry?: TelemetryConsentState;
|
|
198
|
+
github?: GitHubConfig;
|
|
199
|
+
notifications?: NotificationsConfig;
|
|
200
|
+
providerPolicy?: ProviderPolicyConfig;
|
|
201
|
+
runtimePolicy?: RuntimeExecutionPolicy;
|
|
202
|
+
staticAnalysis: {
|
|
203
|
+
preCommit: {
|
|
204
|
+
required: boolean;
|
|
205
|
+
checks: string[];
|
|
206
|
+
disallowNoVerifyWithoutApproval: boolean;
|
|
207
|
+
};
|
|
208
|
+
ci: {
|
|
209
|
+
checks: string[];
|
|
210
|
+
};
|
|
211
|
+
};
|
|
212
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-config.js","sourceRoot":"","sources":["../../src/types/model-config.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import type { ContextBudgetMetadata } from "./context.js";
|
|
2
|
+
import type { SkillRenderTarget } from "./skills.js";
|
|
3
|
+
export type RuntimeAdapterKind = "llm" | "ide" | "cli";
|
|
4
|
+
export type RuntimeExecutionId = "claude-cli" | "codex-cli" | "cursor-cli" | "vscode-agent" | "windsurf-agent" | "generic-runtime";
|
|
5
|
+
export type RuntimeDelegationMode = "runtime-native" | "brief-only";
|
|
6
|
+
export interface RuntimeAdapter {
|
|
7
|
+
target: SkillRenderTarget;
|
|
8
|
+
label: string;
|
|
9
|
+
kind: RuntimeAdapterKind;
|
|
10
|
+
defaultInstructionFiles: string[];
|
|
11
|
+
supportsStructuredPayload: boolean;
|
|
12
|
+
supportsManagedBlocks: boolean;
|
|
13
|
+
supportsImports: boolean;
|
|
14
|
+
guidance: string;
|
|
15
|
+
}
|
|
16
|
+
export interface RuntimeExecutionCapabilities {
|
|
17
|
+
nonInteractive: boolean;
|
|
18
|
+
promptInjection: boolean;
|
|
19
|
+
structuredOutput: boolean;
|
|
20
|
+
fileEdits: boolean;
|
|
21
|
+
testExecution: boolean;
|
|
22
|
+
evidenceReturn: boolean;
|
|
23
|
+
requiresTty: boolean;
|
|
24
|
+
requiresUserApproval: boolean;
|
|
25
|
+
resumeSession: boolean;
|
|
26
|
+
}
|
|
27
|
+
export interface RuntimeSubagentCapabilities {
|
|
28
|
+
runtimeNative: boolean;
|
|
29
|
+
parallel: boolean;
|
|
30
|
+
namedRoles: boolean;
|
|
31
|
+
forkedContext: boolean;
|
|
32
|
+
structuredHandoff: boolean;
|
|
33
|
+
fileOwnership: boolean;
|
|
34
|
+
requiresParentApproval: boolean;
|
|
35
|
+
}
|
|
36
|
+
export interface RuntimeExecutionAdapter {
|
|
37
|
+
id: RuntimeExecutionId;
|
|
38
|
+
target: SkillRenderTarget;
|
|
39
|
+
label: string;
|
|
40
|
+
kind: RuntimeAdapterKind;
|
|
41
|
+
summary: string;
|
|
42
|
+
execution: RuntimeExecutionCapabilities;
|
|
43
|
+
subagents: RuntimeSubagentCapabilities;
|
|
44
|
+
briefOnlyFallback: boolean;
|
|
45
|
+
directProviderApiAllowed: false;
|
|
46
|
+
guidance: string;
|
|
47
|
+
}
|
|
48
|
+
export interface RuntimeExecutorConfig {
|
|
49
|
+
executor?: RuntimeExecutionId;
|
|
50
|
+
}
|
|
51
|
+
export interface RuntimeDelegationPolicy {
|
|
52
|
+
mode: RuntimeDelegationMode;
|
|
53
|
+
allowDirectProviderApi: boolean;
|
|
54
|
+
}
|
|
55
|
+
export interface RuntimeExecutionPolicy {
|
|
56
|
+
defaults?: RuntimeExecutorConfig;
|
|
57
|
+
byRole: Record<string, RuntimeExecutorConfig>;
|
|
58
|
+
byTask: Record<string, RuntimeExecutorConfig>;
|
|
59
|
+
delegation: RuntimeDelegationPolicy;
|
|
60
|
+
}
|
|
61
|
+
export interface RuntimeSelection {
|
|
62
|
+
taskId: string;
|
|
63
|
+
role: string;
|
|
64
|
+
runtime: RuntimeExecutionAdapter;
|
|
65
|
+
source: "explicit" | "task" | "role" | "default" | "fallback";
|
|
66
|
+
directProviderApiAllowed: false;
|
|
67
|
+
}
|
|
68
|
+
export interface RuntimeDelegationAssignment {
|
|
69
|
+
role: string;
|
|
70
|
+
paths: string[];
|
|
71
|
+
allowedCommands: string[];
|
|
72
|
+
expectedArtifacts: string[];
|
|
73
|
+
}
|
|
74
|
+
export interface RuntimeBrief {
|
|
75
|
+
taskId: string;
|
|
76
|
+
runtime: RuntimeExecutionId;
|
|
77
|
+
artifact: string;
|
|
78
|
+
content: string;
|
|
79
|
+
mode: "brief-only";
|
|
80
|
+
directProviderApiAllowed: false;
|
|
81
|
+
contextBudget: ContextBudgetMetadata;
|
|
82
|
+
}
|
|
83
|
+
export interface RuntimeDelegationPacket {
|
|
84
|
+
taskId: string;
|
|
85
|
+
runtime: RuntimeExecutionId;
|
|
86
|
+
artifact: string;
|
|
87
|
+
content: string;
|
|
88
|
+
mode: RuntimeDelegationMode;
|
|
89
|
+
directProviderApiAllowed: false;
|
|
90
|
+
assignments: RuntimeDelegationAssignment[];
|
|
91
|
+
requiresApproval: boolean;
|
|
92
|
+
contextBudget: ContextBudgetMetadata;
|
|
93
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/types/runtime.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import type { EvidenceType } from "./tasks.js";
|
|
2
|
+
import type { ContextBudgetMetadata } from "./context.js";
|
|
3
|
+
export type SkillLoadBudget = "small" | "normal" | "large";
|
|
4
|
+
export type SkillRenderTarget = "generic" | "claude" | "cursor" | "codex" | "vscode" | "windsurf";
|
|
5
|
+
export interface Skill {
|
|
6
|
+
id: string;
|
|
7
|
+
name: string;
|
|
8
|
+
summary: string;
|
|
9
|
+
triggers: string[];
|
|
10
|
+
roles: string[];
|
|
11
|
+
capabilities: string[];
|
|
12
|
+
riskAreas: string[];
|
|
13
|
+
sourceGroups: string[];
|
|
14
|
+
entry: string;
|
|
15
|
+
assets: string[];
|
|
16
|
+
evidence: EvidenceType[];
|
|
17
|
+
loadBudget: SkillLoadBudget;
|
|
18
|
+
instructions: string[];
|
|
19
|
+
}
|
|
20
|
+
export interface SkillPlanItem {
|
|
21
|
+
skill: Skill;
|
|
22
|
+
score: number;
|
|
23
|
+
rationale: string[];
|
|
24
|
+
}
|
|
25
|
+
export interface SkillPlan {
|
|
26
|
+
taskId: string;
|
|
27
|
+
selected: SkillPlanItem[];
|
|
28
|
+
skipped: SkillPlanItem[];
|
|
29
|
+
sourceGroups: string[];
|
|
30
|
+
}
|
|
31
|
+
export interface SkillValidationReport {
|
|
32
|
+
valid: boolean;
|
|
33
|
+
errors: string[];
|
|
34
|
+
warnings: string[];
|
|
35
|
+
}
|
|
36
|
+
export interface CollaborationFlowStep {
|
|
37
|
+
from: string;
|
|
38
|
+
to: string;
|
|
39
|
+
purpose: string;
|
|
40
|
+
requiredContext: string[];
|
|
41
|
+
requiredArtifacts: string[];
|
|
42
|
+
exitCriteria: string[];
|
|
43
|
+
}
|
|
44
|
+
export interface CollaborationFlow {
|
|
45
|
+
id: string;
|
|
46
|
+
name: string;
|
|
47
|
+
summary: string;
|
|
48
|
+
triggers: string[];
|
|
49
|
+
roles: string[];
|
|
50
|
+
riskAreas: string[];
|
|
51
|
+
requiredContext: string[];
|
|
52
|
+
requiredArtifacts: string[];
|
|
53
|
+
exitCriteria: string[];
|
|
54
|
+
optionalReviewers: string[];
|
|
55
|
+
steps: CollaborationFlowStep[];
|
|
56
|
+
}
|
|
57
|
+
export interface CollaborationFlowRecommendation {
|
|
58
|
+
flow: CollaborationFlow;
|
|
59
|
+
score: number;
|
|
60
|
+
rationale: string[];
|
|
61
|
+
missingArtifacts: string[];
|
|
62
|
+
requiredHandoffFields: string[];
|
|
63
|
+
optionalReviewers: string[];
|
|
64
|
+
}
|
|
65
|
+
export interface WorkflowTemplate {
|
|
66
|
+
id: string;
|
|
67
|
+
name: string;
|
|
68
|
+
summary: string;
|
|
69
|
+
triggers: string[];
|
|
70
|
+
roles: string[];
|
|
71
|
+
riskAreas: string[];
|
|
72
|
+
inputs: string[];
|
|
73
|
+
outputs: string[];
|
|
74
|
+
evidenceRequirements: EvidenceType[];
|
|
75
|
+
gates: string[];
|
|
76
|
+
compatibleSkills: string[];
|
|
77
|
+
steps: string[];
|
|
78
|
+
}
|
|
79
|
+
export interface WorkflowTemplateSelection {
|
|
80
|
+
template: WorkflowTemplate;
|
|
81
|
+
score: number;
|
|
82
|
+
rationale: string[];
|
|
83
|
+
missingEvidence: EvidenceType[];
|
|
84
|
+
}
|
|
85
|
+
export interface RenderedWorkflowTemplate {
|
|
86
|
+
target: SkillRenderTarget;
|
|
87
|
+
taskId?: string;
|
|
88
|
+
selected: WorkflowTemplateSelection[];
|
|
89
|
+
content: string;
|
|
90
|
+
contextBudget?: ContextBudgetMetadata;
|
|
91
|
+
}
|
|
92
|
+
export interface AgentLessonInput {
|
|
93
|
+
taskId?: string;
|
|
94
|
+
actor: string;
|
|
95
|
+
operation: string;
|
|
96
|
+
failedAction: string;
|
|
97
|
+
errorSignature: string;
|
|
98
|
+
rootCause: string;
|
|
99
|
+
fix: string;
|
|
100
|
+
prevention: string;
|
|
101
|
+
appliesTo: string[];
|
|
102
|
+
verifiedBy: string[];
|
|
103
|
+
}
|
|
104
|
+
export interface AgentLesson extends AgentLessonInput {
|
|
105
|
+
id: string;
|
|
106
|
+
timestamp: string;
|
|
107
|
+
}
|
|
108
|
+
export type MemoryHookPoint = "before_plan" | "before_implementation" | "before_handoff" | "before_final" | "after_failure";
|
|
109
|
+
export interface MemoryLessonSnippet {
|
|
110
|
+
type: "lesson";
|
|
111
|
+
score: number;
|
|
112
|
+
operation: string;
|
|
113
|
+
errorSignature: string;
|
|
114
|
+
fix: string;
|
|
115
|
+
prevention: string;
|
|
116
|
+
appliesTo: string[];
|
|
117
|
+
taskId?: string;
|
|
118
|
+
timestamp: string;
|
|
119
|
+
}
|
|
120
|
+
export interface MemoryPromptSnippet {
|
|
121
|
+
type: "prompt";
|
|
122
|
+
score: number;
|
|
123
|
+
file: string;
|
|
124
|
+
artifact: string;
|
|
125
|
+
summary: string;
|
|
126
|
+
}
|
|
127
|
+
export interface MemorySectionReport {
|
|
128
|
+
section: "lessons" | "prompts";
|
|
129
|
+
includedCount: number;
|
|
130
|
+
omittedCount: number;
|
|
131
|
+
reason: string;
|
|
132
|
+
}
|
|
133
|
+
export interface MemoryPacket {
|
|
134
|
+
taskId?: string;
|
|
135
|
+
role?: string;
|
|
136
|
+
hook: MemoryHookPoint;
|
|
137
|
+
queryTerms: string[];
|
|
138
|
+
tokenBudget: number;
|
|
139
|
+
estimatedTokens: number;
|
|
140
|
+
lessons: MemoryLessonSnippet[];
|
|
141
|
+
prompts: MemoryPromptSnippet[];
|
|
142
|
+
sections: MemorySectionReport[];
|
|
143
|
+
redaction: {
|
|
144
|
+
applied: boolean;
|
|
145
|
+
patterns: string[];
|
|
146
|
+
};
|
|
147
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/types/skills.ts"],"names":[],"mappings":""}
|