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
package/dist/index.js CHANGED
@@ -10,26 +10,53 @@
10
10
  * import { createSession } from "background-agents"
11
11
  *
12
12
  * const daytona = new Daytona({ apiKey: process.env.DAYTONA_API_KEY })
13
- * const sandbox = await daytona.create({ envVars: { ANTHROPIC_API_KEY: process.env.ANTHROPIC_API_KEY } })
14
- * const session = await createSession("claude", { sandbox })
13
+ * const sandbox = await daytona.create({ envVars: { ANTHROPIC_API_KEY: '...' } })
15
14
  *
16
- * for await (const event of session.run("Hello")) {
17
- * if (event.type === "token") process.stdout.write(event.text)
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))
18
31
  * }
19
32
  *
20
33
  * await sandbox.delete()
21
34
  * ```
22
35
  */
23
- // Sandbox adapter (wrap a Daytona sandbox from @daytonaio/sdk; uses SSH for background start when createSshAccess exists)
24
- export { adaptDaytonaSandbox } from "./sandbox/index.js";
25
- // Providers
26
- export { Provider, ClaudeProvider, CodexProvider, OpenCodeProvider, GeminiProvider, } from "./providers/index.js";
27
- // Factory
28
- export { createProvider, getProviderNames, isValidProvider, } from "./factory.js";
29
- // Session (provider with run defaults; recommended entry points)
30
- export { createSession, createBackgroundSession, getBackgroundSession, } from "./session.js";
36
+ // ─────────────────────────────────────────────────────────────────────────────
37
+ // Session API (Main Entry Point)
38
+ // ─────────────────────────────────────────────────────────────────────────────
39
+ export { createSession, getSession, getAgentNames, } from "./session";
40
+ // ─────────────────────────────────────────────────────────────────────────────
41
+ // Agent Registry
42
+ // ─────────────────────────────────────────────────────────────────────────────
43
+ export { registry, getAgent } from "./core/registry";
44
+ // ─────────────────────────────────────────────────────────────────────────────
45
+ // Tool Utilities
46
+ // ─────────────────────────────────────────────────────────────────────────────
47
+ export { normalizeToolName, createToolStartEvent, getToolDisplayName, CANONICAL_DISPLAY_NAMES, } from "./core/tools";
48
+ // ─────────────────────────────────────────────────────────────────────────────
49
+ // Agent Definitions (for direct import)
50
+ // ─────────────────────────────────────────────────────────────────────────────
51
+ export { claudeAgent, codexAgent, geminiAgent, opencodeAgent, } from "./agents/index";
52
+ // ─────────────────────────────────────────────────────────────────────────────
53
+ // Sandbox Adapter
54
+ // ─────────────────────────────────────────────────────────────────────────────
55
+ export { adaptDaytonaSandbox, adaptSandbox } from "./sandbox/index";
56
+ // ─────────────────────────────────────────────────────────────────────────────
31
57
  // Utilities
32
- export { safeJsonParse, loadSession, storeSession, clearSession, getDefaultSessionPath, isCliInstalled, installProvider, ensureCliInstalled, getPackageName, getInstallationStatus, } from "./utils/index.js";
58
+ // ─────────────────────────────────────────────────────────────────────────────
59
+ export { safeJsonParse, isCliInstalled, installProvider, ensureCliInstalled, getPackageName, getInstallationStatus, } from "./utils/index";
33
60
  // Debug (enable with CODING_AGENTS_DEBUG=1)
34
- export { isDebugEnabled, debugLog } from "./debug.js";
61
+ export { isDebugEnabled, debugLog } from "./debug";
35
62
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAgCH,0HAA0H;AAC1H,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAExD,YAAY;AACZ,OAAO,EACL,QAAQ,EACR,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,cAAc,GACf,MAAM,sBAAsB,CAAA;AAE7B,UAAU;AACV,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,eAAe,GAChB,MAAM,cAAc,CAAA;AAErB,iEAAiE;AACjE,OAAO,EACL,aAAa,EAEb,uBAAuB,EACvB,oBAAoB,GAGrB,MAAM,cAAc,CAAA;AAErB,YAAY;AACZ,OAAO,EACL,aAAa,EACb,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,qBAAqB,EACrB,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,qBAAqB,GACtB,MAAM,kBAAkB,CAAA;AAEzB,4CAA4C;AAC5C,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AA6DH,gFAAgF;AAChF,iCAAiC;AACjC,gFAAgF;AAEhF,OAAO,EACL,aAAa,EACb,UAAU,EACV,aAAa,GAGd,MAAM,WAAW,CAAA;AAElB,gFAAgF;AAChF,iBAAiB;AACjB,gFAAgF;AAEhF,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAEpD,gFAAgF;AAChF,iBAAiB;AACjB,gFAAgF;AAEhF,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,cAAc,CAAA;AAErB,gFAAgF;AAChF,wCAAwC;AACxC,gFAAgF;AAEhF,OAAO,EACL,WAAW,EACX,UAAU,EACV,WAAW,EACX,aAAa,GACd,MAAM,gBAAgB,CAAA;AAEvB,gFAAgF;AAChF,kBAAkB;AAClB,gFAAgF;AAEhF,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAEnE,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF,OAAO,EACL,aAAa,EACb,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,qBAAqB,GACtB,MAAM,eAAe,CAAA;AAEtB,4CAA4C;AAC5C,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA"}
@@ -1,4 +1,4 @@
1
- import type { Event, IProvider, ProviderCommand, ProviderName, RunOptions, ProviderOptions } from "../types/index.js";
1
+ import type { Event, IProvider, ProviderCommand, ProviderName, RunOptions, ProviderOptions, BackgroundRunPhase } from "../types/index.js";
2
2
  import type { CodeAgentSandbox } from "../types/index.js";
3
3
  /**
4
4
  * Abstract base class for AI coding agent providers
@@ -8,19 +8,17 @@ export declare abstract class Provider implements IProvider {
8
8
  sessionId: string | null;
9
9
  getSessionId(): string | null;
10
10
  /** Sandbox for secure execution */
11
- protected sandboxManager: CodeAgentSandbox | null;
12
- /** Whether local execution is allowed */
13
- protected allowLocalExecution: boolean;
11
+ protected sandboxManager: CodeAgentSandbox;
14
12
  /** Resolves when initial setup (install + env) has completed. */
15
13
  private _readyPromise;
16
- /** Env passed at creation; used for setup and when run() omits env */
17
- private _creationEnv;
18
14
  /** Defaults merged into every run (model, timeout, sessionId, env). Set by createSession. */
19
15
  private _runDefaults;
16
+ /** Tracks whether session-level env has been applied */
17
+ private _sessionEnvApplied;
20
18
  /** Tracks whether we've already applied a synthetic system prompt for this session. */
21
19
  private _systemPromptApplied;
22
20
  get ready(): Promise<void>;
23
- constructor(options?: ProviderOptions);
21
+ constructor(options: ProviderOptions);
24
22
  /**
25
23
  * Get the command configuration for this provider
26
24
  */
@@ -41,18 +39,14 @@ export declare abstract class Provider implements IProvider {
41
39
  */
42
40
  run(promptOrOptions?: string | RunOptions): AsyncGenerator<Event, void, unknown>;
43
41
  private _codexLoginIfNeeded;
44
- /** One-time setup: install CLI and set env. Run in microtask so subclass name is set. */
42
+ /** One-time setup: install CLI and set session-level env. Run in microtask so subclass name is set. */
45
43
  private _doSetup;
46
- /** Per-run: set env and Codex login. */
44
+ /** Per-run: clear previous run-level env, set new run-level env, and handle Codex login. */
47
45
  private _applyRunEnv;
48
46
  /**
49
47
  * Run in a secure Daytona sandbox
50
48
  */
51
49
  private runSandbox;
52
- /**
53
- * Run directly on local machine (dangerous - use with caution)
54
- */
55
- private runLocal;
56
50
  /** Meta stored in sandbox for background session (one log per turn, cursor in meta). */
57
51
  protected readSandboxMeta(sessionDir: string): Promise<{
58
52
  currentTurn: number;
@@ -80,6 +74,33 @@ export declare abstract class Provider implements IProvider {
80
74
  provider?: import("../types/index.js").ProviderName;
81
75
  sessionId?: string | null;
82
76
  }): Promise<void>;
77
+ /**
78
+ * Best-effort no-op write guard for polling paths. Skips writing meta when no
79
+ * relevant fields changed to reduce sandbox file writes on every poll.
80
+ */
81
+ protected writeSandboxMetaIfChanged(sessionDir: string, next: {
82
+ currentTurn: number;
83
+ cursor: number;
84
+ rawCursor?: number;
85
+ pid?: number;
86
+ runId?: string;
87
+ outputFile?: string;
88
+ sawEnd?: boolean;
89
+ startedAt?: string;
90
+ provider?: import("../types/index.js").ProviderName;
91
+ sessionId?: string | null;
92
+ }, prev?: {
93
+ currentTurn?: number;
94
+ cursor?: number;
95
+ rawCursor?: number;
96
+ pid?: number;
97
+ runId?: string;
98
+ outputFile?: string;
99
+ sawEnd?: boolean;
100
+ startedAt?: string;
101
+ provider?: import("../types/index.js").ProviderName;
102
+ sessionId?: string | null;
103
+ } | null): Promise<void>;
83
104
  /**
84
105
  * Start a new turn in a session directory: one log file per turn, meta in sandbox.
85
106
  * Uses currentTurn for this run; currentTurn is incremented when the turn ends (in getEvents).
@@ -96,8 +117,8 @@ export declare abstract class Provider implements IProvider {
96
117
  getSandboxBackgroundPid(sessionDir: string): Promise<number | null>;
97
118
  /**
98
119
  * Cancel the current turn's process in the sandbox (kill pid from meta).
99
- * Uses killBackgroundProcess when available (same channel as start, e.g. SSH); else executeCommand.
100
- * Writes the done file after kill so isRunning() becomes false (the wrapper never gets to write it).
120
+ * Uses robust multi-step kill: SIGTERM -> SIGKILL -> pkill fallback.
121
+ * Writes the done file after kill so isRunning() becomes false.
101
122
  */
102
123
  cancelSandboxBackground(sessionDir: string): Promise<void>;
103
124
  /**
@@ -108,15 +129,20 @@ export declare abstract class Provider implements IProvider {
108
129
  * runs in a different context and can't see that pid. Kill would only work over the same SSH.
109
130
  */
110
131
  isSandboxBackgroundProcessRunning(sessionDir: string): Promise<boolean>;
132
+ private isSandboxBackgroundOutputRunning;
111
133
  /**
112
134
  * Get new events for the current turn; reads and updates cursor in sandbox meta.
113
- * Use isSandboxBackgroundProcessRunning() to check if the agent is still running.
135
+ * Uses optimized polling when available (2 round trips instead of 4).
114
136
  */
115
137
  getEventsSandboxBackgroundFromMeta(sessionDir: string): Promise<{
116
138
  sessionId: string | null;
117
139
  events: Event[];
118
140
  cursor: string;
141
+ running: boolean;
142
+ runPhase: BackgroundRunPhase;
119
143
  }>;
144
+ /** Process poll result and update meta. Shared by all polling paths. */
145
+ private _handlePollResult;
120
146
  /**
121
147
  * Start a background run inside the sandbox.
122
148
  * The CLI is run with stdout redirected to an append-only JSONL log file.
@@ -135,14 +161,15 @@ export declare abstract class Provider implements IProvider {
135
161
  }>;
136
162
  /**
137
163
  * Poll a background sandbox run by reading the JSONL log file.
138
- * Cursor is an opaque string representing the last processed line index.
164
+ * If prefetchedContent is provided, uses that instead of fetching from sandbox.
139
165
  */
140
- pollSandboxBackground(outputFile: string, cursor?: string | null, rawCursor?: string | null): Promise<{
166
+ pollSandboxBackground(outputFile: string, cursor?: string | null, rawCursor?: string | null, prefetchedContent?: string | null): Promise<{
141
167
  status: "running" | "completed";
142
168
  sessionId: string | null;
143
169
  events: Event[];
144
170
  cursor: string;
145
171
  rawCursor: string;
172
+ rawOutput?: string;
146
173
  }>;
147
174
  /**
148
175
  * Run the provider with a callback for each event
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/providers/base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/providers/base.ts"],"names":[],"mappings":"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"}