codedeck 0.1.9 → 0.3.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 +97 -1
- package/dist/cli/cli-name.js +20 -0
- package/dist/cli/cli-name.js.map +1 -0
- package/dist/cli/commands/claims.js +170 -0
- package/dist/cli/commands/claims.js.map +1 -0
- package/dist/cli/commands/doctor.js +22 -1
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/models.js +3 -3
- package/dist/cli/commands/models.js.map +1 -1
- package/dist/cli/commands/open.js +331 -0
- package/dist/cli/commands/open.js.map +1 -0
- package/dist/cli/commands/ps.js +260 -23
- package/dist/cli/commands/ps.js.map +1 -1
- package/dist/cli/commands/rename.js +29 -0
- package/dist/cli/commands/rename.js.map +1 -0
- package/dist/cli/commands/run.js +68 -30
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli/commands/setup.js +508 -0
- package/dist/cli/commands/setup.js.map +1 -0
- package/dist/cli/commands/usage.js +37 -0
- package/dist/cli/commands/usage.js.map +1 -0
- package/dist/cli/commands/wait.js +3 -2
- package/dist/cli/commands/wait.js.map +1 -1
- package/dist/cli/index.js +37 -21
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/picker-state.js +168 -0
- package/dist/cli/picker-state.js.map +1 -0
- package/dist/cli/picker.js +157 -0
- package/dist/cli/picker.js.map +1 -0
- package/dist/cli/ui.js +233 -0
- package/dist/cli/ui.js.map +1 -0
- package/dist/config/config.js +47 -0
- package/dist/config/config.js.map +1 -1
- package/dist/config/orchestrator-mode.js +72 -0
- package/dist/config/orchestrator-mode.js.map +1 -0
- package/dist/config/paths.js +8 -0
- package/dist/config/paths.js.map +1 -1
- package/dist/core/models.js +23 -4
- package/dist/core/models.js.map +1 -1
- package/dist/core/pricing.js +65 -0
- package/dist/core/pricing.js.map +1 -0
- package/dist/core/roles.js +83 -0
- package/dist/core/roles.js.map +1 -0
- package/dist/core/run-usage.js +46 -0
- package/dist/core/run-usage.js.map +1 -0
- package/dist/core/session.js +5 -0
- package/dist/core/session.js.map +1 -1
- package/dist/daemon/daemon.js +90 -3
- package/dist/daemon/daemon.js.map +1 -1
- package/dist/daemon/ipc.js +10 -3
- package/dist/daemon/ipc.js.map +1 -1
- package/dist/drivers/opencode/driver.js +1 -114
- package/dist/drivers/opencode/driver.js.map +1 -1
- package/dist/drivers/opencode/parser.js +86 -0
- package/dist/drivers/opencode/parser.js.map +1 -0
- package/dist/drivers/session-runtime.js +1 -0
- package/dist/drivers/session-runtime.js.map +1 -1
- package/dist/git/worktree.js +1 -1
- package/dist/git/worktree.js.map +1 -1
- package/dist/open/contract.js +104 -0
- package/dist/open/contract.js.map +1 -0
- package/dist/open/injection.js +59 -0
- package/dist/open/injection.js.map +1 -0
- package/dist/open/launchers/claude.js +212 -0
- package/dist/open/launchers/claude.js.map +1 -0
- package/dist/open/launchers/opencode.js +178 -0
- package/dist/open/launchers/opencode.js.map +1 -0
- package/dist/open/orchestrator-prose.js +12 -0
- package/dist/open/orchestrator-prose.js.map +1 -0
- package/dist/open/pty.js +281 -0
- package/dist/open/pty.js.map +1 -0
- package/dist/open/runtime.js +597 -0
- package/dist/open/runtime.js.map +1 -0
- package/dist/plugin/.claude-plugin/plugin.json +11 -0
- package/dist/plugin/agents/auditor.md +36 -0
- package/dist/plugin/agents/general.md +35 -0
- package/dist/plugin/agents/orchestrator-edit.md +69 -0
- package/dist/plugin/agents/orchestrator-read.md +69 -0
- package/dist/plugin/agents/orchestrator.md +91 -0
- package/dist/plugin/agents/reviewer.md +36 -0
- package/dist/plugin/commands/autonomous.md +58 -0
- package/dist/plugin/hooks/hooks.json +24 -0
- package/dist/plugin/hooks/session-id.sh +23 -0
- package/dist/plugin/hooks/session-name-lib.mjs +40 -0
- package/dist/plugin/hooks/session-name-worker.mjs +124 -0
- package/dist/plugin/hooks/session-name.mjs +66 -0
- package/dist/plugin/hooks/session-name.sh +7 -0
- package/dist/plugin/pty-shim.mjs +114 -0
- package/dist/plugin/statusline.sh +260 -0
- package/dist/plugin/themes/codedeck-rage.json +74 -0
- package/dist/plugin/themes/codedeck-ultra.json +76 -0
- package/dist/plugin/ultra.md +9 -0
- package/dist/store/claims.js +152 -0
- package/dist/store/claims.js.map +1 -0
- package/dist/store/database.js +14 -0
- package/dist/store/database.js.map +1 -1
- package/dist/store/sessions.js +17 -3
- package/dist/store/sessions.js.map +1 -1
- package/package.json +6 -4
package/dist/cli/ui.js
ADDED
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared terminal drawing for the launcher and the first-run wizard, so the
|
|
3
|
+
* two open with the same mark instead of each inventing one.
|
|
4
|
+
*/
|
|
5
|
+
import { hitCount, visibleItems } from "./picker-state.js";
|
|
6
|
+
// Box-drawing letters, every row exactly 24 columns wide. Kept as three
|
|
7
|
+
// separate strings rather than one template so an editor cannot reflow it.
|
|
8
|
+
export const LOGO = [
|
|
9
|
+
"╔═╗╔═╗╔╦╗╔═╗╔╦╗╔═╗╔═╗╦╔═",
|
|
10
|
+
"║ ║ ║║║║╠═ ║║║╠═ ║ ╠╩╗",
|
|
11
|
+
"╚═╝╚═╝═╩╝╚═╝═╩╝╚═╝╚═╝╩ ╩",
|
|
12
|
+
];
|
|
13
|
+
// The sign-off, same alphabet as the logo so the two ends of a session match.
|
|
14
|
+
const FAREWELL = [
|
|
15
|
+
"╔╗ ╦ ╦╔═╗",
|
|
16
|
+
"╠╩╗╚╦╝╠═ ",
|
|
17
|
+
"╚═╝ ╩ ╚═╝",
|
|
18
|
+
];
|
|
19
|
+
export const INDENT = " ";
|
|
20
|
+
/** The logo with an optional line of context under it. */
|
|
21
|
+
export function renderLogo(subtitle) {
|
|
22
|
+
const lines = LOGO.map((line) => `${INDENT}${line}`);
|
|
23
|
+
if (subtitle)
|
|
24
|
+
lines.push(`${INDENT}${subtitle}`);
|
|
25
|
+
return `\n${lines.join("\n")}\n`;
|
|
26
|
+
}
|
|
27
|
+
/** The same, for the way out. */
|
|
28
|
+
export function renderFarewell(subtitle) {
|
|
29
|
+
const lines = FAREWELL.map((line) => `${INDENT}${line}`);
|
|
30
|
+
if (subtitle)
|
|
31
|
+
lines.push(`${INDENT}${subtitle}`);
|
|
32
|
+
return `\n${lines.join("\n")}\n`;
|
|
33
|
+
}
|
|
34
|
+
const RESET = "\x1b[0m";
|
|
35
|
+
/**
|
|
36
|
+
* Color is a factory rather than an environment read, because the renderer has
|
|
37
|
+
* to stay pure: with color off in tests, visible width is string length.
|
|
38
|
+
*/
|
|
39
|
+
export function colors(enabled) {
|
|
40
|
+
const paint = (code) => (s) => (enabled ? `\x1b[${code}m${s}${RESET}` : s);
|
|
41
|
+
return { bold: paint("1"), dim: paint("2"), invert: paint("7") };
|
|
42
|
+
}
|
|
43
|
+
const ANSI = /\x1b\[[0-9;]*m/g;
|
|
44
|
+
/**
|
|
45
|
+
* Code points that take two terminal columns, and the marks that take none.
|
|
46
|
+
*
|
|
47
|
+
* Not a complete wcwidth: model ids are ASCII, and the only text here a user
|
|
48
|
+
* can steer is the filter line, so these cover what a paste realistically
|
|
49
|
+
* carries. Anything outside them counts as one column, which is what the whole
|
|
50
|
+
* function did before.
|
|
51
|
+
*/
|
|
52
|
+
const ZERO_WIDTH = [
|
|
53
|
+
[0x0300, 0x036f], // combining diacritics
|
|
54
|
+
[0x200b, 0x200f], // zero-width space through the direction marks
|
|
55
|
+
[0xfe00, 0xfe0f], // variation selectors
|
|
56
|
+
[0xfeff, 0xfeff],
|
|
57
|
+
[0xe0100, 0xe01ef],
|
|
58
|
+
];
|
|
59
|
+
const WIDE = [
|
|
60
|
+
[0x1100, 0x115f], // Hangul Jamo
|
|
61
|
+
[0x2e80, 0x303e], // CJK radicals through the symbol block
|
|
62
|
+
[0x3041, 0x33ff],
|
|
63
|
+
[0x3400, 0x4dbf],
|
|
64
|
+
[0x4e00, 0x9fff], // unified ideographs
|
|
65
|
+
[0xa000, 0xa4cf], // Yi
|
|
66
|
+
[0xac00, 0xd7a3], // Hangul syllables
|
|
67
|
+
[0xf900, 0xfaff],
|
|
68
|
+
[0xfe30, 0xfe6f],
|
|
69
|
+
[0xff00, 0xff60], // fullwidth forms
|
|
70
|
+
[0xffe0, 0xffe6],
|
|
71
|
+
[0x1f300, 0x1faff], // emoji
|
|
72
|
+
[0x20000, 0x3fffd],
|
|
73
|
+
];
|
|
74
|
+
function inRanges(cp, ranges) {
|
|
75
|
+
return ranges.some(([lo, hi]) => cp >= lo && cp <= hi);
|
|
76
|
+
}
|
|
77
|
+
function charWidth(cp) {
|
|
78
|
+
if (inRanges(cp, ZERO_WIDTH))
|
|
79
|
+
return 0;
|
|
80
|
+
return inRanges(cp, WIDE) ? 2 : 1;
|
|
81
|
+
}
|
|
82
|
+
/** Terminal columns the text occupies, ignoring the escapes that paint it. */
|
|
83
|
+
export function visibleWidth(text) {
|
|
84
|
+
let width = 0;
|
|
85
|
+
for (const char of text.replace(ANSI, ""))
|
|
86
|
+
width += charWidth(char.codePointAt(0));
|
|
87
|
+
return width;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Cuts by terminal columns and closes any escape it left open, otherwise the
|
|
91
|
+
* color bleeds into the rest of the line.
|
|
92
|
+
*
|
|
93
|
+
* Walking code points rather than UTF-16 units matters twice over. Cutting
|
|
94
|
+
* mid-pair emitted a lone surrogate, which is not valid UTF-8 on the wire. And
|
|
95
|
+
* a two-column character counted as one let the line outgrow the terminal,
|
|
96
|
+
* which wraps it, and then the redraw walks up fewer lines than it printed and
|
|
97
|
+
* leaves the difference on screen.
|
|
98
|
+
*/
|
|
99
|
+
export function truncate(text, width) {
|
|
100
|
+
if (width <= 0)
|
|
101
|
+
return "";
|
|
102
|
+
if (visibleWidth(text) <= width)
|
|
103
|
+
return text;
|
|
104
|
+
let out = "";
|
|
105
|
+
let seen = 0;
|
|
106
|
+
let painted = false;
|
|
107
|
+
for (let i = 0; i < text.length;) {
|
|
108
|
+
ANSI.lastIndex = i;
|
|
109
|
+
const match = ANSI.exec(text);
|
|
110
|
+
if (match && match.index === i) {
|
|
111
|
+
out += match[0];
|
|
112
|
+
painted = match[0] !== RESET;
|
|
113
|
+
i += match[0].length;
|
|
114
|
+
continue;
|
|
115
|
+
}
|
|
116
|
+
const char = String.fromCodePoint(text.codePointAt(i));
|
|
117
|
+
const cost = charWidth(char.codePointAt(0));
|
|
118
|
+
// A wide character with one column left is dropped whole. Emitting it is
|
|
119
|
+
// what pushes the line past the edge.
|
|
120
|
+
if (seen + cost > width)
|
|
121
|
+
break;
|
|
122
|
+
out += char;
|
|
123
|
+
seen += cost;
|
|
124
|
+
i += char.length;
|
|
125
|
+
}
|
|
126
|
+
return painted ? `${out}${RESET}` : out;
|
|
127
|
+
}
|
|
128
|
+
const FALLBACK = { rows: 24, columns: 80 };
|
|
129
|
+
/**
|
|
130
|
+
* `0` and `undefined` mean the same thing here: a terminal that did not report
|
|
131
|
+
* its size. `??` would take `0` for an answer and collapse the layout, and
|
|
132
|
+
* `Math.max(3, undefined - 9)` is NaN.
|
|
133
|
+
*/
|
|
134
|
+
export function readDimensions(stdout) {
|
|
135
|
+
return {
|
|
136
|
+
rows: stdout.rows || FALLBACK.rows,
|
|
137
|
+
columns: stdout.columns || FALLBACK.columns,
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
/** Below this the logo costs more rows than it is worth. */
|
|
141
|
+
const LOGO_MIN_ROWS = 15;
|
|
142
|
+
function drawsLogo(dim) {
|
|
143
|
+
return dim.rows >= LOGO_MIN_ROWS;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Counted, not a constant: error and description lines and the logo only exist
|
|
147
|
+
* sometimes, and a wrong constant here silently cuts items off the list.
|
|
148
|
+
*/
|
|
149
|
+
export function chromeHeight(state, dim) {
|
|
150
|
+
const logo = drawsLogo(dim) ? LOGO.length + 1 : 0;
|
|
151
|
+
const header = 1;
|
|
152
|
+
const error = state.screen.error ? 1 : 0;
|
|
153
|
+
const description = state.screen.description?.length ?? 0;
|
|
154
|
+
const filterLine = 1;
|
|
155
|
+
const footer = 1;
|
|
156
|
+
// One: the blank above the filter. The logo brings its own, already counted.
|
|
157
|
+
const blank = 1;
|
|
158
|
+
return logo + header + error + description + filterLine + footer + blank;
|
|
159
|
+
}
|
|
160
|
+
const PLAIN = colors(false);
|
|
161
|
+
/**
|
|
162
|
+
* The item rows and how many items they cover. One walk answers both because
|
|
163
|
+
* the group headers take rows too: budgeting by item alone grew the frame past
|
|
164
|
+
* the terminal, and the redraw then moved the cursor up by fewer lines than it
|
|
165
|
+
* had just printed.
|
|
166
|
+
*/
|
|
167
|
+
function itemBlock(state, dim, c) {
|
|
168
|
+
const items = visibleItems(state);
|
|
169
|
+
const filtering = state.filter.trim().length > 0;
|
|
170
|
+
const budget = Math.max(1, dim.rows - chromeHeight(state, dim));
|
|
171
|
+
const lines = [];
|
|
172
|
+
let shown = 0;
|
|
173
|
+
let lastGroup;
|
|
174
|
+
for (let i = state.offset; i < items.length && lines.length < budget; i++) {
|
|
175
|
+
const item = items[i];
|
|
176
|
+
// Headers are dead weight once a filter is on, so the provider moves to the
|
|
177
|
+
// end of each row instead.
|
|
178
|
+
const group = !filtering && item.group && item.group !== lastGroup && !(state.screen.pinned && i === 0)
|
|
179
|
+
? item.group
|
|
180
|
+
: undefined;
|
|
181
|
+
if (group) {
|
|
182
|
+
lastGroup = group;
|
|
183
|
+
// The header is the first thing to drop on a short terminal: a list with
|
|
184
|
+
// no items reads worse than one with no group labels.
|
|
185
|
+
if (lines.length + 2 <= budget) {
|
|
186
|
+
const count = state.screen.items.filter((candidate) => candidate.group === group).length;
|
|
187
|
+
lines.push(groupHeader(group, count, dim.columns));
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
const marker = i === state.cursor ? "› " : " ";
|
|
191
|
+
const trailer = filtering ? item.group : item.note;
|
|
192
|
+
const suffix = trailer ? ` ${c.dim(trailer)}` : "";
|
|
193
|
+
lines.push(`${INDENT}${marker}${item.label}${suffix}`);
|
|
194
|
+
shown += 1;
|
|
195
|
+
}
|
|
196
|
+
return { lines, shown };
|
|
197
|
+
}
|
|
198
|
+
export function viewportHeight(state, dim) {
|
|
199
|
+
return Math.max(1, itemBlock(state, dim, PLAIN).shown);
|
|
200
|
+
}
|
|
201
|
+
function groupHeader(group, count, width) {
|
|
202
|
+
const label = ` ${group} `;
|
|
203
|
+
const tail = ` ${count} `;
|
|
204
|
+
const room = Math.max(0, width - INDENT.length - label.length - tail.length - 4);
|
|
205
|
+
return `${INDENT}--${label}${"-".repeat(room)}${tail}--`;
|
|
206
|
+
}
|
|
207
|
+
export function renderFrame(state, dim, c) {
|
|
208
|
+
const width = dim.columns;
|
|
209
|
+
const lines = [];
|
|
210
|
+
if (drawsLogo(dim)) {
|
|
211
|
+
for (const row of LOGO)
|
|
212
|
+
lines.push(`${INDENT}${row}`);
|
|
213
|
+
lines.push("");
|
|
214
|
+
}
|
|
215
|
+
lines.push(`${INDENT}${c.bold(`${state.screen.title} ~ ${state.screen.counter}`)}`);
|
|
216
|
+
if (state.screen.error)
|
|
217
|
+
lines.push(`${INDENT}${c.dim(state.screen.error)}`);
|
|
218
|
+
for (const line of state.screen.description ?? [])
|
|
219
|
+
lines.push(`${INDENT}${c.dim(line)}`);
|
|
220
|
+
lines.push("");
|
|
221
|
+
lines.push(`${INDENT}filtrar: ${state.filter}`);
|
|
222
|
+
const filtering = state.filter.trim().length > 0;
|
|
223
|
+
for (const line of itemBlock(state, dim, c).lines)
|
|
224
|
+
lines.push(line);
|
|
225
|
+
const footer = state.confirming
|
|
226
|
+
? `"${state.confirming}" nao esta no catalogo. Enter de novo grava assim mesmo, ^G volta`
|
|
227
|
+
: filtering
|
|
228
|
+
? `${hitCount(state)} de ${state.screen.items.length} move ^ v Enter escolhe ^G pula ^C sai`
|
|
229
|
+
: `move ^ v Enter escolhe ^G pula ^C sai`;
|
|
230
|
+
lines.push(`${INDENT}${c.dim(footer)}`);
|
|
231
|
+
return lines.map((line) => truncate(line, width));
|
|
232
|
+
}
|
|
233
|
+
//# sourceMappingURL=ui.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/cli/ui.ts"],"names":[],"mappings":"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"}
|
package/dist/config/config.js
CHANGED
|
@@ -1,9 +1,56 @@
|
|
|
1
1
|
import fs from "node:fs";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import { getPaths } from "./paths.js";
|
|
4
|
+
import { isAgentId } from "../core/session.js";
|
|
5
|
+
import { parseSandbox } from "../core/driver.js";
|
|
6
|
+
export { BALANCED_PRESET, DISPATCHER_PRESET, EXPLORER_PRESET, ORCHESTRATOR_PRESETS, isOrchestratorMode, orchestratorModeLabel, resolveOrchestratorMode, } from "./orchestrator-mode.js";
|
|
7
|
+
/**
|
|
8
|
+
* A saved binding is only usable whole. A half-written entry (a harness with
|
|
9
|
+
* no model, or the reverse) resolves to nothing rather than to a guess, so the
|
|
10
|
+
* caller falls back the same way it would for a role nobody configured.
|
|
11
|
+
*
|
|
12
|
+
* The file is JSON someone can edit, and the cast in `loadConfig` believes
|
|
13
|
+
* whatever it finds, so the harness is checked against the four CodeDeck
|
|
14
|
+
* drives. Without that, `{"harness":"wat"}` reached the daemon as an agent id
|
|
15
|
+
* and died there instead of falling back here.
|
|
16
|
+
*/
|
|
17
|
+
export function resolveRoleBinding(role, config = {}) {
|
|
18
|
+
if (role === undefined)
|
|
19
|
+
return undefined;
|
|
20
|
+
const binding = config.agents?.[role];
|
|
21
|
+
if (!binding || !isAgentId(binding.harness))
|
|
22
|
+
return undefined;
|
|
23
|
+
if (typeof binding.model !== "string" || binding.model.trim() === "")
|
|
24
|
+
return undefined;
|
|
25
|
+
return { harness: binding.harness, model: binding.model };
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Resolve the model passed to a driver without making driver defaults part of
|
|
29
|
+
* CodeDeck's config. An undefined result lets the selected driver choose its
|
|
30
|
+
* own default.
|
|
31
|
+
*/
|
|
32
|
+
export function resolveModel(agent, explicit, config = {}) {
|
|
33
|
+
return explicit ?? config.models?.[agent] ?? config.defaultModel;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Resolve a hand-edited sandbox value without allowing an invalid value to
|
|
37
|
+
* reach a driver. An invalid value is treated as absent, so the driver keeps
|
|
38
|
+
* its own fallback.
|
|
39
|
+
*/
|
|
40
|
+
export function resolveDefaultSandbox(config = {}) {
|
|
41
|
+
try {
|
|
42
|
+
const value = config?.defaultSandbox;
|
|
43
|
+
return typeof value === "string" ? parseSandbox(value) : undefined;
|
|
44
|
+
}
|
|
45
|
+
catch {
|
|
46
|
+
return undefined;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
4
49
|
const DEFAULT_CONFIG = {
|
|
5
50
|
defaultAgent: "claude",
|
|
6
51
|
worktree: false,
|
|
52
|
+
remoteControl: true,
|
|
53
|
+
pty: true,
|
|
7
54
|
};
|
|
8
55
|
export function loadConfig() {
|
|
9
56
|
const { configFile } = getPaths();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
export const DISPATCHER_PRESET = Object.freeze({
|
|
2
|
+
investigate: "none",
|
|
3
|
+
selfWork: "none",
|
|
4
|
+
tools: "dispatch",
|
|
5
|
+
});
|
|
6
|
+
export const BALANCED_PRESET = Object.freeze({
|
|
7
|
+
investigate: "read",
|
|
8
|
+
selfWork: "trivial",
|
|
9
|
+
tools: "edit",
|
|
10
|
+
});
|
|
11
|
+
export const EXPLORER_PRESET = Object.freeze({
|
|
12
|
+
investigate: "free",
|
|
13
|
+
selfWork: "small",
|
|
14
|
+
tools: "edit",
|
|
15
|
+
});
|
|
16
|
+
export const ORCHESTRATOR_PRESETS = Object.freeze({
|
|
17
|
+
dispatcher: DISPATCHER_PRESET,
|
|
18
|
+
balanced: BALANCED_PRESET,
|
|
19
|
+
explorer: EXPLORER_PRESET,
|
|
20
|
+
});
|
|
21
|
+
const INVESTIGATE_MODES = ["none", "read", "free"];
|
|
22
|
+
const SELF_WORK_MODES = ["none", "trivial", "small"];
|
|
23
|
+
const ORCHESTRATOR_TOOLS = ["dispatch", "read", "edit"];
|
|
24
|
+
function hasOwn(value, property) {
|
|
25
|
+
return Object.prototype.hasOwnProperty.call(value, property);
|
|
26
|
+
}
|
|
27
|
+
export function isOrchestratorMode(value) {
|
|
28
|
+
if (typeof value !== "object" || value === null || Array.isArray(value))
|
|
29
|
+
return false;
|
|
30
|
+
const candidate = value;
|
|
31
|
+
if (!INVESTIGATE_MODES.includes(candidate.investigate))
|
|
32
|
+
return false;
|
|
33
|
+
if (!SELF_WORK_MODES.includes(candidate.selfWork))
|
|
34
|
+
return false;
|
|
35
|
+
if (!ORCHESTRATOR_TOOLS.includes(candidate.tools))
|
|
36
|
+
return false;
|
|
37
|
+
if (!hasOwn(candidate, "parallelism"))
|
|
38
|
+
return true;
|
|
39
|
+
return typeof candidate.parallelism === "number" && Number.isFinite(candidate.parallelism) && candidate.parallelism > 0;
|
|
40
|
+
}
|
|
41
|
+
function copyMode(mode) {
|
|
42
|
+
return {
|
|
43
|
+
investigate: mode.investigate,
|
|
44
|
+
selfWork: mode.selfWork,
|
|
45
|
+
tools: mode.tools,
|
|
46
|
+
...(hasOwn(mode, "parallelism") ? { parallelism: mode.parallelism } : {}),
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
export function resolveOrchestratorMode(config = {}) {
|
|
50
|
+
const configured = config.orchestrator;
|
|
51
|
+
if (!isOrchestratorMode(configured))
|
|
52
|
+
return copyMode(DISPATCHER_PRESET);
|
|
53
|
+
return copyMode(configured);
|
|
54
|
+
}
|
|
55
|
+
function matchesPreset(mode, preset) {
|
|
56
|
+
const sameParallelism = hasOwn(mode, "parallelism") === hasOwn(preset, "parallelism") &&
|
|
57
|
+
(!hasOwn(mode, "parallelism") || mode.parallelism === preset.parallelism);
|
|
58
|
+
return (mode.investigate === preset.investigate &&
|
|
59
|
+
mode.selfWork === preset.selfWork &&
|
|
60
|
+
mode.tools === preset.tools &&
|
|
61
|
+
sameParallelism);
|
|
62
|
+
}
|
|
63
|
+
export function orchestratorModeLabel(mode) {
|
|
64
|
+
if (matchesPreset(mode, DISPATCHER_PRESET))
|
|
65
|
+
return "dispatcher";
|
|
66
|
+
if (matchesPreset(mode, BALANCED_PRESET))
|
|
67
|
+
return "balanced";
|
|
68
|
+
if (matchesPreset(mode, EXPLORER_PRESET))
|
|
69
|
+
return "explorer";
|
|
70
|
+
return "custom";
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=orchestrator-mode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orchestrator-mode.js","sourceRoot":"","sources":["../../src/config/orchestrator-mode.ts"],"names":[],"mappings":"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"}
|
package/dist/config/paths.js
CHANGED
|
@@ -32,6 +32,11 @@ export function getPaths() {
|
|
|
32
32
|
logsDir: path.join(base, "logs"),
|
|
33
33
|
worktreesDir: path.join(base, "worktrees"),
|
|
34
34
|
cacheDir: path.join(base, "cache"),
|
|
35
|
+
// Per-session scratch: the session id a hook reports, and the name it
|
|
36
|
+
// derives from the first prompt. It lives here rather than in the shared
|
|
37
|
+
// temp directory because `open` types what it finds there into a live
|
|
38
|
+
// session, and on Linux anyone on the box can write to /tmp.
|
|
39
|
+
sessionsDir: path.join(base, "sessions"),
|
|
35
40
|
modelsCache: path.join(base, "cache", "models.json"),
|
|
36
41
|
configFile: path.join(configBase, "config.json"),
|
|
37
42
|
};
|
|
@@ -41,5 +46,8 @@ export function ensureDirs() {
|
|
|
41
46
|
for (const dir of [p.base, p.logsDir, p.worktreesDir, p.cacheDir, path.dirname(p.configFile)]) {
|
|
42
47
|
fs.mkdirSync(dir, { recursive: true });
|
|
43
48
|
}
|
|
49
|
+
// Narrower than the rest on purpose: what lands here is typed into a
|
|
50
|
+
// session, so only its owner may put anything in it.
|
|
51
|
+
fs.mkdirSync(p.sessionsDir, { recursive: true, mode: 0o700 });
|
|
44
52
|
}
|
|
45
53
|
//# sourceMappingURL=paths.js.map
|
package/dist/config/paths.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/config/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,MAAM,UAAU,UAAU;IACxB,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,qCAAqC;IACrC,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IAChE,mEAAmE;IACnE,wCAAwC;IACxC,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,YAAY,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;IAC9E,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IACxC,IAAI,GAAG;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAC5C,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,QAAQ;IACtB,MAAM,IAAI,GAAG,cAAc,EAAE,CAAC;IAC9B,MAAM,UAAU,GAAG,YAAY,EAAE,CAAC;IAClC,OAAO;QACL,IAAI;QACJ,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC;QACnC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC;QAC1C,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC;QACxC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC;QACxC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC;QAChC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC;QAC1C,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC;QAClC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,aAAa,CAAC;QACpD,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC;KACjD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,MAAM,CAAC,GAAG,QAAQ,EAAE,CAAC;IACrB,KAAK,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;QAC9F,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;
|
|
1
|
+
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/config/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,MAAM,UAAU,UAAU;IACxB,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,qCAAqC;IACrC,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IAChE,mEAAmE;IACnE,wCAAwC;IACxC,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,YAAY,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;IAC9E,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IACxC,IAAI,GAAG;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAC5C,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,QAAQ;IACtB,MAAM,IAAI,GAAG,cAAc,EAAE,CAAC;IAC9B,MAAM,UAAU,GAAG,YAAY,EAAE,CAAC;IAClC,OAAO;QACL,IAAI;QACJ,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC;QACnC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC;QAC1C,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC;QACxC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC;QACxC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC;QAChC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC;QAC1C,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC;QAClC,sEAAsE;QACtE,yEAAyE;QACzE,sEAAsE;QACtE,6DAA6D;QAC7D,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC;QACxC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,aAAa,CAAC;QACpD,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC;KACjD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,MAAM,CAAC,GAAG,QAAQ,EAAE,CAAC;IACrB,KAAK,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;QAC9F,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;IACD,qEAAqE;IACrE,qDAAqD;IACrD,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAChE,CAAC"}
|
package/dist/core/models.js
CHANGED
|
@@ -135,6 +135,18 @@ export function levenshtein(a, b) {
|
|
|
135
135
|
}
|
|
136
136
|
return matrix[al][bl];
|
|
137
137
|
}
|
|
138
|
+
/**
|
|
139
|
+
* A harness groups its models by provider, and every caller that wants to look
|
|
140
|
+
* one up has to walk both levels first. `open`, `run` and `setup` each did that
|
|
141
|
+
* walk themselves.
|
|
142
|
+
*/
|
|
143
|
+
export function flattenModels(harness) {
|
|
144
|
+
return harness.providers.flatMap((provider) => provider.models);
|
|
145
|
+
}
|
|
146
|
+
/** Every string a user could reasonably type to mean one of these models. */
|
|
147
|
+
export function modelNames(harness) {
|
|
148
|
+
return flattenModels(harness).flatMap((model) => [model.id, ...(model.aliases ?? [])]);
|
|
149
|
+
}
|
|
138
150
|
export function findClosestModel(query, candidates) {
|
|
139
151
|
if (!query || candidates.length === 0)
|
|
140
152
|
return undefined;
|
|
@@ -157,9 +169,6 @@ export function findClosestModel(query, candidates) {
|
|
|
157
169
|
}
|
|
158
170
|
}
|
|
159
171
|
}
|
|
160
|
-
if (bestSubMatch !== undefined) {
|
|
161
|
-
return bestSubMatch;
|
|
162
|
-
}
|
|
163
172
|
// 3. Fuzzy Levenshtein match
|
|
164
173
|
let bestFuzzyMatch;
|
|
165
174
|
let minDistance = Infinity;
|
|
@@ -172,6 +181,16 @@ export function findClosestModel(query, candidates) {
|
|
|
172
181
|
bestFuzzyMatch = candidate;
|
|
173
182
|
}
|
|
174
183
|
}
|
|
175
|
-
|
|
184
|
+
// A substring hit is not automatically the better answer. "claude-opus-4-9"
|
|
185
|
+
// contains "opus", so returning on the substring pass suggested the alias and
|
|
186
|
+
// never even looked at "claude-opus-4-8", one character away. Both passes are
|
|
187
|
+
// kept because each catches what the other misses: the substring pass reaches
|
|
188
|
+
// matches the distance threshold rejects as too long, such as "Sonnet" for
|
|
189
|
+
// "claude-sonnet-5".
|
|
190
|
+
if (bestSubMatch === undefined)
|
|
191
|
+
return bestFuzzyMatch;
|
|
192
|
+
if (bestFuzzyMatch === undefined)
|
|
193
|
+
return bestSubMatch;
|
|
194
|
+
return minDistance < levenshtein(q, bestSubMatch.toLowerCase()) ? bestFuzzyMatch : bestSubMatch;
|
|
176
195
|
}
|
|
177
196
|
//# sourceMappingURL=models.js.map
|
package/dist/core/models.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/core/models.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/core/models.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Static prices are USD per 1,000,000 tokens. Keep this table versioned with
|
|
3
|
+
* the code. Models discovered at runtime but absent here deliberately have no
|
|
4
|
+
* fallback price and therefore produce null from computeSessionCost().
|
|
5
|
+
*/
|
|
6
|
+
export const MODEL_PRICES = {
|
|
7
|
+
// Codex models currently named by CodeDeck. These ids are specific to the
|
|
8
|
+
// installed Codex catalog, so the values are placeholders. TODO: ajustar preço.
|
|
9
|
+
"gpt-5": { input: 1, output: 5, cached: 0.5 },
|
|
10
|
+
"gpt-5.5": { input: 1, output: 5 },
|
|
11
|
+
"gpt-5.6-luna": { input: 1, output: 5 },
|
|
12
|
+
"gpt-5.7": { input: 1, output: 5 },
|
|
13
|
+
"meta/muse-spark-1.3-contributor": { input: 0.1, output: 0.2, cached: 0.002 },
|
|
14
|
+
"openrouter/z-ai/glm-5.3-flash": { input: 0.075, output: 0.25, cached: 0.015 },
|
|
15
|
+
"openai-codex/gpt-5.6-luna": { input: 1, output: 5 },
|
|
16
|
+
// Claude's current CodeDeck default and model examples. Claude normally
|
|
17
|
+
// reports its own cost, but these entries keep the fallback table complete.
|
|
18
|
+
// TODO: ajustar preço for these model ids if their catalog prices change.
|
|
19
|
+
"claude-opus-4-8": { input: 15, output: 75 },
|
|
20
|
+
"claude-opus-5": { input: 15, output: 75 },
|
|
21
|
+
"claude-sonnet-4-6": { input: 3, output: 15 },
|
|
22
|
+
"claude-sonnet-5": { input: 3, output: 15 },
|
|
23
|
+
"claude-haiku-4-5": { input: 0.8, output: 4 },
|
|
24
|
+
};
|
|
25
|
+
function isFiniteNumber(value) {
|
|
26
|
+
return typeof value === "number" && Number.isFinite(value);
|
|
27
|
+
}
|
|
28
|
+
function isValidTokenCount(value) {
|
|
29
|
+
return value === undefined || (isFiniteNumber(value) && value >= 0);
|
|
30
|
+
}
|
|
31
|
+
function isUsablePrice(price) {
|
|
32
|
+
return (isFiniteNumber(price.input) &&
|
|
33
|
+
price.input >= 0 &&
|
|
34
|
+
isFiniteNumber(price.output) &&
|
|
35
|
+
price.output >= 0 &&
|
|
36
|
+
(price.cached === undefined || (isFiniteNumber(price.cached) && price.cached >= 0)));
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Returns a reported cost when one exists, otherwise calculates a static-table
|
|
40
|
+
* estimate. Cached tokens use the input price unless the model declares its
|
|
41
|
+
* own cached price. Invalid or unknown data has no known cost and returns null.
|
|
42
|
+
*/
|
|
43
|
+
export function computeSessionCost({ model, usage, reportedCost, }) {
|
|
44
|
+
if (isFiniteNumber(reportedCost) && reportedCost < 0)
|
|
45
|
+
return null;
|
|
46
|
+
// Zero is a valid reported cost and must win over every table entry.
|
|
47
|
+
if (isFiniteNumber(reportedCost) && reportedCost >= 0)
|
|
48
|
+
return reportedCost;
|
|
49
|
+
const price = model === undefined || model === null ? undefined : MODEL_PRICES[model];
|
|
50
|
+
if (!price || !isUsablePrice(price))
|
|
51
|
+
return null;
|
|
52
|
+
const inputTokens = usage?.inputTokens ?? 0;
|
|
53
|
+
const outputTokens = usage?.outputTokens ?? 0;
|
|
54
|
+
const cachedTokens = usage?.cachedTokens ?? 0;
|
|
55
|
+
if (!isValidTokenCount(inputTokens) ||
|
|
56
|
+
!isValidTokenCount(outputTokens) ||
|
|
57
|
+
!isValidTokenCount(cachedTokens)) {
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
const cachedPrice = price.cached ?? price.input;
|
|
61
|
+
return (inputTokens * price.input +
|
|
62
|
+
outputTokens * price.output +
|
|
63
|
+
cachedTokens * cachedPrice) / 1_000_000;
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=pricing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pricing.js","sourceRoot":"","sources":["../../src/core/pricing.ts"],"names":[],"mappings":"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"}
|