@kenkaiiii/gg-boss 4.3.140 → 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 (162) hide show
  1. package/dist/{chunk-JVQDTPYR.js → chunk-3EWLK53W.js} +18 -9
  2. package/dist/{chunk-JVQDTPYR.js.map → chunk-3EWLK53W.js.map} +1 -1
  3. package/dist/{chunk-5WNYQQPQ.js → chunk-QT366Y52.js} +4 -3
  4. package/dist/{chunk-5WNYQQPQ.js.map → chunk-QT366Y52.js.map} +1 -1
  5. package/dist/{chunk-PQAHDHVY.js → chunk-WJ4S4TOY.js} +3 -2
  6. package/dist/{chunk-PQAHDHVY.js.map → chunk-WJ4S4TOY.js.map} +1 -1
  7. package/dist/{chunk-B2WQ5E5J.js → chunk-YNWFCUMR.js} +2 -1
  8. package/dist/{chunk-B2WQ5E5J.js.map → chunk-YNWFCUMR.js.map} +1 -1
  9. package/dist/cli.js +2246 -182
  10. package/dist/cli.js.map +1 -1
  11. package/dist/{devtools-VBUDNGEI.js → devtools-4TI4D7F2.js} +3 -2
  12. package/dist/{devtools-VBUDNGEI.js.map → devtools-4TI4D7F2.js.map} +1 -1
  13. package/dist/{dist-7DAPKZGX.js → dist-VXOVSHZ5.js} +3 -2
  14. package/dist/{dist-7DAPKZGX.js.map → dist-VXOVSHZ5.js.map} +1 -1
  15. package/dist/{ignore-3AEIALHQ.js → ignore-76P4EAAU.js} +3 -2
  16. package/dist/{ignore-3AEIALHQ.js.map → ignore-76P4EAAU.js.map} +1 -1
  17. package/dist/index.js +21 -4
  18. package/dist/index.js.map +1 -1
  19. package/dist/{out-D65DTPFZ.js → out-XEXARMKS.js} +3 -2
  20. package/dist/{out-D65DTPFZ.js.map → out-XEXARMKS.js.map} +1 -1
  21. package/dist/pixel-WPYTQADG.js +14 -0
  22. package/dist/{pixel-fix-ALWXCLTS.js → pixel-fix-4WGZAJ5W.js} +4 -3
  23. package/dist/{pixel-fix-ALWXCLTS.js.map → pixel-fix-4WGZAJ5W.js.map} +1 -1
  24. package/package.json +10 -11
  25. package/dist/audio.d.ts +0 -21
  26. package/dist/audio.d.ts.map +0 -1
  27. package/dist/audio.js +0 -231
  28. package/dist/audio.js.map +0 -1
  29. package/dist/audio.test.d.ts +0 -2
  30. package/dist/audio.test.d.ts.map +0 -1
  31. package/dist/audio.test.js +0 -13
  32. package/dist/audio.test.js.map +0 -1
  33. package/dist/auto-update.d.ts +0 -24
  34. package/dist/auto-update.d.ts.map +0 -1
  35. package/dist/auto-update.js +0 -231
  36. package/dist/auto-update.js.map +0 -1
  37. package/dist/banner.d.ts +0 -17
  38. package/dist/banner.d.ts.map +0 -1
  39. package/dist/banner.js +0 -25
  40. package/dist/banner.js.map +0 -1
  41. package/dist/boss-footer.d.ts +0 -25
  42. package/dist/boss-footer.d.ts.map +0 -1
  43. package/dist/boss-footer.js +0 -107
  44. package/dist/boss-footer.js.map +0 -1
  45. package/dist/boss-phrases.d.ts +0 -9
  46. package/dist/boss-phrases.d.ts.map +0 -1
  47. package/dist/boss-phrases.js +0 -71
  48. package/dist/boss-phrases.js.map +0 -1
  49. package/dist/boss-store.d.ts +0 -245
  50. package/dist/boss-store.d.ts.map +0 -1
  51. package/dist/boss-store.js +0 -623
  52. package/dist/boss-store.js.map +0 -1
  53. package/dist/boss-system-prompt.d.ts +0 -3
  54. package/dist/boss-system-prompt.d.ts.map +0 -1
  55. package/dist/boss-system-prompt.js +0 -180
  56. package/dist/boss-system-prompt.js.map +0 -1
  57. package/dist/boss-tasks-overlay.d.ts +0 -22
  58. package/dist/boss-tasks-overlay.d.ts.map +0 -1
  59. package/dist/boss-tasks-overlay.js +0 -157
  60. package/dist/boss-tasks-overlay.js.map +0 -1
  61. package/dist/branding.d.ts +0 -32
  62. package/dist/branding.d.ts.map +0 -1
  63. package/dist/branding.js +0 -59
  64. package/dist/branding.js.map +0 -1
  65. package/dist/cli.d.ts +0 -3
  66. package/dist/cli.d.ts.map +0 -1
  67. package/dist/cli.smoke.test.d.ts +0 -2
  68. package/dist/cli.smoke.test.d.ts.map +0 -1
  69. package/dist/cli.smoke.test.js +0 -48
  70. package/dist/cli.smoke.test.js.map +0 -1
  71. package/dist/colors.d.ts +0 -14
  72. package/dist/colors.d.ts.map +0 -1
  73. package/dist/colors.js +0 -31
  74. package/dist/colors.js.map +0 -1
  75. package/dist/discover.d.ts +0 -13
  76. package/dist/discover.d.ts.map +0 -1
  77. package/dist/discover.js +0 -92
  78. package/dist/discover.js.map +0 -1
  79. package/dist/event-queue.d.ts +0 -16
  80. package/dist/event-queue.d.ts.map +0 -1
  81. package/dist/event-queue.js +0 -39
  82. package/dist/event-queue.js.map +0 -1
  83. package/dist/index.d.ts +0 -6
  84. package/dist/index.d.ts.map +0 -1
  85. package/dist/link-command.d.ts +0 -2
  86. package/dist/link-command.d.ts.map +0 -1
  87. package/dist/link-command.js +0 -120
  88. package/dist/link-command.js.map +0 -1
  89. package/dist/links.d.ts +0 -11
  90. package/dist/links.d.ts.map +0 -1
  91. package/dist/links.js +0 -22
  92. package/dist/links.js.map +0 -1
  93. package/dist/logger.d.ts +0 -41
  94. package/dist/logger.d.ts.map +0 -1
  95. package/dist/logger.js +0 -112
  96. package/dist/logger.js.map +0 -1
  97. package/dist/orchestrator-app.d.ts +0 -15
  98. package/dist/orchestrator-app.d.ts.map +0 -1
  99. package/dist/orchestrator-app.js +0 -599
  100. package/dist/orchestrator-app.js.map +0 -1
  101. package/dist/orchestrator.d.ts +0 -147
  102. package/dist/orchestrator.d.ts.map +0 -1
  103. package/dist/orchestrator.js +0 -707
  104. package/dist/orchestrator.js.map +0 -1
  105. package/dist/orchestrator.test.d.ts +0 -2
  106. package/dist/orchestrator.test.d.ts.map +0 -1
  107. package/dist/orchestrator.test.js +0 -55
  108. package/dist/orchestrator.test.js.map +0 -1
  109. package/dist/pixel-WB6VRJWP.js +0 -13
  110. package/dist/radio-picker.d.ts +0 -20
  111. package/dist/radio-picker.d.ts.map +0 -1
  112. package/dist/radio-picker.js +0 -31
  113. package/dist/radio-picker.js.map +0 -1
  114. package/dist/radio.d.ts +0 -43
  115. package/dist/radio.d.ts.map +0 -1
  116. package/dist/radio.js +0 -150
  117. package/dist/radio.js.map +0 -1
  118. package/dist/sessions.d.ts +0 -21
  119. package/dist/sessions.d.ts.map +0 -1
  120. package/dist/sessions.js +0 -122
  121. package/dist/sessions.js.map +0 -1
  122. package/dist/settings.d.ts +0 -11
  123. package/dist/settings.d.ts.map +0 -1
  124. package/dist/settings.js +0 -38
  125. package/dist/settings.js.map +0 -1
  126. package/dist/slash-commands.d.ts +0 -19
  127. package/dist/slash-commands.d.ts.map +0 -1
  128. package/dist/slash-commands.js +0 -76
  129. package/dist/slash-commands.js.map +0 -1
  130. package/dist/splash.d.ts +0 -21
  131. package/dist/splash.d.ts.map +0 -1
  132. package/dist/splash.js +0 -137
  133. package/dist/splash.js.map +0 -1
  134. package/dist/task-tools.d.ts +0 -18
  135. package/dist/task-tools.d.ts.map +0 -1
  136. package/dist/task-tools.js +0 -172
  137. package/dist/task-tools.js.map +0 -1
  138. package/dist/tasks-store.d.ts +0 -66
  139. package/dist/tasks-store.d.ts.map +0 -1
  140. package/dist/tasks-store.js +0 -199
  141. package/dist/tasks-store.js.map +0 -1
  142. package/dist/tasks-store.test.d.ts +0 -2
  143. package/dist/tasks-store.test.d.ts.map +0 -1
  144. package/dist/tasks-store.test.js +0 -138
  145. package/dist/tasks-store.test.js.map +0 -1
  146. package/dist/tool-formatters.d.ts +0 -7
  147. package/dist/tool-formatters.d.ts.map +0 -1
  148. package/dist/tool-formatters.js +0 -111
  149. package/dist/tool-formatters.js.map +0 -1
  150. package/dist/tools.d.ts +0 -26
  151. package/dist/tools.d.ts.map +0 -1
  152. package/dist/tools.js +0 -133
  153. package/dist/tools.js.map +0 -1
  154. package/dist/types.d.ts +0 -32
  155. package/dist/types.d.ts.map +0 -1
  156. package/dist/types.js +0 -2
  157. package/dist/types.js.map +0 -1
  158. package/dist/worker.d.ts +0 -47
  159. package/dist/worker.d.ts.map +0 -1
  160. package/dist/worker.js +0 -123
  161. package/dist/worker.js.map +0 -1
  162. /package/dist/{pixel-WB6VRJWP.js.map → pixel-WPYTQADG.js.map} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../src/discover.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC,CA2DrE"}
package/dist/discover.js DELETED
@@ -1,92 +0,0 @@
1
- import fs from "node:fs/promises";
2
- import path from "node:path";
3
- import { getAppPaths } from "@kenkaiiii/ggcoder";
4
- /**
5
- * Scan ~/.gg/sessions/ and return projects sorted most-recent first.
6
- * Each session directory's name is the encoded cwd (slashes → underscores);
7
- * we decode it back and verify the directory still exists on disk.
8
- */
9
- export async function discoverProjects() {
10
- const sessionsDir = getAppPaths().sessionsDir;
11
- let entries;
12
- try {
13
- entries = await fs.readdir(sessionsDir);
14
- }
15
- catch {
16
- return [];
17
- }
18
- const results = [];
19
- for (const entry of entries) {
20
- const dir = path.join(sessionsDir, entry);
21
- let stat;
22
- try {
23
- stat = await fs.stat(dir);
24
- }
25
- catch {
26
- continue;
27
- }
28
- if (!stat.isDirectory())
29
- continue;
30
- let files;
31
- try {
32
- files = await fs.readdir(dir);
33
- }
34
- catch {
35
- continue;
36
- }
37
- const sessionFiles = files.filter((f) => f.endsWith(".jsonl"));
38
- if (sessionFiles.length === 0)
39
- continue;
40
- let maxMtime = 0;
41
- for (const f of sessionFiles) {
42
- try {
43
- const s = await fs.stat(path.join(dir, f));
44
- if (s.mtimeMs > maxMtime)
45
- maxMtime = s.mtimeMs;
46
- }
47
- catch {
48
- // skip unreadable files
49
- }
50
- }
51
- const decoded = "/" + entry.replace(/_/g, "/");
52
- // Verify the decoded path still exists — drop dead entries from the list.
53
- try {
54
- const pathStat = await fs.stat(decoded);
55
- if (!pathStat.isDirectory())
56
- continue;
57
- }
58
- catch {
59
- continue;
60
- }
61
- results.push({
62
- name: path.basename(decoded),
63
- path: decoded,
64
- lastActiveMs: maxMtime,
65
- lastActiveDisplay: formatRelativeTime(maxMtime),
66
- });
67
- }
68
- results.sort((a, b) => b.lastActiveMs - a.lastActiveMs);
69
- return results;
70
- }
71
- function formatRelativeTime(ms) {
72
- if (ms === 0)
73
- return "—";
74
- const diff = Date.now() - ms;
75
- if (diff < 60_000)
76
- return "just now";
77
- const min = 60_000;
78
- const hour = 60 * min;
79
- const day = 24 * hour;
80
- const week = 7 * day;
81
- const month = 30 * day;
82
- if (diff < hour)
83
- return `${Math.floor(diff / min)}m ago`;
84
- if (diff < day)
85
- return `${Math.floor(diff / hour)}h ago`;
86
- if (diff < week)
87
- return `${Math.floor(diff / day)}d ago`;
88
- if (diff < month)
89
- return `${Math.floor(diff / week)}w ago`;
90
- return `${Math.floor(diff / month)}mo ago`;
91
- }
92
- //# sourceMappingURL=discover.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"discover.js","sourceRoot":"","sources":["../src/discover.ts"],"names":[],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- import type { BossEvent } from "./types.js";
2
- /**
3
- * Single-consumer queue with user-preempt semantics:
4
- * user_message events jump ahead of worker events but stay FIFO among themselves.
5
- * Worker events stay FIFO among themselves.
6
- */
7
- export declare class EventQueue {
8
- private user;
9
- private rest;
10
- private waiters;
11
- push(event: BossEvent): void;
12
- private deliverIfWaiting;
13
- next(): Promise<BossEvent>;
14
- size(): number;
15
- }
16
- //# sourceMappingURL=event-queue.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"event-queue.d.ts","sourceRoot":"","sources":["../src/event-queue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C;;;;GAIG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,IAAI,CAAmB;IAC/B,OAAO,CAAC,IAAI,CAAmB;IAC/B,OAAO,CAAC,OAAO,CAAqC;IAEpD,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAM5B,OAAO,CAAC,gBAAgB;IAQxB,IAAI,IAAI,OAAO,CAAC,SAAS,CAAC;IAQ1B,IAAI,IAAI,MAAM;CAGf"}
@@ -1,39 +0,0 @@
1
- /**
2
- * Single-consumer queue with user-preempt semantics:
3
- * user_message events jump ahead of worker events but stay FIFO among themselves.
4
- * Worker events stay FIFO among themselves.
5
- */
6
- export class EventQueue {
7
- user = [];
8
- rest = [];
9
- waiters = [];
10
- push(event) {
11
- if (event.kind === "user_message")
12
- this.user.push(event);
13
- else
14
- this.rest.push(event);
15
- this.deliverIfWaiting();
16
- }
17
- deliverIfWaiting() {
18
- if (this.waiters.length === 0)
19
- return;
20
- const next = this.user.shift() ?? this.rest.shift();
21
- if (!next)
22
- return;
23
- const waiter = this.waiters.shift();
24
- if (waiter)
25
- waiter(next);
26
- }
27
- next() {
28
- const ready = this.user.shift() ?? this.rest.shift();
29
- if (ready)
30
- return Promise.resolve(ready);
31
- return new Promise((resolve) => {
32
- this.waiters.push(resolve);
33
- });
34
- }
35
- size() {
36
- return this.user.length + this.rest.length;
37
- }
38
- }
39
- //# sourceMappingURL=event-queue.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"event-queue.js","sourceRoot":"","sources":["../src/event-queue.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,OAAO,UAAU;IACb,IAAI,GAAgB,EAAE,CAAC;IACvB,IAAI,GAAgB,EAAE,CAAC;IACvB,OAAO,GAAkC,EAAE,CAAC;IAEpD,IAAI,CAAC,KAAgB;QACnB,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc;YAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;;YACpD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAEO,gBAAgB;QACtB,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACtC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACpD,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACpC,IAAI,MAAM;YAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI;QACF,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACrD,IAAI,KAAK;YAAE,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACzC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IAC7C,CAAC;CACF"}
package/dist/index.d.ts DELETED
@@ -1,6 +0,0 @@
1
- export { GGBoss } from "./orchestrator.js";
2
- export { EventQueue } from "./event-queue.js";
3
- export { Worker } from "./worker.js";
4
- export { buildBossSystemPrompt } from "./boss-system-prompt.js";
5
- export type { WorkerStatus, ProjectSpec, ToolUseSummary, WorkerTurnSummary, BossEvent, } from "./types.js";
6
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,YAAY,EACV,YAAY,EACZ,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,SAAS,GACV,MAAM,YAAY,CAAC"}
@@ -1,2 +0,0 @@
1
- export declare function runLinkCommand(): Promise<void>;
2
- //# sourceMappingURL=link-command.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"link-command.d.ts","sourceRoot":"","sources":["../src/link-command.tsx"],"names":[],"mappings":"AA+IA,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CA+CpD"}
@@ -1,120 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import React, { useState } from "react";
3
- import { Box, Text, useApp, useInput, render } from "ink";
4
- import chalk from "chalk";
5
- import { discoverProjects } from "./discover.js";
6
- import { loadLinks, saveLinks } from "./links.js";
7
- import { BossBanner } from "./banner.js";
8
- import { COLORS, clearScreen } from "./branding.js";
9
- const VISIBLE_ROWS = 12;
10
- function LinkScreen({ projects, initialSelected, onDone }) {
11
- const [cursor, setCursor] = useState(0);
12
- const [selected, setSelected] = useState(new Set(initialSelected));
13
- const [scrollOffset, setScrollOffset] = useState(0);
14
- const visible = projects.slice(scrollOffset, scrollOffset + VISIBLE_ROWS);
15
- useInput((input, key) => {
16
- // Ctrl+C — cancel cleanly.
17
- if (key.ctrl && input === "c") {
18
- onDone([], true);
19
- return;
20
- }
21
- if (projects.length === 0) {
22
- if (key.return || key.escape || input === "q")
23
- onDone([], true);
24
- return;
25
- }
26
- if (key.upArrow) {
27
- const next = Math.max(0, cursor - 1);
28
- setCursor(next);
29
- if (next < scrollOffset)
30
- setScrollOffset(next);
31
- }
32
- else if (key.downArrow) {
33
- const next = Math.min(projects.length - 1, cursor + 1);
34
- setCursor(next);
35
- if (next >= scrollOffset + VISIBLE_ROWS)
36
- setScrollOffset(next - VISIBLE_ROWS + 1);
37
- }
38
- else if (input === " ") {
39
- const p = projects[cursor];
40
- if (!p)
41
- return;
42
- const nextSet = new Set(selected);
43
- if (nextSet.has(p.path))
44
- nextSet.delete(p.path);
45
- else
46
- nextSet.add(p.path);
47
- setSelected(nextSet);
48
- }
49
- else if (input === "a") {
50
- const allSelected = projects.every((p) => selected.has(p.path));
51
- setSelected(allSelected ? new Set() : new Set(projects.map((p) => p.path)));
52
- }
53
- else if (key.return) {
54
- onDone(projects.filter((p) => selected.has(p.path)).map((p) => p.path), false);
55
- }
56
- else if (key.escape || input === "q") {
57
- onDone([], true);
58
- }
59
- });
60
- const subtitle = projects.length === 0
61
- ? "Link projects"
62
- : `Link projects · ${projects.length} discovered · ${selected.size} selected`;
63
- const hint = "↑↓ navigate · space toggle · a all · enter save · esc cancel";
64
- if (projects.length === 0) {
65
- return (_jsxs(Box, { flexDirection: "column", paddingX: 2, children: [_jsx(BossBanner, { subtitle: "Link projects", hint: "No projects yet" }), _jsxs(Box, { flexDirection: "column", marginLeft: 2, children: [_jsx(Text, { color: COLORS.textDim, children: "No ggcoder projects found in ~/.gg/sessions/." }), _jsxs(Text, { color: COLORS.textDim, children: ["Run ggcoder in a project at least once, then re-run", " ", _jsx(Text, { color: COLORS.accent, children: "ggboss link" }), "."] }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: COLORS.textDim, children: "Press any key to exit." }) })] })] }));
66
- }
67
- const showingTop = scrollOffset > 0;
68
- const showingBottom = scrollOffset + VISIBLE_ROWS < projects.length;
69
- return (_jsxs(Box, { flexDirection: "column", paddingX: 2, children: [_jsx(BossBanner, { subtitle: subtitle, hint: hint }), _jsxs(Box, { flexDirection: "column", marginLeft: 2, children: [showingTop && _jsx(Text, { color: COLORS.textDim, children: " ↑ more above" }), visible.map((p, i) => {
70
- const realIndex = scrollOffset + i;
71
- const isCursor = realIndex === cursor;
72
- const isSelected = selected.has(p.path);
73
- const checkbox = isSelected ? "[✓]" : "[ ]";
74
- const arrow = isCursor ? "❯" : " ";
75
- const nameColor = isCursor ? COLORS.primary : isSelected ? COLORS.success : COLORS.text;
76
- const checkboxColor = isSelected ? COLORS.success : COLORS.textDim;
77
- return (_jsxs(Box, { children: [_jsx(Text, { color: COLORS.primary, children: arrow }), _jsx(Text, { children: " " }), _jsx(Text, { color: checkboxColor, children: checkbox }), _jsx(Text, { children: " " }), _jsx(Text, { color: nameColor, bold: isCursor, children: p.name }), _jsx(Text, { color: COLORS.textDim, children: " " }), _jsx(Text, { color: COLORS.textDim, children: p.lastActiveDisplay })] }, p.path));
78
- }), showingBottom && _jsx(Text, { color: COLORS.textDim, children: " ↓ more below" })] })] }));
79
- }
80
- function LinkApp({ projects, initialSelected, resolve }) {
81
- const { exit } = useApp();
82
- return (_jsx(LinkScreen, { projects: projects, initialSelected: initialSelected, onDone: (selected, cancelled) => {
83
- resolve({ selected, cancelled });
84
- exit();
85
- } }));
86
- }
87
- export async function runLinkCommand() {
88
- const projects = await discoverProjects();
89
- const links = await loadLinks();
90
- const initialSelected = new Set(links.projects.map((p) => p.cwd));
91
- clearScreen();
92
- const result = await new Promise((resolve) => {
93
- const { waitUntilExit } = render(_jsx(LinkApp, { projects: projects, initialSelected: initialSelected, resolve: resolve }));
94
- void waitUntilExit();
95
- });
96
- if (result.cancelled) {
97
- process.stdout.write(chalk.hex(COLORS.textDim)("\nCancelled. No changes saved.\n"));
98
- return;
99
- }
100
- const linked = result.selected
101
- .map((path) => projects.find((p) => p.path === path))
102
- .filter((p) => Boolean(p))
103
- .map((p) => ({ name: p.name, cwd: p.path }));
104
- await saveLinks({ projects: linked });
105
- process.stdout.write("\n");
106
- if (linked.length === 0) {
107
- process.stdout.write(chalk.hex(COLORS.warning)("Cleared linked projects.\n"));
108
- }
109
- else {
110
- process.stdout.write(chalk.hex(COLORS.success)(`Linked ${linked.length} project${linked.length === 1 ? "" : "s"}:\n`));
111
- for (const p of linked) {
112
- process.stdout.write(" " + chalk.hex(COLORS.primary)("·") + " " + chalk.hex(COLORS.text)(p.name) + "\n");
113
- }
114
- process.stdout.write("\n");
115
- process.stdout.write(chalk.hex(COLORS.textDim)(`Run `) +
116
- chalk.hex(COLORS.accent)("ggboss") +
117
- chalk.hex(COLORS.textDim)(` to start the orchestrator.\n`));
118
- }
119
- }
120
- //# sourceMappingURL=link-command.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"link-command.js","sourceRoot":"","sources":["../src/link-command.tsx"],"names":[],"mappings":"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"}
package/dist/links.d.ts DELETED
@@ -1,11 +0,0 @@
1
- export interface LinkedProject {
2
- name: string;
3
- cwd: string;
4
- }
5
- export interface LinksFile {
6
- projects: LinkedProject[];
7
- }
8
- export declare function getLinksPath(): string;
9
- export declare function loadLinks(): Promise<LinksFile>;
10
- export declare function saveLinks(links: LinksFile): Promise<void>;
11
- //# sourceMappingURL=links.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"links.d.ts","sourceRoot":"","sources":["../src/links.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,aAAa,EAAE,CAAC;CAC3B;AAED,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,wBAAsB,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,CAQpD;AAED,wBAAsB,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAI/D"}
package/dist/links.js DELETED
@@ -1,22 +0,0 @@
1
- import fs from "node:fs/promises";
2
- import path from "node:path";
3
- import { getAppPaths } from "@kenkaiiii/ggcoder";
4
- export function getLinksPath() {
5
- return path.join(getAppPaths().agentDir, "boss", "links.json");
6
- }
7
- export async function loadLinks() {
8
- try {
9
- const content = await fs.readFile(getLinksPath(), "utf-8");
10
- const parsed = JSON.parse(content);
11
- return { projects: parsed.projects ?? [] };
12
- }
13
- catch {
14
- return { projects: [] };
15
- }
16
- }
17
- export async function saveLinks(links) {
18
- const p = getLinksPath();
19
- await fs.mkdir(path.dirname(p), { recursive: true, mode: 0o700 });
20
- await fs.writeFile(p, JSON.stringify(links, null, 2), "utf-8");
21
- }
22
- //# sourceMappingURL=links.js.map
package/dist/links.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"links.js","sourceRoot":"","sources":["../src/links.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAWjD,MAAM,UAAU,YAAY;IAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,EAAE,OAAO,CAAC,CAAC;QAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAuB,CAAC;QACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAC1B,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,KAAgB;IAC9C,MAAM,CAAC,GAAG,YAAY,EAAE,CAAC;IACzB,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAClE,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACjE,CAAC"}
package/dist/logger.d.ts DELETED
@@ -1,41 +0,0 @@
1
- /**
2
- * Boss debug log — mirrors ggcoder's logger pattern so the format is grep-
3
- * compatible across the framework. Lives at ~/.gg/boss/debug.log; rotates at
4
- * MAX_BYTES to keep disk usage bounded but preserves one rotation generation
5
- * (`debug.log.1`) so a session that's just been rotated still has its trailing
6
- * context recoverable.
7
- *
8
- * Each line format:
9
- * [<iso-ts>] [sid=<8 hex>] [<LEVEL>] [<category>] <message> [k=v k=v …]
10
- *
11
- * Tail it live during a session:
12
- * tail -f ~/.gg/boss/debug.log
13
- *
14
- * Filter to the current session:
15
- * grep "sid=$(grep -oE 'sid=[a-f0-9]+' ~/.gg/boss/debug.log | tail -1 | cut -d= -f2)" ~/.gg/boss/debug.log
16
- */
17
- type LogLevel = "INFO" | "ERROR" | "WARN" | "DEBUG";
18
- export declare function getLogPath(): string;
19
- /**
20
- * Open the log in append mode. Idempotent — re-calling is a no-op once the
21
- * fd is set. Generates a per-process session id so concurrent ggboss
22
- * processes (rare but possible) can be untangled with a single grep.
23
- */
24
- export declare function initLogger(meta?: {
25
- version?: string;
26
- bossProvider?: string;
27
- bossModel?: string;
28
- bossThinking?: string;
29
- workerProvider?: string;
30
- workerModel?: string;
31
- projectCount?: number;
32
- }): void;
33
- export declare function getSessionId(): string;
34
- export declare function log(level: LogLevel, category: string, message: string, data?: Record<string, unknown>): void;
35
- /**
36
- * Best-effort flush + close. Called from the CLI's exit handler so the final
37
- * writes hit disk before the process tears down.
38
- */
39
- export declare function closeLogger(): void;
40
- export {};
41
- //# sourceMappingURL=logger.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;GAeG;AAEH,KAAK,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;AAOpD,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAkBD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,CAAC,EAAE;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,IAAI,CA8BP;AAED,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,wBAAgB,GAAG,CACjB,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,IAAI,CAgBN;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAQlC"}
package/dist/logger.js DELETED
@@ -1,112 +0,0 @@
1
- import fs from "node:fs";
2
- import path from "node:path";
3
- import { randomBytes } from "node:crypto";
4
- import { getAppPaths } from "@kenkaiiii/ggcoder";
5
- const MAX_BYTES = 10 * 1024 * 1024; // 10 MB
6
- let fd = null;
7
- let sessionId = "";
8
- export function getLogPath() {
9
- return path.join(getAppPaths().agentDir, "boss", "debug.log");
10
- }
11
- function rotateIfNeeded(filePath) {
12
- try {
13
- const st = fs.statSync(filePath);
14
- if (st.size < MAX_BYTES)
15
- return;
16
- const rotated = `${filePath}.1`;
17
- try {
18
- fs.unlinkSync(rotated);
19
- }
20
- catch {
21
- // No prior rotation, fine.
22
- }
23
- fs.renameSync(filePath, rotated);
24
- }
25
- catch {
26
- // File doesn't exist yet — nothing to rotate.
27
- }
28
- }
29
- /**
30
- * Open the log in append mode. Idempotent — re-calling is a no-op once the
31
- * fd is set. Generates a per-process session id so concurrent ggboss
32
- * processes (rare but possible) can be untangled with a single grep.
33
- */
34
- export function initLogger(meta) {
35
- if (fd !== null)
36
- return;
37
- const filePath = getLogPath();
38
- try {
39
- fs.mkdirSync(path.dirname(filePath), { recursive: true, mode: 0o700 });
40
- }
41
- catch {
42
- // mkdir failure → can't log to this path, give up silently.
43
- return;
44
- }
45
- rotateIfNeeded(filePath);
46
- try {
47
- fd = fs.openSync(filePath, "a");
48
- }
49
- catch {
50
- return;
51
- }
52
- sessionId = randomBytes(4).toString("hex");
53
- try {
54
- fs.writeSync(fd, "\n");
55
- }
56
- catch {
57
- // Separator write failed; not fatal.
58
- }
59
- const parts = ["gg-boss"];
60
- if (meta?.version)
61
- parts[0] += ` v${meta.version}`;
62
- parts.push("started");
63
- if (meta?.bossProvider)
64
- parts.push(`boss=${meta.bossProvider}/${meta.bossModel ?? "?"}`);
65
- if (meta?.bossThinking)
66
- parts.push(`bossThinking=${meta.bossThinking}`);
67
- if (meta?.workerProvider)
68
- parts.push(`workers=${meta.workerProvider}/${meta.workerModel ?? "?"}`);
69
- if (meta?.projectCount !== undefined)
70
- parts.push(`projects=${meta.projectCount}`);
71
- parts.push(`pid=${process.pid}`);
72
- log("INFO", "startup", parts.join(" "));
73
- }
74
- export function getSessionId() {
75
- return sessionId;
76
- }
77
- export function log(level, category, message, data) {
78
- if (fd === null)
79
- return;
80
- const ts = new Date().toISOString();
81
- let line = `[${ts}] [sid=${sessionId}] [${level}] [${category}] ${message}`;
82
- if (data) {
83
- const pairs = Object.entries(data)
84
- .map(([k, v]) => `${k}=${typeof v === "string" ? v : JSON.stringify(v)}`)
85
- .join(" ");
86
- if (pairs)
87
- line += ` ${pairs}`;
88
- }
89
- line += "\n";
90
- try {
91
- fs.writeSync(fd, line);
92
- }
93
- catch {
94
- // Write failed — drop the line rather than crash.
95
- }
96
- }
97
- /**
98
- * Best-effort flush + close. Called from the CLI's exit handler so the final
99
- * writes hit disk before the process tears down.
100
- */
101
- export function closeLogger() {
102
- if (fd === null)
103
- return;
104
- try {
105
- fs.closeSync(fd);
106
- }
107
- catch {
108
- // Already closed or broken — nothing to do.
109
- }
110
- fd = null;
111
- }
112
- //# sourceMappingURL=logger.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- import React from "react";
2
- import type { GGBoss } from "./orchestrator.js";
3
- interface BossAppProps {
4
- boss: GGBoss;
5
- }
6
- export declare function BossApp({ boss }: BossAppProps): React.ReactElement;
7
- export interface RenderBossAppOptions {
8
- boss: GGBoss;
9
- }
10
- export declare function renderBossApp(opts: RenderBossAppOptions): {
11
- waitUntilExit: () => Promise<void>;
12
- unmount: () => void;
13
- };
14
- export {};
15
- //# sourceMappingURL=orchestrator-app.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"orchestrator-app.d.ts","sourceRoot":"","sources":["../src/orchestrator-app.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAC;AAyCjF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAgBhD,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,YAAY,GAAG,KAAK,CAAC,YAAY,CAWlE;AAy8BD,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,oBAAoB,GAAG;IACzD,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAYA"}