@codeany/open-agent-sdk 0.2.2 → 0.2.4

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 (280) hide show
  1. package/dist/agent.d.ts +113 -0
  2. package/dist/agent.d.ts.map +1 -0
  3. package/dist/agent.js +453 -0
  4. package/dist/agent.js.map +1 -0
  5. package/dist/engine.d.ts +62 -0
  6. package/dist/engine.d.ts.map +1 -0
  7. package/dist/engine.js +496 -0
  8. package/dist/engine.js.map +1 -0
  9. package/dist/hooks.d.ts +111 -0
  10. package/dist/hooks.d.ts.map +1 -0
  11. package/dist/hooks.js +179 -0
  12. package/dist/hooks.js.map +1 -0
  13. package/dist/index.d.ts +66 -0
  14. package/dist/index.d.ts.map +1 -0
  15. package/dist/index.js +133 -0
  16. package/dist/index.js.map +1 -0
  17. package/dist/mcp/client.d.ts +19 -0
  18. package/dist/mcp/client.d.ts.map +1 -0
  19. package/dist/mcp/client.js +126 -0
  20. package/dist/mcp/client.js.map +1 -0
  21. package/dist/providers/anthropic.d.ts +17 -0
  22. package/dist/providers/anthropic.d.ts.map +1 -0
  23. package/dist/providers/anthropic.js +47 -0
  24. package/dist/providers/anthropic.js.map +1 -0
  25. package/dist/providers/index.d.ts +20 -0
  26. package/dist/providers/index.d.ts.map +1 -0
  27. package/dist/providers/index.js +26 -0
  28. package/dist/providers/index.js.map +1 -0
  29. package/dist/providers/openai.d.ts +26 -0
  30. package/dist/providers/openai.d.ts.map +1 -0
  31. package/dist/providers/openai.js +212 -0
  32. package/dist/providers/openai.js.map +1 -0
  33. package/dist/providers/types.d.ts +84 -0
  34. package/dist/providers/types.d.ts.map +1 -0
  35. package/dist/providers/types.js +11 -0
  36. package/dist/providers/types.js.map +1 -0
  37. package/dist/sdk-mcp-server.d.ts +52 -0
  38. package/dist/sdk-mcp-server.d.ts.map +1 -0
  39. package/dist/sdk-mcp-server.js +57 -0
  40. package/dist/sdk-mcp-server.js.map +1 -0
  41. package/dist/session.d.ts +73 -0
  42. package/dist/session.d.ts.map +1 -0
  43. package/dist/session.js +159 -0
  44. package/dist/session.js.map +1 -0
  45. package/dist/skills/bundled/commit.d.ts +7 -0
  46. package/dist/skills/bundled/commit.d.ts.map +1 -0
  47. package/dist/skills/bundled/commit.js +35 -0
  48. package/dist/skills/bundled/commit.js.map +1 -0
  49. package/dist/skills/bundled/debug.d.ts +7 -0
  50. package/dist/skills/bundled/debug.d.ts.map +1 -0
  51. package/{src/skills/bundled/debug.ts → dist/skills/bundled/debug.js} +20 -22
  52. package/dist/skills/bundled/debug.js.map +1 -0
  53. package/dist/skills/bundled/index.d.ts +11 -0
  54. package/dist/skills/bundled/index.d.ts.map +1 -0
  55. package/dist/skills/bundled/index.js +26 -0
  56. package/dist/skills/bundled/index.js.map +1 -0
  57. package/dist/skills/bundled/review.d.ts +7 -0
  58. package/dist/skills/bundled/review.d.ts.map +1 -0
  59. package/{src/skills/bundled/review.ts → dist/skills/bundled/review.js} +18 -21
  60. package/dist/skills/bundled/review.js.map +1 -0
  61. package/dist/skills/bundled/simplify.d.ts +8 -0
  62. package/dist/skills/bundled/simplify.d.ts.map +1 -0
  63. package/{src/skills/bundled/simplify.ts → dist/skills/bundled/simplify.js} +16 -19
  64. package/dist/skills/bundled/simplify.js.map +1 -0
  65. package/dist/skills/bundled/test.d.ts +7 -0
  66. package/dist/skills/bundled/test.d.ts.map +1 -0
  67. package/{src/skills/bundled/test.ts → dist/skills/bundled/test.js} +18 -21
  68. package/dist/skills/bundled/test.js.map +1 -0
  69. package/dist/skills/index.d.ts +7 -0
  70. package/dist/skills/index.d.ts.map +1 -0
  71. package/dist/skills/index.js +8 -0
  72. package/dist/skills/index.js.map +1 -0
  73. package/dist/skills/registry.d.ts +43 -0
  74. package/dist/skills/registry.d.ts.map +1 -0
  75. package/dist/skills/registry.js +111 -0
  76. package/dist/skills/registry.js.map +1 -0
  77. package/dist/skills/types.d.ts +83 -0
  78. package/dist/skills/types.d.ts.map +1 -0
  79. package/dist/skills/types.js +8 -0
  80. package/dist/skills/types.js.map +1 -0
  81. package/dist/tool-helper.d.ts +73 -0
  82. package/dist/tool-helper.d.ts.map +1 -0
  83. package/dist/tool-helper.js +86 -0
  84. package/dist/tool-helper.js.map +1 -0
  85. package/dist/tools/agent-tool.d.ts +17 -0
  86. package/dist/tools/agent-tool.d.ts.map +1 -0
  87. package/dist/tools/agent-tool.js +146 -0
  88. package/dist/tools/agent-tool.js.map +1 -0
  89. package/dist/tools/ask-user.d.ts +18 -0
  90. package/dist/tools/ask-user.d.ts.map +1 -0
  91. package/dist/tools/ask-user.js +72 -0
  92. package/dist/tools/ask-user.js.map +1 -0
  93. package/dist/tools/bash.d.ts +5 -0
  94. package/dist/tools/bash.d.ts.map +1 -0
  95. package/dist/tools/bash.js +67 -0
  96. package/dist/tools/bash.js.map +1 -0
  97. package/dist/tools/config-tool.d.ts +20 -0
  98. package/dist/tools/config-tool.d.ts.map +1 -0
  99. package/dist/tools/config-tool.js +83 -0
  100. package/dist/tools/config-tool.js.map +1 -0
  101. package/dist/tools/cron-tools.d.ts +33 -0
  102. package/dist/tools/cron-tools.d.ts.map +1 -0
  103. package/dist/tools/cron-tools.js +128 -0
  104. package/dist/tools/cron-tools.js.map +1 -0
  105. package/dist/tools/edit.d.ts +5 -0
  106. package/dist/tools/edit.d.ts.map +1 -0
  107. package/dist/tools/edit.js +70 -0
  108. package/dist/tools/edit.js.map +1 -0
  109. package/dist/tools/glob.d.ts +5 -0
  110. package/dist/tools/glob.d.ts.map +1 -0
  111. package/dist/tools/glob.js +75 -0
  112. package/dist/tools/glob.js.map +1 -0
  113. package/dist/tools/grep.d.ts +5 -0
  114. package/dist/tools/grep.d.ts.map +1 -0
  115. package/dist/tools/grep.js +168 -0
  116. package/dist/tools/grep.js.map +1 -0
  117. package/dist/tools/index.d.ts +45 -0
  118. package/dist/tools/index.d.ts.map +1 -0
  119. package/dist/tools/index.js +162 -0
  120. package/dist/tools/index.js.map +1 -0
  121. package/dist/tools/lsp-tool.d.ts +9 -0
  122. package/dist/tools/lsp-tool.d.ts.map +1 -0
  123. package/dist/tools/lsp-tool.js +137 -0
  124. package/dist/tools/lsp-tool.js.map +1 -0
  125. package/dist/tools/mcp-resource-tools.d.ts +14 -0
  126. package/dist/tools/mcp-resource-tools.d.ts.map +1 -0
  127. package/dist/tools/mcp-resource-tools.js +117 -0
  128. package/dist/tools/mcp-resource-tools.js.map +1 -0
  129. package/dist/tools/notebook-edit.d.ts +5 -0
  130. package/dist/tools/notebook-edit.d.ts.map +1 -0
  131. package/dist/tools/notebook-edit.js +85 -0
  132. package/dist/tools/notebook-edit.js.map +1 -0
  133. package/dist/tools/plan-tools.d.ts +12 -0
  134. package/dist/tools/plan-tools.d.ts.map +1 -0
  135. package/dist/tools/plan-tools.js +77 -0
  136. package/dist/tools/plan-tools.js.map +1 -0
  137. package/dist/tools/read.d.ts +5 -0
  138. package/dist/tools/read.d.ts.map +1 -0
  139. package/dist/tools/read.js +66 -0
  140. package/dist/tools/read.js.map +1 -0
  141. package/dist/tools/send-message.d.ts +31 -0
  142. package/dist/tools/send-message.d.ts.map +1 -0
  143. package/dist/tools/send-message.js +77 -0
  144. package/dist/tools/send-message.js.map +1 -0
  145. package/dist/tools/skill-tool.d.ts +9 -0
  146. package/dist/tools/skill-tool.d.ts.map +1 -0
  147. package/dist/tools/skill-tool.js +115 -0
  148. package/dist/tools/skill-tool.js.map +1 -0
  149. package/dist/tools/task-tools.d.ts +48 -0
  150. package/dist/tools/task-tools.d.ts.map +1 -0
  151. package/dist/tools/task-tools.js +242 -0
  152. package/dist/tools/task-tools.js.map +1 -0
  153. package/dist/tools/team-tools.d.ts +34 -0
  154. package/dist/tools/team-tools.d.ts.map +1 -0
  155. package/dist/tools/team-tools.js +103 -0
  156. package/dist/tools/team-tools.js.map +1 -0
  157. package/dist/tools/todo-tool.d.ts +22 -0
  158. package/dist/tools/todo-tool.d.ts.map +1 -0
  159. package/dist/tools/todo-tool.js +93 -0
  160. package/dist/tools/todo-tool.js.map +1 -0
  161. package/dist/tools/tool-search.d.ts +13 -0
  162. package/dist/tools/tool-search.d.ts.map +1 -0
  163. package/dist/tools/tool-search.js +76 -0
  164. package/dist/tools/tool-search.js.map +1 -0
  165. package/dist/tools/types.d.ts +29 -0
  166. package/dist/tools/types.d.ts.map +1 -0
  167. package/dist/tools/types.js +52 -0
  168. package/dist/tools/types.js.map +1 -0
  169. package/dist/tools/web-fetch.d.ts +5 -0
  170. package/dist/tools/web-fetch.d.ts.map +1 -0
  171. package/dist/tools/web-fetch.js +60 -0
  172. package/dist/tools/web-fetch.js.map +1 -0
  173. package/dist/tools/web-search.d.ts +5 -0
  174. package/dist/tools/web-search.d.ts.map +1 -0
  175. package/dist/tools/web-search.js +77 -0
  176. package/dist/tools/web-search.js.map +1 -0
  177. package/dist/tools/worktree-tools.d.ts +10 -0
  178. package/dist/tools/worktree-tools.d.ts.map +1 -0
  179. package/dist/tools/worktree-tools.js +130 -0
  180. package/dist/tools/worktree-tools.js.map +1 -0
  181. package/dist/tools/write.d.ts +5 -0
  182. package/dist/tools/write.d.ts.map +1 -0
  183. package/dist/tools/write.js +40 -0
  184. package/dist/tools/write.js.map +1 -0
  185. package/dist/types.d.ts +432 -0
  186. package/dist/types.d.ts.map +1 -0
  187. package/dist/types.js +5 -0
  188. package/dist/types.js.map +1 -0
  189. package/dist/utils/compact.d.ts +44 -0
  190. package/dist/utils/compact.d.ts.map +1 -0
  191. package/dist/utils/compact.js +162 -0
  192. package/dist/utils/compact.js.map +1 -0
  193. package/dist/utils/context.d.ts +35 -0
  194. package/dist/utils/context.d.ts.map +1 -0
  195. package/dist/utils/context.js +174 -0
  196. package/dist/utils/context.js.map +1 -0
  197. package/dist/utils/fileCache.d.ts +64 -0
  198. package/dist/utils/fileCache.d.ts.map +1 -0
  199. package/dist/utils/fileCache.js +117 -0
  200. package/dist/utils/fileCache.js.map +1 -0
  201. package/dist/utils/messages.d.ts +57 -0
  202. package/dist/utils/messages.d.ts.map +1 -0
  203. package/dist/utils/messages.js +152 -0
  204. package/dist/utils/messages.js.map +1 -0
  205. package/dist/utils/retry.d.ts +48 -0
  206. package/dist/utils/retry.d.ts.map +1 -0
  207. package/dist/utils/retry.js +111 -0
  208. package/dist/utils/retry.js.map +1 -0
  209. package/dist/utils/tokens.d.ts +57 -0
  210. package/dist/utils/tokens.d.ts.map +1 -0
  211. package/dist/utils/tokens.js +134 -0
  212. package/dist/utils/tokens.js.map +1 -0
  213. package/package.json +6 -1
  214. package/.env.example +0 -8
  215. package/examples/01-simple-query.ts +0 -43
  216. package/examples/02-multi-tool.ts +0 -44
  217. package/examples/03-multi-turn.ts +0 -39
  218. package/examples/04-prompt-api.ts +0 -29
  219. package/examples/05-custom-system-prompt.ts +0 -26
  220. package/examples/06-mcp-server.ts +0 -49
  221. package/examples/07-custom-tools.ts +0 -87
  222. package/examples/08-official-api-compat.ts +0 -38
  223. package/examples/09-subagents.ts +0 -48
  224. package/examples/10-permissions.ts +0 -40
  225. package/examples/11-custom-mcp-tools.ts +0 -101
  226. package/examples/12-skills.ts +0 -88
  227. package/examples/13-hooks.ts +0 -88
  228. package/examples/14-openai-compat.ts +0 -71
  229. package/examples/web/index.html +0 -365
  230. package/examples/web/server.ts +0 -157
  231. package/src/agent.ts +0 -516
  232. package/src/engine.ts +0 -633
  233. package/src/hooks.ts +0 -261
  234. package/src/index.ts +0 -426
  235. package/src/mcp/client.ts +0 -150
  236. package/src/providers/anthropic.ts +0 -60
  237. package/src/providers/index.ts +0 -34
  238. package/src/providers/openai.ts +0 -315
  239. package/src/providers/types.ts +0 -85
  240. package/src/sdk-mcp-server.ts +0 -78
  241. package/src/session.ts +0 -227
  242. package/src/skills/bundled/commit.ts +0 -38
  243. package/src/skills/bundled/index.ts +0 -28
  244. package/src/skills/index.ts +0 -25
  245. package/src/skills/registry.ts +0 -133
  246. package/src/skills/types.ts +0 -99
  247. package/src/tool-helper.ts +0 -127
  248. package/src/tools/agent-tool.ts +0 -164
  249. package/src/tools/ask-user.ts +0 -79
  250. package/src/tools/bash.ts +0 -75
  251. package/src/tools/config-tool.ts +0 -89
  252. package/src/tools/cron-tools.ts +0 -153
  253. package/src/tools/edit.ts +0 -74
  254. package/src/tools/glob.ts +0 -77
  255. package/src/tools/grep.ts +0 -168
  256. package/src/tools/index.ts +0 -240
  257. package/src/tools/lsp-tool.ts +0 -163
  258. package/src/tools/mcp-resource-tools.ts +0 -125
  259. package/src/tools/notebook-edit.ts +0 -93
  260. package/src/tools/plan-tools.ts +0 -88
  261. package/src/tools/read.ts +0 -73
  262. package/src/tools/send-message.ts +0 -96
  263. package/src/tools/skill-tool.ts +0 -133
  264. package/src/tools/task-tools.ts +0 -290
  265. package/src/tools/team-tools.ts +0 -128
  266. package/src/tools/todo-tool.ts +0 -112
  267. package/src/tools/tool-search.ts +0 -87
  268. package/src/tools/types.ts +0 -66
  269. package/src/tools/web-fetch.ts +0 -66
  270. package/src/tools/web-search.ts +0 -86
  271. package/src/tools/worktree-tools.ts +0 -140
  272. package/src/tools/write.ts +0 -42
  273. package/src/types.ts +0 -486
  274. package/src/utils/compact.ts +0 -207
  275. package/src/utils/context.ts +0 -191
  276. package/src/utils/fileCache.ts +0 -148
  277. package/src/utils/messages.ts +0 -195
  278. package/src/utils/retry.ts +0 -140
  279. package/src/utils/tokens.ts +0 -145
  280. package/tsconfig.json +0 -19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * BashTool - Execute shell commands
3
+ */
4
+ export declare const BashTool: import("../types.js").ToolDefinition;
5
+ //# sourceMappingURL=bash.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bash.d.ts","sourceRoot":"","sources":["../../src/tools/bash.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,eAAO,MAAM,QAAQ,sCAmEnB,CAAA"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * BashTool - Execute shell commands
3
+ */
4
+ import { spawn } from 'child_process';
5
+ import { defineTool } from './types.js';
6
+ export const BashTool = defineTool({
7
+ name: 'Bash',
8
+ description: 'Execute a bash command and return its output. Use for running shell commands, scripts, and system operations.',
9
+ inputSchema: {
10
+ type: 'object',
11
+ properties: {
12
+ command: {
13
+ type: 'string',
14
+ description: 'The bash command to execute',
15
+ },
16
+ timeout: {
17
+ type: 'number',
18
+ description: 'Optional timeout in milliseconds (max 600000, default 120000)',
19
+ },
20
+ },
21
+ required: ['command'],
22
+ },
23
+ isReadOnly: false,
24
+ isConcurrencySafe: false,
25
+ async call(input, context) {
26
+ const { command, timeout: userTimeout } = input;
27
+ const timeoutMs = Math.min(userTimeout || 120000, 600000);
28
+ return new Promise((resolve) => {
29
+ const chunks = [];
30
+ const errChunks = [];
31
+ const proc = spawn('bash', ['-c', command], {
32
+ cwd: context.cwd,
33
+ env: { ...process.env },
34
+ timeout: timeoutMs,
35
+ stdio: ['pipe', 'pipe', 'pipe'],
36
+ });
37
+ proc.stdout?.on('data', (data) => chunks.push(data));
38
+ proc.stderr?.on('data', (data) => errChunks.push(data));
39
+ if (context.abortSignal) {
40
+ context.abortSignal.addEventListener('abort', () => {
41
+ proc.kill('SIGTERM');
42
+ }, { once: true });
43
+ }
44
+ proc.on('close', (code) => {
45
+ const stdout = Buffer.concat(chunks).toString('utf-8');
46
+ const stderr = Buffer.concat(errChunks).toString('utf-8');
47
+ let output = '';
48
+ if (stdout)
49
+ output += stdout;
50
+ if (stderr)
51
+ output += (output ? '\n' : '') + stderr;
52
+ if (code !== 0 && code !== null) {
53
+ output += `\nExit code: ${code}`;
54
+ }
55
+ // Truncate very large outputs
56
+ if (output.length > 100000) {
57
+ output = output.slice(0, 50000) + '\n...(truncated)...\n' + output.slice(-50000);
58
+ }
59
+ resolve(output || '(no output)');
60
+ });
61
+ proc.on('error', (err) => {
62
+ resolve(`Error executing command: ${err.message}`);
63
+ });
64
+ });
65
+ },
66
+ });
67
+ //# sourceMappingURL=bash.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bash.js","sourceRoot":"","sources":["../../src/tools/bash.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * ConfigTool - Dynamic configuration management
3
+ *
4
+ * Get/set global configuration and session settings.
5
+ */
6
+ import type { ToolDefinition } from '../types.js';
7
+ /**
8
+ * Get a config value.
9
+ */
10
+ export declare function getConfig(key: string): unknown;
11
+ /**
12
+ * Set a config value.
13
+ */
14
+ export declare function setConfig(key: string, value: unknown): void;
15
+ /**
16
+ * Clear all config.
17
+ */
18
+ export declare function clearConfig(): void;
19
+ export declare const ConfigTool: ToolDefinition;
20
+ //# sourceMappingURL=config-tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-tool.d.ts","sourceRoot":"","sources":["../../src/tools/config-tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAc,MAAM,aAAa,CAAA;AAK7D;;GAEG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE9C;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAE3D;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAElC;AAED,eAAO,MAAM,UAAU,EAAE,cAwDxB,CAAA"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * ConfigTool - Dynamic configuration management
3
+ *
4
+ * Get/set global configuration and session settings.
5
+ */
6
+ // In-memory config store
7
+ const configStore = new Map();
8
+ /**
9
+ * Get a config value.
10
+ */
11
+ export function getConfig(key) {
12
+ return configStore.get(key);
13
+ }
14
+ /**
15
+ * Set a config value.
16
+ */
17
+ export function setConfig(key, value) {
18
+ configStore.set(key, value);
19
+ }
20
+ /**
21
+ * Clear all config.
22
+ */
23
+ export function clearConfig() {
24
+ configStore.clear();
25
+ }
26
+ export const ConfigTool = {
27
+ name: 'Config',
28
+ description: 'Get or set configuration values. Supports session-scoped settings.',
29
+ inputSchema: {
30
+ type: 'object',
31
+ properties: {
32
+ action: {
33
+ type: 'string',
34
+ enum: ['get', 'set', 'list'],
35
+ description: 'Operation to perform',
36
+ },
37
+ key: { type: 'string', description: 'Config key' },
38
+ value: { description: 'Config value (for set)' },
39
+ },
40
+ required: ['action'],
41
+ },
42
+ isReadOnly: () => false,
43
+ isConcurrencySafe: () => true,
44
+ isEnabled: () => true,
45
+ async prompt() { return 'Manage configuration settings.'; },
46
+ async call(input) {
47
+ switch (input.action) {
48
+ case 'get': {
49
+ if (!input.key) {
50
+ return { type: 'tool_result', tool_use_id: '', content: 'key required for get', is_error: true };
51
+ }
52
+ const value = configStore.get(input.key);
53
+ return {
54
+ type: 'tool_result',
55
+ tool_use_id: '',
56
+ content: value !== undefined ? JSON.stringify(value) : `Config key "${input.key}" not found`,
57
+ };
58
+ }
59
+ case 'set': {
60
+ if (!input.key) {
61
+ return { type: 'tool_result', tool_use_id: '', content: 'key required for set', is_error: true };
62
+ }
63
+ configStore.set(input.key, input.value);
64
+ return {
65
+ type: 'tool_result',
66
+ tool_use_id: '',
67
+ content: `Config set: ${input.key} = ${JSON.stringify(input.value)}`,
68
+ };
69
+ }
70
+ case 'list': {
71
+ const entries = Array.from(configStore.entries());
72
+ if (entries.length === 0) {
73
+ return { type: 'tool_result', tool_use_id: '', content: 'No config values set.' };
74
+ }
75
+ const lines = entries.map(([k, v]) => `${k} = ${JSON.stringify(v)}`);
76
+ return { type: 'tool_result', tool_use_id: '', content: lines.join('\n') };
77
+ }
78
+ default:
79
+ return { type: 'tool_result', tool_use_id: '', content: `Unknown action: ${input.action}`, is_error: true };
80
+ }
81
+ },
82
+ };
83
+ //# sourceMappingURL=config-tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-tool.js","sourceRoot":"","sources":["../../src/tools/config-tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Cron/Scheduling Tools
3
+ *
4
+ * CronCreate, CronDelete, CronList - Schedule recurring tasks.
5
+ * RemoteTrigger - Manage remote scheduled agent triggers.
6
+ */
7
+ import type { ToolDefinition } from '../types.js';
8
+ /**
9
+ * Cron job definition.
10
+ */
11
+ export interface CronJob {
12
+ id: string;
13
+ name: string;
14
+ schedule: string;
15
+ command: string;
16
+ enabled: boolean;
17
+ createdAt: string;
18
+ lastRunAt?: string;
19
+ nextRunAt?: string;
20
+ }
21
+ /**
22
+ * Get all cron jobs.
23
+ */
24
+ export declare function getAllCronJobs(): CronJob[];
25
+ /**
26
+ * Clear all cron jobs.
27
+ */
28
+ export declare function clearCronJobs(): void;
29
+ export declare const CronCreateTool: ToolDefinition;
30
+ export declare const CronDeleteTool: ToolDefinition;
31
+ export declare const CronListTool: ToolDefinition;
32
+ export declare const RemoteTriggerTool: ToolDefinition;
33
+ //# sourceMappingURL=cron-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cron-tools.d.ts","sourceRoot":"","sources":["../../src/tools/cron-tools.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAc,MAAM,aAAa,CAAA;AAE7D;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAMD;;GAEG;AACH,wBAAgB,cAAc,IAAI,OAAO,EAAE,CAE1C;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,IAAI,CAGpC;AAED,eAAO,MAAM,cAAc,EAAE,cAkC5B,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,cAqB5B,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,cAkB1B,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,cA+B/B,CAAA"}
@@ -0,0 +1,128 @@
1
+ /**
2
+ * Cron/Scheduling Tools
3
+ *
4
+ * CronCreate, CronDelete, CronList - Schedule recurring tasks.
5
+ * RemoteTrigger - Manage remote scheduled agent triggers.
6
+ */
7
+ // In-memory cron store
8
+ const cronStore = new Map();
9
+ let cronCounter = 0;
10
+ /**
11
+ * Get all cron jobs.
12
+ */
13
+ export function getAllCronJobs() {
14
+ return Array.from(cronStore.values());
15
+ }
16
+ /**
17
+ * Clear all cron jobs.
18
+ */
19
+ export function clearCronJobs() {
20
+ cronStore.clear();
21
+ cronCounter = 0;
22
+ }
23
+ export const CronCreateTool = {
24
+ name: 'CronCreate',
25
+ description: 'Create a scheduled recurring task (cron job). Supports cron expressions for scheduling.',
26
+ inputSchema: {
27
+ type: 'object',
28
+ properties: {
29
+ name: { type: 'string', description: 'Job name' },
30
+ schedule: { type: 'string', description: 'Cron expression (e.g., "*/5 * * * *" for every 5 minutes)' },
31
+ command: { type: 'string', description: 'Command or prompt to execute' },
32
+ },
33
+ required: ['name', 'schedule', 'command'],
34
+ },
35
+ isReadOnly: () => false,
36
+ isConcurrencySafe: () => true,
37
+ isEnabled: () => true,
38
+ async prompt() { return 'Create a scheduled cron job.'; },
39
+ async call(input) {
40
+ const id = `cron_${++cronCounter}`;
41
+ const job = {
42
+ id,
43
+ name: input.name,
44
+ schedule: input.schedule,
45
+ command: input.command,
46
+ enabled: true,
47
+ createdAt: new Date().toISOString(),
48
+ };
49
+ cronStore.set(id, job);
50
+ return {
51
+ type: 'tool_result',
52
+ tool_use_id: '',
53
+ content: `Cron job created: ${id} "${job.name}" schedule="${job.schedule}"`,
54
+ };
55
+ },
56
+ };
57
+ export const CronDeleteTool = {
58
+ name: 'CronDelete',
59
+ description: 'Delete a scheduled cron job.',
60
+ inputSchema: {
61
+ type: 'object',
62
+ properties: {
63
+ id: { type: 'string', description: 'Cron job ID to delete' },
64
+ },
65
+ required: ['id'],
66
+ },
67
+ isReadOnly: () => false,
68
+ isConcurrencySafe: () => true,
69
+ isEnabled: () => true,
70
+ async prompt() { return 'Delete a cron job.'; },
71
+ async call(input) {
72
+ if (!cronStore.has(input.id)) {
73
+ return { type: 'tool_result', tool_use_id: '', content: `Cron job not found: ${input.id}`, is_error: true };
74
+ }
75
+ cronStore.delete(input.id);
76
+ return { type: 'tool_result', tool_use_id: '', content: `Cron job deleted: ${input.id}` };
77
+ },
78
+ };
79
+ export const CronListTool = {
80
+ name: 'CronList',
81
+ description: 'List all scheduled cron jobs.',
82
+ inputSchema: { type: 'object', properties: {} },
83
+ isReadOnly: () => true,
84
+ isConcurrencySafe: () => true,
85
+ isEnabled: () => true,
86
+ async prompt() { return 'List cron jobs.'; },
87
+ async call() {
88
+ const jobs = getAllCronJobs();
89
+ if (jobs.length === 0) {
90
+ return { type: 'tool_result', tool_use_id: '', content: 'No cron jobs scheduled.' };
91
+ }
92
+ const lines = jobs.map(j => `[${j.id}] ${j.enabled ? '✓' : '✗'} "${j.name}" schedule="${j.schedule}" command="${j.command.slice(0, 50)}"`);
93
+ return { type: 'tool_result', tool_use_id: '', content: lines.join('\n') };
94
+ },
95
+ };
96
+ export const RemoteTriggerTool = {
97
+ name: 'RemoteTrigger',
98
+ description: 'Manage remote scheduled agent triggers. Supports list, get, create, update, and run operations.',
99
+ inputSchema: {
100
+ type: 'object',
101
+ properties: {
102
+ action: {
103
+ type: 'string',
104
+ enum: ['list', 'get', 'create', 'update', 'run'],
105
+ description: 'Operation to perform',
106
+ },
107
+ id: { type: 'string', description: 'Trigger ID (for get/update/run)' },
108
+ name: { type: 'string', description: 'Trigger name (for create)' },
109
+ schedule: { type: 'string', description: 'Cron schedule (for create/update)' },
110
+ prompt: { type: 'string', description: 'Agent prompt (for create/update)' },
111
+ },
112
+ required: ['action'],
113
+ },
114
+ isReadOnly: () => false,
115
+ isConcurrencySafe: () => true,
116
+ isEnabled: () => true,
117
+ async prompt() { return 'Manage remote agent triggers.'; },
118
+ async call(input) {
119
+ // RemoteTrigger operations are typically handled by the remote backend
120
+ // In standalone SDK mode, we provide a stub implementation
121
+ return {
122
+ type: 'tool_result',
123
+ tool_use_id: '',
124
+ content: `RemoteTrigger ${input.action}: This feature requires a connected remote backend. In standalone SDK mode, use CronCreate/CronList/CronDelete for local scheduling.`,
125
+ };
126
+ },
127
+ };
128
+ //# sourceMappingURL=cron-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cron-tools.js","sourceRoot":"","sources":["../../src/tools/cron-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * FileEditTool - Precise string replacement in files
3
+ */
4
+ export declare const FileEditTool: import("../types.js").ToolDefinition;
5
+ //# sourceMappingURL=edit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edit.d.ts","sourceRoot":"","sources":["../../src/tools/edit.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,eAAO,MAAM,YAAY,sCAiEvB,CAAA"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * FileEditTool - Precise string replacement in files
3
+ */
4
+ import { readFile, writeFile } from 'fs/promises';
5
+ import { resolve } from 'path';
6
+ import { defineTool } from './types.js';
7
+ export const FileEditTool = defineTool({
8
+ name: 'Edit',
9
+ description: 'Perform exact string replacements in files. The old_string must match exactly (including whitespace and indentation). Use replace_all to change every occurrence.',
10
+ inputSchema: {
11
+ type: 'object',
12
+ properties: {
13
+ file_path: {
14
+ type: 'string',
15
+ description: 'The absolute path to the file to modify',
16
+ },
17
+ old_string: {
18
+ type: 'string',
19
+ description: 'The exact text to find and replace',
20
+ },
21
+ new_string: {
22
+ type: 'string',
23
+ description: 'The replacement text',
24
+ },
25
+ replace_all: {
26
+ type: 'boolean',
27
+ description: 'Replace all occurrences (default false)',
28
+ },
29
+ },
30
+ required: ['file_path', 'old_string', 'new_string'],
31
+ },
32
+ isReadOnly: false,
33
+ isConcurrencySafe: false,
34
+ async call(input, context) {
35
+ const filePath = resolve(context.cwd, input.file_path);
36
+ const { old_string, new_string, replace_all } = input;
37
+ if (old_string === new_string) {
38
+ return { data: 'Error: old_string and new_string are identical', is_error: true };
39
+ }
40
+ try {
41
+ let content = await readFile(filePath, 'utf-8');
42
+ if (!content.includes(old_string)) {
43
+ return { data: `Error: old_string not found in ${filePath}. Make sure it matches exactly including whitespace.`, is_error: true };
44
+ }
45
+ if (!replace_all) {
46
+ // Check uniqueness
47
+ const count = content.split(old_string).length - 1;
48
+ if (count > 1) {
49
+ return {
50
+ data: `Error: old_string appears ${count} times in the file. Provide more context to make it unique, or set replace_all: true.`,
51
+ is_error: true,
52
+ };
53
+ }
54
+ content = content.replace(old_string, new_string);
55
+ }
56
+ else {
57
+ content = content.split(old_string).join(new_string);
58
+ }
59
+ await writeFile(filePath, content, 'utf-8');
60
+ return `File edited: ${filePath}`;
61
+ }
62
+ catch (err) {
63
+ if (err.code === 'ENOENT') {
64
+ return { data: `Error: File not found: ${filePath}`, is_error: true };
65
+ }
66
+ return { data: `Error editing file: ${err.message}`, is_error: true };
67
+ }
68
+ },
69
+ });
70
+ //# sourceMappingURL=edit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edit.js","sourceRoot":"","sources":["../../src/tools/edit.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAEvC,MAAM,CAAC,MAAM,YAAY,GAAG,UAAU,CAAC;IACrC,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,mKAAmK;IAChL,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,SAAS,EAAE;gBACT,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,yCAAyC;aACvD;YACD,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,oCAAoC;aAClD;YACD,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,sBAAsB;aACpC;YACD,WAAW,EAAE;gBACX,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,yCAAyC;aACvD;SACF;QACD,QAAQ,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,YAAY,CAAC;KACpD;IACD,UAAU,EAAE,KAAK;IACjB,iBAAiB,EAAE,KAAK;IACxB,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO;QACvB,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,CAAA;QACtD,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,KAAK,CAAA;QAErD,IAAI,UAAU,KAAK,UAAU,EAAE,CAAC;YAC9B,OAAO,EAAE,IAAI,EAAE,gDAAgD,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;QACnF,CAAC;QAED,IAAI,CAAC;YACH,IAAI,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;YAE/C,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBAClC,OAAO,EAAE,IAAI,EAAE,kCAAkC,QAAQ,sDAAsD,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;YACnI,CAAC;YAED,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,mBAAmB;gBACnB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,CAAA;gBAClD,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;oBACd,OAAO;wBACL,IAAI,EAAE,6BAA6B,KAAK,uFAAuF;wBAC/H,QAAQ,EAAE,IAAI;qBACf,CAAA;gBACH,CAAC;gBACD,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;YACnD,CAAC;iBAAM,CAAC;gBACN,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YACtD,CAAC;YAED,MAAM,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;YAC3C,OAAO,gBAAgB,QAAQ,EAAE,CAAA;QACnC,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC1B,OAAO,EAAE,IAAI,EAAE,0BAA0B,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;YACvE,CAAC;YACD,OAAO,EAAE,IAAI,EAAE,uBAAuB,GAAG,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;QACvE,CAAC;IACH,CAAC;CACF,CAAC,CAAA"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * GlobTool - File pattern matching
3
+ */
4
+ export declare const GlobTool: import("../types.js").ToolDefinition;
5
+ //# sourceMappingURL=glob.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glob.d.ts","sourceRoot":"","sources":["../../src/tools/glob.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,eAAO,MAAM,QAAQ,sCAqEnB,CAAA"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * GlobTool - File pattern matching
3
+ */
4
+ import { resolve } from 'path';
5
+ import { defineTool } from './types.js';
6
+ export const GlobTool = defineTool({
7
+ name: 'Glob',
8
+ description: 'Find files matching a glob pattern. Returns matching file paths sorted by modification time. Supports patterns like "**/*.ts", "src/**/*.js".',
9
+ inputSchema: {
10
+ type: 'object',
11
+ properties: {
12
+ pattern: {
13
+ type: 'string',
14
+ description: 'The glob pattern to match files against',
15
+ },
16
+ path: {
17
+ type: 'string',
18
+ description: 'The directory to search in (defaults to cwd)',
19
+ },
20
+ },
21
+ required: ['pattern'],
22
+ },
23
+ isReadOnly: true,
24
+ isConcurrencySafe: true,
25
+ async call(input, context) {
26
+ const searchDir = input.path ? resolve(context.cwd, input.path) : context.cwd;
27
+ const { pattern } = input;
28
+ try {
29
+ // Use Node.js glob (available in Node 22+) or fall back to bash find
30
+ const { glob } = await import('fs/promises');
31
+ // @ts-ignore - glob is available in Node 22+
32
+ if (typeof glob === 'function') {
33
+ const matches = [];
34
+ // @ts-ignore
35
+ for await (const entry of glob(pattern, { cwd: searchDir })) {
36
+ matches.push(entry);
37
+ if (matches.length >= 500)
38
+ break;
39
+ }
40
+ if (matches.length === 0) {
41
+ return `No files matching pattern "${pattern}" in ${searchDir}`;
42
+ }
43
+ return matches.join('\n');
44
+ }
45
+ }
46
+ catch {
47
+ // Fall through to bash-based approach
48
+ }
49
+ // Fallback: use bash find/glob
50
+ const { spawn } = await import('child_process');
51
+ return new Promise((resolvePromise) => {
52
+ // Use bash glob expansion or find
53
+ const cmd = `shopt -s globstar nullglob 2>/dev/null; cd ${JSON.stringify(searchDir)} && ls -1d ${pattern} 2>/dev/null | head -500`;
54
+ const proc = spawn('bash', ['-c', cmd], {
55
+ cwd: searchDir,
56
+ timeout: 30000,
57
+ });
58
+ const chunks = [];
59
+ proc.stdout?.on('data', (d) => chunks.push(d));
60
+ proc.on('close', () => {
61
+ const result = Buffer.concat(chunks).toString('utf-8').trim();
62
+ if (!result) {
63
+ resolvePromise(`No files matching pattern "${pattern}" in ${searchDir}`);
64
+ }
65
+ else {
66
+ resolvePromise(result);
67
+ }
68
+ });
69
+ proc.on('error', () => {
70
+ resolvePromise(`Error searching for files with pattern "${pattern}"`);
71
+ });
72
+ });
73
+ },
74
+ });
75
+ //# sourceMappingURL=glob.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glob.js","sourceRoot":"","sources":["../../src/tools/glob.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * GrepTool - Search file contents using regex
3
+ */
4
+ export declare const GrepTool: import("../types.js").ToolDefinition;
5
+ //# sourceMappingURL=grep.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grep.d.ts","sourceRoot":"","sources":["../../src/tools/grep.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,eAAO,MAAM,QAAQ,sCA+JnB,CAAA"}