@kenkaiiii/gg-boss 4.3.99 → 4.3.101

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 (44) hide show
  1. package/dist/banner.d.ts +7 -1
  2. package/dist/banner.d.ts.map +1 -1
  3. package/dist/banner.js +2 -2
  4. package/dist/banner.js.map +1 -1
  5. package/dist/boss-store.d.ts +24 -1
  6. package/dist/boss-store.d.ts.map +1 -1
  7. package/dist/boss-store.js +33 -4
  8. package/dist/boss-store.js.map +1 -1
  9. package/dist/boss-system-prompt.d.ts.map +1 -1
  10. package/dist/boss-system-prompt.js +110 -45
  11. package/dist/boss-system-prompt.js.map +1 -1
  12. package/dist/boss-tasks-overlay.d.ts +22 -0
  13. package/dist/boss-tasks-overlay.d.ts.map +1 -0
  14. package/dist/boss-tasks-overlay.js +149 -0
  15. package/dist/boss-tasks-overlay.js.map +1 -0
  16. package/dist/cli.js +9 -8
  17. package/dist/cli.js.map +1 -1
  18. package/dist/orchestrator-app.d.ts.map +1 -1
  19. package/dist/orchestrator-app.js +121 -27
  20. package/dist/orchestrator-app.js.map +1 -1
  21. package/dist/orchestrator.d.ts +25 -0
  22. package/dist/orchestrator.d.ts.map +1 -1
  23. package/dist/orchestrator.js +87 -13
  24. package/dist/orchestrator.js.map +1 -1
  25. package/dist/settings.d.ts +10 -0
  26. package/dist/settings.d.ts.map +1 -0
  27. package/dist/settings.js +38 -0
  28. package/dist/settings.js.map +1 -0
  29. package/dist/slash-commands.d.ts.map +1 -1
  30. package/dist/slash-commands.js +1 -0
  31. package/dist/slash-commands.js.map +1 -1
  32. package/dist/task-tools.d.ts +18 -0
  33. package/dist/task-tools.d.ts.map +1 -0
  34. package/dist/task-tools.js +154 -0
  35. package/dist/task-tools.js.map +1 -0
  36. package/dist/tasks-store.d.ts +52 -0
  37. package/dist/tasks-store.d.ts.map +1 -0
  38. package/dist/tasks-store.js +153 -0
  39. package/dist/tasks-store.js.map +1 -0
  40. package/dist/tools.d.ts +16 -0
  41. package/dist/tools.d.ts.map +1 -1
  42. package/dist/tools.js +4 -1
  43. package/dist/tools.js.map +1 -1
  44. package/package.json +3 -3
@@ -0,0 +1,153 @@
1
+ import fs from "node:fs/promises";
2
+ import path from "node:path";
3
+ import crypto from "node:crypto";
4
+ import { useSyncExternalStore } from "react";
5
+ import { getAppPaths } from "@kenkaiiii/ggcoder";
6
+ /**
7
+ * Lightweight task store — the boss orchestrator's plan-of-record. One JSON
8
+ * file at ~/.gg/boss/plan.json, append-on-mutation, per-project grouping
9
+ * happens in the read layer rather than on disk.
10
+ */
11
+ function getPlanPath() {
12
+ return path.join(getAppPaths().agentDir, "boss", "plan.json");
13
+ }
14
+ async function ensureDir() {
15
+ await fs.mkdir(path.dirname(getPlanPath()), { recursive: true, mode: 0o700 });
16
+ }
17
+ async function loadPlan() {
18
+ try {
19
+ const content = await fs.readFile(getPlanPath(), "utf-8");
20
+ const parsed = JSON.parse(content);
21
+ return Array.isArray(parsed.tasks) ? parsed.tasks : [];
22
+ }
23
+ catch {
24
+ return [];
25
+ }
26
+ }
27
+ /**
28
+ * Serialize concurrent persist() calls. With N workers in parallel, multiple
29
+ * task updates can fire in the same tick — writeFile is NOT atomic and racing
30
+ * writes leave the file half-overwritten (old bytes past the new content's
31
+ * end), which then fails JSON.parse and silently returns []. We chain every
32
+ * persist on this promise so writes happen one at a time.
33
+ */
34
+ let persistChain = Promise.resolve();
35
+ async function persist(tasks) {
36
+ // Capture the current state at call time so each queued write persists the
37
+ // snapshot it was asked to, even if state mutates further before this
38
+ // write's turn in the chain.
39
+ const snapshot = JSON.stringify({ tasks }, null, 2) + "\n";
40
+ const next = persistChain.then(async () => {
41
+ await ensureDir();
42
+ // Atomic write: write to a sibling .tmp then rename. POSIX rename(2) is
43
+ // atomic on the same filesystem — the destination either has the old
44
+ // content or the new content, never a half-written mix. Suffix includes
45
+ // pid so two ggboss processes don't clobber each other's tmp files.
46
+ const finalPath = getPlanPath();
47
+ const tmpPath = `${finalPath}.${process.pid}.tmp`;
48
+ await fs.writeFile(tmpPath, snapshot, "utf-8");
49
+ await fs.rename(tmpPath, finalPath);
50
+ });
51
+ persistChain = next.catch(() => undefined); // keep chain alive on errors
52
+ await next;
53
+ }
54
+ let state = { tasks: [], version: 0 };
55
+ const listeners = new Set();
56
+ function notify() {
57
+ for (const fn of listeners)
58
+ fn();
59
+ }
60
+ function subscribe(fn) {
61
+ listeners.add(fn);
62
+ return () => {
63
+ listeners.delete(fn);
64
+ };
65
+ }
66
+ function getSnapshot() {
67
+ return state;
68
+ }
69
+ export function useTasksState() {
70
+ return useSyncExternalStore(subscribe, getSnapshot, getSnapshot);
71
+ }
72
+ // ── Helpers ────────────────────────────────────────────────
73
+ function newId() {
74
+ return crypto.randomBytes(6).toString("hex");
75
+ }
76
+ function now() {
77
+ return new Date().toISOString();
78
+ }
79
+ // ── Public API (used by tools, overlay, orchestrator) ──────
80
+ export const tasksStore = {
81
+ /** Hydrate state from disk on startup. Idempotent. */
82
+ async load() {
83
+ const tasks = await loadPlan();
84
+ state = { tasks, version: state.version + 1 };
85
+ notify();
86
+ },
87
+ /** Synchronous read. Used by boss tools that need to inspect/list. */
88
+ list(filter) {
89
+ let xs = state.tasks;
90
+ if (filter?.project)
91
+ xs = xs.filter((t) => t.project === filter.project);
92
+ if (filter?.status)
93
+ xs = xs.filter((t) => t.status === filter.status);
94
+ return xs;
95
+ },
96
+ byId(id) {
97
+ return state.tasks.find((t) => t.id === id);
98
+ },
99
+ async add(input) {
100
+ const task = {
101
+ id: newId(),
102
+ project: input.project,
103
+ title: input.title,
104
+ description: input.description,
105
+ status: "pending",
106
+ fresh: input.fresh,
107
+ createdAt: now(),
108
+ updatedAt: now(),
109
+ };
110
+ state = { tasks: [...state.tasks, task], version: state.version + 1 };
111
+ await persist(state.tasks);
112
+ notify();
113
+ return task;
114
+ },
115
+ async update(id, fields) {
116
+ const idx = state.tasks.findIndex((t) => t.id === id);
117
+ if (idx < 0)
118
+ return null;
119
+ const next = { ...state.tasks[idx], ...fields, updatedAt: now() };
120
+ const tasks = state.tasks.slice();
121
+ tasks[idx] = next;
122
+ state = { tasks, version: state.version + 1 };
123
+ await persist(state.tasks);
124
+ notify();
125
+ return next;
126
+ },
127
+ async remove(id) {
128
+ const before = state.tasks.length;
129
+ const tasks = state.tasks.filter((t) => t.id !== id);
130
+ if (tasks.length === before)
131
+ return false;
132
+ state = { tasks, version: state.version + 1 };
133
+ await persist(state.tasks);
134
+ notify();
135
+ return true;
136
+ },
137
+ /**
138
+ * Find the next pending task for a project (FIFO by createdAt). Used by
139
+ * dispatch_pending to pick what to send next.
140
+ */
141
+ nextPending(project) {
142
+ return state.tasks
143
+ .filter((t) => t.project === project && t.status === "pending")
144
+ .sort((a, b) => a.createdAt.localeCompare(b.createdAt))[0];
145
+ },
146
+ /** Test/dev reset — wipes in-memory + disk. */
147
+ async reset() {
148
+ state = { tasks: [], version: state.version + 1 };
149
+ await persist([]);
150
+ notify();
151
+ },
152
+ };
153
+ //# sourceMappingURL=tasks-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tasks-store.js","sourceRoot":"","sources":["../src/tasks-store.ts"],"names":[],"mappings":"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"}
package/dist/tools.d.ts CHANGED
@@ -6,5 +6,21 @@ export interface BossToolDeps {
6
6
  /** Most recent turn summary per project. Populated by the orchestrator on each worker_turn_complete event. */
7
7
  lastSummaries: Map<string, WorkerTurnSummary>;
8
8
  }
9
+ /**
10
+ * Hardcoded framing prepended to every prompt the boss dispatches to a worker.
11
+ *
12
+ * The boss already sees every tool a worker calls (via worker_turn_complete
13
+ * events), so workers don't need to narrate or recap. This brief asks for a
14
+ * tight structured summary instead — keeps `final_text` short and scannable
15
+ * in the boss's context, and saves the boss from having to add this guidance
16
+ * to every prompt itself.
17
+ *
18
+ * Lives here (not in the boss system prompt) because it's a worker-side
19
+ * instruction — only seen by the worker, never by the boss.
20
+ *
21
+ * Exported so the orchestrator can wrap dispatches that bypass prompt_worker
22
+ * (Tasks overlay direct dispatch, dispatch_pending tool) with the same brief.
23
+ */
24
+ export declare const WORKER_PROMPT_BRIEF = "You're being driven by gg-boss, an orchestrator. Your tool usage is already visible to it \u2014 don't narrate which tools you ran or recap the request.\n\nEnd your response with a tight structured summary. Omit any line that doesn't apply:\n\nChanged: <files modified, comma-separated, with the specific change in parentheses where it adds clarity \u2014 e.g. \"src/auth.ts (added retry guard)\">\nSkipped: <anything the prompt asked for that you didn't do, with a one-line reason each>\nVerified: <what you ran or checked to confirm correctness \u2014 e.g. \"pnpm test (15/15 pass)\", \"tsc --noEmit clean\">\nNotes: <ONE line; only if there's something gg-boss must know that the above doesn't capture>\nStatus: <one of: DONE | UNVERIFIED | PARTIAL | BLOCKED | INFO>\n\nStatus meanings (be honest \u2014 gg-boss routes off this):\n- DONE: task complete AND you verified it (tests ran, types check, behaviour confirmed)\n- UNVERIFIED: task complete but you didn't / couldn't validate it\n- PARTIAL: did some of the task; the rest is in Skipped\n- BLOCKED: couldn't make progress, needs gg-boss to unblock or re-prompt\n- INFO: no work was performed \u2014 the prompt was a question and you answered it\n\nIf Status is INFO, answer the question in one or two lines and skip the rest of the summary.\n\nNo preamble. No apologies. Be factual.\n\nTask:\n";
9
25
  export declare function createBossTools(deps: BossToolDeps): AgentTool[];
10
26
  //# sourceMappingURL=tools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,8GAA8G;IAC9G,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;CAC/C;AA4DD,wBAAgB,eAAe,CAAC,IAAI,EAAE,YAAY,GAAG,SAAS,EAAE,CAgF/D"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,8GAA8G;IAC9G,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;CAC/C;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,mBAAmB,60CAsB/B,CAAC;AAwBF,wBAAgB,eAAe,CAAC,IAAI,EAAE,YAAY,GAAG,SAAS,EAAE,CAgF/D"}
package/dist/tools.js CHANGED
@@ -10,8 +10,11 @@ import { z } from "zod";
10
10
  *
11
11
  * Lives here (not in the boss system prompt) because it's a worker-side
12
12
  * instruction — only seen by the worker, never by the boss.
13
+ *
14
+ * Exported so the orchestrator can wrap dispatches that bypass prompt_worker
15
+ * (Tasks overlay direct dispatch, dispatch_pending tool) with the same brief.
13
16
  */
14
- const WORKER_PROMPT_BRIEF = `You're being driven by gg-boss, an orchestrator. Your tool usage is already visible to it — don't narrate which tools you ran or recap the request.
17
+ export const WORKER_PROMPT_BRIEF = `You're being driven by gg-boss, an orchestrator. Your tool usage is already visible to it — don't narrate which tools you ran or recap the request.
15
18
 
16
19
  End your response with a tight structured summary. Omit any line that doesn't apply:
17
20
 
package/dist/tools.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kenkaiiii/gg-boss",
3
- "version": "4.3.99",
3
+ "version": "4.3.101",
4
4
  "type": "module",
5
5
  "description": "Orchestrator agent that drives multiple ggcoder sessions across projects from a single chat",
6
6
  "license": "MIT",
@@ -26,9 +26,9 @@
26
26
  "ink": "^6.8.0",
27
27
  "react": "^19.2.5",
28
28
  "zod": "^4.3.6",
29
+ "@kenkaiiii/ggcoder": "4.3.98",
29
30
  "@kenkaiiii/gg-agent": "4.3.96",
30
- "@kenkaiiii/gg-ai": "4.3.96",
31
- "@kenkaiiii/ggcoder": "4.3.98"
31
+ "@kenkaiiii/gg-ai": "4.3.96"
32
32
  },
33
33
  "devDependencies": {
34
34
  "@types/node": "^25.6.0",