codedeck 0.5.0 → 0.5.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.
- package/LICENSE +21 -0
- package/README.md +15 -0
- package/dist/cli/commands/doctor.js +10 -2
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/open.js +49 -12
- package/dist/cli/commands/open.js.map +1 -1
- package/dist/cli/commands/profile.js +191 -0
- package/dist/cli/commands/profile.js.map +1 -0
- package/dist/cli/commands/run.js +36 -5
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli/commands/setup.js +175 -23
- package/dist/cli/commands/setup.js.map +1 -1
- package/dist/cli/index.js +2 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/config/config.js +82 -2
- package/dist/config/config.js.map +1 -1
- package/dist/daemon/daemon.js +1 -0
- package/dist/daemon/daemon.js.map +1 -1
- package/dist/drivers/codex/parser.js +14 -10
- package/dist/drivers/codex/parser.js.map +1 -1
- package/dist/open/contract.js.map +1 -1
- package/dist/open/launchers/claude.js +8 -2
- package/dist/open/launchers/claude.js.map +1 -1
- package/dist/plugin/agents/auditor.md +2 -0
- package/dist/plugin/agents/general.md +10 -2
- package/dist/plugin/agents/orchestrator-edit.md +10 -2
- package/dist/plugin/agents/orchestrator-read.md +10 -2
- package/dist/plugin/agents/orchestrator.md +18 -3
- package/dist/plugin/prompts/_partials/dispatch.md +2 -0
- package/dist/plugin/prompts/_partials/reports-dispatch.md +5 -0
- package/dist/plugin/prompts/_partials/reports-general.md +5 -0
- package/dist/plugin/prompts/_partials/spec-gates.md +6 -0
- package/dist/plugin/prompts/_partials/worktree.md +1 -1
- package/dist/plugin/prompts/roles/general.md +1 -0
- package/dist/plugin/prompts/roles/orchestrator-edit.md +1 -0
- package/dist/plugin/prompts/roles/orchestrator-read.md +1 -0
- package/dist/plugin/prompts/roles/orchestrator.md +3 -1
- package/dist/web/canvas-page.js +79 -33
- package/dist/web/canvas-page.js.map +1 -1
- package/dist/web/review-page.js +121 -22
- package/dist/web/review-page.js.map +1 -1
- package/package.json +1 -1
package/dist/cli/commands/run.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
2
|
import { IpcClient } from "../../daemon/ipc.js";
|
|
3
|
-
import { loadConfig, resolveDefaultSandbox, resolveModel, resolveRoleBinding } from "../../config/config.js";
|
|
3
|
+
import { loadConfig, resolveDefaultSandbox, resolveEffectiveConfig, resolveModel, resolveRoleBinding } from "../../config/config.js";
|
|
4
4
|
import { CODEX_SANDBOXES, parseEffort, parseSandbox, REASONING_EFFORTS } from "../../core/driver.js";
|
|
5
5
|
import { exitCodeForOutcome } from "../../core/errors.js";
|
|
6
6
|
import { isTerminalStatus, normalizeAgentId } from "../../core/session.js";
|
|
@@ -18,8 +18,9 @@ export function registerRunCommand(program) {
|
|
|
18
18
|
.argument("<prompt>", "prompt for the agent (e.g. \"implement authentication\")")
|
|
19
19
|
.option("--agent <agent>", "agent to use: claude | codex | opencode | omp | antigravity (ignored for a role with a binding; default: claude or config.defaultAgent)")
|
|
20
20
|
.option("--model <model>", "model to use (e.g. claude-opus-5, gpt-5; ignored for a role with a binding)")
|
|
21
|
-
.option("--effort <level>", `reasoning effort: ${REASONING_EFFORTS.join(" | ")}`)
|
|
21
|
+
.option("--effort <level>", `reasoning effort: ${REASONING_EFFORTS.join(" | ")} (required unless the role binds one; opencode ignores)`)
|
|
22
22
|
.option("--role <role>", `prefix the prompt with a CodeDeck role: ${ROLES.join(" | ")} (3-letter prefixes accepted)`)
|
|
23
|
+
.option("--profile <name>", "use a saved setup profile instead of the active one (see profile list)")
|
|
23
24
|
.option("--fast", "use the priority service tier (1.5x speed) — codex and omp only")
|
|
24
25
|
.option("--sandbox <mode>", `codex sandbox: ${CODEX_SANDBOXES.join(" | ")} (default: workspace-write)`)
|
|
25
26
|
.option("--dangerously-bypass-approvals-and-sandbox", "codex: bypass sandbox and approvals (sets sandbox to danger-full-access)")
|
|
@@ -42,7 +43,17 @@ Resume with: ${getCliName()} send <id> "continue"
|
|
|
42
43
|
.action(async (prompt, opts) => {
|
|
43
44
|
const cwd = opts.cwd ? path.resolve(opts.cwd) : process.cwd();
|
|
44
45
|
const sessionName = opts.name ?? slugify(prompt);
|
|
45
|
-
|
|
46
|
+
// Resolved once here so a --profile run carries its own setup even
|
|
47
|
+
// while another profile runs beside it. The daemon only sees the
|
|
48
|
+
// concrete values below, never the profile name.
|
|
49
|
+
let cfg;
|
|
50
|
+
try {
|
|
51
|
+
cfg = resolveEffectiveConfig(loadConfig(), opts.profile);
|
|
52
|
+
}
|
|
53
|
+
catch (e) {
|
|
54
|
+
console.error(e instanceof Error ? e.message : String(e));
|
|
55
|
+
process.exit(3); // usage error — infra class
|
|
56
|
+
}
|
|
46
57
|
// A bound role owns both halves. The worker dispatches the role and the
|
|
47
58
|
// role decides the harness and model; --agent/--model cannot override a
|
|
48
59
|
// bound role. They used to, which let every worker force the run onto its
|
|
@@ -65,6 +76,9 @@ Resume with: ${getCliName()} send <id> "continue"
|
|
|
65
76
|
const resolvedAgent = opts.agent ? normalizeAgentId(opts.agent) ?? opts.agent : undefined;
|
|
66
77
|
agent = (resolvedAgent || cfg.defaultAgent || "claude");
|
|
67
78
|
model = resolveModel(agent, opts.model, cfg);
|
|
79
|
+
if (parseRole(opts.role)) {
|
|
80
|
+
console.error(`Warning: role "${opts.role}" is not bound; using ${agent}${model ? ` / ${model}` : ""} fallback. Change it with ${getCliName()} setup.`);
|
|
81
|
+
}
|
|
68
82
|
}
|
|
69
83
|
// `open` hands the role to Claude as `--agent`, which no other harness
|
|
70
84
|
// has. Here it becomes a prompt prefix instead, so a codex or opencode
|
|
@@ -80,6 +94,10 @@ Resume with: ${getCliName()} send <id> "continue"
|
|
|
80
94
|
}
|
|
81
95
|
// Validate here so a typo fails before a session row is created; codex
|
|
82
96
|
// would otherwise reject it at spawn time, leaving a dead session behind.
|
|
97
|
+
// --effort wins, then the role's own binding. No global fallback: a run
|
|
98
|
+
// without either fails loud. Opencode has no effort channel: any value
|
|
99
|
+
// warns and is dropped so the stored session never claims a level that
|
|
100
|
+
// was never applied.
|
|
83
101
|
let effort;
|
|
84
102
|
if (opts.effort) {
|
|
85
103
|
try {
|
|
@@ -90,6 +108,17 @@ Resume with: ${getCliName()} send <id> "continue"
|
|
|
90
108
|
process.exit(3); // usage error — infra class
|
|
91
109
|
}
|
|
92
110
|
}
|
|
111
|
+
else {
|
|
112
|
+
effort = binding?.effort;
|
|
113
|
+
}
|
|
114
|
+
if (effort === undefined && agent !== "opencode") {
|
|
115
|
+
console.error(`No effort bound to this run. Run ${getCliName()} setup to bind one or pass --effort (${REASONING_EFFORTS.join(" | ")}).`);
|
|
116
|
+
process.exit(3); // usage error — infra class
|
|
117
|
+
}
|
|
118
|
+
if (agent === "opencode" && effort !== undefined) {
|
|
119
|
+
console.error(`Warning: effort "${effort}" has no effect on opencode (no mapped reader); continuing without it.`);
|
|
120
|
+
effort = undefined;
|
|
121
|
+
}
|
|
93
122
|
let sandbox;
|
|
94
123
|
if (opts.sandbox) {
|
|
95
124
|
try {
|
|
@@ -153,6 +182,8 @@ Resume with: ${getCliName()} send <id> "continue"
|
|
|
153
182
|
process.exit(3); // infra: daemon unavailable
|
|
154
183
|
}
|
|
155
184
|
const background = !!opts.detach;
|
|
185
|
+
// Without flags the daemon would fall back to the base config, which
|
|
186
|
+
// ignores the profile. Pass the effective answer explicitly instead.
|
|
156
187
|
const params = {
|
|
157
188
|
prompt: rolePrompt,
|
|
158
189
|
runId: runIdFromEnvironment(),
|
|
@@ -164,8 +195,8 @@ Resume with: ${getCliName()} send <id> "continue"
|
|
|
164
195
|
dangerouslyBypassApprovalsAndSandbox: agent === "codex" ? dangerouslyBypass : undefined,
|
|
165
196
|
name: sessionName,
|
|
166
197
|
cwd,
|
|
167
|
-
worktree: opts.worktree,
|
|
168
|
-
noWorktree: opts.noWorktree,
|
|
198
|
+
worktree: opts.worktree ?? (cfg.worktree === true ? true : undefined),
|
|
199
|
+
noWorktree: opts.noWorktree ?? (opts.worktree === undefined && cfg.worktree === false ? true : undefined),
|
|
169
200
|
detach: background,
|
|
170
201
|
};
|
|
171
202
|
let result;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/cli/commands/run.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/cli/commands/run.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { AUTOCOMPACT_DEFAULT_CAP, AUTOCOMPACT_DEFAULT_PERCENT, } from "../../core/autocompact.js";
|
|
2
|
+
import { parseEffort, REASONING_EFFORTS } from "../../core/driver.js";
|
|
2
3
|
import { getBatchModels, getCachedOrDiscoverModels, } from "../../core/models.js";
|
|
3
4
|
import { isAgentId } from "../../core/session.js";
|
|
4
5
|
import { itemKey } from "../picker-state.js";
|
|
@@ -8,7 +9,7 @@ import { getCliName } from "../cli-name.js";
|
|
|
8
9
|
import { getRegistry } from "../../drivers/registry.js";
|
|
9
10
|
import { ROLES } from "../../core/roles.js";
|
|
10
11
|
import { getPaths } from "../../config/paths.js";
|
|
11
|
-
import { BALANCED_PRESET, DISPATCHER_PRESET, EXPLORER_PRESET, ORCHESTRATOR_PRESETS, createSetupConfigStore, DEFAULT_CONFIG, isOrchestratorMode, loadConfig, orchestratorModeLabel, resolveOrchestratorMode, saveConfig, serializeConfig, } from "../../config/config.js";
|
|
12
|
+
import { BALANCED_PRESET, baseConfig, DISPATCHER_PRESET, EXPLORER_PRESET, getProfileSnapshot, ORCHESTRATOR_PRESETS, createSetupConfigStore, DEFAULT_CONFIG, extractProfileSnapshot, isOrchestratorMode, loadConfig, orchestratorModeLabel, parseProfileName, resolveEffectiveConfig, resolveOrchestratorMode, saveConfig, serializeConfig, } from "../../config/config.js";
|
|
12
13
|
const ORCHESTRATOR_SCREEN_ROLE = "orchestrator-mode";
|
|
13
14
|
const ORCHESTRATOR_PICKER_GROUP = "orchestrator";
|
|
14
15
|
const PARALLELISM_NONE = "none";
|
|
@@ -20,6 +21,8 @@ const AUTOCOMPACT_SCREEN_ROLE = "autocompact";
|
|
|
20
21
|
const AUTOCOMPACT_PICKER_GROUP = "autocompact";
|
|
21
22
|
const AUTOCOMPACT_OFF = "off";
|
|
22
23
|
const AUTOCOMPACT_ON = "on";
|
|
24
|
+
const EFFORT_PICKER_GROUP = "effort";
|
|
25
|
+
const ROLE_EFFORT_PREFIX = "effort.";
|
|
23
26
|
const AUTOCOMPACT_DESCRIPTION = `Native autocompact applies to Claude and OpenCode sessions. Claude's default window is min(${AUTOCOMPACT_DEFAULT_CAP / 1000}k tokens, ${AUTOCOMPACT_DEFAULT_PERCENT * 100}% of the context window); OpenCode uses its internal context trigger.`;
|
|
24
27
|
const ORCHESTRATOR_PARALLELISM_NOTE_LINES = [
|
|
25
28
|
"parallelism is advisory. Version 1 puts the requested cap in the",
|
|
@@ -181,6 +184,41 @@ export function buildAutocompactScreen(config = {}, index = 0, total = 1) {
|
|
|
181
184
|
next: () => [],
|
|
182
185
|
};
|
|
183
186
|
}
|
|
187
|
+
/**
|
|
188
|
+
* One follow-up screen per bound role, shown after the shared screens so the
|
|
189
|
+
* triple harness:model:effort is chosen in a single setup pass. Opencode has
|
|
190
|
+
* no effort channel and gets no screen: its bindings keep no effort.
|
|
191
|
+
*/
|
|
192
|
+
export function buildRoleEffortScreen(role, binding, index = 0, total = 1) {
|
|
193
|
+
let selected;
|
|
194
|
+
try {
|
|
195
|
+
selected = typeof binding.effort === "string" ? parseEffort(binding.effort) : undefined;
|
|
196
|
+
}
|
|
197
|
+
catch {
|
|
198
|
+
selected = undefined;
|
|
199
|
+
}
|
|
200
|
+
const values = selected === undefined
|
|
201
|
+
? [...REASONING_EFFORTS]
|
|
202
|
+
: [selected, ...REASONING_EFFORTS.filter((level) => level !== selected)];
|
|
203
|
+
const items = values.map((value) => ({
|
|
204
|
+
id: value,
|
|
205
|
+
label: value,
|
|
206
|
+
group: EFFORT_PICKER_GROUP,
|
|
207
|
+
harness: EFFORT_PICKER_GROUP,
|
|
208
|
+
...(value === selected ? { note: "atual" } : {}),
|
|
209
|
+
}));
|
|
210
|
+
return {
|
|
211
|
+
role: `${ROLE_EFFORT_PREFIX}${role}`,
|
|
212
|
+
title: `${role} effort`,
|
|
213
|
+
counter: `configuração ${index + 1} de ${total}`,
|
|
214
|
+
description: [`Effort para ${role} (${binding.harness} · ${binding.model}). --effort sobrescreve.`],
|
|
215
|
+
items,
|
|
216
|
+
pinned: true,
|
|
217
|
+
known: new Set(items.map((item) => itemKey(item.harness, item.id))),
|
|
218
|
+
harnesses: new Set([EFFORT_PICKER_GROUP]),
|
|
219
|
+
next: () => [],
|
|
220
|
+
};
|
|
221
|
+
}
|
|
184
222
|
function modeAfterParameter(mode, result) {
|
|
185
223
|
const parameters = collectOrchestratorParameters([result], mode);
|
|
186
224
|
return orchestratorConfigFromSelection("custom", parameters) ?? mode;
|
|
@@ -282,8 +320,16 @@ export function needsModelSetup(config, isTTY = isInteractiveTerminal()) {
|
|
|
282
320
|
return false;
|
|
283
321
|
// `agents` is what setup writes now. A config carrying only the older
|
|
284
322
|
// per-harness `models` has never answered the per-role question, so it still
|
|
285
|
-
// counts as unset.
|
|
286
|
-
|
|
323
|
+
// counts as unset. The active profile answers too: its agents are the ones
|
|
324
|
+
// a launch would use.
|
|
325
|
+
if (config == null)
|
|
326
|
+
return true;
|
|
327
|
+
try {
|
|
328
|
+
return resolveEffectiveConfig(config).agents == null;
|
|
329
|
+
}
|
|
330
|
+
catch {
|
|
331
|
+
return config.agents == null;
|
|
332
|
+
}
|
|
287
333
|
}
|
|
288
334
|
/**
|
|
289
335
|
* The catalog of every installed harness, flattened into one list.
|
|
@@ -429,7 +475,11 @@ function watchResize(listener) {
|
|
|
429
475
|
};
|
|
430
476
|
}
|
|
431
477
|
export async function runModelSetupWizard(options = {}) {
|
|
432
|
-
const
|
|
478
|
+
const loaded = options.config ?? loadConfig();
|
|
479
|
+
const profile = options.profile !== undefined ? parseProfileName(options.profile) : undefined;
|
|
480
|
+
const config = profile === undefined
|
|
481
|
+
? loaded
|
|
482
|
+
: { ...baseConfig(loaded), ...getProfileSnapshot(loaded, profile) };
|
|
433
483
|
if (!(options.isTTY ?? isInteractiveTerminal()))
|
|
434
484
|
return config;
|
|
435
485
|
const output = options.output ?? process.stdout;
|
|
@@ -451,7 +501,27 @@ export async function runModelSetupWizard(options = {}) {
|
|
|
451
501
|
console.error(`Warning: Could not discover models: ${error instanceof Error ? error.message : String(error)}`);
|
|
452
502
|
harnesses = [];
|
|
453
503
|
}
|
|
454
|
-
|
|
504
|
+
// Each role screen is immediately followed by its effort screen, so the
|
|
505
|
+
// triple harness:model:effort is chosen in one step instead of a second
|
|
506
|
+
// pass at the end. A second runScreens call is not an option: the picker
|
|
507
|
+
// owns raw mode for exactly one run per stream set.
|
|
508
|
+
const roleScreens = buildScreens(ROLES, harnesses, config.agents ?? {}, config.defaultAgent ?? "claude").map((screen, roleIndex) => ({
|
|
509
|
+
...screen,
|
|
510
|
+
next: (result) => {
|
|
511
|
+
if (result.kind !== "picked" || result.harness === "opencode")
|
|
512
|
+
return [];
|
|
513
|
+
const role = screen.role;
|
|
514
|
+
const prev = config.agents?.[role];
|
|
515
|
+
const sameTarget = prev?.harness === result.harness && prev?.model === result.id;
|
|
516
|
+
return [
|
|
517
|
+
buildRoleEffortScreen(role, {
|
|
518
|
+
harness: result.harness,
|
|
519
|
+
model: result.id,
|
|
520
|
+
...(sameTarget && prev?.effort !== undefined ? { effort: prev.effort } : {}),
|
|
521
|
+
}, roleIndex, ROLES.length),
|
|
522
|
+
];
|
|
523
|
+
},
|
|
524
|
+
}));
|
|
455
525
|
// Writing `agents` is what marks first-run setup as done. Doing that after
|
|
456
526
|
// showing nothing would spend the single prompt the user ever gets.
|
|
457
527
|
if (roleScreens.length === 0) {
|
|
@@ -522,9 +592,28 @@ export async function runModelSetupWizard(options = {}) {
|
|
|
522
592
|
updatedConfig.autocompact = { ...config.autocompact, enabled: false };
|
|
523
593
|
}
|
|
524
594
|
}
|
|
595
|
+
// Per-role effort answers arrive as followups of their role screen, in the
|
|
596
|
+
// same run. Skipping a role asks no effort; only a bound role can receive one.
|
|
597
|
+
for (const result of answeredResults) {
|
|
598
|
+
if (result.kind !== "picked" || !result.role.startsWith(ROLE_EFFORT_PREFIX))
|
|
599
|
+
continue;
|
|
600
|
+
const target = result.role.slice(ROLE_EFFORT_PREFIX.length);
|
|
601
|
+
if (agents[target] === undefined)
|
|
602
|
+
continue;
|
|
603
|
+
if (REASONING_EFFORTS.includes(result.id)) {
|
|
604
|
+
agents[target] = { ...agents[target], effort: result.id };
|
|
605
|
+
}
|
|
606
|
+
}
|
|
607
|
+
updatedConfig.agents = { ...agents };
|
|
608
|
+
const toSave = profile === undefined
|
|
609
|
+
? updatedConfig
|
|
610
|
+
: {
|
|
611
|
+
...loaded,
|
|
612
|
+
profiles: { ...loaded.profiles, [profile]: extractProfileSnapshot(updatedConfig) },
|
|
613
|
+
};
|
|
525
614
|
let saved = false;
|
|
526
615
|
try {
|
|
527
|
-
(options.save ?? saveConfig)(
|
|
616
|
+
(options.save ?? saveConfig)(toSave);
|
|
528
617
|
saved = true;
|
|
529
618
|
}
|
|
530
619
|
catch (error) {
|
|
@@ -535,7 +624,10 @@ export async function runModelSetupWizard(options = {}) {
|
|
|
535
624
|
const summary = roleScreens
|
|
536
625
|
.map((screen) => {
|
|
537
626
|
const binding = agents[screen.role];
|
|
538
|
-
|
|
627
|
+
const triple = binding
|
|
628
|
+
? `${binding.harness}:${binding.model}${binding.effort ? `:${binding.effort}` : ""}`
|
|
629
|
+
: "unset";
|
|
630
|
+
return `${screen.role} ${triple}`;
|
|
539
631
|
})
|
|
540
632
|
.join(" · ");
|
|
541
633
|
const modeSummary = orchestrator === undefined ? "" : ` · orchestrator ${orchestratorModeLabel(orchestrator)}`;
|
|
@@ -549,21 +641,37 @@ export class SetupUsageError extends Error {
|
|
|
549
641
|
}
|
|
550
642
|
}
|
|
551
643
|
function invalidBindMessage(value) {
|
|
552
|
-
return `Invalid --bind "${value}": expected role=harness:model (role: general|orchestrator|reviewer|auditor; harness: claude|codex|opencode|omp; model: non-empty and without whitespace, control characters or '=')`;
|
|
644
|
+
return `Invalid --bind "${value}": expected role=harness:model[:effort] (role: general|orchestrator|reviewer|auditor; harness: claude|codex|opencode|omp; model: non-empty and without whitespace, control characters or '='; effort: ${REASONING_EFFORTS.join("|")})`;
|
|
553
645
|
}
|
|
554
646
|
export function parseBind(value) {
|
|
555
647
|
const equals = value.indexOf("=");
|
|
556
648
|
const roleValue = equals < 0 ? "" : value.slice(0, equals);
|
|
557
649
|
const right = equals < 0 ? "" : value.slice(equals + 1);
|
|
558
|
-
const
|
|
559
|
-
|
|
560
|
-
|
|
650
|
+
const firstColon = right.indexOf(":");
|
|
651
|
+
// An effort suffix is only read off a model that carries a colon of its
|
|
652
|
+
// own: the single-colon form always stays harness:model, so a model
|
|
653
|
+
// literally named "high" keeps binding. The price is that a model id
|
|
654
|
+
// ending in ":<level>" cannot be written with its suffix intact.
|
|
655
|
+
const lastColon = right.lastIndexOf(":");
|
|
656
|
+
const trailing = lastColon < 0 ? "" : right.slice(lastColon + 1);
|
|
657
|
+
const hasEffortSuffix = lastColon > firstColon &&
|
|
658
|
+
firstColon >= 0 &&
|
|
659
|
+
REASONING_EFFORTS.includes(trailing);
|
|
660
|
+
const harnessValue = firstColon < 0 ? "" : right.slice(0, firstColon);
|
|
661
|
+
const model = firstColon < 0
|
|
662
|
+
? ""
|
|
663
|
+
: hasEffortSuffix
|
|
664
|
+
? right.slice(firstColon + 1, lastColon)
|
|
665
|
+
: right.slice(firstColon + 1);
|
|
561
666
|
const role = ROLES.includes(roleValue) ? roleValue : undefined;
|
|
562
667
|
const harness = isAgentId(harnessValue) ? harnessValue : undefined;
|
|
563
668
|
const modelPattern = /^[^\p{White_Space}\p{Cc}\p{Cf}=]+$/u;
|
|
564
669
|
if (!role || !harness || !modelPattern.test(model))
|
|
565
670
|
throw new SetupUsageError(invalidBindMessage(value));
|
|
566
|
-
return {
|
|
671
|
+
return {
|
|
672
|
+
role,
|
|
673
|
+
binding: { harness, model, ...(hasEffortSuffix ? { effort: trailing } : {}) },
|
|
674
|
+
};
|
|
567
675
|
}
|
|
568
676
|
export const parseSetupBind = parseBind;
|
|
569
677
|
function parseError(message, json) {
|
|
@@ -578,12 +686,36 @@ export function parseSetupArgs(args) {
|
|
|
578
686
|
let refresh = false;
|
|
579
687
|
let nonInteractive = false;
|
|
580
688
|
let dryRun = false;
|
|
689
|
+
let profile;
|
|
581
690
|
for (let index = 0; index < args.length; index += 1) {
|
|
582
691
|
const arg = args[index];
|
|
583
692
|
if (arg === "--refresh") {
|
|
584
693
|
refresh = true;
|
|
585
694
|
continue;
|
|
586
695
|
}
|
|
696
|
+
if (arg === "--profile") {
|
|
697
|
+
const value = args[index + 1];
|
|
698
|
+
if (value === undefined || isSetupFlag(value)) {
|
|
699
|
+
return parseError('Option "--profile" expects a name.', json);
|
|
700
|
+
}
|
|
701
|
+
index += 1;
|
|
702
|
+
try {
|
|
703
|
+
profile = parseProfileName(value);
|
|
704
|
+
}
|
|
705
|
+
catch (error) {
|
|
706
|
+
return parseError(error instanceof Error ? error.message : String(error), json);
|
|
707
|
+
}
|
|
708
|
+
continue;
|
|
709
|
+
}
|
|
710
|
+
if (arg.startsWith("--profile=")) {
|
|
711
|
+
try {
|
|
712
|
+
profile = parseProfileName(arg.slice("--profile=".length));
|
|
713
|
+
}
|
|
714
|
+
catch (error) {
|
|
715
|
+
return parseError(error instanceof Error ? error.message : String(error), json);
|
|
716
|
+
}
|
|
717
|
+
continue;
|
|
718
|
+
}
|
|
587
719
|
if (arg === "--non-interactive") {
|
|
588
720
|
nonInteractive = true;
|
|
589
721
|
continue;
|
|
@@ -598,7 +730,7 @@ export function parseSetupArgs(args) {
|
|
|
598
730
|
if (arg === "--bind") {
|
|
599
731
|
const value = args[index + 1];
|
|
600
732
|
if (value === undefined || isSetupFlag(value)) {
|
|
601
|
-
return parseError('Option "--bind" expects role=harness:model.', json);
|
|
733
|
+
return parseError('Option "--bind" expects role=harness:model[:effort].', json);
|
|
602
734
|
}
|
|
603
735
|
index += 1;
|
|
604
736
|
try {
|
|
@@ -631,6 +763,7 @@ export function parseSetupArgs(args) {
|
|
|
631
763
|
dryRun,
|
|
632
764
|
binds,
|
|
633
765
|
batch: nonInteractive || json || dryRun || binds.length > 0,
|
|
766
|
+
...(profile === undefined ? {} : { profile }),
|
|
634
767
|
},
|
|
635
768
|
};
|
|
636
769
|
}
|
|
@@ -913,19 +1046,32 @@ export async function runSetupBatch(options, dependencies = {}) {
|
|
|
913
1046
|
return errorResult(read, null, notNeededCatalog(), [], [], read.readError ? 15 : 14, message);
|
|
914
1047
|
}
|
|
915
1048
|
const current = { ...DEFAULT_CONFIG, ...(read.config ?? {}) };
|
|
1049
|
+
// --profile edits one saved setup instead of the active one. A name nobody
|
|
1050
|
+
// saved yet starts from the base config, so creating a profile needs no
|
|
1051
|
+
// separate gesture.
|
|
1052
|
+
const profile = options.profile;
|
|
1053
|
+
const target = profile === undefined
|
|
1054
|
+
? current
|
|
1055
|
+
: { ...baseConfig(current), ...getProfileSnapshot(current, profile) };
|
|
916
1056
|
const lastByRole = new Map();
|
|
917
1057
|
options.binds.forEach((binding, index) => lastByRole.set(binding.role, index));
|
|
918
1058
|
const winning = options.binds.filter((binding, index) => lastByRole.get(binding.role) === index);
|
|
919
|
-
const existingAgents = jsonObject(
|
|
1059
|
+
const existingAgents = jsonObject(target.agents) ? target.agents : {};
|
|
1060
|
+
const updatedAgents = {
|
|
1061
|
+
...existingAgents,
|
|
1062
|
+
...Object.fromEntries(winning.map(({ role, binding }) => [role, binding])),
|
|
1063
|
+
};
|
|
920
1064
|
const proposed = options.binds.length === 0
|
|
921
1065
|
? { ...current }
|
|
922
|
-
:
|
|
923
|
-
...current,
|
|
924
|
-
|
|
925
|
-
...
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
1066
|
+
: profile === undefined
|
|
1067
|
+
? { ...current, agents: updatedAgents }
|
|
1068
|
+
: {
|
|
1069
|
+
...current,
|
|
1070
|
+
profiles: {
|
|
1071
|
+
...current.profiles,
|
|
1072
|
+
[profile]: { ...extractProfileSnapshot(target), agents: updatedAgents },
|
|
1073
|
+
},
|
|
1074
|
+
};
|
|
929
1075
|
const changes = diffConfig(current, proposed);
|
|
930
1076
|
let catalog;
|
|
931
1077
|
let bindingValidations = [];
|
|
@@ -1021,8 +1167,10 @@ export async function runSetupBatch(options, dependencies = {}) {
|
|
|
1021
1167
|
};
|
|
1022
1168
|
}
|
|
1023
1169
|
const message = "Configuration saved.";
|
|
1024
|
-
|
|
1025
|
-
|
|
1170
|
+
const summarized = profile === undefined ? proposed : (proposed.profiles?.[profile] ?? proposed);
|
|
1171
|
+
if (!options.json) {
|
|
1172
|
+
writeLine(stderr, profile === undefined ? `saved: ${configSummary(summarized)}` : `saved profile "${profile}": ${configSummary(summarized)}`);
|
|
1173
|
+
}
|
|
1026
1174
|
return {
|
|
1027
1175
|
code: 0,
|
|
1028
1176
|
envelope: { proposta: proposed, validacoes: validations, mudancas: changes, resultado: { status: "applied", code: 0, saved: true, message } },
|
|
@@ -1038,6 +1186,8 @@ function commandTokens(opts, command) {
|
|
|
1038
1186
|
tokens.push("--json");
|
|
1039
1187
|
if (opts.dryRun)
|
|
1040
1188
|
tokens.push("--dry-run");
|
|
1189
|
+
if (typeof opts.profile === "string")
|
|
1190
|
+
tokens.push("--profile", opts.profile);
|
|
1041
1191
|
const binds = Array.isArray(opts.bind) ? opts.bind : opts.bind === undefined ? [] : [opts.bind];
|
|
1042
1192
|
for (const bind of binds) {
|
|
1043
1193
|
tokens.push("--bind");
|
|
@@ -1072,6 +1222,7 @@ export async function executeSetupAction(args, dependencies = {}) {
|
|
|
1072
1222
|
discoverModels: dependencies.wizardDiscoverModels,
|
|
1073
1223
|
save: dependencies.saveConfig,
|
|
1074
1224
|
isTTY: tty,
|
|
1225
|
+
...(parsed.options.profile === undefined ? {} : { profile: parsed.options.profile }),
|
|
1075
1226
|
});
|
|
1076
1227
|
return { code: 0 };
|
|
1077
1228
|
}
|
|
@@ -1090,6 +1241,7 @@ export function registerSetupCommand(program, dependencies = {}) {
|
|
|
1090
1241
|
.option("--non-interactive", "run setup without the picker")
|
|
1091
1242
|
.option("--json", "output one machine-readable envelope")
|
|
1092
1243
|
.option("--dry-run", "show the proposed config without writing it")
|
|
1244
|
+
.option("--profile <name>", "edit a saved profile instead of the active setup")
|
|
1093
1245
|
.option("--bind [binding]", "bind a role to a harness and model", (value, previous = []) => [...previous, value], [])
|
|
1094
1246
|
.action(async (opts, command) => {
|
|
1095
1247
|
const result = await executeSetupAction(commandTokens(opts, command), dependencies);
|