@jterrats/open-orchestra 0.5.7 → 1.0.2
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 +9 -8
- package/CLAUDE.md +13 -11
- package/README.md +78 -11
- package/dist/assets/web-console.js +169 -32
- package/dist/automation-evidence.d.ts +23 -0
- package/dist/automation-evidence.js +97 -0
- package/dist/automation-evidence.js.map +1 -0
- package/dist/autonomous-run-store.js +3 -3
- package/dist/autonomous-run-store.js.map +1 -1
- package/dist/benchmark.d.ts +4 -1
- package/dist/benchmark.js +93 -4
- package/dist/benchmark.js.map +1 -1
- package/dist/cli.js +73 -2
- package/dist/cli.js.map +1 -1
- package/dist/collaboration-flows.js +3 -5
- package/dist/collaboration-flows.js.map +1 -1
- package/dist/collection-utils.d.ts +3 -0
- package/dist/collection-utils.js +10 -0
- package/dist/collection-utils.js.map +1 -0
- package/dist/command-manifest.d.ts +12 -1
- package/dist/command-manifest.js +213 -10
- package/dist/command-manifest.js.map +1 -1
- package/dist/commands.d.ts +10 -5
- package/dist/commands.js +16 -6
- package/dist/commands.js.map +1 -1
- package/dist/config-migrations.d.ts +24 -0
- package/dist/config-migrations.js +102 -0
- package/dist/config-migrations.js.map +1 -0
- package/dist/constants.d.ts +2 -0
- package/dist/constants.js +23 -0
- package/dist/constants.js.map +1 -1
- package/dist/dashboard-commands.d.ts +2 -0
- package/dist/dashboard-commands.js +14 -0
- package/dist/dashboard-commands.js.map +1 -0
- package/dist/defaults.d.ts +13 -0
- package/dist/defaults.js +13 -0
- package/dist/defaults.js.map +1 -1
- package/dist/delegation-decision.js +23 -8
- package/dist/delegation-decision.js.map +1 -1
- package/dist/delivery-commands.js +5 -0
- package/dist/delivery-commands.js.map +1 -1
- package/dist/delivery-dashboard-charts.d.ts +4 -0
- package/dist/delivery-dashboard-charts.js +156 -0
- package/dist/delivery-dashboard-charts.js.map +1 -0
- package/dist/delivery-dashboard-html.d.ts +2 -0
- package/dist/delivery-dashboard-html.js +115 -0
- package/dist/delivery-dashboard-html.js.map +1 -0
- package/dist/delivery-dashboard-types.d.ts +78 -0
- package/dist/delivery-dashboard-types.js +2 -0
- package/dist/delivery-dashboard-types.js.map +1 -0
- package/dist/delivery-dashboard.d.ts +8 -0
- package/dist/delivery-dashboard.js +124 -0
- package/dist/delivery-dashboard.js.map +1 -0
- package/dist/effort-classification.d.ts +7 -0
- package/dist/effort-classification.js +72 -0
- package/dist/effort-classification.js.map +1 -0
- package/dist/extension-commands.d.ts +3 -0
- package/dist/extension-commands.js +40 -0
- package/dist/extension-commands.js.map +1 -0
- package/dist/extensions.d.ts +22 -0
- package/dist/extensions.js +126 -0
- package/dist/extensions.js.map +1 -0
- package/dist/github.d.ts +2 -0
- package/dist/github.js +15 -3
- package/dist/github.js.map +1 -1
- package/dist/health-checks.js +51 -0
- package/dist/health-checks.js.map +1 -1
- package/dist/lucid-story-map.d.ts +73 -0
- package/dist/lucid-story-map.js +112 -0
- package/dist/lucid-story-map.js.map +1 -0
- package/dist/mcp-integrations.d.ts +19 -0
- package/dist/mcp-integrations.js +58 -0
- package/dist/mcp-integrations.js.map +1 -0
- package/dist/mcp-tool-adapter.d.ts +21 -0
- package/dist/mcp-tool-adapter.js +56 -0
- package/dist/mcp-tool-adapter.js.map +1 -0
- package/dist/memory.js +18 -8
- package/dist/memory.js.map +1 -1
- package/dist/metrics-commands.js +47 -13
- package/dist/metrics-commands.js.map +1 -1
- package/dist/model-commands.d.ts +5 -0
- package/dist/model-commands.js +101 -3
- package/dist/model-commands.js.map +1 -1
- package/dist/model-providers.js +13 -1
- package/dist/model-providers.js.map +1 -1
- package/dist/package-update-check.d.ts +18 -0
- package/dist/package-update-check.js +20 -0
- package/dist/package-update-check.js.map +1 -1
- package/dist/phase-executor.d.ts +1 -0
- package/dist/phase-executor.js +118 -14
- package/dist/phase-executor.js.map +1 -1
- package/dist/phase-playbooks.d.ts +15 -0
- package/dist/phase-playbooks.js +82 -0
- package/dist/phase-playbooks.js.map +1 -1
- package/dist/planning-commands.d.ts +1 -0
- package/dist/planning-commands.js +24 -1
- package/dist/planning-commands.js.map +1 -1
- package/dist/project-detection.js +9 -7
- package/dist/project-detection.js.map +1 -1
- package/dist/prompt-registry-update.d.ts +2 -0
- package/dist/prompt-registry-update.js +25 -1
- package/dist/prompt-registry-update.js.map +1 -1
- package/dist/prompt-registry-validation.js +39 -2
- package/dist/prompt-registry-validation.js.map +1 -1
- package/dist/qa-commands.d.ts +2 -0
- package/dist/qa-commands.js +18 -0
- package/dist/qa-commands.js.map +1 -0
- package/dist/qa-coverage.d.ts +24 -0
- package/dist/qa-coverage.js +198 -0
- package/dist/qa-coverage.js.map +1 -0
- package/dist/qa-readiness.d.ts +5 -0
- package/dist/qa-readiness.js +26 -0
- package/dist/qa-readiness.js.map +1 -0
- package/dist/refresh-generated.d.ts +10 -1
- package/dist/refresh-generated.js +83 -6
- package/dist/refresh-generated.js.map +1 -1
- package/dist/release-candidate.d.ts +9 -1
- package/dist/release-candidate.js +52 -1
- package/dist/release-candidate.js.map +1 -1
- package/dist/release-commands.js +202 -12
- package/dist/release-commands.js.map +1 -1
- package/dist/release-readiness.d.ts +36 -1
- package/dist/release-readiness.js +217 -6
- package/dist/release-readiness.js.map +1 -1
- package/dist/runtime-bootstrap.js +1 -1
- package/dist/runtime-bootstrap.js.map +1 -1
- package/dist/runtime-commands.d.ts +2 -0
- package/dist/runtime-commands.js +77 -0
- package/dist/runtime-commands.js.map +1 -1
- package/dist/runtime-execution-renderer.d.ts +3 -2
- package/dist/runtime-execution-renderer.js +19 -1
- package/dist/runtime-execution-renderer.js.map +1 -1
- package/dist/runtime-execution.d.ts +2 -1
- package/dist/runtime-execution.js +71 -11
- package/dist/runtime-execution.js.map +1 -1
- package/dist/runtime-guardrails.d.ts +26 -0
- package/dist/runtime-guardrails.js +168 -0
- package/dist/runtime-guardrails.js.map +1 -0
- package/dist/setup-agents-import.js +5 -3
- package/dist/setup-agents-import.js.map +1 -1
- package/dist/skills-catalog.js +63 -0
- package/dist/skills-catalog.js.map +1 -1
- package/dist/skills-commands.d.ts +4 -0
- package/dist/skills-commands.js +55 -2
- package/dist/skills-commands.js.map +1 -1
- package/dist/skills-memory.d.ts +36 -2
- package/dist/skills-memory.js +165 -6
- package/dist/skills-memory.js.map +1 -1
- package/dist/skills-planning.js +2 -4
- package/dist/skills-planning.js.map +1 -1
- package/dist/skills-render.js +2 -4
- package/dist/skills-render.js.map +1 -1
- package/dist/skills.d.ts +1 -1
- package/dist/skills.js +1 -1
- package/dist/skills.js.map +1 -1
- package/dist/sprint-commands.js +2 -1
- package/dist/sprint-commands.js.map +1 -1
- package/dist/subagent-protocol.js +3 -5
- package/dist/subagent-protocol.js.map +1 -1
- package/dist/support-commands.d.ts +2 -0
- package/dist/support-commands.js +18 -0
- package/dist/support-commands.js.map +1 -0
- package/dist/support-diagnostics.d.ts +49 -0
- package/dist/support-diagnostics.js +86 -0
- package/dist/support-diagnostics.js.map +1 -0
- package/dist/task-graph-commands.js +5 -3
- package/dist/task-graph-commands.js.map +1 -1
- package/dist/telemetry-redaction.js +8 -1
- package/dist/telemetry-redaction.js.map +1 -1
- package/dist/tool-commands.d.ts +3 -0
- package/dist/tool-commands.js +62 -0
- package/dist/tool-commands.js.map +1 -1
- package/dist/tracker-adapters.d.ts +71 -0
- package/dist/tracker-adapters.js +186 -0
- package/dist/tracker-adapters.js.map +1 -0
- package/dist/tracker-commands.d.ts +2 -0
- package/dist/tracker-commands.js +119 -0
- package/dist/tracker-commands.js.map +1 -0
- package/dist/types/metrics.d.ts +24 -0
- package/dist/types/model-config.d.ts +39 -0
- package/dist/types/runtime.d.ts +56 -0
- package/dist/types/skills.d.ts +2 -0
- package/dist/types/tasks.d.ts +6 -0
- package/dist/types/workflow-run.d.ts +17 -0
- package/dist/types.d.ts +4 -4
- package/dist/types.js.map +1 -1
- package/dist/upgrade-commands.js +13 -4
- package/dist/upgrade-commands.js.map +1 -1
- package/dist/validation.js +2 -2
- package/dist/validation.js.map +1 -1
- package/dist/visual-validation.d.ts +81 -0
- package/dist/visual-validation.js +290 -0
- package/dist/visual-validation.js.map +1 -0
- package/dist/web-action-security.d.ts +11 -0
- package/dist/web-action-security.js +45 -0
- package/dist/web-action-security.js.map +1 -0
- package/dist/web-api-read-routes.js +101 -1
- package/dist/web-api-read-routes.js.map +1 -1
- package/dist/web-api.js +507 -5
- package/dist/web-api.js.map +1 -1
- package/dist/web-artifacts.d.ts +55 -0
- package/dist/web-artifacts.js +222 -0
- package/dist/web-artifacts.js.map +1 -0
- package/dist/web-console/assets/index-BNESIVvk.js +11 -0
- package/dist/web-console/assets/index-jxCY5eEc.css +1 -0
- package/dist/web-console/index.html +13 -0
- package/dist/web-console.js +9 -3
- package/dist/web-console.js.map +1 -1
- package/dist/web-recovery.d.ts +30 -0
- package/dist/web-recovery.js +163 -0
- package/dist/web-recovery.js.map +1 -0
- package/dist/web-workflow-progress.d.ts +41 -0
- package/dist/web-workflow-progress.js +114 -0
- package/dist/web-workflow-progress.js.map +1 -0
- package/dist/workflow-approval-service.d.ts +2 -1
- package/dist/workflow-approval-service.js +72 -0
- package/dist/workflow-approval-service.js.map +1 -1
- package/dist/workflow-evidence-service.js +8 -1
- package/dist/workflow-evidence-service.js.map +1 -1
- package/dist/workflow-gates.d.ts +2 -0
- package/dist/workflow-gates.js +221 -0
- package/dist/workflow-gates.js.map +1 -1
- package/dist/workflow-run-commands.js +13 -1
- package/dist/workflow-run-commands.js.map +1 -1
- package/dist/workflow-services.d.ts +16 -12
- package/dist/workflow-services.js +313 -253
- package/dist/workflow-services.js.map +1 -1
- package/dist/workflow-task-service.d.ts +11 -0
- package/dist/workflow-task-service.js +242 -0
- package/dist/workflow-task-service.js.map +1 -0
- package/dist/workspace-validator.js +109 -3
- package/dist/workspace-validator.js.map +1 -1
- package/dist/workspace.js +8 -2
- package/dist/workspace.js.map +1 -1
- package/docs/adoption-guide.md +147 -0
- package/docs/autonomous-workflow.md +118 -27
- package/docs/benchmark.md +15 -7
- package/docs/command-contracts.md +18 -1
- package/docs/core-command-surface.md +59 -13
- package/docs/end-to-end-demo.md +1 -0
- package/docs/extension-contracts.md +83 -0
- package/docs/orchestra-mvp.md +83 -3
- package/docs/persona-workflows.md +32 -0
- package/docs/release-test-matrix.md +42 -0
- package/docs/runtime-adapters.md +92 -0
- package/docs/runtime-llm-flow.md +13 -0
- package/docs/setup-agents-applicability-review.md +173 -0
- package/docs/skill-loading-strategy.md +1 -0
- package/docs/source-of-truth-and-agent-learning.md +14 -0
- package/docs/traceability-flow.md +16 -1
- package/docs/tracker-adapter-contract.md +10 -1
- package/docs/web-console-qa.md +35 -0
- package/package.json +12 -6
- package/rules/development-engineering.mdc +68 -0
- package/rules/devops-tooling.mdc +1 -0
- package/rules/dry-clean-code.mdc +1 -0
- package/rules/performance-reliability.mdc +1 -0
- package/rules/testing-discipline.mdc +4 -1
- package/skills/collection-standards/SKILL.md +63 -0
- package/skills/collection-standards/manifest.json +69 -0
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
const TRACKER_CONTRACTS = [
|
|
2
|
+
contract("github", "gh", "github-mcp"),
|
|
3
|
+
contract("jira", "jira", "jira-mcp"),
|
|
4
|
+
contract("gitlab", "glab", "gitlab-mcp"),
|
|
5
|
+
contract("bitbucket", "bb", "bitbucket-mcp"),
|
|
6
|
+
];
|
|
7
|
+
export function listTrackerAdapterContracts() {
|
|
8
|
+
return TRACKER_CONTRACTS.map((item) => ({
|
|
9
|
+
...item,
|
|
10
|
+
operations: [...item.operations],
|
|
11
|
+
}));
|
|
12
|
+
}
|
|
13
|
+
export function getTrackerAdapterContract(tracker) {
|
|
14
|
+
const normalized = normalizeTrackerProvider(tracker);
|
|
15
|
+
const contract = TRACKER_CONTRACTS.find((item) => item.tracker === normalized);
|
|
16
|
+
if (!contract) {
|
|
17
|
+
throw new Error(`unsupported tracker: ${tracker}`);
|
|
18
|
+
}
|
|
19
|
+
return { ...contract, operations: [...contract.operations] };
|
|
20
|
+
}
|
|
21
|
+
export function selectTrackerTransport({ tracker, requestedTransport, cliAvailable, mcpSkillAvailable, }) {
|
|
22
|
+
const contract = getTrackerAdapterContract(tracker);
|
|
23
|
+
if (requestedTransport === "cli") {
|
|
24
|
+
if (!cliAvailable) {
|
|
25
|
+
throw new Error(`${contract.tracker} CLI transport requires ${contract.nativeCli}`);
|
|
26
|
+
}
|
|
27
|
+
return {
|
|
28
|
+
tracker: contract.tracker,
|
|
29
|
+
transport: "cli",
|
|
30
|
+
reason: `${contract.nativeCli} CLI selected explicitly`,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
if (requestedTransport === "mcp-skill") {
|
|
34
|
+
if (!mcpSkillAvailable) {
|
|
35
|
+
throw new Error(`${contract.tracker} MCP skill transport requires ${contract.mcpSkill}`);
|
|
36
|
+
}
|
|
37
|
+
return {
|
|
38
|
+
tracker: contract.tracker,
|
|
39
|
+
transport: "mcp-skill",
|
|
40
|
+
reason: `${contract.mcpSkill} selected explicitly`,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
if (cliAvailable) {
|
|
44
|
+
return {
|
|
45
|
+
tracker: contract.tracker,
|
|
46
|
+
transport: "cli",
|
|
47
|
+
reason: `${contract.nativeCli} CLI available`,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
if (mcpSkillAvailable) {
|
|
51
|
+
return {
|
|
52
|
+
tracker: contract.tracker,
|
|
53
|
+
transport: "mcp-skill",
|
|
54
|
+
reason: `${contract.nativeCli} unavailable; ${contract.mcpSkill} fallback available`,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
throw new Error(`${contract.tracker} tracker sync requires ${contract.nativeCli} CLI or ${contract.mcpSkill} MCP skill`);
|
|
58
|
+
}
|
|
59
|
+
export function normalizeTrackerIssue(input) {
|
|
60
|
+
const tracker = normalizeTrackerProvider(input.tracker);
|
|
61
|
+
const state = normalizeTrackerIssueState(input.state);
|
|
62
|
+
if (typeof input.title !== "string" || input.title.trim() === "") {
|
|
63
|
+
throw new Error("tracker issue title is required");
|
|
64
|
+
}
|
|
65
|
+
return {
|
|
66
|
+
tracker,
|
|
67
|
+
remoteId: String(input.remoteId),
|
|
68
|
+
...(typeof input.url === "string" && input.url.trim()
|
|
69
|
+
? { url: input.url }
|
|
70
|
+
: {}),
|
|
71
|
+
title: input.title,
|
|
72
|
+
...(typeof input.body === "string" ? { body: input.body } : {}),
|
|
73
|
+
...(state ? { state } : {}),
|
|
74
|
+
labels: stringArray(input.labels),
|
|
75
|
+
assignees: stringArray(input.assignees),
|
|
76
|
+
acceptanceCriteria: stringArray(input.acceptanceCriteria),
|
|
77
|
+
...(typeof input.updatedAt === "string" && input.updatedAt.trim()
|
|
78
|
+
? { updatedAt: input.updatedAt }
|
|
79
|
+
: {}),
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
export function defaultTrackerTaskId(issue) {
|
|
83
|
+
return `${issue.tracker.toUpperCase()}-${issue.remoteId.replace(/[^a-z0-9]+/gi, "-").replace(/^-|-$/g, "")}`;
|
|
84
|
+
}
|
|
85
|
+
export function trackerIssueTaskFields(issue) {
|
|
86
|
+
const goal = issue.body ? firstSection(issue.body, "User Story") : undefined;
|
|
87
|
+
return {
|
|
88
|
+
title: issue.title,
|
|
89
|
+
backlogItem: issue.url ?? `${issue.tracker}:${issue.remoteId}`,
|
|
90
|
+
...(goal ? { goal } : {}),
|
|
91
|
+
...(issue.acceptanceCriteria.length > 0
|
|
92
|
+
? { acceptanceCriteria: issue.acceptanceCriteria }
|
|
93
|
+
: {}),
|
|
94
|
+
...(issue.labels.length > 0 ? { risks: issue.labels } : {}),
|
|
95
|
+
...(issue.state ? { status: trackerStateToTaskStatus(issue.state) } : {}),
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
export function planTrackerSync(input) {
|
|
99
|
+
const taskId = input.taskId ?? defaultTrackerTaskId(input.issue);
|
|
100
|
+
const fields = trackerIssueTaskFields(input.issue);
|
|
101
|
+
if (!input.existingTask) {
|
|
102
|
+
return {
|
|
103
|
+
tracker: input.issue.tracker,
|
|
104
|
+
remoteId: input.issue.remoteId,
|
|
105
|
+
taskId,
|
|
106
|
+
action: "create",
|
|
107
|
+
conflicts: [],
|
|
108
|
+
mappedFields: mappedTrackerFields(fields),
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
const conflicts = [];
|
|
112
|
+
if (input.existingTask.backlogItem &&
|
|
113
|
+
input.existingTask.backlogItem !== fields.backlogItem) {
|
|
114
|
+
conflicts.push(`task ${taskId} is already linked to ${input.existingTask.backlogItem}`);
|
|
115
|
+
}
|
|
116
|
+
return {
|
|
117
|
+
tracker: input.issue.tracker,
|
|
118
|
+
remoteId: input.issue.remoteId,
|
|
119
|
+
taskId,
|
|
120
|
+
action: conflicts.length > 0
|
|
121
|
+
? "conflict"
|
|
122
|
+
: input.existingTask.title === fields.title
|
|
123
|
+
? "none"
|
|
124
|
+
: "update",
|
|
125
|
+
conflicts,
|
|
126
|
+
mappedFields: mappedTrackerFields(fields),
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
function contract(tracker, nativeCli, mcpSkill) {
|
|
130
|
+
return {
|
|
131
|
+
tracker,
|
|
132
|
+
nativeCli,
|
|
133
|
+
mcpSkill,
|
|
134
|
+
operations: ["issue-read", "comment-upsert", "close"],
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
function normalizeTrackerProvider(tracker) {
|
|
138
|
+
const normalized = tracker.toLowerCase().trim();
|
|
139
|
+
if (normalized === "github" ||
|
|
140
|
+
normalized === "jira" ||
|
|
141
|
+
normalized === "gitlab" ||
|
|
142
|
+
normalized === "bitbucket") {
|
|
143
|
+
return normalized;
|
|
144
|
+
}
|
|
145
|
+
throw new Error(`unsupported tracker: ${tracker}`);
|
|
146
|
+
}
|
|
147
|
+
function normalizeTrackerIssueState(value) {
|
|
148
|
+
if (typeof value !== "string") {
|
|
149
|
+
return undefined;
|
|
150
|
+
}
|
|
151
|
+
const normalized = value
|
|
152
|
+
.toLowerCase()
|
|
153
|
+
.trim()
|
|
154
|
+
.replace(/[-\s]+/g, "_");
|
|
155
|
+
if (normalized === "open" ||
|
|
156
|
+
normalized === "in_progress" ||
|
|
157
|
+
normalized === "blocked" ||
|
|
158
|
+
normalized === "done") {
|
|
159
|
+
return normalized;
|
|
160
|
+
}
|
|
161
|
+
return undefined;
|
|
162
|
+
}
|
|
163
|
+
function trackerStateToTaskStatus(state) {
|
|
164
|
+
if (state === "open")
|
|
165
|
+
return "pending";
|
|
166
|
+
return state;
|
|
167
|
+
}
|
|
168
|
+
function stringArray(value) {
|
|
169
|
+
return Array.isArray(value)
|
|
170
|
+
? value.filter((item) => typeof item === "string")
|
|
171
|
+
: [];
|
|
172
|
+
}
|
|
173
|
+
function mappedTrackerFields(fields) {
|
|
174
|
+
return Object.entries(fields)
|
|
175
|
+
.filter(([, value]) => Array.isArray(value) ? value.length > 0 : value !== undefined)
|
|
176
|
+
.map(([key]) => key);
|
|
177
|
+
}
|
|
178
|
+
function firstSection(body, heading) {
|
|
179
|
+
const pattern = new RegExp(`##\\s+${escapeRegExp(heading)}\\s*\\n([\\s\\S]*?)(?=\\n##\\s+|$)`, "i");
|
|
180
|
+
const match = body.match(pattern);
|
|
181
|
+
return match?.[1]?.trim();
|
|
182
|
+
}
|
|
183
|
+
function escapeRegExp(value) {
|
|
184
|
+
return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
185
|
+
}
|
|
186
|
+
//# sourceMappingURL=tracker-adapters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tracker-adapters.js","sourceRoot":"","sources":["../src/tracker-adapters.ts"],"names":[],"mappings":"AAuCA,MAAM,iBAAiB,GAA6B;IAClD,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE,YAAY,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC;IACxC,QAAQ,CAAC,WAAW,EAAE,IAAI,EAAE,eAAe,CAAC;CAC7C,CAAC;AAEF,MAAM,UAAU,2BAA2B;IACzC,OAAO,iBAAiB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACtC,GAAG,IAAI;QACP,UAAU,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;KACjC,CAAC,CAAC,CAAC;AACN,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,OAAe;IAEf,MAAM,UAAU,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CACrC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,UAAU,CACtC,CAAC;IACF,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,wBAAwB,OAAO,EAAE,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,EAAE,GAAG,QAAQ,EAAE,UAAU,EAAE,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,EACrC,OAAO,EACP,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,GAMlB;IACC,MAAM,QAAQ,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;IACpD,IAAI,kBAAkB,KAAK,KAAK,EAAE,CAAC;QACjC,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CACb,GAAG,QAAQ,CAAC,OAAO,2BAA2B,QAAQ,CAAC,SAAS,EAAE,CACnE,CAAC;QACJ,CAAC;QACD,OAAO;YACL,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,SAAS,EAAE,KAAK;YAChB,MAAM,EAAE,GAAG,QAAQ,CAAC,SAAS,0BAA0B;SACxD,CAAC;IACJ,CAAC;IACD,IAAI,kBAAkB,KAAK,WAAW,EAAE,CAAC;QACvC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CACb,GAAG,QAAQ,CAAC,OAAO,iCAAiC,QAAQ,CAAC,QAAQ,EAAE,CACxE,CAAC;QACJ,CAAC;QACD,OAAO;YACL,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,SAAS,EAAE,WAAW;YACtB,MAAM,EAAE,GAAG,QAAQ,CAAC,QAAQ,sBAAsB;SACnD,CAAC;IACJ,CAAC;IACD,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO;YACL,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,SAAS,EAAE,KAAK;YAChB,MAAM,EAAE,GAAG,QAAQ,CAAC,SAAS,gBAAgB;SAC9C,CAAC;IACJ,CAAC;IACD,IAAI,iBAAiB,EAAE,CAAC;QACtB,OAAO;YACL,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,SAAS,EAAE,WAAW;YACtB,MAAM,EAAE,GAAG,QAAQ,CAAC,SAAS,iBAAiB,QAAQ,CAAC,QAAQ,qBAAqB;SACrF,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,KAAK,CACb,GAAG,QAAQ,CAAC,OAAO,0BAA0B,QAAQ,CAAC,SAAS,WAAW,QAAQ,CAAC,QAAQ,YAAY,CACxG,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAWrC;IACC,MAAM,OAAO,GAAG,wBAAwB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACxD,MAAM,KAAK,GAAG,0BAA0B,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACtD,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACjE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IACD,OAAO;QACL,OAAO;QACP,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC;QAChC,GAAG,CAAC,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE;YACnD,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE;YACpB,CAAC,CAAC,EAAE,CAAC;QACP,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3B,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC;QACjC,SAAS,EAAE,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC;QACvC,kBAAkB,EAAE,WAAW,CAAC,KAAK,CAAC,kBAAkB,CAAC;QACzD,GAAG,CAAC,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE;YAC/D,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE;YAChC,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAA6B;IAChE,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC;AAC/G,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAA6B;IAQlE,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7E,OAAO;QACL,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,WAAW,EAAE,KAAK,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE;QAC9D,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzB,GAAG,CAAC,KAAK,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC;YACrC,CAAC,CAAC,EAAE,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,EAAE;YAClD,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,wBAAwB,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1E,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAI/B;IACC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,oBAAoB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACjE,MAAM,MAAM,GAAG,sBAAsB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACnD,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QACxB,OAAO;YACL,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO;YAC5B,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ;YAC9B,MAAM;YACN,MAAM,EAAE,QAAQ;YAChB,SAAS,EAAE,EAAE;YACb,YAAY,EAAE,mBAAmB,CAAC,MAAM,CAAC;SAC1C,CAAC;IACJ,CAAC;IACD,MAAM,SAAS,GAAG,EAAE,CAAC;IACrB,IACE,KAAK,CAAC,YAAY,CAAC,WAAW;QAC9B,KAAK,CAAC,YAAY,CAAC,WAAW,KAAK,MAAM,CAAC,WAAW,EACrD,CAAC;QACD,SAAS,CAAC,IAAI,CACZ,QAAQ,MAAM,yBAAyB,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,CACxE,CAAC;IACJ,CAAC;IACD,OAAO;QACL,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO;QAC5B,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ;QAC9B,MAAM;QACN,MAAM,EACJ,SAAS,CAAC,MAAM,GAAG,CAAC;YAClB,CAAC,CAAC,UAAU;YACZ,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK;gBACzC,CAAC,CAAC,MAAM;gBACR,CAAC,CAAC,QAAQ;QAChB,SAAS;QACT,YAAY,EAAE,mBAAmB,CAAC,MAAM,CAAC;KAC1C,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CACf,OAAwB,EACxB,SAAiB,EACjB,QAAgB;IAEhB,OAAO;QACL,OAAO;QACP,SAAS;QACT,QAAQ;QACR,UAAU,EAAE,CAAC,YAAY,EAAE,gBAAgB,EAAE,OAAO,CAAC;KACtD,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAAC,OAAe;IAC/C,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;IAChD,IACE,UAAU,KAAK,QAAQ;QACvB,UAAU,KAAK,MAAM;QACrB,UAAU,KAAK,QAAQ;QACvB,UAAU,KAAK,WAAW,EAC1B,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,wBAAwB,OAAO,EAAE,CAAC,CAAC;AACrD,CAAC;AAED,SAAS,0BAA0B,CACjC,KAAc;IAEd,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,UAAU,GAAG,KAAK;SACrB,WAAW,EAAE;SACb,IAAI,EAAE;SACN,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAC3B,IACE,UAAU,KAAK,MAAM;QACrB,UAAU,KAAK,aAAa;QAC5B,UAAU,KAAK,SAAS;QACxB,UAAU,KAAK,MAAM,EACrB,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,wBAAwB,CAC/B,KAAwB;IAExB,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,SAAS,CAAC;IACvC,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACzB,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC;QAClE,CAAC,CAAC,EAAE,CAAC;AACT,CAAC;AAED,SAAS,mBAAmB,CAAC,MAA+B;IAC1D,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;SAC1B,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CACpB,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAC9D;SACA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED,SAAS,YAAY,CAAC,IAAY,EAAE,OAAe;IACjD,MAAM,OAAO,GAAG,IAAI,MAAM,CACxB,SAAS,YAAY,CAAC,OAAO,CAAC,oCAAoC,EAClE,GAAG,CACJ,CAAC;IACF,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAClC,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;AAC5B,CAAC;AAED,SAAS,YAAY,CAAC,KAAa;IACjC,OAAO,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { readFile } from "node:fs/promises";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { requireArg } from "./args.js";
|
|
4
|
+
import { removeUndefined, stringOption, targetRootOption, } from "./command-utils.js";
|
|
5
|
+
import { normalizeTaskStatus } from "./constants.js";
|
|
6
|
+
import { resolveWorkspaceWritePath } from "./fs-utils.js";
|
|
7
|
+
import { normalizeTrackerIssue, defaultTrackerTaskId, planTrackerSync, trackerIssueTaskFields, } from "./tracker-adapters.js";
|
|
8
|
+
import { addEvidence, addTask, listTasks, updateTask, } from "./workflow-services.js";
|
|
9
|
+
export async function trackerSyncCommand(options, io) {
|
|
10
|
+
const root = targetRootOption(options);
|
|
11
|
+
const tracker = requireArg(options, "tracker");
|
|
12
|
+
const remoteId = requireArg(options, "remote");
|
|
13
|
+
const issueFile = stringOption(options["issue-file"]);
|
|
14
|
+
if (!issueFile) {
|
|
15
|
+
throw new Error("tracker sync requires --issue-file with normalized tracker issue JSON; live provider runners must inject an adapter");
|
|
16
|
+
}
|
|
17
|
+
const payload = await readIssuePayload(root, issueFile);
|
|
18
|
+
const issue = normalizeTrackerIssue({
|
|
19
|
+
tracker,
|
|
20
|
+
remoteId,
|
|
21
|
+
title: payload.title,
|
|
22
|
+
url: payload.url,
|
|
23
|
+
body: payload.body,
|
|
24
|
+
state: payload.state,
|
|
25
|
+
labels: payload.labels,
|
|
26
|
+
assignees: payload.assignees,
|
|
27
|
+
acceptanceCriteria: payload.acceptanceCriteria,
|
|
28
|
+
updatedAt: payload.updatedAt,
|
|
29
|
+
});
|
|
30
|
+
const tasks = await listTasks(root);
|
|
31
|
+
const taskId = stringOption(options.task);
|
|
32
|
+
const effectiveTaskId = taskId ?? undefined;
|
|
33
|
+
const existing = tasks.find((task) => task.id === (effectiveTaskId ?? defaultTrackerTaskId(issue)) ||
|
|
34
|
+
task.backlogItem === (issue.url ?? `${issue.tracker}:${issue.remoteId}`));
|
|
35
|
+
const plan = planTrackerSync({
|
|
36
|
+
issue,
|
|
37
|
+
...(effectiveTaskId ? { taskId: effectiveTaskId } : {}),
|
|
38
|
+
...(existing
|
|
39
|
+
? {
|
|
40
|
+
existingTask: {
|
|
41
|
+
title: existing.title,
|
|
42
|
+
...(existing.backlogItem
|
|
43
|
+
? { backlogItem: existing.backlogItem }
|
|
44
|
+
: {}),
|
|
45
|
+
},
|
|
46
|
+
}
|
|
47
|
+
: {}),
|
|
48
|
+
});
|
|
49
|
+
if (plan.action === "conflict") {
|
|
50
|
+
throw new Error(`tracker sync conflict: ${plan.conflicts.join("; ")}`);
|
|
51
|
+
}
|
|
52
|
+
const fields = trackerIssueTaskFields(issue);
|
|
53
|
+
const ownerRole = stringOption(options.owner) ?? existing?.ownerRole ?? "developer";
|
|
54
|
+
const status = parseTaskStatus(stringOption(options.status)) ?? fields.status;
|
|
55
|
+
const taskInput = removeUndefined({
|
|
56
|
+
id: plan.taskId,
|
|
57
|
+
title: fields.title,
|
|
58
|
+
ownerRole,
|
|
59
|
+
dependencies: existing?.dependencies ?? [],
|
|
60
|
+
status,
|
|
61
|
+
backlogItem: fields.backlogItem,
|
|
62
|
+
goal: fields.goal ?? existing?.goal,
|
|
63
|
+
acceptanceCriteria: fields.acceptanceCriteria ?? existing?.acceptanceCriteria,
|
|
64
|
+
risks: fields.risks ?? existing?.risks,
|
|
65
|
+
qaGate: existing?.qaGate ??
|
|
66
|
+
defaultQaPlanForImportedExecution(status, issue.tracker, issue.remoteId),
|
|
67
|
+
});
|
|
68
|
+
if (!options["dry-run"]) {
|
|
69
|
+
if (plan.action === "create") {
|
|
70
|
+
await addTask(taskInput, root);
|
|
71
|
+
if (status && status !== "pending") {
|
|
72
|
+
await updateTask({ id: taskInput.id, status }, root);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
else if (plan.action === "update") {
|
|
76
|
+
await updateTask(taskInput, root);
|
|
77
|
+
}
|
|
78
|
+
await addEvidence({
|
|
79
|
+
task: plan.taskId,
|
|
80
|
+
role: "developer",
|
|
81
|
+
type: "report",
|
|
82
|
+
summary: `${issue.tracker} issue ${issue.remoteId} synchronized from normalized tracker adapter (${plan.action})`,
|
|
83
|
+
}, root);
|
|
84
|
+
}
|
|
85
|
+
const result = {
|
|
86
|
+
...plan,
|
|
87
|
+
dryRun: Boolean(options["dry-run"]),
|
|
88
|
+
task: taskInput,
|
|
89
|
+
issue,
|
|
90
|
+
};
|
|
91
|
+
if (options.json) {
|
|
92
|
+
io.log(JSON.stringify(result, null, 2));
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
io.log(`${plan.tracker} ${plan.remoteId} -> ${plan.taskId}: ${plan.action}`);
|
|
96
|
+
}
|
|
97
|
+
async function readIssuePayload(root, issueFile) {
|
|
98
|
+
const issuePath = resolveWorkspaceWritePath(root, path.normalize(issueFile));
|
|
99
|
+
return JSON.parse(await readFile(issuePath, "utf8"));
|
|
100
|
+
}
|
|
101
|
+
function parseTaskStatus(value) {
|
|
102
|
+
if (!value) {
|
|
103
|
+
return undefined;
|
|
104
|
+
}
|
|
105
|
+
const status = normalizeTaskStatus(value);
|
|
106
|
+
if (!status) {
|
|
107
|
+
throw new Error(`invalid task status: ${value}`);
|
|
108
|
+
}
|
|
109
|
+
return status;
|
|
110
|
+
}
|
|
111
|
+
function defaultQaPlanForImportedExecution(status, tracker, remoteId) {
|
|
112
|
+
if (status !== "ready" && status !== "in_progress") {
|
|
113
|
+
return undefined;
|
|
114
|
+
}
|
|
115
|
+
return {
|
|
116
|
+
plan: `Validate imported ${tracker} issue ${remoteId} against mapped acceptance criteria, regression risk, and synchronization evidence before release.`,
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=tracker-commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tracker-commands.js","sourceRoot":"","sources":["../src/tracker-commands.ts"],"names":[],"mappings":"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"}
|
package/dist/types/metrics.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ export interface EstimateRecord {
|
|
|
8
8
|
sizingLabel: SizingLabel;
|
|
9
9
|
soloEstimateDays: number;
|
|
10
10
|
aiUnguidedEstimateDays: number;
|
|
11
|
+
aiGuidedEstimateDays: number;
|
|
11
12
|
confidence: EstimateConfidence;
|
|
12
13
|
declaredBy: string;
|
|
13
14
|
declaredAt: string;
|
|
@@ -17,9 +18,18 @@ export interface EstimateInput {
|
|
|
17
18
|
sizingLabel: SizingLabel;
|
|
18
19
|
soloEstimateDays: number;
|
|
19
20
|
aiUnguidedEstimateDays: number;
|
|
21
|
+
aiGuidedEstimateDays: number;
|
|
20
22
|
confidence: EstimateConfidence;
|
|
21
23
|
declaredBy: string;
|
|
22
24
|
}
|
|
25
|
+
export interface EstimateCalibration {
|
|
26
|
+
baselineEstimateDays: number;
|
|
27
|
+
historicalMedian: number | null;
|
|
28
|
+
variance: number | null;
|
|
29
|
+
calibrationNote: string;
|
|
30
|
+
sampleSize: number;
|
|
31
|
+
ignored: boolean;
|
|
32
|
+
}
|
|
23
33
|
export interface BenchmarkQualitySignals {
|
|
24
34
|
reviewCount: number;
|
|
25
35
|
blockingReviews: number;
|
|
@@ -30,18 +40,30 @@ export interface BenchmarkQualitySignals {
|
|
|
30
40
|
totalOutputTokens: number;
|
|
31
41
|
estimatedCostUsd: number;
|
|
32
42
|
}
|
|
43
|
+
export interface EffortBreakdown {
|
|
44
|
+
aiAutonomousMinutes: number;
|
|
45
|
+
aiSupervisedMinutes: number;
|
|
46
|
+
aiCalibrationBaselineMinutes: number;
|
|
47
|
+
humanReviewMinutes: number;
|
|
48
|
+
humanManualMinutes: number;
|
|
49
|
+
classification: "ai_autonomous" | "ai_supervised" | "human_manual" | "pending";
|
|
50
|
+
notes: string[];
|
|
51
|
+
}
|
|
33
52
|
export interface BenchmarkResult {
|
|
34
53
|
taskId: string;
|
|
35
54
|
sizingLabel: SizingLabel;
|
|
36
55
|
soloEstimateDays: number;
|
|
37
56
|
aiUnguidedEstimateDays: number;
|
|
57
|
+
aiGuidedEstimateDays: number;
|
|
38
58
|
actualSource: "phase-timeline" | "task-lifecycle" | "task-timestamps" | "none";
|
|
39
59
|
actualDays: number | null;
|
|
40
60
|
actualHours: number | null;
|
|
41
61
|
vsSoloPct: number | null;
|
|
42
62
|
vsAiUnguidedPct: number | null;
|
|
63
|
+
vsAiGuidedPct: number | null;
|
|
43
64
|
qaIterations: number;
|
|
44
65
|
phaseDurations: BenchmarkPhaseDuration[];
|
|
66
|
+
effortBreakdown: EffortBreakdown;
|
|
45
67
|
quality: BenchmarkQualitySignals;
|
|
46
68
|
status: "pending" | "complete";
|
|
47
69
|
}
|
|
@@ -50,6 +72,7 @@ export interface BenchmarkSummary {
|
|
|
50
72
|
totalWithActuals: number;
|
|
51
73
|
avgVsSoloPct: number | null;
|
|
52
74
|
avgVsAiUnguidedPct: number | null;
|
|
75
|
+
avgVsAiGuidedPct: number | null;
|
|
53
76
|
}
|
|
54
77
|
export interface VelocityWeek {
|
|
55
78
|
week: string;
|
|
@@ -62,6 +85,7 @@ export interface VelocityReport {
|
|
|
62
85
|
avgActualDaysPerStory: number | null;
|
|
63
86
|
avgVsSoloPct: number | null;
|
|
64
87
|
avgVsAiUnguidedPct: number | null;
|
|
88
|
+
avgVsAiGuidedPct: number | null;
|
|
65
89
|
weeks: VelocityWeek[];
|
|
66
90
|
trend: "improving" | "stable" | "declining" | "insufficient_data";
|
|
67
91
|
}
|
|
@@ -54,7 +54,10 @@ export interface ModelProviderError {
|
|
|
54
54
|
}
|
|
55
55
|
export interface ProviderFailureDetail {
|
|
56
56
|
provider: string;
|
|
57
|
+
code: "provider_error" | "timeout" | "permission_denied" | "policy_blocked";
|
|
57
58
|
reason: string;
|
|
59
|
+
retryable: boolean;
|
|
60
|
+
attempts: number;
|
|
58
61
|
}
|
|
59
62
|
export interface ProviderFallbackResult {
|
|
60
63
|
provider: string;
|
|
@@ -73,6 +76,10 @@ export interface ModelProvenanceInput {
|
|
|
73
76
|
inputTokens: number;
|
|
74
77
|
outputTokens: number;
|
|
75
78
|
estimatedCostUsd: number;
|
|
79
|
+
usageSource?: "provider" | "runtime" | "estimated" | "unavailable";
|
|
80
|
+
costSource?: "provider" | "pricing_estimate" | "free" | "unavailable";
|
|
81
|
+
usageUnavailableRationale?: string;
|
|
82
|
+
costUnavailableRationale?: string;
|
|
76
83
|
finishReason: ModelResponse["finishReason"];
|
|
77
84
|
}
|
|
78
85
|
export interface ModelProvenanceRecord extends ModelProvenanceInput {
|
|
@@ -102,6 +109,7 @@ export interface PhaseStructuredOutput {
|
|
|
102
109
|
decisions: string[];
|
|
103
110
|
evidence: string[];
|
|
104
111
|
handoff: string;
|
|
112
|
+
noOpRationale?: string;
|
|
105
113
|
architecturalConcerns?: {
|
|
106
114
|
inherited: string[];
|
|
107
115
|
selfImposed: string[];
|
|
@@ -145,12 +153,43 @@ export interface ProviderRouting {
|
|
|
145
153
|
export interface WorkflowProvidersConfig {
|
|
146
154
|
defaults: ProviderRouting;
|
|
147
155
|
byRole: Record<string, ProviderRouting>;
|
|
156
|
+
profiles?: Record<string, ProviderRuntimeProfile>;
|
|
157
|
+
activeProfile?: string;
|
|
148
158
|
}
|
|
149
159
|
export interface ProviderPolicyConfig {
|
|
150
160
|
allowedProviders?: string[];
|
|
151
161
|
blockedProviders?: string[];
|
|
152
162
|
allowVendorFallbackWithoutApproval?: boolean;
|
|
153
163
|
}
|
|
164
|
+
export interface ProviderRuntimeProfile {
|
|
165
|
+
description?: string;
|
|
166
|
+
defaults?: ProviderRouting;
|
|
167
|
+
byRole: Record<string, ProviderRouting>;
|
|
168
|
+
budgets?: BudgetPolicy;
|
|
169
|
+
providerPolicy?: ProviderPolicyConfig;
|
|
170
|
+
requiredEnv?: string[];
|
|
171
|
+
}
|
|
172
|
+
export interface ProviderRuntimeProfileSummary {
|
|
173
|
+
name: string;
|
|
174
|
+
active: boolean;
|
|
175
|
+
description?: string;
|
|
176
|
+
roles: string[];
|
|
177
|
+
defaultProvider?: string;
|
|
178
|
+
defaultModel?: string;
|
|
179
|
+
requiredEnv: string[];
|
|
180
|
+
}
|
|
181
|
+
export interface ProviderProfileSmokeCheck {
|
|
182
|
+
scope: string;
|
|
183
|
+
provider: string;
|
|
184
|
+
model: string;
|
|
185
|
+
status: "pass" | "fail";
|
|
186
|
+
detail: string;
|
|
187
|
+
}
|
|
188
|
+
export interface ProviderProfileSmokeResult {
|
|
189
|
+
profile: string;
|
|
190
|
+
passed: boolean;
|
|
191
|
+
checks: ProviderProfileSmokeCheck[];
|
|
192
|
+
}
|
|
154
193
|
export interface ProviderCredentialConfig {
|
|
155
194
|
apiKeyFile?: string;
|
|
156
195
|
apiKeyFileEnv?: string;
|
package/dist/types/runtime.d.ts
CHANGED
|
@@ -67,6 +67,7 @@ export interface RuntimeExecutorConfig {
|
|
|
67
67
|
export interface RuntimeDelegationPolicy {
|
|
68
68
|
mode: RuntimeDelegationMode;
|
|
69
69
|
allowDirectProviderApi: boolean;
|
|
70
|
+
guardrails?: RuntimeDelegationGuardrails;
|
|
70
71
|
}
|
|
71
72
|
export interface RuntimeExecutionPolicy {
|
|
72
73
|
defaults?: RuntimeExecutorConfig;
|
|
@@ -87,6 +88,59 @@ export interface RuntimeDelegationAssignment {
|
|
|
87
88
|
allowedCommands: string[];
|
|
88
89
|
expectedArtifacts: string[];
|
|
89
90
|
}
|
|
91
|
+
export type RuntimeDelegationLimitAction = "queue" | "reject";
|
|
92
|
+
export interface RuntimeDelegationGuardrails {
|
|
93
|
+
maxConcurrentDelegates: number;
|
|
94
|
+
maxDelegationDepth: number;
|
|
95
|
+
maxSpawnsPerTask: number;
|
|
96
|
+
spawnBudgetTokens: number;
|
|
97
|
+
contextBudgetTokens: number;
|
|
98
|
+
timeoutMs: number;
|
|
99
|
+
staleClaimTtlMs: number;
|
|
100
|
+
allowNestedDelegation: boolean;
|
|
101
|
+
limitAction: RuntimeDelegationLimitAction;
|
|
102
|
+
handoffMaxChars: number;
|
|
103
|
+
}
|
|
104
|
+
export type RuntimeDelegationGuardrailStatus = "allow" | "queue" | "reject";
|
|
105
|
+
export interface RuntimeDelegationGuardrailEvaluation {
|
|
106
|
+
status: RuntimeDelegationGuardrailStatus;
|
|
107
|
+
reasons: string[];
|
|
108
|
+
policy: RuntimeDelegationGuardrails;
|
|
109
|
+
activeSessions: number;
|
|
110
|
+
requestedSpawns: number;
|
|
111
|
+
delegationDepth: number;
|
|
112
|
+
contextBudgetTokens: number;
|
|
113
|
+
spawnBudgetTokens: number;
|
|
114
|
+
staleSessions: string[];
|
|
115
|
+
}
|
|
116
|
+
export type RuntimeDelegationSessionStatus = "planned" | "spawned" | "active" | "suspended" | "completed" | "failed" | "timed_out" | "canceled" | "closed";
|
|
117
|
+
export interface RuntimeDelegationSessionSummary {
|
|
118
|
+
sessionId: string;
|
|
119
|
+
taskId: string;
|
|
120
|
+
runtime?: RuntimeExecutionId | string;
|
|
121
|
+
mode?: RuntimeDelegationMode;
|
|
122
|
+
roles: string[];
|
|
123
|
+
status: RuntimeDelegationSessionStatus;
|
|
124
|
+
lastEventType: string;
|
|
125
|
+
updatedAt: string;
|
|
126
|
+
ageMs: number;
|
|
127
|
+
active: boolean;
|
|
128
|
+
stale: boolean;
|
|
129
|
+
artifacts: string[];
|
|
130
|
+
}
|
|
131
|
+
export interface RuntimeDelegationOperationsReport {
|
|
132
|
+
generatedAt: string;
|
|
133
|
+
taskId?: string;
|
|
134
|
+
policy: RuntimeDelegationGuardrails;
|
|
135
|
+
counts: {
|
|
136
|
+
total: number;
|
|
137
|
+
active: number;
|
|
138
|
+
stale: number;
|
|
139
|
+
suspended: number;
|
|
140
|
+
terminal: number;
|
|
141
|
+
};
|
|
142
|
+
sessions: RuntimeDelegationSessionSummary[];
|
|
143
|
+
}
|
|
90
144
|
export interface RuntimeBrief {
|
|
91
145
|
taskId: string;
|
|
92
146
|
runtime: RuntimeExecutionId;
|
|
@@ -98,6 +152,7 @@ export interface RuntimeBrief {
|
|
|
98
152
|
}
|
|
99
153
|
export interface RuntimeDelegationPacket {
|
|
100
154
|
taskId: string;
|
|
155
|
+
sessionId: string;
|
|
101
156
|
runtime: RuntimeExecutionId;
|
|
102
157
|
artifact: string;
|
|
103
158
|
content: string;
|
|
@@ -106,6 +161,7 @@ export interface RuntimeDelegationPacket {
|
|
|
106
161
|
assignments: RuntimeDelegationAssignment[];
|
|
107
162
|
requiresApproval: boolean;
|
|
108
163
|
contextBudget: ContextBudgetMetadata;
|
|
164
|
+
guardrails: RuntimeDelegationGuardrailEvaluation;
|
|
109
165
|
}
|
|
110
166
|
export interface RuntimeInvocationPlan {
|
|
111
167
|
runtime: RuntimeExecutionId;
|
package/dist/types/skills.d.ts
CHANGED
|
@@ -111,6 +111,8 @@ export interface AgentLessonInput {
|
|
|
111
111
|
export interface AgentLesson extends AgentLessonInput {
|
|
112
112
|
id: string;
|
|
113
113
|
timestamp: string;
|
|
114
|
+
archivedAt?: string;
|
|
115
|
+
archiveReason?: string;
|
|
114
116
|
}
|
|
115
117
|
export type MemoryHookPoint = "before_plan" | "before_implementation" | "before_handoff" | "before_final" | "after_failure";
|
|
116
118
|
export interface MemoryLessonSnippet {
|
package/dist/types/tasks.d.ts
CHANGED
|
@@ -108,6 +108,7 @@ export interface UpdateTaskInput {
|
|
|
108
108
|
testStrategy?: string;
|
|
109
109
|
status?: TaskStatus;
|
|
110
110
|
blockedReason?: string;
|
|
111
|
+
qaGate?: QaGateMetadata;
|
|
111
112
|
claimedAt?: string;
|
|
112
113
|
doneAt?: string;
|
|
113
114
|
}
|
|
@@ -149,6 +150,11 @@ export interface EvidenceInput {
|
|
|
149
150
|
path?: string | boolean | string[];
|
|
150
151
|
command?: string | boolean | string[];
|
|
151
152
|
exitCode?: string | boolean | string[];
|
|
153
|
+
surface?: string | boolean | string[];
|
|
154
|
+
assertions?: string | boolean | string[];
|
|
155
|
+
externalValidation?: string | boolean | string[];
|
|
156
|
+
deferredOwner?: string | boolean | string[];
|
|
157
|
+
deferredRationale?: string | boolean | string[];
|
|
152
158
|
}
|
|
153
159
|
export interface PlaywrightEvidenceInput {
|
|
154
160
|
task: string;
|
|
@@ -41,6 +41,23 @@ export interface WorkflowGateApprovalResult {
|
|
|
41
41
|
approvedAt: string;
|
|
42
42
|
alreadyApproved: boolean;
|
|
43
43
|
}
|
|
44
|
+
export type WorkflowGateDecisionResult = "approve" | "block" | "changes";
|
|
45
|
+
export interface WorkflowGateDecisionInput {
|
|
46
|
+
runId: string;
|
|
47
|
+
gateId: string;
|
|
48
|
+
reviewer: string;
|
|
49
|
+
rationale: string;
|
|
50
|
+
result: WorkflowGateDecisionResult;
|
|
51
|
+
}
|
|
52
|
+
export interface WorkflowGateDecisionRecord {
|
|
53
|
+
run: AutonomousRun;
|
|
54
|
+
gateId: string;
|
|
55
|
+
reviewer: string;
|
|
56
|
+
rationale: string;
|
|
57
|
+
result: WorkflowGateDecisionResult;
|
|
58
|
+
decidedAt: string;
|
|
59
|
+
alreadyApproved: boolean;
|
|
60
|
+
}
|
|
44
61
|
export interface AutonomousRun {
|
|
45
62
|
id: string;
|
|
46
63
|
taskId: string;
|
package/dist/types.d.ts
CHANGED
|
@@ -3,12 +3,12 @@ import type { ModelProvenanceRecord, TelemetryConsentState } from "./types/model
|
|
|
3
3
|
import type { CollaborationFlowRecommendation, MemoryPacket, SkillPlan, SkillRenderTarget, WorkflowTemplateSelection } from "./types/skills.js";
|
|
4
4
|
import type { EventEntry, LockEntry, Task, TaskStatus } from "./types/tasks.js";
|
|
5
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, ProviderFailureDetail, ProviderCredentialConfig, ProviderCredentialsConfig, ProviderPolicyConfig, ProviderRouting, SlackNotificationConfig, TelemetryConsentState, TelemetryLevel, ToolConfig, WorkflowConfig, WorkflowProvidersConfig, } from "./types/model-config.js";
|
|
7
|
-
export type { RuntimeAdapter, RuntimeAdapterCatalogEntry, RuntimeAdapterKind, RuntimeBrief, RuntimeDelegationAssignment, RuntimeDelegationMode, RuntimeDelegationPacket, RuntimeDelegationPolicy, RuntimeExecutionAdapter, RuntimeExecutionCapabilities, RuntimeExecutionId, RuntimeExecutionPolicy, RuntimeExecutorConfig, RuntimeInvocationPlan, RuntimeSelection, RuntimeSubagentCapabilities, } from "./types/runtime.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, ProviderFailureDetail, ProviderProfileSmokeCheck, ProviderProfileSmokeResult, ProviderCredentialConfig, ProviderCredentialsConfig, ProviderPolicyConfig, ProviderRuntimeProfile, ProviderRuntimeProfileSummary, ProviderRouting, SlackNotificationConfig, TelemetryConsentState, TelemetryLevel, ToolConfig, WorkflowConfig, WorkflowProvidersConfig, } from "./types/model-config.js";
|
|
7
|
+
export type { RuntimeAdapter, RuntimeAdapterCatalogEntry, RuntimeAdapterKind, RuntimeBrief, RuntimeDelegationAssignment, RuntimeDelegationGuardrailEvaluation, RuntimeDelegationGuardrailStatus, RuntimeDelegationGuardrails, RuntimeDelegationLimitAction, RuntimeDelegationMode, RuntimeDelegationOperationsReport, RuntimeDelegationPacket, RuntimeDelegationPolicy, RuntimeDelegationSessionStatus, RuntimeDelegationSessionSummary, RuntimeExecutionAdapter, RuntimeExecutionCapabilities, RuntimeExecutionId, RuntimeExecutionPolicy, RuntimeExecutorConfig, RuntimeInvocationPlan, RuntimeSelection, RuntimeSubagentCapabilities, } from "./types/runtime.js";
|
|
8
8
|
export type { AgentLesson, AgentLessonInput, CollaborationFlow, CollaborationFlowRecommendation, CollaborationFlowStep, MemoryHookPoint, MemoryLessonSnippet, MemoryPacket, MemoryPromptSnippet, MemorySectionReport, Skill, SkillLoadBudget, SkillPlan, SkillPlanItem, SkillRenderTarget, PhasePlaybook, 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";
|
|
9
|
+
export { SIZING_LABELS, type BenchmarkQualitySignals, type BenchmarkResult, type BenchmarkSummary, type BurndownPoint, type BurndownSeries, type CalibrationReport, type CalibrationRoleReport, type EffortBreakdown, type EstimateCalibration, 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
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, PhaseProviderProgress, WorkflowGateApprovalInput, WorkflowGateApprovalResult, WorkflowRunMode, } from "./types/workflow-run.js";
|
|
11
|
+
export type { AutonomousGateMode, AutonomousPhase, AutonomousPhaseStatus, AutonomousRun, AutonomousRunResult, BenchmarkPhaseDuration, ClarificationAnswerInput, ClarificationInput, ClarificationRecord, ClarificationStatus, ClarificationTarget, PhaseProviderProgress, WorkflowGateApprovalInput, WorkflowGateApprovalResult, WorkflowGateDecisionInput, WorkflowGateDecisionRecord, WorkflowGateDecisionResult, WorkflowRunMode, } from "./types/workflow-run.js";
|
|
12
12
|
export type WorkspaceClassificationKind = "project" | "advisory" | "unsafe" | "unknown";
|
|
13
13
|
export type WorkspaceWritePolicy = "allow" | "confirm_required" | "blocked";
|
|
14
14
|
export interface WorkspaceClassification {
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AA4GA,OAAO,EACL,aAAa,GAoBd,MAAM,oBAAoB,CAAC"}
|