@jterrats/open-orchestra 0.4.1 → 0.4.2-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/dist/assets/web-console.js +91 -1
  2. package/dist/autonomous-phase-lifecycle.d.ts +3 -2
  3. package/dist/autonomous-phase-lifecycle.js +28 -8
  4. package/dist/autonomous-phase-lifecycle.js.map +1 -1
  5. package/dist/autonomous-run-state.d.ts +6 -4
  6. package/dist/autonomous-run-state.js +82 -11
  7. package/dist/autonomous-run-state.js.map +1 -1
  8. package/dist/autonomous-run-store.d.ts +5 -0
  9. package/dist/autonomous-run-store.js +27 -2
  10. package/dist/autonomous-run-store.js.map +1 -1
  11. package/dist/autonomous-workflow-constants.d.ts +1 -0
  12. package/dist/autonomous-workflow-constants.js.map +1 -1
  13. package/dist/autonomous-workflow.d.ts +2 -2
  14. package/dist/autonomous-workflow.js +2 -2
  15. package/dist/autonomous-workflow.js.map +1 -1
  16. package/dist/benchmark.js +16 -0
  17. package/dist/benchmark.js.map +1 -1
  18. package/dist/clarification.d.ts +2 -0
  19. package/dist/clarification.js +23 -5
  20. package/dist/clarification.js.map +1 -1
  21. package/dist/cli.js +89 -14
  22. package/dist/cli.js.map +1 -1
  23. package/dist/command-manifest.js +8 -0
  24. package/dist/command-manifest.js.map +1 -1
  25. package/dist/commands.d.ts +9 -2
  26. package/dist/commands.js +456 -47
  27. package/dist/commands.js.map +1 -1
  28. package/dist/constants.js +11 -0
  29. package/dist/constants.js.map +1 -1
  30. package/dist/mcp-oauth-proxy.d.ts +47 -0
  31. package/dist/mcp-oauth-proxy.js +276 -0
  32. package/dist/mcp-oauth-proxy.js.map +1 -1
  33. package/dist/memory.d.ts +11 -0
  34. package/dist/memory.js +224 -0
  35. package/dist/memory.js.map +1 -0
  36. package/dist/metrics-commands.js +9 -0
  37. package/dist/metrics-commands.js.map +1 -1
  38. package/dist/model-commands.js +18 -1
  39. package/dist/model-commands.js.map +1 -1
  40. package/dist/notifications.d.ts +25 -0
  41. package/dist/notifications.js +187 -11
  42. package/dist/notifications.js.map +1 -1
  43. package/dist/package-update-check.d.ts +19 -0
  44. package/dist/package-update-check.js +123 -0
  45. package/dist/package-update-check.js.map +1 -0
  46. package/dist/runtime-bootstrap.js +4 -2
  47. package/dist/runtime-bootstrap.js.map +1 -1
  48. package/dist/runtime-execution-renderer.js +3 -0
  49. package/dist/runtime-execution-renderer.js.map +1 -1
  50. package/dist/runtime-execution.js +6 -0
  51. package/dist/runtime-execution.js.map +1 -1
  52. package/dist/skills-commands.d.ts +1 -0
  53. package/dist/skills-commands.js +9 -1
  54. package/dist/skills-commands.js.map +1 -1
  55. package/dist/skills.d.ts +7 -1
  56. package/dist/skills.js +120 -11
  57. package/dist/skills.js.map +1 -1
  58. package/dist/subagent-protocol.js +6 -0
  59. package/dist/subagent-protocol.js.map +1 -1
  60. package/dist/tool-commands.d.ts +2 -0
  61. package/dist/tool-commands.js +105 -13
  62. package/dist/tool-commands.js.map +1 -1
  63. package/dist/types.d.ts +127 -4
  64. package/dist/types.js.map +1 -1
  65. package/dist/web-api.js +93 -1
  66. package/dist/web-api.js.map +1 -1
  67. package/dist/web-chart-contracts.d.ts +3 -1
  68. package/dist/web-chart-contracts.js +6 -0
  69. package/dist/web-chart-contracts.js.map +1 -1
  70. package/dist/web-console.js +2 -2
  71. package/dist/workflow-services.d.ts +21 -3
  72. package/dist/workflow-services.js +474 -10
  73. package/dist/workflow-services.js.map +1 -1
  74. package/package.json +2 -1
  75. package/skills/proactive-orchestra/SKILL.md +27 -0
  76. package/skills/proactive-orchestra/manifest.json +41 -0
@@ -66,8 +66,8 @@ export function renderWebConsoleHtml() {
66
66
  <header class="topbar"><div class="topbar-inner"><div class="brand-row"><div class="brand"><h1>Open Orchestra</h1><p>Local workflow console</p></div><div class="header-actions"><button class="icon-button" id="theme-toggle" type="button" title="Toggle color theme" aria-label="Toggle color theme"><svg viewBox="0 0 24 24" fill="none" aria-hidden="true"><path d="M12 3v2.2M12 18.8V21M4.6 4.6l1.6 1.6M17.8 17.8l1.6 1.6M3 12h2.2M18.8 12H21M4.6 19.4l1.6-1.6M17.8 6.2l1.6-1.6M12 8a4 4 0 1 1 0 8 4 4 0 0 1 0-8Z" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/></svg></button><button class="refresh-button" id="refresh" type="button" title="Reload workflow data">Refresh</button></div></div></div></header>
67
67
  <main>
68
68
  <section class="status-line" aria-live="polite"><span class="pill" id="load-state">Loading workflow</span><span id="last-updated">Waiting for local API data</span></section>
69
- <section class="grid"><div class="panel"><h2>Dashboard</h2><div class="metric-grid" id="metrics"></div><div class="chart-grid" id="charts"><div class="chart-card"><h3>Task Status</h3><div class="chart-frame"><canvas id="task-status-chart" aria-label="Task status distribution" role="img"></canvas></div></div><div class="chart-card"><h3>Graph State</h3><div class="chart-frame"><canvas id="graph-state-chart" aria-label="Graph state distribution" role="img"></canvas></div></div></div></div><div class="panel"><h2>Workspace</h2><ul class="list" id="workspace-view"></ul><h2>Validation</h2><div id="validation"></div></div></section>
70
- <section class="grid"><div class="panel"><h2>Graph Plan</h2><ul class="list" id="graph"></ul></div><div class="panel"><h2>Next Actions</h2><ul class="list" id="actions"></ul></div></section><section class="grid"><div class="panel"><h2>Evidence</h2><div class="control-row"><div class="field"><label for="evidence-task">Task</label><select id="evidence-task"></select></div><div class="field"><label for="evidence-type">Type</label><select id="evidence-type"></select></div><button class="text-button" id="evidence-filter" type="button">Apply</button></div><ul class="list" id="evidence-list"></ul></div><div class="panel"><h2>Roles</h2><ul class="list" id="roles-view"></ul></div></section><section class="grid"><div class="panel"><h2>Planning</h2><ul class="list" id="planning-view"></ul></div><div class="panel"><h2>Playwright</h2><div class="control-row"><div class="field"><label for="playwright-task">Task</label><select id="playwright-task"></select></div><div class="field"><label for="playwright-kind">Kind</label><select id="playwright-kind"><option>screenshot</option><option>trace</option><option>video</option><option>report</option></select></div><div class="field"><label for="playwright-path">Artifact path</label><input id="playwright-path" placeholder="reports/smoke.png" /></div><div class="field"><label for="playwright-summary">Summary</label><input id="playwright-summary" placeholder="Evidence summary" /></div><button class="text-button" id="playwright-attach" type="button">Attach</button></div><ul class="list" id="playwright-plan"></ul></div></section><section class="grid"><div class="panel"><h2>Skills</h2><div class="control-row"><div class="field"><label for="skills-task">Task</label><select id="skills-task"></select></div><div class="field"><label for="skills-target">Target</label><select id="skills-target"><option>generic</option><option>claude</option><option>cursor</option><option>codex</option><option>vscode</option><option>windsurf</option></select></div><button class="text-button" id="skills-plan" type="button">Plan</button><button class="text-button" id="skills-render" type="button">Render</button></div><ul class="list" id="skills-plan-list"></ul></div><div class="panel"><h2>Skill Catalog</h2><ul class="list" id="skills-list"></ul><h2>Render Preview</h2><pre class="preview" id="skills-preview">No skill render yet.</pre></div></section><section class="grid"><div class="panel"><h2>Source of Truth</h2><ul class="list" id="sources-list"></ul></div><div class="panel"><h2>Lessons Learned</h2><div class="control-row"><div class="field"><label for="lesson-promote-target">Promote to</label><select id="lesson-promote-target"><option>doc</option><option>skill</option><option>rule</option></select></div><div class="field"><label for="lesson-promote-filter">Filter</label><input id="lesson-promote-filter" placeholder="operation or error" /></div><button class="text-button" id="lesson-promote" type="button">Promote</button></div><ul class="list" id="lesson-promotion-result"></ul><ul class="list" id="lessons-list"></ul></div></section><section class="grid"><div class="panel"><h2>Add Lesson</h2><div class="control-row"><div class="field"><label for="lesson-task">Task</label><select id="lesson-task"></select></div><div class="field"><label for="lesson-actor">Actor</label><input id="lesson-actor" value="parent" data-lesson-required required /></div><div class="field"><label for="lesson-operation">Operation</label><input id="lesson-operation" placeholder="generated-doc-update" data-lesson-required required /></div><div class="field"><label for="lesson-error-signature">Error signature</label><input id="lesson-error-signature" placeholder="syntax error" data-lesson-required required /></div></div><div class="control-row"><div class="field"><label for="lesson-failed-action">Failed action</label><input id="lesson-failed-action" placeholder="command or attempted step" data-lesson-required required /></div><div class="field"><label for="lesson-root-cause">Root cause</label><input id="lesson-root-cause" placeholder="why it failed" data-lesson-required required /></div><div class="field"><label for="lesson-fix">Fix</label><input id="lesson-fix" placeholder="working correction" data-lesson-required required /></div><div class="field"><label for="lesson-prevention">Prevention</label><input id="lesson-prevention" placeholder="how to avoid repeat" data-lesson-required required /></div></div><div class="control-row"><div class="field"><label for="lesson-applies-to">Applies to</label><input id="lesson-applies-to" placeholder="web, skills" /></div><div class="field"><label for="lesson-verified-by">Verified by</label><input id="lesson-verified-by" placeholder="test, precommit" /></div><button class="text-button" id="lesson-add" type="button">Add Lesson</button></div></div></section>
69
+ <section class="grid"><div class="panel"><h2>Dashboard</h2><div class="metric-grid" id="metrics"></div><div class="chart-grid" id="charts"><div class="chart-card"><h3>Task Status</h3><div class="chart-frame"><canvas id="task-status-chart" aria-label="Task status distribution" role="img"></canvas></div></div><div class="chart-card"><h3>Graph State</h3><div class="chart-frame"><canvas id="graph-state-chart" aria-label="Graph state distribution" role="img"></canvas></div></div><div class="chart-card"><h3>Cost by Provider</h3><div class="chart-frame"><canvas id="provider-cost-chart" aria-label="Estimated cost by provider" role="img"></canvas></div></div></div></div><div class="panel"><h2>Workspace</h2><ul class="list" id="workspace-view"></ul><h2>Validation</h2><div id="validation"></div></div></section>
70
+ <section class="grid"><div class="panel"><h2>Graph Plan</h2><ul class="list" id="graph"></ul></div><div class="panel"><h2>Next Actions</h2><ul class="list" id="actions"></ul></div></section><section class="grid"><div class="panel"><h2>Cost</h2><ul class="list" id="cost-view"></ul></div><div class="panel"><h2>Add Task</h2><div class="control-row"><div class="field"><label for="task-id">ID</label><input id="task-id" placeholder="WEB-001" /></div><div class="field"><label for="task-title">Title</label><input id="task-title" placeholder="Implement workflow task" /></div><div class="field"><label for="task-owner">Owner</label><select id="task-owner"></select></div><div class="field"><label for="task-paths">Paths</label><input id="task-paths" placeholder="src/web-api.ts, test/orchestra.test.js" /></div></div><div class="control-row"><div class="field"><label for="task-acceptance">Acceptance</label><input id="task-acceptance" placeholder="comma separated criteria" /></div><div class="field"><label for="task-risks">Risks</label><input id="task-risks" placeholder="security, release" /></div><button class="text-button" id="task-add" type="button">Add Task</button></div></div></section><section class="grid"><div class="panel"><h2>Evidence</h2><div class="control-row"><div class="field"><label for="evidence-task">Task</label><select id="evidence-task"></select></div><div class="field"><label for="evidence-type">Type</label><select id="evidence-type"></select></div><button class="text-button" id="evidence-filter" type="button">Apply</button></div><ul class="list" id="evidence-list"></ul></div><div class="panel"><h2>Roles</h2><ul class="list" id="roles-view"></ul></div></section><section class="grid"><div class="panel"><h2>Planning</h2><ul class="list" id="planning-view"></ul></div><div class="panel"><h2>Playwright</h2><div class="control-row"><div class="field"><label for="playwright-task">Task</label><select id="playwright-task"></select></div><div class="field"><label for="playwright-kind">Kind</label><select id="playwright-kind"><option>screenshot</option><option>trace</option><option>video</option><option>report</option></select></div><div class="field"><label for="playwright-path">Artifact path</label><input id="playwright-path" placeholder="reports/smoke.png" /></div><div class="field"><label for="playwright-summary">Summary</label><input id="playwright-summary" placeholder="Evidence summary" /></div><button class="text-button" id="playwright-attach" type="button">Attach</button></div><ul class="list" id="playwright-plan"></ul></div></section><section class="grid"><div class="panel"><h2>Skills</h2><div class="control-row"><div class="field"><label for="skills-task">Task</label><select id="skills-task"></select></div><div class="field"><label for="skills-target">Target</label><select id="skills-target"><option>generic</option><option>claude</option><option>cursor</option><option>codex</option><option>vscode</option><option>windsurf</option></select></div><button class="text-button" id="skills-plan" type="button">Plan</button><button class="text-button" id="skills-render" type="button">Render</button></div><ul class="list" id="skills-plan-list"></ul></div><div class="panel"><h2>Skill Catalog</h2><ul class="list" id="skills-list"></ul><h2>Render Preview</h2><pre class="preview" id="skills-preview">No skill render yet.</pre></div></section><section class="grid"><div class="panel"><h2>Source of Truth</h2><ul class="list" id="sources-list"></ul></div><div class="panel"><h2>Lessons Learned</h2><div class="control-row"><div class="field"><label for="lesson-promote-target">Promote to</label><select id="lesson-promote-target"><option>doc</option><option>skill</option><option>rule</option></select></div><div class="field"><label for="lesson-promote-filter">Filter</label><input id="lesson-promote-filter" placeholder="operation or error" /></div><button class="text-button" id="lesson-promote" type="button">Promote</button></div><ul class="list" id="lesson-promotion-result"></ul><ul class="list" id="lessons-list"></ul></div></section><section class="grid"><div class="panel"><h2>Add Lesson</h2><div class="control-row"><div class="field"><label for="lesson-task">Task</label><select id="lesson-task"></select></div><div class="field"><label for="lesson-actor">Actor</label><input id="lesson-actor" value="parent" data-lesson-required required /></div><div class="field"><label for="lesson-operation">Operation</label><input id="lesson-operation" placeholder="generated-doc-update" data-lesson-required required /></div><div class="field"><label for="lesson-error-signature">Error signature</label><input id="lesson-error-signature" placeholder="syntax error" data-lesson-required required /></div></div><div class="control-row"><div class="field"><label for="lesson-failed-action">Failed action</label><input id="lesson-failed-action" placeholder="command or attempted step" data-lesson-required required /></div><div class="field"><label for="lesson-root-cause">Root cause</label><input id="lesson-root-cause" placeholder="why it failed" data-lesson-required required /></div><div class="field"><label for="lesson-fix">Fix</label><input id="lesson-fix" placeholder="working correction" data-lesson-required required /></div><div class="field"><label for="lesson-prevention">Prevention</label><input id="lesson-prevention" placeholder="how to avoid repeat" data-lesson-required required /></div></div><div class="control-row"><div class="field"><label for="lesson-applies-to">Applies to</label><input id="lesson-applies-to" placeholder="web, skills" /></div><div class="field"><label for="lesson-verified-by">Verified by</label><input id="lesson-verified-by" placeholder="test, precommit" /></div><button class="text-button" id="lesson-add" type="button">Add Lesson</button></div></div></section>
71
71
  </main>
72
72
  </div>
73
73
  <script src="/vendor/chart.umd.js"></script>
@@ -1,12 +1,25 @@
1
- import type { AddTaskInput, ApprovalDecisionInput, ApprovalRecord, ArtifactResult, BudgetCheckResult, BudgetEscalationDecision, BudgetEscalationResult, ClaimLockInput, ConfiguredProviderSummary, DependencyReport, DecisionInput, DecisionRecord, EvidenceInput, EventEntry, ExecutionPlan, ExecutionRun, GateEvaluationResult, HandoffInput, LockEntry, PlaywrightEvidenceInput, PlaywrightTestPlan, ProviderRouting, ProviderFallbackResult, PullRequestSummary, ModelProvenanceInput, ModelProvenanceRecord, ReadinessReport, ReviewInput, Role, Task, TaskContext, TaskGraphBatchRun, TaskGraphPlan, UsageReport, UpdateTaskInput, WorkflowStatus, WorkflowSummary, WorkflowConfig } from "./types.js";
1
+ import { type NotificationTransports } from "./notifications.js";
2
+ import type { AddTaskInput, ApprovalDecisionInput, ApprovalRecord, ArtifactResult, BudgetCheckResult, BudgetEstimatePreflight, BudgetEscalationDecision, BudgetEscalationResult, ClaimLockInput, ConfiguredProviderSummary, DependencyReport, DecisionInput, DecisionRecord, EvidenceInput, EventEntry, ExecutionPlan, ExecutionRun, GateEvaluationResult, HandoffInput, LockEntry, PlaywrightEvidenceInput, PlaywrightTestPlan, ProviderRouting, ProviderFallbackResult, PreRunValidationReport, PullRequestSummary, ModelProvenanceInput, ModelProvenanceRecord, ReadinessReport, ReviewInput, Role, Task, TaskContext, TaskGraphBatchRun, TaskGraphDryRunMode, TaskGraphDryRunPreview, TaskGraphPlan, UsageReport, UpdateTaskInput, WorkflowGateApprovalInput, WorkflowGateApprovalResult, WorkflowStatus, WorkflowSummary, WorkflowConfig } from "./types.js";
2
3
  export declare function getWorkflowStatus(root?: string): Promise<WorkflowStatus>;
3
4
  export declare function addTask(input: AddTaskInput, root?: string): Promise<Task>;
4
5
  export declare function listTasks(root?: string): Promise<Task[]>;
6
+ export declare function deleteTask(taskId: string, options?: {
7
+ force?: boolean;
8
+ }, root?: string): Promise<Task>;
9
+ export declare function archiveTask(taskId: string, options?: {
10
+ force?: boolean;
11
+ }, root?: string): Promise<Task>;
5
12
  export declare function listRoles(root?: string): Promise<Role[]>;
13
+ export declare function validatePreRun(taskId: string, options?: {
14
+ bypass?: boolean;
15
+ bypassOwner?: string;
16
+ bypassRationale?: string;
17
+ }, root?: string): Promise<PreRunValidationReport>;
6
18
  export declare function updateTask(input: UpdateTaskInput, root?: string): Promise<Task>;
7
19
  export declare function checkTaskDependencies(taskId: string, root?: string): Promise<DependencyReport>;
8
20
  export declare function generateTaskGraphPlan(root?: string): Promise<TaskGraphPlan>;
9
21
  export declare function executeNextReadyTask(root?: string): Promise<ExecutionRun>;
22
+ export declare function previewTaskGraphRun(mode: TaskGraphDryRunMode, root?: string): Promise<TaskGraphDryRunPreview>;
10
23
  export declare function executeReadyTaskBatch(root?: string): Promise<TaskGraphBatchRun>;
11
24
  export declare function listLocks(root?: string): Promise<LockEntry[]>;
12
25
  export declare function claimLock(input: ClaimLockInput, root?: string): Promise<LockEntry>;
@@ -26,14 +39,19 @@ export declare function executePlanWithFakeProvider(taskId: string, root?: strin
26
39
  model?: string;
27
40
  budgetEscalation?: BudgetEscalationResult;
28
41
  }): Promise<ExecutionRun>;
29
- export declare function executePlanWithBudgetPreflight(taskId: string, root?: string, decision?: BudgetEscalationDecision): Promise<ExecutionRun>;
42
+ export declare function executePlanWithBudgetPreflight(taskId: string, root?: string, decision?: BudgetEscalationDecision, estimate?: {
43
+ estimatedCostUsd?: number;
44
+ override?: boolean;
45
+ }): Promise<ExecutionRun>;
46
+ export declare function checkBudgetEstimatePreflight(taskId: string, estimatedCostUsd: number, root?: string): Promise<BudgetEstimatePreflight>;
30
47
  export declare function listApprovals(taskId?: string, root?: string): Promise<ApprovalRecord[]>;
48
+ export declare function approveWorkflowGate(input: WorkflowGateApprovalInput, root?: string): Promise<WorkflowGateApprovalResult>;
31
49
  export declare function showApproval(id: string, root?: string): Promise<ApprovalRecord & {
32
50
  content: string;
33
51
  }>;
34
52
  export declare function approveApproval(input: ApprovalDecisionInput, root?: string): Promise<ApprovalRecord>;
35
53
  export declare function rejectApproval(input: ApprovalDecisionInput, root?: string): Promise<ApprovalRecord>;
36
- export declare function recordReview(input: ReviewInput, root?: string): Promise<ArtifactResult>;
54
+ export declare function recordReview(input: ReviewInput, root?: string, notificationTransports?: NotificationTransports): Promise<ArtifactResult>;
37
55
  export declare function listReviews(taskId?: string, root?: string): Promise<EventEntry[]>;
38
56
  export declare function addEvidence(input: EvidenceInput, root?: string): Promise<ArtifactResult>;
39
57
  export declare function listEvidence(taskId?: string, root?: string): Promise<EventEntry[]>;