background-agents 0.1.1 → 0.1.2

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 (210) hide show
  1. package/README.md +173 -241
  2. package/dist/agents/claude/index.d.ts +11 -0
  3. package/dist/agents/claude/index.d.ts.map +1 -0
  4. package/dist/agents/claude/index.js +78 -0
  5. package/dist/agents/claude/index.js.map +1 -0
  6. package/dist/agents/claude/parser.d.ts +16 -0
  7. package/dist/agents/claude/parser.d.ts.map +1 -0
  8. package/dist/agents/claude/parser.js +87 -0
  9. package/dist/agents/claude/parser.js.map +1 -0
  10. package/dist/agents/claude/tools.d.ts +7 -0
  11. package/dist/agents/claude/tools.d.ts.map +1 -0
  12. package/dist/agents/claude/tools.js +15 -0
  13. package/dist/agents/claude/tools.js.map +1 -0
  14. package/dist/agents/codex/index.d.ts +11 -0
  15. package/dist/agents/codex/index.d.ts.map +1 -0
  16. package/dist/agents/codex/index.js +60 -0
  17. package/dist/agents/codex/index.js.map +1 -0
  18. package/dist/agents/codex/parser.d.ts +12 -0
  19. package/dist/agents/codex/parser.d.ts.map +1 -0
  20. package/dist/agents/codex/parser.js +108 -0
  21. package/dist/agents/codex/parser.js.map +1 -0
  22. package/dist/agents/codex/tools.d.ts +11 -0
  23. package/dist/agents/codex/tools.d.ts.map +1 -0
  24. package/dist/agents/codex/tools.js +40 -0
  25. package/dist/agents/codex/tools.js.map +1 -0
  26. package/dist/agents/eliza/bundle-content.d.ts +6 -0
  27. package/dist/agents/eliza/bundle-content.d.ts.map +1 -0
  28. package/dist/agents/eliza/bundle-content.js +7 -0
  29. package/dist/agents/eliza/bundle-content.js.map +1 -0
  30. package/dist/agents/eliza/cli.bundle.js +579 -0
  31. package/dist/agents/eliza/cli.d.ts +10 -0
  32. package/dist/agents/eliza/cli.d.ts.map +1 -0
  33. package/dist/agents/eliza/cli.js +342 -0
  34. package/dist/agents/eliza/cli.js.map +1 -0
  35. package/dist/agents/eliza/index.d.ts +22 -0
  36. package/dist/agents/eliza/index.d.ts.map +1 -0
  37. package/dist/agents/eliza/index.js +54 -0
  38. package/dist/agents/eliza/index.js.map +1 -0
  39. package/dist/agents/eliza/parser.d.ts +16 -0
  40. package/dist/agents/eliza/parser.d.ts.map +1 -0
  41. package/dist/agents/eliza/parser.js +67 -0
  42. package/dist/agents/eliza/parser.js.map +1 -0
  43. package/dist/agents/eliza/patterns.d.ts +41 -0
  44. package/dist/agents/eliza/patterns.d.ts.map +1 -0
  45. package/dist/agents/eliza/patterns.js +259 -0
  46. package/dist/agents/eliza/patterns.js.map +1 -0
  47. package/dist/agents/eliza/tools.d.ts +7 -0
  48. package/dist/agents/eliza/tools.d.ts.map +1 -0
  49. package/dist/agents/eliza/tools.js +14 -0
  50. package/dist/agents/eliza/tools.js.map +1 -0
  51. package/dist/agents/gemini/index.d.ts +11 -0
  52. package/dist/agents/gemini/index.d.ts.map +1 -0
  53. package/dist/agents/gemini/index.js +46 -0
  54. package/dist/agents/gemini/index.js.map +1 -0
  55. package/dist/agents/gemini/parser.d.ts +31 -0
  56. package/dist/agents/gemini/parser.d.ts.map +1 -0
  57. package/dist/agents/gemini/parser.js +106 -0
  58. package/dist/agents/gemini/parser.js.map +1 -0
  59. package/dist/agents/gemini/tools.d.ts +7 -0
  60. package/dist/agents/gemini/tools.d.ts.map +1 -0
  61. package/dist/agents/gemini/tools.js +23 -0
  62. package/dist/agents/gemini/tools.js.map +1 -0
  63. package/dist/agents/goose/index.d.ts +11 -0
  64. package/dist/agents/goose/index.d.ts.map +1 -0
  65. package/dist/agents/goose/index.js +73 -0
  66. package/dist/agents/goose/index.js.map +1 -0
  67. package/dist/agents/goose/parser.d.ts +24 -0
  68. package/dist/agents/goose/parser.d.ts.map +1 -0
  69. package/dist/agents/goose/parser.js +86 -0
  70. package/dist/agents/goose/parser.js.map +1 -0
  71. package/dist/agents/goose/tools.d.ts +10 -0
  72. package/dist/agents/goose/tools.d.ts.map +1 -0
  73. package/dist/agents/goose/tools.js +30 -0
  74. package/dist/agents/goose/tools.js.map +1 -0
  75. package/dist/agents/index.d.ts +27 -0
  76. package/dist/agents/index.d.ts.map +1 -0
  77. package/dist/agents/index.js +46 -0
  78. package/dist/agents/index.js.map +1 -0
  79. package/dist/agents/opencode/index.d.ts +12 -0
  80. package/dist/agents/opencode/index.d.ts.map +1 -0
  81. package/dist/agents/opencode/index.js +53 -0
  82. package/dist/agents/opencode/index.js.map +1 -0
  83. package/dist/agents/opencode/parser.d.ts +15 -0
  84. package/dist/agents/opencode/parser.d.ts.map +1 -0
  85. package/dist/agents/opencode/parser.js +71 -0
  86. package/dist/agents/opencode/parser.js.map +1 -0
  87. package/dist/agents/opencode/tools.d.ts +7 -0
  88. package/dist/agents/opencode/tools.d.ts.map +1 -0
  89. package/dist/agents/opencode/tools.js +10 -0
  90. package/dist/agents/opencode/tools.js.map +1 -0
  91. package/dist/agents/openhands/index.d.ts +17 -0
  92. package/dist/agents/openhands/index.d.ts.map +1 -0
  93. package/dist/agents/openhands/index.js +67 -0
  94. package/dist/agents/openhands/index.js.map +1 -0
  95. package/dist/agents/openhands/parser.d.ts +16 -0
  96. package/dist/agents/openhands/parser.d.ts.map +1 -0
  97. package/dist/agents/openhands/parser.js +93 -0
  98. package/dist/agents/openhands/parser.js.map +1 -0
  99. package/dist/agents/openhands/tools.d.ts +7 -0
  100. package/dist/agents/openhands/tools.d.ts.map +1 -0
  101. package/dist/agents/openhands/tools.js +24 -0
  102. package/dist/agents/openhands/tools.js.map +1 -0
  103. package/dist/agents/pi/index.d.ts +14 -0
  104. package/dist/agents/pi/index.d.ts.map +1 -0
  105. package/dist/agents/pi/index.js +54 -0
  106. package/dist/agents/pi/index.js.map +1 -0
  107. package/dist/agents/pi/parser.d.ts +21 -0
  108. package/dist/agents/pi/parser.d.ts.map +1 -0
  109. package/dist/agents/pi/parser.js +91 -0
  110. package/dist/agents/pi/parser.js.map +1 -0
  111. package/dist/agents/pi/tools.d.ts +8 -0
  112. package/dist/agents/pi/tools.d.ts.map +1 -0
  113. package/dist/agents/pi/tools.js +16 -0
  114. package/dist/agents/pi/tools.js.map +1 -0
  115. package/dist/agents/picocode/index.d.ts +18 -0
  116. package/dist/agents/picocode/index.d.ts.map +1 -0
  117. package/dist/agents/picocode/index.js +68 -0
  118. package/dist/agents/picocode/index.js.map +1 -0
  119. package/dist/agents/picocode/parser.d.ts +19 -0
  120. package/dist/agents/picocode/parser.d.ts.map +1 -0
  121. package/dist/agents/picocode/parser.js +104 -0
  122. package/dist/agents/picocode/parser.js.map +1 -0
  123. package/dist/agents/picocode/tools.d.ts +9 -0
  124. package/dist/agents/picocode/tools.d.ts.map +1 -0
  125. package/dist/agents/picocode/tools.js +27 -0
  126. package/dist/agents/picocode/tools.js.map +1 -0
  127. package/dist/background/index.d.ts +6 -0
  128. package/dist/background/index.d.ts.map +1 -0
  129. package/dist/background/index.js +5 -0
  130. package/dist/background/index.js.map +1 -0
  131. package/dist/background/session.d.ts +47 -0
  132. package/dist/background/session.d.ts.map +1 -0
  133. package/dist/background/session.js +481 -0
  134. package/dist/background/session.js.map +1 -0
  135. package/dist/background/types.d.ts +55 -0
  136. package/dist/background/types.d.ts.map +1 -0
  137. package/dist/background/types.js +5 -0
  138. package/dist/background/types.js.map +1 -0
  139. package/dist/core/agent.d.ts +95 -0
  140. package/dist/core/agent.d.ts.map +1 -0
  141. package/dist/core/agent.js +8 -0
  142. package/dist/core/agent.js.map +1 -0
  143. package/dist/core/index.d.ts +7 -0
  144. package/dist/core/index.d.ts.map +1 -0
  145. package/dist/core/index.js +6 -0
  146. package/dist/core/index.js.map +1 -0
  147. package/dist/core/registry.d.ts +48 -0
  148. package/dist/core/registry.d.ts.map +1 -0
  149. package/dist/core/registry.js +68 -0
  150. package/dist/core/registry.js.map +1 -0
  151. package/dist/core/tools.d.ts +31 -0
  152. package/dist/core/tools.d.ts.map +1 -0
  153. package/dist/core/tools.js +82 -0
  154. package/dist/core/tools.js.map +1 -0
  155. package/dist/debug.js +1 -1
  156. package/dist/debug.js.map +1 -1
  157. package/dist/factory.d.ts +1 -4
  158. package/dist/factory.d.ts.map +1 -1
  159. package/dist/factory.js +1 -4
  160. package/dist/factory.js.map +1 -1
  161. package/dist/index.d.ts +29 -11
  162. package/dist/index.d.ts.map +1 -1
  163. package/dist/index.js +41 -14
  164. package/dist/index.js.map +1 -1
  165. package/dist/providers/base.d.ts +45 -18
  166. package/dist/providers/base.d.ts.map +1 -1
  167. package/dist/providers/base.js +228 -265
  168. package/dist/providers/base.js.map +1 -1
  169. package/dist/providers/gemini.d.ts.map +1 -1
  170. package/dist/providers/gemini.js +18 -8
  171. package/dist/providers/gemini.js.map +1 -1
  172. package/dist/sandbox/daytona.d.ts +5 -1
  173. package/dist/sandbox/daytona.d.ts.map +1 -1
  174. package/dist/sandbox/daytona.js +157 -214
  175. package/dist/sandbox/daytona.js.map +1 -1
  176. package/dist/sandbox/index.d.ts +3 -3
  177. package/dist/sandbox/index.d.ts.map +1 -1
  178. package/dist/sandbox/index.js +2 -2
  179. package/dist/sandbox/index.js.map +1 -1
  180. package/dist/session.d.ts +62 -51
  181. package/dist/session.d.ts.map +1 -1
  182. package/dist/session.js +94 -90
  183. package/dist/session.js.map +1 -1
  184. package/dist/types/index.d.ts +2 -2
  185. package/dist/types/index.d.ts.map +1 -1
  186. package/dist/types/index.js +2 -2
  187. package/dist/types/index.js.map +1 -1
  188. package/dist/types/provider.d.ts +37 -94
  189. package/dist/types/provider.d.ts.map +1 -1
  190. package/dist/types/provider.js +3 -0
  191. package/dist/types/provider.js.map +1 -1
  192. package/dist/utils/index.d.ts +2 -3
  193. package/dist/utils/index.d.ts.map +1 -1
  194. package/dist/utils/index.js +2 -3
  195. package/dist/utils/index.js.map +1 -1
  196. package/dist/utils/install.d.ts +12 -2
  197. package/dist/utils/install.d.ts.map +1 -1
  198. package/dist/utils/install.js +40 -4
  199. package/dist/utils/install.js.map +1 -1
  200. package/package.json +24 -13
  201. package/src/index.ts +156 -0
  202. package/dist/sandbox/daytona-ssh.d.ts +0 -9
  203. package/dist/sandbox/daytona-ssh.d.ts.map +0 -1
  204. package/dist/sandbox/daytona-ssh.js +0 -113
  205. package/dist/sandbox/daytona-ssh.js.map +0 -1
  206. package/dist/utils/session.d.ts +0 -17
  207. package/dist/utils/session.d.ts.map +0 -1
  208. package/dist/utils/session.js +0 -59
  209. package/dist/utils/session.js.map +0 -1
  210. package/next.config.codeagentsdk.cjs +0 -22
@@ -1,10 +1,14 @@
1
- import type { Event } from "./events.js";
2
1
  /**
3
- * Provider-related types and interfaces
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.
4
11
  */
5
- /** Supported provider names */
6
- export type ProviderName = "claude" | "codex" | "opencode" | "gemini";
7
- /** Options for starting a background command that writes to a log file and signals when done. */
8
12
  export interface ExecuteBackgroundOptions {
9
13
  /** Full command line to run (stdout/stderr should be appended to outputFile). */
10
14
  command: string;
@@ -12,113 +16,52 @@ export interface ExecuteBackgroundOptions {
12
16
  outputFile: string;
13
17
  /** Unique run id (used for logging; PID is returned from executeBackground). */
14
18
  runId: string;
19
+ /** Timeout in minutes */
15
20
  timeout?: number;
16
21
  }
17
22
  /**
18
- * Sandbox interface required by the SDK. Implement this yourself or use
19
- * adaptDaytonaSandbox() to wrap a Daytona Sandbox from @daytonaio/sdk.
23
+ * Sandbox interface required by the SDK.
24
+ *
25
+ * Implement this yourself or use adaptDaytonaSandbox() to wrap
26
+ * a Daytona Sandbox from @daytonaio/sdk.
20
27
  */
21
28
  export interface CodeAgentSandbox {
29
+ /** Install the provider CLI if not already installed */
22
30
  ensureProvider(name: ProviderName): Promise<void>;
31
+ /** Set environment variables for subsequent commands */
23
32
  setEnvVars(vars: Record<string, string>): void;
24
- executeCommandStream(command: string, timeout?: number): AsyncGenerator<string, void, unknown>;
25
- /** Optional: run a one-off command (used e.g. for Codex login). */
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 */
26
40
  executeCommand?(command: string, timeout?: number): Promise<{
27
41
  exitCode: number;
28
42
  output: string;
29
43
  }>;
30
44
  /**
31
- * Optional: start a command in the background and return its pid immediately.
32
- * The sandbox must run the command with stdout/stderr >> outputFile and return
33
- * the pid (e.g. via nohup + SSH so the channel closes right away). Implement
34
- * this to avoid blocking on the command when using executeCommand.
45
+ * Start a command in the background and return its PID immediately.
46
+ * The sandbox must run the command with stdout/stderr >> outputFile.
35
47
  */
36
48
  executeBackground?(options: ExecuteBackgroundOptions): Promise<{
37
49
  pid: number;
38
50
  }>;
39
- /**
40
- * Optional: kill a process by pid. Must use the same execution context that
41
- * started it (e.g. SSH); process API kill won't see pids started over SSH.
42
- */
43
- killBackgroundProcess?(pid: number): Promise<void>;
44
- }
45
- /** Command configuration for spawning a provider process */
46
- export interface ProviderCommand {
47
- cmd: string;
48
- args: string[];
49
- env?: Record<string, string>;
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>;
50
59
  }
51
- /** Options when adapting a Daytona sandbox for use with the SDK */
60
+ /**
61
+ * Options when adapting a Daytona sandbox for use with the SDK.
62
+ */
52
63
  export interface AdaptSandboxOptions {
53
- /** Environment variables for CLI execution (e.g. ANTHROPIC_API_KEY) */
64
+ /** Environment variables for CLI execution */
54
65
  env?: Record<string, string>;
55
66
  }
56
- /** Options for running a provider */
57
- export interface RunOptions {
58
- /** The prompt to send to the provider */
59
- prompt?: string;
60
- /**
61
- * Optional system prompt / high-level instructions.
62
- * When set via createSession, providers that support system prompts will use
63
- * their native mechanism; others will have this string prepended to the first
64
- * user prompt in the session.
65
- */
66
- systemPrompt?: string;
67
- /** Optional session ID to resume */
68
- sessionId?: string;
69
- /** Whether to persist session ID to file (only for local mode) */
70
- persistSession?: boolean;
71
- /** Custom session file path (only for local mode) */
72
- sessionFile?: string;
73
- /** Working directory for the provider process */
74
- cwd?: string;
75
- /** Environment variables to pass to the provider */
76
- env?: Record<string, string>;
77
- /** Skip installing the CLI in the sandbox (default: false) */
78
- skipInstall?: boolean;
79
- /** Timeout in seconds for sandbox execution (default: 120) */
80
- timeout?: number;
81
- /** Model to use (provider-specific, e.g., "openai/gpt-4o") */
82
- model?: string;
83
- }
84
- /** Default run options merged into every run (used by createSession) */
85
- export type RunDefaults = Partial<Omit<RunOptions, "prompt">>;
86
- /** Options for creating a provider */
87
- export interface ProviderOptions {
88
- /**
89
- * Sandbox for secure execution. Pass a Sandbox from @daytonaio/sdk directly
90
- * (the SDK adapts it internally). Optional env here is used for CLI execution.
91
- */
92
- sandbox?: CodeAgentSandbox | import("@daytonaio/sdk").Sandbox;
93
- /** Environment variables for CLI execution (e.g. when sandbox is a Daytona Sandbox) */
94
- env?: Record<string, string>;
95
- /** Skip installing the provider CLI when the provider is created (default: false) */
96
- skipInstall?: boolean;
97
- /**
98
- * Allow running commands directly on local machine without sandbox.
99
- * ⚠️ DANGEROUS: Only use this if you trust the code being executed.
100
- */
101
- dangerouslyAllowLocalExecution?: boolean;
102
- /** Defaults merged into every run() call (model, timeout, sessionId, env). Set by createSession. */
103
- runDefaults?: RunDefaults;
104
- }
105
- /** Event handler callback */
106
- export type EventHandler = (event: Event) => void | Promise<void>;
107
- /** Provider interface that all providers must implement */
108
- export interface IProvider {
109
- /** Provider name */
110
- readonly name: ProviderName;
111
- /** Current session ID */
112
- sessionId: string | null;
113
- /** Convenience accessor for current session id */
114
- getSessionId(): string | null;
115
- /** Get the command to spawn the provider */
116
- getCommand(options?: RunOptions): ProviderCommand;
117
- /** Parse a line of output into one or more events */
118
- parse(line: string): Event | Event[] | null;
119
- /** Resolves when CLI install and setup (env, Codex login) have completed. Await before first run if you want "ready" UX. */
120
- readonly ready: Promise<void>;
121
- /** Run the provider and emit events. Pass a prompt string or full RunOptions. */
122
- run(promptOrOptions?: string | RunOptions): AsyncGenerator<Event, void, unknown>;
123
- }
124
67
  //# sourceMappingURL=provider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/types/provider.ts"],"names":[],"mappings":"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"}
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,2 +1,5 @@
1
+ /**
2
+ * Sandbox and Provider Types
3
+ */
1
4
  export {};
2
5
  //# sourceMappingURL=provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/types/provider.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/types/provider.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -1,4 +1,3 @@
1
- export * from "./json.js";
2
- export * from "./session.js";
3
- export * from "./install.js";
1
+ export * from "./json";
2
+ export * from "./install";
4
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAA;AACtB,cAAc,WAAW,CAAA"}
@@ -1,4 +1,3 @@
1
- export * from "./json.js";
2
- export * from "./session.js";
3
- export * from "./install.js";
1
+ export * from "./json";
2
+ export * from "./install";
4
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAA;AACtB,cAAc,WAAW,CAAA"}
@@ -1,17 +1,27 @@
1
- import type { ProviderName } from "../types/index.js";
1
+ import type { ProviderName } from "../types/index";
2
2
  /**
3
3
  * Check if a CLI command is available in PATH
4
4
  */
5
5
  export declare function isCliInstalled(name: ProviderName): boolean;
6
6
  /**
7
- * Get the npm package name for a provider
7
+ * Get the npm package name for a provider.
8
+ * Returns empty string for providers that don't use npm.
8
9
  */
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;
10
16
  /**
11
17
  * Install a provider CLI globally via npm
12
18
  * @returns true if installation succeeded
13
19
  */
14
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;
15
25
  /**
16
26
  * Ensure a provider CLI is installed, installing it if necessary
17
27
  * @param name - Provider name
@@ -1 +1 @@
1
- {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/utils/install.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAYrD;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAU1D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAEzD;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAY3D;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,YAAY,EAClB,WAAW,GAAE,OAAe,GAC3B,OAAO,CA0BT;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,CASrE"}
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,12 +1,28 @@
1
1
  import { execSync, spawnSync } from "node:child_process";
2
2
  /**
3
- * CLI package information for each provider
3
+ * CLI package information for each provider.
4
+ * Note: goose uses a shell script installer, not npm.
4
5
  */
5
6
  const PROVIDER_PACKAGES = {
6
7
  claude: "@anthropic-ai/claude-code",
7
8
  codex: "@openai/codex",
9
+ eliza: "", // eliza is built-in, no installation needed
10
+ goose: "", // goose uses shell script installer, not npm
8
11
  opencode: "opencode",
9
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`,
10
26
  };
11
27
  /**
12
28
  * Check if a CLI command is available in PATH
@@ -24,11 +40,19 @@ export function isCliInstalled(name) {
24
40
  }
25
41
  }
26
42
  /**
27
- * Get the npm package name for a provider
43
+ * Get the npm package name for a provider.
44
+ * Returns empty string for providers that don't use npm.
28
45
  */
29
46
  export function getPackageName(name) {
30
47
  return PROVIDER_PACKAGES[name];
31
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
+ }
32
56
  /**
33
57
  * Install a provider CLI globally via npm
34
58
  * @returns true if installation succeeded
@@ -46,6 +70,13 @@ export function installProvider(name) {
46
70
  return false;
47
71
  }
48
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
+ }
49
80
  /**
50
81
  * Ensure a provider CLI is installed, installing it if necessary
51
82
  * @param name - Provider name
@@ -54,6 +85,10 @@ export function installProvider(name) {
54
85
  * @throws Error if CLI is not installed and autoInstall is false
55
86
  */
56
87
  export function ensureCliInstalled(name, autoInstall = false) {
88
+ // Built-in providers don't need installation
89
+ if (isBuiltInProvider(name)) {
90
+ return true;
91
+ }
57
92
  if (isCliInstalled(name)) {
58
93
  return true;
59
94
  }
@@ -76,10 +111,11 @@ export function ensureCliInstalled(name, autoInstall = false) {
76
111
  * Check installation status of all providers
77
112
  */
78
113
  export function getInstallationStatus() {
79
- const providers = ["claude", "codex", "opencode", "gemini"];
114
+ const providers = ["claude", "codex", "eliza", "goose", "opencode", "gemini", "pi"];
80
115
  const status = {};
81
116
  for (const provider of providers) {
82
- status[provider] = isCliInstalled(provider);
117
+ // Built-in providers are always "installed"
118
+ status[provider] = isBuiltInProvider(provider) || isCliInstalled(provider);
83
119
  }
84
120
  return status;
85
121
  }
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/utils/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAGxD;;GAEG;AACH,MAAM,iBAAiB,GAAiC;IACtD,MAAM,EAAE,2BAA2B;IACnC,KAAK,EAAE,eAAe;IACtB,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,oBAAoB;CAC7B,CAAA;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,IAAkB;IAC/C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE;YACxC,QAAQ,EAAE,MAAM;YAChB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;SAChC,CAAC,CAAA;QACF,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,CAAA;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,IAAkB;IAC/C,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAA;AAChC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,IAAkB;IAChD,MAAM,WAAW,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAA;IAE3C,IAAI,CAAC;QACH,QAAQ,CAAC,kBAAkB,WAAW,EAAE,EAAE;YACxC,KAAK,EAAE,SAAS;YAChB,QAAQ,EAAE,MAAM;SACjB,CAAC,CAAA;QACF,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAChC,IAAkB,EAClB,cAAuB,KAAK;IAE5B,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,WAAW,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAA;QAC3C,MAAM,IAAI,KAAK,CACb,QAAQ,IAAI,sBAAsB;YAChC,mCAAmC,WAAW,EAAE,CACnD,CAAA;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,SAAS,CAAC,CAAA;IACxC,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,CAAA;IAErC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,WAAW,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAA;QAC3C,MAAM,IAAI,KAAK,CACb,sBAAsB,IAAI,SAAS;YACjC,gCAAgC,WAAW,EAAE,CAChD,CAAA;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,0BAA0B,IAAI,MAAM,CAAC,CAAA;IACjD,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB;IACnC,MAAM,SAAS,GAAmB,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAA;IAC3E,MAAM,MAAM,GAA4B,EAAE,CAAA;IAE1C,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,CAAC,QAAQ,CAAC,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAA;IAC7C,CAAC;IAED,OAAO,MAAuC,CAAA;AAChD,CAAC"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/utils/install.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,18 +1,22 @@
1
1
  {
2
2
  "name": "background-agents",
3
- "version": "0.1.1",
4
- "description": "A TypeScript SDK for interacting with various AI coding agents (Claude, Codex, OpenCode, Gemini)",
5
- "main": "dist/index.js",
6
- "types": "dist/index.d.ts",
3
+ "version": "0.1.2",
4
+ "description": "A TypeScript SDK for interacting with various AI coding agents (Claude, Codex, OpenCode, Gemini, Pi)",
5
+ "main": "src/index.ts",
6
+ "types": "src/index.ts",
7
7
  "type": "module",
8
8
  "scripts": {
9
- "build": "tsc",
9
+ "build": "npm run build:eliza && tsc",
10
+ "build:eliza": "npm run build:eliza-bundle && npm run build:eliza-embed",
11
+ "build:eliza-bundle": "esbuild src/agents/eliza/cli.ts --bundle --platform=node --format=esm --outfile=dist/agents/eliza/cli.bundle.js",
12
+ "build:eliza-embed": "npx tsx scripts/embed-eliza-bundle.ts",
10
13
  "test": "vitest run",
11
14
  "test:watch": "vitest",
12
15
  "test:coverage": "vitest run --coverage",
13
16
  "lint": "eslint src --ext .ts",
14
17
  "clean": "rm -rf dist",
15
- "prepublishOnly": "npm run build"
18
+ "prepublishOnly": "npm run build",
19
+ "generate:jsonl-refs": "npx tsx scripts/generate-jsonl-references.ts"
16
20
  },
17
21
  "keywords": [
18
22
  "ai",
@@ -21,16 +25,26 @@
21
25
  "codex",
22
26
  "opencode",
23
27
  "gemini",
28
+ "pi",
24
29
  "sdk"
25
30
  ],
26
31
  "author": "",
27
32
  "license": "MIT",
33
+ "repository": {
34
+ "type": "git",
35
+ "url": "git+https://github.com/jamesmurdza/upstream-agents.git",
36
+ "directory": "packages/agents"
37
+ },
38
+ "homepage": "https://github.com/jamesmurdza/upstream-agents/tree/main/packages/agents",
39
+ "bugs": {
40
+ "url": "https://github.com/jamesmurdza/upstream-agents/issues"
41
+ },
28
42
  "publishConfig": {
29
43
  "access": "public"
30
44
  },
31
45
  "devDependencies": {
32
46
  "@types/node": "^20.10.0",
33
- "@types/ssh2": "^1.15.5",
47
+ "esbuild": "^0.20.0",
34
48
  "typescript": "^5.3.0",
35
49
  "vitest": "^1.0.0"
36
50
  },
@@ -43,15 +57,12 @@
43
57
  "next.config.codeagentsdk.cjs"
44
58
  ],
45
59
  "exports": {
46
- ".": {
47
- "import": "./dist/index.js",
48
- "types": "./dist/index.d.ts"
49
- },
60
+ ".": "./src/index.ts",
61
+ "./*": "./src/*",
50
62
  "./next.config": "./next.config.codeagentsdk.cjs"
51
63
  },
52
64
  "dependencies": {
53
65
  "@daytonaio/sdk": "^0.150.0",
54
- "dotenv": "^17.3.1",
55
- "ssh2": "^1.17.0"
66
+ "dotenv": "^17.3.1"
56
67
  }
57
68
  }
package/src/index.ts ADDED
@@ -0,0 +1,156 @@
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"
@@ -1,9 +0,0 @@
1
- import type { Sandbox } from "@daytonaio/sdk";
2
- import type { CodeAgentSandbox, AdaptSandboxOptions } from "../types/index.js";
3
- /**
4
- * Wrap a Daytona Sandbox to use SSH for executeCommand and executeBackground.
5
- * Long-running commands (e.g. starting CLI agents) return immediately via executeBackground.
6
- * Requires sandbox.createSshAccess() (Daytona SDK support for SSH).
7
- */
8
- export declare function adaptDaytonaSandboxWithSsh(sandbox: Sandbox, options?: AdaptSandboxOptions): CodeAgentSandbox;
9
- //# sourceMappingURL=daytona-ssh.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"daytona-ssh.d.ts","sourceRoot":"","sources":["../../src/sandbox/daytona-ssh.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,KAAK,EAAE,gBAAgB,EAAE,mBAAmB,EAA4B,MAAM,mBAAmB,CAAA;AA2CxG;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE,mBAAwB,GAChC,gBAAgB,CAuElB"}