zidane 5.10.13 → 5.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +26 -0
- package/dist/{agent-BHkvYIH9.d.ts → agent-B7ilLoh8.d.ts} +63 -4
- package/dist/agent-B7ilLoh8.d.ts.map +1 -0
- package/dist/chat/pure.d.ts +3 -3
- package/dist/chat.d.ts +6 -6
- package/dist/chat.js +2 -2
- package/dist/contexts/docker.d.ts +1 -1
- package/dist/contexts/docker.d.ts.map +1 -1
- package/dist/contexts/docker.js +53 -14
- package/dist/contexts/docker.js.map +1 -1
- package/dist/contexts/e2b.d.ts +168 -0
- package/dist/contexts/e2b.d.ts.map +1 -0
- package/dist/contexts/e2b.js +261 -0
- package/dist/contexts/e2b.js.map +1 -0
- package/dist/{contexts-BJVgG0LY.js → contexts-DglWSzmR.js} +59 -9
- package/dist/contexts-DglWSzmR.js.map +1 -0
- package/dist/contexts.d.ts +3 -3
- package/dist/contexts.js +1 -1
- package/dist/eval.d.ts +1 -1
- package/dist/eval.js +4 -4
- package/dist/{headless-CPaunZsU.js → headless-CYHU4ZB-.js} +6 -6
- package/dist/{headless-CPaunZsU.js.map → headless-CYHU4ZB-.js.map} +1 -1
- package/dist/headless.d.ts +1 -1
- package/dist/headless.js +1 -1
- package/dist/{index-C4aT2kO_.d.ts → index-C-zEbeFI.d.ts} +13 -101
- package/dist/index-C-zEbeFI.d.ts.map +1 -0
- package/dist/{index-C_t8tW_X.d.ts → index-CrMb8jCE.d.ts} +2 -2
- package/dist/{index-C_t8tW_X.d.ts.map → index-CrMb8jCE.d.ts.map} +1 -1
- package/dist/{index-BIo67xLV.d.ts → index-CsRdmSh6.d.ts} +10 -3
- package/dist/index-CsRdmSh6.d.ts.map +1 -0
- package/dist/index.d.ts +7 -6
- package/dist/index.js +11 -10
- package/dist/index.js.map +1 -1
- package/dist/{interpolate-Dy7Lunvg.js → interpolate-CTfr0GdR.js} +19 -1
- package/dist/{interpolate-Dy7Lunvg.js.map → interpolate-CTfr0GdR.js.map} +1 -1
- package/dist/logger-Bd4Wn9Hc.d.ts +102 -0
- package/dist/logger-Bd4Wn9Hc.d.ts.map +1 -0
- package/dist/logger-Ktm-lj1s.js +300 -0
- package/dist/logger-Ktm-lj1s.js.map +1 -0
- package/dist/{login-0jP1pnSJ.js → login-DVLJzf-S.js} +4 -301
- package/dist/login-DVLJzf-S.js.map +1 -0
- package/dist/{mcp-tevNihk_.js → mcp-DPneQbw2.js} +21 -8
- package/dist/mcp-DPneQbw2.js.map +1 -0
- package/dist/mcp.d.ts +1 -1
- package/dist/mcp.js +1 -1
- package/dist/{messages-C_1AmSpk.js → messages-DJ7xdoUg.js} +5 -1
- package/dist/messages-DJ7xdoUg.js.map +1 -0
- package/dist/output/stream-json.d.ts +2 -2
- package/dist/output/stream-json.js +1 -1
- package/dist/output/terminal.d.ts +2 -2
- package/dist/output/terminal.js +1 -0
- package/dist/output/terminal.js.map +1 -1
- package/dist/{presets-Cm2BPJaU.js → presets-Q0yUDRA6.js} +2 -2
- package/dist/{presets-Cm2BPJaU.js.map → presets-Q0yUDRA6.js.map} +1 -1
- package/dist/presets.d.ts +2 -2
- package/dist/presets.js +1 -1
- package/dist/{providers-BGBB18zz.js → providers-BPdi7cUU.js} +73 -11
- package/dist/providers-BPdi7cUU.js.map +1 -0
- package/dist/providers.d.ts +1 -1
- package/dist/providers.js +2 -2
- package/dist/restate.d.ts +2 -2
- package/dist/restate.js +4 -1
- package/dist/restate.js.map +1 -1
- package/dist/session/sqlite.d.ts +1 -1
- package/dist/session/sqlite.d.ts.map +1 -1
- package/dist/session/sqlite.js +36 -4
- package/dist/session/sqlite.js.map +1 -1
- package/dist/{session-CtAWwwkn.js → session-D4GckETs.js} +69 -21
- package/dist/session-D4GckETs.js.map +1 -0
- package/dist/session.d.ts +2 -2
- package/dist/session.js +3 -3
- package/dist/shell-quote-BmnhZmdM.js +33 -0
- package/dist/shell-quote-BmnhZmdM.js.map +1 -0
- package/dist/skills.d.ts +3 -3
- package/dist/skills.js +1 -1
- package/dist/skills.js.map +1 -1
- package/dist/{tool-formatters-D_fX6FGl.d.ts → tool-formatters-DXO8rGut.d.ts} +2 -2
- package/dist/{tool-formatters-D_fX6FGl.d.ts.map → tool-formatters-DXO8rGut.d.ts.map} +1 -1
- package/dist/tools/fetch-url.d.ts +1 -1
- package/dist/tools/web-search.d.ts +1 -1
- package/dist/{tools-NxnEmzYg.js → tools-DqNkGwfd.js} +80 -73
- package/dist/tools-DqNkGwfd.js.map +1 -0
- package/dist/tools.d.ts +2 -2
- package/dist/tools.js +1 -1
- package/dist/{transcript-anchors-B_c7gWot.js → transcript-anchors-C3tVPR5n.js} +8 -8
- package/dist/{transcript-anchors-B_c7gWot.js.map → transcript-anchors-C3tVPR5n.js.map} +1 -1
- package/dist/{transcript-anchors-DA6XawEU.d.ts → transcript-anchors-p-ZsBSEF.d.ts} +10 -4
- package/dist/transcript-anchors-p-ZsBSEF.d.ts.map +1 -0
- package/dist/tui.d.ts +3 -3
- package/dist/tui.js +151 -41
- package/dist/tui.js.map +1 -1
- package/dist/{turn-operations-CCl7rpbT.d.ts → turn-operations-DD1D5VFx.d.ts} +3 -3
- package/dist/{turn-operations-CCl7rpbT.d.ts.map → turn-operations-DD1D5VFx.d.ts.map} +1 -1
- package/dist/{types-BibzMDjX.d.ts → types-B39tBba1.d.ts} +69 -2
- package/dist/types-B39tBba1.d.ts.map +1 -0
- package/dist/types.d.ts +5 -5
- package/docs/EXECUTION_CONTEXT.md +257 -0
- package/docs/RUN_IN_BACKGROUND.md +8 -0
- package/package.json +57 -24
- package/dist/agent-BHkvYIH9.d.ts.map +0 -1
- package/dist/contexts-BJVgG0LY.js.map +0 -1
- package/dist/index-BIo67xLV.d.ts.map +0 -1
- package/dist/index-C4aT2kO_.d.ts.map +0 -1
- package/dist/login-0jP1pnSJ.js.map +0 -1
- package/dist/mcp-tevNihk_.js.map +0 -1
- package/dist/messages-C_1AmSpk.js.map +0 -1
- package/dist/providers-BGBB18zz.js.map +0 -1
- package/dist/session-CtAWwwkn.js.map +0 -1
- package/dist/tools-NxnEmzYg.js.map +0 -1
- package/dist/transcript-anchors-DA6XawEU.d.ts.map +0 -1
- package/dist/types-BibzMDjX.d.ts.map +0 -1
package/README.md
CHANGED
|
@@ -677,6 +677,32 @@ createDockerContext({ image: 'node:22', cwd: '/workspace', limits: { memory: 512
|
|
|
677
677
|
createSandboxContext(myProvider) // implement SandboxProvider
|
|
678
678
|
```
|
|
679
679
|
|
|
680
|
+
### E2B
|
|
681
|
+
|
|
682
|
+
A ready-made `SandboxProvider` backed by [E2B](https://e2b.dev) ships behind its
|
|
683
|
+
own subpath, so the `e2b` SDK only enters your bundle when you opt in
|
|
684
|
+
(`bun add e2b`).
|
|
685
|
+
|
|
686
|
+
```ts
|
|
687
|
+
import { createSandboxContext } from 'zidane'
|
|
688
|
+
import { createE2BProvider } from 'zidane/contexts/e2b'
|
|
689
|
+
|
|
690
|
+
// apiKey/domain fall back to E2B_API_KEY / E2B_DOMAIN env vars.
|
|
691
|
+
// Point `domain` at a self-hosted / on-prem cluster to use your own E2B.
|
|
692
|
+
const execution = createSandboxContext(createE2BProvider({
|
|
693
|
+
apiKey: process.env.E2B_API_KEY,
|
|
694
|
+
domain: 'e2b.my-company.internal', // omit for E2B's hosted API
|
|
695
|
+
template: 'base',
|
|
696
|
+
}))
|
|
697
|
+
```
|
|
698
|
+
|
|
699
|
+
From the CLI, `--context e2b` wires the same provider (reads `E2B_API_KEY` /
|
|
700
|
+
`E2B_DOMAIN` from the environment; `--cwd` sets the sandbox working directory):
|
|
701
|
+
|
|
702
|
+
```bash
|
|
703
|
+
bun start --prompt "..." --context e2b --cwd /home/user/project
|
|
704
|
+
```
|
|
705
|
+
|
|
680
706
|
## State Management
|
|
681
707
|
|
|
682
708
|
```ts
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { c as
|
|
1
|
+
import { c as ExecutionContext, f as TaskExitInfo, l as ExecutionHandle } from "./types-B39tBba1.js";
|
|
2
2
|
import { Hookable } from "hookable";
|
|
3
3
|
import { OAuthCredentials, getOAuthApiKey } from "@earendil-works/pi-ai/oauth";
|
|
4
4
|
import { OAuthClientProvider } from "@modelcontextprotocol/sdk/client/auth.js";
|
|
@@ -3597,6 +3597,8 @@ interface RemoteStoreOptions {
|
|
|
3597
3597
|
url: string;
|
|
3598
3598
|
/** Optional headers (e.g. for authentication) */
|
|
3599
3599
|
headers?: Record<string, string>;
|
|
3600
|
+
/** Per-request timeout in ms. Default 30s — bounds a hung backend. */
|
|
3601
|
+
timeoutMs?: number;
|
|
3600
3602
|
}
|
|
3601
3603
|
declare function createRemoteStore(options: RemoteStoreOptions): SessionStore;
|
|
3602
3604
|
//#endregion
|
|
@@ -3709,6 +3711,12 @@ interface SessionStore {
|
|
|
3709
3711
|
updateRun: (sessionId: string, run: SessionRun) => Promise<void>;
|
|
3710
3712
|
/** Update the top-level status of a session. */
|
|
3711
3713
|
updateStatus: (sessionId: string, status: SessionData['status']) => Promise<void>;
|
|
3714
|
+
/**
|
|
3715
|
+
* Optional: release backend resources (e.g. close the SQLite handle).
|
|
3716
|
+
* Hosts should call this on teardown when present; stores backed by
|
|
3717
|
+
* memory or remote HTTP have nothing to release and may omit it.
|
|
3718
|
+
*/
|
|
3719
|
+
close?: () => void;
|
|
3712
3720
|
}
|
|
3713
3721
|
interface Session {
|
|
3714
3722
|
/** Session ID */
|
|
@@ -3839,6 +3847,11 @@ interface Session {
|
|
|
3839
3847
|
toMessages: (options?: ToWireMessagesOptions) => SessionMessage[];
|
|
3840
3848
|
/** Serialize to SessionData */
|
|
3841
3849
|
toJSON: () => SessionData;
|
|
3850
|
+
/**
|
|
3851
|
+
* The backing store, when one was provided. Exposed so hosts can call
|
|
3852
|
+
* its optional `close()` on teardown (e.g. release the SQLite handle).
|
|
3853
|
+
*/
|
|
3854
|
+
readonly store?: SessionStore;
|
|
3842
3855
|
}
|
|
3843
3856
|
interface CreateSessionOptions {
|
|
3844
3857
|
/** Session ID. If omitted and store provides generateSessionId, that is used. */
|
|
@@ -3864,6 +3877,16 @@ interface CreateSessionOptions {
|
|
|
3864
3877
|
* Async so stores that generate IDs server-side (e.g. Supabase) can be supported.
|
|
3865
3878
|
*/
|
|
3866
3879
|
declare function createSession(options?: CreateSessionOptions): Promise<Session>;
|
|
3880
|
+
/**
|
|
3881
|
+
* Demote a persisted `'running'` status to `'idle'` (in place) and return the
|
|
3882
|
+
* data. A persisted `'running'` is necessarily stale: the run that set it lived
|
|
3883
|
+
* in another process (crash, kill -9, power loss) and cannot still be executing
|
|
3884
|
+
* in a freshly-loaded session. Call this on the result of a raw `store.load()`
|
|
3885
|
+
* so consumers don't render a ghost in-progress state or refuse a new run.
|
|
3886
|
+
* `loadSession` applies it automatically; direct `store.load()` callers (e.g.
|
|
3887
|
+
* the TUI) should run loaded data through this.
|
|
3888
|
+
*/
|
|
3889
|
+
declare function demoteStaleRunningStatus(data: SessionData): SessionData;
|
|
3867
3890
|
/**
|
|
3868
3891
|
* Load an existing session from a store.
|
|
3869
3892
|
*/
|
|
@@ -3888,6 +3911,18 @@ interface SkillResource {
|
|
|
3888
3911
|
* and for host SDKs to gate project-level skills on a trust check.
|
|
3889
3912
|
*/
|
|
3890
3913
|
type SkillSource = 'project' | 'user' | 'inline' | 'builtin';
|
|
3914
|
+
/**
|
|
3915
|
+
* Passed to a shell-interpolation approval gate so hosts can render a
|
|
3916
|
+
* meaningful prompt before a skill's embedded `!`cmd`` command runs.
|
|
3917
|
+
*/
|
|
3918
|
+
interface ShellInterpolationApproval {
|
|
3919
|
+
/** Name of the skill being activated. */
|
|
3920
|
+
skillName: string;
|
|
3921
|
+
/** Where the skill came from (`project` / `user` / `inline` / `builtin`). */
|
|
3922
|
+
source: SkillSource | undefined;
|
|
3923
|
+
/** The exact shell command that would be executed. */
|
|
3924
|
+
command: string;
|
|
3925
|
+
}
|
|
3891
3926
|
/** Severity + code for lenient-load warnings surfaced to host UIs. */
|
|
3892
3927
|
interface SkillDiagnostic {
|
|
3893
3928
|
severity: 'warning' | 'error';
|
|
@@ -3988,9 +4023,19 @@ interface SkillsConfig {
|
|
|
3988
4023
|
* input, and executing its embedded commands at activation time bypasses
|
|
3989
4024
|
* the allowed-tools gate — set `false` for locked-down hosts. When off,
|
|
3990
4025
|
* each `!\`cmd\`` is replaced with a `[shell interpolation disabled]`
|
|
3991
|
-
* placeholder.
|
|
4026
|
+
* placeholder. For interactive approval instead of a hard on/off, wire
|
|
4027
|
+
* `approveShellInterpolation` (see the skills tool options).
|
|
3992
4028
|
*/
|
|
3993
4029
|
allowShellInterpolation?: boolean;
|
|
4030
|
+
/**
|
|
4031
|
+
* Optional approval gate for `!`cmd`` shell interpolation. Invoked once
|
|
4032
|
+
* per (skill, command) before the command runs; return `false` to skip it
|
|
4033
|
+
* (replaced with a `[shell interpolation not approved]` placeholder). When
|
|
4034
|
+
* omitted, interpolation runs without prompting (back-compat). Hosts
|
|
4035
|
+
* (TUI/GUI) can wire this to an interactive confirmation. Only consulted
|
|
4036
|
+
* when `allowShellInterpolation` is not `false`.
|
|
4037
|
+
*/
|
|
4038
|
+
approveShellInterpolation?: (request: ShellInterpolationApproval) => boolean | Promise<boolean>;
|
|
3994
4039
|
/**
|
|
3995
4040
|
* When `false`, skills with `source: 'project'` are skipped during
|
|
3996
4041
|
* resolution with a diagnostic. Default `true` (preserves existing behavior).
|
|
@@ -5786,6 +5831,20 @@ interface Agent {
|
|
|
5786
5831
|
* on the next turn.
|
|
5787
5832
|
*/
|
|
5788
5833
|
killBackgroundTask: (taskId: string) => Promise<boolean>;
|
|
5834
|
+
/**
|
|
5835
|
+
* `true` while at least one background-task exit is queued for delivery
|
|
5836
|
+
* on the next `run()` (the push-fed `background:exit` queue; pending
|
|
5837
|
+
* stall signals don't count). Exits already acknowledged by the model
|
|
5838
|
+
* (`shell_kill`, a successful `wait_task`, reading the output file)
|
|
5839
|
+
* never surface here.
|
|
5840
|
+
*
|
|
5841
|
+
* This is the host-side "auto-wake" signal: when it flips true while
|
|
5842
|
+
* the agent is idle, a drain-only `run({ prompt: '' })` delivers the
|
|
5843
|
+
* `<task-notification>` block without waiting for the user's next
|
|
5844
|
+
* prompt — prompt-less runs are explicitly legal in that state (see
|
|
5845
|
+
* `validateAndPrepareResume`).
|
|
5846
|
+
*/
|
|
5847
|
+
readonly hasPendingTaskNotifications: boolean;
|
|
5789
5848
|
/**
|
|
5790
5849
|
* Queue a mid-run nudge injected as a user turn at the next tool/turn
|
|
5791
5850
|
* boundary. Returns `false` (and queues nothing) when no run is in
|
|
@@ -5909,5 +5968,5 @@ declare function createAgent({
|
|
|
5909
5968
|
clock: agentClock
|
|
5910
5969
|
}: AgentOptions): Agent;
|
|
5911
5970
|
//#endregion
|
|
5912
|
-
export {
|
|
5913
|
-
//# sourceMappingURL=agent-
|
|
5971
|
+
export { SYNTHETIC_TOOL_RESULT_PLACEHOLDER as $, ContextCategory as $n, AgentClock as $t, SkillDiagnostic as A, ToolResultContent as An, OpenAICompatAuthHeader as At, demoteStaleRunningStatus as B, AgentBudgetExceededError as Bn, CursorParams as Bt, ReadStateMap as C, SessionTurn as Cn, SchemaSanitizeOptions as Ct, resolveReadStateMap as D, ToolBatchExecutor as Dn, sanitizeToolSpecs as Dt, readStateKey as E, ThinkingLevel as En, sanitizeToolSchema as Et, Session as F, TurnUsage as Fn, openaiCompat as Ft, FileMapAdapter as G, CONTEXT_EXCEEDED_MESSAGE_PATTERNS as Gn, baseten as Gt, RemoteStoreOptions as H, AgentProviderError as Hn, CerebrasParams as Ht, SessionData as I, toolOutputBudgetByteLength as In, OpenAIParams as It, EnsureToolResultPairingOptions as J, errorMessage as Jn, arcee as Jt, FileMapStoreOptions as K, ClassifiedError as Kn, planBasetenReasoning as Kt, SessionRun as L, toolOutputByteLength as Ln, openai as Lt, SkillSource as M, ToolResultImageContent as Mn, OpenAICompatParams as Mt, SkillsConfig as N, ToolResultTextContent as Nn, classifyOpenAICompatError as Nt, ShellInterpolationApproval as O, ToolHookContext as On, OpenRouterParams as Ot, CreateSessionOptions as P, TurnFinishReason as Pn, mapOAIFinishReason as Pt, RemintResult as Q, ContextBreakdownOptions as Qn, AgentBehavior as Qt, SessionStore as R, toolResultToText as Rn, LocalParams as Rt, ReadStateEntry as S, SessionMessage as Sn, TurnResult as St, hashContent as T, StreamHookContext as Tn, SchemaSanitizeResult as Tt, createRemoteStore as U, AgentToolNotAllowedError as Un, cerebras as Ut, loadSession as V, AgentContextExceededError as Vn, cursor as Vt, createMemoryStore as W, AgentToolPairingError as Wn, BasetenParams as Wt, PairingRepair as X, toTypedError as Xn, anthropic as Xt, ORPHANED_TOOL_RESULT_MARKER as Y, matchesContextExceeded as Yn, AnthropicParams as Yt, PairingRepairMode as Z, ContextBreakdown as Zn, applyAnthropicCacheBreakpoints as Zt, normalizeMcpServers as _, RetryConfig as _n, StreamOptions as _t, createAgent as a, DedupHasher as an, ContextUsageSplit as ar, ensureEndsWithUserMessage as at, ToolDef as b, SessionEndStatus as bn, ToolResult as bt, DeactivationReason as c, McpToolHookContext as cn, fromAnthropic as ct, createSkillActivationState as d, PromptDocumentPart as dn, toAnthropic as dt, AgentRunOptions as en, ContextCategoryId as er, TOOL_USE_INTERRUPTED_MARKER as et, ConnectMcpServersOptions as f, PromptImagePart as fn, toOpenAI as ft, normalizeMcpBlocks as g, RepeatGuardToolMatcher as gn, StreamCallbacks as gt, connectMcpServers as h, RepeatGuardConfig as hn, ProviderCapabilities as ht, AgentOptions as i, DEFAULT_AGENT_CLOCK as in, ContextSnapshot as ir, detectTurnInterruption as it, SkillResource as j, ToolResultDocumentContent as jn, OpenAICompatHttpError as jt, SkillConfig as k, ToolOutcome as kn, openrouter as kt, SkillActivationState as l, McpToolSchema as ln, fromOpenAI as lt, attachStderrWarnPump as m, PromptTextPart as mn, Provider as mt, AgentHookMap as n, ChildRunStats as nn, ContextItem as nr, TurnInterruptionState as nt, ActivationVia as o, DedupToolConfig as on, buildContextBreakdown as or, ensureToolResultPairing as ot, McpConnection as p, PromptPart as pn, toWireMessages as pt, createFileMapStore as q, ClassifiedErrorKind as qn, ArceeParams as qt, AgentHooks as r, CompactFunction as rn, ContextMcpGroup as rr, autoDetectAndConvert as rt, ActiveSkill as s, McpServerConfig as sn, filterUnresolvedToolUses as st, Agent as t, AgentStats as tn, ContextExactCounts as tr, ToWireMessagesOptions as tt, SkillActivationStateOptions as u, OAuthRefreshHookContext as un, remintDuplicateToolCallIds as ut, resultToString as v, RunHookMap as vn, TokenCountPayload as vt, getReadState as w, SpawnHookContext as wn, SchemaSanitizeProfile as wt, ToolMap as x, SessionHookContext as xn, ToolSpec as xt, ToolContext as y, SessionContentBlock as yn, ToolCall as yt, createSession as z, AgentAbortedError as zn, local as zt };
|
|
5972
|
+
//# sourceMappingURL=agent-B7ilLoh8.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-B7ilLoh8.d.ts","names":[],"sources":["../src/chat/context-breakdown.ts","../src/errors.ts","../src/types.ts","../src/providers/oauth.ts","../src/providers/anthropic.ts","../src/providers/arcee.ts","../src/providers/baseten.ts","../src/providers/cerebras.ts","../src/providers/cursor.ts","../src/providers/local.ts","../src/providers/openai.ts","../src/providers/openai-compat.ts","../src/providers/openrouter.ts","../src/providers/schema-sanitize.ts","../src/providers/index.ts","../src/session/messages.ts","../src/session/file-map.ts","../src/session/memory.ts","../src/session/remote.ts","../src/session/index.ts","../src/skills/types.ts","../src/tools/read-state.ts","../src/tools/types.ts","../src/mcp/index.ts","../src/skills/activation.ts","../src/agent.ts"],"mappings":"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"}
|
package/dist/chat/pure.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $n as
|
|
2
|
-
import { B as collectReferences, F as CompletionContext, H as mergeReferences, I as CompletionItem, L as CompletionProvider, P as ActiveTrigger, R as CompletionReference, V as findActiveTrigger, _ as isEditErrorResult, a as formatToolCall, b as selectableTurnIds, c as splitPromptSegments, g as EDIT_TOOL_NAMES, i as displayNameFor, n as ToolDisplayMeta, o as PromptSegment, r as ToolFormatLine, s as PromptSegmentRef, t as TOOL_DISPLAY, v as isTurnHighlighted, x as turnSelectionOwnership, y as isVisible, z as applyInsert } from "../tool-formatters-
|
|
3
|
-
import { $ as uniqueFilesFromReferences, A as buildUnifiedDiff, C as EditSummary, D as PreviewResult, E as InlineSegment, F as previewEditPayload, I as splitLines, J as SKILLS_TRIGGER, L as summarizeEditPayload, M as computeLineDiff, N as extractEditPayload, O as applyEditPayload, P as filetypeFromPath, Q as createFilesCompletionProvider, R as tokenize, S as EditHunkSummary, T as InlineDiff, X as uniqueSkillNamesFromReferences, Y as createSkillsCompletionProvider, Z as FILES_TRIGGER, _ as formatTaskSummary, a as finalizeStreamingMarkdown, b as DiffLine, c as CatalogEntry, d as indexOfEntry, f as ageString, g as formatTaskStatus, h as formatDuration, i as turnAsText, it as buildLinearRamp, j as computeInlineDiff, k as buildContextualDiff, l as buildModelCatalog, m as fmtTokens, n as deleteTurnSafely, o as finalizeStreamingMarkdownForOwner, p as compactPath, q as summarizeOutcomes, r as truncateTurnsAt, rt as blendHsl, s as turnContextSize, t as countNeighbors, u as filterModelCatalog, v as previewLine, w as HunkResolution, x as DiffOp, y as shortId } from "../turn-operations-
|
|
1
|
+
import { $n as ContextCategory, Qn as ContextBreakdownOptions, Zn as ContextBreakdown, ar as ContextUsageSplit, er as ContextCategoryId, ir as ContextSnapshot, nr as ContextItem, or as buildContextBreakdown, rr as ContextMcpGroup, tr as ContextExactCounts } from "../agent-B7ilLoh8.js";
|
|
2
|
+
import { B as collectReferences, F as CompletionContext, H as mergeReferences, I as CompletionItem, L as CompletionProvider, P as ActiveTrigger, R as CompletionReference, V as findActiveTrigger, _ as isEditErrorResult, a as formatToolCall, b as selectableTurnIds, c as splitPromptSegments, g as EDIT_TOOL_NAMES, i as displayNameFor, n as ToolDisplayMeta, o as PromptSegment, r as ToolFormatLine, s as PromptSegmentRef, t as TOOL_DISPLAY, v as isTurnHighlighted, x as turnSelectionOwnership, y as isVisible, z as applyInsert } from "../tool-formatters-DXO8rGut.js";
|
|
3
|
+
import { $ as uniqueFilesFromReferences, A as buildUnifiedDiff, C as EditSummary, D as PreviewResult, E as InlineSegment, F as previewEditPayload, I as splitLines, J as SKILLS_TRIGGER, L as summarizeEditPayload, M as computeLineDiff, N as extractEditPayload, O as applyEditPayload, P as filetypeFromPath, Q as createFilesCompletionProvider, R as tokenize, S as EditHunkSummary, T as InlineDiff, X as uniqueSkillNamesFromReferences, Y as createSkillsCompletionProvider, Z as FILES_TRIGGER, _ as formatTaskSummary, a as finalizeStreamingMarkdown, b as DiffLine, c as CatalogEntry, d as indexOfEntry, f as ageString, g as formatTaskStatus, h as formatDuration, i as turnAsText, it as buildLinearRamp, j as computeInlineDiff, k as buildContextualDiff, l as buildModelCatalog, m as fmtTokens, n as deleteTurnSafely, o as finalizeStreamingMarkdownForOwner, p as compactPath, q as summarizeOutcomes, r as truncateTurnsAt, rt as blendHsl, s as turnContextSize, t as countNeighbors, u as filterModelCatalog, v as previewLine, w as HunkResolution, x as DiffOp, y as shortId } from "../turn-operations-DD1D5VFx.js";
|
|
4
4
|
export { type ActiveTrigger, type CatalogEntry, type CompletionContext, type CompletionItem, type CompletionProvider, type CompletionReference, type ContextBreakdown, type ContextBreakdownOptions, type ContextCategory, type ContextCategoryId, type ContextExactCounts, type ContextItem, type ContextMcpGroup, type ContextSnapshot, type ContextUsageSplit, type DiffLine, type DiffOp, EDIT_TOOL_NAMES, type EditHunkSummary, type EditSummary, FILES_TRIGGER, type HunkResolution, type InlineDiff, type InlineSegment, type PreviewResult, type PromptSegment, type PromptSegmentRef, SKILLS_TRIGGER, TOOL_DISPLAY, type ToolDisplayMeta, type ToolFormatLine, ageString, applyEditPayload, applyInsert, blendHsl, buildContextBreakdown, buildContextualDiff, buildLinearRamp, buildModelCatalog, buildUnifiedDiff, collectReferences, compactPath, computeInlineDiff, computeLineDiff, countNeighbors, createFilesCompletionProvider, createSkillsCompletionProvider, deleteTurnSafely, displayNameFor, extractEditPayload, filetypeFromPath, filterModelCatalog, finalizeStreamingMarkdown, finalizeStreamingMarkdownForOwner, findActiveTrigger, fmtTokens, formatDuration, formatTaskStatus, formatTaskSummary, formatToolCall, indexOfEntry, isEditErrorResult, isTurnHighlighted, isVisible, mergeReferences, previewEditPayload, previewLine, selectableTurnIds, shortId, splitLines, splitPromptSegments, summarizeEditPayload, summarizeOutcomes, tokenize, truncateTurnsAt, turnAsText, turnContextSize, turnSelectionOwnership, uniqueFilesFromReferences, uniqueSkillNamesFromReferences };
|
package/dist/chat.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { $n as
|
|
2
|
-
import { K as McpCredentialEntry, q as McpCredentialStore, t as Preset } from "./index-
|
|
3
|
-
import { _ as SourcedScanPath } from "./index-
|
|
4
|
-
import { $ as useInteractionsQueue, $t as parseBindingSpec, A as InteractionsProvider, At as marginTopFor, B as QuestionPayload, Bt as KEYBINDING_DEF_BY_ACTION, C as ASK_USER_TOOL, Ct as TuiState, D as InteractionRequest, Dt as lastContextSizeFromTurns, E as CreateInteractionToolsOptions, Et as eventsFromTurns, F as PlanRequest, Ft as toolCallPreview, G as TextQuestion, Gt as KeyBindings, H as QuestionResponse, Ht as KeyAction, I as PlanResponse, It as toolResultText, J as isInteractionTool, Jt as formatBindingForDisplay, K as buildResumedToolResultsTurn, Kt as ParsedBinding, L as PlanStep, Lt as updateToolEventOutcomes, M as PendingInteractionEntry, Mt as stripSpawnTokensLine, N as PlanDecision, Nt as sumRunCosts, O as InteractionResponse, Ot as listSessionMeta, P as PlanPayload, Pt as titleFromTurns, Q as useInteractionsActions, Qt as mergeKeybindings, R as Question, Rt as DEFAULT_KEYBINDINGS, S as splitMarkdownCodeBlocks, St as StateStoreApi, T as ConfirmQuestion, Tt as deriveSessionTitle, U as QuestionType, Ut as KeyBindingDef, V as QuestionRequest, Vt as KEYBINDING_KEY_COL_WIDTH, W as SelectQuestion, Wt as KeyBindingSection, X as pendingInteractionsFromTurns, Xt as keybindingsPath, Y as makeRequestInteraction, Yt as groupBindings, Z as serializeInteractionResponse, Zt as matchesBinding, _ as SessionExportTarget, _n as PLAN_AGENT, _t as ResolveStorageDirsOptions, a as ChipColorMap, an as Hint, at as DiscoveryResult, b as writeSessionExport, bn as singleAgentRegistry, bt as StorageSlot, c as SyntaxTokenStyle, cn as truncateTrailing, ct as discoverProjectMcps, d as ThemeSelect, dn as AgentRegistry, dt as ChatOptions, en as readKeybindings, et as EnabledAllowlistKey, f as ThemeSurfaces, fn as BUILD_AGENT, ft as ProviderRegistry, g as SessionExportFormat, gn as DEFAULT_PERSIST_EXCLUDE_TOOLS, gt as resolveStoragePaths, h as SessionExportAnchor, hn as DEFAULT_BUDGET_EXCLUDE_TOOLS, ht as resolveConfig, i as ChipColor, in as EMPTY_HINTS, it as DiscoveryError, j as PRESENT_PLAN_TOOL, jt as saveState, k as InteractionsActions, kt as loadState, l as Theme, ln as AgentAccent, lt as parseMcpsFile, m as resolveTheme, mn as DEFAULT_AGENT_ID, mt as ResolvedPaths, n as computeTurnAnchors, nn as CompletionState, nt as useEnabledToggleSet, o as DEFAULT_THEME, on as clipHintsToWidth, ot as buildMcpServers, p as resolveChipColor, pn as BUILTIN_AGENTS, pt as ResolvedConfig, q as createInteractionTools, qt as ensureKeybindingsFile, r as BUILTIN_THEMES, rn as useCompletion, rt as DiscoveredMcp, s as SyntaxStyles, sn as hintsLength, st as defaultMcpsConfigPaths, t as TranscriptItem, tn as stripJsonComments, tt as EnabledToggleSet, u as ThemeColors, un as AgentProfile, ut as AutoUpdateConfig, v as renderSession, vn as accentColor, vt as StorageDirs, w as AnswerValue, wt as createStateStore, x as MarkdownSegment, xt as resolveStorageDirs, y as resolveSessionExportTarget, yn as resolveAgentId, yt as StorageMode, z as QuestionChoice, zt as KEYBINDING_DEFS } from "./transcript-anchors-
|
|
5
|
-
import { $ as anthropicDescriptor, A as SessionMeta, B as collectReferences, C as EditHunk, D as Owner, E as EditPayload, F as CompletionContext, G as ProviderKey, H as mergeReferences, I as CompletionItem, J as CustomField, K as detectAuth, L as CompletionProvider, M as StreamEvent, N as ToolCallDisplay, O as Picked, P as ActiveTrigger, Q as ProviderDescriptor, R as CompletionReference, S as EditDiffDisplay, T as EditOutcomeKind, U as AuthMethod, V as findActiveTrigger, W as ProviderAuth, X as ModelOption, Y as ModelInfo, Z as OUTPUT_RESERVE_TOKENS, _ as isEditErrorResult, a as formatToolCall, at as getModelInfo, b as selectableTurnIds, c as splitPromptSegments, ct as modelSupportsReasoning, d as RequestApproval, dt as openrouterDescriptor, et as cerebrasDescriptor, f as SafeModeActions, ft as piIdOf, h as useSafeModeQueue, i as displayNameFor, it as getContextWindow, j as Settings, k as Screen, l as ApprovalDecision, lt as modelsForDescriptor, m as useSafeModeActions, n as ToolDisplayMeta, nt as effectiveContextWindow, o as PromptSegment, ot as localDescriptor, p as SafeModeProvider, pt as restoreModelOptions, q as BUILTIN_PROVIDERS, r as ToolFormatLine, rt as enabledModelOptions, s as PromptSegmentRef, st as modelOptionsFor, t as TOOL_DISPLAY, tt as credKeyOf, u as ApprovalRequest, ut as openaiDescriptor, v as isTurnHighlighted, w as EditOutcome, x as turnSelectionOwnership, y as isVisible, z as applyInsert } from "./tool-formatters-
|
|
6
|
-
import { $ as uniqueFilesFromReferences, A as buildUnifiedDiff, B as buildEditOutcomesAnnotation, C as EditSummary, D as PreviewResult, E as InlineSegment, F as previewEditPayload, G as rewriteMultiEditHeader, H as mergeApprovalAndBodyOutcomes, I as splitLines, J as SKILLS_TRIGGER, K as stripEditOutcomesAnnotation, L as summarizeEditPayload, M as computeLineDiff, N as extractEditPayload, O as applyEditPayload, P as filetypeFromPath, Q as createFilesCompletionProvider, R as tokenize, S as EditHunkSummary, T as InlineDiff, U as parseEditOutcomesFromResult, V as maskToOutcomeKinds, W as resolveApprovalForPayload, X as uniqueSkillNamesFromReferences, Y as createSkillsCompletionProvider, Z as FILES_TRIGGER, _ as formatTaskSummary, a as finalizeStreamingMarkdown, b as DiffLine, c as CatalogEntry, d as indexOfEntry, et as FileEntry, f as ageString, g as formatTaskStatus, h as formatDuration, i as turnAsText, it as buildLinearRamp, j as computeInlineDiff, k as buildContextualDiff, l as buildModelCatalog, m as fmtTokens, n as deleteTurnSafely, nt as listProjectFiles, o as finalizeStreamingMarkdownForOwner, p as compactPath, q as summarizeOutcomes, r as truncateTurnsAt, rt as blendHsl, s as turnContextSize, t as countNeighbors, tt as ListProjectFilesOptions, u as filterModelCatalog, v as previewLine, w as HunkResolution, x as DiffOp, y as shortId, z as ResolvedApproval } from "./turn-operations-
|
|
1
|
+
import { $n as ContextCategory, Cn as SessionTurn, F as Session, N as SkillsConfig, Qn as ContextBreakdownOptions, Zn as ContextBreakdown, ar as ContextUsageSplit, er as ContextCategoryId, ir as ContextSnapshot, k as SkillConfig, ln as McpToolSchema, mt as Provider, nr as ContextItem, or as buildContextBreakdown, r as AgentHooks, rr as ContextMcpGroup, sn as McpServerConfig, tr as ContextExactCounts } from "./agent-B7ilLoh8.js";
|
|
2
|
+
import { K as McpCredentialEntry, q as McpCredentialStore, t as Preset } from "./index-C-zEbeFI.js";
|
|
3
|
+
import { _ as SourcedScanPath } from "./index-CsRdmSh6.js";
|
|
4
|
+
import { $ as useInteractionsQueue, $t as parseBindingSpec, A as InteractionsProvider, At as marginTopFor, B as QuestionPayload, Bt as KEYBINDING_DEF_BY_ACTION, C as ASK_USER_TOOL, Ct as TuiState, D as InteractionRequest, Dt as lastContextSizeFromTurns, E as CreateInteractionToolsOptions, Et as eventsFromTurns, F as PlanRequest, Ft as toolCallPreview, G as TextQuestion, Gt as KeyBindings, H as QuestionResponse, Ht as KeyAction, I as PlanResponse, It as toolResultText, J as isInteractionTool, Jt as formatBindingForDisplay, K as buildResumedToolResultsTurn, Kt as ParsedBinding, L as PlanStep, Lt as updateToolEventOutcomes, M as PendingInteractionEntry, Mt as stripSpawnTokensLine, N as PlanDecision, Nt as sumRunCosts, O as InteractionResponse, Ot as listSessionMeta, P as PlanPayload, Pt as titleFromTurns, Q as useInteractionsActions, Qt as mergeKeybindings, R as Question, Rt as DEFAULT_KEYBINDINGS, S as splitMarkdownCodeBlocks, St as StateStoreApi, T as ConfirmQuestion, Tt as deriveSessionTitle, U as QuestionType, Ut as KeyBindingDef, V as QuestionRequest, Vt as KEYBINDING_KEY_COL_WIDTH, W as SelectQuestion, Wt as KeyBindingSection, X as pendingInteractionsFromTurns, Xt as keybindingsPath, Y as makeRequestInteraction, Yt as groupBindings, Z as serializeInteractionResponse, Zt as matchesBinding, _ as SessionExportTarget, _n as PLAN_AGENT, _t as ResolveStorageDirsOptions, a as ChipColorMap, an as Hint, at as DiscoveryResult, b as writeSessionExport, bn as singleAgentRegistry, bt as StorageSlot, c as SyntaxTokenStyle, cn as truncateTrailing, ct as discoverProjectMcps, d as ThemeSelect, dn as AgentRegistry, dt as ChatOptions, en as readKeybindings, et as EnabledAllowlistKey, f as ThemeSurfaces, fn as BUILD_AGENT, ft as ProviderRegistry, g as SessionExportFormat, gn as DEFAULT_PERSIST_EXCLUDE_TOOLS, gt as resolveStoragePaths, h as SessionExportAnchor, hn as DEFAULT_BUDGET_EXCLUDE_TOOLS, ht as resolveConfig, i as ChipColor, in as EMPTY_HINTS, it as DiscoveryError, j as PRESENT_PLAN_TOOL, jt as saveState, k as InteractionsActions, kt as loadState, l as Theme, ln as AgentAccent, lt as parseMcpsFile, m as resolveTheme, mn as DEFAULT_AGENT_ID, mt as ResolvedPaths, n as computeTurnAnchors, nn as CompletionState, nt as useEnabledToggleSet, o as DEFAULT_THEME, on as clipHintsToWidth, ot as buildMcpServers, p as resolveChipColor, pn as BUILTIN_AGENTS, pt as ResolvedConfig, q as createInteractionTools, qt as ensureKeybindingsFile, r as BUILTIN_THEMES, rn as useCompletion, rt as DiscoveredMcp, s as SyntaxStyles, sn as hintsLength, st as defaultMcpsConfigPaths, t as TranscriptItem, tn as stripJsonComments, tt as EnabledToggleSet, u as ThemeColors, un as AgentProfile, ut as AutoUpdateConfig, v as renderSession, vn as accentColor, vt as StorageDirs, w as AnswerValue, wt as createStateStore, x as MarkdownSegment, xt as resolveStorageDirs, y as resolveSessionExportTarget, yn as resolveAgentId, yt as StorageMode, z as QuestionChoice, zt as KEYBINDING_DEFS } from "./transcript-anchors-p-ZsBSEF.js";
|
|
5
|
+
import { $ as anthropicDescriptor, A as SessionMeta, B as collectReferences, C as EditHunk, D as Owner, E as EditPayload, F as CompletionContext, G as ProviderKey, H as mergeReferences, I as CompletionItem, J as CustomField, K as detectAuth, L as CompletionProvider, M as StreamEvent, N as ToolCallDisplay, O as Picked, P as ActiveTrigger, Q as ProviderDescriptor, R as CompletionReference, S as EditDiffDisplay, T as EditOutcomeKind, U as AuthMethod, V as findActiveTrigger, W as ProviderAuth, X as ModelOption, Y as ModelInfo, Z as OUTPUT_RESERVE_TOKENS, _ as isEditErrorResult, a as formatToolCall, at as getModelInfo, b as selectableTurnIds, c as splitPromptSegments, ct as modelSupportsReasoning, d as RequestApproval, dt as openrouterDescriptor, et as cerebrasDescriptor, f as SafeModeActions, ft as piIdOf, h as useSafeModeQueue, i as displayNameFor, it as getContextWindow, j as Settings, k as Screen, l as ApprovalDecision, lt as modelsForDescriptor, m as useSafeModeActions, n as ToolDisplayMeta, nt as effectiveContextWindow, o as PromptSegment, ot as localDescriptor, p as SafeModeProvider, pt as restoreModelOptions, q as BUILTIN_PROVIDERS, r as ToolFormatLine, rt as enabledModelOptions, s as PromptSegmentRef, st as modelOptionsFor, t as TOOL_DISPLAY, tt as credKeyOf, u as ApprovalRequest, ut as openaiDescriptor, v as isTurnHighlighted, w as EditOutcome, x as turnSelectionOwnership, y as isVisible, z as applyInsert } from "./tool-formatters-DXO8rGut.js";
|
|
6
|
+
import { $ as uniqueFilesFromReferences, A as buildUnifiedDiff, B as buildEditOutcomesAnnotation, C as EditSummary, D as PreviewResult, E as InlineSegment, F as previewEditPayload, G as rewriteMultiEditHeader, H as mergeApprovalAndBodyOutcomes, I as splitLines, J as SKILLS_TRIGGER, K as stripEditOutcomesAnnotation, L as summarizeEditPayload, M as computeLineDiff, N as extractEditPayload, O as applyEditPayload, P as filetypeFromPath, Q as createFilesCompletionProvider, R as tokenize, S as EditHunkSummary, T as InlineDiff, U as parseEditOutcomesFromResult, V as maskToOutcomeKinds, W as resolveApprovalForPayload, X as uniqueSkillNamesFromReferences, Y as createSkillsCompletionProvider, Z as FILES_TRIGGER, _ as formatTaskSummary, a as finalizeStreamingMarkdown, b as DiffLine, c as CatalogEntry, d as indexOfEntry, et as FileEntry, f as ageString, g as formatTaskStatus, h as formatDuration, i as turnAsText, it as buildLinearRamp, j as computeInlineDiff, k as buildContextualDiff, l as buildModelCatalog, m as fmtTokens, n as deleteTurnSafely, nt as listProjectFiles, o as finalizeStreamingMarkdownForOwner, p as compactPath, q as summarizeOutcomes, r as truncateTurnsAt, rt as blendHsl, s as turnContextSize, t as countNeighbors, tt as ListProjectFilesOptions, u as filterModelCatalog, v as previewLine, w as HunkResolution, x as DiffOp, y as shortId, z as ResolvedApproval } from "./turn-operations-DD1D5VFx.js";
|
|
7
7
|
import { Hookable } from "hookable";
|
|
8
8
|
import { OAuthCredentials, OAuthDeviceCodeInfo, OAuthPrompt, OAuthPrompt as OAuthPrompt$1, OAuthSelectPrompt } from "@earendil-works/pi-ai/oauth";
|
|
9
9
|
import { spawn } from "node:child_process";
|
package/dist/chat.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { $ as useMcpAuthDispatch, $n as BUILD_AGENT, $t as deriveSessionTitle, A as runOAuthLogin, An as buildUpdateHint, Ar as SUBAGENT_GUIDANCE, B as refreshMcpToolsCatalog, Bn as AUTO_COMPACT_MIN_GROWTH_FRACTION, Bt as CATPPUCCIN_LATTE, C as projectsFilePath, Cn as parseBindingSpec, Cr as COMMUNICATION_DOCTRINE, Ct as listProjectFiles, D as formatPathForCwd, Dn as tryOpenBrowser, Dr as INTERACTION_GUIDANCE_NO_PROMPTS, Dt as SETTINGS_CHOICES, E as writeProjects, En as useCompletion, Er as INTERACTION_GUIDANCE, Et as SETTINGS_CATEGORIES, F as parseMcpsFile, Fn as detectPackageManager, Ft as resolveTheme, G as useMcpToolToggleSet, Gn as readCredentials, Gt as useDiscovery, H as subscribeMcpToolsCache, Hn as detectAuth, Ht as CATPPUCCIN_MOCHA, I as projectUserPaths, In as parseSemver, It as VAPORWAVE_THEME, J as parentServerName, Jn as setProviderCredential, Jt as useConfig, K as buildVisibleMcpRows, Kn as readProviderCredential, Kt as useDiscoveryOptional, L as clearMcpToolsCache, Ln as performInPlaceSelfUpdate, Lt as GRUVBOX_DARK, M as buildMcpServers, Mn as checkForUpdate, Mr as buildBuildSystem, Mt as BUILTIN_THEMES, N as defaultMcpsConfigPaths, Nn as compareSemver, Nr as buildPlanSystem, Nt as DEFAULT_THEME, O as fetchOAuthRedirect, On as bootProfileEnabled, Or as PLAN_MODE_DOCTRINE, Ot as SETTINGS_TOGGLES, P as discoverProjectMcps, Pn as detectLibc, Pr as envSection, Pt as resolveChipColor, Q as McpAuthProvider, Qn as findGitRoot, Qt as createStateStore, R as loadMcpToolsCache, Rn as performSelfUpdate, Rt as GRUVBOX_LIGHT, S as matchesSafelistEntry, Sn as mergeKeybindings, Sr as ACTIONS_WITH_CARE_DOCTRINE, St as shortChord, T as suggestSafelistEntry, Tn as stripJsonComments, Tr as IDENTITY_PREFIX, Tt as DEFAULT_SETTINGS, U as buildToolToggle, Un as applyApiKeyEnv, Ut as createDiscoverySlot, V as saveMcpToolsCache, Vn as shouldAutoCompact, Vt as CATPPUCCIN_MACCHIATO, W as useMcpToolToggleMap, Wn as credentialsPath, Wt as DiscoveryProvider, X as mcpCredentialsPath, Xn as discoverAgentsMd, Xt as resolveStoragePaths, Y as createFileMcpCredentialStore, Yn as writeCredentials, Yt as resolveConfig, Z as patchMcpCredential, Zn as renderAgentsMdBlock, Zt as resolveStorageDirs, _ as useSafeModeQueue, _n as ensureKeybindingsFile, _r as pickActiveRunId, _t as hintsLength, a as useSurfaces, an as saveState, ar as accentColor, at as InteractionsProvider, b as getSafelist, bn as keybindingsPath, br as setTodosForRun, bt as generateSessionTitle, c as useStreamBuffer, cn as sumRunCosts, cr as TODOREAD_TOOL, ct as createInteractionTools, d as discoverProjectSkills, dn as toolResultText, dr as TODO_STATUS_GLYPHS, dt as pendingInteractionsFromTurns, en as eventsFromTurns, er as BUILTIN_AGENTS, et as useMcpAuthState, f as renderSession, fn as updateToolEventOutcomes, fr as TODO_WRITE_COUNTS_METADATA_KEY, ft as serializeInteractionResponse, g as useSafeModeActions, gn as KEYBINDING_KEY_COL_WIDTH, gr as isTodoTool, gt as clipHintsToWidth, h as SafeModeProvider, hn as KEYBINDING_DEF_BY_ACTION, hr as getTodosForRun, ht as EMPTY_HINTS, i as useSelectStyle, in as marginTopFor, ir as PLAN_AGENT, it as ASK_USER_TOOL, j as supportsOAuth, jn as useUpdateCheck, jr as TOKEN_DISCIPLINE_DOCTRINE, jt as useSettings, k as oauthUsesManualCodePaste, kn as bootTick, kr as PLAN_MODE_DOCTRINE_NO_PROMPTS, kt as SettingsProvider, l as buildSkillsConfig, ln as titleFromTurns, lr as TODOS_METADATA_KEY, lt as isInteractionTool, m as writeSessionExport, mn as KEYBINDING_DEFS, mr as getArchivedTodosForRun, mt as useInteractionsQueue, n as ThemeProvider, nn as listSessionMeta, nr as DEFAULT_BUDGET_EXCLUDE_TOOLS, nt as reduceMcpAuth, o as useSyntaxStyles, or as resolveAgentId, ot as PRESENT_PLAN_TOOL, p as resolveSessionExportTarget, pn as DEFAULT_KEYBINDINGS, pr as createTodoTools, pt as useInteractionsActions, q as indexOfServerRow, qn as removeProviderCredential, qt as ConfigProvider, r as useColors, rn as loadState, rr as DEFAULT_PERSIST_EXCLUDE_TOOLS, rt as splitMarkdownCodeBlocks, s as useTheme, sn as stripSpawnTokensLine, sr as singleAgentRegistry, st as buildResumedToolResultsTurn, t as computeTurnAnchors, tn as lastContextSizeFromTurns, tr as DEFAULT_AGENT_ID, tt as getMcpAuthStatus, u as defaultSkillScanPaths, un as toolCallPreview, ur as TODOWRITE_TOOL, ut as makeRequestInteraction, v as IMPLICITLY_SAFE_TOOLS, vn as formatBindingForDisplay, vr as pruneTodosByRun, vt as truncateTrailing, w as readProjects, wn as readKeybindings, wr as DOING_TASKS_DOCTRINE, wt as useEnabledToggleSet, x as isOnSafelist, xn as matchesBinding, xr as useActiveTodos, xt as buildHints, y as addToSafelist, yn as groupBindings, yr as selectActiveTodos, yt as cleanTitle, z as mcpToolsCachePath, zn as resolvePlatformPackage, zt as CATPPUCCIN_FRAPPE } from "./transcript-anchors-
|
|
2
|
-
import { $ as
|
|
1
|
+
import { $ as useMcpAuthDispatch, $n as BUILD_AGENT, $t as deriveSessionTitle, A as runOAuthLogin, An as buildUpdateHint, Ar as SUBAGENT_GUIDANCE, B as refreshMcpToolsCatalog, Bn as AUTO_COMPACT_MIN_GROWTH_FRACTION, Bt as CATPPUCCIN_LATTE, C as projectsFilePath, Cn as parseBindingSpec, Cr as COMMUNICATION_DOCTRINE, Ct as listProjectFiles, D as formatPathForCwd, Dn as tryOpenBrowser, Dr as INTERACTION_GUIDANCE_NO_PROMPTS, Dt as SETTINGS_CHOICES, E as writeProjects, En as useCompletion, Er as INTERACTION_GUIDANCE, Et as SETTINGS_CATEGORIES, F as parseMcpsFile, Fn as detectPackageManager, Ft as resolveTheme, G as useMcpToolToggleSet, Gn as readCredentials, Gt as useDiscovery, H as subscribeMcpToolsCache, Hn as detectAuth, Ht as CATPPUCCIN_MOCHA, I as projectUserPaths, In as parseSemver, It as VAPORWAVE_THEME, J as parentServerName, Jn as setProviderCredential, Jt as useConfig, K as buildVisibleMcpRows, Kn as readProviderCredential, Kt as useDiscoveryOptional, L as clearMcpToolsCache, Ln as performInPlaceSelfUpdate, Lt as GRUVBOX_DARK, M as buildMcpServers, Mn as checkForUpdate, Mr as buildBuildSystem, Mt as BUILTIN_THEMES, N as defaultMcpsConfigPaths, Nn as compareSemver, Nr as buildPlanSystem, Nt as DEFAULT_THEME, O as fetchOAuthRedirect, On as bootProfileEnabled, Or as PLAN_MODE_DOCTRINE, Ot as SETTINGS_TOGGLES, P as discoverProjectMcps, Pn as detectLibc, Pr as envSection, Pt as resolveChipColor, Q as McpAuthProvider, Qn as findGitRoot, Qt as createStateStore, R as loadMcpToolsCache, Rn as performSelfUpdate, Rt as GRUVBOX_LIGHT, S as matchesSafelistEntry, Sn as mergeKeybindings, Sr as ACTIONS_WITH_CARE_DOCTRINE, St as shortChord, T as suggestSafelistEntry, Tn as stripJsonComments, Tr as IDENTITY_PREFIX, Tt as DEFAULT_SETTINGS, U as buildToolToggle, Un as applyApiKeyEnv, Ut as createDiscoverySlot, V as saveMcpToolsCache, Vn as shouldAutoCompact, Vt as CATPPUCCIN_MACCHIATO, W as useMcpToolToggleMap, Wn as credentialsPath, Wt as DiscoveryProvider, X as mcpCredentialsPath, Xn as discoverAgentsMd, Xt as resolveStoragePaths, Y as createFileMcpCredentialStore, Yn as writeCredentials, Yt as resolveConfig, Z as patchMcpCredential, Zn as renderAgentsMdBlock, Zt as resolveStorageDirs, _ as useSafeModeQueue, _n as ensureKeybindingsFile, _r as pickActiveRunId, _t as hintsLength, a as useSurfaces, an as saveState, ar as accentColor, at as InteractionsProvider, b as getSafelist, bn as keybindingsPath, br as setTodosForRun, bt as generateSessionTitle, c as useStreamBuffer, cn as sumRunCosts, cr as TODOREAD_TOOL, ct as createInteractionTools, d as discoverProjectSkills, dn as toolResultText, dr as TODO_STATUS_GLYPHS, dt as pendingInteractionsFromTurns, en as eventsFromTurns, er as BUILTIN_AGENTS, et as useMcpAuthState, f as renderSession, fn as updateToolEventOutcomes, fr as TODO_WRITE_COUNTS_METADATA_KEY, ft as serializeInteractionResponse, g as useSafeModeActions, gn as KEYBINDING_KEY_COL_WIDTH, gr as isTodoTool, gt as clipHintsToWidth, h as SafeModeProvider, hn as KEYBINDING_DEF_BY_ACTION, hr as getTodosForRun, ht as EMPTY_HINTS, i as useSelectStyle, in as marginTopFor, ir as PLAN_AGENT, it as ASK_USER_TOOL, j as supportsOAuth, jn as useUpdateCheck, jr as TOKEN_DISCIPLINE_DOCTRINE, jt as useSettings, k as oauthUsesManualCodePaste, kn as bootTick, kr as PLAN_MODE_DOCTRINE_NO_PROMPTS, kt as SettingsProvider, l as buildSkillsConfig, ln as titleFromTurns, lr as TODOS_METADATA_KEY, lt as isInteractionTool, m as writeSessionExport, mn as KEYBINDING_DEFS, mr as getArchivedTodosForRun, mt as useInteractionsQueue, n as ThemeProvider, nn as listSessionMeta, nr as DEFAULT_BUDGET_EXCLUDE_TOOLS, nt as reduceMcpAuth, o as useSyntaxStyles, or as resolveAgentId, ot as PRESENT_PLAN_TOOL, p as resolveSessionExportTarget, pn as DEFAULT_KEYBINDINGS, pr as createTodoTools, pt as useInteractionsActions, q as indexOfServerRow, qn as removeProviderCredential, qt as ConfigProvider, r as useColors, rn as loadState, rr as DEFAULT_PERSIST_EXCLUDE_TOOLS, rt as splitMarkdownCodeBlocks, s as useTheme, sn as stripSpawnTokensLine, sr as singleAgentRegistry, st as buildResumedToolResultsTurn, t as computeTurnAnchors, tn as lastContextSizeFromTurns, tr as DEFAULT_AGENT_ID, tt as getMcpAuthStatus, u as defaultSkillScanPaths, un as toolCallPreview, ur as TODOWRITE_TOOL, ut as makeRequestInteraction, v as IMPLICITLY_SAFE_TOOLS, vn as formatBindingForDisplay, vr as pruneTodosByRun, vt as truncateTrailing, w as readProjects, wn as readKeybindings, wr as DOING_TASKS_DOCTRINE, wt as useEnabledToggleSet, x as isOnSafelist, xn as matchesBinding, xr as useActiveTodos, xt as buildHints, y as addToSafelist, yn as groupBindings, yr as selectActiveTodos, yt as cleanTitle, z as mcpToolsCachePath, zn as resolvePlatformPackage, zt as CATPPUCCIN_FRAPPE } from "./transcript-anchors-C3tVPR5n.js";
|
|
2
|
+
import { $ as restoreModelOptions, B as cerebrasDescriptor, G as getModelInfo, H as effectiveContextWindow, J as modelSupportsReasoning, K as localDescriptor, L as BUILTIN_PROVIDERS, Q as piIdOf, R as OUTPUT_RESERVE_TOKENS, U as enabledModelOptions, V as credKeyOf, W as getContextWindow, X as openaiDescriptor, Y as modelsForDescriptor, Z as openrouterDescriptor, q as modelOptionsFor, z as anthropicDescriptor } from "./tools-DqNkGwfd.js";
|
|
3
3
|
import { t as buildContextBreakdown } from "./context-breakdown-kO-pDsay.js";
|
|
4
4
|
import { a as formatTaskStatus, c as shortId, i as formatDuration, n as compactPath, o as formatTaskSummary, r as fmtTokens, s as previewLine, t as ageString } from "./format-BNOXpl-1.js";
|
|
5
5
|
import { A as splitLines, B as summarizeOutcomes, C as buildContextualDiff, D as extractEditPayload, E as computeLineDiff, F as mergeApprovalAndBodyOutcomes, G as createFilesCompletionProvider, H as createSkillsCompletionProvider, I as parseEditOutcomesFromResult, J as collectReferences, K as uniqueFilesFromReferences, L as resolveApprovalForPayload, M as tokenize, N as buildEditOutcomesAnnotation, O as filetypeFromPath, P as maskToOutcomeKinds, Q as buildLinearRamp, R as rewriteMultiEditHeader, S as applyEditPayload, T as computeInlineDiff, U as uniqueSkillNamesFromReferences, V as SKILLS_TRIGGER, W as FILES_TRIGGER, X as mergeReferences, Y as findActiveTrigger, Z as blendHsl, _ as isEditErrorResult, a as TOOL_DISPLAY, b as selectableTurnIds, c as finalizeStreamingMarkdown, d as turnContextSize, f as splitPromptSegments, h as indexOfEntry, i as turnAsText, j as summarizeEditPayload, k as previewEditPayload, l as finalizeStreamingMarkdownForOwner, m as filterModelCatalog, n as deleteTurnSafely, o as displayNameFor, p as buildModelCatalog, q as applyInsert, r as truncateTurnsAt, s as formatToolCall, t as countNeighbors, v as isTurnHighlighted, w as buildUnifiedDiff, x as turnSelectionOwnership, y as isVisible, z as stripEditOutcomesAnnotation } from "./turn-operations-DLWN2J7f.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { c as ExecutionContext, u as SpawnConfig } from "../types-B39tBba1.js";
|
|
2
2
|
|
|
3
3
|
//#region src/contexts/docker.d.ts
|
|
4
4
|
declare function createDockerContext(config?: SpawnConfig): ExecutionContext;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docker.d.ts","names":[],"sources":["../../src/contexts/docker.ts"],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"docker.d.ts","names":[],"sources":["../../src/contexts/docker.ts"],"mappings":";;;iBA8BgB,mBAAA,CAAoB,MAAA,GAAS,WAAA,GAAc,gBAAgB;;iBA0V3D,cAAA,CAAe,MAAA,EAAQ,WAAW,CAAC,WAAA"}
|
package/dist/contexts/docker.js
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
|
+
import { t as alwaysQuote } from "../shell-quote-BmnhZmdM.js";
|
|
1
2
|
//#region src/contexts/docker.ts
|
|
2
3
|
const SINGLE_QUOTE_RE = /'/g;
|
|
4
|
+
/**
|
|
5
|
+
* dockerode surfaces HTTP errors with a `statusCode`. 304 = container
|
|
6
|
+
* already stopped, 404 = already gone — both are fine during teardown.
|
|
7
|
+
*/
|
|
8
|
+
function isGoneOrAlreadyStopped(err) {
|
|
9
|
+
const code = err?.statusCode;
|
|
10
|
+
return code === 304 || code === 404;
|
|
11
|
+
}
|
|
3
12
|
function createDockerContext(config) {
|
|
4
13
|
let counter = 0;
|
|
5
14
|
const containers = /* @__PURE__ */ new Map();
|
|
@@ -51,6 +60,14 @@ function createDockerContext(config) {
|
|
|
51
60
|
const hostConfig = {};
|
|
52
61
|
if (limits?.memory) hostConfig.Memory = limits.memory * 1024 * 1024;
|
|
53
62
|
if (limits?.cpu) hostConfig.NanoCpus = Number.parseFloat(limits.cpu) * 1e9;
|
|
63
|
+
const hardening = {
|
|
64
|
+
...config?.hardening,
|
|
65
|
+
...overrides?.hardening
|
|
66
|
+
};
|
|
67
|
+
if (hardening.dropAllCapabilities) hostConfig.CapDrop = ["ALL"];
|
|
68
|
+
if (hardening.noNewPrivileges) hostConfig.SecurityOpt = ["no-new-privileges"];
|
|
69
|
+
if (hardening.readonlyRootfs) hostConfig.ReadonlyRootfs = true;
|
|
70
|
+
if (hardening.pidsLimit != null) hostConfig.PidsLimit = hardening.pidsLimit;
|
|
54
71
|
const env = {
|
|
55
72
|
...defaultEnv,
|
|
56
73
|
...overrides?.env
|
|
@@ -86,7 +103,12 @@ function createDockerContext(config) {
|
|
|
86
103
|
...user ? { User: user } : {},
|
|
87
104
|
...Object.keys(labels).length ? { Labels: labels } : {}
|
|
88
105
|
});
|
|
89
|
-
|
|
106
|
+
try {
|
|
107
|
+
await container.start();
|
|
108
|
+
} catch (err) {
|
|
109
|
+
await container.remove({ force: true }).catch(() => {});
|
|
110
|
+
throw err;
|
|
111
|
+
}
|
|
90
112
|
const handle = {
|
|
91
113
|
id,
|
|
92
114
|
type: "docker",
|
|
@@ -104,8 +126,11 @@ function createDockerContext(config) {
|
|
|
104
126
|
if (!ref) throw new Error(`Container ${handle.id} not found`);
|
|
105
127
|
const execCwd = options?.cwd ?? handle.cwd;
|
|
106
128
|
const env = options?.env ? Object.entries(options.env).map(([k, v]) => `${k}=${v}`) : [];
|
|
129
|
+
const timeout = options?.timeout ?? defaultLimits?.timeout ?? 30;
|
|
107
130
|
const exec = await ref.container.exec({
|
|
108
131
|
Cmd: [
|
|
132
|
+
"timeout",
|
|
133
|
+
String(timeout),
|
|
109
134
|
"sh",
|
|
110
135
|
"-c",
|
|
111
136
|
command
|
|
@@ -151,7 +176,6 @@ function createDockerContext(config) {
|
|
|
151
176
|
stdout += chunk.toString("utf-8");
|
|
152
177
|
});
|
|
153
178
|
}
|
|
154
|
-
const timeout = options?.timeout ?? defaultLimits?.timeout ?? 30;
|
|
155
179
|
const timer = setTimeout(() => {
|
|
156
180
|
if (resolved) return;
|
|
157
181
|
resolved = true;
|
|
@@ -163,18 +187,26 @@ function createDockerContext(config) {
|
|
|
163
187
|
stderr: stderr ? `${stderr}\n[timeout]` : "[timeout]",
|
|
164
188
|
exitCode: 124
|
|
165
189
|
});
|
|
166
|
-
}, timeout * 1e3);
|
|
190
|
+
}, timeout * 1e3 + 1e3);
|
|
167
191
|
stream.on("end", async () => {
|
|
168
192
|
if (resolved) return;
|
|
169
193
|
resolved = true;
|
|
170
194
|
clearTimeout(timer);
|
|
171
|
-
let exitCode
|
|
195
|
+
let exitCode;
|
|
196
|
+
let inspectNote = "";
|
|
172
197
|
try {
|
|
173
|
-
|
|
174
|
-
|
|
198
|
+
const inspect = await exec.inspect();
|
|
199
|
+
if (inspect.ExitCode == null) {
|
|
200
|
+
exitCode = -1;
|
|
201
|
+
inspectNote = "[exit code unavailable: exec still marked running by daemon]";
|
|
202
|
+
} else exitCode = inspect.ExitCode;
|
|
203
|
+
} catch (err) {
|
|
204
|
+
exitCode = -1;
|
|
205
|
+
inspectNote = `[exit code unavailable: exec inspect failed: ${err?.message ?? String(err)}]`;
|
|
206
|
+
}
|
|
175
207
|
resolve({
|
|
176
208
|
stdout,
|
|
177
|
-
stderr,
|
|
209
|
+
stderr: inspectNote ? stderr ? `${stderr}\n${inspectNote}` : inspectNote : stderr,
|
|
178
210
|
exitCode
|
|
179
211
|
});
|
|
180
212
|
});
|
|
@@ -191,17 +223,17 @@ function createDockerContext(config) {
|
|
|
191
223
|
});
|
|
192
224
|
},
|
|
193
225
|
async readFile(handle, path) {
|
|
194
|
-
const result = await ctx.exec(handle, `cat ${
|
|
226
|
+
const result = await ctx.exec(handle, `cat ${alwaysQuote(path)}`);
|
|
195
227
|
if (result.exitCode !== 0) throw new Error(`Failed to read file: ${result.stderr}`);
|
|
196
228
|
return result.stdout;
|
|
197
229
|
},
|
|
198
230
|
async writeFile(handle, path, content) {
|
|
199
231
|
const escaped = content.replace(SINGLE_QUOTE_RE, String.raw`'\''`);
|
|
200
|
-
const result = await ctx.exec(handle, `mkdir -p "$(dirname ${
|
|
232
|
+
const result = await ctx.exec(handle, `mkdir -p "$(dirname ${alwaysQuote(path)})" && printf '%s' '${escaped}' > ${alwaysQuote(path)}`);
|
|
201
233
|
if (result.exitCode !== 0) throw new Error(`Failed to write file: ${result.stderr}`);
|
|
202
234
|
},
|
|
203
235
|
async listFiles(handle, path) {
|
|
204
|
-
const result = await ctx.exec(handle, `ls -1 ${
|
|
236
|
+
const result = await ctx.exec(handle, `ls -1 ${alwaysQuote(path)}`);
|
|
205
237
|
if (result.exitCode !== 0) return [];
|
|
206
238
|
return result.stdout.trim().split("\n").filter(Boolean);
|
|
207
239
|
},
|
|
@@ -219,10 +251,17 @@ function createDockerContext(config) {
|
|
|
219
251
|
const ref = containers.get(handle.id);
|
|
220
252
|
if (!ref) return;
|
|
221
253
|
try {
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
254
|
+
try {
|
|
255
|
+
await ref.container.stop({ t: 5 });
|
|
256
|
+
} catch {}
|
|
257
|
+
try {
|
|
258
|
+
await ref.container.remove({ force: true });
|
|
259
|
+
} catch (err) {
|
|
260
|
+
if (!isGoneOrAlreadyStopped(err)) throw err;
|
|
261
|
+
}
|
|
262
|
+
} finally {
|
|
263
|
+
containers.delete(handle.id);
|
|
264
|
+
}
|
|
226
265
|
}
|
|
227
266
|
};
|
|
228
267
|
return ctx;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docker.js","names":[],"sources":["../../src/contexts/docker.ts"],"sourcesContent":["/**\n * Docker execution context.\n *\n * Runs tools inside a Docker container via dockerode.\n * Full isolation with configurable resource limits.\n *\n * Requires `dockerode` as an optional peer dependency.\n */\n\nimport type { Buffer } from 'node:buffer'\nimport type { ContextCapabilities, ExecResult, ExecutionContext, ExecutionHandle, SpawnConfig } from './types'\n\nconst SINGLE_QUOTE_RE = /'/g\n\ninterface ContainerRef {\n handle: ExecutionHandle\n container: any\n docker: any\n}\n\nexport function createDockerContext(config?: SpawnConfig): ExecutionContext {\n let counter = 0\n const containers = new Map<string, ContainerRef>()\n const defaultImage = config?.image ?? 'oven/bun:latest'\n const defaultCwd = config?.cwd ?? '/workspace'\n const defaultEnv = config?.env\n const defaultLimits = config?.limits\n const defaultMounts = config?.mounts ?? []\n const defaultName = config?.name\n\n async function getDockerode() {\n try {\n const Dockerode = (await import('dockerode')).default\n return new Dockerode()\n }\n catch {\n throw new Error('dockerode is required for Docker execution context. Install it with: bun add dockerode')\n }\n }\n\n const ctx: ExecutionContext = {\n type: 'docker',\n\n capabilities: {\n shell: true,\n filesystem: true,\n network: true,\n gpu: false,\n } satisfies ContextCapabilities,\n\n async spawn(overrides?: SpawnConfig): Promise<ExecutionHandle> {\n const docker = await getDockerode()\n const id = `docker-${++counter}`\n const image = overrides?.image ?? defaultImage\n const cwd = overrides?.cwd ?? defaultCwd\n const mounts = [...defaultMounts, ...(overrides?.mounts ?? [])]\n const name = overrides?.name ?? defaultName\n\n // Pull image if not available\n try {\n await docker.getImage(image).inspect()\n }\n catch {\n await new Promise<void>((resolve, reject) => {\n docker.pull(image, (err: Error | null, stream: NodeJS.ReadableStream) => {\n if (err)\n return reject(err)\n docker.modem.followProgress(stream, (err2: Error | null) => {\n err2 ? reject(err2) : resolve()\n })\n })\n })\n }\n\n const limits = { ...defaultLimits, ...overrides?.limits }\n const hostConfig: Record<string, unknown> = {}\n\n if (limits?.memory) {\n hostConfig.Memory = limits.memory * 1024 * 1024\n }\n if (limits?.cpu) {\n hostConfig.NanoCpus = Number.parseFloat(limits.cpu) * 1e9\n }\n\n const env = { ...defaultEnv, ...overrides?.env }\n\n const bindSpecs = buildBindSpecs(mounts)\n if (bindSpecs.length > 0) {\n hostConfig.Binds = bindSpecs\n }\n\n const portSpec = overrides?.ports ?? config?.ports\n const exposedPorts: Record<string, Record<string, never>> = {}\n const portBindings: Record<string, Array<{ HostPort: string }>> = {}\n\n if (portSpec?.length) {\n for (const p of portSpec) {\n const key = `${p.container}/${p.proto ?? 'tcp'}`\n exposedPorts[key] = {}\n portBindings[key] = [{ HostPort: p.host == null ? '' : String(p.host) }]\n }\n hostConfig.PortBindings = portBindings\n }\n\n const user = overrides?.user ?? config?.user\n const network = overrides?.network ?? config?.network\n if (network) {\n hostConfig.NetworkMode = network\n }\n\n const labels = { ...config?.labels, ...overrides?.labels }\n\n const container = await docker.createContainer({\n // Suffix with a short random token so a crashed run's leftover container\n // (same prefix) never blocks a fresh one with HTTP 409 name conflict.\n ...(name ? { name: `${name}-${counter}-${Math.random().toString(36).slice(2, 8)}` } : {}),\n Image: image,\n Cmd: ['sleep', 'infinity'],\n WorkingDir: cwd,\n Env: Object.entries(env).map(([k, v]) => `${k}=${v}`),\n HostConfig: hostConfig,\n ...(Object.keys(exposedPorts).length ? { ExposedPorts: exposedPorts } : {}),\n ...(user ? { User: user } : {}),\n ...(Object.keys(labels).length ? { Labels: labels } : {}),\n })\n\n await container.start()\n\n const handle: ExecutionHandle = { id, type: 'docker', cwd }\n containers.set(id, { handle, container, docker })\n\n return handle\n },\n\n async exec(handle: ExecutionHandle, command: string, options?: { cwd?: string, env?: Record<string, string>, timeout?: number }): Promise<ExecResult> {\n const ref = containers.get(handle.id)\n if (!ref)\n throw new Error(`Container ${handle.id} not found`)\n\n const execCwd = options?.cwd ?? handle.cwd\n const env = options?.env\n ? Object.entries(options.env).map(([k, v]) => `${k}=${v}`)\n : []\n\n const exec = await ref.container.exec({\n Cmd: ['sh', '-c', command],\n WorkingDir: execCwd,\n Env: env,\n AttachStdout: true,\n AttachStderr: true,\n })\n\n const stream = await exec.start({ Detach: false })\n\n return new Promise<ExecResult>((resolve) => {\n let stdout = ''\n let stderr = ''\n let resolved = false\n\n // Docker's exec stream is a multiplexed protocol — a single byte\n // stream that interleaves stdout/stderr frames. `demuxStream`\n // splits the two onto separate writable sinks. Without it, every\n // byte landed on `stdout` and `stderr` was permanently empty.\n const stdoutSink = {\n write(chunk: Buffer | string) {\n stdout += typeof chunk === 'string' ? chunk : chunk.toString('utf-8')\n return true\n },\n end() {},\n on() {},\n once() {},\n emit() { return true },\n }\n const stderrSink = {\n write(chunk: Buffer | string) {\n stderr += typeof chunk === 'string' ? chunk : chunk.toString('utf-8')\n return true\n },\n end() {},\n on() {},\n once() {},\n emit() { return true },\n }\n try {\n ref.docker.modem.demuxStream(stream, stdoutSink, stderrSink)\n }\n catch {\n // Older / different transports may not be multiplexed (TTY mode);\n // fall back to a raw stdout reader so we don't lose output entirely.\n stream.on('data', (chunk: Buffer) => {\n stdout += chunk.toString('utf-8')\n })\n }\n\n const timeout = options?.timeout ?? defaultLimits?.timeout ?? 30\n const timer = setTimeout(() => {\n if (resolved)\n return\n resolved = true\n // Best-effort: detach the stream so we stop accumulating bytes\n // from a runaway exec. The exec itself can't be killed cleanly\n // through the dockerode exec API; the container's destroy() path\n // (or a manual `docker exec kill`) is the real cleanup.\n try { stream.destroy?.() }\n catch { /* swallow */ }\n resolve({ stdout, stderr: stderr ? `${stderr}\\n[timeout]` : '[timeout]', exitCode: 124 })\n }, timeout * 1000)\n\n stream.on('end', async () => {\n if (resolved)\n return\n resolved = true\n clearTimeout(timer)\n let exitCode = 0\n try {\n const inspect = await exec.inspect()\n exitCode = inspect.ExitCode ?? 0\n }\n catch {\n // If inspect fails after a clean stream end, treat as success\n // — we already received the full output stream.\n }\n resolve({ stdout, stderr, exitCode })\n })\n\n stream.on('error', (err: Error) => {\n if (resolved)\n return\n resolved = true\n clearTimeout(timer)\n resolve({ stdout, stderr: stderr ? `${stderr}\\n${err.message}` : err.message, exitCode: 1 })\n })\n })\n },\n\n async readFile(handle: ExecutionHandle, path: string): Promise<string> {\n const result = await ctx.exec(handle, `cat ${JSON.stringify(path)}`)\n if (result.exitCode !== 0)\n throw new Error(`Failed to read file: ${result.stderr}`)\n return result.stdout\n },\n\n async writeFile(handle: ExecutionHandle, path: string, content: string): Promise<void> {\n const escaped = content.replace(SINGLE_QUOTE_RE, String.raw`'\\''`)\n const result = await ctx.exec(handle, `mkdir -p \"$(dirname ${JSON.stringify(path)})\" && printf '%s' '${escaped}' > ${JSON.stringify(path)}`)\n if (result.exitCode !== 0)\n throw new Error(`Failed to write file: ${result.stderr}`)\n },\n\n async listFiles(handle: ExecutionHandle, path: string): Promise<string[]> {\n const result = await ctx.exec(handle, `ls -1 ${JSON.stringify(path)}`)\n if (result.exitCode !== 0)\n return []\n return result.stdout.trim().split('\\n').filter(Boolean)\n },\n\n async getMappedPort(handle: ExecutionHandle, containerPort: number): Promise<number | null> {\n const ref = containers.get(handle.id)\n if (!ref)\n return null\n\n const info = await ref.container.inspect()\n const bindings = info?.NetworkSettings?.Ports ?? {}\n\n for (const proto of ['tcp', 'udp']) {\n const list = bindings[`${containerPort}/${proto}`]\n if (Array.isArray(list) && list.length > 0 && list[0]?.HostPort) {\n return Number.parseInt(list[0].HostPort, 10)\n }\n }\n\n return null\n },\n\n async destroy(handle: ExecutionHandle): Promise<void> {\n const ref = containers.get(handle.id)\n if (!ref)\n return\n\n try {\n await ref.container.stop({ t: 5 })\n await ref.container.remove({ force: true })\n }\n catch {\n // Container may already be stopped\n }\n\n containers.delete(handle.id)\n },\n }\n\n return ctx\n}\n\n/**\n * Format one {@link ContextMount} as a dockerode `HostConfig.Binds` entry.\n * Supports read-only (`:ro`) and SELinux shared-label (`:z`) options; the two\n * are mutually exclusive (a read-only mount can't also be a shared rw mount).\n */\nfunction formatBindMount(mount: NonNullable<SpawnConfig['mounts']>[number]): string {\n if (!mount.source)\n throw new Error('Docker mount source is required')\n if (!mount.target || !mount.target.startsWith('/'))\n throw new Error(`Docker mount target must be an absolute path: ${mount.target}`)\n if (mount.readonly && mount.shared)\n throw new Error(`Docker mount cannot be both readonly and shared: ${mount.target}`)\n const opts = mount.readonly ? ':ro' : mount.shared ? ':z' : ''\n return `${mount.source}:${mount.target}${opts}`\n}\n\n/** Assemble dockerode `HostConfig.Binds` from the context's `mounts`. */\nexport function buildBindSpecs(mounts: NonNullable<SpawnConfig['mounts']>): string[] {\n return mounts.map(formatBindMount)\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"docker.js","names":[],"sources":["../../src/contexts/docker.ts"],"sourcesContent":["/**\n * Docker execution context.\n *\n * Runs tools inside a Docker container via dockerode.\n * Full isolation with configurable resource limits.\n *\n * Requires `dockerode` as an optional peer dependency.\n */\n\nimport type { Buffer } from 'node:buffer'\nimport type { ContextCapabilities, ExecResult, ExecutionContext, ExecutionHandle, SpawnConfig } from './types'\nimport { alwaysQuote } from '../tools/shell-quote'\n\nconst SINGLE_QUOTE_RE = /'/g\n\n/**\n * dockerode surfaces HTTP errors with a `statusCode`. 304 = container\n * already stopped, 404 = already gone — both are fine during teardown.\n */\nfunction isGoneOrAlreadyStopped(err: unknown): boolean {\n const code = (err as { statusCode?: number } | null)?.statusCode\n return code === 304 || code === 404\n}\n\ninterface ContainerRef {\n handle: ExecutionHandle\n container: any\n docker: any\n}\n\nexport function createDockerContext(config?: SpawnConfig): ExecutionContext {\n let counter = 0\n const containers = new Map<string, ContainerRef>()\n const defaultImage = config?.image ?? 'oven/bun:latest'\n const defaultCwd = config?.cwd ?? '/workspace'\n const defaultEnv = config?.env\n const defaultLimits = config?.limits\n const defaultMounts = config?.mounts ?? []\n const defaultName = config?.name\n\n async function getDockerode() {\n try {\n const Dockerode = (await import('dockerode')).default\n return new Dockerode()\n }\n catch {\n throw new Error('dockerode is required for Docker execution context. Install it with: bun add dockerode')\n }\n }\n\n const ctx: ExecutionContext = {\n type: 'docker',\n\n capabilities: {\n shell: true,\n filesystem: true,\n network: true,\n gpu: false,\n } satisfies ContextCapabilities,\n\n async spawn(overrides?: SpawnConfig): Promise<ExecutionHandle> {\n const docker = await getDockerode()\n const id = `docker-${++counter}`\n const image = overrides?.image ?? defaultImage\n const cwd = overrides?.cwd ?? defaultCwd\n const mounts = [...defaultMounts, ...(overrides?.mounts ?? [])]\n const name = overrides?.name ?? defaultName\n\n // Pull image if not available\n try {\n await docker.getImage(image).inspect()\n }\n catch {\n await new Promise<void>((resolve, reject) => {\n docker.pull(image, (err: Error | null, stream: NodeJS.ReadableStream) => {\n if (err)\n return reject(err)\n docker.modem.followProgress(stream, (err2: Error | null) => {\n err2 ? reject(err2) : resolve()\n })\n })\n })\n }\n\n const limits = { ...defaultLimits, ...overrides?.limits }\n const hostConfig: Record<string, unknown> = {}\n\n if (limits?.memory) {\n hostConfig.Memory = limits.memory * 1024 * 1024\n }\n if (limits?.cpu) {\n hostConfig.NanoCpus = Number.parseFloat(limits.cpu) * 1e9\n }\n\n // Opt-in hardening (all OFF by default — see ContextHardening).\n const hardening = { ...config?.hardening, ...overrides?.hardening }\n if (hardening.dropAllCapabilities)\n hostConfig.CapDrop = ['ALL']\n if (hardening.noNewPrivileges)\n hostConfig.SecurityOpt = ['no-new-privileges']\n if (hardening.readonlyRootfs)\n hostConfig.ReadonlyRootfs = true\n if (hardening.pidsLimit != null)\n hostConfig.PidsLimit = hardening.pidsLimit\n\n const env = { ...defaultEnv, ...overrides?.env }\n\n const bindSpecs = buildBindSpecs(mounts)\n if (bindSpecs.length > 0) {\n hostConfig.Binds = bindSpecs\n }\n\n const portSpec = overrides?.ports ?? config?.ports\n const exposedPorts: Record<string, Record<string, never>> = {}\n const portBindings: Record<string, Array<{ HostPort: string }>> = {}\n\n if (portSpec?.length) {\n for (const p of portSpec) {\n const key = `${p.container}/${p.proto ?? 'tcp'}`\n exposedPorts[key] = {}\n portBindings[key] = [{ HostPort: p.host == null ? '' : String(p.host) }]\n }\n hostConfig.PortBindings = portBindings\n }\n\n const user = overrides?.user ?? config?.user\n const network = overrides?.network ?? config?.network\n if (network) {\n hostConfig.NetworkMode = network\n }\n\n const labels = { ...config?.labels, ...overrides?.labels }\n\n const container = await docker.createContainer({\n // Suffix with a short random token so a crashed run's leftover container\n // (same prefix) never blocks a fresh one with HTTP 409 name conflict.\n ...(name ? { name: `${name}-${counter}-${Math.random().toString(36).slice(2, 8)}` } : {}),\n Image: image,\n Cmd: ['sleep', 'infinity'],\n WorkingDir: cwd,\n Env: Object.entries(env).map(([k, v]) => `${k}=${v}`),\n HostConfig: hostConfig,\n ...(Object.keys(exposedPorts).length ? { ExposedPorts: exposedPorts } : {}),\n ...(user ? { User: user } : {}),\n ...(Object.keys(labels).length ? { Labels: labels } : {}),\n })\n\n try {\n await container.start()\n }\n catch (err) {\n // The container was created but never started — remove it so a\n // failed spawn doesn't leak a stopped container on the daemon.\n await container.remove({ force: true }).catch(() => {})\n throw err\n }\n\n const handle: ExecutionHandle = { id, type: 'docker', cwd }\n containers.set(id, { handle, container, docker })\n\n return handle\n },\n\n async exec(handle: ExecutionHandle, command: string, options?: { cwd?: string, env?: Record<string, string>, timeout?: number }): Promise<ExecResult> {\n const ref = containers.get(handle.id)\n if (!ref)\n throw new Error(`Container ${handle.id} not found`)\n\n const execCwd = options?.cwd ?? handle.cwd\n const env = options?.env\n ? Object.entries(options.env).map(([k, v]) => `${k}=${v}`)\n : []\n\n const timeout = options?.timeout ?? defaultLimits?.timeout ?? 30\n\n const exec = await ref.container.exec({\n // Wrap with coreutils `timeout` so a runaway command is killed\n // server-side too — the host-side timer below only detaches the\n // stream; without this the process would keep running in the\n // container until destroy(). Exec-array form avoids re-quoting the\n // command. `timeout` exits 124 on expiry, matching the host\n // sentinel. (Default image oven/bun is Debian-based → coreutils.)\n Cmd: ['timeout', String(timeout), 'sh', '-c', command],\n WorkingDir: execCwd,\n Env: env,\n AttachStdout: true,\n AttachStderr: true,\n })\n\n const stream = await exec.start({ Detach: false })\n\n return new Promise<ExecResult>((resolve) => {\n let stdout = ''\n let stderr = ''\n let resolved = false\n\n // Docker's exec stream is a multiplexed protocol — a single byte\n // stream that interleaves stdout/stderr frames. `demuxStream`\n // splits the two onto separate writable sinks. Without it, every\n // byte landed on `stdout` and `stderr` was permanently empty.\n const stdoutSink = {\n write(chunk: Buffer | string) {\n stdout += typeof chunk === 'string' ? chunk : chunk.toString('utf-8')\n return true\n },\n end() {},\n on() {},\n once() {},\n emit() { return true },\n }\n const stderrSink = {\n write(chunk: Buffer | string) {\n stderr += typeof chunk === 'string' ? chunk : chunk.toString('utf-8')\n return true\n },\n end() {},\n on() {},\n once() {},\n emit() { return true },\n }\n try {\n ref.docker.modem.demuxStream(stream, stdoutSink, stderrSink)\n }\n catch {\n // Older / different transports may not be multiplexed (TTY mode);\n // fall back to a raw stdout reader so we don't lose output entirely.\n stream.on('data', (chunk: Buffer) => {\n stdout += chunk.toString('utf-8')\n })\n }\n\n // Host-side fallback timer. The server-side `timeout` wrapper is\n // the primary kill mechanism; give it a grace second so the\n // stream-end path (which carries the real exit code) usually wins.\n const timer = setTimeout(() => {\n if (resolved)\n return\n resolved = true\n // Best-effort: detach the stream so we stop accumulating bytes.\n // The server-side `timeout` wrapper kills the process itself.\n try { stream.destroy?.() }\n catch { /* swallow */ }\n resolve({ stdout, stderr: stderr ? `${stderr}\\n[timeout]` : '[timeout]', exitCode: 124 })\n }, timeout * 1000 + 1000)\n\n stream.on('end', async () => {\n if (resolved)\n return\n resolved = true\n clearTimeout(timer)\n let exitCode: number\n let inspectNote = ''\n try {\n const inspect = await exec.inspect()\n // `ExitCode: null` means Docker hasn't recorded an exit yet —\n // the outcome is unknown, not success. Use a sentinel so\n // callers don't mistake it for a clean exit.\n if (inspect.ExitCode == null) {\n exitCode = -1\n inspectNote = '[exit code unavailable: exec still marked running by daemon]'\n }\n else {\n exitCode = inspect.ExitCode\n }\n }\n catch (err) {\n exitCode = -1\n inspectNote = `[exit code unavailable: exec inspect failed: ${(err as Error)?.message ?? String(err)}]`\n }\n resolve({\n stdout,\n stderr: inspectNote ? (stderr ? `${stderr}\\n${inspectNote}` : inspectNote) : stderr,\n exitCode,\n })\n })\n\n stream.on('error', (err: Error) => {\n if (resolved)\n return\n resolved = true\n clearTimeout(timer)\n resolve({ stdout, stderr: stderr ? `${stderr}\\n${err.message}` : err.message, exitCode: 1 })\n })\n })\n },\n\n // Paths are model-supplied — single-quote them (`alwaysQuote`) rather\n // than JSON.stringify: `$(…)` and backticks still expand inside the\n // double quotes JSON produces, which was a command-injection vector.\n async readFile(handle: ExecutionHandle, path: string): Promise<string> {\n const result = await ctx.exec(handle, `cat ${alwaysQuote(path)}`)\n if (result.exitCode !== 0)\n throw new Error(`Failed to read file: ${result.stderr}`)\n return result.stdout\n },\n\n async writeFile(handle: ExecutionHandle, path: string, content: string): Promise<void> {\n const escaped = content.replace(SINGLE_QUOTE_RE, String.raw`'\\''`)\n const result = await ctx.exec(handle, `mkdir -p \"$(dirname ${alwaysQuote(path)})\" && printf '%s' '${escaped}' > ${alwaysQuote(path)}`)\n if (result.exitCode !== 0)\n throw new Error(`Failed to write file: ${result.stderr}`)\n },\n\n async listFiles(handle: ExecutionHandle, path: string): Promise<string[]> {\n const result = await ctx.exec(handle, `ls -1 ${alwaysQuote(path)}`)\n if (result.exitCode !== 0)\n return []\n return result.stdout.trim().split('\\n').filter(Boolean)\n },\n\n async getMappedPort(handle: ExecutionHandle, containerPort: number): Promise<number | null> {\n const ref = containers.get(handle.id)\n if (!ref)\n return null\n\n const info = await ref.container.inspect()\n const bindings = info?.NetworkSettings?.Ports ?? {}\n\n for (const proto of ['tcp', 'udp']) {\n const list = bindings[`${containerPort}/${proto}`]\n if (Array.isArray(list) && list.length > 0 && list[0]?.HostPort) {\n return Number.parseInt(list[0].HostPort, 10)\n }\n }\n\n return null\n },\n\n async destroy(handle: ExecutionHandle): Promise<void> {\n const ref = containers.get(handle.id)\n if (!ref)\n return\n\n try {\n try {\n await ref.container.stop({ t: 5 })\n }\n catch {\n // 304 (already stopped) / 404 (already gone) are expected here.\n // Any other stop failure must not prevent the remove({force})\n // below — force removal also works on running containers.\n }\n try {\n await ref.container.remove({ force: true })\n }\n catch (err) {\n if (!isGoneOrAlreadyStopped(err))\n throw err\n }\n }\n finally {\n containers.delete(handle.id)\n }\n },\n }\n\n return ctx\n}\n\n/**\n * Format one {@link ContextMount} as a dockerode `HostConfig.Binds` entry.\n * Supports read-only (`:ro`) and SELinux shared-label (`:z`) options; the two\n * are mutually exclusive (a read-only mount can't also be a shared rw mount).\n */\nfunction formatBindMount(mount: NonNullable<SpawnConfig['mounts']>[number]): string {\n if (!mount.source)\n throw new Error('Docker mount source is required')\n if (!mount.target || !mount.target.startsWith('/'))\n throw new Error(`Docker mount target must be an absolute path: ${mount.target}`)\n if (mount.readonly && mount.shared)\n throw new Error(`Docker mount cannot be both readonly and shared: ${mount.target}`)\n const opts = mount.readonly ? ':ro' : mount.shared ? ':z' : ''\n return `${mount.source}:${mount.target}${opts}`\n}\n\n/** Assemble dockerode `HostConfig.Binds` from the context's `mounts`. */\nexport function buildBindSpecs(mounts: NonNullable<SpawnConfig['mounts']>): string[] {\n return mounts.map(formatBindMount)\n}\n"],"mappings":"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"}
|