@claudebuddy/claudebuddy-agent-sdk 0.4.0 → 0.5.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/CHANGELOG.md +36 -0
- package/README.md +75 -3
- package/dist/agent.d.ts +12 -22
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +209 -224
- package/dist/agent.js.map +1 -1
- package/dist/engine.d.ts +7 -3
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +234 -224
- package/dist/engine.js.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp/client.d.ts +3 -0
- package/dist/mcp/client.d.ts.map +1 -1
- package/dist/mcp/client.js +13 -4
- package/dist/mcp/client.js.map +1 -1
- package/dist/providers/anthropic.d.ts +2 -1
- package/dist/providers/anthropic.d.ts.map +1 -1
- package/dist/providers/anthropic.js +31 -1
- package/dist/providers/anthropic.js.map +1 -1
- package/dist/providers/openai.d.ts +3 -1
- package/dist/providers/openai.d.ts.map +1 -1
- package/dist/providers/openai.js +54 -3
- package/dist/providers/openai.js.map +1 -1
- package/dist/providers/sse.d.ts +3 -0
- package/dist/providers/sse.d.ts.map +1 -0
- package/dist/providers/sse.js +36 -0
- package/dist/providers/sse.js.map +1 -0
- package/dist/providers/types.d.ts +16 -0
- package/dist/providers/types.d.ts.map +1 -1
- package/dist/session.d.ts +10 -0
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +98 -4
- package/dist/session.js.map +1 -1
- package/dist/tools/agent-tool.d.ts.map +1 -1
- package/dist/tools/agent-tool.js +32 -9
- package/dist/tools/agent-tool.js.map +1 -1
- package/dist/tools/ask-user.d.ts +3 -2
- package/dist/tools/ask-user.d.ts.map +1 -1
- package/dist/tools/ask-user.js +16 -15
- package/dist/tools/ask-user.js.map +1 -1
- package/dist/tools/bash.d.ts +0 -3
- package/dist/tools/bash.d.ts.map +1 -1
- package/dist/tools/bash.js +79 -59
- package/dist/tools/bash.js.map +1 -1
- package/dist/tools/config-tool.d.ts +4 -3
- package/dist/tools/config-tool.d.ts.map +1 -1
- package/dist/tools/config-tool.js +20 -16
- package/dist/tools/config-tool.js.map +1 -1
- package/dist/tools/cron-tools.d.ts +3 -2
- package/dist/tools/cron-tools.d.ts.map +1 -1
- package/dist/tools/cron-tools.js +33 -29
- package/dist/tools/cron-tools.js.map +1 -1
- package/dist/tools/index.js +55 -53
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/lsp-tool.js +2 -2
- package/dist/tools/lsp-tool.js.map +1 -1
- package/dist/tools/mcp-resource-tools.d.ts +2 -1
- package/dist/tools/mcp-resource-tools.d.ts.map +1 -1
- package/dist/tools/mcp-resource-tools.js +44 -27
- package/dist/tools/mcp-resource-tools.js.map +1 -1
- package/dist/tools/plan-tools.d.ts +3 -2
- package/dist/tools/plan-tools.d.ts.map +1 -1
- package/dist/tools/plan-tools.js +24 -21
- package/dist/tools/plan-tools.js.map +1 -1
- package/dist/tools/send-message.d.ts +5 -4
- package/dist/tools/send-message.d.ts.map +1 -1
- package/dist/tools/send-message.js +24 -21
- package/dist/tools/send-message.js.map +1 -1
- package/dist/tools/session-state.d.ts +4 -0
- package/dist/tools/session-state.d.ts.map +1 -0
- package/dist/tools/session-state.js +9 -0
- package/dist/tools/session-state.js.map +1 -0
- package/dist/tools/task-tools.d.ts +19 -4
- package/dist/tools/task-tools.d.ts.map +1 -1
- package/dist/tools/task-tools.js +119 -31
- package/dist/tools/task-tools.js.map +1 -1
- package/dist/tools/team-tools.d.ts +7 -3
- package/dist/tools/team-tools.d.ts.map +1 -1
- package/dist/tools/team-tools.js +26 -22
- package/dist/tools/team-tools.js.map +1 -1
- package/dist/tools/todo-tool.d.ts +3 -2
- package/dist/tools/todo-tool.d.ts.map +1 -1
- package/dist/tools/todo-tool.js +24 -21
- package/dist/tools/todo-tool.js.map +1 -1
- package/dist/tools/tool-search.d.ts +2 -1
- package/dist/tools/tool-search.d.ts.map +1 -1
- package/dist/tools/tool-search.js +14 -13
- package/dist/tools/tool-search.js.map +1 -1
- package/dist/tools/update-goal.d.ts +9 -7
- package/dist/tools/update-goal.d.ts.map +1 -1
- package/dist/tools/update-goal.js +20 -21
- package/dist/tools/update-goal.js.map +1 -1
- package/dist/tools/worktree-tools.d.ts +0 -6
- package/dist/tools/worktree-tools.d.ts.map +1 -1
- package/dist/tools/worktree-tools.js +14 -6
- package/dist/tools/worktree-tools.js.map +1 -1
- package/dist/types.d.ts +31 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/compact.d.ts +5 -1
- package/dist/utils/compact.d.ts.map +1 -1
- package/dist/utils/compact.js +11 -1
- package/dist/utils/compact.js.map +1 -1
- package/dist/utils/permissions.d.ts +7 -0
- package/dist/utils/permissions.d.ts.map +1 -0
- package/dist/utils/permissions.js +39 -0
- package/dist/utils/permissions.js.map +1 -0
- package/dist/utils/retry.d.ts.map +1 -1
- package/dist/utils/retry.js +17 -2
- package/dist/utils/retry.js.map +1 -1
- package/docs/background-tasks.md +62 -0
- package/docs/runtime-progress.md +63 -0
- package/package.json +9 -5
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type SessionState } from './session-state.js';
|
|
1
2
|
/**
|
|
2
3
|
* Plan Mode Tools
|
|
3
4
|
*
|
|
@@ -5,8 +6,8 @@
|
|
|
5
6
|
* Allows the agent to enter a design/planning phase before execution.
|
|
6
7
|
*/
|
|
7
8
|
import type { ToolDefinition } from '../types.js';
|
|
8
|
-
export declare function isPlanModeActive(): boolean;
|
|
9
|
-
export declare function getCurrentPlan(): string | null;
|
|
9
|
+
export declare function isPlanModeActive(sessionState?: SessionState): boolean;
|
|
10
|
+
export declare function getCurrentPlan(sessionState?: SessionState): string | null;
|
|
10
11
|
export declare const EnterPlanModeTool: ToolDefinition;
|
|
11
12
|
export declare const ExitPlanModeTool: ToolDefinition;
|
|
12
13
|
//# sourceMappingURL=plan-tools.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan-tools.d.ts","sourceRoot":"","sources":["../../src/tools/plan-tools.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"plan-tools.d.ts","sourceRoot":"","sources":["../../src/tools/plan-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACpE;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAA2B,MAAM,aAAa,CAAA;AAI1E,wBAAgB,gBAAgB,CAAC,YAAY,CAAC,EAAE,YAAY,GAAG,OAAO,CAGrE;AAED,wBAAgB,cAAc,CAAC,YAAY,CAAC,EAAE,YAAY,GAAG,MAAM,GAAG,IAAI,CAGzE;AAED,eAAO,MAAM,iBAAiB,EAAE,cA8B/B,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,cAoC9B,CAAA"}
|
package/dist/tools/plan-tools.js
CHANGED
|
@@ -1,17 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
* Plan Mode Tools
|
|
3
|
-
*
|
|
4
|
-
* EnterPlanMode / ExitPlanMode - Structured planning workflow.
|
|
5
|
-
* Allows the agent to enter a design/planning phase before execution.
|
|
6
|
-
*/
|
|
1
|
+
import { sessionStore } from './session-state.js';
|
|
7
2
|
// Track plan mode state
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
return planModeActive;
|
|
3
|
+
export function isPlanModeActive(sessionState) {
|
|
4
|
+
const state = getState(sessionState);
|
|
5
|
+
return state.planModeActive;
|
|
12
6
|
}
|
|
13
|
-
export function getCurrentPlan() {
|
|
14
|
-
|
|
7
|
+
export function getCurrentPlan(sessionState) {
|
|
8
|
+
const state = getState(sessionState);
|
|
9
|
+
return state.currentPlan;
|
|
15
10
|
}
|
|
16
11
|
export const EnterPlanModeTool = {
|
|
17
12
|
name: 'EnterPlanMode',
|
|
@@ -24,16 +19,17 @@ export const EnterPlanModeTool = {
|
|
|
24
19
|
isConcurrencySafe: () => false,
|
|
25
20
|
isEnabled: () => true,
|
|
26
21
|
async prompt() { return 'Enter plan mode for structured planning.'; },
|
|
27
|
-
async call() {
|
|
28
|
-
|
|
22
|
+
async call(_input, context) {
|
|
23
|
+
const state = getState(context?.sessionState);
|
|
24
|
+
if (state.planModeActive) {
|
|
29
25
|
return {
|
|
30
26
|
type: 'tool_result',
|
|
31
27
|
tool_use_id: '',
|
|
32
28
|
content: 'Already in plan mode.',
|
|
33
29
|
};
|
|
34
30
|
}
|
|
35
|
-
planModeActive = true;
|
|
36
|
-
currentPlan = null;
|
|
31
|
+
state.planModeActive = true;
|
|
32
|
+
state.currentPlan = null;
|
|
37
33
|
return {
|
|
38
34
|
type: 'tool_result',
|
|
39
35
|
tool_use_id: '',
|
|
@@ -55,8 +51,9 @@ export const ExitPlanModeTool = {
|
|
|
55
51
|
isConcurrencySafe: () => false,
|
|
56
52
|
isEnabled: () => true,
|
|
57
53
|
async prompt() { return 'Exit plan mode with a completed plan.'; },
|
|
58
|
-
async call(input) {
|
|
59
|
-
|
|
54
|
+
async call(input, context) {
|
|
55
|
+
const state = getState(context?.sessionState);
|
|
56
|
+
if (!state.planModeActive) {
|
|
60
57
|
return {
|
|
61
58
|
type: 'tool_result',
|
|
62
59
|
tool_use_id: '',
|
|
@@ -64,14 +61,20 @@ export const ExitPlanModeTool = {
|
|
|
64
61
|
is_error: true,
|
|
65
62
|
};
|
|
66
63
|
}
|
|
67
|
-
planModeActive = false;
|
|
68
|
-
currentPlan = input.plan || null;
|
|
64
|
+
state.planModeActive = false;
|
|
65
|
+
state.currentPlan = input.plan || null;
|
|
69
66
|
const status = input.approved !== false ? 'approved' : 'pending approval';
|
|
70
67
|
return {
|
|
71
68
|
type: 'tool_result',
|
|
72
69
|
tool_use_id: '',
|
|
73
|
-
content: `Plan mode exited. Plan status: ${status}.${currentPlan ? `\n\nPlan:\n${currentPlan}` : ''}`,
|
|
70
|
+
content: `Plan mode exited. Plan status: ${status}.${state.currentPlan ? `\n\nPlan:\n${state.currentPlan}` : ''}`,
|
|
74
71
|
};
|
|
75
72
|
},
|
|
76
73
|
};
|
|
74
|
+
function getState(sessionState) {
|
|
75
|
+
return sessionStore(sessionState, 'plan-tools', () => ({
|
|
76
|
+
planModeActive: false,
|
|
77
|
+
currentPlan: null,
|
|
78
|
+
}));
|
|
79
|
+
}
|
|
77
80
|
//# sourceMappingURL=plan-tools.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan-tools.js","sourceRoot":"","sources":["../../src/tools/plan-tools.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"plan-tools.js","sourceRoot":"","sources":["../../src/tools/plan-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type SessionState } from './session-state.js';
|
|
1
2
|
/**
|
|
2
3
|
* SendMessageTool - Inter-agent messaging
|
|
3
4
|
*
|
|
@@ -18,14 +19,14 @@ export interface AgentMessage {
|
|
|
18
19
|
/**
|
|
19
20
|
* Read messages from a mailbox.
|
|
20
21
|
*/
|
|
21
|
-
export declare function readMailbox(agentName: string): AgentMessage[];
|
|
22
|
+
export declare function readMailbox(agentName: string, sessionState?: SessionState): AgentMessage[];
|
|
22
23
|
/**
|
|
23
24
|
* Write to a mailbox.
|
|
24
25
|
*/
|
|
25
|
-
export declare function writeToMailbox(agentName: string, message: AgentMessage): void;
|
|
26
|
+
export declare function writeToMailbox(agentName: string, message: AgentMessage, sessionState?: SessionState): void;
|
|
26
27
|
/**
|
|
27
|
-
* Clear all mailboxes.
|
|
28
|
+
* Clear all state.mailboxes.
|
|
28
29
|
*/
|
|
29
|
-
export declare function clearMailboxes(): void;
|
|
30
|
+
export declare function clearMailboxes(sessionState?: SessionState): void;
|
|
30
31
|
export declare const SendMessageTool: ToolDefinition;
|
|
31
32
|
//# sourceMappingURL=send-message.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"send-message.d.ts","sourceRoot":"","sources":["../../src/tools/send-message.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"send-message.d.ts","sourceRoot":"","sources":["../../src/tools/send-message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACpE;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAA2B,MAAM,aAAa,CAAA;AAE1E;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,GAAG,kBAAkB,GAAG,mBAAmB,GAAG,wBAAwB,CAAA;CACnF;AAGD;;GAEG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,YAAY,GAAG,YAAY,EAAE,CAK1F;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,CAK1G;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,CAGhE;AAED,eAAO,MAAM,eAAe,EAAE,cAiD7B,CAAA"}
|
|
@@ -1,31 +1,28 @@
|
|
|
1
|
-
|
|
2
|
-
* SendMessageTool - Inter-agent messaging
|
|
3
|
-
*
|
|
4
|
-
* Supports plain text and structured protocol messages
|
|
5
|
-
* between teammates in a multi-agent setup.
|
|
6
|
-
*/
|
|
7
|
-
const mailboxes = new Map();
|
|
1
|
+
import { sessionStore } from './session-state.js';
|
|
8
2
|
/**
|
|
9
3
|
* Read messages from a mailbox.
|
|
10
4
|
*/
|
|
11
|
-
export function readMailbox(agentName) {
|
|
12
|
-
const
|
|
13
|
-
mailboxes.
|
|
5
|
+
export function readMailbox(agentName, sessionState) {
|
|
6
|
+
const state = getState(sessionState);
|
|
7
|
+
const messages = state.mailboxes.get(agentName) || [];
|
|
8
|
+
state.mailboxes.set(agentName, []); // Clear after reading
|
|
14
9
|
return messages;
|
|
15
10
|
}
|
|
16
11
|
/**
|
|
17
12
|
* Write to a mailbox.
|
|
18
13
|
*/
|
|
19
|
-
export function writeToMailbox(agentName, message) {
|
|
20
|
-
const
|
|
14
|
+
export function writeToMailbox(agentName, message, sessionState) {
|
|
15
|
+
const state = getState(sessionState);
|
|
16
|
+
const messages = state.mailboxes.get(agentName) || [];
|
|
21
17
|
messages.push(message);
|
|
22
|
-
mailboxes.set(agentName, messages);
|
|
18
|
+
state.mailboxes.set(agentName, messages);
|
|
23
19
|
}
|
|
24
20
|
/**
|
|
25
|
-
* Clear all mailboxes.
|
|
21
|
+
* Clear all state.mailboxes.
|
|
26
22
|
*/
|
|
27
|
-
export function clearMailboxes() {
|
|
28
|
-
|
|
23
|
+
export function clearMailboxes(sessionState) {
|
|
24
|
+
const state = getState(sessionState);
|
|
25
|
+
state.mailboxes.clear();
|
|
29
26
|
}
|
|
30
27
|
export const SendMessageTool = {
|
|
31
28
|
name: 'SendMessage',
|
|
@@ -47,7 +44,8 @@ export const SendMessageTool = {
|
|
|
47
44
|
isConcurrencySafe: () => true,
|
|
48
45
|
isEnabled: () => true,
|
|
49
46
|
async prompt() { return 'Send a message to another agent.'; },
|
|
50
|
-
async call(input) {
|
|
47
|
+
async call(input, context) {
|
|
48
|
+
const state = getState(context?.sessionState);
|
|
51
49
|
const message = {
|
|
52
50
|
from: 'self',
|
|
53
51
|
to: input.to,
|
|
@@ -56,9 +54,9 @@ export const SendMessageTool = {
|
|
|
56
54
|
type: input.type || 'text',
|
|
57
55
|
};
|
|
58
56
|
if (input.to === '*') {
|
|
59
|
-
// Broadcast to all known mailboxes
|
|
60
|
-
for (const [name] of mailboxes) {
|
|
61
|
-
writeToMailbox(name, { ...message, to: name });
|
|
57
|
+
// Broadcast to all known state.mailboxes
|
|
58
|
+
for (const [name] of state.mailboxes) {
|
|
59
|
+
writeToMailbox(name, { ...message, to: name }, context?.sessionState);
|
|
62
60
|
}
|
|
63
61
|
return {
|
|
64
62
|
type: 'tool_result',
|
|
@@ -66,7 +64,7 @@ export const SendMessageTool = {
|
|
|
66
64
|
content: `Message broadcast to all agents`,
|
|
67
65
|
};
|
|
68
66
|
}
|
|
69
|
-
writeToMailbox(input.to, message);
|
|
67
|
+
writeToMailbox(input.to, message, context?.sessionState);
|
|
70
68
|
return {
|
|
71
69
|
type: 'tool_result',
|
|
72
70
|
tool_use_id: '',
|
|
@@ -74,4 +72,9 @@ export const SendMessageTool = {
|
|
|
74
72
|
};
|
|
75
73
|
},
|
|
76
74
|
};
|
|
75
|
+
function getState(sessionState) {
|
|
76
|
+
return sessionStore(sessionState, 'send-message', () => ({
|
|
77
|
+
mailboxes: new Map(),
|
|
78
|
+
}));
|
|
79
|
+
}
|
|
77
80
|
//# sourceMappingURL=send-message.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"send-message.js","sourceRoot":"","sources":["../../src/tools/send-message.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"send-message.js","sourceRoot":"","sources":["../../src/tools/send-message.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/** Resolve session-owned state; omitted maps retain direct-call compatibility. */
|
|
2
|
+
export type SessionState = Map<string, unknown>;
|
|
3
|
+
export declare function sessionStore<T>(sessionState: SessionState | undefined, key: string, create: () => T): T;
|
|
4
|
+
//# sourceMappingURL=session-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-state.d.ts","sourceRoot":"","sources":["../../src/tools/session-state.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,MAAM,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAE/C,wBAAgB,YAAY,CAAC,CAAC,EAAE,YAAY,EAAE,YAAY,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAKvG"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
const legacyState = new Map();
|
|
2
|
+
export function sessionStore(sessionState, key, create) {
|
|
3
|
+
const store = sessionState ?? legacyState;
|
|
4
|
+
const namespacedKey = `builtin:${key}`;
|
|
5
|
+
if (!store.has(namespacedKey))
|
|
6
|
+
store.set(namespacedKey, create());
|
|
7
|
+
return store.get(namespacedKey);
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=session-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-state.js","sourceRoot":"","sources":["../../src/tools/session-state.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,GAAiB,IAAI,GAAG,EAAE,CAAA;AAC3C,MAAM,UAAU,YAAY,CAAI,YAAsC,EAAE,GAAW,EAAE,MAAe;IAClG,MAAM,KAAK,GAAG,YAAY,IAAI,WAAW,CAAA;IACzC,MAAM,aAAa,GAAG,WAAW,GAAG,EAAE,CAAA;IACtC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC;QAAE,KAAK,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC,CAAA;IACjE,OAAO,KAAK,CAAC,GAAG,CAAC,aAAa,CAAM,CAAA;AACtC,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type SessionState } from './session-state.js';
|
|
1
2
|
/**
|
|
2
3
|
* Task Management Tools
|
|
3
4
|
*
|
|
@@ -6,7 +7,7 @@
|
|
|
6
7
|
* Provides in-memory task tracking for agent coordination.
|
|
7
8
|
* Tasks persist across turns within a session.
|
|
8
9
|
*/
|
|
9
|
-
import type { ToolDefinition } from '../types.js';
|
|
10
|
+
import type { ToolDefinition, ToolContext } from '../types.js';
|
|
10
11
|
/**
|
|
11
12
|
* Task status.
|
|
12
13
|
*/
|
|
@@ -16,6 +17,8 @@ export type TaskStatus = 'pending' | 'in_progress' | 'completed' | 'failed' | 'c
|
|
|
16
17
|
*/
|
|
17
18
|
export interface Task {
|
|
18
19
|
id: string;
|
|
20
|
+
kind?: 'bash' | 'agent';
|
|
21
|
+
exitCode?: number | null;
|
|
19
22
|
subject: string;
|
|
20
23
|
description?: string;
|
|
21
24
|
status: TaskStatus;
|
|
@@ -27,22 +30,34 @@ export interface Task {
|
|
|
27
30
|
blocks?: string[];
|
|
28
31
|
metadata?: Record<string, unknown>;
|
|
29
32
|
}
|
|
33
|
+
/**
|
|
34
|
+
* Task state is shared across tools within the supplied session.
|
|
35
|
+
*/
|
|
30
36
|
/**
|
|
31
37
|
* Get all tasks.
|
|
32
38
|
*/
|
|
33
|
-
export declare function getAllTasks(): Task[];
|
|
39
|
+
export declare function getAllTasks(sessionState?: SessionState): Task[];
|
|
34
40
|
/**
|
|
35
41
|
* Get a task by ID.
|
|
36
42
|
*/
|
|
37
|
-
export declare function getTask(id: string): Task | undefined;
|
|
43
|
+
export declare function getTask(id: string, sessionState?: SessionState): Task | undefined;
|
|
38
44
|
/**
|
|
39
45
|
* Clear all tasks (for session reset).
|
|
40
46
|
*/
|
|
41
|
-
export declare function clearTasks(): void;
|
|
47
|
+
export declare function clearTasks(sessionState?: SessionState): void;
|
|
42
48
|
export declare const TaskCreateTool: ToolDefinition;
|
|
43
49
|
export declare const TaskListTool: ToolDefinition;
|
|
44
50
|
export declare const TaskUpdateTool: ToolDefinition;
|
|
45
51
|
export declare const TaskGetTool: ToolDefinition;
|
|
46
52
|
export declare const TaskStopTool: ToolDefinition;
|
|
47
53
|
export declare const TaskOutputTool: ToolDefinition;
|
|
54
|
+
export interface TaskExecutionResult {
|
|
55
|
+
output: string;
|
|
56
|
+
is_error?: boolean;
|
|
57
|
+
exitCode?: number | null;
|
|
58
|
+
}
|
|
59
|
+
/** Start real work and retain only a bounded output tail in this session. */
|
|
60
|
+
export declare function startBackgroundTask(context: ToolContext, kind: 'bash' | 'agent', subject: string, run: (signal: AbortSignal, append: (text: string) => void) => Promise<TaskExecutionResult>): Task;
|
|
61
|
+
export declare function settleTaskGroup(ids: Set<string>, sessionState?: SessionState, cancel?: boolean): Promise<Task[]>;
|
|
62
|
+
export declare function stopTaskExecution(id: string, sessionState?: SessionState): Promise<void>;
|
|
48
63
|
//# sourceMappingURL=task-tools.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-tools.d.ts","sourceRoot":"","sources":["../../src/tools/task-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"task-tools.d.ts","sourceRoot":"","sources":["../../src/tools/task-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACpE;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAc,MAAM,aAAa,CAAA;AAE1E;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,aAAa,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAA;AAEzF;;GAEG;AACH,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IACvB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,UAAU,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACnC;AAED;;GAEG;AAGH;;GAEG;AACH,wBAAgB,WAAW,CAAC,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,EAAE,CAG/D;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,GAAG,SAAS,CAGjF;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,CAK5D;AAMD,eAAO,MAAM,cAAc,EAAE,cAqC5B,CAAA;AAMD,eAAO,MAAM,YAAY,EAAE,cAsC1B,CAAA;AAMD,eAAO,MAAM,cAAc,EAAE,cAwC5B,CAAA;AAMD,eAAO,MAAM,WAAW,EAAE,cA2BzB,CAAA;AAMD,eAAO,MAAM,YAAY,EAAE,cAsC1B,CAAA;AAMD,eAAO,MAAM,cAAc,EAAE,cAoC5B,CAAA;AAUD,MAAM,WAAW,mBAAmB;IAAG,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE;AAErG,6EAA6E;AAC7E,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,EAC7D,GAAG,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,KAAK,OAAO,CAAC,mBAAmB,CAAC,GACzF,IAAI,CA2BN;AAED,wBAAsB,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,EAAE,MAAM,UAAQ,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAMpH;AAED,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAI9F"}
|
package/dist/tools/task-tools.js
CHANGED
|
@@ -1,34 +1,30 @@
|
|
|
1
|
+
import { sessionStore } from './session-state.js';
|
|
1
2
|
/**
|
|
2
|
-
* Task
|
|
3
|
-
*
|
|
4
|
-
* TaskCreate, TaskList, TaskUpdate, TaskGet, TaskStop, TaskOutput
|
|
5
|
-
*
|
|
6
|
-
* Provides in-memory task tracking for agent coordination.
|
|
7
|
-
* Tasks persist across turns within a session.
|
|
3
|
+
* Task state is shared across tools within the supplied session.
|
|
8
4
|
*/
|
|
9
|
-
/**
|
|
10
|
-
* Global task store (shared across tools in a session).
|
|
11
|
-
*/
|
|
12
|
-
const taskStore = new Map();
|
|
13
|
-
let taskCounter = 0;
|
|
14
5
|
/**
|
|
15
6
|
* Get all tasks.
|
|
16
7
|
*/
|
|
17
|
-
export function getAllTasks() {
|
|
18
|
-
|
|
8
|
+
export function getAllTasks(sessionState) {
|
|
9
|
+
const state = getState(sessionState);
|
|
10
|
+
return Array.from(state.taskStore.values());
|
|
19
11
|
}
|
|
20
12
|
/**
|
|
21
13
|
* Get a task by ID.
|
|
22
14
|
*/
|
|
23
|
-
export function getTask(id) {
|
|
24
|
-
|
|
15
|
+
export function getTask(id, sessionState) {
|
|
16
|
+
const state = getState(sessionState);
|
|
17
|
+
return state.taskStore.get(id);
|
|
25
18
|
}
|
|
26
19
|
/**
|
|
27
20
|
* Clear all tasks (for session reset).
|
|
28
21
|
*/
|
|
29
|
-
export function clearTasks() {
|
|
30
|
-
|
|
31
|
-
|
|
22
|
+
export function clearTasks(sessionState) {
|
|
23
|
+
const state = getState(sessionState);
|
|
24
|
+
for (const execution of state.executions.values())
|
|
25
|
+
execution.controller.abort();
|
|
26
|
+
state.taskStore.clear();
|
|
27
|
+
state.taskCounter = 0;
|
|
32
28
|
}
|
|
33
29
|
// ============================================================================
|
|
34
30
|
// TaskCreateTool
|
|
@@ -50,8 +46,9 @@ export const TaskCreateTool = {
|
|
|
50
46
|
isConcurrencySafe: () => true,
|
|
51
47
|
isEnabled: () => true,
|
|
52
48
|
async prompt() { return 'Create a task for tracking progress.'; },
|
|
53
|
-
async call(input) {
|
|
54
|
-
const
|
|
49
|
+
async call(input, context) {
|
|
50
|
+
const state = getState(context?.sessionState);
|
|
51
|
+
const id = `task_${++state.taskCounter}`;
|
|
55
52
|
const task = {
|
|
56
53
|
id,
|
|
57
54
|
subject: input.subject,
|
|
@@ -61,7 +58,7 @@ export const TaskCreateTool = {
|
|
|
61
58
|
createdAt: new Date().toISOString(),
|
|
62
59
|
updatedAt: new Date().toISOString(),
|
|
63
60
|
};
|
|
64
|
-
taskStore.set(id, task);
|
|
61
|
+
state.taskStore.set(id, task);
|
|
65
62
|
return {
|
|
66
63
|
type: 'tool_result',
|
|
67
64
|
tool_use_id: '',
|
|
@@ -86,8 +83,8 @@ export const TaskListTool = {
|
|
|
86
83
|
isConcurrencySafe: () => true,
|
|
87
84
|
isEnabled: () => true,
|
|
88
85
|
async prompt() { return 'List tasks.'; },
|
|
89
|
-
async call(input) {
|
|
90
|
-
let tasks = getAllTasks();
|
|
86
|
+
async call(input, context) {
|
|
87
|
+
let tasks = getAllTasks(context?.sessionState);
|
|
91
88
|
if (input.status) {
|
|
92
89
|
tasks = tasks.filter(t => t.status === input.status);
|
|
93
90
|
}
|
|
@@ -126,11 +123,15 @@ export const TaskUpdateTool = {
|
|
|
126
123
|
isConcurrencySafe: () => true,
|
|
127
124
|
isEnabled: () => true,
|
|
128
125
|
async prompt() { return 'Update a task.'; },
|
|
129
|
-
async call(input) {
|
|
130
|
-
const
|
|
126
|
+
async call(input, context) {
|
|
127
|
+
const state = getState(context?.sessionState);
|
|
128
|
+
const task = state.taskStore.get(input.id);
|
|
131
129
|
if (!task) {
|
|
132
130
|
return { type: 'tool_result', tool_use_id: '', content: `Task not found: ${input.id}`, is_error: true };
|
|
133
131
|
}
|
|
132
|
+
if (task.kind && (input.status !== undefined || input.output !== undefined)) {
|
|
133
|
+
return { type: 'tool_result', tool_use_id: '', content: 'Execution status and output are managed by the runtime. Use TaskStop to cancel.', is_error: true };
|
|
134
|
+
}
|
|
134
135
|
if (input.status)
|
|
135
136
|
task.status = input.status;
|
|
136
137
|
if (input.description)
|
|
@@ -164,8 +165,9 @@ export const TaskGetTool = {
|
|
|
164
165
|
isConcurrencySafe: () => true,
|
|
165
166
|
isEnabled: () => true,
|
|
166
167
|
async prompt() { return 'Get task details.'; },
|
|
167
|
-
async call(input) {
|
|
168
|
-
const
|
|
168
|
+
async call(input, context) {
|
|
169
|
+
const state = getState(context?.sessionState);
|
|
170
|
+
const task = state.taskStore.get(input.id);
|
|
169
171
|
if (!task) {
|
|
170
172
|
return { type: 'tool_result', tool_use_id: '', content: `Task not found: ${input.id}`, is_error: true };
|
|
171
173
|
}
|
|
@@ -194,11 +196,19 @@ export const TaskStopTool = {
|
|
|
194
196
|
isConcurrencySafe: () => true,
|
|
195
197
|
isEnabled: () => true,
|
|
196
198
|
async prompt() { return 'Stop a task.'; },
|
|
197
|
-
async call(input) {
|
|
198
|
-
const
|
|
199
|
+
async call(input, context) {
|
|
200
|
+
const state = getState(context?.sessionState);
|
|
201
|
+
const task = state.taskStore.get(input.id);
|
|
199
202
|
if (!task) {
|
|
200
203
|
return { type: 'tool_result', tool_use_id: '', content: `Task not found: ${input.id}`, is_error: true };
|
|
201
204
|
}
|
|
205
|
+
const execution = state.executions.get(task.id);
|
|
206
|
+
if (execution) {
|
|
207
|
+
execution.controller.abort(new Error(input.reason || 'Task cancelled'));
|
|
208
|
+
return { type: 'tool_result', tool_use_id: '', content: `Cancellation requested: ${task.id}` };
|
|
209
|
+
}
|
|
210
|
+
if (task.kind)
|
|
211
|
+
return { type: 'tool_result', tool_use_id: '', content: `Task already ${task.status}: ${task.id}` };
|
|
202
212
|
task.status = 'cancelled';
|
|
203
213
|
task.updatedAt = new Date().toISOString();
|
|
204
214
|
if (input.reason)
|
|
@@ -220,6 +230,8 @@ export const TaskOutputTool = {
|
|
|
220
230
|
type: 'object',
|
|
221
231
|
properties: {
|
|
222
232
|
id: { type: 'string', description: 'Task ID' },
|
|
233
|
+
block: { type: 'boolean', description: 'Wait for completion, bounded by timeout (default false)' },
|
|
234
|
+
timeout: { type: 'number', description: 'Maximum wait in milliseconds, 0–600000 (default 30000)' },
|
|
223
235
|
},
|
|
224
236
|
required: ['id'],
|
|
225
237
|
},
|
|
@@ -227,11 +239,21 @@ export const TaskOutputTool = {
|
|
|
227
239
|
isConcurrencySafe: () => true,
|
|
228
240
|
isEnabled: () => true,
|
|
229
241
|
async prompt() { return 'Get task output.'; },
|
|
230
|
-
async call(input) {
|
|
231
|
-
const
|
|
242
|
+
async call(input, context) {
|
|
243
|
+
const state = getState(context?.sessionState);
|
|
244
|
+
const task = state.taskStore.get(input.id);
|
|
232
245
|
if (!task) {
|
|
233
246
|
return { type: 'tool_result', tool_use_id: '', content: `Task not found: ${input.id}`, is_error: true };
|
|
234
247
|
}
|
|
248
|
+
const execution = state.executions.get(task.id);
|
|
249
|
+
if (execution && input.block) {
|
|
250
|
+
const timeout = input.timeout ?? 30000;
|
|
251
|
+
if (!Number.isFinite(timeout) || timeout < 0 || timeout > 600000)
|
|
252
|
+
return { type: 'tool_result', tool_use_id: '', content: 'Invalid wait timeout', is_error: true };
|
|
253
|
+
await waitForTask(execution.done, timeout, context?.abortSignal);
|
|
254
|
+
}
|
|
255
|
+
if (task.kind)
|
|
256
|
+
return { type: 'tool_result', tool_use_id: '', content: JSON.stringify({ task_id: task.id, status: task.status, output: task.output || '', exitCode: task.exitCode }), is_error: task.status === 'failed' || task.status === 'cancelled' };
|
|
235
257
|
return {
|
|
236
258
|
type: 'tool_result',
|
|
237
259
|
tool_use_id: '',
|
|
@@ -239,4 +261,70 @@ export const TaskOutputTool = {
|
|
|
239
261
|
};
|
|
240
262
|
},
|
|
241
263
|
};
|
|
264
|
+
function getState(sessionState) {
|
|
265
|
+
return sessionStore(sessionState, 'task-tools', () => ({
|
|
266
|
+
taskStore: new Map(),
|
|
267
|
+
executions: new Map(),
|
|
268
|
+
taskCounter: 0,
|
|
269
|
+
}));
|
|
270
|
+
}
|
|
271
|
+
/** Start real work and retain only a bounded output tail in this session. */
|
|
272
|
+
export function startBackgroundTask(context, kind, subject, run) {
|
|
273
|
+
context.abortSignal?.throwIfAborted();
|
|
274
|
+
const state = getState(context.sessionState);
|
|
275
|
+
const id = `background_${crypto.randomUUID()}`;
|
|
276
|
+
const task = { id, kind, subject, status: 'in_progress', createdAt: new Date().toISOString(), updatedAt: new Date().toISOString(), output: '' };
|
|
277
|
+
const controller = new AbortController();
|
|
278
|
+
const abort = () => controller.abort(context.abortSignal?.reason);
|
|
279
|
+
context.abortSignal?.addEventListener('abort', abort, { once: true });
|
|
280
|
+
const append = (text) => { task.output = ((task.output || '') + text).slice(-100000); task.updatedAt = new Date().toISOString(); };
|
|
281
|
+
state.taskStore.set(id, task);
|
|
282
|
+
context.taskGroup?.add(id);
|
|
283
|
+
const done = Promise.resolve().then(async () => {
|
|
284
|
+
controller.signal.throwIfAborted();
|
|
285
|
+
const result = await run(controller.signal, append);
|
|
286
|
+
task.output = result.output.slice(-100000);
|
|
287
|
+
task.exitCode = result.exitCode;
|
|
288
|
+
task.status = controller.signal.aborted ? 'cancelled' : result.is_error ? 'failed' : 'completed';
|
|
289
|
+
}).catch(error => {
|
|
290
|
+
task.status = controller.signal.aborted ? 'cancelled' : 'failed';
|
|
291
|
+
append(`\n${error?.message || error}`);
|
|
292
|
+
}).finally(() => {
|
|
293
|
+
task.updatedAt = new Date().toISOString();
|
|
294
|
+
context.abortSignal?.removeEventListener('abort', abort);
|
|
295
|
+
state.executions.delete(id);
|
|
296
|
+
});
|
|
297
|
+
state.executions.set(id, { controller, done });
|
|
298
|
+
return task;
|
|
299
|
+
}
|
|
300
|
+
export async function settleTaskGroup(ids, sessionState, cancel = false) {
|
|
301
|
+
const state = getState(sessionState);
|
|
302
|
+
const executions = [...ids].map(id => state.executions.get(id)).filter(e => e !== undefined);
|
|
303
|
+
if (cancel)
|
|
304
|
+
for (const execution of executions)
|
|
305
|
+
execution.controller.abort();
|
|
306
|
+
await Promise.all(executions.map(execution => execution.done));
|
|
307
|
+
return [...ids].map(id => state.taskStore.get(id)).filter((task) => task !== undefined);
|
|
308
|
+
}
|
|
309
|
+
export async function stopTaskExecution(id, sessionState) {
|
|
310
|
+
const state = getState(sessionState);
|
|
311
|
+
const execution = state.executions.get(id);
|
|
312
|
+
if (execution) {
|
|
313
|
+
execution.controller.abort();
|
|
314
|
+
await execution.done;
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
async function waitForTask(done, timeout, signal) {
|
|
318
|
+
signal?.throwIfAborted();
|
|
319
|
+
await new Promise((resolve, reject) => {
|
|
320
|
+
const cleanup = () => { clearTimeout(timer); signal?.removeEventListener('abort', abort); };
|
|
321
|
+
const finish = () => { cleanup(); resolve(); };
|
|
322
|
+
const abort = () => { cleanup(); reject(signal?.reason || new Error('Cancelled')); };
|
|
323
|
+
const timer = setTimeout(finish, timeout);
|
|
324
|
+
signal?.addEventListener('abort', abort, { once: true });
|
|
325
|
+
done.then(finish, error => { cleanup(); reject(error); });
|
|
326
|
+
if (signal?.aborted)
|
|
327
|
+
abort();
|
|
328
|
+
});
|
|
329
|
+
}
|
|
242
330
|
//# sourceMappingURL=task-tools.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-tools.js","sourceRoot":"","sources":["../../src/tools/task-tools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"task-tools.js","sourceRoot":"","sources":["../../src/tools/task-tools.ts"],"names":[],"mappings":"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"}
|