background-agents 0.1.2 → 1.0.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 (235) hide show
  1. package/README.md +46 -297
  2. package/app/assets/icon.png +0 -0
  3. package/app/assets/tray-icon.png +0 -0
  4. package/app/assets/tray-icon.svg +4 -0
  5. package/app/dist/main.js +932 -0
  6. package/app/dist/preload.cjs +70 -0
  7. package/bin/background-agents.js +298 -0
  8. package/lib/ui.js +110 -0
  9. package/package.json +31 -57
  10. package/dist/agents/claude/index.d.ts +0 -11
  11. package/dist/agents/claude/index.d.ts.map +0 -1
  12. package/dist/agents/claude/index.js +0 -78
  13. package/dist/agents/claude/index.js.map +0 -1
  14. package/dist/agents/claude/parser.d.ts +0 -16
  15. package/dist/agents/claude/parser.d.ts.map +0 -1
  16. package/dist/agents/claude/parser.js +0 -87
  17. package/dist/agents/claude/parser.js.map +0 -1
  18. package/dist/agents/claude/tools.d.ts +0 -7
  19. package/dist/agents/claude/tools.d.ts.map +0 -1
  20. package/dist/agents/claude/tools.js +0 -15
  21. package/dist/agents/claude/tools.js.map +0 -1
  22. package/dist/agents/codex/index.d.ts +0 -11
  23. package/dist/agents/codex/index.d.ts.map +0 -1
  24. package/dist/agents/codex/index.js +0 -60
  25. package/dist/agents/codex/index.js.map +0 -1
  26. package/dist/agents/codex/parser.d.ts +0 -12
  27. package/dist/agents/codex/parser.d.ts.map +0 -1
  28. package/dist/agents/codex/parser.js +0 -108
  29. package/dist/agents/codex/parser.js.map +0 -1
  30. package/dist/agents/codex/tools.d.ts +0 -11
  31. package/dist/agents/codex/tools.d.ts.map +0 -1
  32. package/dist/agents/codex/tools.js +0 -40
  33. package/dist/agents/codex/tools.js.map +0 -1
  34. package/dist/agents/eliza/bundle-content.d.ts +0 -6
  35. package/dist/agents/eliza/bundle-content.d.ts.map +0 -1
  36. package/dist/agents/eliza/bundle-content.js +0 -7
  37. package/dist/agents/eliza/bundle-content.js.map +0 -1
  38. package/dist/agents/eliza/cli.bundle.js +0 -579
  39. package/dist/agents/eliza/cli.d.ts +0 -10
  40. package/dist/agents/eliza/cli.d.ts.map +0 -1
  41. package/dist/agents/eliza/cli.js +0 -342
  42. package/dist/agents/eliza/cli.js.map +0 -1
  43. package/dist/agents/eliza/index.d.ts +0 -22
  44. package/dist/agents/eliza/index.d.ts.map +0 -1
  45. package/dist/agents/eliza/index.js +0 -54
  46. package/dist/agents/eliza/index.js.map +0 -1
  47. package/dist/agents/eliza/parser.d.ts +0 -16
  48. package/dist/agents/eliza/parser.d.ts.map +0 -1
  49. package/dist/agents/eliza/parser.js +0 -67
  50. package/dist/agents/eliza/parser.js.map +0 -1
  51. package/dist/agents/eliza/patterns.d.ts +0 -41
  52. package/dist/agents/eliza/patterns.d.ts.map +0 -1
  53. package/dist/agents/eliza/patterns.js +0 -259
  54. package/dist/agents/eliza/patterns.js.map +0 -1
  55. package/dist/agents/eliza/tools.d.ts +0 -7
  56. package/dist/agents/eliza/tools.d.ts.map +0 -1
  57. package/dist/agents/eliza/tools.js +0 -14
  58. package/dist/agents/eliza/tools.js.map +0 -1
  59. package/dist/agents/gemini/index.d.ts +0 -11
  60. package/dist/agents/gemini/index.d.ts.map +0 -1
  61. package/dist/agents/gemini/index.js +0 -46
  62. package/dist/agents/gemini/index.js.map +0 -1
  63. package/dist/agents/gemini/parser.d.ts +0 -31
  64. package/dist/agents/gemini/parser.d.ts.map +0 -1
  65. package/dist/agents/gemini/parser.js +0 -106
  66. package/dist/agents/gemini/parser.js.map +0 -1
  67. package/dist/agents/gemini/tools.d.ts +0 -7
  68. package/dist/agents/gemini/tools.d.ts.map +0 -1
  69. package/dist/agents/gemini/tools.js +0 -23
  70. package/dist/agents/gemini/tools.js.map +0 -1
  71. package/dist/agents/goose/index.d.ts +0 -11
  72. package/dist/agents/goose/index.d.ts.map +0 -1
  73. package/dist/agents/goose/index.js +0 -73
  74. package/dist/agents/goose/index.js.map +0 -1
  75. package/dist/agents/goose/parser.d.ts +0 -24
  76. package/dist/agents/goose/parser.d.ts.map +0 -1
  77. package/dist/agents/goose/parser.js +0 -86
  78. package/dist/agents/goose/parser.js.map +0 -1
  79. package/dist/agents/goose/tools.d.ts +0 -10
  80. package/dist/agents/goose/tools.d.ts.map +0 -1
  81. package/dist/agents/goose/tools.js +0 -30
  82. package/dist/agents/goose/tools.js.map +0 -1
  83. package/dist/agents/index.d.ts +0 -27
  84. package/dist/agents/index.d.ts.map +0 -1
  85. package/dist/agents/index.js +0 -46
  86. package/dist/agents/index.js.map +0 -1
  87. package/dist/agents/opencode/index.d.ts +0 -12
  88. package/dist/agents/opencode/index.d.ts.map +0 -1
  89. package/dist/agents/opencode/index.js +0 -53
  90. package/dist/agents/opencode/index.js.map +0 -1
  91. package/dist/agents/opencode/parser.d.ts +0 -15
  92. package/dist/agents/opencode/parser.d.ts.map +0 -1
  93. package/dist/agents/opencode/parser.js +0 -71
  94. package/dist/agents/opencode/parser.js.map +0 -1
  95. package/dist/agents/opencode/tools.d.ts +0 -7
  96. package/dist/agents/opencode/tools.d.ts.map +0 -1
  97. package/dist/agents/opencode/tools.js +0 -10
  98. package/dist/agents/opencode/tools.js.map +0 -1
  99. package/dist/agents/openhands/index.d.ts +0 -17
  100. package/dist/agents/openhands/index.d.ts.map +0 -1
  101. package/dist/agents/openhands/index.js +0 -67
  102. package/dist/agents/openhands/index.js.map +0 -1
  103. package/dist/agents/openhands/parser.d.ts +0 -16
  104. package/dist/agents/openhands/parser.d.ts.map +0 -1
  105. package/dist/agents/openhands/parser.js +0 -93
  106. package/dist/agents/openhands/parser.js.map +0 -1
  107. package/dist/agents/openhands/tools.d.ts +0 -7
  108. package/dist/agents/openhands/tools.d.ts.map +0 -1
  109. package/dist/agents/openhands/tools.js +0 -24
  110. package/dist/agents/openhands/tools.js.map +0 -1
  111. package/dist/agents/pi/index.d.ts +0 -14
  112. package/dist/agents/pi/index.d.ts.map +0 -1
  113. package/dist/agents/pi/index.js +0 -54
  114. package/dist/agents/pi/index.js.map +0 -1
  115. package/dist/agents/pi/parser.d.ts +0 -21
  116. package/dist/agents/pi/parser.d.ts.map +0 -1
  117. package/dist/agents/pi/parser.js +0 -91
  118. package/dist/agents/pi/parser.js.map +0 -1
  119. package/dist/agents/pi/tools.d.ts +0 -8
  120. package/dist/agents/pi/tools.d.ts.map +0 -1
  121. package/dist/agents/pi/tools.js +0 -16
  122. package/dist/agents/pi/tools.js.map +0 -1
  123. package/dist/agents/picocode/index.d.ts +0 -18
  124. package/dist/agents/picocode/index.d.ts.map +0 -1
  125. package/dist/agents/picocode/index.js +0 -68
  126. package/dist/agents/picocode/index.js.map +0 -1
  127. package/dist/agents/picocode/parser.d.ts +0 -19
  128. package/dist/agents/picocode/parser.d.ts.map +0 -1
  129. package/dist/agents/picocode/parser.js +0 -104
  130. package/dist/agents/picocode/parser.js.map +0 -1
  131. package/dist/agents/picocode/tools.d.ts +0 -9
  132. package/dist/agents/picocode/tools.d.ts.map +0 -1
  133. package/dist/agents/picocode/tools.js +0 -27
  134. package/dist/agents/picocode/tools.js.map +0 -1
  135. package/dist/background/index.d.ts +0 -6
  136. package/dist/background/index.d.ts.map +0 -1
  137. package/dist/background/index.js +0 -5
  138. package/dist/background/index.js.map +0 -1
  139. package/dist/background/session.d.ts +0 -47
  140. package/dist/background/session.d.ts.map +0 -1
  141. package/dist/background/session.js +0 -481
  142. package/dist/background/session.js.map +0 -1
  143. package/dist/background/types.d.ts +0 -55
  144. package/dist/background/types.d.ts.map +0 -1
  145. package/dist/background/types.js +0 -5
  146. package/dist/background/types.js.map +0 -1
  147. package/dist/core/agent.d.ts +0 -95
  148. package/dist/core/agent.d.ts.map +0 -1
  149. package/dist/core/agent.js +0 -8
  150. package/dist/core/agent.js.map +0 -1
  151. package/dist/core/index.d.ts +0 -7
  152. package/dist/core/index.d.ts.map +0 -1
  153. package/dist/core/index.js +0 -6
  154. package/dist/core/index.js.map +0 -1
  155. package/dist/core/registry.d.ts +0 -48
  156. package/dist/core/registry.d.ts.map +0 -1
  157. package/dist/core/registry.js +0 -68
  158. package/dist/core/registry.js.map +0 -1
  159. package/dist/core/tools.d.ts +0 -31
  160. package/dist/core/tools.d.ts.map +0 -1
  161. package/dist/core/tools.js +0 -82
  162. package/dist/core/tools.js.map +0 -1
  163. package/dist/debug.d.ts +0 -7
  164. package/dist/debug.d.ts.map +0 -1
  165. package/dist/debug.js +0 -19
  166. package/dist/debug.js.map +0 -1
  167. package/dist/factory.d.ts +0 -28
  168. package/dist/factory.d.ts.map +0 -1
  169. package/dist/factory.js +0 -44
  170. package/dist/factory.js.map +0 -1
  171. package/dist/index.d.ts +0 -48
  172. package/dist/index.d.ts.map +0 -1
  173. package/dist/index.js +0 -62
  174. package/dist/index.js.map +0 -1
  175. package/dist/providers/base.d.ts +0 -187
  176. package/dist/providers/base.d.ts.map +0 -1
  177. package/dist/providers/base.js +0 -619
  178. package/dist/providers/base.js.map +0 -1
  179. package/dist/providers/claude.d.ts +0 -14
  180. package/dist/providers/claude.d.ts.map +0 -1
  181. package/dist/providers/claude.js +0 -122
  182. package/dist/providers/claude.js.map +0 -1
  183. package/dist/providers/codex.d.ts +0 -14
  184. package/dist/providers/codex.d.ts.map +0 -1
  185. package/dist/providers/codex.js +0 -160
  186. package/dist/providers/codex.js.map +0 -1
  187. package/dist/providers/gemini.d.ts +0 -16
  188. package/dist/providers/gemini.d.ts.map +0 -1
  189. package/dist/providers/gemini.js +0 -101
  190. package/dist/providers/gemini.js.map +0 -1
  191. package/dist/providers/index.d.ts +0 -6
  192. package/dist/providers/index.d.ts.map +0 -1
  193. package/dist/providers/index.js +0 -6
  194. package/dist/providers/index.js.map +0 -1
  195. package/dist/providers/opencode.d.ts +0 -14
  196. package/dist/providers/opencode.d.ts.map +0 -1
  197. package/dist/providers/opencode.js +0 -100
  198. package/dist/providers/opencode.js.map +0 -1
  199. package/dist/sandbox/daytona.d.ts +0 -8
  200. package/dist/sandbox/daytona.d.ts.map +0 -1
  201. package/dist/sandbox/daytona.js +0 -181
  202. package/dist/sandbox/daytona.js.map +0 -1
  203. package/dist/sandbox/index.d.ts +0 -14
  204. package/dist/sandbox/index.d.ts.map +0 -1
  205. package/dist/sandbox/index.js +0 -15
  206. package/dist/sandbox/index.js.map +0 -1
  207. package/dist/session.d.ts +0 -75
  208. package/dist/session.d.ts.map +0 -1
  209. package/dist/session.js +0 -117
  210. package/dist/session.js.map +0 -1
  211. package/dist/types/events.d.ts +0 -114
  212. package/dist/types/events.d.ts.map +0 -1
  213. package/dist/types/events.js +0 -50
  214. package/dist/types/events.js.map +0 -1
  215. package/dist/types/index.d.ts +0 -3
  216. package/dist/types/index.d.ts.map +0 -1
  217. package/dist/types/index.js +0 -3
  218. package/dist/types/index.js.map +0 -1
  219. package/dist/types/provider.d.ts +0 -67
  220. package/dist/types/provider.d.ts.map +0 -1
  221. package/dist/types/provider.js +0 -5
  222. package/dist/types/provider.js.map +0 -1
  223. package/dist/utils/index.d.ts +0 -3
  224. package/dist/utils/index.d.ts.map +0 -1
  225. package/dist/utils/index.js +0 -3
  226. package/dist/utils/index.js.map +0 -1
  227. package/dist/utils/install.d.ts +0 -37
  228. package/dist/utils/install.d.ts.map +0 -1
  229. package/dist/utils/install.js +0 -122
  230. package/dist/utils/install.js.map +0 -1
  231. package/dist/utils/json.d.ts +0 -8
  232. package/dist/utils/json.d.ts.map +0 -1
  233. package/dist/utils/json.js +0 -15
  234. package/dist/utils/json.js.map +0 -1
  235. package/src/index.ts +0 -156
@@ -1,67 +0,0 @@
1
- /**
2
- * Sandbox and Provider Types
3
- */
4
- /**
5
- * Supported agent names.
6
- * Used by ensureProvider() to install the correct CLI.
7
- */
8
- export type ProviderName = "claude" | "codex" | "eliza" | "goose" | "opencode" | "gemini" | "pi";
9
- /**
10
- * Options for starting a background command that writes to a log file.
11
- */
12
- export interface ExecuteBackgroundOptions {
13
- /** Full command line to run (stdout/stderr should be appended to outputFile). */
14
- command: string;
15
- /** Path in sandbox to append output to (e.g. /tmp/codeagent-<id>/0.jsonl). */
16
- outputFile: string;
17
- /** Unique run id (used for logging; PID is returned from executeBackground). */
18
- runId: string;
19
- /** Timeout in minutes */
20
- timeout?: number;
21
- }
22
- /**
23
- * Sandbox interface required by the SDK.
24
- *
25
- * Implement this yourself or use adaptDaytonaSandbox() to wrap
26
- * a Daytona Sandbox from @daytonaio/sdk.
27
- */
28
- export interface CodeAgentSandbox {
29
- /** Install the provider CLI if not already installed */
30
- ensureProvider(name: ProviderName): Promise<void>;
31
- /** Set environment variables for subsequent commands */
32
- setEnvVars(vars: Record<string, string>): void;
33
- /** Set session-level env vars (persistent across runs) */
34
- setSessionEnvVars?(vars: Record<string, string>): void;
35
- /** Set run-level env vars (cleared after each run) */
36
- setRunEnvVars?(vars: Record<string, string>): void;
37
- /** Clear run-level env vars */
38
- clearRunEnvVars?(): void;
39
- /** Run a one-off command and return the result */
40
- executeCommand?(command: string, timeout?: number): Promise<{
41
- exitCode: number;
42
- output: string;
43
- }>;
44
- /**
45
- * Start a command in the background and return its PID immediately.
46
- * The sandbox must run the command with stdout/stderr >> outputFile.
47
- */
48
- executeBackground?(options: ExecuteBackgroundOptions): Promise<{
49
- pid: number;
50
- }>;
51
- /** Kill a background process by PID */
52
- killBackgroundProcess?(pid: number, processName?: string): Promise<void>;
53
- /** Optimized poll: reads meta, output, and done status in fewer commands */
54
- pollBackgroundState?(sessionDir: string): Promise<{
55
- meta: string | null;
56
- output: string;
57
- done: boolean;
58
- } | null>;
59
- }
60
- /**
61
- * Options when adapting a Daytona sandbox for use with the SDK.
62
- */
63
- export interface AdaptSandboxOptions {
64
- /** Environment variables for CLI execution */
65
- env?: Record<string, string>;
66
- }
67
- //# sourceMappingURL=provider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/types/provider.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,GAAG,QAAQ,GAAG,IAAI,CAAA;AAEhG;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,iFAAiF;IACjF,OAAO,EAAE,MAAM,CAAA;IACf,8EAA8E;IAC9E,UAAU,EAAE,MAAM,CAAA;IAClB,gFAAgF;IAChF,KAAK,EAAE,MAAM,CAAA;IACb,yBAAyB;IACzB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,wDAAwD;IACxD,cAAc,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAEjD,wDAAwD;IACxD,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAA;IAE9C,0DAA0D;IAC1D,iBAAiB,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAA;IAEtD,sDAAsD;IACtD,aAAa,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAA;IAElD,+BAA+B;IAC/B,eAAe,CAAC,IAAI,IAAI,CAAA;IAExB,kDAAkD;IAClD,cAAc,CAAC,CACb,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAEhD;;;OAGG;IACH,iBAAiB,CAAC,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAE/E,uCAAuC;IACvC,qBAAqB,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAExE,4EAA4E;IAC5E,mBAAmB,CAAC,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;QAChD,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;QACnB,MAAM,EAAE,MAAM,CAAA;QACd,IAAI,EAAE,OAAO,CAAA;KACd,GAAG,IAAI,CAAC,CAAA;CACV;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,8CAA8C;IAC9C,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC7B"}
@@ -1,5 +0,0 @@
1
- /**
2
- * Sandbox and Provider Types
3
- */
4
- export {};
5
- //# sourceMappingURL=provider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/types/provider.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -1,3 +0,0 @@
1
- export * from "./json";
2
- export * from "./install";
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAA;AACtB,cAAc,WAAW,CAAA"}
@@ -1,3 +0,0 @@
1
- export * from "./json";
2
- export * from "./install";
3
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAA;AACtB,cAAc,WAAW,CAAA"}
@@ -1,37 +0,0 @@
1
- import type { ProviderName } from "../types/index";
2
- /**
3
- * Check if a CLI command is available in PATH
4
- */
5
- export declare function isCliInstalled(name: ProviderName): boolean;
6
- /**
7
- * Get the npm package name for a provider.
8
- * Returns empty string for providers that don't use npm.
9
- */
10
- export declare function getPackageName(name: ProviderName): string;
11
- /**
12
- * Get the shell installer command for a provider.
13
- * Returns undefined for providers that use npm.
14
- */
15
- export declare function getShellInstaller(name: ProviderName): string | undefined;
16
- /**
17
- * Install a provider CLI globally via npm
18
- * @returns true if installation succeeded
19
- */
20
- export declare function installProvider(name: ProviderName): boolean;
21
- /**
22
- * Check if a provider is built-in and doesn't need installation.
23
- */
24
- export declare function isBuiltInProvider(name: ProviderName): boolean;
25
- /**
26
- * Ensure a provider CLI is installed, installing it if necessary
27
- * @param name - Provider name
28
- * @param autoInstall - Whether to automatically install if missing (default: false)
29
- * @returns true if CLI is available (either already installed or successfully installed)
30
- * @throws Error if CLI is not installed and autoInstall is false
31
- */
32
- export declare function ensureCliInstalled(name: ProviderName, autoInstall?: boolean): boolean;
33
- /**
34
- * Check installation status of all providers
35
- */
36
- export declare function getInstallationStatus(): Record<ProviderName, boolean>;
37
- //# sourceMappingURL=install.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/utils/install.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AA6BlD;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAU1D;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAEzD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,GAAG,SAAS,CAExE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAY3D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAG7D;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,YAAY,EAClB,WAAW,GAAE,OAAe,GAC3B,OAAO,CA+BT;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,CAUrE"}
@@ -1,122 +0,0 @@
1
- import { execSync, spawnSync } from "node:child_process";
2
- /**
3
- * CLI package information for each provider.
4
- * Note: goose uses a shell script installer, not npm.
5
- */
6
- const PROVIDER_PACKAGES = {
7
- claude: "@anthropic-ai/claude-code",
8
- codex: "@openai/codex",
9
- eliza: "", // eliza is built-in, no installation needed
10
- goose: "", // goose uses shell script installer, not npm
11
- opencode: "opencode",
12
- gemini: "@google/gemini-cli",
13
- pi: "@mariozechner/pi-coding-agent",
14
- };
15
- /**
16
- * Shell script installers for providers that don't use npm.
17
- * These commands download and install the CLI binary directly.
18
- */
19
- const PROVIDER_SHELL_INSTALLERS = {
20
- // Goose: Download the binary directly without the interactive installer script
21
- // 1. Create temp and bin directories
22
- // 2. Download the tarball for x86_64 Linux
23
- // 3. Extract to temp dir and move binary to ~/.local/bin
24
- // Use --no-same-owner and --no-same-permissions to avoid permission issues
25
- goose: `mkdir -p ~/.local/bin ~/.goose_tmp && curl -fsSL "https://github.com/block/goose/releases/download/stable/goose-x86_64-unknown-linux-gnu.tar.bz2" | tar -xjf - --no-same-owner --no-same-permissions -C ~/.goose_tmp && mv ~/.goose_tmp/goose ~/.local/bin/goose && chmod +x ~/.local/bin/goose && rm -rf ~/.goose_tmp`,
26
- };
27
- /**
28
- * Check if a CLI command is available in PATH
29
- */
30
- export function isCliInstalled(name) {
31
- try {
32
- const result = spawnSync("which", [name], {
33
- encoding: "utf8",
34
- stdio: ["pipe", "pipe", "pipe"],
35
- });
36
- return result.status === 0;
37
- }
38
- catch {
39
- return false;
40
- }
41
- }
42
- /**
43
- * Get the npm package name for a provider.
44
- * Returns empty string for providers that don't use npm.
45
- */
46
- export function getPackageName(name) {
47
- return PROVIDER_PACKAGES[name];
48
- }
49
- /**
50
- * Get the shell installer command for a provider.
51
- * Returns undefined for providers that use npm.
52
- */
53
- export function getShellInstaller(name) {
54
- return PROVIDER_SHELL_INSTALLERS[name];
55
- }
56
- /**
57
- * Install a provider CLI globally via npm
58
- * @returns true if installation succeeded
59
- */
60
- export function installProvider(name) {
61
- const packageName = PROVIDER_PACKAGES[name];
62
- try {
63
- execSync(`npm install -g ${packageName}`, {
64
- stdio: "inherit",
65
- encoding: "utf8",
66
- });
67
- return true;
68
- }
69
- catch {
70
- return false;
71
- }
72
- }
73
- /**
74
- * Check if a provider is built-in and doesn't need installation.
75
- */
76
- export function isBuiltInProvider(name) {
77
- // ELIZA is built-in: runs via node within the agents package
78
- return name === "eliza";
79
- }
80
- /**
81
- * Ensure a provider CLI is installed, installing it if necessary
82
- * @param name - Provider name
83
- * @param autoInstall - Whether to automatically install if missing (default: false)
84
- * @returns true if CLI is available (either already installed or successfully installed)
85
- * @throws Error if CLI is not installed and autoInstall is false
86
- */
87
- export function ensureCliInstalled(name, autoInstall = false) {
88
- // Built-in providers don't need installation
89
- if (isBuiltInProvider(name)) {
90
- return true;
91
- }
92
- if (isCliInstalled(name)) {
93
- return true;
94
- }
95
- if (!autoInstall) {
96
- const packageName = PROVIDER_PACKAGES[name];
97
- throw new Error(`CLI '${name}' is not installed. ` +
98
- `Install it with: npm install -g ${packageName}`);
99
- }
100
- console.log(`Installing ${name} CLI...`);
101
- const success = installProvider(name);
102
- if (!success) {
103
- const packageName = PROVIDER_PACKAGES[name];
104
- throw new Error(`Failed to install '${name}' CLI. ` +
105
- `Try manually: npm install -g ${packageName}`);
106
- }
107
- console.log(`Successfully installed ${name} CLI`);
108
- return true;
109
- }
110
- /**
111
- * Check installation status of all providers
112
- */
113
- export function getInstallationStatus() {
114
- const providers = ["claude", "codex", "eliza", "goose", "opencode", "gemini", "pi"];
115
- const status = {};
116
- for (const provider of providers) {
117
- // Built-in providers are always "installed"
118
- status[provider] = isBuiltInProvider(provider) || isCliInstalled(provider);
119
- }
120
- return status;
121
- }
122
- //# sourceMappingURL=install.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/utils/install.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- /**
2
- * JSON parsing utilities
3
- */
4
- /**
5
- * Safely parse JSON, returning null on failure
6
- */
7
- export declare function safeJsonParse<T = unknown>(text: string): T | null;
8
- //# sourceMappingURL=json.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../src/utils/json.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,wBAAgB,aAAa,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,CAMjE"}
@@ -1,15 +0,0 @@
1
- /**
2
- * JSON parsing utilities
3
- */
4
- /**
5
- * Safely parse JSON, returning null on failure
6
- */
7
- export function safeJsonParse(text) {
8
- try {
9
- return JSON.parse(text);
10
- }
11
- catch {
12
- return null;
13
- }
14
- }
15
- //# sourceMappingURL=json.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"json.js","sourceRoot":"","sources":["../../src/utils/json.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,UAAU,aAAa,CAAc,IAAY;IACrD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAM,CAAA;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC"}
package/src/index.ts DELETED
@@ -1,156 +0,0 @@
1
- /**
2
- * Coding Agents SDK
3
- *
4
- * A TypeScript SDK for interacting with various AI coding agents.
5
- * Create a sandbox with @daytonaio/sdk and pass it to createSession.
6
- *
7
- * @example
8
- * ```typescript
9
- * import { Daytona } from "@daytonaio/sdk"
10
- * import { createSession } from "background-agents"
11
- *
12
- * const daytona = new Daytona({ apiKey: process.env.DAYTONA_API_KEY })
13
- * const sandbox = await daytona.create({ envVars: { ANTHROPIC_API_KEY: '...' } })
14
- *
15
- * const session = await createSession("claude", {
16
- * sandbox,
17
- * systemPrompt: 'You are a helpful assistant.',
18
- * })
19
- *
20
- * // Start a turn
21
- * await session.start("Hello!")
22
- *
23
- * // Poll for events
24
- * while (true) {
25
- * const result = await session.getEvents()
26
- * for (const event of result.events) {
27
- * if (event.type === "token") process.stdout.write(event.text)
28
- * }
29
- * if (!result.running) break
30
- * await new Promise(r => setTimeout(r, 500))
31
- * }
32
- *
33
- * await sandbox.delete()
34
- * ```
35
- */
36
-
37
- // ─────────────────────────────────────────────────────────────────────────────
38
- // Event Types
39
- // ─────────────────────────────────────────────────────────────────────────────
40
-
41
- export type {
42
- Event,
43
- SessionEvent,
44
- TokenEvent,
45
- ToolStartEvent,
46
- ToolDeltaEvent,
47
- ToolEndEvent,
48
- EndEvent,
49
- AgentCrashedEvent,
50
- EventType,
51
- ToolName,
52
- WriteToolInput,
53
- ReadToolInput,
54
- EditToolInput,
55
- GlobToolInput,
56
- GrepToolInput,
57
- ShellToolInput,
58
- ToolInputMap,
59
- } from "./types/events"
60
-
61
- // ─────────────────────────────────────────────────────────────────────────────
62
- // Core Types
63
- // ─────────────────────────────────────────────────────────────────────────────
64
-
65
- export type {
66
- AgentDefinition,
67
- AgentCapabilities,
68
- CommandSpec,
69
- ParseContext,
70
- RunOptions,
71
- } from "./core/agent"
72
-
73
- export type { CanonicalToolName } from "./core/tools"
74
-
75
- // ─────────────────────────────────────────────────────────────────────────────
76
- // Background Session Types
77
- // ─────────────────────────────────────────────────────────────────────────────
78
-
79
- export type {
80
- BackgroundSession,
81
- BackgroundRunPhase,
82
- PollResult,
83
- TurnHandle,
84
- } from "./background/index"
85
-
86
- // ─────────────────────────────────────────────────────────────────────────────
87
- // Sandbox Types
88
- // ─────────────────────────────────────────────────────────────────────────────
89
-
90
- export type {
91
- CodeAgentSandbox,
92
- ExecuteBackgroundOptions,
93
- AdaptSandboxOptions,
94
- } from "./types/provider"
95
-
96
- // ─────────────────────────────────────────────────────────────────────────────
97
- // Session API (Main Entry Point)
98
- // ─────────────────────────────────────────────────────────────────────────────
99
-
100
- export {
101
- createSession,
102
- getSession,
103
- getAgentNames,
104
- type SessionOptions,
105
- type CreateSessionOptions,
106
- } from "./session"
107
-
108
- // ─────────────────────────────────────────────────────────────────────────────
109
- // Agent Registry
110
- // ─────────────────────────────────────────────────────────────────────────────
111
-
112
- export { registry, getAgent } from "./core/registry"
113
-
114
- // ─────────────────────────────────────────────────────────────────────────────
115
- // Tool Utilities
116
- // ─────────────────────────────────────────────────────────────────────────────
117
-
118
- export {
119
- normalizeToolName,
120
- createToolStartEvent,
121
- getToolDisplayName,
122
- CANONICAL_DISPLAY_NAMES,
123
- } from "./core/tools"
124
-
125
- // ─────────────────────────────────────────────────────────────────────────────
126
- // Agent Definitions (for direct import)
127
- // ─────────────────────────────────────────────────────────────────────────────
128
-
129
- export {
130
- claudeAgent,
131
- codexAgent,
132
- geminiAgent,
133
- opencodeAgent,
134
- } from "./agents/index"
135
-
136
- // ─────────────────────────────────────────────────────────────────────────────
137
- // Sandbox Adapter
138
- // ─────────────────────────────────────────────────────────────────────────────
139
-
140
- export { adaptDaytonaSandbox, adaptSandbox } from "./sandbox/index"
141
-
142
- // ─────────────────────────────────────────────────────────────────────────────
143
- // Utilities
144
- // ─────────────────────────────────────────────────────────────────────────────
145
-
146
- export {
147
- safeJsonParse,
148
- isCliInstalled,
149
- installProvider,
150
- ensureCliInstalled,
151
- getPackageName,
152
- getInstallationStatus,
153
- } from "./utils/index"
154
-
155
- // Debug (enable with CODING_AGENTS_DEBUG=1)
156
- export { isDebugEnabled, debugLog } from "./debug"