@kenkaiiii/gg-boss 4.3.139 → 4.3.141
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/dist/chunk-3EWLK53W.js +93117 -0
- package/dist/chunk-3EWLK53W.js.map +1 -0
- package/dist/chunk-QT366Y52.js +358 -0
- package/dist/chunk-QT366Y52.js.map +1 -0
- package/dist/chunk-WJ4S4TOY.js +2305 -0
- package/dist/chunk-WJ4S4TOY.js.map +1 -0
- package/dist/chunk-YNWFCUMR.js +57 -0
- package/dist/chunk-YNWFCUMR.js.map +1 -0
- package/dist/cli.js +2246 -182
- package/dist/cli.js.map +1 -1
- package/dist/devtools-4TI4D7F2.js +3739 -0
- package/dist/devtools-4TI4D7F2.js.map +1 -0
- package/dist/dist-VXOVSHZ5.js +44276 -0
- package/dist/dist-VXOVSHZ5.js.map +1 -0
- package/dist/ignore-76P4EAAU.js +465 -0
- package/dist/ignore-76P4EAAU.js.map +1 -0
- package/dist/index.js +21 -4
- package/dist/index.js.map +1 -1
- package/dist/out-XEXARMKS.js +5644 -0
- package/dist/out-XEXARMKS.js.map +1 -0
- package/dist/pixel-WPYTQADG.js +14 -0
- package/dist/pixel-WPYTQADG.js.map +1 -0
- package/dist/pixel-fix-4WGZAJ5W.js +941 -0
- package/dist/pixel-fix-4WGZAJ5W.js.map +1 -0
- package/package.json +11 -15
- package/dist/audio.d.ts +0 -21
- package/dist/audio.d.ts.map +0 -1
- package/dist/audio.js +0 -231
- package/dist/audio.js.map +0 -1
- package/dist/audio.test.d.ts +0 -2
- package/dist/audio.test.d.ts.map +0 -1
- package/dist/audio.test.js +0 -13
- package/dist/audio.test.js.map +0 -1
- package/dist/auto-update.d.ts +0 -24
- package/dist/auto-update.d.ts.map +0 -1
- package/dist/auto-update.js +0 -231
- package/dist/auto-update.js.map +0 -1
- package/dist/banner.d.ts +0 -17
- package/dist/banner.d.ts.map +0 -1
- package/dist/banner.js +0 -25
- package/dist/banner.js.map +0 -1
- package/dist/boot-banner.d.ts +0 -15
- package/dist/boot-banner.d.ts.map +0 -1
- package/dist/boot-banner.js +0 -61
- package/dist/boot-banner.js.map +0 -1
- package/dist/boss-footer.d.ts +0 -25
- package/dist/boss-footer.d.ts.map +0 -1
- package/dist/boss-footer.js +0 -107
- package/dist/boss-footer.js.map +0 -1
- package/dist/boss-phrases.d.ts +0 -9
- package/dist/boss-phrases.d.ts.map +0 -1
- package/dist/boss-phrases.js +0 -71
- package/dist/boss-phrases.js.map +0 -1
- package/dist/boss-store.d.ts +0 -245
- package/dist/boss-store.d.ts.map +0 -1
- package/dist/boss-store.js +0 -623
- package/dist/boss-store.js.map +0 -1
- package/dist/boss-system-prompt.d.ts +0 -3
- package/dist/boss-system-prompt.d.ts.map +0 -1
- package/dist/boss-system-prompt.js +0 -180
- package/dist/boss-system-prompt.js.map +0 -1
- package/dist/boss-tasks-overlay.d.ts +0 -22
- package/dist/boss-tasks-overlay.d.ts.map +0 -1
- package/dist/boss-tasks-overlay.js +0 -157
- package/dist/boss-tasks-overlay.js.map +0 -1
- package/dist/branding.d.ts +0 -32
- package/dist/branding.d.ts.map +0 -1
- package/dist/branding.js +0 -59
- package/dist/branding.js.map +0 -1
- package/dist/cli.d.ts +0 -3
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.smoke.test.d.ts +0 -2
- package/dist/cli.smoke.test.d.ts.map +0 -1
- package/dist/cli.smoke.test.js +0 -48
- package/dist/cli.smoke.test.js.map +0 -1
- package/dist/colors.d.ts +0 -14
- package/dist/colors.d.ts.map +0 -1
- package/dist/colors.js +0 -31
- package/dist/colors.js.map +0 -1
- package/dist/discover.d.ts +0 -13
- package/dist/discover.d.ts.map +0 -1
- package/dist/discover.js +0 -92
- package/dist/discover.js.map +0 -1
- package/dist/event-queue.d.ts +0 -16
- package/dist/event-queue.d.ts.map +0 -1
- package/dist/event-queue.js +0 -39
- package/dist/event-queue.js.map +0 -1
- package/dist/index.d.ts +0 -6
- package/dist/index.d.ts.map +0 -1
- package/dist/link-command.d.ts +0 -2
- package/dist/link-command.d.ts.map +0 -1
- package/dist/link-command.js +0 -120
- package/dist/link-command.js.map +0 -1
- package/dist/links.d.ts +0 -11
- package/dist/links.d.ts.map +0 -1
- package/dist/links.js +0 -22
- package/dist/links.js.map +0 -1
- package/dist/logger.d.ts +0 -41
- package/dist/logger.d.ts.map +0 -1
- package/dist/logger.js +0 -112
- package/dist/logger.js.map +0 -1
- package/dist/orchestrator-app.d.ts +0 -15
- package/dist/orchestrator-app.d.ts.map +0 -1
- package/dist/orchestrator-app.js +0 -599
- package/dist/orchestrator-app.js.map +0 -1
- package/dist/orchestrator.d.ts +0 -147
- package/dist/orchestrator.d.ts.map +0 -1
- package/dist/orchestrator.js +0 -707
- package/dist/orchestrator.js.map +0 -1
- package/dist/orchestrator.test.d.ts +0 -2
- package/dist/orchestrator.test.d.ts.map +0 -1
- package/dist/orchestrator.test.js +0 -55
- package/dist/orchestrator.test.js.map +0 -1
- package/dist/radio-picker.d.ts +0 -20
- package/dist/radio-picker.d.ts.map +0 -1
- package/dist/radio-picker.js +0 -31
- package/dist/radio-picker.js.map +0 -1
- package/dist/radio.d.ts +0 -43
- package/dist/radio.d.ts.map +0 -1
- package/dist/radio.js +0 -150
- package/dist/radio.js.map +0 -1
- package/dist/sessions.d.ts +0 -21
- package/dist/sessions.d.ts.map +0 -1
- package/dist/sessions.js +0 -122
- package/dist/sessions.js.map +0 -1
- package/dist/settings.d.ts +0 -11
- package/dist/settings.d.ts.map +0 -1
- package/dist/settings.js +0 -38
- package/dist/settings.js.map +0 -1
- package/dist/slash-commands.d.ts +0 -19
- package/dist/slash-commands.d.ts.map +0 -1
- package/dist/slash-commands.js +0 -76
- package/dist/slash-commands.js.map +0 -1
- package/dist/splash.d.ts +0 -21
- package/dist/splash.d.ts.map +0 -1
- package/dist/splash.js +0 -137
- package/dist/splash.js.map +0 -1
- package/dist/task-tools.d.ts +0 -18
- package/dist/task-tools.d.ts.map +0 -1
- package/dist/task-tools.js +0 -172
- package/dist/task-tools.js.map +0 -1
- package/dist/tasks-store.d.ts +0 -66
- package/dist/tasks-store.d.ts.map +0 -1
- package/dist/tasks-store.js +0 -199
- package/dist/tasks-store.js.map +0 -1
- package/dist/tasks-store.test.d.ts +0 -2
- package/dist/tasks-store.test.d.ts.map +0 -1
- package/dist/tasks-store.test.js +0 -138
- package/dist/tasks-store.test.js.map +0 -1
- package/dist/tool-formatters.d.ts +0 -7
- package/dist/tool-formatters.d.ts.map +0 -1
- package/dist/tool-formatters.js +0 -111
- package/dist/tool-formatters.js.map +0 -1
- package/dist/tools.d.ts +0 -26
- package/dist/tools.d.ts.map +0 -1
- package/dist/tools.js +0 -133
- package/dist/tools.js.map +0 -1
- package/dist/types.d.ts +0 -32
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -2
- package/dist/types.js.map +0 -1
- package/dist/worker.d.ts +0 -47
- package/dist/worker.d.ts.map +0 -1
- package/dist/worker.js +0 -123
- package/dist/worker.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auto-update.d.ts","sourceRoot":"","sources":["../src/auto-update.ts"],"names":[],"mappings":"AAmIA;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAiCxE;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,cAAc,EAAE,MAAM,GAAG;IAAE,aAAa,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CASzF;AAwBD;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAClC,IAAI,CAwBN;AAED,wBAAgB,uBAAuB,IAAI,IAAI,CAK9C"}
|
package/dist/auto-update.js
DELETED
|
@@ -1,231 +0,0 @@
|
|
|
1
|
-
import { spawn } from "node:child_process";
|
|
2
|
-
import fs from "node:fs";
|
|
3
|
-
import path from "node:path";
|
|
4
|
-
import os from "node:os";
|
|
5
|
-
/**
|
|
6
|
-
* gg-boss auto-update — mirrors ggcoder's pattern (packages/ggcoder/src/core/
|
|
7
|
-
* auto-update.ts) but pinned to @kenkaiiii/gg-boss and with its own state
|
|
8
|
-
* file under ~/.gg/boss/ so it can't fight with ggcoder's checker.
|
|
9
|
-
*
|
|
10
|
-
* Two-phase strategy:
|
|
11
|
-
* - Phase 1 (instant, blocking): if a previous run found a newer version,
|
|
12
|
-
* spawn `npm i -g @kenkaiiii/gg-boss@latest` (or pnpm/yarn equivalent)
|
|
13
|
-
* in a detached child. Takes effect on the user's NEXT launch.
|
|
14
|
-
* - Phase 2 (async, non-blocking): hit the npm registry to compare versions
|
|
15
|
-
* so the next startup knows if there's anything to install. Throttled to
|
|
16
|
-
* once an hour per state-file timestamp.
|
|
17
|
-
*
|
|
18
|
-
* Plus a periodic in-session check so a user who never restarts still gets
|
|
19
|
-
* notified when a new version drops.
|
|
20
|
-
*/
|
|
21
|
-
const PACKAGE_NAME = "@kenkaiiii/gg-boss";
|
|
22
|
-
const REGISTRY_URL = `https://registry.npmjs.org/${PACKAGE_NAME}/latest`;
|
|
23
|
-
const CHECK_INTERVAL_MS = 60 * 60 * 1000; // 1 hour
|
|
24
|
-
const FETCH_TIMEOUT_MS = 10_000;
|
|
25
|
-
var PackageManager;
|
|
26
|
-
(function (PackageManager) {
|
|
27
|
-
PackageManager["NPM"] = "npm";
|
|
28
|
-
PackageManager["PNPM"] = "pnpm";
|
|
29
|
-
PackageManager["YARN"] = "yarn";
|
|
30
|
-
PackageManager["UNKNOWN"] = "unknown";
|
|
31
|
-
})(PackageManager || (PackageManager = {}));
|
|
32
|
-
function getStateFilePath() {
|
|
33
|
-
return path.join(os.homedir(), ".gg", "boss", "update-state.json");
|
|
34
|
-
}
|
|
35
|
-
function readState() {
|
|
36
|
-
try {
|
|
37
|
-
const raw = fs.readFileSync(getStateFilePath(), "utf-8");
|
|
38
|
-
return JSON.parse(raw);
|
|
39
|
-
}
|
|
40
|
-
catch {
|
|
41
|
-
return null;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
function writeState(state) {
|
|
45
|
-
try {
|
|
46
|
-
const dir = path.dirname(getStateFilePath());
|
|
47
|
-
fs.mkdirSync(dir, { recursive: true, mode: 0o700 });
|
|
48
|
-
fs.writeFileSync(getStateFilePath(), JSON.stringify(state));
|
|
49
|
-
}
|
|
50
|
-
catch {
|
|
51
|
-
// Non-fatal — we'll just retry next launch.
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
function compareVersions(a, b) {
|
|
55
|
-
const pa = a.split(".").map(Number);
|
|
56
|
-
const pb = b.split(".").map(Number);
|
|
57
|
-
for (let i = 0; i < 3; i++) {
|
|
58
|
-
const diff = (pa[i] ?? 0) - (pb[i] ?? 0);
|
|
59
|
-
if (diff !== 0)
|
|
60
|
-
return diff;
|
|
61
|
-
}
|
|
62
|
-
return 0;
|
|
63
|
-
}
|
|
64
|
-
function detectInstallInfo() {
|
|
65
|
-
const scriptPath = (process.argv[1] ?? "").replace(/\\/g, "/");
|
|
66
|
-
// npx invocations are ephemeral — never auto-update.
|
|
67
|
-
if (scriptPath.includes("/_npx/")) {
|
|
68
|
-
return { packageManager: PackageManager.UNKNOWN, updateCommand: null };
|
|
69
|
-
}
|
|
70
|
-
if (scriptPath.includes("/.pnpm") || scriptPath.includes("/pnpm/global")) {
|
|
71
|
-
return {
|
|
72
|
-
packageManager: PackageManager.PNPM,
|
|
73
|
-
updateCommand: `pnpm add -g ${PACKAGE_NAME}@latest`,
|
|
74
|
-
};
|
|
75
|
-
}
|
|
76
|
-
if (scriptPath.includes("/.yarn/") || scriptPath.includes("/yarn/global")) {
|
|
77
|
-
return {
|
|
78
|
-
packageManager: PackageManager.YARN,
|
|
79
|
-
updateCommand: `yarn global add ${PACKAGE_NAME}@latest`,
|
|
80
|
-
};
|
|
81
|
-
}
|
|
82
|
-
return {
|
|
83
|
-
packageManager: PackageManager.NPM,
|
|
84
|
-
updateCommand: `npm install -g ${PACKAGE_NAME}@latest`,
|
|
85
|
-
};
|
|
86
|
-
}
|
|
87
|
-
async function fetchLatestVersion() {
|
|
88
|
-
try {
|
|
89
|
-
const controller = new AbortController();
|
|
90
|
-
const timeout = setTimeout(() => controller.abort(), FETCH_TIMEOUT_MS);
|
|
91
|
-
const response = await fetch(REGISTRY_URL, { signal: controller.signal });
|
|
92
|
-
clearTimeout(timeout);
|
|
93
|
-
const data = (await response.json());
|
|
94
|
-
const version = data.version?.trim();
|
|
95
|
-
return version && /^\d+\.\d+\.\d+/.test(version) ? version : null;
|
|
96
|
-
}
|
|
97
|
-
catch {
|
|
98
|
-
return null;
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
function performUpdateInBackground(command) {
|
|
102
|
-
try {
|
|
103
|
-
const parts = command.split(" ");
|
|
104
|
-
const child = spawn(parts[0], parts.slice(1), {
|
|
105
|
-
detached: true,
|
|
106
|
-
stdio: "ignore",
|
|
107
|
-
env: { ...process.env, npm_config_loglevel: "silent" },
|
|
108
|
-
});
|
|
109
|
-
child.unref();
|
|
110
|
-
}
|
|
111
|
-
catch {
|
|
112
|
-
// Non-fatal — the next launch will try again.
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
/**
|
|
116
|
-
* Called on CLI startup. If the previous run flagged a newer version, kicks
|
|
117
|
-
* off `npm i -g` in the background and returns a one-line "installing…"
|
|
118
|
-
* message for the caller to print. Always also schedules a fresh registry
|
|
119
|
-
* check (rate-limited) so the next startup has up-to-date info.
|
|
120
|
-
*/
|
|
121
|
-
export function checkAndAutoUpdate(currentVersion) {
|
|
122
|
-
try {
|
|
123
|
-
const state = readState();
|
|
124
|
-
let message = null;
|
|
125
|
-
// Phase 1: install if a previous check found something newer.
|
|
126
|
-
if (state?.updatePending && state.latestVersion) {
|
|
127
|
-
if (compareVersions(state.latestVersion, currentVersion) > 0) {
|
|
128
|
-
const info = detectInstallInfo();
|
|
129
|
-
if (info.updateCommand) {
|
|
130
|
-
performUpdateInBackground(info.updateCommand);
|
|
131
|
-
message = `Ken just shipped ${state.latestVersion}! Installing in the background — takes effect next launch.`;
|
|
132
|
-
writeState({
|
|
133
|
-
...state,
|
|
134
|
-
lastCheckedAt: Date.now(),
|
|
135
|
-
updatePending: false,
|
|
136
|
-
lastUpdateAttempt: Date.now(),
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
else {
|
|
141
|
-
// Already on latest (user updated manually) — clear the pending flag.
|
|
142
|
-
writeState({ ...state, updatePending: false });
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
// Phase 2: schedule a fresh check, throttled.
|
|
146
|
-
const shouldCheck = !state || Date.now() - state.lastCheckedAt > CHECK_INTERVAL_MS;
|
|
147
|
-
if (shouldCheck)
|
|
148
|
-
scheduleBackgroundCheck(currentVersion);
|
|
149
|
-
return message;
|
|
150
|
-
}
|
|
151
|
-
catch {
|
|
152
|
-
return null;
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
/**
|
|
156
|
-
* Synchronous TUI getter — reads the state file and returns the pending
|
|
157
|
-
* update info (if any). Drives the "✨ Update ready" indicator in the
|
|
158
|
-
* worker bar so users know to restart.
|
|
159
|
-
*/
|
|
160
|
-
export function getPendingUpdate(currentVersion) {
|
|
161
|
-
try {
|
|
162
|
-
const state = readState();
|
|
163
|
-
if (!state?.latestVersion)
|
|
164
|
-
return null;
|
|
165
|
-
if (compareVersions(state.latestVersion, currentVersion) <= 0)
|
|
166
|
-
return null;
|
|
167
|
-
return { latestVersion: state.latestVersion };
|
|
168
|
-
}
|
|
169
|
-
catch {
|
|
170
|
-
return null;
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
function scheduleBackgroundCheck(currentVersion) {
|
|
174
|
-
fetchLatestVersion()
|
|
175
|
-
.then((latestVersion) => {
|
|
176
|
-
const newState = {
|
|
177
|
-
lastCheckedAt: Date.now(),
|
|
178
|
-
latestVersion: latestVersion ?? undefined,
|
|
179
|
-
updatePending: false,
|
|
180
|
-
};
|
|
181
|
-
if (latestVersion && compareVersions(latestVersion, currentVersion) > 0) {
|
|
182
|
-
newState.updatePending = true;
|
|
183
|
-
}
|
|
184
|
-
writeState(newState);
|
|
185
|
-
})
|
|
186
|
-
.catch(() => {
|
|
187
|
-
// Non-fatal — we'll try again next launch.
|
|
188
|
-
});
|
|
189
|
-
}
|
|
190
|
-
// ── In-session periodic check ──────────────────────────────
|
|
191
|
-
let periodicTimer = null;
|
|
192
|
-
/**
|
|
193
|
-
* Start a long-running session timer that pings npm hourly. If a newer
|
|
194
|
-
* version is found, calls `onUpdate(message)` with a friendly notification
|
|
195
|
-
* and stops further checks (no point pinging again — restart is needed).
|
|
196
|
-
* The timer is unref'd so it doesn't keep the process alive on its own.
|
|
197
|
-
*/
|
|
198
|
-
export function startPeriodicUpdateCheck(currentVersion, onUpdate) {
|
|
199
|
-
if (periodicTimer)
|
|
200
|
-
return;
|
|
201
|
-
periodicTimer = setInterval(() => {
|
|
202
|
-
fetchLatestVersion()
|
|
203
|
-
.then((latestVersion) => {
|
|
204
|
-
if (!latestVersion)
|
|
205
|
-
return;
|
|
206
|
-
if (compareVersions(latestVersion, currentVersion) <= 0)
|
|
207
|
-
return;
|
|
208
|
-
const info = detectInstallInfo();
|
|
209
|
-
if (!info.updateCommand)
|
|
210
|
-
return;
|
|
211
|
-
writeState({
|
|
212
|
-
lastCheckedAt: Date.now(),
|
|
213
|
-
latestVersion,
|
|
214
|
-
updatePending: true,
|
|
215
|
-
});
|
|
216
|
-
onUpdate(`Ken just pushed a fresh update — ${currentVersion} → ${latestVersion}! Restart ggboss to grab it (or run ${info.updateCommand} if you can't wait).`);
|
|
217
|
-
stopPeriodicUpdateCheck();
|
|
218
|
-
})
|
|
219
|
-
.catch(() => {
|
|
220
|
-
// Non-fatal.
|
|
221
|
-
});
|
|
222
|
-
}, CHECK_INTERVAL_MS);
|
|
223
|
-
periodicTimer.unref();
|
|
224
|
-
}
|
|
225
|
-
export function stopPeriodicUpdateCheck() {
|
|
226
|
-
if (periodicTimer) {
|
|
227
|
-
clearInterval(periodicTimer);
|
|
228
|
-
periodicTimer = null;
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
//# sourceMappingURL=auto-update.js.map
|
package/dist/auto-update.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auto-update.js","sourceRoot":"","sources":["../src/auto-update.ts"],"names":[],"mappings":"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"}
|
package/dist/banner.d.ts
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
interface BossBannerProps {
|
|
3
|
-
/** Second line text (e.g. "Link projects", "Orchestrator"). */
|
|
4
|
-
subtitle: string;
|
|
5
|
-
/** Third line text (e.g. "↑↓ navigate · enter save"). */
|
|
6
|
-
hint?: string;
|
|
7
|
-
/**
|
|
8
|
-
* If true, show the standard chat-mode shortcut row (Ctrl+T tasks). Mirrors
|
|
9
|
-
* ggcoder's banner where the third row advertises ^T / ^S / ^P. Override
|
|
10
|
-
* with `hint` for non-chat banners (link picker, task overlay).
|
|
11
|
-
*/
|
|
12
|
-
showShortcuts?: boolean;
|
|
13
|
-
}
|
|
14
|
-
/** Ink banner — for use inside Ink-rendered screens. */
|
|
15
|
-
export declare function BossBanner({ subtitle, hint, showShortcuts }: BossBannerProps): React.ReactElement;
|
|
16
|
-
export {};
|
|
17
|
-
//# sourceMappingURL=banner.d.ts.map
|
package/dist/banner.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"banner.d.ts","sourceRoot":"","sources":["../src/banner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,UAAU,eAAe;IACvB,+DAA+D;IAC/D,QAAQ,EAAE,MAAM,CAAC;IACjB,yDAAyD;IACzD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,wDAAwD;AACxD,wBAAgB,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,eAAe,GAAG,KAAK,CAAC,YAAY,CA2CjG"}
|
package/dist/banner.js
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import React from "react";
|
|
3
|
-
import { Box, Text } from "ink";
|
|
4
|
-
import { AUTHOR, BRAND, COLORS, GRADIENT, LOGO_GAP, LOGO_LINES, VERSION } from "./branding.js";
|
|
5
|
-
/** Ink banner — for use inside Ink-rendered screens. */
|
|
6
|
-
export function BossBanner({ subtitle, hint, showShortcuts }) {
|
|
7
|
-
return (_jsxs(Box, { flexDirection: "column", marginTop: 1, marginBottom: 1, children: [_jsxs(Box, { children: [_jsx(GradientText, { text: LOGO_LINES[0] }), _jsx(Text, { children: LOGO_GAP }), _jsx(Text, { color: COLORS.primary, bold: true, children: BRAND }), _jsxs(Text, { color: COLORS.textDim, children: [" v", VERSION] }), _jsx(Text, { color: COLORS.textDim, children: " \u00B7 By " }), _jsx(Text, { color: COLORS.text, bold: true, children: AUTHOR })] }), _jsxs(Box, { children: [_jsx(GradientText, { text: LOGO_LINES[1] }), _jsx(Text, { children: LOGO_GAP }), _jsx(Text, { color: COLORS.accent, children: subtitle })] }), _jsxs(Box, { children: [_jsx(GradientText, { text: LOGO_LINES[2] }), _jsx(Text, { children: LOGO_GAP }), showShortcuts ? (_jsxs(Text, { children: [_jsx(Text, { color: COLORS.primary, children: "^T" }), _jsx(Text, { color: COLORS.textDim, children: " tasks" }), _jsx(Text, { color: COLORS.textDim, children: " " }), _jsx(Text, { color: COLORS.primary, children: "Tab" }), _jsx(Text, { color: COLORS.textDim, children: " scope" }), _jsx(Text, { color: COLORS.textDim, children: " " }), _jsx(Text, { color: COLORS.primary, children: "\u21E7Tab" }), _jsx(Text, { color: COLORS.textDim, children: " thinking" }), _jsx(Text, { color: COLORS.textDim, children: " " }), _jsx(Text, { color: COLORS.primary, children: "ESC" }), _jsx(Text, { color: COLORS.textDim, children: " interrupt" })] })) : (_jsx(Text, { color: COLORS.textDim, children: hint ?? "" }))] })] }));
|
|
8
|
-
}
|
|
9
|
-
function GradientText({ text }) {
|
|
10
|
-
const chars = [];
|
|
11
|
-
let colorIdx = 0;
|
|
12
|
-
for (let i = 0; i < text.length; i++) {
|
|
13
|
-
const ch = text[i];
|
|
14
|
-
if (ch === " ") {
|
|
15
|
-
chars.push(ch);
|
|
16
|
-
}
|
|
17
|
-
else {
|
|
18
|
-
const color = GRADIENT[colorIdx % GRADIENT.length];
|
|
19
|
-
chars.push(_jsx(Text, { color: color, children: ch }, i));
|
|
20
|
-
colorIdx++;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
return _jsx(Text, { children: chars });
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=banner.js.map
|
package/dist/banner.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"banner.js","sourceRoot":"","sources":["../src/banner.tsx"],"names":[],"mappings":"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"}
|
package/dist/boot-banner.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
export interface BootBannerOptions {
|
|
2
|
-
subtitle: string;
|
|
3
|
-
bossModel: string;
|
|
4
|
-
workerModel: string;
|
|
5
|
-
}
|
|
6
|
-
/** Print the GG Boss boot banner to stdout. Clears screen first. */
|
|
7
|
-
export declare function printBootBanner(opts: BootBannerOptions): void;
|
|
8
|
-
/** Print the project list under the banner. */
|
|
9
|
-
export declare function printProjectList(projects: {
|
|
10
|
-
name: string;
|
|
11
|
-
cwd: string;
|
|
12
|
-
}[]): void;
|
|
13
|
-
export declare function printReady(workerCount: number): void;
|
|
14
|
-
export declare function printShutdown(): void;
|
|
15
|
-
//# sourceMappingURL=boot-banner.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"boot-banner.d.ts","sourceRoot":"","sources":["../src/boot-banner.ts"],"names":[],"mappings":"AA2BA,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,oEAAoE;AACpE,wBAAgB,eAAe,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI,CAoB7D;AAED,+CAA+C;AAC/C,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EAAE,GAAG,IAAI,CAYhF;AAED,wBAAgB,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAiBpD;AAED,wBAAgB,aAAa,IAAI,IAAI,CAEpC"}
|
package/dist/boot-banner.js
DELETED
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import chalk from "chalk";
|
|
2
|
-
import { AUTHOR, BRAND, COLORS, GRADIENT, LOGO_GAP, LOGO_LINES, VERSION, clearScreen, } from "./branding.js";
|
|
3
|
-
function gradientText(text) {
|
|
4
|
-
let result = "";
|
|
5
|
-
let colorIdx = 0;
|
|
6
|
-
for (const ch of text) {
|
|
7
|
-
if (ch === " ") {
|
|
8
|
-
result += ch;
|
|
9
|
-
}
|
|
10
|
-
else {
|
|
11
|
-
const color = GRADIENT[colorIdx % GRADIENT.length];
|
|
12
|
-
result += chalk.hex(color)(ch);
|
|
13
|
-
colorIdx++;
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
return result;
|
|
17
|
-
}
|
|
18
|
-
/** Print the GG Boss boot banner to stdout. Clears screen first. */
|
|
19
|
-
export function printBootBanner(opts) {
|
|
20
|
-
clearScreen();
|
|
21
|
-
process.stdout.write("\n");
|
|
22
|
-
process.stdout.write(` ${gradientText(LOGO_LINES[0])}${LOGO_GAP}` +
|
|
23
|
-
chalk.hex(COLORS.primary).bold(BRAND) +
|
|
24
|
-
chalk.hex(COLORS.textDim)(` v${VERSION}`) +
|
|
25
|
-
chalk.hex(COLORS.textDim)(" · By ") +
|
|
26
|
-
chalk.hex(COLORS.text).bold(AUTHOR) +
|
|
27
|
-
"\n");
|
|
28
|
-
process.stdout.write(` ${gradientText(LOGO_LINES[1])}${LOGO_GAP}` + chalk.hex(COLORS.accent)(opts.subtitle) + "\n");
|
|
29
|
-
process.stdout.write(` ${gradientText(LOGO_LINES[2])}${LOGO_GAP}` +
|
|
30
|
-
chalk.hex(COLORS.textDim)(`Boss ${opts.bossModel} · Workers ${opts.workerModel}`) +
|
|
31
|
-
"\n");
|
|
32
|
-
process.stdout.write("\n");
|
|
33
|
-
}
|
|
34
|
-
/** Print the project list under the banner. */
|
|
35
|
-
export function printProjectList(projects) {
|
|
36
|
-
for (const p of projects) {
|
|
37
|
-
const home = process.env.HOME ?? "";
|
|
38
|
-
const display = home && p.cwd.startsWith(home) ? "~" + p.cwd.slice(home.length) : p.cwd;
|
|
39
|
-
process.stdout.write(" " +
|
|
40
|
-
chalk.hex(COLORS.primary)(p.name.padEnd(20)) +
|
|
41
|
-
chalk.hex(COLORS.textDim)(display) +
|
|
42
|
-
"\n");
|
|
43
|
-
}
|
|
44
|
-
process.stdout.write("\n");
|
|
45
|
-
}
|
|
46
|
-
export function printReady(workerCount) {
|
|
47
|
-
process.stdout.write(chalk.hex(COLORS.success)(" Ready. ") +
|
|
48
|
-
chalk.hex(COLORS.textDim)(`${workerCount} worker${workerCount === 1 ? "" : "s"} initialized.`) +
|
|
49
|
-
"\n");
|
|
50
|
-
process.stdout.write("\n");
|
|
51
|
-
process.stdout.write(chalk.hex(COLORS.textDim)(" :quit ") +
|
|
52
|
-
chalk.hex(COLORS.textDim)("exit") +
|
|
53
|
-
chalk.hex(COLORS.textDim)(" Ctrl+C ") +
|
|
54
|
-
chalk.hex(COLORS.textDim)("interrupt") +
|
|
55
|
-
"\n");
|
|
56
|
-
process.stdout.write("\n");
|
|
57
|
-
}
|
|
58
|
-
export function printShutdown() {
|
|
59
|
-
process.stdout.write("\n" + chalk.hex(COLORS.textDim)("Shutting down...") + "\n");
|
|
60
|
-
}
|
|
61
|
-
//# sourceMappingURL=boot-banner.js.map
|
package/dist/boot-banner.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"boot-banner.js","sourceRoot":"","sources":["../src/boot-banner.ts"],"names":[],"mappings":"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"}
|
package/dist/boss-footer.d.ts
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
interface BossFooterProps {
|
|
3
|
-
bossModel: string;
|
|
4
|
-
workerModel: string;
|
|
5
|
-
/** Total input tokens of the boss's last turn — drives the context bar. */
|
|
6
|
-
tokensIn: number;
|
|
7
|
-
exitPending: boolean;
|
|
8
|
-
/** Boss extended-thinking level. Falsy when thinking is off. */
|
|
9
|
-
bossThinkingLevel?: string;
|
|
10
|
-
/** Auto-updater has installed a newer @kenkaiiii/gg-boss in the background.
|
|
11
|
-
* Show a "restart to apply" hint at the end of the footer row. */
|
|
12
|
-
updatePending?: boolean;
|
|
13
|
-
/** id of the currently-playing radio station (from RADIO_STATIONS), or null
|
|
14
|
-
* when the radio is off. Renders as `♪ <short name>` between thinking and
|
|
15
|
-
* the update notice. */
|
|
16
|
-
currentRadioStationId?: string | null;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Footer for gg-boss that mirrors ggcoder's Footer visual style — context bar
|
|
20
|
-
* with partial-block precision, percent, then BOTH models displayed in the
|
|
21
|
-
* same bold/coloured treatment so neither feels secondary.
|
|
22
|
-
*/
|
|
23
|
-
export declare function BossFooter({ bossModel, workerModel, tokensIn, exitPending, bossThinkingLevel, updatePending, currentRadioStationId, }: BossFooterProps): React.ReactElement;
|
|
24
|
-
export {};
|
|
25
|
-
//# sourceMappingURL=boss-footer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"boss-footer.d.ts","sourceRoot":"","sources":["../src/boss-footer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAgC1B,UAAU,eAAe;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,2EAA2E;IAC3E,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,gEAAgE;IAChE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;uEACmE;IACnE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;6BAEyB;IACzB,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvC;AAaD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,EACzB,SAAS,EACT,WAAW,EACX,QAAQ,EACR,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,qBAAqB,GACtB,EAAE,eAAe,GAAG,KAAK,CAAC,YAAY,CA6HtC"}
|
package/dist/boss-footer.js
DELETED
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import React from "react";
|
|
3
|
-
import { Text, Box } from "ink";
|
|
4
|
-
import { useTheme } from "@kenkaiiii/ggcoder/ui/theme";
|
|
5
|
-
import { useTerminalSize } from "@kenkaiiii/ggcoder/ui/hooks/terminal-size";
|
|
6
|
-
import { getContextWindow } from "@kenkaiiii/ggcoder";
|
|
7
|
-
import { COLORS } from "./branding.js";
|
|
8
|
-
const PARTIAL_BLOCKS = [" ", "▏", "▎", "▍", "▌", "▋", "▊", "▉", "█"];
|
|
9
|
-
const LIGHT_SHADE = "░";
|
|
10
|
-
const SHORT_MODELS = {
|
|
11
|
-
"claude-opus-4-7": "Opus",
|
|
12
|
-
"claude-sonnet-4-6": "Sonnet",
|
|
13
|
-
"claude-haiku-4-5": "Haiku",
|
|
14
|
-
"claude-haiku-4-5-20251001": "Haiku",
|
|
15
|
-
"gpt-5.5": "GPT-5.5",
|
|
16
|
-
"gpt-5.5-pro": "GPT-5.5 Pro",
|
|
17
|
-
"gpt-5.4": "GPT-5.4",
|
|
18
|
-
"gpt-5.4-mini": "GPT-5.4 Mini",
|
|
19
|
-
"gpt-5.3-codex": "GPT-5.3 Codex",
|
|
20
|
-
};
|
|
21
|
-
function shortModel(model) {
|
|
22
|
-
return SHORT_MODELS[model] ?? model;
|
|
23
|
-
}
|
|
24
|
-
function getContextPercent(model, tokensIn) {
|
|
25
|
-
const limit = getContextWindow(model);
|
|
26
|
-
if (!limit || tokensIn === 0)
|
|
27
|
-
return 0;
|
|
28
|
-
return Math.round((tokensIn / limit) * 100);
|
|
29
|
-
}
|
|
30
|
-
// Short, recognisable station names for the footer slot. The picker shows the
|
|
31
|
-
// full name; here we just want enough to tell stations apart without eating
|
|
32
|
-
// column budget. Order matters: more-frequent first because pattern matching
|
|
33
|
-
// in the renderer is cheap-but-still-O(n).
|
|
34
|
-
const SHORT_RADIO = {
|
|
35
|
-
"somafm-groove-salad": "Groove Salad",
|
|
36
|
-
"somafm-drone-zone": "Drone Zone",
|
|
37
|
-
"radio-paradise": "Radio Paradise",
|
|
38
|
-
"george-fm": "George FM",
|
|
39
|
-
};
|
|
40
|
-
/**
|
|
41
|
-
* Footer for gg-boss that mirrors ggcoder's Footer visual style — context bar
|
|
42
|
-
* with partial-block precision, percent, then BOTH models displayed in the
|
|
43
|
-
* same bold/coloured treatment so neither feels secondary.
|
|
44
|
-
*/
|
|
45
|
-
export function BossFooter({ bossModel, workerModel, tokensIn, exitPending, bossThinkingLevel, updatePending, currentRadioStationId, }) {
|
|
46
|
-
const theme = useTheme();
|
|
47
|
-
const { columns } = useTerminalSize();
|
|
48
|
-
if (exitPending) {
|
|
49
|
-
return (_jsx(Box, { paddingX: 1, children: _jsx(Text, { color: theme.warning, children: "Press Ctrl+C again to exit" }) }));
|
|
50
|
-
}
|
|
51
|
-
const contextPct = getContextPercent(bossModel, tokensIn);
|
|
52
|
-
const contextColor = contextPct >= 80 ? theme.error : contextPct >= 50 ? theme.warning : theme.success;
|
|
53
|
-
const sep = _jsx(Text, { color: theme.border, children: " │ " });
|
|
54
|
-
// Context bar — same partial-block precision as ggcoder's Footer.
|
|
55
|
-
const barWidth = 8;
|
|
56
|
-
const fillFloat = Math.min((contextPct / 100) * barWidth, barWidth);
|
|
57
|
-
const barChars = [];
|
|
58
|
-
for (let i = 0; i < barWidth; i++) {
|
|
59
|
-
const cellFill = Math.max(0, Math.min(1, fillFloat - i));
|
|
60
|
-
const eighths = Math.round(cellFill * 8);
|
|
61
|
-
if (eighths === 8) {
|
|
62
|
-
barChars.push(_jsx(Text, { color: contextColor, children: PARTIAL_BLOCKS[8] }, i));
|
|
63
|
-
}
|
|
64
|
-
else if (eighths > 0) {
|
|
65
|
-
barChars.push(_jsx(Text, { color: contextColor, children: PARTIAL_BLOCKS[eighths] }, i));
|
|
66
|
-
}
|
|
67
|
-
else {
|
|
68
|
-
barChars.push(_jsx(Text, { color: theme.textDim, children: LIGHT_SHADE }, i));
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
// Priority-drop layout: when terminal is narrower than the full footer
|
|
72
|
-
// would need, we shed lower-priority chrome to keep the row from wrapping.
|
|
73
|
-
// Ranked highest-to-lowest priority:
|
|
74
|
-
// 1. context bar + % — always visible (essential)
|
|
75
|
-
// 2. update notice — actionable; user needs to know
|
|
76
|
-
// 3. radio — visible state of an audio process they started
|
|
77
|
-
// 4. boss/worker model names — frequent reference, but stable
|
|
78
|
-
// 5. thinking indicator — least chatty, easiest to hide first
|
|
79
|
-
// 6. "boss "/"workers " text labels — pure decoration
|
|
80
|
-
//
|
|
81
|
-
// Approximate per-section widths (with separator " │ "):
|
|
82
|
-
// bar+% = ~12, model = ~5+name+3 sep, thinking = ~14, radio ≈ ♪+name+3,
|
|
83
|
-
// update = ~30. We compute and degrade in stages.
|
|
84
|
-
const radioName = currentRadioStationId
|
|
85
|
-
? (SHORT_RADIO[currentRadioStationId] ?? currentRadioStationId)
|
|
86
|
-
: null;
|
|
87
|
-
const bossM = shortModel(bossModel);
|
|
88
|
-
const wkrM = shortModel(workerModel);
|
|
89
|
-
// Rough char estimate; padding=2, separators are " │ " (3 each).
|
|
90
|
-
const estFull = 2 +
|
|
91
|
-
12 + // bar + " 99%"
|
|
92
|
-
3 +
|
|
93
|
-
5 +
|
|
94
|
-
bossM.length + // " │ boss <model>"
|
|
95
|
-
3 +
|
|
96
|
-
8 +
|
|
97
|
-
wkrM.length + // " │ workers <model>"
|
|
98
|
-
3 +
|
|
99
|
-
12 + // " │ Thinking off"
|
|
100
|
-
(radioName ? 3 + 2 + radioName.length : 0) + // " │ ♪ Name"
|
|
101
|
-
(updatePending ? 3 + 28 : 0); // " │ Update ready. Restart GG Boss."
|
|
102
|
-
const dropLabels = estFull > columns; // stage 1: kill "boss "/"workers " words
|
|
103
|
-
const dropThinking = estFull > columns + 14; // stage 2: kill thinking indicator
|
|
104
|
-
const useShortUpdate = updatePending && estFull > columns + 6; // stage 3: shrink the update notice
|
|
105
|
-
return (_jsxs(Box, { paddingX: 1, width: columns, children: [_jsx(Box, { flexGrow: 1 }), _jsxs(Box, { flexShrink: 0, children: [_jsx(Text, { children: barChars }), _jsxs(Text, { color: contextColor, children: [" ", contextPct, "%"] }), sep, !dropLabels && _jsx(Text, { color: theme.textDim, children: "boss " }), _jsx(Text, { color: COLORS.primary, bold: true, children: bossM }), sep, !dropLabels && _jsx(Text, { color: theme.textDim, children: "workers " }), _jsx(Text, { color: COLORS.accent, bold: true, children: wkrM }), !dropThinking && (_jsxs(_Fragment, { children: [sep, _jsx(Text, { color: bossThinkingLevel ? theme.accent : theme.textDim, children: bossThinkingLevel ? "Thinking on" : "Thinking off" })] })), radioName && (_jsxs(_Fragment, { children: [sep, _jsxs(Text, { color: theme.secondary ?? theme.accent, children: ["\u266A ", radioName] })] })), updatePending && (_jsxs(_Fragment, { children: [sep, _jsx(Text, { color: theme.success, bold: true, wrap: "truncate", children: useShortUpdate ? "Update ready" : "Update ready. Restart GG Boss." })] }))] })] }));
|
|
106
|
-
}
|
|
107
|
-
//# sourceMappingURL=boss-footer.js.map
|
package/dist/boss-footer.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"boss-footer.js","sourceRoot":"","sources":["../src/boss-footer.tsx"],"names":[],"mappings":"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"}
|
package/dist/boss-phrases.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { ActivityPhase } from "@kenkaiiii/ggcoder/ui";
|
|
2
|
-
/**
|
|
3
|
-
* Boss-themed phrase library for the activity indicator. Replaces ggcoder's
|
|
4
|
-
* coder-flavored phrases ("Cogitating", "Sleuthing", etc.) with vocabulary
|
|
5
|
-
* that fits an orchestrator role — managing, dispatching, reviewing — so the
|
|
6
|
-
* spinner reads as "the boss is at work" not "the boss is writing code".
|
|
7
|
-
*/
|
|
8
|
-
export declare const BOSS_PHRASES: Record<ActivityPhase, string[]>;
|
|
9
|
-
//# sourceMappingURL=boss-phrases.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"boss-phrases.d.ts","sourceRoot":"","sources":["../src/boss-phrases.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D;;;;;GAKG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,EAAE,CAoExD,CAAC"}
|
package/dist/boss-phrases.js
DELETED
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Boss-themed phrase library for the activity indicator. Replaces ggcoder's
|
|
3
|
-
* coder-flavored phrases ("Cogitating", "Sleuthing", etc.) with vocabulary
|
|
4
|
-
* that fits an orchestrator role — managing, dispatching, reviewing — so the
|
|
5
|
-
* spinner reads as "the boss is at work" not "the boss is writing code".
|
|
6
|
-
*/
|
|
7
|
-
export const BOSS_PHRASES = {
|
|
8
|
-
// Generic between-states fallback. Probably never shown but keep for safety.
|
|
9
|
-
idle: ["Standing by", "Waiting for orders", "On call"],
|
|
10
|
-
// Boss has issued a request, waiting for the LLM to begin streaming.
|
|
11
|
-
waiting: [
|
|
12
|
-
"Briefing",
|
|
13
|
-
"Reviewing the room",
|
|
14
|
-
"Triaging",
|
|
15
|
-
"Lining up the brief",
|
|
16
|
-
"Surveying projects",
|
|
17
|
-
"Reading the room",
|
|
18
|
-
"Picking the right hand",
|
|
19
|
-
"Marshalling thoughts",
|
|
20
|
-
"Checking the board",
|
|
21
|
-
"Sizing up the work",
|
|
22
|
-
],
|
|
23
|
-
// LLM is mid-thinking-block (extended reasoning).
|
|
24
|
-
thinking: [
|
|
25
|
-
"Strategising",
|
|
26
|
-
"Plotting next move",
|
|
27
|
-
"Weighing options",
|
|
28
|
-
"Reasoning",
|
|
29
|
-
"Deliberating",
|
|
30
|
-
"Thinking it through",
|
|
31
|
-
"Mapping the play",
|
|
32
|
-
"Considering angles",
|
|
33
|
-
"Calculating odds",
|
|
34
|
-
"Drafting the call",
|
|
35
|
-
],
|
|
36
|
-
// LLM is streaming text — boss is forming its dispatch / response.
|
|
37
|
-
generating: [
|
|
38
|
-
"Drafting",
|
|
39
|
-
"Composing dispatch",
|
|
40
|
-
"Writing the brief",
|
|
41
|
-
"Penning instructions",
|
|
42
|
-
"Wording it up",
|
|
43
|
-
"Putting it on paper",
|
|
44
|
-
"Phrasing the ask",
|
|
45
|
-
"Forming the directive",
|
|
46
|
-
"Scripting the plan",
|
|
47
|
-
],
|
|
48
|
-
// Boss is invoking a tool — most often prompt_worker.
|
|
49
|
-
tools: [
|
|
50
|
-
"Coordinating",
|
|
51
|
-
"Dispatching",
|
|
52
|
-
"Routing",
|
|
53
|
-
"Delegating",
|
|
54
|
-
"Issuing orders",
|
|
55
|
-
"Handing off",
|
|
56
|
-
"Aligning workers",
|
|
57
|
-
"Conducting",
|
|
58
|
-
"Calling the team",
|
|
59
|
-
"Steering",
|
|
60
|
-
"Pulling levers",
|
|
61
|
-
],
|
|
62
|
-
// Provider retry (overloaded / rate-limited / etc.).
|
|
63
|
-
retrying: [
|
|
64
|
-
"Reattempting",
|
|
65
|
-
"Course correcting",
|
|
66
|
-
"Trying again",
|
|
67
|
-
"Pushing through",
|
|
68
|
-
"Holding the line",
|
|
69
|
-
],
|
|
70
|
-
};
|
|
71
|
-
//# sourceMappingURL=boss-phrases.js.map
|
package/dist/boss-phrases.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"boss-phrases.js","sourceRoot":"","sources":["../src/boss-phrases.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAoC;IAC3D,6EAA6E;IAC7E,IAAI,EAAE,CAAC,aAAa,EAAE,oBAAoB,EAAE,SAAS,CAAC;IAEtD,qEAAqE;IACrE,OAAO,EAAE;QACP,UAAU;QACV,oBAAoB;QACpB,UAAU;QACV,qBAAqB;QACrB,oBAAoB;QACpB,kBAAkB;QAClB,wBAAwB;QACxB,sBAAsB;QACtB,oBAAoB;QACpB,oBAAoB;KACrB;IAED,kDAAkD;IAClD,QAAQ,EAAE;QACR,cAAc;QACd,oBAAoB;QACpB,kBAAkB;QAClB,WAAW;QACX,cAAc;QACd,qBAAqB;QACrB,kBAAkB;QAClB,oBAAoB;QACpB,kBAAkB;QAClB,mBAAmB;KACpB;IAED,mEAAmE;IACnE,UAAU,EAAE;QACV,UAAU;QACV,oBAAoB;QACpB,mBAAmB;QACnB,sBAAsB;QACtB,eAAe;QACf,qBAAqB;QACrB,kBAAkB;QAClB,uBAAuB;QACvB,oBAAoB;KACrB;IAED,sDAAsD;IACtD,KAAK,EAAE;QACL,cAAc;QACd,aAAa;QACb,SAAS;QACT,YAAY;QACZ,gBAAgB;QAChB,aAAa;QACb,kBAAkB;QAClB,YAAY;QACZ,kBAAkB;QAClB,UAAU;QACV,gBAAgB;KACjB;IAED,qDAAqD;IACrD,QAAQ,EAAE;QACR,cAAc;QACd,mBAAmB;QACnB,cAAc;QACd,iBAAiB;QACjB,kBAAkB;KACnB;CACF,CAAC"}
|