@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.
Files changed (165) hide show
  1. package/dist/chunk-3EWLK53W.js +93117 -0
  2. package/dist/chunk-3EWLK53W.js.map +1 -0
  3. package/dist/chunk-QT366Y52.js +358 -0
  4. package/dist/chunk-QT366Y52.js.map +1 -0
  5. package/dist/chunk-WJ4S4TOY.js +2305 -0
  6. package/dist/chunk-WJ4S4TOY.js.map +1 -0
  7. package/dist/chunk-YNWFCUMR.js +57 -0
  8. package/dist/chunk-YNWFCUMR.js.map +1 -0
  9. package/dist/cli.js +2246 -182
  10. package/dist/cli.js.map +1 -1
  11. package/dist/devtools-4TI4D7F2.js +3739 -0
  12. package/dist/devtools-4TI4D7F2.js.map +1 -0
  13. package/dist/dist-VXOVSHZ5.js +44276 -0
  14. package/dist/dist-VXOVSHZ5.js.map +1 -0
  15. package/dist/ignore-76P4EAAU.js +465 -0
  16. package/dist/ignore-76P4EAAU.js.map +1 -0
  17. package/dist/index.js +21 -4
  18. package/dist/index.js.map +1 -1
  19. package/dist/out-XEXARMKS.js +5644 -0
  20. package/dist/out-XEXARMKS.js.map +1 -0
  21. package/dist/pixel-WPYTQADG.js +14 -0
  22. package/dist/pixel-WPYTQADG.js.map +1 -0
  23. package/dist/pixel-fix-4WGZAJ5W.js +941 -0
  24. package/dist/pixel-fix-4WGZAJ5W.js.map +1 -0
  25. package/package.json +11 -15
  26. package/dist/audio.d.ts +0 -21
  27. package/dist/audio.d.ts.map +0 -1
  28. package/dist/audio.js +0 -231
  29. package/dist/audio.js.map +0 -1
  30. package/dist/audio.test.d.ts +0 -2
  31. package/dist/audio.test.d.ts.map +0 -1
  32. package/dist/audio.test.js +0 -13
  33. package/dist/audio.test.js.map +0 -1
  34. package/dist/auto-update.d.ts +0 -24
  35. package/dist/auto-update.d.ts.map +0 -1
  36. package/dist/auto-update.js +0 -231
  37. package/dist/auto-update.js.map +0 -1
  38. package/dist/banner.d.ts +0 -17
  39. package/dist/banner.d.ts.map +0 -1
  40. package/dist/banner.js +0 -25
  41. package/dist/banner.js.map +0 -1
  42. package/dist/boot-banner.d.ts +0 -15
  43. package/dist/boot-banner.d.ts.map +0 -1
  44. package/dist/boot-banner.js +0 -61
  45. package/dist/boot-banner.js.map +0 -1
  46. package/dist/boss-footer.d.ts +0 -25
  47. package/dist/boss-footer.d.ts.map +0 -1
  48. package/dist/boss-footer.js +0 -107
  49. package/dist/boss-footer.js.map +0 -1
  50. package/dist/boss-phrases.d.ts +0 -9
  51. package/dist/boss-phrases.d.ts.map +0 -1
  52. package/dist/boss-phrases.js +0 -71
  53. package/dist/boss-phrases.js.map +0 -1
  54. package/dist/boss-store.d.ts +0 -245
  55. package/dist/boss-store.d.ts.map +0 -1
  56. package/dist/boss-store.js +0 -623
  57. package/dist/boss-store.js.map +0 -1
  58. package/dist/boss-system-prompt.d.ts +0 -3
  59. package/dist/boss-system-prompt.d.ts.map +0 -1
  60. package/dist/boss-system-prompt.js +0 -180
  61. package/dist/boss-system-prompt.js.map +0 -1
  62. package/dist/boss-tasks-overlay.d.ts +0 -22
  63. package/dist/boss-tasks-overlay.d.ts.map +0 -1
  64. package/dist/boss-tasks-overlay.js +0 -157
  65. package/dist/boss-tasks-overlay.js.map +0 -1
  66. package/dist/branding.d.ts +0 -32
  67. package/dist/branding.d.ts.map +0 -1
  68. package/dist/branding.js +0 -59
  69. package/dist/branding.js.map +0 -1
  70. package/dist/cli.d.ts +0 -3
  71. package/dist/cli.d.ts.map +0 -1
  72. package/dist/cli.smoke.test.d.ts +0 -2
  73. package/dist/cli.smoke.test.d.ts.map +0 -1
  74. package/dist/cli.smoke.test.js +0 -48
  75. package/dist/cli.smoke.test.js.map +0 -1
  76. package/dist/colors.d.ts +0 -14
  77. package/dist/colors.d.ts.map +0 -1
  78. package/dist/colors.js +0 -31
  79. package/dist/colors.js.map +0 -1
  80. package/dist/discover.d.ts +0 -13
  81. package/dist/discover.d.ts.map +0 -1
  82. package/dist/discover.js +0 -92
  83. package/dist/discover.js.map +0 -1
  84. package/dist/event-queue.d.ts +0 -16
  85. package/dist/event-queue.d.ts.map +0 -1
  86. package/dist/event-queue.js +0 -39
  87. package/dist/event-queue.js.map +0 -1
  88. package/dist/index.d.ts +0 -6
  89. package/dist/index.d.ts.map +0 -1
  90. package/dist/link-command.d.ts +0 -2
  91. package/dist/link-command.d.ts.map +0 -1
  92. package/dist/link-command.js +0 -120
  93. package/dist/link-command.js.map +0 -1
  94. package/dist/links.d.ts +0 -11
  95. package/dist/links.d.ts.map +0 -1
  96. package/dist/links.js +0 -22
  97. package/dist/links.js.map +0 -1
  98. package/dist/logger.d.ts +0 -41
  99. package/dist/logger.d.ts.map +0 -1
  100. package/dist/logger.js +0 -112
  101. package/dist/logger.js.map +0 -1
  102. package/dist/orchestrator-app.d.ts +0 -15
  103. package/dist/orchestrator-app.d.ts.map +0 -1
  104. package/dist/orchestrator-app.js +0 -599
  105. package/dist/orchestrator-app.js.map +0 -1
  106. package/dist/orchestrator.d.ts +0 -147
  107. package/dist/orchestrator.d.ts.map +0 -1
  108. package/dist/orchestrator.js +0 -707
  109. package/dist/orchestrator.js.map +0 -1
  110. package/dist/orchestrator.test.d.ts +0 -2
  111. package/dist/orchestrator.test.d.ts.map +0 -1
  112. package/dist/orchestrator.test.js +0 -55
  113. package/dist/orchestrator.test.js.map +0 -1
  114. package/dist/radio-picker.d.ts +0 -20
  115. package/dist/radio-picker.d.ts.map +0 -1
  116. package/dist/radio-picker.js +0 -31
  117. package/dist/radio-picker.js.map +0 -1
  118. package/dist/radio.d.ts +0 -43
  119. package/dist/radio.d.ts.map +0 -1
  120. package/dist/radio.js +0 -150
  121. package/dist/radio.js.map +0 -1
  122. package/dist/sessions.d.ts +0 -21
  123. package/dist/sessions.d.ts.map +0 -1
  124. package/dist/sessions.js +0 -122
  125. package/dist/sessions.js.map +0 -1
  126. package/dist/settings.d.ts +0 -11
  127. package/dist/settings.d.ts.map +0 -1
  128. package/dist/settings.js +0 -38
  129. package/dist/settings.js.map +0 -1
  130. package/dist/slash-commands.d.ts +0 -19
  131. package/dist/slash-commands.d.ts.map +0 -1
  132. package/dist/slash-commands.js +0 -76
  133. package/dist/slash-commands.js.map +0 -1
  134. package/dist/splash.d.ts +0 -21
  135. package/dist/splash.d.ts.map +0 -1
  136. package/dist/splash.js +0 -137
  137. package/dist/splash.js.map +0 -1
  138. package/dist/task-tools.d.ts +0 -18
  139. package/dist/task-tools.d.ts.map +0 -1
  140. package/dist/task-tools.js +0 -172
  141. package/dist/task-tools.js.map +0 -1
  142. package/dist/tasks-store.d.ts +0 -66
  143. package/dist/tasks-store.d.ts.map +0 -1
  144. package/dist/tasks-store.js +0 -199
  145. package/dist/tasks-store.js.map +0 -1
  146. package/dist/tasks-store.test.d.ts +0 -2
  147. package/dist/tasks-store.test.d.ts.map +0 -1
  148. package/dist/tasks-store.test.js +0 -138
  149. package/dist/tasks-store.test.js.map +0 -1
  150. package/dist/tool-formatters.d.ts +0 -7
  151. package/dist/tool-formatters.d.ts.map +0 -1
  152. package/dist/tool-formatters.js +0 -111
  153. package/dist/tool-formatters.js.map +0 -1
  154. package/dist/tools.d.ts +0 -26
  155. package/dist/tools.d.ts.map +0 -1
  156. package/dist/tools.js +0 -133
  157. package/dist/tools.js.map +0 -1
  158. package/dist/types.d.ts +0 -32
  159. package/dist/types.d.ts.map +0 -1
  160. package/dist/types.js +0 -2
  161. package/dist/types.js.map +0 -1
  162. package/dist/worker.d.ts +0 -47
  163. package/dist/worker.d.ts.map +0 -1
  164. package/dist/worker.js +0 -123
  165. 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"}
@@ -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
@@ -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
@@ -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
@@ -1 +0,0 @@
1
- {"version":3,"file":"banner.js","sourceRoot":"","sources":["../src/banner.tsx"],"names":[],"mappings":"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"}
@@ -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"}
@@ -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
@@ -1 +0,0 @@
1
- {"version":3,"file":"boot-banner.js","sourceRoot":"","sources":["../src/boot-banner.ts"],"names":[],"mappings":"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"}
@@ -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"}
@@ -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
@@ -1 +0,0 @@
1
- {"version":3,"file":"boss-footer.js","sourceRoot":"","sources":["../src/boss-footer.tsx"],"names":[],"mappings":"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"}
@@ -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"}
@@ -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
@@ -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"}