@ai-hero/sandcastle 0.5.1 → 0.5.5
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.
- package/README.md +93 -62
- package/dist/AgentProvider.d.ts +17 -1
- package/dist/AgentProvider.d.ts.map +1 -1
- package/dist/AgentProvider.js +75 -6
- package/dist/AgentProvider.js.map +1 -1
- package/dist/AgentStreamEmitter.d.ts +36 -0
- package/dist/AgentStreamEmitter.d.ts.map +1 -0
- package/dist/AgentStreamEmitter.js +21 -0
- package/dist/AgentStreamEmitter.js.map +1 -0
- package/dist/Display.js +1 -1
- package/dist/Display.js.map +1 -1
- package/dist/DockerLifecycle.d.ts +0 -10
- package/dist/DockerLifecycle.d.ts.map +1 -1
- package/dist/DockerLifecycle.js +0 -22
- package/dist/DockerLifecycle.js.map +1 -1
- package/dist/InitService.d.ts.map +1 -1
- package/dist/InitService.js +3 -1
- package/dist/InitService.js.map +1 -1
- package/dist/MountConfig.d.ts +1 -2
- package/dist/MountConfig.d.ts.map +1 -1
- package/dist/Orchestrator.d.ts +10 -3
- package/dist/Orchestrator.d.ts.map +1 -1
- package/dist/Orchestrator.js +79 -12
- package/dist/Orchestrator.js.map +1 -1
- package/dist/PodmanLifecycle.d.ts +0 -10
- package/dist/PodmanLifecycle.d.ts.map +1 -1
- package/dist/PodmanLifecycle.js +0 -22
- package/dist/PodmanLifecycle.js.map +1 -1
- package/dist/PromptArgumentSubstitution.d.ts +6 -0
- package/dist/PromptArgumentSubstitution.d.ts.map +1 -1
- package/dist/PromptArgumentSubstitution.js +32 -6
- package/dist/PromptArgumentSubstitution.js.map +1 -1
- package/dist/PromptPreprocessor.d.ts +8 -0
- package/dist/PromptPreprocessor.d.ts.map +1 -1
- package/dist/PromptPreprocessor.js +13 -9
- package/dist/PromptPreprocessor.js.map +1 -1
- package/dist/PromptResolver.d.ts +13 -1
- package/dist/PromptResolver.d.ts.map +1 -1
- package/dist/PromptResolver.js +3 -2
- package/dist/PromptResolver.js.map +1 -1
- package/dist/SandboxFactory.d.ts +5 -5
- package/dist/SandboxFactory.d.ts.map +1 -1
- package/dist/SandboxFactory.js +20 -10
- package/dist/SandboxFactory.js.map +1 -1
- package/dist/SandboxLifecycle.d.ts +4 -1
- package/dist/SandboxLifecycle.d.ts.map +1 -1
- package/dist/SandboxLifecycle.js +40 -12
- package/dist/SandboxLifecycle.js.map +1 -1
- package/dist/SandboxProvider.d.ts +30 -0
- package/dist/SandboxProvider.d.ts.map +1 -1
- package/dist/SandboxProvider.js +1 -0
- package/dist/SandboxProvider.js.map +1 -1
- package/dist/SessionStore.d.ts +1 -1
- package/dist/SessionStore.d.ts.map +1 -1
- package/dist/SessionStore.js +3 -0
- package/dist/SessionStore.js.map +1 -1
- package/dist/WorktreeManager.d.ts +6 -3
- package/dist/WorktreeManager.d.ts.map +1 -1
- package/dist/WorktreeManager.js +52 -7
- package/dist/WorktreeManager.js.map +1 -1
- package/dist/createSandbox.d.ts +23 -2
- package/dist/createSandbox.d.ts.map +1 -1
- package/dist/createSandbox.js +114 -50
- package/dist/createSandbox.js.map +1 -1
- package/dist/createWorktree.d.ts +23 -0
- package/dist/createWorktree.d.ts.map +1 -1
- package/dist/createWorktree.js +83 -24
- package/dist/createWorktree.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/interactive.d.ts +11 -0
- package/dist/interactive.d.ts.map +1 -1
- package/dist/interactive.js +32 -13
- package/dist/interactive.js.map +1 -1
- package/dist/mountUtils.d.ts +104 -0
- package/dist/mountUtils.d.ts.map +1 -0
- package/dist/mountUtils.js +245 -0
- package/dist/mountUtils.js.map +1 -0
- package/dist/raceAbortSignal.d.ts +18 -0
- package/dist/raceAbortSignal.d.ts.map +1 -0
- package/dist/raceAbortSignal.js +32 -0
- package/dist/raceAbortSignal.js.map +1 -0
- package/dist/run.d.ts +34 -4
- package/dist/run.d.ts.map +1 -1
- package/dist/run.js +63 -18
- package/dist/run.js.map +1 -1
- package/dist/sandboxes/docker.d.ts +2 -6
- package/dist/sandboxes/docker.d.ts.map +1 -1
- package/dist/sandboxes/docker.js +44 -78
- package/dist/sandboxes/docker.js.map +1 -1
- package/dist/sandboxes/no-sandbox.d.ts.map +1 -1
- package/dist/sandboxes/no-sandbox.js +9 -1
- package/dist/sandboxes/no-sandbox.js.map +1 -1
- package/dist/sandboxes/podman.d.ts +19 -8
- package/dist/sandboxes/podman.d.ts.map +1 -1
- package/dist/sandboxes/podman.js +49 -87
- package/dist/sandboxes/podman.js.map +1 -1
- package/dist/startSandbox.d.ts.map +1 -1
- package/dist/startSandbox.js +8 -3
- package/dist/startSandbox.js.map +1 -1
- package/dist/templates/parallel-planner/implement-prompt.md +1 -1
- package/dist/templates/parallel-planner-with-review/implement-prompt.md +1 -1
- package/dist/templates/parallel-planner-with-review/main.mts +8 -1
- package/dist/templates/parallel-planner-with-review/review-prompt.md +2 -2
- package/dist/templates/sequential-reviewer/review-prompt.md +2 -2
- package/dist/testSandbox.d.ts.map +1 -1
- package/dist/testSandbox.js +38 -48
- package/dist/testSandbox.js.map +1 -1
- package/dist/testSetup.d.ts +2 -0
- package/dist/testSetup.d.ts.map +1 -0
- package/dist/testSetup.js +29 -0
- package/dist/testSetup.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -189,7 +189,17 @@ const result = await run({
|
|
|
189
189
|
copyToWorktree: [".env"],
|
|
190
190
|
|
|
191
191
|
// How to record progress. Default: write to a file under .sandcastle/logs/
|
|
192
|
-
logging: {
|
|
192
|
+
logging: {
|
|
193
|
+
type: "file",
|
|
194
|
+
path: ".sandcastle/logs/my-run.log",
|
|
195
|
+
// Optional: forward the agent's output stream to your own observability system.
|
|
196
|
+
// Fires for each text chunk and tool call the agent produces. Errors thrown
|
|
197
|
+
// by the callback are swallowed so a broken forwarder cannot kill the run.
|
|
198
|
+
onAgentStreamEvent: (event) => {
|
|
199
|
+
// event is { type: "text" | "toolCall", iteration, timestamp, ... }
|
|
200
|
+
myLogger.info(event);
|
|
201
|
+
},
|
|
202
|
+
},
|
|
193
203
|
// logging: { type: "stdout" }, // OR render an interactive UI in the terminal
|
|
194
204
|
|
|
195
205
|
// String (or array of strings) the agent emits to end the iteration loop early.
|
|
@@ -279,24 +289,24 @@ if (closeResult.preservedWorktreePath) {
|
|
|
279
289
|
|
|
280
290
|
#### `CreateSandboxOptions`
|
|
281
291
|
|
|
282
|
-
| Option
|
|
283
|
-
|
|
|
284
|
-
| `branch`
|
|
285
|
-
| `sandbox`
|
|
286
|
-
| `cwd`
|
|
287
|
-
| `hooks`
|
|
288
|
-
| `copyToWorktree`
|
|
289
|
-
| `throwOnDuplicateWorktree` | boolean | `true` | When `false`, reuse an existing worktree instead of failing on collision |
|
|
292
|
+
| Option | Type | Default | Description |
|
|
293
|
+
| ---------------- | --------------- | --------------- | -------------------------------------------------------------------- |
|
|
294
|
+
| `branch` | string | — | **Required.** Explicit branch for the sandbox |
|
|
295
|
+
| `sandbox` | SandboxProvider | — | **Required.** Sandbox provider (e.g. `docker()`, `podman()`) |
|
|
296
|
+
| `cwd` | string | `process.cwd()` | Host repo directory — relative paths resolve against `process.cwd()` |
|
|
297
|
+
| `hooks` | SandboxHooks | — | Lifecycle hooks (`host.*`, `sandbox.*`) — run once at creation time |
|
|
298
|
+
| `copyToWorktree` | string[] | — | Host-relative file paths to copy into the sandbox at creation time |
|
|
290
299
|
|
|
291
300
|
#### `Sandbox`
|
|
292
301
|
|
|
293
|
-
| Property / Method | Type
|
|
294
|
-
| ----------------------- |
|
|
295
|
-
| `branch` | string
|
|
296
|
-
| `worktreePath` | string
|
|
297
|
-
| `run(options)` | `(SandboxRunOptions) => Promise<SandboxRunResult>`
|
|
298
|
-
| `
|
|
299
|
-
| `
|
|
302
|
+
| Property / Method | Type | Description |
|
|
303
|
+
| ----------------------- | ------------------------------------------------------------------ | -------------------------------------------- |
|
|
304
|
+
| `branch` | string | The branch the sandbox is on |
|
|
305
|
+
| `worktreePath` | string | Host path to the worktree |
|
|
306
|
+
| `run(options)` | `(SandboxRunOptions) => Promise<SandboxRunResult>` | Invoke an agent inside the existing sandbox |
|
|
307
|
+
| `interactive(options)` | `(SandboxInteractiveOptions) => Promise<SandboxInteractiveResult>` | Launch an interactive session in the sandbox |
|
|
308
|
+
| `close()` | `() => Promise<CloseResult>` | Tear down the container and sandbox |
|
|
309
|
+
| `[Symbol.asyncDispose]` | `() => Promise<void>` | Auto teardown via `await using` |
|
|
300
310
|
|
|
301
311
|
#### `SandboxRunOptions`
|
|
302
312
|
|
|
@@ -311,6 +321,7 @@ if (closeResult.preservedWorktreePath) {
|
|
|
311
321
|
| `idleTimeoutSeconds` | number | `600` | Idle timeout in seconds — resets on each agent output event |
|
|
312
322
|
| `name` | string | — | Display name for the run |
|
|
313
323
|
| `logging` | object | file (auto-generated) | `{ type: 'file', path }` or `{ type: 'stdout' }` |
|
|
324
|
+
| `signal` | AbortSignal | — | Cancels the run when aborted; handle stays usable afterward |
|
|
314
325
|
|
|
315
326
|
#### `SandboxRunResult`
|
|
316
327
|
|
|
@@ -402,33 +413,36 @@ await sandbox.close();
|
|
|
402
413
|
|
|
403
414
|
#### `WorktreeInteractiveOptions`
|
|
404
415
|
|
|
405
|
-
| Option | Type | Default | Description
|
|
406
|
-
| ------------ | ---------------------- | ------------- |
|
|
407
|
-
| `agent` | AgentProvider | — | **Required.** Agent provider
|
|
408
|
-
| `sandbox` | AnySandboxProvider | `noSandbox()` | Sandbox provider (defaults to no sandbox)
|
|
409
|
-
| `prompt` | string | — | Inline prompt (mutually exclusive with `promptFile`)
|
|
410
|
-
| `promptFile` | string | — | Path to prompt file
|
|
411
|
-
| `name` | string | — | Optional session name
|
|
412
|
-
| `hooks` | SandboxHooks | — | Lifecycle hooks (`host.*`, `sandbox.*`)
|
|
413
|
-
| `promptArgs` | PromptArgs | — | Key-value map for `{{KEY}}` placeholder substitution
|
|
414
|
-
| `env` | Record<string, string> | — | Environment variables to inject into the sandbox
|
|
416
|
+
| Option | Type | Default | Description |
|
|
417
|
+
| ------------ | ---------------------- | ------------- | ------------------------------------------------------------------------------------------------- |
|
|
418
|
+
| `agent` | AgentProvider | — | **Required.** Agent provider |
|
|
419
|
+
| `sandbox` | AnySandboxProvider | `noSandbox()` | Sandbox provider (defaults to no sandbox) |
|
|
420
|
+
| `prompt` | string | — | Inline prompt (mutually exclusive with `promptFile`) |
|
|
421
|
+
| `promptFile` | string | — | Path to prompt file |
|
|
422
|
+
| `name` | string | — | Optional session name |
|
|
423
|
+
| `hooks` | SandboxHooks | — | Lifecycle hooks (`host.*`, `sandbox.*`) |
|
|
424
|
+
| `promptArgs` | PromptArgs | — | Key-value map for `{{KEY}}` placeholder substitution |
|
|
425
|
+
| `env` | Record<string, string> | — | Environment variables to inject into the sandbox |
|
|
426
|
+
| `signal` | AbortSignal | — | Cancel the session when aborted. The worktree is preserved on disk. Rejects with `signal.reason`. |
|
|
415
427
|
|
|
416
428
|
#### `WorktreeRunOptions`
|
|
417
429
|
|
|
418
|
-
| Option | Type | Default | Description
|
|
419
|
-
| -------------------- | ---------------------- | ------- |
|
|
420
|
-
| `agent` | AgentProvider | — | **Required.** Agent provider
|
|
421
|
-
| `sandbox` | SandboxProvider | — | **Required.** Sandbox provider (AFK agents must be sandboxed)
|
|
422
|
-
| `prompt` | string | — | Inline prompt (mutually exclusive with `promptFile`)
|
|
423
|
-
| `promptFile` | string | — | Path to prompt file
|
|
424
|
-
| `maxIterations` | number | 1 | Maximum iterations to run
|
|
425
|
-
| `completionSignal` | string \| string[] | — | Substring(s) to stop the iteration loop early
|
|
426
|
-
| `idleTimeoutSeconds` | number | 600 | Idle timeout in seconds
|
|
427
|
-
| `name` | string | — | Optional run name
|
|
428
|
-
| `logging` | LoggingOption | file | Logging mode
|
|
429
|
-
| `hooks` | SandboxHooks | — | Lifecycle hooks (`host.*`, `sandbox.*`)
|
|
430
|
-
| `promptArgs` | PromptArgs | — | Key-value map for `{{KEY}}` placeholder substitution
|
|
431
|
-
| `env` | Record<string, string> | — | Environment variables to inject into the sandbox
|
|
430
|
+
| Option | Type | Default | Description |
|
|
431
|
+
| -------------------- | ---------------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------- |
|
|
432
|
+
| `agent` | AgentProvider | — | **Required.** Agent provider |
|
|
433
|
+
| `sandbox` | SandboxProvider | — | **Required.** Sandbox provider (AFK agents must be sandboxed) |
|
|
434
|
+
| `prompt` | string | — | Inline prompt (mutually exclusive with `promptFile`) |
|
|
435
|
+
| `promptFile` | string | — | Path to prompt file |
|
|
436
|
+
| `maxIterations` | number | 1 | Maximum iterations to run |
|
|
437
|
+
| `completionSignal` | string \| string[] | — | Substring(s) to stop the iteration loop early |
|
|
438
|
+
| `idleTimeoutSeconds` | number | 600 | Idle timeout in seconds |
|
|
439
|
+
| `name` | string | — | Optional run name |
|
|
440
|
+
| `logging` | LoggingOption | file | Logging mode |
|
|
441
|
+
| `hooks` | SandboxHooks | — | Lifecycle hooks (`host.*`, `sandbox.*`) |
|
|
442
|
+
| `promptArgs` | PromptArgs | — | Key-value map for `{{KEY}}` placeholder substitution |
|
|
443
|
+
| `env` | Record<string, string> | — | Environment variables to inject into the sandbox |
|
|
444
|
+
| `resumeSession` | string | — | Resume a prior Claude Code session by ID. Incompatible with `maxIterations > 1`. Session file must exist on host. |
|
|
445
|
+
| `signal` | AbortSignal | — | Cancel the run when aborted. Kills the in-flight agent subprocess; the worktree is preserved on disk. Rejects with `signal.reason`. |
|
|
432
446
|
|
|
433
447
|
#### `WorktreeRunResult`
|
|
434
448
|
|
|
@@ -474,6 +488,10 @@ You must provide exactly one of:
|
|
|
474
488
|
|
|
475
489
|
`prompt` and `promptFile` are mutually exclusive — providing both is an error. If neither is provided, `run()` throws an error asking you to supply one.
|
|
476
490
|
|
|
491
|
+
**Inline prompts (`prompt: "..."`) are passed to the agent literally.** No `{{KEY}}` substitution, no `` !`command` `` expansion, no built-in `{{SOURCE_BRANCH}}` / `{{TARGET_BRANCH}}` injection. If you need values interpolated into an inline prompt, build the string in JavaScript (`` `Work on ${branch}…` ``). Passing `promptArgs` alongside an inline prompt is an error — switch to `promptFile` to use substitution.
|
|
492
|
+
|
|
493
|
+
The substitution and expansion features below apply **only** to prompts sourced from `promptFile`.
|
|
494
|
+
|
|
477
495
|
> **Convention**: `sandcastle init` scaffolds `.sandcastle/prompt.md` and all templates explicitly reference it via `promptFile: ".sandcastle/prompt.md"`. This is a convention, not an automatic fallback — Sandcastle does not read `.sandcastle/prompt.md` unless you pass it as `promptFile`.
|
|
478
496
|
|
|
479
497
|
### Dynamic context with `` !`command` ``
|
|
@@ -521,6 +539,8 @@ Prompt argument substitution runs on the host before shell expression expansion,
|
|
|
521
539
|
|
|
522
540
|
A `{{KEY}}` placeholder with no matching prompt argument is an error. Unused prompt arguments produce a warning.
|
|
523
541
|
|
|
542
|
+
`` !`command` `` expansion only runs on shell blocks written in the prompt file itself. Any `` !`…` `` pattern that appears inside an argument value is treated as inert text — it won't be executed against the host shell. This makes it safe to pass user-authored content (issue titles, PR descriptions, docs excerpts) through `promptArgs`.
|
|
543
|
+
|
|
524
544
|
### Built-in prompt arguments
|
|
525
545
|
|
|
526
546
|
Sandcastle automatically injects two built-in prompt arguments into every prompt:
|
|
@@ -636,24 +656,24 @@ Removes the Podman image.
|
|
|
636
656
|
|
|
637
657
|
### `RunOptions`
|
|
638
658
|
|
|
639
|
-
| Option
|
|
640
|
-
|
|
|
641
|
-
| `agent`
|
|
642
|
-
| `sandbox`
|
|
643
|
-
| `cwd`
|
|
644
|
-
| `prompt`
|
|
645
|
-
| `promptFile`
|
|
646
|
-
| `maxIterations`
|
|
647
|
-
| `hooks`
|
|
648
|
-
| `name`
|
|
649
|
-
| `promptArgs`
|
|
650
|
-
| `branchStrategy`
|
|
651
|
-
| `copyToWorktree`
|
|
652
|
-
| `logging`
|
|
653
|
-
| `completionSignal`
|
|
654
|
-
| `idleTimeoutSeconds`
|
|
655
|
-
| `
|
|
656
|
-
| `
|
|
659
|
+
| Option | Type | Default | Description |
|
|
660
|
+
| -------------------- | ------------------ | ----------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
661
|
+
| `agent` | AgentProvider | — | **Required.** Agent provider (e.g. `claudeCode("claude-opus-4-6")`, `pi("claude-sonnet-4-6")`, `codex("gpt-5.4-mini")`, `opencode("opencode/big-pickle")`) |
|
|
662
|
+
| `sandbox` | SandboxProvider | — | **Required.** Sandbox provider (e.g. `docker()`, `podman()`, `docker({ imageName: "sandcastle:local" })`) |
|
|
663
|
+
| `cwd` | string | `process.cwd()` | Host repo directory — anchor for `.sandcastle/` artifacts and git operations. Relative paths resolve against `process.cwd()`. |
|
|
664
|
+
| `prompt` | string | — | Inline prompt (mutually exclusive with `promptFile`) |
|
|
665
|
+
| `promptFile` | string | — | Path to prompt file (mutually exclusive with `prompt`). Resolves against `process.cwd()`, **not** `cwd`. |
|
|
666
|
+
| `maxIterations` | number | `1` | Maximum iterations to run |
|
|
667
|
+
| `hooks` | SandboxHooks | — | Lifecycle hooks (`host.*`, `sandbox.*`) |
|
|
668
|
+
| `name` | string | — | Display name for the run, shown as a prefix in log output |
|
|
669
|
+
| `promptArgs` | PromptArgs | — | Key-value map for `{{KEY}}` placeholder substitution |
|
|
670
|
+
| `branchStrategy` | BranchStrategy | per-provider default | Branch strategy: `{ type: 'head' }`, `{ type: 'merge-to-head' }`, or `{ type: 'branch', branch: '…' }` |
|
|
671
|
+
| `copyToWorktree` | string[] | — | Host-relative file paths to copy into the sandbox before start (not supported with `branchStrategy: { type: 'head' }`) |
|
|
672
|
+
| `logging` | object | file (auto-generated) | `{ type: 'file', path }` or `{ type: 'stdout' }` |
|
|
673
|
+
| `completionSignal` | string \| string[] | `<promise>COMPLETE</promise>` | String or array of strings the agent emits to stop the iteration loop early |
|
|
674
|
+
| `idleTimeoutSeconds` | number | `600` | Idle timeout in seconds — resets on each agent output event |
|
|
675
|
+
| `resumeSession` | string | — | Resume a prior Claude Code session by ID. Incompatible with `maxIterations > 1`. Session file must exist on host. |
|
|
676
|
+
| `signal` | AbortSignal | — | Cancel the run when aborted. Kills the in-flight agent subprocess and cancels lifecycle hooks; the worktree is preserved on disk. Rejects with `signal.reason`. |
|
|
657
677
|
|
|
658
678
|
### `RunResult`
|
|
659
679
|
|
|
@@ -668,10 +688,20 @@ Removes the Podman image.
|
|
|
668
688
|
|
|
669
689
|
### `IterationResult`
|
|
670
690
|
|
|
671
|
-
| Field | Type
|
|
672
|
-
| ----------------- |
|
|
673
|
-
| `sessionId` | string?
|
|
674
|
-
| `sessionFilePath` | string?
|
|
691
|
+
| Field | Type | Description |
|
|
692
|
+
| ----------------- | ----------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
|
|
693
|
+
| `sessionId` | string? | Claude Code session ID from the init line, or `undefined` for non-Claude agents |
|
|
694
|
+
| `sessionFilePath` | string? | Absolute host path to the captured session JSONL, or `undefined` when capture is off |
|
|
695
|
+
| `usage` | `IterationUsage`? | Token usage snapshot from the last assistant message, or `undefined` when capture is off or provider does not support usage parsing |
|
|
696
|
+
|
|
697
|
+
### `IterationUsage`
|
|
698
|
+
|
|
699
|
+
| Field | Type | Description |
|
|
700
|
+
| -------------------------- | ------ | ------------------------------------------ |
|
|
701
|
+
| `inputTokens` | number | Input tokens consumed |
|
|
702
|
+
| `cacheCreationInputTokens` | number | Tokens used to create prompt cache entries |
|
|
703
|
+
| `cacheReadInputTokens` | number | Tokens read from prompt cache |
|
|
704
|
+
| `outputTokens` | number | Output tokens generated |
|
|
675
705
|
|
|
676
706
|
### Session capture
|
|
677
707
|
|
|
@@ -1113,6 +1143,7 @@ hooks: {
|
|
|
1113
1143
|
- **Sandbox hooks** accept `{ command: string; sudo?: boolean }` — set `sudo: true` for elevated privileges.
|
|
1114
1144
|
- Within each hook point, sandbox hooks run in parallel; host hooks within `onSandboxReady` also run in parallel with sandbox hooks. `host.onWorktreeReady` hooks run sequentially in declared order.
|
|
1115
1145
|
- If any hook exits non-zero, setup fails fast.
|
|
1146
|
+
- When a `signal` is passed to `run()`, it is threaded to all hooks — aborting the signal cancels any in-flight hook commands.
|
|
1116
1147
|
|
|
1117
1148
|
## Development
|
|
1118
1149
|
|
package/dist/AgentProvider.d.ts
CHANGED
|
@@ -19,15 +19,31 @@ export interface AgentCommandOptions {
|
|
|
19
19
|
/** When set, the agent should resume the given session ID instead of starting fresh. */
|
|
20
20
|
readonly resumeSession?: string;
|
|
21
21
|
}
|
|
22
|
+
/** Return type of buildPrintCommand — command string plus optional stdin content.
|
|
23
|
+
* When `stdin` is set, the sandbox pipes it to the child process's stdin
|
|
24
|
+
* instead of inlining the prompt in argv, avoiding the Linux 128 KB per-arg limit. */
|
|
25
|
+
export interface PrintCommand {
|
|
26
|
+
readonly command: string;
|
|
27
|
+
readonly stdin?: string;
|
|
28
|
+
}
|
|
29
|
+
/** Per-iteration token usage snapshot extracted from the agent session. */
|
|
30
|
+
export interface IterationUsage {
|
|
31
|
+
readonly inputTokens: number;
|
|
32
|
+
readonly cacheCreationInputTokens: number;
|
|
33
|
+
readonly cacheReadInputTokens: number;
|
|
34
|
+
readonly outputTokens: number;
|
|
35
|
+
}
|
|
22
36
|
export interface AgentProvider {
|
|
23
37
|
readonly name: string;
|
|
24
38
|
/** Environment variables injected by this agent provider. Merged at launch time with env resolver and sandbox provider env. */
|
|
25
39
|
readonly env: Record<string, string>;
|
|
26
40
|
/** When true, session capture is enabled for this provider. Default: true for Claude Code, false for others. */
|
|
27
41
|
readonly captureSessions: boolean;
|
|
28
|
-
buildPrintCommand(options: AgentCommandOptions):
|
|
42
|
+
buildPrintCommand(options: AgentCommandOptions): PrintCommand;
|
|
29
43
|
buildInteractiveArgs?(options: AgentCommandOptions): string[];
|
|
30
44
|
parseStreamLine(line: string): ParsedStreamEvent[];
|
|
45
|
+
/** Parse token usage from the captured session JSONL content. Only implemented by Claude Code. */
|
|
46
|
+
parseSessionUsage?(content: string): IterationUsage | undefined;
|
|
31
47
|
}
|
|
32
48
|
export declare const DEFAULT_MODEL = "claude-opus-4-6";
|
|
33
49
|
/** Options for the pi agent provider. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentProvider.d.ts","sourceRoot":"","sources":["../src/AgentProvider.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GACzB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACjD;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"AgentProvider.d.ts","sourceRoot":"","sources":["../src/AgentProvider.ts"],"names":[],"mappings":"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"}
|
package/dist/AgentProvider.js
CHANGED
|
@@ -6,6 +6,21 @@ const TOOL_ARG_FIELDS = {
|
|
|
6
6
|
WebFetch: "url",
|
|
7
7
|
Agent: "description",
|
|
8
8
|
};
|
|
9
|
+
/**
|
|
10
|
+
* Extract an error message from a parsed JSON error event.
|
|
11
|
+
* Handles { error: "string" }, { error: { message: "string" } }, and { message: "string" }.
|
|
12
|
+
*/
|
|
13
|
+
const extractErrorMessage = (obj) => {
|
|
14
|
+
const err = obj.error;
|
|
15
|
+
if (typeof err === "string")
|
|
16
|
+
return err;
|
|
17
|
+
if (typeof err === "object" && err !== null && typeof err.message === "string") {
|
|
18
|
+
return err.message;
|
|
19
|
+
}
|
|
20
|
+
if (typeof obj.message === "string")
|
|
21
|
+
return obj.message;
|
|
22
|
+
return undefined;
|
|
23
|
+
};
|
|
9
24
|
const parseStreamJsonLine = (line) => {
|
|
10
25
|
if (!line.startsWith("{"))
|
|
11
26
|
return [];
|
|
@@ -88,6 +103,13 @@ const parsePiStreamLine = (line) => {
|
|
|
88
103
|
return [];
|
|
89
104
|
return [{ type: "tool_call", name: toolName, args: argValue }];
|
|
90
105
|
}
|
|
106
|
+
// Pi emits agent_error / error events on stdout (not stderr) for auth
|
|
107
|
+
// failures, rate limits, and API errors. Capture them as result events so
|
|
108
|
+
// the Orchestrator's stderr-empty fallback can surface them to the user.
|
|
109
|
+
if (obj.type === "agent_error" || obj.type === "error") {
|
|
110
|
+
const msg = extractErrorMessage(obj);
|
|
111
|
+
return msg ? [{ type: "result", result: msg }] : [];
|
|
112
|
+
}
|
|
91
113
|
if (obj.type === "agent_end" && Array.isArray(obj.messages)) {
|
|
92
114
|
const messages = obj.messages;
|
|
93
115
|
for (let i = messages.length - 1; i >= 0; i--) {
|
|
@@ -118,7 +140,10 @@ export const pi = (model, options) => ({
|
|
|
118
140
|
env: options?.env ?? {},
|
|
119
141
|
captureSessions: false,
|
|
120
142
|
buildPrintCommand({ prompt }) {
|
|
121
|
-
return
|
|
143
|
+
return {
|
|
144
|
+
command: `pi -p --mode json --no-session --model ${shellEscape(model)}`,
|
|
145
|
+
stdin: prompt,
|
|
146
|
+
};
|
|
122
147
|
},
|
|
123
148
|
buildInteractiveArgs({ prompt }) {
|
|
124
149
|
const args = ["pi", "--model", model];
|
|
@@ -141,8 +166,8 @@ const parseCodexStreamLine = (line) => {
|
|
|
141
166
|
// item.completed with agent_message → text + result
|
|
142
167
|
if (obj.type === "item.completed" &&
|
|
143
168
|
obj.item?.type === "agent_message" &&
|
|
144
|
-
typeof obj.item.
|
|
145
|
-
const text = obj.item.
|
|
169
|
+
typeof obj.item.text === "string") {
|
|
170
|
+
const text = obj.item.text;
|
|
146
171
|
return [
|
|
147
172
|
{ type: "text", text },
|
|
148
173
|
{ type: "result", result: text },
|
|
@@ -154,6 +179,13 @@ const parseCodexStreamLine = (line) => {
|
|
|
154
179
|
typeof obj.item.command === "string") {
|
|
155
180
|
return [{ type: "tool_call", name: "Bash", args: obj.item.command }];
|
|
156
181
|
}
|
|
182
|
+
// Codex emits error events on stdout (not stderr) for auth failures,
|
|
183
|
+
// rate limits, and API errors. Capture them as result events so the
|
|
184
|
+
// Orchestrator's stderr-empty fallback can surface them to the user.
|
|
185
|
+
if (obj.type === "error") {
|
|
186
|
+
const msg = extractErrorMessage(obj);
|
|
187
|
+
return msg ? [{ type: "result", result: msg }] : [];
|
|
188
|
+
}
|
|
157
189
|
// turn.completed → skip
|
|
158
190
|
}
|
|
159
191
|
catch {
|
|
@@ -169,7 +201,10 @@ export const codex = (model, options) => ({
|
|
|
169
201
|
const effortFlag = options?.effort
|
|
170
202
|
? ` -c ${shellEscape(`model_reasoning_effort="${options.effort}"`)}`
|
|
171
203
|
: "";
|
|
172
|
-
return
|
|
204
|
+
return {
|
|
205
|
+
command: `codex exec --json --dangerously-bypass-approvals-and-sandbox -m ${shellEscape(model)}${effortFlag}`,
|
|
206
|
+
stdin: prompt,
|
|
207
|
+
};
|
|
173
208
|
},
|
|
174
209
|
buildInteractiveArgs({ prompt }) {
|
|
175
210
|
const args = ["codex", "--model", model];
|
|
@@ -186,7 +221,9 @@ export const opencode = (model, options) => ({
|
|
|
186
221
|
env: options?.env ?? {},
|
|
187
222
|
captureSessions: false,
|
|
188
223
|
buildPrintCommand({ prompt }) {
|
|
189
|
-
return
|
|
224
|
+
return {
|
|
225
|
+
command: `opencode run --model ${shellEscape(model)} ${shellEscape(prompt)}`,
|
|
226
|
+
};
|
|
190
227
|
},
|
|
191
228
|
buildInteractiveArgs({ prompt }) {
|
|
192
229
|
const args = ["opencode", "--model", model];
|
|
@@ -210,7 +247,10 @@ export const claudeCode = (model, options) => ({
|
|
|
210
247
|
const resumeFlag = resumeSession
|
|
211
248
|
? ` --resume ${shellEscape(resumeSession)}`
|
|
212
249
|
: "";
|
|
213
|
-
return
|
|
250
|
+
return {
|
|
251
|
+
command: `claude --print --verbose${skipPerms} --output-format stream-json --model ${shellEscape(model)}${effortFlag}${resumeFlag} -p -`,
|
|
252
|
+
stdin: prompt,
|
|
253
|
+
};
|
|
214
254
|
},
|
|
215
255
|
buildInteractiveArgs({ prompt, dangerouslySkipPermissions, }) {
|
|
216
256
|
const args = ["claude"];
|
|
@@ -226,5 +266,34 @@ export const claudeCode = (model, options) => ({
|
|
|
226
266
|
parseStreamLine(line) {
|
|
227
267
|
return parseStreamJsonLine(line);
|
|
228
268
|
},
|
|
269
|
+
parseSessionUsage(content) {
|
|
270
|
+
const lines = content.split("\n");
|
|
271
|
+
for (let i = lines.length - 1; i >= 0; i--) {
|
|
272
|
+
const line = lines[i];
|
|
273
|
+
if (!line.startsWith("{"))
|
|
274
|
+
continue;
|
|
275
|
+
try {
|
|
276
|
+
const obj = JSON.parse(line);
|
|
277
|
+
if (obj.type === "assistant" && obj.message?.usage) {
|
|
278
|
+
const u = obj.message.usage;
|
|
279
|
+
if (typeof u.input_tokens === "number" &&
|
|
280
|
+
typeof u.cache_creation_input_tokens === "number" &&
|
|
281
|
+
typeof u.cache_read_input_tokens === "number" &&
|
|
282
|
+
typeof u.output_tokens === "number") {
|
|
283
|
+
return {
|
|
284
|
+
inputTokens: u.input_tokens,
|
|
285
|
+
cacheCreationInputTokens: u.cache_creation_input_tokens,
|
|
286
|
+
cacheReadInputTokens: u.cache_read_input_tokens,
|
|
287
|
+
outputTokens: u.output_tokens,
|
|
288
|
+
};
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
catch {
|
|
293
|
+
// Not valid JSON — skip
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
return undefined;
|
|
297
|
+
},
|
|
229
298
|
});
|
|
230
299
|
//# sourceMappingURL=AgentProvider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentProvider.js","sourceRoot":"","sources":["../src/AgentProvider.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"AgentProvider.js","sourceRoot":"","sources":["../src/AgentProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Context, Effect, Layer } from "effect";
|
|
2
|
+
/**
|
|
3
|
+
* A single event in the agent's output stream, surfaced to callers of `run()`
|
|
4
|
+
* so they can forward it to their own observability system.
|
|
5
|
+
*
|
|
6
|
+
* Emitted only in log-to-file mode when an `onAgentStreamEvent` callback is
|
|
7
|
+
* provided via `logging`. See `run()`.
|
|
8
|
+
*/
|
|
9
|
+
export type AgentStreamEvent = {
|
|
10
|
+
readonly type: "text";
|
|
11
|
+
readonly message: string;
|
|
12
|
+
readonly iteration: number;
|
|
13
|
+
readonly timestamp: Date;
|
|
14
|
+
} | {
|
|
15
|
+
readonly type: "toolCall";
|
|
16
|
+
readonly name: string;
|
|
17
|
+
readonly formattedArgs: string;
|
|
18
|
+
readonly iteration: number;
|
|
19
|
+
readonly timestamp: Date;
|
|
20
|
+
};
|
|
21
|
+
export interface AgentStreamEmitterService {
|
|
22
|
+
readonly emit: (event: AgentStreamEvent) => Effect.Effect<void>;
|
|
23
|
+
}
|
|
24
|
+
declare const AgentStreamEmitter_base: Context.TagClass<AgentStreamEmitter, "AgentStreamEmitter", AgentStreamEmitterService>;
|
|
25
|
+
export declare class AgentStreamEmitter extends AgentStreamEmitter_base {
|
|
26
|
+
}
|
|
27
|
+
export declare const noopAgentStreamEmitterLayer: Layer.Layer<AgentStreamEmitter>;
|
|
28
|
+
/**
|
|
29
|
+
* Build a layer that forwards each event to the provided callback.
|
|
30
|
+
* The callback is invoked synchronously inside an `Effect.sync`; any error
|
|
31
|
+
* thrown by the callback is caught and discarded so observability failures
|
|
32
|
+
* cannot kill the run.
|
|
33
|
+
*/
|
|
34
|
+
export declare const callbackAgentStreamEmitterLayer: (onEvent: (event: AgentStreamEvent) => void) => Layer.Layer<AgentStreamEmitter, never, never>;
|
|
35
|
+
export {};
|
|
36
|
+
//# sourceMappingURL=AgentStreamEmitter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentStreamEmitter.d.ts","sourceRoot":"","sources":["../src/AgentStreamEmitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAEhD;;;;;;GAMG;AACH,MAAM,MAAM,gBAAgB,GACxB;IACE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;CAC1B,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;CAC1B,CAAC;AAEN,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;CACjE;;AAED,qBAAa,kBAAmB,SAAQ,uBAGrC;CAAG;AAEN,eAAO,MAAM,2BAA2B,EAAE,KAAK,CAAC,KAAK,CAAC,kBAAkB,CACR,CAAC;AAEjE;;;;;GAKG;AACH,eAAO,MAAM,+BAA+B,+FAYxC,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Context, Effect, Layer } from "effect";
|
|
2
|
+
export class AgentStreamEmitter extends Context.Tag("AgentStreamEmitter")() {
|
|
3
|
+
}
|
|
4
|
+
export const noopAgentStreamEmitterLayer = Layer.succeed(AgentStreamEmitter, { emit: () => Effect.void });
|
|
5
|
+
/**
|
|
6
|
+
* Build a layer that forwards each event to the provided callback.
|
|
7
|
+
* The callback is invoked synchronously inside an `Effect.sync`; any error
|
|
8
|
+
* thrown by the callback is caught and discarded so observability failures
|
|
9
|
+
* cannot kill the run.
|
|
10
|
+
*/
|
|
11
|
+
export const callbackAgentStreamEmitterLayer = (onEvent) => Layer.succeed(AgentStreamEmitter, {
|
|
12
|
+
emit: (event) => Effect.sync(() => {
|
|
13
|
+
try {
|
|
14
|
+
onEvent(event);
|
|
15
|
+
}
|
|
16
|
+
catch {
|
|
17
|
+
// Swallow callback errors — a broken forwarder must not kill the run.
|
|
18
|
+
}
|
|
19
|
+
}),
|
|
20
|
+
});
|
|
21
|
+
//# sourceMappingURL=AgentStreamEmitter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentStreamEmitter.js","sourceRoot":"","sources":["../src/AgentStreamEmitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AA4BhD,MAAM,OAAO,kBAAmB,SAAQ,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAGtE;CAAG;AAEN,MAAM,CAAC,MAAM,2BAA2B,GACtC,KAAK,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;AAEjE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAC7C,OAA0C,EACT,EAAE,CACnC,KAAK,CAAC,OAAO,CAAC,kBAAkB,EAAE;IAChC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CACd,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;QACf,IAAI,CAAC;YACH,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC;QAAC,MAAM,CAAC;YACP,sEAAsE;QACxE,CAAC;IACH,CAAC,CAAC;CACL,CAAC,CAAC"}
|
package/dist/Display.js
CHANGED
|
@@ -56,7 +56,7 @@ export const FileDisplay = {
|
|
|
56
56
|
.pipe(Effect.orDie);
|
|
57
57
|
const appendToLog = (line) => fs
|
|
58
58
|
.writeFileString(filePath, line + "\n", { flag: "a" })
|
|
59
|
-
.pipe(Effect.
|
|
59
|
+
.pipe(Effect.ignore);
|
|
60
60
|
return {
|
|
61
61
|
intro: () => Effect.void,
|
|
62
62
|
status: (message, _severity) => appendToLog(message.replace(/^\[[^\]]+\] /, "")),
|
package/dist/Display.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Display.js","sourceRoot":"","sources":["../src/Display.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Display.js","sourceRoot":"","sources":["../src/Display.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAyDtC,MAAM,OAAO,OAAQ,SAAQ,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAGhD;CAAG;AAEN,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,KAAK,EAAE,CAAC,GAAyC,EAAwB,EAAE,CACzE,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE;QACrB,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CACf,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;YAC3B,GAAG,OAAO;YACV,EAAE,IAAI,EAAE,OAAgB,EAAE,KAAK,EAAE;SAClC,CAAC;QAEJ,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,CAC5B,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;YAC3B,GAAG,OAAO;YACV,EAAE,IAAI,EAAE,QAAiB,EAAE,OAAO,EAAE,QAAQ,EAAE;SAC/C,CAAC;QAEJ,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAC3B,MAAM,CAAC,OAAO,CACZ,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;YAC3B,GAAG,OAAO;YACV,EAAE,IAAI,EAAE,SAAkB,EAAE,OAAO,EAAE;SACtC,CAAC,EACF,GAAG,EAAE,CAAC,MAAM,CACb;QAEH,OAAO,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CACvB,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;YAC3B,GAAG,OAAO;YACV,EAAE,IAAI,EAAE,SAAkB,EAAE,KAAK,EAAE,IAAI,EAAE;SAC1C,CAAC;QAEJ,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YACzB,MAAM,QAAQ,GAAa,EAAE,CAAC;YAC9B,OAAO,MAAM,CAAC,OAAO,CACnB,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EACnC,CAAC,MAAM,EAAE,EAAE,CACT,MAAM,CAAC,GAAG,CACR,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC3B,GAAG,OAAO;gBACV;oBACE,IAAI,EAAE,SAAkB;oBACxB,KAAK;oBACL,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC;iBACxB;aACF,CAAC,EACF,GAAG,EAAE,CAAC,MAAM,CACb,CACJ,CAAC;QACJ,CAAC;QAED,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,CAChB,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;YAC3B,GAAG,OAAO;YACV,EAAE,IAAI,EAAE,MAAe,EAAE,OAAO,EAAE;SACnC,CAAC;QAEJ,QAAQ,EAAE,CAAC,IAAI,EAAE,aAAa,EAAE,EAAE,CAChC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;YAC3B,GAAG,OAAO;YACV,EAAE,IAAI,EAAE,UAAmB,EAAE,IAAI,EAAE,aAAa,EAAE;SACnD,CAAC;KACL,CAAC;CACL,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,KAAK,EAAE,CACL,QAAgB,EACoC,EAAE,CACtD,KAAK,CAAC,MAAM,CACV,OAAO,EACP,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC;QACxC,KAAK,CAAC,CAAC,EAAE;aACN,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;aACrD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACtB,MAAM,SAAS,GAAG,sBAAsB,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC;QACzE,KAAK,CAAC,CAAC,EAAE;aACN,eAAe,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;aACnD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAEtB,MAAM,WAAW,GAAG,CAAC,IAAY,EAAuB,EAAE,CACxD,EAAE;aACC,eAAe,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;aACrD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAEzB,OAAO;YACL,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI;YAExB,MAAM,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,CAC7B,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;YAElD,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAC3B,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAClB,KAAK,CAAC,CAAC,WAAW,CAAC,GAAG,OAAO,KAAK,CAAC,CAAC;gBACpC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACzB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC;gBAC7B,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACzD,KAAK,CAAC,CAAC,WAAW,CAAC,GAAG,OAAO,UAAU,OAAO,IAAI,CAAC,CAAC;gBACpD,OAAO,MAAM,CAAC;YAChB,CAAC,CAAC;YAEJ,OAAO,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;gBACvB,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;qBAC/B,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,KAAK,EAAE,CAAC;qBAC3C,IAAI,CAAC,IAAI,CAAC,CAAC;gBACd,OAAO,WAAW,CAAC,GAAG,KAAK,KAAK,KAAK,EAAE,CAAC,CAAC;YAC3C,CAAC;YAED,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CACzB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAClB,KAAK,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACzB,MAAM,QAAQ,GAAa,EAAE,CAAC;gBAC9B,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;oBACnC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACrB,CAAC,CAAC,CAAC;gBACH,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACzD,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;oBAC3B,KAAK,CAAC,CAAC,WAAW,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;gBACjC,CAAC;gBACD,KAAK,CAAC,CAAC,WAAW,CAAC,GAAG,KAAK,UAAU,OAAO,IAAI,CAAC,CAAC;gBAClD,OAAO,MAAM,CAAC;YAChB,CAAC,CAAC;YAEJ,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC;YAEvC,QAAQ,EAAE,CAAC,IAAI,EAAE,aAAa,EAAE,EAAE,CAChC,WAAW,CAAC,GAAG,IAAI,IAAI,aAAa,GAAG,CAAC;SAC3C,CAAC;IACJ,CAAC,CAAC,CACH;CACJ,CAAC;AAEF,MAAM,eAAe,GAAgD;IACnE,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI;IACpB,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO;IAC1B,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO;IACvB,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK;CACvB,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,MAAM,EAAE,CAAC,OAAe,EAAU,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC;IAC/D,YAAY,EAAE,CAAC,KAAa,EAAU,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC;IACjE,UAAU,EAAE,CAAC,GAAW,EAAE,KAAa,EAAU,EAAE,CACjD,GAAG,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;IACzD,QAAQ,EAAE,CAAC,IAAY,EAAU,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC;CAC3D,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE;QAC5B,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CACf,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;QAEpE,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,CAC5B,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CACf,eAAe,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CACzD;QAEH,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAC3B,MAAM,CAAC,iBAAiB,CACtB,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;YACf,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;YAC1B,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACjB,OAAO,CAAC,CAAC;QACX,CAAC,CAAC,EACF,GAAG,EAAE,CAAC,MAAM,EACZ,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CACV,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;YACf,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC5B,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACN,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,WAAW,CAAC,CAAC;YAChC,CAAC;QACH,CAAC,CAAC,CACL;QAEH,OAAO,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CACvB,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;YACf,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;iBAC/B,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;iBAC3D,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;QACvD,CAAC,CAAC;QAEJ,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CACzB,MAAM,CAAC,iBAAiB,CACtB,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EAC3C,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAC1C,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CACZ,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;YACf,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC5B,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YACxC,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YACtC,CAAC;QACH,CAAC,CAAC,CACL;QAEH,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAEhE,QAAQ,EAAE,CAAC,IAAI,EAAE,aAAa,EAAE,EAAE,CAChC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CACf,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,IAAI,IAAI,aAAa,GAAG,CAAC,CAAC,CACpE;KACJ,CAAC;CACH,CAAC"}
|
|
@@ -22,16 +22,6 @@ export interface StartContainerOptions {
|
|
|
22
22
|
* Start a new container with environment variables injected.
|
|
23
23
|
*/
|
|
24
24
|
export declare const startContainer: (containerName: string, imageName: string, env: Record<string, string>, options?: StartContainerOptions | undefined) => Effect.Effect<void, DockerError, never>;
|
|
25
|
-
/**
|
|
26
|
-
* Fix ownership of a directory inside the container.
|
|
27
|
-
* Runs as root so the target owner can write to the path.
|
|
28
|
-
*
|
|
29
|
-
* Non-fatal: if chown fails (e.g. read-only .git/objects on macOS VirtioFS),
|
|
30
|
-
* a warning is logged but the error is not propagated.
|
|
31
|
-
*
|
|
32
|
-
* @param owner - chown-compatible owner spec, e.g. "1000:1000" or "agent"
|
|
33
|
-
*/
|
|
34
|
-
export declare const chownInContainer: (containerName: string, owner: string, path: string) => Effect.Effect<void, never, never>;
|
|
35
25
|
/**
|
|
36
26
|
* Stop and remove a container without removing the image.
|
|
37
27
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DockerLifecycle.d.ts","sourceRoot":"","sources":["../src/DockerLifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAwB1C;;;;;;GAMG;AACH,eAAO,MAAM,UAAU;;yDAkBnB,CAAC;AAEL,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,0EAA0E;IAC1E,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,iFAAiF;IACjF,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAC;CAC/C;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,iKAwDvB,CAAC;AAEL
|
|
1
|
+
{"version":3,"file":"DockerLifecycle.d.ts","sourceRoot":"","sources":["../src/DockerLifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAwB1C;;;;;;GAMG;AACH,eAAO,MAAM,UAAU;;yDAkBnB,CAAC;AAEL,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,0EAA0E;IAC1E,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,iFAAiF;IACjF,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAC;CAC/C;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,iKAwDvB,CAAC;AAEL;;GAEG;AACH,eAAO,MAAM,eAAe,oEAQxB,CAAC;AAEL;;GAEG;AACH,eAAO,MAAM,WAAW,gEAKpB,CAAC"}
|