@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.
Files changed (115) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/README.md +75 -3
  3. package/dist/agent.d.ts +12 -22
  4. package/dist/agent.d.ts.map +1 -1
  5. package/dist/agent.js +209 -224
  6. package/dist/agent.js.map +1 -1
  7. package/dist/engine.d.ts +7 -3
  8. package/dist/engine.d.ts.map +1 -1
  9. package/dist/engine.js +234 -224
  10. package/dist/engine.js.map +1 -1
  11. package/dist/index.d.ts +4 -1
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +1 -0
  14. package/dist/index.js.map +1 -1
  15. package/dist/mcp/client.d.ts +3 -0
  16. package/dist/mcp/client.d.ts.map +1 -1
  17. package/dist/mcp/client.js +13 -4
  18. package/dist/mcp/client.js.map +1 -1
  19. package/dist/providers/anthropic.d.ts +2 -1
  20. package/dist/providers/anthropic.d.ts.map +1 -1
  21. package/dist/providers/anthropic.js +31 -1
  22. package/dist/providers/anthropic.js.map +1 -1
  23. package/dist/providers/openai.d.ts +3 -1
  24. package/dist/providers/openai.d.ts.map +1 -1
  25. package/dist/providers/openai.js +54 -3
  26. package/dist/providers/openai.js.map +1 -1
  27. package/dist/providers/sse.d.ts +3 -0
  28. package/dist/providers/sse.d.ts.map +1 -0
  29. package/dist/providers/sse.js +36 -0
  30. package/dist/providers/sse.js.map +1 -0
  31. package/dist/providers/types.d.ts +16 -0
  32. package/dist/providers/types.d.ts.map +1 -1
  33. package/dist/session.d.ts +10 -0
  34. package/dist/session.d.ts.map +1 -1
  35. package/dist/session.js +98 -4
  36. package/dist/session.js.map +1 -1
  37. package/dist/tools/agent-tool.d.ts.map +1 -1
  38. package/dist/tools/agent-tool.js +32 -9
  39. package/dist/tools/agent-tool.js.map +1 -1
  40. package/dist/tools/ask-user.d.ts +3 -2
  41. package/dist/tools/ask-user.d.ts.map +1 -1
  42. package/dist/tools/ask-user.js +16 -15
  43. package/dist/tools/ask-user.js.map +1 -1
  44. package/dist/tools/bash.d.ts +0 -3
  45. package/dist/tools/bash.d.ts.map +1 -1
  46. package/dist/tools/bash.js +79 -59
  47. package/dist/tools/bash.js.map +1 -1
  48. package/dist/tools/config-tool.d.ts +4 -3
  49. package/dist/tools/config-tool.d.ts.map +1 -1
  50. package/dist/tools/config-tool.js +20 -16
  51. package/dist/tools/config-tool.js.map +1 -1
  52. package/dist/tools/cron-tools.d.ts +3 -2
  53. package/dist/tools/cron-tools.d.ts.map +1 -1
  54. package/dist/tools/cron-tools.js +33 -29
  55. package/dist/tools/cron-tools.js.map +1 -1
  56. package/dist/tools/index.js +55 -53
  57. package/dist/tools/index.js.map +1 -1
  58. package/dist/tools/lsp-tool.js +2 -2
  59. package/dist/tools/lsp-tool.js.map +1 -1
  60. package/dist/tools/mcp-resource-tools.d.ts +2 -1
  61. package/dist/tools/mcp-resource-tools.d.ts.map +1 -1
  62. package/dist/tools/mcp-resource-tools.js +44 -27
  63. package/dist/tools/mcp-resource-tools.js.map +1 -1
  64. package/dist/tools/plan-tools.d.ts +3 -2
  65. package/dist/tools/plan-tools.d.ts.map +1 -1
  66. package/dist/tools/plan-tools.js +24 -21
  67. package/dist/tools/plan-tools.js.map +1 -1
  68. package/dist/tools/send-message.d.ts +5 -4
  69. package/dist/tools/send-message.d.ts.map +1 -1
  70. package/dist/tools/send-message.js +24 -21
  71. package/dist/tools/send-message.js.map +1 -1
  72. package/dist/tools/session-state.d.ts +4 -0
  73. package/dist/tools/session-state.d.ts.map +1 -0
  74. package/dist/tools/session-state.js +9 -0
  75. package/dist/tools/session-state.js.map +1 -0
  76. package/dist/tools/task-tools.d.ts +19 -4
  77. package/dist/tools/task-tools.d.ts.map +1 -1
  78. package/dist/tools/task-tools.js +119 -31
  79. package/dist/tools/task-tools.js.map +1 -1
  80. package/dist/tools/team-tools.d.ts +7 -3
  81. package/dist/tools/team-tools.d.ts.map +1 -1
  82. package/dist/tools/team-tools.js +26 -22
  83. package/dist/tools/team-tools.js.map +1 -1
  84. package/dist/tools/todo-tool.d.ts +3 -2
  85. package/dist/tools/todo-tool.d.ts.map +1 -1
  86. package/dist/tools/todo-tool.js +24 -21
  87. package/dist/tools/todo-tool.js.map +1 -1
  88. package/dist/tools/tool-search.d.ts +2 -1
  89. package/dist/tools/tool-search.d.ts.map +1 -1
  90. package/dist/tools/tool-search.js +14 -13
  91. package/dist/tools/tool-search.js.map +1 -1
  92. package/dist/tools/update-goal.d.ts +9 -7
  93. package/dist/tools/update-goal.d.ts.map +1 -1
  94. package/dist/tools/update-goal.js +20 -21
  95. package/dist/tools/update-goal.js.map +1 -1
  96. package/dist/tools/worktree-tools.d.ts +0 -6
  97. package/dist/tools/worktree-tools.d.ts.map +1 -1
  98. package/dist/tools/worktree-tools.js +14 -6
  99. package/dist/tools/worktree-tools.js.map +1 -1
  100. package/dist/types.d.ts +31 -0
  101. package/dist/types.d.ts.map +1 -1
  102. package/dist/utils/compact.d.ts +5 -1
  103. package/dist/utils/compact.d.ts.map +1 -1
  104. package/dist/utils/compact.js +11 -1
  105. package/dist/utils/compact.js.map +1 -1
  106. package/dist/utils/permissions.d.ts +7 -0
  107. package/dist/utils/permissions.d.ts.map +1 -0
  108. package/dist/utils/permissions.js +39 -0
  109. package/dist/utils/permissions.js.map +1 -0
  110. package/dist/utils/retry.d.ts.map +1 -1
  111. package/dist/utils/retry.js +17 -2
  112. package/dist/utils/retry.js.map +1 -1
  113. package/docs/background-tasks.md +62 -0
  114. package/docs/runtime-progress.md +63 -0
  115. 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,EAAc,MAAM,aAAa,CAAA;AAM7D,wBAAgB,gBAAgB,IAAI,OAAO,CAE1C;AAED,wBAAgB,cAAc,IAAI,MAAM,GAAG,IAAI,CAE9C;AAED,eAAO,MAAM,iBAAiB,EAAE,cA6B/B,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,cAmC9B,CAAA"}
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"}
@@ -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
- let planModeActive = false;
9
- let currentPlan = null;
10
- export function isPlanModeActive() {
11
- return planModeActive;
3
+ export function isPlanModeActive(sessionState) {
4
+ const state = getState(sessionState);
5
+ return state.planModeActive;
12
6
  }
13
- export function getCurrentPlan() {
14
- return currentPlan;
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
- if (planModeActive) {
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
- if (!planModeActive) {
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;;;;;GAKG;AAIH,wBAAwB;AACxB,IAAI,cAAc,GAAG,KAAK,CAAA;AAC1B,IAAI,WAAW,GAAkB,IAAI,CAAA;AAErC,MAAM,UAAU,gBAAgB;IAC9B,OAAO,cAAc,CAAA;AACvB,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,WAAW,CAAA;AACpB,CAAC;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAmB;IAC/C,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE,uHAAuH;IACpI,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,EAAE;KACf;IACD,UAAU,EAAE,GAAG,EAAE,CAAC,KAAK;IACvB,iBAAiB,EAAE,GAAG,EAAE,CAAC,KAAK;IAC9B,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI;IACrB,KAAK,CAAC,MAAM,KAAK,OAAO,0CAA0C,CAAA,CAAC,CAAC;IACpE,KAAK,CAAC,IAAI;QACR,IAAI,cAAc,EAAE,CAAC;YACnB,OAAO;gBACL,IAAI,EAAE,aAAa;gBACnB,WAAW,EAAE,EAAE;gBACf,OAAO,EAAE,uBAAuB;aACjC,CAAA;QACH,CAAC;QAED,cAAc,GAAG,IAAI,CAAA;QACrB,WAAW,GAAG,IAAI,CAAA;QAElB,OAAO;YACL,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,EAAE;YACf,OAAO,EAAE,oGAAoG;SAC9G,CAAA;IACH,CAAC;CACF,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAmB;IAC9C,IAAI,EAAE,cAAc;IACpB,WAAW,EAAE,4FAA4F;IACzG,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE;YAC3D,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,4CAA4C,EAAE;SACzF;KACF;IACD,UAAU,EAAE,GAAG,EAAE,CAAC,KAAK;IACvB,iBAAiB,EAAE,GAAG,EAAE,CAAC,KAAK;IAC9B,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI;IACrB,KAAK,CAAC,MAAM,KAAK,OAAO,uCAAuC,CAAA,CAAC,CAAC;IACjE,KAAK,CAAC,IAAI,CAAC,KAAU;QACnB,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO;gBACL,IAAI,EAAE,aAAa;gBACnB,WAAW,EAAE,EAAE;gBACf,OAAO,EAAE,mBAAmB;gBAC5B,QAAQ,EAAE,IAAI;aACf,CAAA;QACH,CAAC;QAED,cAAc,GAAG,KAAK,CAAA;QACtB,WAAW,GAAG,KAAK,CAAC,IAAI,IAAI,IAAI,CAAA;QAEhC,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAA;QAEzE,OAAO;YACL,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,EAAE;YACf,OAAO,EAAE,kCAAkC,MAAM,IAAI,WAAW,CAAC,CAAC,CAAC,cAAc,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;SACtG,CAAA;IACH,CAAC;CACF,CAAA"}
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,EAAc,MAAM,aAAa,CAAA;AAE7D;;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;AAID;;GAEG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,EAAE,CAI7D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI,CAI7E;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAErC;AAED,eAAO,MAAM,eAAe,EAAE,cAgD7B,CAAA"}
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 messages = mailboxes.get(agentName) || [];
13
- mailboxes.set(agentName, []); // Clear after reading
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 messages = mailboxes.get(agentName) || [];
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
- mailboxes.clear();
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;;;;;GAKG;AAeH,MAAM,SAAS,GAAG,IAAI,GAAG,EAA0B,CAAA;AAEnD;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,SAAiB;IAC3C,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAA;IAC/C,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA,CAAC,sBAAsB;IACnD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,SAAiB,EAAE,OAAqB;IACrE,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAA;IAC/C,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACtB,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;AACpC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc;IAC5B,SAAS,CAAC,KAAK,EAAE,CAAA;AACnB,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAmB;IAC7C,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE,oGAAoG;IACjH,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oDAAoD,EAAE;YACzF,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE;YAC3D,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,MAAM,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,wBAAwB,CAAC;gBACjF,WAAW,EAAE,8BAA8B;aAC5C;SACF;QACD,QAAQ,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC;KAC5B;IACD,UAAU,EAAE,GAAG,EAAE,CAAC,KAAK;IACvB,iBAAiB,EAAE,GAAG,EAAE,CAAC,IAAI;IAC7B,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI;IACrB,KAAK,CAAC,MAAM,KAAK,OAAO,kCAAkC,CAAA,CAAC,CAAC;IAC5D,KAAK,CAAC,IAAI,CAAC,KAAU;QACnB,MAAM,OAAO,GAAiB;YAC5B,IAAI,EAAE,MAAM;YACZ,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,MAAM;SAC3B,CAAA;QAED,IAAI,KAAK,CAAC,EAAE,KAAK,GAAG,EAAE,CAAC;YACrB,mCAAmC;YACnC,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,EAAE,CAAC;gBAC/B,cAAc,CAAC,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;YAChD,CAAC;YACD,OAAO;gBACL,IAAI,EAAE,aAAa;gBACnB,WAAW,EAAE,EAAE;gBACf,OAAO,EAAE,iCAAiC;aAC3C,CAAA;QACH,CAAC;QAED,cAAc,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;QACjC,OAAO;YACL,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,EAAE;YACf,OAAO,EAAE,mBAAmB,KAAK,CAAC,EAAE,EAAE;SACvC,CAAA;IACH,CAAC;CACF,CAAA"}
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,EAA2B,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,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;AASD;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,EAAE,CAEpC;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAEpD;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,IAAI,CAGjC;AAMD,eAAO,MAAM,cAAc,EAAE,cAoC5B,CAAA;AAMD,eAAO,MAAM,YAAY,EAAE,cAsC1B,CAAA;AAMD,eAAO,MAAM,cAAc,EAAE,cAoC5B,CAAA;AAMD,eAAO,MAAM,WAAW,EAAE,cA0BzB,CAAA;AAMD,eAAO,MAAM,YAAY,EAAE,cA+B1B,CAAA;AAMD,eAAO,MAAM,cAAc,EAAE,cA0B5B,CAAA"}
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"}
@@ -1,34 +1,30 @@
1
+ import { sessionStore } from './session-state.js';
1
2
  /**
2
- * Task Management Tools
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
- return Array.from(taskStore.values());
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
- return taskStore.get(id);
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
- taskStore.clear();
31
- taskCounter = 0;
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 id = `task_${++taskCounter}`;
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 task = taskStore.get(input.id);
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 task = taskStore.get(input.id);
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 task = taskStore.get(input.id);
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 task = taskStore.get(input.id);
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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"}