@dmrlzz/davecode 0.5.3 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/dist/{ChatApp-IF5D7XNH.js → ChatApp-C23NVTME.js} +6 -6
- package/dist/{account-KBXJ5KR7.js → account-GG7UFSNY.js} +3 -3
- package/dist/{accounts-XUJNDCFH.js → accounts-IPOGUMHF.js} +5 -5
- package/dist/{budget-PHV4NRUS.js → budget-7QJGPYPF.js} +4 -4
- package/dist/{chat-HGTX76DU.js → chat-3K2KXS3E.js} +8 -8
- package/dist/{chunk-FZJNOG2T.js → chunk-3BTE76UD.js} +2 -2
- package/dist/{chunk-FPSLYBLU.js → chunk-4FE2YV5U.js} +2 -2
- package/dist/{chunk-YSD6W27K.js → chunk-FKGZERYB.js} +283 -5
- package/dist/chunk-FKGZERYB.js.map +1 -0
- package/dist/{chunk-AFCQURO5.js → chunk-JBX6J74G.js} +3 -3
- package/dist/{chunk-EBV5A33R.js → chunk-KEURMO75.js} +4 -4
- package/dist/{chunk-DFQW3MRD.js → chunk-LK2K73DC.js} +2 -2
- package/dist/{chunk-ING5HCIO.js → chunk-NBQIMB43.js} +3430 -1063
- package/dist/chunk-NBQIMB43.js.map +1 -0
- package/dist/{goal-ETZWLVKO.js → chunk-PGZPSJS7.js} +8 -8
- package/dist/chunk-PGZPSJS7.js.map +1 -0
- package/dist/{chunk-ZVNX7CSO.js → chunk-U42YONUN.js} +3 -3
- package/dist/{config-DG2E4VDW.js → config-BFEQFGAR.js} +3 -3
- package/dist/dashboard/assets/Accounts-CUMFzGls.js +1 -0
- package/dist/dashboard/assets/{Callout-1E8Wsl9W.js → Callout-DDtTG_BA.js} +1 -1
- package/dist/dashboard/assets/Goals-CBGiTkcP.js +1 -0
- package/dist/dashboard/assets/{Library-DZxBVUo_.js → Library-CKWa3h0E.js} +1 -1
- package/dist/dashboard/assets/{Panes-C-TJekjs.js → Panes-ziAz-CZa.js} +4 -4
- package/dist/dashboard/assets/RoutesPage-D2iW-KhM.js +4 -0
- package/dist/dashboard/assets/Runner-4e79FB1J.js +1 -0
- package/dist/dashboard/assets/Settings-CSae84S0.js +1 -0
- package/dist/dashboard/assets/Tasks-CnbZ5PvX.js +2 -0
- package/dist/dashboard/assets/Traffic-B12xKOUm.js +1 -0
- package/dist/dashboard/assets/Workspace-CMPHlw4f.js +1 -0
- package/dist/dashboard/assets/chevron-down-DT349Fth.js +1 -0
- package/dist/dashboard/assets/external-link-DCIUScea.js +1 -0
- package/dist/dashboard/assets/format-C7Q-B9fI.js +112 -0
- package/dist/dashboard/assets/index-4RIBvhr9.css +2 -0
- package/dist/dashboard/assets/index-z8TlFwRe.js +50 -0
- package/dist/dashboard/assets/task-errors-3F3vbQ7k.js +1 -0
- package/dist/dashboard/assets/x-UBQsC1rW.js +1 -0
- package/dist/dashboard/index.html +4 -3
- package/dist/{dist-IPMBGFJD.js → dist-VTC5E7Z5.js} +48 -2
- package/dist/{doctor-5APOWJ5D.js → doctor-JLFYQ3EP.js} +3 -3
- package/dist/goal-JM7QYTL2.js +26 -0
- package/dist/index.js +64 -31
- package/dist/index.js.map +1 -1
- package/dist/{init-YDLNA3GD.js → init-6K4EGMTV.js} +3 -3
- package/dist/orchestrate-QC5P6IUZ.js +382 -0
- package/dist/orchestrate-QC5P6IUZ.js.map +1 -0
- package/dist/{run-I6N7TLHV.js → run-ABQNQ722.js} +3 -3
- package/dist/runtime.js +6 -2
- package/dist/{start-ECLELJGJ.js → start-MSO7TGBX.js} +3 -3
- package/dist/{status-QQPP67I4.js → status-U6C4LUCM.js} +4 -4
- package/dist/status-U6C4LUCM.js.map +1 -0
- package/dist/{tasks-RNMC2XFN.js → tasks-HEVT67YM.js} +4 -4
- package/package.json +4 -4
- package/dist/chunk-ING5HCIO.js.map +0 -1
- package/dist/chunk-YSD6W27K.js.map +0 -1
- package/dist/dashboard/assets/Accounts-DXiGsutB.js +0 -1
- package/dist/dashboard/assets/Badge-DUGKlx3Z.js +0 -55
- package/dist/dashboard/assets/Goals-kL4VAxw3.js +0 -1
- package/dist/dashboard/assets/RoutesPage-DWYm9tW8.js +0 -4
- package/dist/dashboard/assets/Runner-CmHBjECR.js +0 -1
- package/dist/dashboard/assets/Settings-BANphxva.js +0 -1
- package/dist/dashboard/assets/Tasks-cSx1PKyQ.js +0 -2
- package/dist/dashboard/assets/Traffic-DEAuM6jq.js +0 -1
- package/dist/dashboard/assets/Workspace-BQFjc1jH.js +0 -1
- package/dist/dashboard/assets/index-B8kld9xo.js +0 -104
- package/dist/dashboard/assets/index-BEmBgsbP.css +0 -2
- package/dist/dashboard/assets/task-errors-r-WYZ_S3.js +0 -1
- package/dist/goal-ETZWLVKO.js.map +0 -1
- /package/dist/{ChatApp-IF5D7XNH.js.map → ChatApp-C23NVTME.js.map} +0 -0
- /package/dist/{account-KBXJ5KR7.js.map → account-GG7UFSNY.js.map} +0 -0
- /package/dist/{accounts-XUJNDCFH.js.map → accounts-IPOGUMHF.js.map} +0 -0
- /package/dist/{budget-PHV4NRUS.js.map → budget-7QJGPYPF.js.map} +0 -0
- /package/dist/{chat-HGTX76DU.js.map → chat-3K2KXS3E.js.map} +0 -0
- /package/dist/{chunk-FZJNOG2T.js.map → chunk-3BTE76UD.js.map} +0 -0
- /package/dist/{chunk-FPSLYBLU.js.map → chunk-4FE2YV5U.js.map} +0 -0
- /package/dist/{chunk-AFCQURO5.js.map → chunk-JBX6J74G.js.map} +0 -0
- /package/dist/{chunk-EBV5A33R.js.map → chunk-KEURMO75.js.map} +0 -0
- /package/dist/{chunk-DFQW3MRD.js.map → chunk-LK2K73DC.js.map} +0 -0
- /package/dist/{chunk-ZVNX7CSO.js.map → chunk-U42YONUN.js.map} +0 -0
- /package/dist/{config-DG2E4VDW.js.map → config-BFEQFGAR.js.map} +0 -0
- /package/dist/{dist-IPMBGFJD.js.map → dist-VTC5E7Z5.js.map} +0 -0
- /package/dist/{doctor-5APOWJ5D.js.map → doctor-JLFYQ3EP.js.map} +0 -0
- /package/dist/{status-QQPP67I4.js.map → goal-JM7QYTL2.js.map} +0 -0
- /package/dist/{init-YDLNA3GD.js.map → init-6K4EGMTV.js.map} +0 -0
- /package/dist/{run-I6N7TLHV.js.map → run-ABQNQ722.js.map} +0 -0
- /package/dist/{start-ECLELJGJ.js.map → start-MSO7TGBX.js.map} +0 -0
- /package/dist/{tasks-RNMC2XFN.js.map → tasks-HEVT67YM.js.map} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/commands/orchestrate.ts"],"sourcesContent":["import { existsSync } from 'node:fs';\nimport { resolve } from 'node:path';\nimport {\n type DaveEvent,\n EventBus,\n ORCHESTRATOR_AGENTS,\n ORCHESTRATOR_LIMITS,\n type OrchestratorAgent,\n type OrchestratorRun,\n type OrchestratorService,\n type OrchestratorTask,\n type StartRunInput,\n} from '@davecode/core';\nimport { type CliContext, printJson } from '../context';\nimport { CliError, EXIT } from '../errors';\nimport { createProjectOrchestrator, detectProjectRoot } from '../runtime';\nimport { formatDuration, truncate } from '../ui/format';\nimport type { Theme } from '../ui/theme';\nimport { interruptSignal } from './goal';\n\n/** Flags of `davecode orchestrate`, as commander parses them. */\nexport interface OrchestrateOptions {\n /** Comma-separated agent ids. */\n agents?: string;\n /** Agent that writes the plan. */\n planner?: string;\n maxTasks?: number;\n apply?: boolean;\n list?: boolean;\n applyRun?: string;\n project?: string;\n}\n\n/** Test seams. */\nexport interface OrchestrateDeps {\n /** Builds the service on the given bus (default: the runtime's construction). */\n service?: (events: EventBus, projectDir: string) => OrchestratorService;\n /** Resolves when the user asks to stop (default: SIGINT/SIGTERM). */\n interrupt?: () => Promise<void>;\n}\n\nconst AGENT_ALIASES: Record<string, OrchestratorAgent> = {\n claude: 'claude',\n 'claude-code': 'claude',\n codex: 'codex',\n agy: 'agy',\n antigravity: 'agy',\n};\n\n// ---------------------------------------------------------------------------\n// Arguments\n// ---------------------------------------------------------------------------\n\n/** `\"claude, codex\"` → `['claude', 'codex']`: known ids (and aliases), deduplicated, in order. */\nexport function parseAgents(value: string): OrchestratorAgent[] {\n const agents: OrchestratorAgent[] = [];\n for (const raw of value.split(',')) {\n const name = raw.trim().toLowerCase();\n if (!name) continue;\n const agent = AGENT_ALIASES[name];\n if (!agent) {\n throw new CliError(`Unknown agent \"${raw.trim()}\"`, {\n hint: `Use a comma-separated list of ${ORCHESTRATOR_AGENTS.join(', ')}.`,\n });\n }\n if (!agents.includes(agent)) agents.push(agent);\n }\n if (agents.length === 0) {\n throw new CliError('No agents given', {\n hint: `Use a comma-separated list of ${ORCHESTRATOR_AGENTS.join(', ')}.`,\n });\n }\n return agents;\n}\n\n/** `--planner codex` → `'codex'` (aliases accepted, exactly one agent). */\nexport function parsePlanner(value: string): OrchestratorAgent {\n const agents = parseAgents(value);\n if (agents.length !== 1) throw new CliError('--planner takes exactly one agent');\n return agents[0] as OrchestratorAgent;\n}\n\n/** The validated start body for `words` and the flags. */\nexport function startInput(words: string[], opts: OrchestrateOptions): StartRunInput {\n const objective = words.join(' ').trim();\n if (!objective) {\n throw new CliError('Describe the objective', {\n hint: 'davecode orchestrate \"Add a /health endpoint with tests\"',\n });\n }\n if (objective.length > ORCHESTRATOR_LIMITS.objectiveMaxLength) {\n throw new CliError(\n `The objective is too long (at most ${ORCHESTRATOR_LIMITS.objectiveMaxLength} characters)`,\n );\n }\n if (\n opts.maxTasks !== undefined &&\n (opts.maxTasks < 1 || opts.maxTasks > ORCHESTRATOR_LIMITS.maxTasks)\n ) {\n throw new CliError(`--max-tasks must be between 1 and ${ORCHESTRATOR_LIMITS.maxTasks}`);\n }\n return {\n objective,\n ...(opts.agents !== undefined ? { agents: parseAgents(opts.agents) } : {}),\n ...(opts.maxTasks !== undefined ? { maxTasks: opts.maxTasks } : {}),\n ...(opts.planner !== undefined ? { planner: parsePlanner(opts.planner) } : {}),\n };\n}\n\nexport function isRunOver(run: OrchestratorRun): boolean {\n return run.status === 'done' || run.status === 'failed' || run.status === 'cancelled';\n}\n\nexport function runExitCode(run: OrchestratorRun): number {\n return run.status === 'done' ? EXIT.ok : EXIT.failure;\n}\n\n// ---------------------------------------------------------------------------\n// Printing\n// ---------------------------------------------------------------------------\n\n/** One display line: no control characters or ANSI from agent output, at most `width` columns. */\nexport function oneLine(text: string, width = 160): string {\n const flat = text\n // biome-ignore lint/suspicious/noControlCharactersInRegex: stripping terminal escapes\n .replace(/\\u001b\\[[0-9;?]*[ -/]*[@-~]/g, '')\n // biome-ignore lint/suspicious/noControlCharactersInRegex: stripping control characters\n .replace(/[\\u0000-\\u001f\\u007f]+/g, ' ')\n .replace(/\\s+/g, ' ')\n .trim();\n return truncate(flat, width);\n}\n\nconst TASK_GLYPH: Record<OrchestratorTask['status'], (t: Theme) => string> = {\n pending: (t) => t.dim(t.glyph.pending),\n running: (t) => t.accent(t.glyph.running),\n done: (t) => t.ok(t.glyph.success),\n failed: (t) => t.error(t.glyph.failed),\n conflict: (t) => t.warn(t.glyph.warn),\n cancelled: (t) => t.dim(t.glyph.fail),\n skipped: (t) => t.dim(t.glyph.blocked),\n};\n\nconst AGENT_WIDTH = Math.max(...ORCHESTRATOR_AGENTS.map((agent) => agent.length));\n\nfunction agentLabel(theme: Theme, agent: string): string {\n return theme.dim(agent.padEnd(AGENT_WIDTH));\n}\n\nfunction runStatus(theme: Theme, run: OrchestratorRun): string {\n if (run.status === 'done') return theme.ok(run.status);\n if (run.status === 'failed') return theme.error(run.status);\n if (run.status === 'cancelled') return theme.warn(run.status);\n return theme.accent(run.status);\n}\n\nfunction taskOutcome(theme: Theme, task: OrchestratorTask): string {\n const files = task.changedFiles?.length;\n if (task.status === 'done') {\n return files ? theme.dim(`${files} file${files === 1 ? '' : 's'} changed`) : '';\n }\n return task.error ? theme.dim(oneLine(task.error)) : '';\n}\n\nfunction taskLine(theme: Theme, task: OrchestratorTask): string {\n const parts = [\n TASK_GLYPH[task.status](theme),\n theme.bold(task.id),\n agentLabel(theme, task.agent),\n task.status === 'done' ? task.title : `${task.title} ${theme.dim(`(${task.status})`)}`,\n ];\n const outcome = taskOutcome(theme, task);\n return outcome ? `${parts.join(' ')} ${outcome}` : parts.join(' ');\n}\n\n/**\n * Turns the event stream of one run into short progress lines: the plan once, each task\n * starting and finishing, tool calls and errors of the agents. Text replies and status chatter\n * are left for the final summary.\n */\nexport function createProgress(theme: Theme, runId: string): (event: DaveEvent) => string[] {\n const seen = new Map<string, OrchestratorTask['status']>();\n const agents = new Map<string, string>();\n let planned = false;\n let status: OrchestratorRun['status'] | undefined;\n\n return (event) => {\n const time = theme.dim(new Date(event.ts).toTimeString().slice(0, 8));\n const lines: string[] = [];\n if (event.type === 'orchestrator.output') {\n if (event.runId !== runId) return lines;\n const { kind, text } = event.output;\n if (kind !== 'tool' && kind !== 'error') return lines;\n const body = oneLine(text);\n if (!body) return lines;\n const who = `${theme.dim(event.taskId)} ${agentLabel(theme, agents.get(event.taskId) ?? '')}`;\n lines.push(`${time} ${who} ${kind === 'error' ? theme.error(body) : theme.dim(body)}`);\n return lines;\n }\n if (event.type !== 'orchestrator.run' || event.run.id !== runId) return lines;\n const { run } = event;\n if (run.planner) agents.set('plan', run.planner);\n if (run.status !== status) {\n status = run.status;\n if (run.status === 'planning') {\n const by = run.planner ? ` with ${run.planner}` : '';\n lines.push(\n `${time} ${theme.accent(theme.glyph.running)} Planning${by}${theme.glyph.ellipsis}`,\n );\n }\n }\n if (!planned && run.tasks.length > 0) {\n planned = true;\n lines.push(\n `${time} ${theme.bold('Plan')} ${theme.dim(`${run.tasks.length} task${run.tasks.length === 1 ? '' : 's'}`)}`,\n );\n for (const task of run.tasks) {\n const after =\n task.dependsOn.length > 0 ? theme.dim(` after ${task.dependsOn.join(', ')}`) : '';\n lines.push(\n `${time} ${theme.bold(task.id)} ${agentLabel(theme, task.agent)} ${task.title}${after}`,\n );\n }\n }\n for (const task of run.tasks) {\n agents.set(task.id, task.agent);\n const previous = seen.get(task.id);\n seen.set(task.id, task.status);\n if (previous === task.status || task.status === 'pending') continue;\n if (task.status === 'running') {\n lines.push(\n `${time} ${TASK_GLYPH.running(theme)} ${theme.bold(task.id)} ${agentLabel(theme, task.agent)} started`,\n );\n continue;\n }\n const outcome = taskOutcome(theme, task);\n lines.push(\n `${time} ${TASK_GLYPH[task.status](theme)} ${theme.bold(task.id)} ${agentLabel(theme, task.agent)} ${task.status}${outcome ? ` ${outcome}` : ''}`,\n );\n }\n return lines;\n };\n}\n\n/** The finished (or current) state of a run: tasks, outcome and what to do next. */\nexport function describeRun(theme: Theme, run: OrchestratorRun): string[] {\n const lines: string[] = [];\n const planner = run.planner ? theme.dim(` planned by ${run.planner}`) : '';\n lines.push(`${theme.bold(run.id)} ${runStatus(theme, run)}${planner}`);\n lines.push(` ${oneLine(run.objective, 200)}`);\n if (run.tasks.length > 0) lines.push('');\n for (const task of run.tasks) {\n lines.push(taskLine(theme, task));\n if (task.status === 'done' && task.summary) {\n lines.push(theme.dim(` ${oneLine(task.summary)}`));\n }\n }\n if (run.summary) lines.push('', run.summary.trim());\n if (run.error) lines.push('', theme.error(oneLine(run.error, 300)));\n if (run.integrationBranch && run.status === 'done') {\n lines.push('');\n if (run.appliedAt) {\n lines.push(\n theme.dim(` ${run.integrationBranch} applied to ${run.baseBranch ?? 'the base branch'}`),\n );\n } else {\n lines.push(theme.dim(` results on ${run.integrationBranch}, nothing changed in your tree`));\n lines.push(theme.dim(` apply with: davecode orchestrate --apply-run ${run.id}`));\n }\n }\n return lines;\n}\n\n/** One line per run for `--list`. */\nexport function runListLine(theme: Theme, run: OrchestratorRun): string {\n const done = run.tasks.filter((task) => task.status === 'done').length;\n const applied = run.appliedAt ? ' · applied' : '';\n const when = run.createdAt.slice(0, 16).replace('T', ' ');\n return `${theme.bold(run.id)} ${run.status.padEnd(9)} ${theme.dim(`${done}/${run.tasks.length} tasks · ${when}${applied}`)} ${oneLine(run.objective, 80)}`;\n}\n\n// ---------------------------------------------------------------------------\n// Service\n// ---------------------------------------------------------------------------\n\nconst HINTS: Record<string, string> = {\n no_agents:\n 'Install and sign in to Claude Code (claude), Codex (codex) or Antigravity (agy), or pick others with --agents.',\n not_a_repository: 'Run it inside a git repository with at least one commit.',\n busy: 'Another run is active in this project. Wait for it, or cancel it from the dashboard.',\n not_appliable:\n 'Only a finished run that was not applied yet can be applied, and your working tree must be clean.',\n not_found: 'See `davecode orchestrate --list` for the ids.',\n};\n\nfunction explain(err: unknown): unknown {\n const { name, code } = (err ?? {}) as { name?: unknown; code?: unknown };\n if (name === 'OrchestratorError' && typeof code === 'string' && err instanceof Error) {\n const hint = HINTS[code];\n return new CliError(err.message, hint ? { hint } : {});\n }\n return err;\n}\n\nasync function projectRoot(ctx: CliContext, project?: string): Promise<string> {\n const root = project ? resolve(ctx.cwd, project) : await detectProjectRoot(ctx.cwd, ctx.home);\n if (!root || !existsSync(root)) {\n throw new CliError('Not inside a git repository', {\n hint: 'Run `davecode orchestrate` inside the repository the agents should work on.',\n });\n }\n return root;\n}\n\nasync function openService(\n ctx: CliContext,\n opts: OrchestrateOptions,\n deps: OrchestrateDeps,\n): Promise<{ service: OrchestratorService; events: EventBus }> {\n const root = await projectRoot(ctx, opts.project);\n const events = new EventBus();\n try {\n const service = deps.service\n ? deps.service(events, root)\n : createProjectOrchestrator({ projectDir: root, home: ctx.home, env: ctx.env, events });\n return { service, events };\n } catch {\n throw new CliError('The pane orchestrator is not available in this build', {\n exitCode: EXIT.unavailable,\n });\n }\n}\n\n/** Resolves with the run once it is over (done, failed or cancelled). */\nfunction waitForEnd(\n service: OrchestratorService,\n events: EventBus,\n id: string,\n): Promise<OrchestratorRun> {\n return new Promise((resolveRun) => {\n let unsubscribe = () => {};\n const finish = (run: OrchestratorRun) => {\n unsubscribe();\n resolveRun(run);\n };\n unsubscribe = events.subscribe((event) => {\n if (event.type === 'orchestrator.run' && event.run.id === id && isRunOver(event.run)) {\n finish(event.run);\n }\n });\n // It may have ended before the subscription.\n const current = service.get(id);\n if (current && isRunOver(current)) finish(current);\n });\n}\n\n// ---------------------------------------------------------------------------\n// Commands\n// ---------------------------------------------------------------------------\n\n/** `davecode orchestrate \"<objective>\"` (and `--list`, `--apply-run <id>`). */\nexport async function orchestrateCommand(\n ctx: CliContext,\n words: string[],\n opts: OrchestrateOptions,\n deps: OrchestrateDeps = {},\n): Promise<number> {\n if (opts.list) return listRuns(ctx, opts, deps);\n if (opts.applyRun !== undefined) return applyRun(ctx, opts.applyRun, opts, deps);\n\n const input = startInput(words, opts);\n const { service, events } = await openService(ctx, opts, deps);\n const interrupt = interruptSignal(deps);\n const started = Date.now();\n let runId: string | undefined;\n let progress: ((event: DaveEvent) => string[]) | undefined;\n const unsubscribe = events.subscribe((event) => {\n if (ctx.json || !progress) return;\n for (const line of progress(event)) ctx.err(line);\n });\n try {\n let run: OrchestratorRun;\n try {\n run = await service.start(input);\n } catch (err) {\n throw explain(err);\n }\n runId = run.id;\n progress = createProgress(ctx.errTheme, run.id);\n if (!ctx.json) {\n ctx.err(\n ctx.errTheme.dim(`Run ${run.id} started with ${run.agents.join(', ')}. Ctrl+C cancels.`),\n );\n for (const line of progress({ type: 'orchestrator.run', run, ts: Date.now() })) ctx.err(line);\n }\n let cancelled = false;\n void interrupt.promise.then(() => {\n cancelled = true;\n if (!ctx.json) ctx.err(ctx.errTheme.dim(`Cancelling${ctx.errTheme.glyph.ellipsis}`));\n if (runId) service.cancel(runId);\n });\n run = await waitForEnd(service, events, run.id);\n\n let applyError: CliError | undefined;\n if (opts.apply && run.status === 'done' && !cancelled) {\n try {\n run = await service.apply(run.id);\n } catch (err) {\n const explained = explain(err);\n applyError =\n explained instanceof CliError ? explained : new CliError('Could not apply the run');\n }\n }\n\n if (ctx.json)\n printJson(ctx, { run, ...(applyError ? { applyError: applyError.message } : {}) });\n else {\n ctx.out();\n for (const line of describeRun(ctx.theme, run)) ctx.out(line);\n ctx.out(ctx.theme.dim(` took ${formatDuration((Date.now() - started) / 1000)}`));\n if (applyError) {\n ctx.err(`${ctx.errTheme.error('error')}: ${applyError.message}`);\n if (applyError.hint) ctx.err(ctx.errTheme.dim(applyError.hint));\n }\n }\n return applyError ? EXIT.failure : runExitCode(run);\n } finally {\n interrupt.dispose();\n unsubscribe();\n await service.close();\n }\n}\n\nasync function listRuns(\n ctx: CliContext,\n opts: OrchestrateOptions,\n deps: OrchestrateDeps,\n): Promise<number> {\n const { service } = await openService(ctx, opts, deps);\n try {\n const runs = service.list();\n if (ctx.json) printJson(ctx, { runs });\n else if (runs.length === 0) {\n ctx.out(ctx.theme.dim('No runs yet. Start one with `davecode orchestrate \"<objective>\"`.'));\n } else {\n for (const run of runs) ctx.out(runListLine(ctx.theme, run));\n }\n return EXIT.ok;\n } finally {\n await service.close();\n }\n}\n\nasync function applyRun(\n ctx: CliContext,\n id: string,\n opts: OrchestrateOptions,\n deps: OrchestrateDeps,\n): Promise<number> {\n const { service } = await openService(ctx, opts, deps);\n try {\n let run: OrchestratorRun;\n try {\n run = await service.apply(id);\n } catch (err) {\n throw explain(err);\n }\n if (ctx.json) printJson(ctx, { run });\n else for (const line of describeRun(ctx.theme, run)) ctx.out(line);\n return EXIT.ok;\n } finally {\n await service.close();\n }\n}\n"],"mappings":"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","names":[]}
|
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
detectProjectRoot,
|
|
19
19
|
findGateway,
|
|
20
20
|
wireProject
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-FKGZERYB.js";
|
|
22
22
|
import {
|
|
23
23
|
CliError,
|
|
24
24
|
EXIT
|
|
@@ -29,7 +29,7 @@ import {
|
|
|
29
29
|
RunnerError,
|
|
30
30
|
createEngine,
|
|
31
31
|
loadConfig
|
|
32
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-NBQIMB43.js";
|
|
33
33
|
import "./chunk-MC7RIPL7.js";
|
|
34
34
|
|
|
35
35
|
// src/commands/run.ts
|
|
@@ -374,4 +374,4 @@ export {
|
|
|
374
374
|
explainRunnerError,
|
|
375
375
|
runCommand
|
|
376
376
|
};
|
|
377
|
-
//# sourceMappingURL=run-
|
|
377
|
+
//# sourceMappingURL=run-ABQNQ722.js.map
|
package/dist/runtime.js
CHANGED
|
@@ -1,16 +1,20 @@
|
|
|
1
1
|
import {
|
|
2
|
+
createProjectOrchestrator,
|
|
2
3
|
detectProjectRoot,
|
|
3
4
|
launchLoginTerminal,
|
|
5
|
+
orchestratorWorktreesDir,
|
|
4
6
|
resolveDashboardDir,
|
|
5
7
|
resolveProjectRoot,
|
|
6
8
|
startRuntime,
|
|
7
9
|
wireProject
|
|
8
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-FKGZERYB.js";
|
|
9
11
|
import "./chunk-732GIHRQ.js";
|
|
10
|
-
import "./chunk-
|
|
12
|
+
import "./chunk-NBQIMB43.js";
|
|
11
13
|
export {
|
|
14
|
+
createProjectOrchestrator,
|
|
12
15
|
detectProjectRoot,
|
|
13
16
|
launchLoginTerminal,
|
|
17
|
+
orchestratorWorktreesDir,
|
|
14
18
|
resolveDashboardDir,
|
|
15
19
|
resolveProjectRoot,
|
|
16
20
|
startRuntime,
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
findGateway,
|
|
11
11
|
startRuntime,
|
|
12
12
|
which
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-FKGZERYB.js";
|
|
14
14
|
import {
|
|
15
15
|
CliError,
|
|
16
16
|
EXIT
|
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
VERSION,
|
|
21
21
|
loadConfig,
|
|
22
22
|
summarize
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-NBQIMB43.js";
|
|
24
24
|
import "./chunk-MC7RIPL7.js";
|
|
25
25
|
|
|
26
26
|
// src/commands/start.ts
|
|
@@ -283,4 +283,4 @@ async function startCommand(ctx, opts, deps = {}) {
|
|
|
283
283
|
export {
|
|
284
284
|
startCommand
|
|
285
285
|
};
|
|
286
|
-
//# sourceMappingURL=start-
|
|
286
|
+
//# sourceMappingURL=start-MSO7TGBX.js.map
|
|
@@ -6,13 +6,13 @@ import {
|
|
|
6
6
|
renderStatus,
|
|
7
7
|
statusCommand,
|
|
8
8
|
windowCell
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-U42YONUN.js";
|
|
10
10
|
import "./chunk-SF5ZEAP4.js";
|
|
11
11
|
import "./chunk-QA3O6RA2.js";
|
|
12
|
-
import "./chunk-
|
|
12
|
+
import "./chunk-FKGZERYB.js";
|
|
13
13
|
import "./chunk-7XVXEO7U.js";
|
|
14
14
|
import "./chunk-732GIHRQ.js";
|
|
15
|
-
import "./chunk-
|
|
15
|
+
import "./chunk-NBQIMB43.js";
|
|
16
16
|
import "./chunk-MC7RIPL7.js";
|
|
17
17
|
export {
|
|
18
18
|
emptyUsage,
|
|
@@ -23,4 +23,4 @@ export {
|
|
|
23
23
|
statusCommand,
|
|
24
24
|
windowCell
|
|
25
25
|
};
|
|
26
|
-
//# sourceMappingURL=status-
|
|
26
|
+
//# sourceMappingURL=status-U6C4LUCM.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -2,14 +2,14 @@ import {
|
|
|
2
2
|
formatTaskDetail,
|
|
3
3
|
formatTaskTree,
|
|
4
4
|
summaryLine
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-LK2K73DC.js";
|
|
6
6
|
import "./chunk-SF5ZEAP4.js";
|
|
7
7
|
import {
|
|
8
8
|
printJson
|
|
9
9
|
} from "./chunk-QA3O6RA2.js";
|
|
10
10
|
import {
|
|
11
11
|
detectProjectRoot
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-FKGZERYB.js";
|
|
13
13
|
import {
|
|
14
14
|
CliError,
|
|
15
15
|
EXIT
|
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
nextTask,
|
|
24
24
|
parseTaskGraph,
|
|
25
25
|
summarize
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-NBQIMB43.js";
|
|
27
27
|
import "./chunk-MC7RIPL7.js";
|
|
28
28
|
|
|
29
29
|
// src/commands/tasks.ts
|
|
@@ -182,4 +182,4 @@ export {
|
|
|
182
182
|
tasksNext,
|
|
183
183
|
tasksStatus
|
|
184
184
|
};
|
|
185
|
-
//# sourceMappingURL=tasks-
|
|
185
|
+
//# sourceMappingURL=tasks-HEVT67YM.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dmrlzz/davecode",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "DaveCode CLI & TUI: run the gateway, manage accounts and drive the autonomous engine from your terminal.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -64,9 +64,9 @@
|
|
|
64
64
|
"devDependencies": {
|
|
65
65
|
"@types/react": "^19.3.0",
|
|
66
66
|
"ink-testing-library": "^4.0.0",
|
|
67
|
-
"@davecode/
|
|
68
|
-
"@davecode/
|
|
69
|
-
"@davecode/ui": "0.
|
|
67
|
+
"@davecode/server": "0.7.0",
|
|
68
|
+
"@davecode/core": "0.7.0",
|
|
69
|
+
"@davecode/ui": "0.7.0"
|
|
70
70
|
},
|
|
71
71
|
"scripts": {
|
|
72
72
|
"build": "tsup",
|