opencastle 0.27.0 → 0.27.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/bin/cli.mjs +6 -0
- package/dist/cli/agents.d.ts +3 -0
- package/dist/cli/agents.d.ts.map +1 -0
- package/dist/cli/agents.js +161 -0
- package/dist/cli/agents.js.map +1 -0
- package/dist/cli/baselines.d.ts +3 -0
- package/dist/cli/baselines.d.ts.map +1 -0
- package/dist/cli/baselines.js +128 -0
- package/dist/cli/baselines.js.map +1 -0
- package/dist/cli/convoy/dashboard-types.d.ts +146 -0
- package/dist/cli/convoy/dashboard-types.d.ts.map +1 -0
- package/dist/cli/convoy/dashboard-types.js +2 -0
- package/dist/cli/convoy/dashboard-types.js.map +1 -0
- package/dist/cli/convoy/engine.d.ts +67 -2
- package/dist/cli/convoy/engine.d.ts.map +1 -1
- package/dist/cli/convoy/engine.js +2036 -28
- package/dist/cli/convoy/engine.js.map +1 -1
- package/dist/cli/convoy/engine.test.js +1659 -70
- package/dist/cli/convoy/engine.test.js.map +1 -1
- package/dist/cli/convoy/event-schemas.d.ts +9 -0
- package/dist/cli/convoy/event-schemas.d.ts.map +1 -0
- package/dist/cli/convoy/event-schemas.js +185 -0
- package/dist/cli/convoy/event-schemas.js.map +1 -0
- package/dist/cli/convoy/events.d.ts +12 -1
- package/dist/cli/convoy/events.d.ts.map +1 -1
- package/dist/cli/convoy/events.js +186 -13
- package/dist/cli/convoy/events.js.map +1 -1
- package/dist/cli/convoy/events.test.js +325 -28
- package/dist/cli/convoy/events.test.js.map +1 -1
- package/dist/cli/convoy/expertise.d.ts +16 -0
- package/dist/cli/convoy/expertise.d.ts.map +1 -0
- package/dist/cli/convoy/expertise.js +121 -0
- package/dist/cli/convoy/expertise.js.map +1 -0
- package/dist/cli/convoy/expertise.test.d.ts +2 -0
- package/dist/cli/convoy/expertise.test.d.ts.map +1 -0
- package/dist/cli/convoy/expertise.test.js +96 -0
- package/dist/cli/convoy/expertise.test.js.map +1 -0
- package/dist/cli/convoy/export.test.js +1 -0
- package/dist/cli/convoy/export.test.js.map +1 -1
- package/dist/cli/convoy/formula.d.ts +19 -0
- package/dist/cli/convoy/formula.d.ts.map +1 -0
- package/dist/cli/convoy/formula.js +142 -0
- package/dist/cli/convoy/formula.js.map +1 -0
- package/dist/cli/convoy/formula.test.d.ts +2 -0
- package/dist/cli/convoy/formula.test.d.ts.map +1 -0
- package/dist/cli/convoy/formula.test.js +342 -0
- package/dist/cli/convoy/formula.test.js.map +1 -0
- package/dist/cli/convoy/gates.d.ts +128 -0
- package/dist/cli/convoy/gates.d.ts.map +1 -0
- package/dist/cli/convoy/gates.js +606 -0
- package/dist/cli/convoy/gates.js.map +1 -0
- package/dist/cli/convoy/gates.test.d.ts +2 -0
- package/dist/cli/convoy/gates.test.d.ts.map +1 -0
- package/dist/cli/convoy/gates.test.js +976 -0
- package/dist/cli/convoy/gates.test.js.map +1 -0
- package/dist/cli/convoy/health.d.ts +11 -0
- package/dist/cli/convoy/health.d.ts.map +1 -1
- package/dist/cli/convoy/health.js +54 -0
- package/dist/cli/convoy/health.js.map +1 -1
- package/dist/cli/convoy/health.test.js +56 -1
- package/dist/cli/convoy/health.test.js.map +1 -1
- package/dist/cli/convoy/issues.d.ts +8 -0
- package/dist/cli/convoy/issues.d.ts.map +1 -0
- package/dist/cli/convoy/issues.js +98 -0
- package/dist/cli/convoy/issues.js.map +1 -0
- package/dist/cli/convoy/issues.test.d.ts +2 -0
- package/dist/cli/convoy/issues.test.d.ts.map +1 -0
- package/dist/cli/convoy/issues.test.js +107 -0
- package/dist/cli/convoy/issues.test.js.map +1 -0
- package/dist/cli/convoy/knowledge.d.ts +5 -0
- package/dist/cli/convoy/knowledge.d.ts.map +1 -0
- package/dist/cli/convoy/knowledge.js +116 -0
- package/dist/cli/convoy/knowledge.js.map +1 -0
- package/dist/cli/convoy/knowledge.test.d.ts +2 -0
- package/dist/cli/convoy/knowledge.test.d.ts.map +1 -0
- package/dist/cli/convoy/knowledge.test.js +87 -0
- package/dist/cli/convoy/knowledge.test.js.map +1 -0
- package/dist/cli/convoy/lessons.d.ts +17 -0
- package/dist/cli/convoy/lessons.d.ts.map +1 -0
- package/dist/cli/convoy/lessons.js +149 -0
- package/dist/cli/convoy/lessons.js.map +1 -0
- package/dist/cli/convoy/lessons.test.d.ts +2 -0
- package/dist/cli/convoy/lessons.test.d.ts.map +1 -0
- package/dist/cli/convoy/lessons.test.js +135 -0
- package/dist/cli/convoy/lessons.test.js.map +1 -0
- package/dist/cli/convoy/lock.d.ts +13 -0
- package/dist/cli/convoy/lock.d.ts.map +1 -0
- package/dist/cli/convoy/lock.js +88 -0
- package/dist/cli/convoy/lock.js.map +1 -0
- package/dist/cli/convoy/lock.test.d.ts +2 -0
- package/dist/cli/convoy/lock.test.d.ts.map +1 -0
- package/dist/cli/convoy/lock.test.js +136 -0
- package/dist/cli/convoy/lock.test.js.map +1 -0
- package/dist/cli/convoy/log-merge.test.d.ts +2 -0
- package/dist/cli/convoy/log-merge.test.d.ts.map +1 -0
- package/dist/cli/convoy/log-merge.test.js +147 -0
- package/dist/cli/convoy/log-merge.test.js.map +1 -0
- package/dist/cli/convoy/merge.d.ts +4 -0
- package/dist/cli/convoy/merge.d.ts.map +1 -1
- package/dist/cli/convoy/merge.js +18 -1
- package/dist/cli/convoy/merge.js.map +1 -1
- package/dist/cli/convoy/merge.test.js +6 -7
- package/dist/cli/convoy/merge.test.js.map +1 -1
- package/dist/cli/convoy/partition.d.ts +51 -0
- package/dist/cli/convoy/partition.d.ts.map +1 -0
- package/dist/cli/convoy/partition.js +186 -0
- package/dist/cli/convoy/partition.js.map +1 -0
- package/dist/cli/convoy/partition.test.d.ts +2 -0
- package/dist/cli/convoy/partition.test.d.ts.map +1 -0
- package/dist/cli/convoy/partition.test.js +315 -0
- package/dist/cli/convoy/partition.test.js.map +1 -0
- package/dist/cli/convoy/pipeline.test.js +6 -0
- package/dist/cli/convoy/pipeline.test.js.map +1 -1
- package/dist/cli/convoy/store.d.ts +99 -7
- package/dist/cli/convoy/store.d.ts.map +1 -1
- package/dist/cli/convoy/store.js +764 -31
- package/dist/cli/convoy/store.js.map +1 -1
- package/dist/cli/convoy/store.test.js +1810 -18
- package/dist/cli/convoy/store.test.js.map +1 -1
- package/dist/cli/convoy/types.d.ts +427 -5
- package/dist/cli/convoy/types.d.ts.map +1 -1
- package/dist/cli/convoy/types.js +42 -1
- package/dist/cli/convoy/types.js.map +1 -1
- package/dist/cli/log.d.ts +11 -0
- package/dist/cli/log.d.ts.map +1 -1
- package/dist/cli/log.js +114 -2
- package/dist/cli/log.js.map +1 -1
- package/dist/cli/run/adapters/claude.d.ts +2 -0
- package/dist/cli/run/adapters/claude.d.ts.map +1 -1
- package/dist/cli/run/adapters/claude.js +89 -49
- package/dist/cli/run/adapters/claude.js.map +1 -1
- package/dist/cli/run/adapters/claude.test.d.ts +2 -0
- package/dist/cli/run/adapters/claude.test.d.ts.map +1 -0
- package/dist/cli/run/adapters/claude.test.js +205 -0
- package/dist/cli/run/adapters/claude.test.js.map +1 -0
- package/dist/cli/run/adapters/copilot.d.ts +1 -0
- package/dist/cli/run/adapters/copilot.d.ts.map +1 -1
- package/dist/cli/run/adapters/copilot.js +84 -46
- package/dist/cli/run/adapters/copilot.js.map +1 -1
- package/dist/cli/run/adapters/copilot.test.d.ts +2 -0
- package/dist/cli/run/adapters/copilot.test.d.ts.map +1 -0
- package/dist/cli/run/adapters/copilot.test.js +195 -0
- package/dist/cli/run/adapters/copilot.test.js.map +1 -0
- package/dist/cli/run/adapters/cursor.d.ts +1 -0
- package/dist/cli/run/adapters/cursor.d.ts.map +1 -1
- package/dist/cli/run/adapters/cursor.js +83 -47
- package/dist/cli/run/adapters/cursor.js.map +1 -1
- package/dist/cli/run/adapters/cursor.test.d.ts +2 -0
- package/dist/cli/run/adapters/cursor.test.d.ts.map +1 -0
- package/dist/cli/run/adapters/cursor.test.js +129 -0
- package/dist/cli/run/adapters/cursor.test.js.map +1 -0
- package/dist/cli/run/adapters/opencode.d.ts +1 -0
- package/dist/cli/run/adapters/opencode.d.ts.map +1 -1
- package/dist/cli/run/adapters/opencode.js +81 -47
- package/dist/cli/run/adapters/opencode.js.map +1 -1
- package/dist/cli/run/adapters/opencode.test.d.ts +2 -0
- package/dist/cli/run/adapters/opencode.test.d.ts.map +1 -0
- package/dist/cli/run/adapters/opencode.test.js +119 -0
- package/dist/cli/run/adapters/opencode.test.js.map +1 -0
- package/dist/cli/run/executor.js +1 -1
- package/dist/cli/run/executor.js.map +1 -1
- package/dist/cli/run/schema.d.ts.map +1 -1
- package/dist/cli/run/schema.js +245 -4
- package/dist/cli/run/schema.js.map +1 -1
- package/dist/cli/run/schema.test.js +669 -0
- package/dist/cli/run/schema.test.js.map +1 -1
- package/dist/cli/run.d.ts.map +1 -1
- package/dist/cli/run.js +362 -22
- package/dist/cli/run.js.map +1 -1
- package/dist/cli/types.d.ts +85 -2
- package/dist/cli/types.d.ts.map +1 -1
- package/dist/cli/types.js.map +1 -1
- package/dist/cli/watch.d.ts +15 -0
- package/dist/cli/watch.d.ts.map +1 -0
- package/dist/cli/watch.js +279 -0
- package/dist/cli/watch.js.map +1 -0
- package/package.json +5 -1
- package/src/cli/agents.ts +177 -0
- package/src/cli/baselines.ts +143 -0
- package/src/cli/convoy/TELEMETRY.md +203 -0
- package/src/cli/convoy/dashboard-types.ts +141 -0
- package/src/cli/convoy/engine.test.ts +1937 -70
- package/src/cli/convoy/engine.ts +2350 -40
- package/src/cli/convoy/event-schemas.ts +195 -0
- package/src/cli/convoy/events.test.ts +384 -39
- package/src/cli/convoy/events.ts +202 -16
- package/src/cli/convoy/expertise.test.ts +128 -0
- package/src/cli/convoy/expertise.ts +163 -0
- package/src/cli/convoy/export.test.ts +1 -0
- package/src/cli/convoy/formula.test.ts +405 -0
- package/src/cli/convoy/formula.ts +174 -0
- package/src/cli/convoy/gates.test.ts +1169 -0
- package/src/cli/convoy/gates.ts +774 -0
- package/src/cli/convoy/health.test.ts +64 -2
- package/src/cli/convoy/health.ts +80 -2
- package/src/cli/convoy/issues.test.ts +143 -0
- package/src/cli/convoy/issues.ts +136 -0
- package/src/cli/convoy/knowledge.test.ts +101 -0
- package/src/cli/convoy/knowledge.ts +132 -0
- package/src/cli/convoy/lessons.test.ts +188 -0
- package/src/cli/convoy/lessons.ts +164 -0
- package/src/cli/convoy/lock.test.ts +181 -0
- package/src/cli/convoy/lock.ts +103 -0
- package/src/cli/convoy/log-merge.test.ts +179 -0
- package/src/cli/convoy/merge.test.ts +6 -7
- package/src/cli/convoy/merge.ts +19 -1
- package/src/cli/convoy/partition.test.ts +423 -0
- package/src/cli/convoy/partition.ts +232 -0
- package/src/cli/convoy/pipeline.test.ts +6 -0
- package/src/cli/convoy/store.test.ts +2041 -20
- package/src/cli/convoy/store.ts +945 -46
- package/src/cli/convoy/types.ts +278 -4
- package/src/cli/log.ts +120 -2
- package/src/cli/run/adapters/claude.test.ts +234 -0
- package/src/cli/run/adapters/claude.ts +45 -5
- package/src/cli/run/adapters/copilot.test.ts +224 -0
- package/src/cli/run/adapters/copilot.ts +34 -4
- package/src/cli/run/adapters/cursor.test.ts +144 -0
- package/src/cli/run/adapters/cursor.ts +33 -2
- package/src/cli/run/adapters/opencode.test.ts +135 -0
- package/src/cli/run/adapters/opencode.ts +30 -2
- package/src/cli/run/executor.ts +1 -1
- package/src/cli/run/schema.test.ts +758 -0
- package/src/cli/run/schema.ts +300 -25
- package/src/cli/run.ts +341 -21
- package/src/cli/types.ts +86 -1
- package/src/cli/watch.ts +298 -0
- package/src/dashboard/dist/_astro/{index.DtnyD8a5.css → index.6L3_HsPT.css} +1 -1
- package/src/dashboard/dist/data/.gitkeep +0 -0
- package/src/dashboard/dist/data/convoy-list.json +1 -0
- package/src/dashboard/dist/data/overall-stats.json +24 -0
- package/src/dashboard/dist/index.html +701 -3
- package/src/dashboard/node_modules/.vite/deps/_metadata.json +6 -6
- package/src/dashboard/public/data/.gitkeep +0 -0
- package/src/dashboard/public/data/convoy-list.json +1 -0
- package/src/dashboard/public/data/overall-stats.json +24 -0
- package/src/dashboard/scripts/etl.test.ts +210 -0
- package/src/dashboard/scripts/etl.ts +108 -0
- package/src/dashboard/scripts/integration-test.ts +504 -0
- package/src/dashboard/src/pages/index.astro +854 -15
- package/src/dashboard/src/styles/dashboard.css +557 -1
- package/src/orchestrator/prompts/generate-convoy.prompt.md +212 -13
package/dist/cli/types.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ChildProcess } from 'node:child_process';
|
|
2
|
+
import type { BuiltInGatesConfig, BrowserTestConfig, GuardConfig, CircuitBreakerConfig, TaskStep, Hook, TaskOutput, TaskInput, WatchConfig, MCPServerConfig } from './convoy/types.js';
|
|
2
3
|
export type IdeChoice = 'vscode' | 'cursor' | 'claude-code' | 'opencode';
|
|
3
4
|
export type TechTool = 'sanity' | 'contentful' | 'strapi' | 'supabase' | 'convex' | 'vercel' | 'nx' | 'chrome-devtools' | 'nextjs' | 'astro' | 'netlify' | 'turborepo' | 'prisma' | 'cypress' | 'playwright' | 'vitest' | 'figma' | 'resend';
|
|
4
5
|
export type TeamTool = 'linear' | 'jira' | 'slack' | 'teams';
|
|
@@ -107,6 +108,14 @@ export interface ScaffoldResult {
|
|
|
107
108
|
}
|
|
108
109
|
/** IDE display labels. */
|
|
109
110
|
export declare const IDE_LABELS: Record<IdeChoice, string>;
|
|
111
|
+
/** Heuristics for routing tasks to review levels. */
|
|
112
|
+
export interface ReviewHeuristics {
|
|
113
|
+
panel_paths?: string[];
|
|
114
|
+
panel_agents?: string[];
|
|
115
|
+
auto_pass_agents?: string[];
|
|
116
|
+
auto_pass_max_lines?: number;
|
|
117
|
+
auto_pass_max_files?: number;
|
|
118
|
+
}
|
|
110
119
|
/** Default values merged into each task for Convoy Engine (version: 1) specs. */
|
|
111
120
|
export interface TaskDefaults {
|
|
112
121
|
timeout?: string;
|
|
@@ -114,11 +123,41 @@ export interface TaskDefaults {
|
|
|
114
123
|
max_retries?: number;
|
|
115
124
|
agent?: string;
|
|
116
125
|
adapter?: string;
|
|
126
|
+
gates?: string[];
|
|
127
|
+
built_in_gates?: BuiltInGatesConfig;
|
|
128
|
+
gate_timeout?: number;
|
|
129
|
+
on_exhausted?: 'dlq' | 'skip' | 'stop';
|
|
130
|
+
escalate_to?: string;
|
|
131
|
+
circuit_breaker?: CircuitBreakerConfig;
|
|
132
|
+
review?: 'auto' | 'fast' | 'panel' | 'none';
|
|
133
|
+
reviewer_model?: string;
|
|
134
|
+
review_budget?: number;
|
|
135
|
+
on_review_budget_exceeded?: 'skip' | 'downgrade' | 'stop';
|
|
136
|
+
max_concurrent_reviews?: number;
|
|
137
|
+
review_heuristics?: ReviewHeuristics;
|
|
138
|
+
detect_drift?: boolean;
|
|
139
|
+
on_dispute?: 'continue' | 'stop';
|
|
140
|
+
/** Enable automated lesson injection into task prompts (Phase 18.1). */
|
|
141
|
+
inject_lessons?: boolean;
|
|
142
|
+
/** Enable discovered issues tracking in task prompts (Phase 18.4). */
|
|
143
|
+
track_discovered_issues?: boolean;
|
|
144
|
+
/** Skip assigning agent to tasks matching their weak areas (Phase 18.2). */
|
|
145
|
+
avoid_weak_agents?: boolean;
|
|
146
|
+
/** Maximum concurrent tasks in swarm mode (default: 8). */
|
|
147
|
+
max_swarm_concurrency?: number;
|
|
148
|
+
/** MCP servers available to tasks (Phase 19.7). */
|
|
149
|
+
mcp_servers?: MCPServerConfig[];
|
|
150
|
+
/** Auto-approve all MCP tool calls without prompting (Phase 19.7). */
|
|
151
|
+
mcp_approve_all?: boolean;
|
|
152
|
+
/** Timeout in seconds for MCP server approval prompts (Phase 19.7). */
|
|
153
|
+
mcp_server_approval_timeout?: number;
|
|
154
|
+
/** Browser test gate configuration for default built-in gates. */
|
|
155
|
+
browser_test?: BrowserTestConfig;
|
|
117
156
|
}
|
|
118
157
|
/** Validated task spec from YAML. */
|
|
119
158
|
export interface TaskSpec {
|
|
120
159
|
name: string;
|
|
121
|
-
concurrency: number;
|
|
160
|
+
concurrency: number | 'auto';
|
|
122
161
|
on_failure: 'continue' | 'stop';
|
|
123
162
|
adapter: string;
|
|
124
163
|
tasks?: Task[];
|
|
@@ -135,6 +174,12 @@ export interface TaskSpec {
|
|
|
135
174
|
branch?: string;
|
|
136
175
|
/** Other convoy spec names to run before this one (version: 2 pipeline specs). */
|
|
137
176
|
depends_on_convoy?: string[];
|
|
177
|
+
/** Optional post-convoy guard configuration. */
|
|
178
|
+
guard?: GuardConfig;
|
|
179
|
+
/** Post-convoy lifecycle hooks. */
|
|
180
|
+
hooks?: Hook[];
|
|
181
|
+
/** Watch mode configuration (Phase 17.1). */
|
|
182
|
+
watch?: WatchConfig;
|
|
138
183
|
}
|
|
139
184
|
/** A single task in the spec. */
|
|
140
185
|
export interface Task {
|
|
@@ -152,9 +197,27 @@ export interface Task {
|
|
|
152
197
|
max_retries: number;
|
|
153
198
|
/** Per-task adapter override. */
|
|
154
199
|
adapter?: string;
|
|
200
|
+
/** Per-task gate shell commands run after adapter success. */
|
|
201
|
+
gates?: string[];
|
|
202
|
+
/** Multi-step task sub-prompts. */
|
|
203
|
+
steps?: TaskStep[];
|
|
204
|
+
/** Review level override for this task. */
|
|
205
|
+
review?: 'auto' | 'fast' | 'panel' | 'none';
|
|
206
|
+
/** Lifecycle hooks for this task. */
|
|
207
|
+
hooks?: Hook[];
|
|
208
|
+
/** Opt-in drift detection (streaming adapters only). */
|
|
209
|
+
detect_drift?: boolean;
|
|
210
|
+
/** Outputs this task produces as named artifacts. */
|
|
211
|
+
outputs?: TaskOutput[];
|
|
212
|
+
/** Inputs this task consumes from upstream task artifacts. */
|
|
213
|
+
inputs?: TaskInput[];
|
|
214
|
+
/** Whether this task has persistent agent identity (Phase 17.2). */
|
|
215
|
+
persistent?: boolean;
|
|
216
|
+
/** Browser test gate configuration for this task. */
|
|
217
|
+
browser_test?: BrowserTestConfig;
|
|
155
218
|
}
|
|
156
219
|
/** Task execution status. */
|
|
157
|
-
export type TaskStatus = 'pending' | 'running' | 'done' | 'failed' | 'skipped' | 'timed-out';
|
|
220
|
+
export type TaskStatus = 'pending' | 'running' | 'done' | 'failed' | 'gate-failed' | 'skipped' | 'timed-out';
|
|
158
221
|
/** Result of a single task execution. */
|
|
159
222
|
export interface TaskResult {
|
|
160
223
|
id: string;
|
|
@@ -186,12 +249,18 @@ export interface AgentAdapter {
|
|
|
186
249
|
isAvailable(): Promise<boolean>;
|
|
187
250
|
execute(_task: Task, _options?: ExecuteOptions): Promise<ExecuteResult>;
|
|
188
251
|
kill?(_task: Task): void;
|
|
252
|
+
/** Whether the adapter supports reusing sessions across multi-step task steps. Defaults to false. */
|
|
253
|
+
supportsSessionContinuity?(): boolean;
|
|
189
254
|
}
|
|
190
255
|
/** Options for agent execution. */
|
|
191
256
|
export interface ExecuteOptions {
|
|
192
257
|
verbose?: boolean;
|
|
193
258
|
/** Working directory for the agent process (defaults to process.cwd()). */
|
|
194
259
|
cwd?: string;
|
|
260
|
+
/** MCP servers to make available during execution (Phase 19.7). */
|
|
261
|
+
mcpServers?: MCPServerConfig[];
|
|
262
|
+
/** Automatically approve all MCP permission requests. */
|
|
263
|
+
mcp_approve_all?: boolean;
|
|
195
264
|
}
|
|
196
265
|
/** Token usage data from adapter execution. */
|
|
197
266
|
export interface TokenUsage {
|
|
@@ -233,6 +302,20 @@ export interface RunOptions {
|
|
|
233
302
|
help: boolean;
|
|
234
303
|
resume: boolean;
|
|
235
304
|
status: boolean;
|
|
305
|
+
retryFailed: boolean;
|
|
306
|
+
retryFailedTaskIds?: string[];
|
|
307
|
+
dlqList: boolean;
|
|
308
|
+
dlqResolve: boolean;
|
|
309
|
+
dlqResolveId?: string;
|
|
310
|
+
dlqResolveText?: string;
|
|
311
|
+
dlqRetry: boolean;
|
|
312
|
+
dlqRetryId?: string;
|
|
313
|
+
dlqConvoyFilter?: string;
|
|
314
|
+
formula: string | null;
|
|
315
|
+
setVars: Record<string, string>;
|
|
316
|
+
watch: boolean;
|
|
317
|
+
watchConfig: string | null;
|
|
318
|
+
clearScratchpad: boolean;
|
|
236
319
|
}
|
|
237
320
|
/** Validation result. */
|
|
238
321
|
export interface ValidationResult {
|
package/dist/cli/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/cli/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/cli/types.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/cli/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/cli/types.ts"],"names":[],"mappings":"AAeA,0FAA0F;AAC1F,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,IAAI,KAAK,CAAC;AACvE,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,kBAAkB,CAChC,MAAwE,EACxE,GAAY;IAEZ,MAAM,SAAS,GAAe,EAAE,CAAC;IACjC,MAAM,SAAS,GAAe,EAAE,CAAC;IAEjC,IAAI,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,KAAK,MAAM;QAAE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,GAAe,CAAC,CAAC;IAChF,IAAI,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,EAAE,KAAK,MAAM;QAAE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAc,CAAC,CAAC;IAC7E,IAAI,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,EAAE,KAAK,MAAM;QAAE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAc,CAAC,CAAC;IAC7E,IAAI,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,aAAa,KAAK,MAAM;QAAE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,aAAyB,CAAC,CAAC;IAE9G,MAAM,IAAI,GAAgB,GAAG,CAAC,CAAC,CAAC,CAAC,GAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACxD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;AACxC,CAAC;AAmGD,0BAA0B;AAC1B,MAAM,CAAC,MAAM,UAAU,GAA8B;IACnD,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,QAAQ;IAChB,aAAa,EAAE,aAAa;IAC5B,QAAQ,EAAE,UAAU;CACrB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { TaskSpec, AgentAdapter } from './types.js';
|
|
2
|
+
import type { ConvoyResult } from './convoy/engine.js';
|
|
3
|
+
export interface WatchLoopOptions {
|
|
4
|
+
spec: TaskSpec;
|
|
5
|
+
specText: string;
|
|
6
|
+
specPath: string;
|
|
7
|
+
adapter: AgentAdapter;
|
|
8
|
+
verbose: boolean;
|
|
9
|
+
pidPath: string;
|
|
10
|
+
clearScratchpad: boolean;
|
|
11
|
+
watchConfigPath: string | null;
|
|
12
|
+
printResult: (result: ConvoyResult) => void;
|
|
13
|
+
}
|
|
14
|
+
export declare function watchLoop(options: WatchLoopOptions): Promise<void>;
|
|
15
|
+
//# sourceMappingURL=watch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../../src/cli/watch.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAKtD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,QAAQ,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,YAAY,CAAA;IACrB,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,eAAe,EAAE,OAAO,CAAA;IACxB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,WAAW,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAA;CAC5C;AAuDD,wBAAsB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgOxE"}
|
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
import { mkdirSync, readFileSync, unlinkSync, writeFileSync } from 'node:fs';
|
|
2
|
+
import { dirname, resolve } from 'node:path';
|
|
3
|
+
import { parseTaskSpecText, parseYaml } from './run/schema.js';
|
|
4
|
+
import { c } from './prompt.js';
|
|
5
|
+
function parseCronField(field, min, max) {
|
|
6
|
+
if (field === '*') {
|
|
7
|
+
const all = [];
|
|
8
|
+
for (let i = min; i <= max; i++)
|
|
9
|
+
all.push(i);
|
|
10
|
+
return all;
|
|
11
|
+
}
|
|
12
|
+
const values = [];
|
|
13
|
+
for (const part of field.split(',')) {
|
|
14
|
+
if (part.includes('/')) {
|
|
15
|
+
const [rangeStr, stepStr] = part.split('/');
|
|
16
|
+
const step = parseInt(stepStr, 10);
|
|
17
|
+
if (!Number.isFinite(step) || step < 1)
|
|
18
|
+
continue;
|
|
19
|
+
let start = min;
|
|
20
|
+
let end = max;
|
|
21
|
+
if (rangeStr !== '*') {
|
|
22
|
+
const [s, e] = rangeStr.split('-').map(Number);
|
|
23
|
+
start = s;
|
|
24
|
+
end = e ?? s;
|
|
25
|
+
}
|
|
26
|
+
for (let i = start; i <= end; i += step)
|
|
27
|
+
values.push(i);
|
|
28
|
+
}
|
|
29
|
+
else if (part.includes('-')) {
|
|
30
|
+
const [s, e] = part.split('-').map(Number);
|
|
31
|
+
for (let i = s; i <= e; i++)
|
|
32
|
+
values.push(i);
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
const n = parseInt(part, 10);
|
|
36
|
+
if (Number.isFinite(n))
|
|
37
|
+
values.push(n);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return values;
|
|
41
|
+
}
|
|
42
|
+
function cronMatches(schedule, date) {
|
|
43
|
+
const parts = schedule.trim().split(/\s+/);
|
|
44
|
+
if (parts.length !== 5)
|
|
45
|
+
return false;
|
|
46
|
+
const [minF, hourF, domF, monF, dowF] = parts;
|
|
47
|
+
const minute = parseCronField(minF, 0, 59);
|
|
48
|
+
const hour = parseCronField(hourF, 0, 23);
|
|
49
|
+
const dom = parseCronField(domF, 1, 31);
|
|
50
|
+
const mon = parseCronField(monF, 1, 12);
|
|
51
|
+
const dow = parseCronField(dowF, 0, 6);
|
|
52
|
+
return (minute.includes(date.getMinutes()) &&
|
|
53
|
+
hour.includes(date.getHours()) &&
|
|
54
|
+
dom.includes(date.getDate()) &&
|
|
55
|
+
mon.includes(date.getMonth() + 1) &&
|
|
56
|
+
dow.includes(date.getDay()));
|
|
57
|
+
}
|
|
58
|
+
function sleep(ms) {
|
|
59
|
+
return new Promise(resolve => setTimeout(resolve, ms));
|
|
60
|
+
}
|
|
61
|
+
export async function watchLoop(options) {
|
|
62
|
+
const { spec, specText, specPath, adapter, verbose, pidPath, clearScratchpad, watchConfigPath, printResult, } = options;
|
|
63
|
+
// Resolve watch config — from --watch-config file, spec.watch, or default file-change
|
|
64
|
+
let watchConfig;
|
|
65
|
+
if (watchConfigPath) {
|
|
66
|
+
const raw = readFileSync(watchConfigPath, 'utf8');
|
|
67
|
+
const parsed = parseYaml(raw);
|
|
68
|
+
watchConfig = parsed;
|
|
69
|
+
}
|
|
70
|
+
else if (spec.watch) {
|
|
71
|
+
watchConfig = spec.watch;
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
// Default: file-change trigger on the spec file itself
|
|
75
|
+
watchConfig = {
|
|
76
|
+
triggers: [{ type: 'file-change', glob: specPath, debounce_ms: 500 }],
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
// Write PID file
|
|
80
|
+
mkdirSync(dirname(pidPath), { recursive: true });
|
|
81
|
+
writeFileSync(pidPath, String(process.pid), 'utf8');
|
|
82
|
+
let shuttingDown = false;
|
|
83
|
+
let currentRun = null;
|
|
84
|
+
let cycleNumber = 0;
|
|
85
|
+
// Graceful shutdown handlers
|
|
86
|
+
function onShutdownSignal() {
|
|
87
|
+
if (shuttingDown)
|
|
88
|
+
return;
|
|
89
|
+
shuttingDown = true;
|
|
90
|
+
console.log(`\n ${c.yellow('\u26a0')} Watch mode shutting down...`);
|
|
91
|
+
// If a run is in progress, we let it finish
|
|
92
|
+
if (!currentRun) {
|
|
93
|
+
cleanup();
|
|
94
|
+
process.exit(0);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
process.on('SIGTERM', onShutdownSignal);
|
|
98
|
+
process.on('SIGINT', onShutdownSignal);
|
|
99
|
+
function cleanup() {
|
|
100
|
+
try {
|
|
101
|
+
unlinkSync(pidPath);
|
|
102
|
+
}
|
|
103
|
+
catch { /* ignore */ }
|
|
104
|
+
process.removeListener('SIGTERM', onShutdownSignal);
|
|
105
|
+
process.removeListener('SIGINT', onShutdownSignal);
|
|
106
|
+
}
|
|
107
|
+
// Emit watch_started
|
|
108
|
+
const { createConvoyStore } = await import('./convoy/store.js');
|
|
109
|
+
const { createEventEmitter } = await import('./convoy/events.js');
|
|
110
|
+
const dbPath = resolve(process.cwd(), '.opencastle', 'convoy.db');
|
|
111
|
+
mkdirSync(dirname(dbPath), { recursive: true });
|
|
112
|
+
const evtStore = createConvoyStore(dbPath);
|
|
113
|
+
const ndjsonPath = resolve(process.cwd(), '.opencastle', 'logs', 'convoy-events.ndjson');
|
|
114
|
+
mkdirSync(dirname(ndjsonPath), { recursive: true });
|
|
115
|
+
const watchEvents = createEventEmitter(evtStore, { ndjsonPath });
|
|
116
|
+
const triggerTypes = watchConfig.triggers.map(t => t.type).join(',');
|
|
117
|
+
watchEvents.emit('watch_started', { trigger_type: triggerTypes, pid: process.pid });
|
|
118
|
+
// Clear scratchpad if requested
|
|
119
|
+
if (clearScratchpad || watchConfig.clear_scratchpad) {
|
|
120
|
+
evtStore.clearScratchpad();
|
|
121
|
+
}
|
|
122
|
+
console.log(`\n ${c.cyan('\ud83d\udc41')} Watch mode active (PID: ${process.pid})`);
|
|
123
|
+
console.log(` Triggers: ${watchConfig.triggers.map(t => t.type).join(', ')}`);
|
|
124
|
+
// Set up trigger watchers
|
|
125
|
+
let triggerFired = false;
|
|
126
|
+
let triggerSource = '';
|
|
127
|
+
const triggerCleanups = [];
|
|
128
|
+
for (const trigger of watchConfig.triggers) {
|
|
129
|
+
if (trigger.type === 'file-change') {
|
|
130
|
+
const { watch } = await import('node:fs');
|
|
131
|
+
const debounceMs = trigger.debounce_ms ?? 500;
|
|
132
|
+
let debounceTimer;
|
|
133
|
+
const globPattern = trigger.glob ?? '**/*';
|
|
134
|
+
const watcher = watch(resolve(process.cwd()), { recursive: true }, (_event, filename) => {
|
|
135
|
+
if (!filename)
|
|
136
|
+
return;
|
|
137
|
+
const globStr = globPattern;
|
|
138
|
+
let matches = false;
|
|
139
|
+
if (globStr.includes('*')) {
|
|
140
|
+
// Convert simple glob to regex
|
|
141
|
+
const re = new RegExp('^' + globStr.replace(/\./g, '\\.').replace(/\*\*/g, '\u29bf').replace(/\*/g, '[^/]*').replace(/\u29bf/g, '.*') + '$');
|
|
142
|
+
matches = re.test(filename);
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
matches = filename === globStr || filename.endsWith('/' + globStr);
|
|
146
|
+
}
|
|
147
|
+
if (matches) {
|
|
148
|
+
if (debounceTimer)
|
|
149
|
+
clearTimeout(debounceTimer);
|
|
150
|
+
debounceTimer = setTimeout(() => {
|
|
151
|
+
triggerFired = true;
|
|
152
|
+
triggerSource = `file-change:${filename}`;
|
|
153
|
+
}, debounceMs);
|
|
154
|
+
}
|
|
155
|
+
});
|
|
156
|
+
triggerCleanups.push(() => { watcher.close(); if (debounceTimer)
|
|
157
|
+
clearTimeout(debounceTimer); });
|
|
158
|
+
}
|
|
159
|
+
else if (trigger.type === 'cron') {
|
|
160
|
+
// Poll every 30s to check if cron matches
|
|
161
|
+
let lastFired = -1;
|
|
162
|
+
const interval = setInterval(() => {
|
|
163
|
+
const now = new Date();
|
|
164
|
+
const minuteKey = now.getFullYear() * 525600 + now.getMonth() * 43800 + now.getDate() * 1440 + now.getHours() * 60 + now.getMinutes();
|
|
165
|
+
if (minuteKey !== lastFired && cronMatches(trigger.schedule, now)) {
|
|
166
|
+
lastFired = minuteKey;
|
|
167
|
+
triggerFired = true;
|
|
168
|
+
triggerSource = `cron:${trigger.schedule}`;
|
|
169
|
+
}
|
|
170
|
+
}, 30_000);
|
|
171
|
+
triggerCleanups.push(() => clearInterval(interval));
|
|
172
|
+
}
|
|
173
|
+
else if (trigger.type === 'git-push') {
|
|
174
|
+
// Poll git remote every 60s
|
|
175
|
+
let lastRef = '';
|
|
176
|
+
const { execFile: execFileCb } = await import('node:child_process');
|
|
177
|
+
const { promisify } = await import('node:util');
|
|
178
|
+
const execFileAsync = promisify(execFileCb);
|
|
179
|
+
const interval = setInterval(async () => {
|
|
180
|
+
try {
|
|
181
|
+
await execFileAsync('git', ['fetch', '--quiet'], { cwd: process.cwd() });
|
|
182
|
+
const { stdout } = await execFileAsync('git', ['rev-parse', 'FETCH_HEAD'], { cwd: process.cwd() });
|
|
183
|
+
const ref = stdout.trim();
|
|
184
|
+
if (lastRef && ref !== lastRef) {
|
|
185
|
+
triggerFired = true;
|
|
186
|
+
triggerSource = `git-push:${ref.slice(0, 8)}`;
|
|
187
|
+
}
|
|
188
|
+
lastRef = ref;
|
|
189
|
+
}
|
|
190
|
+
catch { /* ignore fetch errors */ }
|
|
191
|
+
}, 60_000);
|
|
192
|
+
triggerCleanups.push(() => clearInterval(interval));
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
// Main watch loop
|
|
196
|
+
try {
|
|
197
|
+
while (!shuttingDown) {
|
|
198
|
+
// Wait for a trigger
|
|
199
|
+
while (!triggerFired && !shuttingDown) {
|
|
200
|
+
await sleep(500);
|
|
201
|
+
}
|
|
202
|
+
if (shuttingDown)
|
|
203
|
+
break;
|
|
204
|
+
triggerFired = false;
|
|
205
|
+
cycleNumber++;
|
|
206
|
+
console.log(`\n ${c.cyan('\u27f3')} Watch cycle ${cycleNumber} triggered by: ${triggerSource}`);
|
|
207
|
+
// Retention cleanup of agent identities
|
|
208
|
+
try {
|
|
209
|
+
evtStore.deleteAgentIdentitiesOlderThan(90);
|
|
210
|
+
}
|
|
211
|
+
catch { /* non-critical */ }
|
|
212
|
+
// Scratchpad retention cleanup
|
|
213
|
+
if (watchConfig.scratchpad_retention_days) {
|
|
214
|
+
try {
|
|
215
|
+
evtStore.clearScratchpadOlderThan(watchConfig.scratchpad_retention_days);
|
|
216
|
+
}
|
|
217
|
+
catch { /* non-critical */ }
|
|
218
|
+
}
|
|
219
|
+
watchEvents.emit('watch_cycle_start', { cycle_number: cycleNumber, triggered_by: triggerSource });
|
|
220
|
+
// Re-read spec from disk (may have changed since last cycle)
|
|
221
|
+
let cycleSpec;
|
|
222
|
+
let cycleSpecText;
|
|
223
|
+
try {
|
|
224
|
+
cycleSpecText = readFileSync(specPath, 'utf8');
|
|
225
|
+
cycleSpec = parseTaskSpecText(cycleSpecText);
|
|
226
|
+
// Apply overrides from original spec
|
|
227
|
+
if (spec.concurrency !== 1)
|
|
228
|
+
cycleSpec.concurrency = spec.concurrency;
|
|
229
|
+
if (spec.adapter)
|
|
230
|
+
cycleSpec.adapter = spec.adapter;
|
|
231
|
+
if (verbose)
|
|
232
|
+
cycleSpec._verbose = true;
|
|
233
|
+
}
|
|
234
|
+
catch (err) {
|
|
235
|
+
console.error(` ${c.red('\u2717')} Failed to re-read spec: ${err.message}`);
|
|
236
|
+
watchEvents.emit('watch_cycle_end', { cycle_number: cycleNumber, status: 'error' });
|
|
237
|
+
continue;
|
|
238
|
+
}
|
|
239
|
+
// Run convoy
|
|
240
|
+
const { createConvoyEngine } = await import('./convoy/engine.js');
|
|
241
|
+
const cycleEngine = createConvoyEngine({
|
|
242
|
+
spec: cycleSpec,
|
|
243
|
+
specYaml: cycleSpecText,
|
|
244
|
+
adapter,
|
|
245
|
+
verbose,
|
|
246
|
+
});
|
|
247
|
+
let cycleResult;
|
|
248
|
+
try {
|
|
249
|
+
currentRun = cycleEngine.run();
|
|
250
|
+
cycleResult = await currentRun;
|
|
251
|
+
currentRun = null;
|
|
252
|
+
}
|
|
253
|
+
catch (err) {
|
|
254
|
+
currentRun = null;
|
|
255
|
+
console.error(` ${c.red('\u2717')} Cycle ${cycleNumber} failed: ${err.message}`);
|
|
256
|
+
watchEvents.emit('watch_cycle_end', { cycle_number: cycleNumber, status: 'error' });
|
|
257
|
+
continue;
|
|
258
|
+
}
|
|
259
|
+
printResult(cycleResult);
|
|
260
|
+
watchEvents.emit('watch_cycle_end', { cycle_number: cycleNumber, status: cycleResult.status });
|
|
261
|
+
if (shuttingDown)
|
|
262
|
+
break;
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
finally {
|
|
266
|
+
// Clean up
|
|
267
|
+
watchEvents.emit('watch_stopped', { reason: shuttingDown ? 'signal' : 'exit' });
|
|
268
|
+
watchEvents.close();
|
|
269
|
+
evtStore.close();
|
|
270
|
+
for (const fn of triggerCleanups) {
|
|
271
|
+
try {
|
|
272
|
+
fn();
|
|
273
|
+
}
|
|
274
|
+
catch { /* ignore */ }
|
|
275
|
+
}
|
|
276
|
+
cleanup();
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
//# sourceMappingURL=watch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watch.js","sourceRoot":"","sources":["../../src/cli/watch.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "opencastle",
|
|
3
|
-
"version": "0.27.
|
|
3
|
+
"version": "0.27.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Multi-agent orchestration framework for AI coding assistants",
|
|
6
6
|
"bin": {
|
|
@@ -36,6 +36,8 @@
|
|
|
36
36
|
"scripts": {
|
|
37
37
|
"cli:build": "tsc",
|
|
38
38
|
"test": "vitest run",
|
|
39
|
+
"dashboard:etl": "tsx src/dashboard/scripts/etl.ts",
|
|
40
|
+
"dashboard:test": "tsx src/dashboard/scripts/integration-test.ts",
|
|
39
41
|
"dashboard:dev": "astro dev --root src/dashboard --port 4300",
|
|
40
42
|
"dashboard:build": "astro build --root src/dashboard",
|
|
41
43
|
"dashboard:preview": "astro preview --root src/dashboard --port 4300",
|
|
@@ -54,11 +56,13 @@
|
|
|
54
56
|
"@vitest/coverage-v8": "^4.0.18",
|
|
55
57
|
"astro": "^5.5.0",
|
|
56
58
|
"playwright": "^1.58.2",
|
|
59
|
+
"tsx": "^4.19.0",
|
|
57
60
|
"typescript": "^5.7.0",
|
|
58
61
|
"vitest": "^4.0.18"
|
|
59
62
|
},
|
|
60
63
|
"dependencies": {
|
|
61
64
|
"@github/copilot-sdk": "^0.1.30",
|
|
65
|
+
"valibot": "^1.2.0",
|
|
62
66
|
"yaml": "^2.8.2"
|
|
63
67
|
},
|
|
64
68
|
"peerDependencies": {
|