@kenkaiiii/ggcoder 5.14.0 → 5.15.0
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/app-sidecar.js +49 -4
- package/dist/app-sidecar.js.map +1 -1
- package/dist/chat-agents/index.d.ts +2 -0
- package/dist/chat-agents/index.d.ts.map +1 -1
- package/dist/chat-agents/index.js +40 -50
- package/dist/chat-agents/index.js.map +1 -1
- package/dist/chat-agents/shared.d.ts +2 -0
- package/dist/chat-agents/shared.d.ts.map +1 -1
- package/dist/chat-agents/shared.js +16 -12
- package/dist/chat-agents/shared.js.map +1 -1
- package/dist/chat-agents/specialists.test.js +35 -1
- package/dist/chat-agents/specialists.test.js.map +1 -1
- package/dist/core/agent-session.d.ts +2 -0
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +16 -0
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/session-manager.d.ts +1 -1
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +2 -1
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/session-manager.test.js +18 -0
- package/dist/core/session-manager.test.js.map +1 -1
- package/package.json +4 -4
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import { createGeneralChatAgent } from "./general.js";
|
|
3
|
-
import { createResearchChatAgent } from "./research.js";
|
|
4
|
-
import { createTherapistChatAgent } from "./therapist.js";
|
|
5
|
-
import { chatAgentSessionsDir } from "./shared.js";
|
|
2
|
+
import { createGeneralChatAgent, GENERAL_CHAT_SYSTEM_PROMPT } from "./general.js";
|
|
3
|
+
import { createResearchChatAgent, RESEARCH_CHAT_SYSTEM_PROMPT } from "./research.js";
|
|
4
|
+
import { createTherapistChatAgent, THERAPIST_CHAT_SYSTEM_PROMPT } from "./therapist.js";
|
|
5
|
+
import { buildChatAgentSystemPrompt, chatAgentSessionsDir, } from "./shared.js";
|
|
6
6
|
import { parseChatAgentId } from "./types.js";
|
|
7
7
|
export { CHAT_AGENT_IDS, parseChatAgentId } from "./types.js";
|
|
8
8
|
export { chatAgentSessionsDir } from "./shared.js";
|
|
@@ -11,61 +11,38 @@ export const CHAT_AGENT_LABELS = {
|
|
|
11
11
|
therapist: "Therapist Agent",
|
|
12
12
|
research: "Research Agent",
|
|
13
13
|
};
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
return message.content;
|
|
20
|
-
if (!Array.isArray(message.content))
|
|
21
|
-
return String(message.content);
|
|
22
|
-
const text = message.content
|
|
23
|
-
.filter((block) => typeof block === "object" &&
|
|
24
|
-
block !== null &&
|
|
25
|
-
"type" in block &&
|
|
26
|
-
block.type === "text" &&
|
|
27
|
-
"text" in block &&
|
|
28
|
-
typeof block.text === "string")
|
|
29
|
-
.map((block) => block.text)
|
|
30
|
-
.join("\n");
|
|
31
|
-
return text || "The delegated agent completed without a written result.";
|
|
32
|
-
}
|
|
14
|
+
const CHAT_AGENT_PROMPTS = {
|
|
15
|
+
general: GENERAL_CHAT_SYSTEM_PROMPT,
|
|
16
|
+
therapist: THERAPIST_CHAT_SYSTEM_PROMPT,
|
|
17
|
+
research: RESEARCH_CHAT_SYSTEM_PROMPT,
|
|
18
|
+
};
|
|
33
19
|
const delegationParameters = z.object({
|
|
34
|
-
agent: z.enum(["general", "therapist", "research"]).describe("
|
|
35
|
-
task: z.string().min(1).describe("Self-contained task, context, constraints, and desired output"),
|
|
20
|
+
agent: z.enum(["general", "therapist", "research"]).describe("Agent to hand off to"),
|
|
36
21
|
});
|
|
37
|
-
|
|
22
|
+
const chatAgentControllers = new WeakMap();
|
|
23
|
+
function createDelegationTool(getController) {
|
|
38
24
|
return {
|
|
39
25
|
name: "delegate_to_agent",
|
|
40
|
-
description: "
|
|
26
|
+
description: "Hand the entire ongoing conversation to a different active agent. Therapist handles emotional support, reflection, coping, relationships, and wellbeing. Research handles evidence, sources, current information, comparisons, and deep analysis. General handles broad conversation that no longer needs a specialist. This is a persistent handoff, not a one-off subtask.",
|
|
41
27
|
parameters: delegationParameters,
|
|
42
28
|
executionMode: "sequential",
|
|
43
|
-
async execute({ agent
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
const { sessionId: _sessionId, continueRecent: _continueRecent, ...delegatedOptions } = options;
|
|
48
|
-
const parent = getParentSession();
|
|
49
|
-
const parentState = parent.getState();
|
|
50
|
-
const delegated = createChatAgent(agent, {
|
|
51
|
-
...delegatedOptions,
|
|
52
|
-
provider: parentState.provider,
|
|
53
|
-
model: parentState.model,
|
|
54
|
-
thinkingLevel: parent.getThinkingLevel(),
|
|
55
|
-
signal: context.signal,
|
|
56
|
-
transient: true,
|
|
57
|
-
}, false);
|
|
58
|
-
try {
|
|
59
|
-
await delegated.initialize();
|
|
60
|
-
await delegated.prompt(task);
|
|
61
|
-
return finalAssistantText(delegated);
|
|
62
|
-
}
|
|
63
|
-
finally {
|
|
64
|
-
await delegated.dispose().catch(() => { });
|
|
29
|
+
async execute({ agent }) {
|
|
30
|
+
const controller = getController();
|
|
31
|
+
if (agent === controller.current) {
|
|
32
|
+
return `Already running as ${CHAT_AGENT_LABELS[controller.current]}; continue directly.`;
|
|
65
33
|
}
|
|
34
|
+
await controller.switchTo(agent, true);
|
|
35
|
+
return `Handoff complete. ${CHAT_AGENT_LABELS[agent]} is now the active agent for this conversation. Continue from the full conversation history in that role.`;
|
|
66
36
|
},
|
|
67
37
|
};
|
|
68
38
|
}
|
|
39
|
+
/** Switch an existing chat session without resetting its conversation history. */
|
|
40
|
+
export async function switchChatAgent(session, agentId, notify = true) {
|
|
41
|
+
const controller = chatAgentControllers.get(session);
|
|
42
|
+
if (!controller)
|
|
43
|
+
throw new Error("Session is not a chat agent");
|
|
44
|
+
return controller.switchTo(agentId, notify);
|
|
45
|
+
}
|
|
69
46
|
export function createChatAgent(agentId, options, delegationEnabled = true) {
|
|
70
47
|
let session;
|
|
71
48
|
const sessionOptions = delegationEnabled
|
|
@@ -73,7 +50,7 @@ export function createChatAgent(agentId, options, delegationEnabled = true) {
|
|
|
73
50
|
...options,
|
|
74
51
|
additionalTools: [
|
|
75
52
|
...(options.additionalTools ?? []),
|
|
76
|
-
createDelegationTool(
|
|
53
|
+
createDelegationTool(() => controller),
|
|
77
54
|
],
|
|
78
55
|
}
|
|
79
56
|
: {
|
|
@@ -91,6 +68,19 @@ export function createChatAgent(agentId, options, delegationEnabled = true) {
|
|
|
91
68
|
session = createGeneralChatAgent(sessionOptions);
|
|
92
69
|
break;
|
|
93
70
|
}
|
|
71
|
+
const controller = {
|
|
72
|
+
current: agentId,
|
|
73
|
+
async switchTo(nextAgent, notify) {
|
|
74
|
+
if (nextAgent === controller.current)
|
|
75
|
+
return false;
|
|
76
|
+
controller.current = nextAgent;
|
|
77
|
+
session.setCustomSystemPrompt(buildChatAgentSystemPrompt(nextAgent, CHAT_AGENT_PROMPTS[nextAgent], options.cwd, delegationEnabled), `ggchat:${nextAgent}`);
|
|
78
|
+
if (notify)
|
|
79
|
+
await options.onAgentChange?.(nextAgent);
|
|
80
|
+
return true;
|
|
81
|
+
},
|
|
82
|
+
};
|
|
83
|
+
chatAgentControllers.set(session, controller);
|
|
94
84
|
return session;
|
|
95
85
|
}
|
|
96
86
|
export function sessionsDirForChatAgent(coderSessionsDir, value) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/chat-agents/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/chat-agents/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,8 +2,10 @@ import { AgentSession, type AgentSessionOptions } from "../core/agent-session.js
|
|
|
2
2
|
import type { ChatAgentId } from "./types.js";
|
|
3
3
|
export type ChatAgentOptions = Omit<AgentSessionOptions, "systemPrompt" | "promptCacheKeyPrefix" | "sessionRootDir" | "coderSlashCommands" | "selfCorrectionHooks" | "projectCustomization" | "globalSubagents" | "loadExtensions" | "orchestrationPrompt" | "onEnterPlan" | "onExitPlan"> & {
|
|
4
4
|
sessionsDir: string;
|
|
5
|
+
onAgentChange?: (agentId: ChatAgentId) => void | Promise<void>;
|
|
5
6
|
};
|
|
6
7
|
export declare function chatAgentSessionsDir(coderSessionsDir: string, agentId: ChatAgentId): string;
|
|
8
|
+
export declare function buildChatAgentSystemPrompt(agentId: ChatAgentId, rolePrompt: string, cwd: string, handoffEnabled: boolean): string;
|
|
7
9
|
/** Create a chat agent on the shared caching/compaction spine without GG Coder behavior. */
|
|
8
10
|
export declare function createChatAgentSession(agentId: ChatAgentId, systemPrompt: string, options: ChatAgentOptions): AgentSession;
|
|
9
11
|
//# sourceMappingURL=shared.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/chat-agents/shared.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAClF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,MAAM,gBAAgB,GAAG,IAAI,CACjC,mBAAmB,EACjB,cAAc,GACd,sBAAsB,GACtB,gBAAgB,GAChB,oBAAoB,GACpB,qBAAqB,GACrB,sBAAsB,GACtB,iBAAiB,GACjB,gBAAgB,GAChB,qBAAqB,GACrB,aAAa,GACb,YAAY,CACf,GAAG;IACF,WAAW,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/chat-agents/shared.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAClF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,MAAM,gBAAgB,GAAG,IAAI,CACjC,mBAAmB,EACjB,cAAc,GACd,sBAAsB,GACtB,gBAAgB,GAChB,oBAAoB,GACpB,qBAAqB,GACrB,sBAAsB,GACtB,iBAAiB,GACjB,gBAAgB,GAChB,qBAAqB,GACrB,aAAa,GACb,YAAY,CACf,GAAG;IACF,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAChE,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,gBAAgB,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,MAAM,CAE3F;AAOD,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,MAAM,EACX,cAAc,EAAE,OAAO,GACtB,MAAM,CAaR;AAED,4FAA4F;AAC5F,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,WAAW,EACpB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,gBAAgB,GACxB,YAAY,CAgCd"}
|
|
@@ -7,30 +7,34 @@ const MEMORY_CURATION_INSTRUCTIONS = `
|
|
|
7
7
|
|
|
8
8
|
Durable memory curation:
|
|
9
9
|
You can curate the shared durable memory available to General, Therapist, and Research with remember, update_memory, and forget. Save only facts that materially help future sessions: identity, stable preferences, ongoing projects or goals, important relationships or dates, recurring constraints, and significant health or work context. Never save one-off task details, full conversation summaries, readily recomputable facts, speculation, credentials, secrets, or transient emotion. Store one concise, self-contained fact per memory. Update or supersede changed facts instead of creating contradictions. Forget stale, wrong, or redundant facts, and honor explicit requests to forget. Curate silently and naturally; never claim to remember anything beyond the injected durable memory block. Memory IDs in the current injected block are authoritative and supersede IDs mentioned earlier in conversation history. When memory reaches its consolidation threshold, combine related facts with update_memory and remove stale or redundant entries. Prefer update_memory's forget_ids option to merge and delete each related group atomically; for large cleanups, work in small verifiable batches across turns instead of risking the wrong rows.`;
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const sessionRootDir = chatAgentSessionsDir(sessionsDir, agentId);
|
|
14
|
-
const requestedSession = sessionOptions.sessionId ? path.resolve(sessionOptions.sessionId) : null;
|
|
15
|
-
const resumableSession = requestedSession?.startsWith(`${sessionRootDir}${path.sep}`) === true
|
|
16
|
-
? requestedSession
|
|
17
|
-
: undefined;
|
|
18
|
-
const delegationInstructions = sessionOptions.additionalTools?.some((tool) => tool.name === "delegate_to_agent")
|
|
19
|
-
? `\n\nDelegation:\nYou can call delegate_to_agent to ask one specialist chat agent for a focused result. Route emotional support, reflection, coping, relationships, or wellbeing to Therapist. Route evidence gathering, source verification, comparisons, current information, or deep analysis to Research. Route broad cross-domain tasks that do not fit those specialties to General. Delegate when the user's request clearly benefits from that expertise or from an independent pass. Give the delegate a self-contained task with the relevant context, constraints, and desired output, then critically synthesize its result for the user rather than forwarding it blindly. Do not delegate trivial requests, do not delegate reflexively, and do not delegate work you can answer just as well yourself. For substantial tasks that benefit from independent parallel investigation or an isolated specialist pass, you may also use the subagent tools; use them selectively rather than proactively on routine requests.`
|
|
10
|
+
export function buildChatAgentSystemPrompt(agentId, rolePrompt, cwd, handoffEnabled) {
|
|
11
|
+
const handoffInstructions = handoffEnabled
|
|
12
|
+
? `\n\nAgent handoff:\nYou can call delegate_to_agent to hand the entire conversation to a better-suited agent. Hand off to Therapist when the conversation primarily needs emotional support, reflection, coping, relationships, or wellbeing. Hand off to Research when it primarily needs evidence gathering, source verification, comparisons, current information, or deep analysis. Hand off to General when the conversation becomes broad or no longer needs a specialist. A handoff changes the active agent for this conversation; it is not a one-off subtask. Use it when the conversation's primary need clearly shifts, not for a brief side question or work you can handle naturally.`
|
|
20
13
|
: "";
|
|
21
14
|
const runtimeContext = [
|
|
22
15
|
"Runtime context:",
|
|
23
16
|
`- Active agent: ${agentId}`,
|
|
24
17
|
`- Current date: ${new Date().toISOString().slice(0, 10)}`,
|
|
25
|
-
`- Workspace root: ${
|
|
18
|
+
`- Workspace root: ${cwd}`,
|
|
26
19
|
"- Conversation history and tool results are the authoritative changing context for this session.",
|
|
27
20
|
].join("\n");
|
|
21
|
+
return `${rolePrompt}${MEMORY_CURATION_INSTRUCTIONS}${handoffInstructions}\n\n${runtimeContext}`;
|
|
22
|
+
}
|
|
23
|
+
/** Create a chat agent on the shared caching/compaction spine without GG Coder behavior. */
|
|
24
|
+
export function createChatAgentSession(agentId, systemPrompt, options) {
|
|
25
|
+
const { sessionsDir, onAgentChange: _onAgentChange, ...sessionOptions } = options;
|
|
26
|
+
const sessionRootDir = chatAgentSessionsDir(sessionsDir, agentId);
|
|
27
|
+
const requestedSession = sessionOptions.sessionId ? path.resolve(sessionOptions.sessionId) : null;
|
|
28
|
+
const resumableSession = requestedSession?.startsWith(`${sessionRootDir}${path.sep}`) === true
|
|
29
|
+
? requestedSession
|
|
30
|
+
: undefined;
|
|
31
|
+
const handoffEnabled = sessionOptions.additionalTools?.some((tool) => tool.name === "delegate_to_agent");
|
|
28
32
|
return new AgentSession({
|
|
29
33
|
...sessionOptions,
|
|
30
34
|
sessionId: resumableSession,
|
|
31
35
|
// Keep the stable role prompt first so provider prefix caching can reuse it;
|
|
32
36
|
// append only the small per-session context that genuinely changes.
|
|
33
|
-
systemPrompt:
|
|
37
|
+
systemPrompt: buildChatAgentSystemPrompt(agentId, systemPrompt, sessionOptions.cwd, handoffEnabled === true),
|
|
34
38
|
promptCacheKeyPrefix: `ggchat:${agentId}`,
|
|
35
39
|
sessionRootDir,
|
|
36
40
|
coderSlashCommands: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/chat-agents/shared.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,YAAY,EAA4B,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/chat-agents/shared.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,YAAY,EAA4B,MAAM,0BAA0B,CAAC;AAqBlF,MAAM,UAAU,oBAAoB,CAAC,gBAAwB,EAAE,OAAoB;IACjF,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,4BAA4B,GAAG;;;itCAG4qC,CAAC;AAEltC,MAAM,UAAU,0BAA0B,CACxC,OAAoB,EACpB,UAAkB,EAClB,GAAW,EACX,cAAuB;IAEvB,MAAM,mBAAmB,GAAG,cAAc;QACxC,CAAC,CAAC,oqBAAoqB;QACtqB,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,cAAc,GAAG;QACrB,kBAAkB;QAClB,mBAAmB,OAAO,EAAE;QAC5B,mBAAmB,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;QAC1D,qBAAqB,GAAG,EAAE;QAC1B,kGAAkG;KACnG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,OAAO,GAAG,UAAU,GAAG,4BAA4B,GAAG,mBAAmB,OAAO,cAAc,EAAE,CAAC;AACnG,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,sBAAsB,CACpC,OAAoB,EACpB,YAAoB,EACpB,OAAyB;IAEzB,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,cAAc,EAAE,GAAG,OAAO,CAAC;IAClF,MAAM,cAAc,GAAG,oBAAoB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAClE,MAAM,gBAAgB,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAClG,MAAM,gBAAgB,GACpB,gBAAgB,EAAE,UAAU,CAAC,GAAG,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI;QACnE,CAAC,CAAC,gBAAgB;QAClB,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,cAAc,GAAG,cAAc,CAAC,eAAe,EAAE,IAAI,CACzD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,mBAAmB,CAC5C,CAAC;IAEF,OAAO,IAAI,YAAY,CAAC;QACtB,GAAG,cAAc;QACjB,SAAS,EAAE,gBAAgB;QAC3B,6EAA6E;QAC7E,oEAAoE;QACpE,YAAY,EAAE,0BAA0B,CACtC,OAAO,EACP,YAAY,EACZ,cAAc,CAAC,GAAG,EAClB,cAAc,KAAK,IAAI,CACxB;QACD,oBAAoB,EAAE,UAAU,OAAO,EAAE;QACzC,cAAc;QACd,kBAAkB,EAAE,KAAK;QACzB,mBAAmB,EAAE,KAAK;QAC1B,oBAAoB,EAAE,KAAK;QAC3B,eAAe,EAAE,IAAI;QACrB,cAAc,EAAE,KAAK;QACrB,mBAAmB,EAAE,KAAK;KAC3B,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -21,6 +21,8 @@ describe("specialist chat agents", () => {
|
|
|
21
21
|
expect(options.sessionRootDir).toBe("/tmp/gg/chat-sessions/therapist");
|
|
22
22
|
expect(options.allowedTools).toBeUndefined();
|
|
23
23
|
expect(options.additionalTools?.map((tool) => tool.name)).toContain("delegate_to_agent");
|
|
24
|
+
expect(options.systemPrompt).toContain("hand the entire conversation");
|
|
25
|
+
expect(options.systemPrompt).toContain("not a one-off subtask");
|
|
24
26
|
expect(options.systemPrompt).toContain("Durable memory curation:");
|
|
25
27
|
expect(options.selfCorrectionHooks).toBe(false);
|
|
26
28
|
});
|
|
@@ -34,7 +36,7 @@ describe("specialist chat agents", () => {
|
|
|
34
36
|
expect(options.allowedTools).toBeUndefined();
|
|
35
37
|
expect(options.additionalTools?.map((tool) => tool.name)).toContain("delegate_to_agent");
|
|
36
38
|
});
|
|
37
|
-
it("retains memory tools and dynamic context
|
|
39
|
+
it("retains memory tools and dynamic context when handoff is disabled", () => {
|
|
38
40
|
const memoryTool = {
|
|
39
41
|
name: "remember",
|
|
40
42
|
description: "test memory tool",
|
|
@@ -54,6 +56,38 @@ describe("specialist chat agents", () => {
|
|
|
54
56
|
expect(options.additionalTools?.map((tool) => tool.name)).toEqual(["remember"]);
|
|
55
57
|
expect(options.getSystemPromptTail).toBe(getSystemPromptTail);
|
|
56
58
|
});
|
|
59
|
+
it("hands off the live session while preserving its conversation", async () => {
|
|
60
|
+
const changed = [];
|
|
61
|
+
const agent = createChatAgent("general", {
|
|
62
|
+
provider: "anthropic",
|
|
63
|
+
model: "claude-test",
|
|
64
|
+
cwd: "/tmp/workspace",
|
|
65
|
+
sessionsDir: "/tmp/gg/sessions",
|
|
66
|
+
onAgentChange: (agentId) => {
|
|
67
|
+
changed.push(agentId);
|
|
68
|
+
},
|
|
69
|
+
});
|
|
70
|
+
const internals = agent;
|
|
71
|
+
internals.messages = [
|
|
72
|
+
{ role: "system", content: String(internals.opts.systemPrompt) },
|
|
73
|
+
{ role: "user", content: "existing conversation sentinel" },
|
|
74
|
+
];
|
|
75
|
+
const tool = internals.opts.additionalTools?.find((candidate) => candidate.name === "delegate_to_agent");
|
|
76
|
+
const result = await tool?.execute({ agent: "therapist" }, {
|
|
77
|
+
signal: new AbortController().signal,
|
|
78
|
+
});
|
|
79
|
+
expect(String(result)).toContain("Therapist Agent is now the active agent");
|
|
80
|
+
expect(changed).toEqual(["therapist"]);
|
|
81
|
+
expect(agent.getMessages()).toHaveLength(2);
|
|
82
|
+
expect(agent.getMessages()[1]?.content).toBe("existing conversation sentinel");
|
|
83
|
+
expect(agent.getMessages()[0]?.content).toContain(THERAPIST_CHAT_SYSTEM_PROMPT);
|
|
84
|
+
expect(agent.getMessages()[0]?.content).toContain("- Active agent: therapist");
|
|
85
|
+
await tool?.execute({ agent: "general" }, {
|
|
86
|
+
signal: new AbortController().signal,
|
|
87
|
+
});
|
|
88
|
+
expect(changed).toEqual(["therapist", "general"]);
|
|
89
|
+
expect(agent.getMessages()[0]?.content).toContain("- Active agent: general");
|
|
90
|
+
});
|
|
57
91
|
it("defaults unknown persisted agent ids to General", () => {
|
|
58
92
|
expect(parseChatAgentId("therapist")).toBe("therapist");
|
|
59
93
|
expect(parseChatAgentId("research")).toBe("research");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"specialists.test.js","sourceRoot":"","sources":["../../src/chat-agents/specialists.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAC;AAE9D,SAAS,UAAU,CAAC,OAAiC;IACnD,MAAM,KAAK,GAAG,eAAe,CAAC,OAAO,EAAE;QACrC,QAAQ,EAAE,WAAW;QACrB,KAAK,EAAE,aAAa;QACpB,GAAG,EAAE,gBAAgB;QACrB,WAAW,EAAE,kBAAkB;KAChC,CAAC,CAAC;IACH,OAAQ,KAAkD,CAAC,IAAI,CAAC;AAClE,CAAC;AAED,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,EAAE,CAAC,yEAAyE,EAAE,GAAG,EAAE;QACjF,MAAM,OAAO,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;QACxC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,4BAA4B,CAAC,CAAC;QACrE,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC;QACpE,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC9D,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QACvE,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,aAAa,EAAE,CAAC;QAC7C,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;QACzF,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC;QACnE,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wEAAwE,EAAE,GAAG,EAAE;QAChF,MAAM,OAAO,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;QACvC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC;QACpE,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC;QACnE,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC;QAC1E,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC7D,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QACtE,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,aAAa,EAAE,CAAC;QAC7C,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;IAC3F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"specialists.test.js","sourceRoot":"","sources":["../../src/chat-agents/specialists.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -325,6 +325,8 @@ export declare class AgentSession {
|
|
|
325
325
|
listBackgroundProcesses(): BackgroundProcess[];
|
|
326
326
|
/** Stop a background process by id. Returns a human-readable status string. */
|
|
327
327
|
killBackgroundProcess(id: string): Promise<string>;
|
|
328
|
+
/** Replace a host-owned system prompt in place without resetting conversation history. */
|
|
329
|
+
setCustomSystemPrompt(systemPrompt: string, promptCacheKeyPrefix?: string): void;
|
|
328
330
|
/**
|
|
329
331
|
* Toggle plan mode: flips the shared ref (so tools enforce read-only
|
|
330
332
|
* restrictions) and rebuilds the system prompt in place so the model is told
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-session.d.ts","sourceRoot":"","sources":["../../src/core/agent-session.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent-session.d.ts","sourceRoot":"","sources":["../../src/core/agent-session.ts"],"names":[],"mappings":"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"}
|
|
@@ -1129,6 +1129,22 @@ export class AgentSession {
|
|
|
1129
1129
|
return `No background process with id "${id}"`;
|
|
1130
1130
|
return this.processManager.stop(id);
|
|
1131
1131
|
}
|
|
1132
|
+
/** Replace a host-owned system prompt in place without resetting conversation history. */
|
|
1133
|
+
setCustomSystemPrompt(systemPrompt, promptCacheKeyPrefix) {
|
|
1134
|
+
this.customSystemPrompt = systemPrompt;
|
|
1135
|
+
this.baseSystemPrompt = systemPrompt;
|
|
1136
|
+
this.opts.systemPrompt = systemPrompt;
|
|
1137
|
+
if (promptCacheKeyPrefix)
|
|
1138
|
+
this.opts.promptCacheKeyPrefix = promptCacheKeyPrefix;
|
|
1139
|
+
const content = this.withSystemPromptTail(systemPrompt);
|
|
1140
|
+
if (this.messages[0]?.role === "system") {
|
|
1141
|
+
this.messages[0] = { role: "system", content };
|
|
1142
|
+
}
|
|
1143
|
+
else {
|
|
1144
|
+
this.messages.unshift({ role: "system", content });
|
|
1145
|
+
}
|
|
1146
|
+
this.syncUltraOrchestrationPrompt();
|
|
1147
|
+
}
|
|
1132
1148
|
/**
|
|
1133
1149
|
* Toggle plan mode: flips the shared ref (so tools enforce read-only
|
|
1134
1150
|
* restrictions) and rebuilds the system prompt in place so the model is told
|