@kenkaiiii/gg-boss 4.3.100 → 4.3.102
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 +76 -8
- 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 +26 -0
- package/dist/orchestrator.d.ts.map +1 -1
- package/dist/orchestrator.js +132 -17
- 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
package/dist/orchestrator.js
CHANGED
|
@@ -2,7 +2,10 @@ import { Agent, isAbortError } from "@kenkaiiii/gg-agent";
|
|
|
2
2
|
import { AuthStorage, compact, estimateConversationTokens, getContextWindow, shouldCompact, } from "@kenkaiiii/ggcoder";
|
|
3
3
|
import { Worker } from "./worker.js";
|
|
4
4
|
import { EventQueue } from "./event-queue.js";
|
|
5
|
-
import { createBossTools } from "./tools.js";
|
|
5
|
+
import { createBossTools, WORKER_PROMPT_BRIEF } from "./tools.js";
|
|
6
|
+
import { createTaskTools } from "./task-tools.js";
|
|
7
|
+
import { tasksStore } from "./tasks-store.js";
|
|
8
|
+
import { saveSettings } from "./settings.js";
|
|
6
9
|
import { buildBossSystemPrompt } from "./boss-system-prompt.js";
|
|
7
10
|
import { bossStore } from "./boss-store.js";
|
|
8
11
|
import { appendMessages, createSession, getMostRecent, getSessionById, loadSession, } from "./sessions.js";
|
|
@@ -29,11 +32,15 @@ export class GGBoss {
|
|
|
29
32
|
sessionPath = "";
|
|
30
33
|
/** Last index in the boss's messages array we've persisted to disk. */
|
|
31
34
|
lastPersistedIndex = 0;
|
|
35
|
+
/** project → task id currently dispatched to that worker. Used to mark
|
|
36
|
+
* the right task done/blocked when the worker_turn_complete event arrives. */
|
|
37
|
+
inFlightTaskByProject = new Map();
|
|
32
38
|
constructor(opts) {
|
|
33
39
|
this.opts = opts;
|
|
34
40
|
}
|
|
35
41
|
async initialize() {
|
|
36
42
|
await this.authStorage.load();
|
|
43
|
+
await tasksStore.load();
|
|
37
44
|
const loggedInProviders = (await this.authStorage.listProviders());
|
|
38
45
|
bossStore.init({
|
|
39
46
|
bossProvider: this.opts.bossProvider,
|
|
@@ -57,10 +64,7 @@ export class GGBoss {
|
|
|
57
64
|
this.workers.set(p.name, worker);
|
|
58
65
|
}));
|
|
59
66
|
const creds = await this.authStorage.resolveCredentials(this.opts.bossProvider);
|
|
60
|
-
const tools =
|
|
61
|
-
workers: this.workers,
|
|
62
|
-
lastSummaries: this.lastSummaries,
|
|
63
|
-
});
|
|
67
|
+
const tools = this.buildToolSet();
|
|
64
68
|
// Either resume a prior session (load messages from jsonl), or create a
|
|
65
69
|
// new one. Either way we end up with `sessionPath` to persist into.
|
|
66
70
|
let priorMessages;
|
|
@@ -128,15 +132,61 @@ export class GGBoss {
|
|
|
128
132
|
abort() {
|
|
129
133
|
this.turnAc?.abort();
|
|
130
134
|
}
|
|
135
|
+
/** Boss tool set = orchestration tools + task management tools. */
|
|
136
|
+
buildToolSet() {
|
|
137
|
+
const bossTools = createBossTools({
|
|
138
|
+
workers: this.workers,
|
|
139
|
+
lastSummaries: this.lastSummaries,
|
|
140
|
+
});
|
|
141
|
+
const taskTools = createTaskTools({
|
|
142
|
+
workers: this.workers,
|
|
143
|
+
dispatchTaskByDescription: (project, description, fresh, taskId) => this.dispatchTaskByDescription(project, description, fresh, taskId),
|
|
144
|
+
});
|
|
145
|
+
return [...bossTools, ...taskTools];
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Dispatch a single task to a specific worker, marking it in_progress and
|
|
149
|
+
* (eventually) done when the worker_turn_complete event arrives. Used by:
|
|
150
|
+
* - the dispatch_pending tool (called by the boss agent)
|
|
151
|
+
* - the Tasks overlay (when user presses Enter on a task)
|
|
152
|
+
*
|
|
153
|
+
* Returns immediately — fire-and-forget like prompt_worker.
|
|
154
|
+
*/
|
|
155
|
+
async dispatchTaskById(taskId) {
|
|
156
|
+
const task = tasksStore.byId(taskId);
|
|
157
|
+
if (!task)
|
|
158
|
+
return { ok: false, reason: "unknown task id" };
|
|
159
|
+
const w = this.workers.get(task.project);
|
|
160
|
+
if (!w)
|
|
161
|
+
return { ok: false, reason: `unknown project: ${task.project}` };
|
|
162
|
+
if (w.getStatus() === "working")
|
|
163
|
+
return { ok: false, reason: "worker is busy" };
|
|
164
|
+
await tasksStore.update(task.id, { status: "in_progress" });
|
|
165
|
+
return this.dispatchTaskByDescription(task.project, task.description, task.fresh === true, task.id);
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Dispatch a task description to a worker. Used by both the task tool and
|
|
169
|
+
* the overlay (via dispatchTaskById). Tracks the in-flight task id per
|
|
170
|
+
* project so worker_turn_complete can resolve it back to the right task.
|
|
171
|
+
*/
|
|
172
|
+
async dispatchTaskByDescription(project, description, fresh, taskId) {
|
|
173
|
+
const w = this.workers.get(project);
|
|
174
|
+
if (!w)
|
|
175
|
+
return { ok: false, reason: `unknown project: ${project}` };
|
|
176
|
+
if (w.getStatus() === "working")
|
|
177
|
+
return { ok: false, reason: "worker is busy" };
|
|
178
|
+
if (fresh)
|
|
179
|
+
await w.newSession();
|
|
180
|
+
this.inFlightTaskByProject.set(project, taskId);
|
|
181
|
+
await w.prompt(WORKER_PROMPT_BRIEF + description);
|
|
182
|
+
return { ok: true };
|
|
183
|
+
}
|
|
131
184
|
/**
|
|
132
185
|
* Swap the boss's LLM model. Preserves message history so the conversation
|
|
133
186
|
* continues seamlessly under the new model.
|
|
134
187
|
*/
|
|
135
188
|
async switchBossModel(provider, model) {
|
|
136
|
-
const tools =
|
|
137
|
-
workers: this.workers,
|
|
138
|
-
lastSummaries: this.lastSummaries,
|
|
139
|
-
});
|
|
189
|
+
const tools = this.buildToolSet();
|
|
140
190
|
const creds = await this.authStorage.resolveCredentials(provider);
|
|
141
191
|
// Capture history minus the system message — Agent re-adds system from options.
|
|
142
192
|
const oldMessages = this.bossAgent.getMessages().filter((m) => m.role !== "system");
|
|
@@ -154,6 +204,7 @@ export class GGBoss {
|
|
|
154
204
|
priorMessages: oldMessages,
|
|
155
205
|
});
|
|
156
206
|
bossStore.setBossModel(provider, model);
|
|
207
|
+
await saveSettings({ bossProvider: provider, bossModel: model });
|
|
157
208
|
}
|
|
158
209
|
/** Swap every worker's model. Workers keep their per-project sessions. */
|
|
159
210
|
async switchWorkerModel(provider, model) {
|
|
@@ -161,6 +212,7 @@ export class GGBoss {
|
|
|
161
212
|
this.opts.workerProvider = provider;
|
|
162
213
|
this.opts.workerModel = model;
|
|
163
214
|
bossStore.setWorkerModel(provider, model);
|
|
215
|
+
await saveSettings({ workerProvider: provider, workerModel: model });
|
|
164
216
|
}
|
|
165
217
|
/**
|
|
166
218
|
* Run a manual compaction now (driven by /compact). Will compact even if the
|
|
@@ -225,10 +277,7 @@ export class GGBoss {
|
|
|
225
277
|
}
|
|
226
278
|
/** Recreate bossAgent with a new message history (used by compact + /clear). */
|
|
227
279
|
async replaceBossMessages(newMessages) {
|
|
228
|
-
const tools =
|
|
229
|
-
workers: this.workers,
|
|
230
|
-
lastSummaries: this.lastSummaries,
|
|
231
|
-
});
|
|
280
|
+
const tools = this.buildToolSet();
|
|
232
281
|
const creds = await this.authStorage.resolveCredentials(this.opts.bossProvider);
|
|
233
282
|
// Strip system — Agent re-adds it from `system`.
|
|
234
283
|
const priorMessages = newMessages.filter((m) => m.role !== "system");
|
|
@@ -275,11 +324,45 @@ export class GGBoss {
|
|
|
275
324
|
}
|
|
276
325
|
if (event.kind === "worker_turn_complete") {
|
|
277
326
|
this.lastSummaries.set(event.summary.project, event.summary);
|
|
327
|
+
// Resolve any in-flight task for this project to its final status.
|
|
328
|
+
// Boss can still override via update_task — this just gives it a sane
|
|
329
|
+
// default so the user's overlay-driven dispatches close out cleanly.
|
|
330
|
+
const taskId = this.inFlightTaskByProject.get(event.summary.project);
|
|
331
|
+
if (taskId) {
|
|
332
|
+
this.inFlightTaskByProject.delete(event.summary.project);
|
|
333
|
+
const task = tasksStore.byId(taskId);
|
|
334
|
+
if (task && task.status === "in_progress") {
|
|
335
|
+
const failed = event.summary.toolsUsed.some((t) => !t.ok);
|
|
336
|
+
await tasksStore.update(taskId, {
|
|
337
|
+
status: failed ? "blocked" : "done",
|
|
338
|
+
resultSummary: event.summary.finalText,
|
|
339
|
+
});
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
if (event.kind === "worker_error") {
|
|
344
|
+
const taskId = this.inFlightTaskByProject.get(event.project);
|
|
345
|
+
if (taskId) {
|
|
346
|
+
this.inFlightTaskByProject.delete(event.project);
|
|
347
|
+
await tasksStore.update(taskId, {
|
|
348
|
+
status: "blocked",
|
|
349
|
+
notes: `Worker error: ${event.message}`,
|
|
350
|
+
});
|
|
351
|
+
}
|
|
278
352
|
}
|
|
279
353
|
// Auto-compact when over 80% of context — mirrors AgentSession.runLoop.
|
|
280
354
|
// Workers handle their own compaction independently (via AgentSession).
|
|
281
355
|
await this.runCompaction(false);
|
|
282
|
-
|
|
356
|
+
// Snapshot every worker's status at the moment the event arrives so the
|
|
357
|
+
// boss reasons from live state, not from its memory of past dispatches.
|
|
358
|
+
// Without this the boss can hallucinate "all idle" mid-batch — by event
|
|
359
|
+
// 3 of 5 it has heard 3 completions and may assume the run is over even
|
|
360
|
+
// though workers 4 and 5 are still active.
|
|
361
|
+
const workerSnapshot = [...this.workers.entries()].map(([name, w]) => ({
|
|
362
|
+
name,
|
|
363
|
+
status: w.getStatus(),
|
|
364
|
+
}));
|
|
365
|
+
const text = formatEventForBoss(event, workerSnapshot);
|
|
283
366
|
bossStore.startStreaming();
|
|
284
367
|
// Fresh AbortController for this turn so ESC can cancel just this call.
|
|
285
368
|
this.turnAc = new AbortController();
|
|
@@ -353,8 +436,30 @@ export class GGBoss {
|
|
|
353
436
|
}
|
|
354
437
|
bossStore.finishStreaming();
|
|
355
438
|
await this.persistNewMessages();
|
|
439
|
+
// Auto-chain: after the boss finishes processing a worker_turn_complete,
|
|
440
|
+
// if it didn't dispatch anything for that project (worker is still idle)
|
|
441
|
+
// AND there are more pending tasks for that project, fire the next one
|
|
442
|
+
// automatically. The idle check arbitrates with the boss — if the boss
|
|
443
|
+
// DID prompt_worker / dispatch_pending / re-prompt during its turn, the
|
|
444
|
+
// worker is now "working", we skip. So this only kicks in when the boss
|
|
445
|
+
// implicitly leaves the project parked.
|
|
446
|
+
if (event.kind === "worker_turn_complete") {
|
|
447
|
+
await this.maybeAutoChain(event.summary.project);
|
|
448
|
+
}
|
|
356
449
|
}
|
|
357
450
|
}
|
|
451
|
+
async maybeAutoChain(project) {
|
|
452
|
+
const worker = this.workers.get(project);
|
|
453
|
+
if (!worker || worker.getStatus() !== "idle")
|
|
454
|
+
return;
|
|
455
|
+
if (this.inFlightTaskByProject.has(project))
|
|
456
|
+
return;
|
|
457
|
+
const next = tasksStore.nextPending(project);
|
|
458
|
+
if (!next)
|
|
459
|
+
return;
|
|
460
|
+
await tasksStore.update(next.id, { status: "in_progress" });
|
|
461
|
+
await this.dispatchTaskByDescription(project, next.description, next.fresh === true, next.id);
|
|
462
|
+
}
|
|
358
463
|
async dispose() {
|
|
359
464
|
this.running = false;
|
|
360
465
|
this.ac.abort();
|
|
@@ -367,10 +472,20 @@ export class GGBoss {
|
|
|
367
472
|
await Promise.all([...this.workers.values()].map((w) => w.dispose()));
|
|
368
473
|
}
|
|
369
474
|
}
|
|
370
|
-
function formatEventForBoss(event) {
|
|
475
|
+
function formatEventForBoss(event, workerSnapshot) {
|
|
371
476
|
if (event.kind === "user_message") {
|
|
372
477
|
return event.text;
|
|
373
478
|
}
|
|
479
|
+
// Live worker statuses, formatted as a single trailing line so the boss
|
|
480
|
+
// always sees who's still running. Excludes the worker the event is FROM
|
|
481
|
+
// (the boss can read that worker's outcome from the event body itself).
|
|
482
|
+
const renderOthers = (excludeName) => {
|
|
483
|
+
const others = workerSnapshot
|
|
484
|
+
.filter((w) => w.name !== excludeName)
|
|
485
|
+
.map((w) => `${w.name}(${w.status})`)
|
|
486
|
+
.join(" ");
|
|
487
|
+
return others.length > 0 ? `\nother_workers: ${others}` : "";
|
|
488
|
+
};
|
|
374
489
|
if (event.kind === "worker_turn_complete") {
|
|
375
490
|
const s = event.summary;
|
|
376
491
|
const tools = s.toolsUsed.length > 0
|
|
@@ -379,10 +494,10 @@ function formatEventForBoss(event) {
|
|
|
379
494
|
return `[event:worker_turn_complete] project="${s.project}" turn=${s.turnIndex} timestamp=${s.timestamp}
|
|
380
495
|
tools_used: ${tools}
|
|
381
496
|
final_text:
|
|
382
|
-
${s.finalText || "(empty)"}`;
|
|
497
|
+
${s.finalText || "(empty)"}${renderOthers(s.project)}`;
|
|
383
498
|
}
|
|
384
499
|
return `[event:worker_error] project="${event.project}" timestamp=${event.timestamp}
|
|
385
|
-
${event.message}`;
|
|
500
|
+
${event.message}${renderOthers(event.project)}`;
|
|
386
501
|
}
|
|
387
502
|
/**
|
|
388
503
|
* Total context used in tokens. Mirrors ggcoder/useAgentLoop: Anthropic counts
|
package/dist/orchestrator.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../src/orchestrator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../src/orchestrator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Provider } from "@kenkaiiii/gg-ai";
|
|
2
|
+
export interface BossSettings {
|
|
3
|
+
bossProvider?: Provider;
|
|
4
|
+
bossModel?: string;
|
|
5
|
+
workerProvider?: Provider;
|
|
6
|
+
workerModel?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function loadSettings(): Promise<BossSettings>;
|
|
9
|
+
export declare function saveSettings(patch: BossSettings): Promise<void>;
|
|
10
|
+
//# sourceMappingURL=settings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,WAAW,YAAY;IAC3B,YAAY,CAAC,EAAE,QAAQ,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,QAAQ,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAUD,wBAAsB,YAAY,IAAI,OAAO,CAAC,YAAY,CAAC,CAQ1D;AASD,wBAAsB,YAAY,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAWrE"}
|
package/dist/settings.js
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import fs from "node:fs/promises";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { getAppPaths } from "@kenkaiiii/ggcoder";
|
|
4
|
+
function settingsPath() {
|
|
5
|
+
return path.join(getAppPaths().agentDir, "boss", "settings.json");
|
|
6
|
+
}
|
|
7
|
+
async function ensureDir() {
|
|
8
|
+
await fs.mkdir(path.dirname(settingsPath()), { recursive: true, mode: 0o700 });
|
|
9
|
+
}
|
|
10
|
+
export async function loadSettings() {
|
|
11
|
+
try {
|
|
12
|
+
const content = await fs.readFile(settingsPath(), "utf-8");
|
|
13
|
+
const parsed = JSON.parse(content);
|
|
14
|
+
return parsed && typeof parsed === "object" ? parsed : {};
|
|
15
|
+
}
|
|
16
|
+
catch {
|
|
17
|
+
return {};
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Atomic write — write to .tmp then rename. Mirrors tasks-store's pattern;
|
|
22
|
+
* model swaps from /model and /worker-model can fire close together when the
|
|
23
|
+
* user is reconfiguring quickly.
|
|
24
|
+
*/
|
|
25
|
+
let writeChain = Promise.resolve();
|
|
26
|
+
export async function saveSettings(patch) {
|
|
27
|
+
const next = writeChain.then(async () => {
|
|
28
|
+
const current = await loadSettings();
|
|
29
|
+
const merged = { ...current, ...patch };
|
|
30
|
+
await ensureDir();
|
|
31
|
+
const tmp = `${settingsPath()}.${process.pid}.tmp`;
|
|
32
|
+
await fs.writeFile(tmp, JSON.stringify(merged, null, 2) + "\n", "utf-8");
|
|
33
|
+
await fs.rename(tmp, settingsPath());
|
|
34
|
+
});
|
|
35
|
+
writeChain = next.catch(() => undefined);
|
|
36
|
+
await next;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=settings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAUjD,SAAS,YAAY;IACnB,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;AACpE,CAAC;AAED,KAAK,UAAU,SAAS;IACtB,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AACjF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,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,CAAiB,CAAC;QACnD,OAAO,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,IAAI,UAAU,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAC;AAElD,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,KAAmB;IACpD,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;QACtC,MAAM,OAAO,GAAG,MAAM,YAAY,EAAE,CAAC;QACrC,MAAM,MAAM,GAAiB,EAAE,GAAG,OAAO,EAAE,GAAG,KAAK,EAAE,CAAC;QACtD,MAAM,SAAS,EAAE,CAAC;QAClB,MAAM,GAAG,GAAG,GAAG,YAAY,EAAE,IAAI,OAAO,CAAC,GAAG,MAAM,CAAC;QACnD,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;QACzE,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IACH,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IACzC,MAAM,IAAI,CAAC;AACb,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slash-commands.d.ts","sourceRoot":"","sources":["../src/slash-commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"slash-commands.d.ts","sourceRoot":"","sources":["../src/slash-commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,EAAE,gBAAgB,EAUjD,CAAC;AAEF,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAErD;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI,CAOnE;AAED,qDAAqD;AACrD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMzD;AAED,wBAAgB,aAAa,IAAI,MAAM,CAYtC"}
|
package/dist/slash-commands.js
CHANGED
|
@@ -10,6 +10,7 @@ export const BOSS_SLASH_COMMANDS = [
|
|
|
10
10
|
{ name: "model-boss", aliases: [], description: "Switch the orchestrator's model" },
|
|
11
11
|
{ name: "model-workers", aliases: [], description: "Switch every worker's model" },
|
|
12
12
|
{ name: "compact", aliases: [], description: "Compact the boss's context now" },
|
|
13
|
+
{ name: "tasks", aliases: ["t"], description: "Open the Tasks overlay (Ctrl+T)" },
|
|
13
14
|
{ name: "new", aliases: ["n"], description: "Start a fresh boss session" },
|
|
14
15
|
{ name: "clear", aliases: [], description: "Clear chat history (workers untouched)" },
|
|
15
16
|
{ name: "workers", aliases: ["w"], description: "List linked workers and their status" },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slash-commands.js","sourceRoot":"","sources":["../src/slash-commands.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"slash-commands.js","sourceRoot":"","sources":["../src/slash-commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { AgentTool } from "@kenkaiiii/gg-agent";
|
|
2
|
+
import type { Worker } from "./worker.js";
|
|
3
|
+
export interface TaskToolDeps {
|
|
4
|
+
workers: Map<string, Worker>;
|
|
5
|
+
/**
|
|
6
|
+
* Hook the orchestrator provides so dispatch_pending can fire-and-forget
|
|
7
|
+
* a worker prompt and update task state on completion. Mirrors the
|
|
8
|
+
* fire-and-forget contract of plain prompt_worker.
|
|
9
|
+
*/
|
|
10
|
+
dispatchTaskByDescription: (project: string, description: string, fresh: boolean, taskId: string) => Promise<{
|
|
11
|
+
ok: true;
|
|
12
|
+
} | {
|
|
13
|
+
ok: false;
|
|
14
|
+
reason: string;
|
|
15
|
+
}>;
|
|
16
|
+
}
|
|
17
|
+
export declare function createTaskTools(deps: TaskToolDeps): AgentTool[];
|
|
18
|
+
//# sourceMappingURL=task-tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-tools.d.ts","sourceRoot":"","sources":["../src/task-tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGrD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAS1C,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B;;;;OAIG;IACH,yBAAyB,EAAE,CACzB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,MAAM,KACX,OAAO,CAAC;QAAE,EAAE,EAAE,IAAI,CAAA;KAAE,GAAG;QAAE,EAAE,EAAE,KAAK,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC5D;AAiDD,wBAAgB,eAAe,CAAC,IAAI,EAAE,YAAY,GAAG,SAAS,EAAE,CA0H/D"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { tasksStore } from "./tasks-store.js";
|
|
3
|
+
import { bossStore } from "./boss-store.js";
|
|
4
|
+
/**
|
|
5
|
+
* Once-per-process flag so we surface the Ctrl+T / r hint a single time per
|
|
6
|
+
* ggboss session. Repeating it on every add_task would bury the chat in
|
|
7
|
+
* advice the user already absorbed.
|
|
8
|
+
*/
|
|
9
|
+
let tasksHintShown = false;
|
|
10
|
+
const addTaskParams = z.object({
|
|
11
|
+
project: z.string().describe("Project name (must match a linked worker)."),
|
|
12
|
+
title: z.string().describe("Short one-line summary shown in the task overlay."),
|
|
13
|
+
description: z
|
|
14
|
+
.string()
|
|
15
|
+
.describe("Full instruction sent to the worker when this task is dispatched. Should be specific and actionable."),
|
|
16
|
+
fresh: z
|
|
17
|
+
.boolean()
|
|
18
|
+
.optional()
|
|
19
|
+
.describe("If true, the worker's session is wiped before this task runs. Use for unrelated direction changes."),
|
|
20
|
+
});
|
|
21
|
+
const listTasksParams = z.object({
|
|
22
|
+
project: z.string().optional().describe("Filter to one project."),
|
|
23
|
+
status: z
|
|
24
|
+
.enum(["pending", "in_progress", "done", "blocked", "skipped"])
|
|
25
|
+
.optional()
|
|
26
|
+
.describe("Filter by status."),
|
|
27
|
+
});
|
|
28
|
+
const updateTaskParams = z.object({
|
|
29
|
+
id: z.string().describe("Task id from list_tasks."),
|
|
30
|
+
status: z
|
|
31
|
+
.enum(["pending", "in_progress", "done", "blocked", "skipped"])
|
|
32
|
+
.optional()
|
|
33
|
+
.describe("New status."),
|
|
34
|
+
notes: z.string().optional().describe("Boss commentary / blocker reason / outcome notes."),
|
|
35
|
+
});
|
|
36
|
+
const dispatchPendingParams = z.object({
|
|
37
|
+
project: z
|
|
38
|
+
.string()
|
|
39
|
+
.optional()
|
|
40
|
+
.describe("Limit dispatch to one project. Omit to dispatch the next pending task for EVERY idle worker (parallel fan-out)."),
|
|
41
|
+
});
|
|
42
|
+
function formatTask(t) {
|
|
43
|
+
const head = `[${t.id}] ${t.project} · ${t.status} · ${t.title}`;
|
|
44
|
+
return t.notes ? `${head} (${t.notes})` : head;
|
|
45
|
+
}
|
|
46
|
+
export function createTaskTools(deps) {
|
|
47
|
+
const { workers, dispatchTaskByDescription } = deps;
|
|
48
|
+
const addTask = {
|
|
49
|
+
name: "add_task",
|
|
50
|
+
description: "Add a task to the boss's plan for a specific project. Tasks are persisted across sessions and visible in the Tasks overlay (Ctrl+T).",
|
|
51
|
+
parameters: addTaskParams,
|
|
52
|
+
async execute(args) {
|
|
53
|
+
if (!workers.has(args.project))
|
|
54
|
+
return `Unknown project: ${args.project}`;
|
|
55
|
+
const t = await tasksStore.add({
|
|
56
|
+
project: args.project,
|
|
57
|
+
title: args.title,
|
|
58
|
+
description: args.description,
|
|
59
|
+
fresh: args.fresh,
|
|
60
|
+
});
|
|
61
|
+
// First add_task per session — surface the keybind hint so the user
|
|
62
|
+
// knows where to find what was just added and how to fire it off.
|
|
63
|
+
// Subsequent add_tasks stay silent.
|
|
64
|
+
if (!tasksHintShown) {
|
|
65
|
+
tasksHintShown = true;
|
|
66
|
+
bossStore.appendInfo("Press Ctrl+T to open the Tasks pane, then `r` to run all pending tasks.", "info");
|
|
67
|
+
}
|
|
68
|
+
return `Added [${t.id}] ${t.project} · ${t.title}`;
|
|
69
|
+
},
|
|
70
|
+
};
|
|
71
|
+
const listTasks = {
|
|
72
|
+
name: "list_tasks",
|
|
73
|
+
description: "List tasks in the boss's plan, optionally filtered by project and/or status. Returns task ids so you can update or dispatch them.",
|
|
74
|
+
parameters: listTasksParams,
|
|
75
|
+
execute(args) {
|
|
76
|
+
const xs = tasksStore.list({
|
|
77
|
+
project: args.project,
|
|
78
|
+
status: args.status,
|
|
79
|
+
});
|
|
80
|
+
if (xs.length === 0)
|
|
81
|
+
return "(no tasks)";
|
|
82
|
+
return xs.map(formatTask).join("\n");
|
|
83
|
+
},
|
|
84
|
+
};
|
|
85
|
+
const updateTask = {
|
|
86
|
+
name: "update_task",
|
|
87
|
+
description: "Update a task's status and/or notes. Use this after a worker_turn_complete to mark the task DONE / BLOCKED / SKIPPED. The notes field is for boss commentary or blocker reasons.",
|
|
88
|
+
parameters: updateTaskParams,
|
|
89
|
+
async execute(args) {
|
|
90
|
+
const updated = await tasksStore.update(args.id, {
|
|
91
|
+
status: args.status,
|
|
92
|
+
notes: args.notes,
|
|
93
|
+
});
|
|
94
|
+
if (!updated)
|
|
95
|
+
return `Unknown task id: ${args.id}`;
|
|
96
|
+
return `Updated ${formatTask(updated)}`;
|
|
97
|
+
},
|
|
98
|
+
};
|
|
99
|
+
const dispatchPending = {
|
|
100
|
+
name: "dispatch_pending",
|
|
101
|
+
description: "Send the next pending task for one project (or for every idle worker if no project is given) via prompt_worker. Marks each dispatched task as in_progress. FIRE-AND-FORGET — listen for worker_turn_complete events as usual. Use this as the 'go' button after planning.",
|
|
102
|
+
parameters: dispatchPendingParams,
|
|
103
|
+
async execute(args) {
|
|
104
|
+
const targetProjects = args.project
|
|
105
|
+
? [args.project]
|
|
106
|
+
: [...workers.entries()].filter(([, w]) => w.getStatus() === "idle").map(([name]) => name);
|
|
107
|
+
if (targetProjects.length === 0) {
|
|
108
|
+
return "No idle workers to dispatch to.";
|
|
109
|
+
}
|
|
110
|
+
const dispatched = [];
|
|
111
|
+
const skipped = [];
|
|
112
|
+
for (const project of targetProjects) {
|
|
113
|
+
const worker = workers.get(project);
|
|
114
|
+
if (!worker) {
|
|
115
|
+
skipped.push(`${project}: unknown project`);
|
|
116
|
+
continue;
|
|
117
|
+
}
|
|
118
|
+
if (worker.getStatus() === "working") {
|
|
119
|
+
skipped.push(`${project}: worker is busy`);
|
|
120
|
+
continue;
|
|
121
|
+
}
|
|
122
|
+
const next = tasksStore.nextPending(project);
|
|
123
|
+
if (!next) {
|
|
124
|
+
skipped.push(`${project}: no pending tasks`);
|
|
125
|
+
continue;
|
|
126
|
+
}
|
|
127
|
+
await tasksStore.update(next.id, { status: "in_progress" });
|
|
128
|
+
const result = await dispatchTaskByDescription(project, next.description, next.fresh === true, next.id);
|
|
129
|
+
if (result.ok) {
|
|
130
|
+
dispatched.push(`${project}: [${next.id}] ${next.title}`);
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
// Roll back to pending if dispatch failed.
|
|
134
|
+
await tasksStore.update(next.id, { status: "pending" });
|
|
135
|
+
skipped.push(`${project}: ${result.reason}`);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
const lines = [];
|
|
139
|
+
if (dispatched.length > 0) {
|
|
140
|
+
lines.push(`Dispatched ${dispatched.length}:`);
|
|
141
|
+
for (const d of dispatched)
|
|
142
|
+
lines.push(` ✓ ${d}`);
|
|
143
|
+
}
|
|
144
|
+
if (skipped.length > 0) {
|
|
145
|
+
lines.push(`Skipped ${skipped.length}:`);
|
|
146
|
+
for (const s of skipped)
|
|
147
|
+
lines.push(` · ${s}`);
|
|
148
|
+
}
|
|
149
|
+
return lines.join("\n");
|
|
150
|
+
},
|
|
151
|
+
};
|
|
152
|
+
return [addTask, listTasks, updateTask, dispatchPending];
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=task-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-tools.js","sourceRoot":"","sources":["../src/task-tools.ts"],"names":[],"mappings":"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"}
|