@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.
- package/dist/banner.d.ts +7 -1
- package/dist/banner.d.ts.map +1 -1
- package/dist/banner.js +2 -2
- package/dist/banner.js.map +1 -1
- package/dist/boss-store.d.ts +24 -1
- package/dist/boss-store.d.ts.map +1 -1
- package/dist/boss-store.js +33 -4
- package/dist/boss-store.js.map +1 -1
- package/dist/boss-system-prompt.d.ts.map +1 -1
- package/dist/boss-system-prompt.js +110 -45
- package/dist/boss-system-prompt.js.map +1 -1
- package/dist/boss-tasks-overlay.d.ts +22 -0
- package/dist/boss-tasks-overlay.d.ts.map +1 -0
- package/dist/boss-tasks-overlay.js +149 -0
- package/dist/boss-tasks-overlay.js.map +1 -0
- package/dist/cli.js +9 -8
- package/dist/cli.js.map +1 -1
- package/dist/orchestrator-app.d.ts.map +1 -1
- package/dist/orchestrator-app.js +121 -27
- package/dist/orchestrator-app.js.map +1 -1
- package/dist/orchestrator.d.ts +25 -0
- package/dist/orchestrator.d.ts.map +1 -1
- package/dist/orchestrator.js +87 -13
- package/dist/orchestrator.js.map +1 -1
- package/dist/settings.d.ts +10 -0
- package/dist/settings.d.ts.map +1 -0
- package/dist/settings.js +38 -0
- package/dist/settings.js.map +1 -0
- package/dist/slash-commands.d.ts.map +1 -1
- package/dist/slash-commands.js +1 -0
- package/dist/slash-commands.js.map +1 -1
- package/dist/task-tools.d.ts +18 -0
- package/dist/task-tools.d.ts.map +1 -0
- package/dist/task-tools.js +154 -0
- package/dist/task-tools.js.map +1 -0
- package/dist/tasks-store.d.ts +52 -0
- package/dist/tasks-store.d.ts.map +1 -0
- package/dist/tasks-store.js +153 -0
- package/dist/tasks-store.js.map +1 -0
- package/dist/tools.d.ts +16 -0
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +4 -1
- package/dist/tools.js.map +1 -1
- 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
|
package/dist/tools.d.ts.map
CHANGED
|
@@ -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;
|
|
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":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAWxB
|
|
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.
|
|
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",
|