@deepagents/context 4.0.0 → 4.1.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 +19 -14
- package/dist/browser.js +18 -8
- package/dist/browser.js.map +2 -2
- package/dist/index.js +2115 -1565
- package/dist/index.js.map +4 -4
- package/dist/lib/agent.d.ts.map +1 -1
- package/dist/lib/engine.d.ts +3 -3
- package/dist/lib/engine.d.ts.map +1 -1
- package/dist/lib/fragments/message/user.d.ts +16 -14
- package/dist/lib/fragments/message/user.d.ts.map +1 -1
- package/dist/lib/sandbox/apple-container-sandbox-errors.d.ts +44 -0
- package/dist/lib/sandbox/apple-container-sandbox-errors.d.ts.map +1 -0
- package/dist/lib/sandbox/apple-container-sandbox.d.ts +122 -0
- package/dist/lib/sandbox/apple-container-sandbox.d.ts.map +1 -0
- package/dist/lib/sandbox/cli-process.d.ts +24 -0
- package/dist/lib/sandbox/cli-process.d.ts.map +1 -0
- package/dist/lib/sandbox/container-engine.d.ts +149 -0
- package/dist/lib/sandbox/container-engine.d.ts.map +1 -0
- package/dist/lib/sandbox/container-sandbox-errors.d.ts +10 -0
- package/dist/lib/sandbox/container-sandbox-errors.d.ts.map +1 -0
- package/dist/lib/sandbox/container-sandbox.d.ts +90 -0
- package/dist/lib/sandbox/container-sandbox.d.ts.map +1 -0
- package/dist/lib/sandbox/docker-sandbox-errors.d.ts +2 -2
- package/dist/lib/sandbox/docker-sandbox-errors.d.ts.map +1 -1
- package/dist/lib/sandbox/docker-sandbox.d.ts +122 -218
- package/dist/lib/sandbox/docker-sandbox.d.ts.map +1 -1
- package/dist/lib/sandbox/index.d.ts +4 -0
- package/dist/lib/sandbox/index.d.ts.map +1 -1
- package/dist/lib/sandbox/shell-quote.d.ts +2 -2
- package/dist/lib/sandbox/strace/index.d.ts +6 -21
- package/dist/lib/sandbox/strace/index.d.ts.map +1 -1
- package/dist/lib/sandbox/strace/index.js +18 -7
- package/dist/lib/sandbox/strace/index.js.map +2 -2
- package/dist/lib/sandbox/types.d.ts +3 -3
- package/package.json +4 -3
package/dist/lib/agent.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/lib/agent.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/lib/agent.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/engine.d.ts
CHANGED
|
@@ -254,9 +254,9 @@ export declare class ContextEngine {
|
|
|
254
254
|
* Evaluate `target: 'tool-output'` reminders against a tool's raw result and
|
|
255
255
|
* return the (possibly wrapped) output.
|
|
256
256
|
*
|
|
257
|
-
* Called by the agent's tool wrapper right after each `execute()` resolves
|
|
258
|
-
*
|
|
259
|
-
*
|
|
257
|
+
* Called by the agent's tool wrapper right after each `execute()` resolves.
|
|
258
|
+
* The store keeps the wrapped value with a host-only marker; the model-facing
|
|
259
|
+
* projection strips that marker while preserving `result` + `systemReminder`.
|
|
260
260
|
*
|
|
261
261
|
* Returns the output unchanged when no tool-output reminder fires. Without a
|
|
262
262
|
* persisted user message there is no turn context to evaluate against
|
package/dist/lib/engine.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/lib/engine.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EAEvB,KAAK,mBAAmB,EACxB,KAAK,IAAI,EACT,KAAK,SAAS,EAIf,MAAM,IAAI,CAAC;AAGZ,OAAO,EACL,KAAK,cAAc,EAGpB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,eAAe,EAKrB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/lib/engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -69,16 +69,6 @@ export interface ReminderOptions {
|
|
|
69
69
|
asPart?: boolean;
|
|
70
70
|
target?: ReminderTarget;
|
|
71
71
|
}
|
|
72
|
-
/**
|
|
73
|
-
* A resolved reminder ready to bake into a user message. Internal to the save
|
|
74
|
-
* fold — callers declare reminders with {@link reminder} + `engine.set()`.
|
|
75
|
-
*/
|
|
76
|
-
export interface UserReminder {
|
|
77
|
-
text: SyncReminderText;
|
|
78
|
-
asPart: boolean;
|
|
79
|
-
target: 'user';
|
|
80
|
-
metadata?: Record<string, unknown>;
|
|
81
|
-
}
|
|
82
72
|
export interface ConditionalReminder {
|
|
83
73
|
text: ReminderText;
|
|
84
74
|
when: WhenPredicate;
|
|
@@ -126,9 +116,6 @@ export declare function stripReminders(message: UIMessage): UIMessage;
|
|
|
126
116
|
export declare function isRecord(value: unknown): value is Record<string, unknown>;
|
|
127
117
|
export declare function applyInlineReminder(message: UIMessage, value: string): UserReminderMetadata;
|
|
128
118
|
export declare function applyPartReminder(message: UIMessage, value: string): UserReminderMetadata;
|
|
129
|
-
export declare function resolveReminderText(item: {
|
|
130
|
-
text: SyncReminderText;
|
|
131
|
-
}, ctx: ReminderContext): string;
|
|
132
119
|
export declare function resolveReminder(item: {
|
|
133
120
|
text: SyncReminderText;
|
|
134
121
|
metadata?: Record<string, unknown>;
|
|
@@ -153,6 +140,17 @@ export declare function applyReminderToMessage(message: UIMessage, item: {
|
|
|
153
140
|
* metadata bookkeeping.
|
|
154
141
|
*/
|
|
155
142
|
export declare function applyRemindersToToolOutput(output: unknown, texts: string[]): unknown;
|
|
143
|
+
/**
|
|
144
|
+
* Project a tool-output reminder envelope to its model-facing form: run the
|
|
145
|
+
* wrapped tool's own projection over the inner `result` (so a tool's host-only
|
|
146
|
+
* `meta` channel is still stripped), then re-attach the `systemReminder`. The
|
|
147
|
+
* envelope's own host-only `meta` marker is dropped. Returns null for anything
|
|
148
|
+
* that is not one of our envelopes, so the caller can project the raw output.
|
|
149
|
+
*/
|
|
150
|
+
export declare function toToolReminderModelOutput(output: unknown, projectResult: (result: unknown) => unknown): {
|
|
151
|
+
type: 'json';
|
|
152
|
+
value: unknown;
|
|
153
|
+
} | null;
|
|
156
154
|
export declare function mergeReminderMetadata(message: UIMessage, addedReminders: UserReminderMetadata[]): void;
|
|
157
155
|
/**
|
|
158
156
|
* Create a reminder fragment, set on the engine via `engine.set()`. The engine
|
|
@@ -188,7 +186,11 @@ export declare function user(content: string | (UIMessage & {
|
|
|
188
186
|
* `metadata.reminders` so `stripReminders` can reverse it. The save fold is the
|
|
189
187
|
* only caller — user reminders are declared on the engine, not on `user()`.
|
|
190
188
|
*/
|
|
191
|
-
export declare function applyUserRemindersToMessage(message: UIMessage, reminders:
|
|
189
|
+
export declare function applyUserRemindersToMessage(message: UIMessage, reminders: Array<{
|
|
190
|
+
text: SyncReminderText;
|
|
191
|
+
asPart: boolean;
|
|
192
|
+
metadata?: Record<string, unknown>;
|
|
193
|
+
}>): void;
|
|
192
194
|
/**
|
|
193
195
|
* Build the hidden synthetic user message injected mid-loop for steer reminders.
|
|
194
196
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../../src/lib/fragments/message/user.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EAEvB,KAAK,SAAS,EAGf,MAAM,IAAI,CAAC;AAEZ,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,eAAe,EAErB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG3D,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,SAAS,CAAC;CAClC;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,MAAM,gBAAgB,GACxB,MAAM,GACN,CAAC,CAAC,GAAG,EAAE,eAAe,KAAK,MAAM,GAAG,kBAAkB,CAAC,CAAC;AAE5D,MAAM,MAAM,YAAY,GACpB,MAAM,GACN,CAAC,CACC,GAAG,EAAE,eAAe,KACjB,MAAM,GAAG,kBAAkB,GAAG,OAAO,CAAC,MAAM,GAAG,kBAAkB,CAAC,CAAC,CAAC;AAE7E,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,cAAc,EAAE,SAAS,CAAC;IAC1B,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB,CAAC,EAAE,SAAS,CAAC;IACjC,qBAAqB,CAAC,EAAE,SAAS,EAAE,CAAC;IACpC;;;;OAIG;IACH,YAAY,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACnC;;;;OAIG;IACH,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC7B;AAED;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,IAAI,CAC5B,WAAW,EACT,SAAS,GACT,gBAAgB,GAChB,sBAAsB,GACtB,uBAAuB,CAC1B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,WAAW,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAE7E,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,aAAa,GAAG,OAAO,CAAC;AAE9D,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,gBAAgB,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB;AAED
|
|
1
|
+
{"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../../src/lib/fragments/message/user.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { ContainerSandboxError } from './container-sandbox-errors.ts';
|
|
2
|
+
export declare class AppleContainerSandboxError extends ContainerSandboxError {
|
|
3
|
+
constructor(message: string, containerId?: string);
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Raised when the `container` apiserver is not running. Unlike Docker's
|
|
7
|
+
* always-on daemon, Apple's service is started on demand with
|
|
8
|
+
* `container system start` (and needs a guest kernel configured via
|
|
9
|
+
* `container system kernel set --recommended`).
|
|
10
|
+
*/
|
|
11
|
+
export declare class ContainerServiceNotRunningError extends AppleContainerSandboxError {
|
|
12
|
+
constructor();
|
|
13
|
+
}
|
|
14
|
+
export declare class AppleContainerCreationError extends AppleContainerSandboxError {
|
|
15
|
+
readonly image: string;
|
|
16
|
+
cause?: Error;
|
|
17
|
+
constructor(message: string, image: string, cause?: Error);
|
|
18
|
+
}
|
|
19
|
+
export declare class AppleContainerImageBuildError extends AppleContainerSandboxError {
|
|
20
|
+
readonly stderr: string;
|
|
21
|
+
constructor(stderr: string);
|
|
22
|
+
}
|
|
23
|
+
export declare class AppleContainerVolumePathError extends AppleContainerSandboxError {
|
|
24
|
+
readonly source: string;
|
|
25
|
+
readonly containerPath: string;
|
|
26
|
+
readonly reason: string;
|
|
27
|
+
constructor(source: string, containerPath: string, reason: string);
|
|
28
|
+
}
|
|
29
|
+
export declare class AppleContainerVolumeInspectError extends AppleContainerSandboxError {
|
|
30
|
+
readonly volume: string;
|
|
31
|
+
readonly reason: string;
|
|
32
|
+
constructor(volume: string, reason: string);
|
|
33
|
+
}
|
|
34
|
+
export declare class AppleContainerVolumeCreateError extends AppleContainerSandboxError {
|
|
35
|
+
readonly volume: string;
|
|
36
|
+
readonly reason: string;
|
|
37
|
+
constructor(volume: string, reason: string);
|
|
38
|
+
}
|
|
39
|
+
export declare class AppleContainerVolumeRemoveError extends AppleContainerSandboxError {
|
|
40
|
+
readonly volume: string;
|
|
41
|
+
readonly reason: string;
|
|
42
|
+
constructor(volume: string, reason: string);
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=apple-container-sandbox-errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apple-container-sandbox-errors.d.ts","sourceRoot":"","sources":["../../../src/lib/sandbox/apple-container-sandbox-errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,qBAAa,0BAA2B,SAAQ,qBAAqB;gBACvD,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM;CAIlD;AAED;;;;;GAKG;AACH,qBAAa,+BAAgC,SAAQ,0BAA0B;;CAQ9E;AAED,qBAAa,2BAA4B,SAAQ,0BAA0B;IACzE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,KAAK,CAAC;gBAEX,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAM1D;AAED,qBAAa,6BAA8B,SAAQ,0BAA0B;IAC3E,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEZ,MAAM,EAAE,MAAM;CAK3B;AAED,qBAAa,6BAA8B,SAAQ,0BAA0B;IAC3E,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEZ,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CASlE;AAED,qBAAa,gCAAiC,SAAQ,0BAA0B;IAC9E,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEZ,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAM3C;AAED,qBAAa,+BAAgC,SAAQ,0BAA0B;IAC7E,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEZ,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAM3C;AAED,qBAAa,+BAAgC,SAAQ,0BAA0B;IAC7E,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEZ,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAM3C"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { type Installer } from './installers/installer.ts';
|
|
2
|
+
import type { DisposableSandbox } from './types.ts';
|
|
3
|
+
export { AppleContainerCreationError, AppleContainerImageBuildError, AppleContainerSandboxError, AppleContainerVolumeCreateError, AppleContainerVolumeInspectError, AppleContainerVolumePathError, AppleContainerVolumeRemoveError, ContainerServiceNotRunningError, } from './apple-container-sandbox-errors.ts';
|
|
4
|
+
export interface AppleContainerBindVolume {
|
|
5
|
+
type: 'bind';
|
|
6
|
+
hostPath: string;
|
|
7
|
+
containerPath: string;
|
|
8
|
+
/** Default: `true`. */
|
|
9
|
+
readOnly?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export interface AppleContainerNamedVolume {
|
|
12
|
+
type: 'volume';
|
|
13
|
+
name: string;
|
|
14
|
+
containerPath: string;
|
|
15
|
+
/** Default: `true`. */
|
|
16
|
+
readOnly?: boolean;
|
|
17
|
+
/** Default: `'external'`. */
|
|
18
|
+
lifecycle?: 'external' | 'managed';
|
|
19
|
+
/** Default: `true` for managed volumes created by this sandbox. */
|
|
20
|
+
removeOnDispose?: boolean;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Apple `container` volumes are always local ext4 disk images — there is no
|
|
24
|
+
* pluggable driver model (unlike Docker's `--driver`). Back a volume with
|
|
25
|
+
* remote storage by bind-mounting a host directory instead.
|
|
26
|
+
*/
|
|
27
|
+
export type AppleContainerVolume = AppleContainerBindVolume | AppleContainerNamedVolume;
|
|
28
|
+
export interface AppleContainerResources {
|
|
29
|
+
/** `--memory` — e.g. `'1024M'`, `'2G'` (MB granularity). */
|
|
30
|
+
memory?: string;
|
|
31
|
+
/** `--cpus` — number of CPUs. */
|
|
32
|
+
cpus?: number;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Stable identity suffix for the container. When provided, the container is
|
|
36
|
+
* named `sandbox-<name>` instead of a randomized `sandbox-<8hex>`. If a
|
|
37
|
+
* container with that name already exists, the sandbox attaches to it:
|
|
38
|
+
* installers, volume preparation, and env are skipped. If it exists but is
|
|
39
|
+
* stopped, it is started first. Otherwise it is created fresh.
|
|
40
|
+
*
|
|
41
|
+
* This is get-or-create for SEQUENTIAL callers. Creating the same name from
|
|
42
|
+
* two callers concurrently is not supported — the `container` runtime races on
|
|
43
|
+
* duplicate-name `run` (it can leave a container mid-transition and fail with
|
|
44
|
+
* an internal error); serialize creation of a given name.
|
|
45
|
+
*
|
|
46
|
+
* Must match `/^[A-Za-z0-9_.-]+$/`.
|
|
47
|
+
*/
|
|
48
|
+
type StableContainerName = string;
|
|
49
|
+
export interface AppleContainerCommonOptions {
|
|
50
|
+
volumes?: AppleContainerVolume[];
|
|
51
|
+
resources?: AppleContainerResources;
|
|
52
|
+
env?: Record<string, string>;
|
|
53
|
+
name?: StableContainerName;
|
|
54
|
+
/**
|
|
55
|
+
* Args appended after the image at `container run` time.
|
|
56
|
+
* - `undefined` (default): `['tail', '-f', '/dev/null']` keep-alive so a bare
|
|
57
|
+
* image stays up for installers and `executeCommand`.
|
|
58
|
+
* - `[]` or `null`: nothing appended; the image's own `CMD`/`ENTRYPOINT` runs.
|
|
59
|
+
* - A non-empty array: appended verbatim, overriding the image command.
|
|
60
|
+
*/
|
|
61
|
+
command?: readonly string[] | null;
|
|
62
|
+
/**
|
|
63
|
+
* `-a, --arch` — `'arm64'` (native on Apple silicon) or `'amd64'` (emulated
|
|
64
|
+
* via Rosetta). Replaces the Docker backend's `--platform`.
|
|
65
|
+
*/
|
|
66
|
+
arch?: 'arm64' | 'amd64';
|
|
67
|
+
}
|
|
68
|
+
export interface AppleContainerRuntimeOptions extends AppleContainerCommonOptions {
|
|
69
|
+
/** Image to run (default: `'docker.io/library/alpine:latest'`). */
|
|
70
|
+
image?: string;
|
|
71
|
+
/**
|
|
72
|
+
* Ordered installers run after the container starts. Use `pkg([...])`,
|
|
73
|
+
* `urlBinary({...})`, `npm(...)`, `pip(...)`, `githubRelease({...})`, or any
|
|
74
|
+
* custom `Installer` — the same installers the Docker backend accepts.
|
|
75
|
+
*/
|
|
76
|
+
installers?: Installer[];
|
|
77
|
+
}
|
|
78
|
+
export interface AppleContainerfileOptions extends AppleContainerCommonOptions {
|
|
79
|
+
/** Inline Dockerfile content (contains `\n`) or a path to one. */
|
|
80
|
+
dockerfile: string;
|
|
81
|
+
/** Build context directory (default: `'.'`). */
|
|
82
|
+
context?: string;
|
|
83
|
+
/** Stream `container build` output instead of buffering it. Default `false`. */
|
|
84
|
+
showBuildLogs?: boolean;
|
|
85
|
+
}
|
|
86
|
+
export type AppleContainerSandboxOptions = AppleContainerRuntimeOptions | AppleContainerfileOptions;
|
|
87
|
+
export declare function isAppleContainerfileOptions(opts: AppleContainerSandboxOptions): opts is AppleContainerfileOptions;
|
|
88
|
+
/**
|
|
89
|
+
* Create a sandbox backed by Apple's `container` CLI — Linux containers run as
|
|
90
|
+
* lightweight per-container virtual machines on Apple silicon (macOS 26+).
|
|
91
|
+
*
|
|
92
|
+
* Requires the `container` service to be running (`container system start`)
|
|
93
|
+
* with a guest kernel configured (`container system kernel set --recommended`).
|
|
94
|
+
*
|
|
95
|
+
* @example Runtime with installers
|
|
96
|
+
* ```ts
|
|
97
|
+
* import { createAppleContainerSandbox, pkg } from '@deepagents/context';
|
|
98
|
+
*
|
|
99
|
+
* await using sandbox = await createAppleContainerSandbox({
|
|
100
|
+
* image: 'docker.io/library/alpine:latest',
|
|
101
|
+
* installers: [pkg(['curl', 'jq'])],
|
|
102
|
+
* });
|
|
103
|
+
* const { stdout } = await sandbox.executeCommand('echo hello');
|
|
104
|
+
* ```
|
|
105
|
+
*
|
|
106
|
+
* @example Dockerfile
|
|
107
|
+
* ```ts
|
|
108
|
+
* await using sandbox = await createAppleContainerSandbox({
|
|
109
|
+
* dockerfile: `
|
|
110
|
+
* FROM docker.io/library/alpine:latest
|
|
111
|
+
* RUN apk add --no-cache curl
|
|
112
|
+
* `,
|
|
113
|
+
* });
|
|
114
|
+
* ```
|
|
115
|
+
*/
|
|
116
|
+
export declare function createAppleContainerSandbox(options?: AppleContainerSandboxOptions): Promise<DisposableSandbox>;
|
|
117
|
+
/**
|
|
118
|
+
* Run a function with an Apple container sandbox; the container is disposed on
|
|
119
|
+
* completion (success or thrown).
|
|
120
|
+
*/
|
|
121
|
+
export declare function useAppleContainerSandbox<T>(options: AppleContainerSandboxOptions, fn: (sandbox: DisposableSandbox) => Promise<T>): Promise<T>;
|
|
122
|
+
//# sourceMappingURL=apple-container-sandbox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apple-container-sandbox.d.ts","sourceRoot":"","sources":["../../../src/lib/sandbox/apple-container-sandbox.ts"],"names":[],"mappings":"AAwBA,OAAO,EACL,KAAK,SAAS,EAIf,MAAM,2BAA2B,CAAC;AAEnC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,OAAO,EACL,2BAA2B,EAC3B,6BAA6B,EAC7B,0BAA0B,EAC1B,+BAA+B,EAC/B,gCAAgC,EAChC,6BAA6B,EAC7B,+BAA+B,EAC/B,+BAA+B,GAChC,MAAM,qCAAqC,CAAC;AAO7C,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,uBAAuB;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,uBAAuB;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IACnC,mEAAmE;IACnE,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAC5B,wBAAwB,GACxB,yBAAyB,CAAC;AAE9B,MAAM,WAAW,uBAAuB;IACtC,4DAA4D;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iCAAiC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;GAaG;AACH,KAAK,mBAAmB,GAAG,MAAM,CAAC;AAElC,MAAM,WAAW,2BAA2B;IAC1C,OAAO,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACjC,SAAS,CAAC,EAAE,uBAAuB,CAAC;IACpC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,IAAI,CAAC,EAAE,mBAAmB,CAAC;IAC3B;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;IACnC;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,4BAA6B,SAAQ,2BAA2B;IAC/E,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,yBAA0B,SAAQ,2BAA2B;IAC5E,kEAAkE;IAClE,UAAU,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gFAAgF;IAChF,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,MAAM,4BAA4B,GACpC,4BAA4B,GAC5B,yBAAyB,CAAC;AAE9B,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,4BAA4B,GACjC,IAAI,IAAI,yBAAyB,CAEnC;AA6WD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAsB,2BAA2B,CAC/C,OAAO,GAAE,4BAAiC,GACzC,OAAO,CAAC,iBAAiB,CAAC,CAa5B;AAED;;;GAGG;AACH,wBAAsB,wBAAwB,CAAC,CAAC,EAC9C,OAAO,EAAE,4BAA4B,EACrC,EAAE,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,CAAC,CAAC,GAC7C,OAAO,CAAC,CAAC,CAAC,CAOZ"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { type ChildProcess } from 'node:child_process';
|
|
2
|
+
import type { SandboxProcess } from './types.ts';
|
|
3
|
+
/**
|
|
4
|
+
* Bridge a Node `child_process` — a `docker exec` / `container exec` child —
|
|
5
|
+
* into the backend-neutral {@link SandboxProcess} shape: web `ReadableStream`
|
|
6
|
+
* stdio plus an `exit` promise that resolves with the child's exit code.
|
|
7
|
+
*
|
|
8
|
+
* Aborting `abortSignal` sends `SIGKILL`. Both the `docker` and Apple
|
|
9
|
+
* `container` CLIs trap `SIGTERM` in their client wrapper and exit cleanly with
|
|
10
|
+
* code 0, so `SIGTERM` would look like a successful run; only `SIGKILL`
|
|
11
|
+
* reliably tears the child down and surfaces as a non-success exit.
|
|
12
|
+
*/
|
|
13
|
+
export declare function toSandboxProcess(child: ChildProcess, abortSignal: AbortSignal | undefined): SandboxProcess;
|
|
14
|
+
/**
|
|
15
|
+
* Build the shell commands that decode `content` into `path`, for sandbox
|
|
16
|
+
* backends whose only channel is `executeCommand` (no native file copy). The
|
|
17
|
+
* payload is split into independently-decodable base64 chunks so large files
|
|
18
|
+
* don't blow ARG_MAX, and every argument is shell-quoted. Always returns at
|
|
19
|
+
* least one command (an empty file is created by the final fallback).
|
|
20
|
+
*/
|
|
21
|
+
export declare function base64WriteCommands(path: string, content: string | Buffer): string[];
|
|
22
|
+
/** Build the command that base64-encodes `path` for reading back to the host. */
|
|
23
|
+
export declare function base64ReadCommand(path: string): string;
|
|
24
|
+
//# sourceMappingURL=cli-process.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-process.d.ts","sourceRoot":"","sources":["../../../src/lib/sandbox/cli-process.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIvD,OAAO,KAAK,EAAY,cAAc,EAAE,MAAM,YAAY,CAAC;AAE3D;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,YAAY,EACnB,WAAW,EAAE,WAAW,GAAG,SAAS,GACnC,cAAc,CAoChB;AASD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GAAG,MAAM,GACvB,MAAM,EAAE,CAeV;AAED,iFAAiF;AACjF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEtD"}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import type { ContainerSandboxError } from './container-sandbox-errors.ts';
|
|
2
|
+
import type { InstallerContext } from './installers/installer.ts';
|
|
3
|
+
export interface ContainerErrorFactory {
|
|
4
|
+
serviceNotAvailable(): ContainerSandboxError;
|
|
5
|
+
creation(message: string, image: string, cause?: Error): ContainerSandboxError;
|
|
6
|
+
generic(message: string, containerId?: string): ContainerSandboxError;
|
|
7
|
+
volumePath(source: string, containerPath: string, reason: string): ContainerSandboxError;
|
|
8
|
+
volumeInspect(name: string, reason: string): ContainerSandboxError;
|
|
9
|
+
volumeCreate(name: string, reason: string): ContainerSandboxError;
|
|
10
|
+
volumeRemove(name: string, reason: string): ContainerSandboxError;
|
|
11
|
+
}
|
|
12
|
+
/** Resolved build request handed to {@link ContainerEngine.buildImage}. */
|
|
13
|
+
export interface ImageBuildSpec {
|
|
14
|
+
/** Precomputed content-hash image tag the engine must build. */
|
|
15
|
+
tag: string;
|
|
16
|
+
/** Inline Dockerfile content (contains `\n`) or a path to one. */
|
|
17
|
+
dockerfile: string;
|
|
18
|
+
/** Build context directory. */
|
|
19
|
+
context: string;
|
|
20
|
+
/** Stream build output to the parent stdio instead of buffering it. */
|
|
21
|
+
showBuildLogs: boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Platform (Docker `--platform`) / arch (Apple `--arch`). Already folded into
|
|
24
|
+
* `tag` by the strategy; the engine re-reads it for the build flag.
|
|
25
|
+
*/
|
|
26
|
+
identity?: string;
|
|
27
|
+
}
|
|
28
|
+
export interface SandboxBindVolume {
|
|
29
|
+
type: 'bind';
|
|
30
|
+
hostPath: string;
|
|
31
|
+
containerPath: string;
|
|
32
|
+
/** Default: `true`. */
|
|
33
|
+
readOnly?: boolean;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* A named volume mount. The superset shape across engines — `driver`/
|
|
37
|
+
* `driverOptions`/`subPath`/`noCopy` are read only by engines that support them
|
|
38
|
+
* (Docker); engines without a pluggable driver model (Apple) ignore them.
|
|
39
|
+
*/
|
|
40
|
+
export interface SandboxNamedVolume {
|
|
41
|
+
type: 'volume';
|
|
42
|
+
name: string;
|
|
43
|
+
containerPath: string;
|
|
44
|
+
/** Default: `true`. */
|
|
45
|
+
readOnly?: boolean;
|
|
46
|
+
/** Default: `'external'`. */
|
|
47
|
+
lifecycle?: 'external' | 'managed';
|
|
48
|
+
/** Volume driver used when `lifecycle` is `'managed'` (Docker `--driver`). */
|
|
49
|
+
driver?: string;
|
|
50
|
+
/** Volume driver options used when `lifecycle` is `'managed'`. */
|
|
51
|
+
driverOptions?: Record<string, string>;
|
|
52
|
+
subPath?: string;
|
|
53
|
+
noCopy?: boolean;
|
|
54
|
+
/** Default: `true` for managed volumes created by this sandbox. */
|
|
55
|
+
removeOnDispose?: boolean;
|
|
56
|
+
}
|
|
57
|
+
export type SandboxVolume = SandboxBindVolume | SandboxNamedVolume;
|
|
58
|
+
/** Resource limits common to every engine. Engines extend with their own knobs. */
|
|
59
|
+
export interface SandboxResources {
|
|
60
|
+
/** `--memory` — e.g. `'1g'`, `'1024M'`. */
|
|
61
|
+
memory?: string;
|
|
62
|
+
/** `--cpus` — number of CPUs. */
|
|
63
|
+
cpus?: number;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* The options the shared skeleton is allowed to read. Each engine extends this
|
|
67
|
+
* with its own dialect knobs (Docker's security/network/…; Apple's `arch`),
|
|
68
|
+
* which only its own engine methods see — the skeleton is typed to this common
|
|
69
|
+
* subset and physically cannot read them.
|
|
70
|
+
*/
|
|
71
|
+
export interface CommonSandboxOptions {
|
|
72
|
+
volumes?: SandboxVolume[];
|
|
73
|
+
resources?: SandboxResources;
|
|
74
|
+
env?: Record<string, string>;
|
|
75
|
+
/**
|
|
76
|
+
* Stable identity suffix. When provided, the container is named
|
|
77
|
+
* `sandbox-<name>` instead of a randomized `sandbox-<8hex>`. If a container
|
|
78
|
+
* with that name already exists, the sandbox attaches to it (installers,
|
|
79
|
+
* volume preparation, and env are skipped); if it exists but is stopped, it is
|
|
80
|
+
* started first; otherwise it is created fresh. Must match `/^[A-Za-z0-9_.-]+$/`.
|
|
81
|
+
*
|
|
82
|
+
* Warning: `dispose()` stops (and `--rm` removes) the container regardless of
|
|
83
|
+
* whether it was created or attached to. If two callers in the same process
|
|
84
|
+
* share a name, the first `dispose()` destroys the container the other is
|
|
85
|
+
* still using.
|
|
86
|
+
*/
|
|
87
|
+
name?: string;
|
|
88
|
+
/**
|
|
89
|
+
* Args appended after the image at run time.
|
|
90
|
+
* - `undefined` (default): `['tail', '-f', '/dev/null']` keep-alive so a bare
|
|
91
|
+
* image stays up for installers and `executeCommand`.
|
|
92
|
+
* - `[]` or `null`: nothing is appended; the image's own `CMD`/`ENTRYPOINT`
|
|
93
|
+
* runs as declared.
|
|
94
|
+
* - A non-empty array: appended verbatim, overriding the image `CMD`.
|
|
95
|
+
*/
|
|
96
|
+
command?: readonly string[] | null;
|
|
97
|
+
/** Working directory inside the container (default `'/workspace'`). */
|
|
98
|
+
workdir?: string;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* The CLI dialect seam. Captures everything that differs between container
|
|
102
|
+
* runtimes (binary, run/exec arg flags, status parsing, error-string detection,
|
|
103
|
+
* workdir bootstrap, image build) so one shared strategy can orchestrate any
|
|
104
|
+
* engine. Generic over `TOpts` so each engine reads its own dialect-specific run
|
|
105
|
+
* knobs off the resolved options while the skeleton only ever supplies the
|
|
106
|
+
* common subset. Implemented by `dockerEngine` (docker-sandbox.ts) and
|
|
107
|
+
* `appleEngine` (apple-container-sandbox.ts).
|
|
108
|
+
*/
|
|
109
|
+
export interface ContainerEngine<TOpts extends CommonSandboxOptions = CommonSandboxOptions> {
|
|
110
|
+
readonly cli: string;
|
|
111
|
+
/**
|
|
112
|
+
* Build the `<cli> run` argv from resolved options. The shared skeleton
|
|
113
|
+
* supplies `image`, `containerId`, and `workdir`; every other flag is the
|
|
114
|
+
* engine's own dialect read off `opts`.
|
|
115
|
+
*/
|
|
116
|
+
runArgs(image: string, containerId: string, opts: TOpts, workdir: string): string[];
|
|
117
|
+
execArgs(containerId: string, command: string, options?: {
|
|
118
|
+
cwd?: string;
|
|
119
|
+
env?: Record<string, string>;
|
|
120
|
+
}): string[];
|
|
121
|
+
inspectArgs(containerId: string): string[];
|
|
122
|
+
mountArg(volume: SandboxVolume): string;
|
|
123
|
+
parseStatus(status: string): 'running' | 'stopped' | 'absent';
|
|
124
|
+
volumeCreateArgs(volume: SandboxNamedVolume): string[];
|
|
125
|
+
errorMessage(error: unknown): string;
|
|
126
|
+
isServiceDown(message: string): boolean;
|
|
127
|
+
isMissingContainer(message: string): boolean;
|
|
128
|
+
isMissingVolume(message: string): boolean;
|
|
129
|
+
isNameConflict(message: string): boolean;
|
|
130
|
+
/**
|
|
131
|
+
* Ensure `workdir` exists before any `exec` runs in it. Docker's `run -w`
|
|
132
|
+
* auto-creates the workdir (no-op here); Apple's per-exec `--cwd` fails on a
|
|
133
|
+
* missing dir, so its engine bootstraps it with `mkdir -p`.
|
|
134
|
+
*/
|
|
135
|
+
ensureWorkdir(containerId: string, workdir: string): Promise<void>;
|
|
136
|
+
/** Image used when no `image` option is given. */
|
|
137
|
+
readonly defaultImage: string;
|
|
138
|
+
/**
|
|
139
|
+
* Build the installer context that drives this engine's post-start installer
|
|
140
|
+
* phase (`pkg`/`npm`/`pip`/…) over the engine's own `exec`.
|
|
141
|
+
*/
|
|
142
|
+
createInstallerContext(containerId: string, image: string): InstallerContext;
|
|
143
|
+
/** Whether image `tag` already exists locally (so the build can be skipped). */
|
|
144
|
+
imageExists(tag: string): Promise<boolean>;
|
|
145
|
+
/** Build the image described by `spec`. The engine owns the build dialect. */
|
|
146
|
+
buildImage(spec: ImageBuildSpec): Promise<void>;
|
|
147
|
+
readonly errors: ContainerErrorFactory;
|
|
148
|
+
}
|
|
149
|
+
//# sourceMappingURL=container-engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"container-engine.d.ts","sourceRoot":"","sources":["../../../src/lib/sandbox/container-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared base for every container-sandbox error across engines (Docker, Apple
|
|
3
|
+
* `container`). Catch this to handle any backend's failure uniformly; catch a
|
|
4
|
+
* specific subclass (e.g. {@link DockerSandboxError}) for engine-specific cases.
|
|
5
|
+
*/
|
|
6
|
+
export declare class ContainerSandboxError extends Error {
|
|
7
|
+
readonly containerId?: string;
|
|
8
|
+
constructor(message: string, containerId?: string);
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=container-sandbox-errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"container-sandbox-errors.d.ts","sourceRoot":"","sources":["../../../src/lib/sandbox/container-sandbox-errors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;gBAElB,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM;CAKlD"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { type CommandResult } from 'bash-tool';
|
|
2
|
+
import type { CommonSandboxOptions, ContainerEngine, SandboxVolume } from './container-engine.ts';
|
|
3
|
+
import { type Installer } from './installers/installer.ts';
|
|
4
|
+
import type { DisposableSandbox, ExecuteCommandOptions, SandboxProcess, SpawnOptions } from './types.ts';
|
|
5
|
+
interface StrategyContext {
|
|
6
|
+
containerId: string;
|
|
7
|
+
image: string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Template Method base for sandbox creation strategies, shared across engines.
|
|
11
|
+
* Subclasses choose the image and define post-start configuration; the base owns
|
|
12
|
+
* container lifecycle, exec, and file I/O, delegating every CLI dialect to the
|
|
13
|
+
* injected {@link ContainerEngine}. Typed to {@link CommonSandboxOptions} so the
|
|
14
|
+
* skeleton can never read an engine-only knob.
|
|
15
|
+
*/
|
|
16
|
+
export declare abstract class ContainerSandboxStrategy<TOpts extends CommonSandboxOptions = CommonSandboxOptions> {
|
|
17
|
+
protected context: StrategyContext;
|
|
18
|
+
protected engine: ContainerEngine<TOpts>;
|
|
19
|
+
protected opts: TOpts;
|
|
20
|
+
protected volumes: SandboxVolume[];
|
|
21
|
+
protected name?: string;
|
|
22
|
+
protected workdir: string;
|
|
23
|
+
private createdVolumes;
|
|
24
|
+
constructor(opts: TOpts, engine: ContainerEngine<TOpts>);
|
|
25
|
+
create(): Promise<DisposableSandbox>;
|
|
26
|
+
private namedContainerId;
|
|
27
|
+
protected defaultContainerId(): string;
|
|
28
|
+
protected acquireContainer(image: string): Promise<{
|
|
29
|
+
containerId: string;
|
|
30
|
+
attached: boolean;
|
|
31
|
+
}>;
|
|
32
|
+
private startStoppedContainer;
|
|
33
|
+
protected inspectContainer(containerId: string): Promise<'running' | 'stopped' | 'absent'>;
|
|
34
|
+
protected prepareVolumes(): Promise<void>;
|
|
35
|
+
protected validateVolumes(): void;
|
|
36
|
+
private validateMountValue;
|
|
37
|
+
protected buildRunArgs(image: string, containerId: string): string[];
|
|
38
|
+
private inspectVolume;
|
|
39
|
+
private volumeExists;
|
|
40
|
+
private createVolume;
|
|
41
|
+
private cleanupCreatedVolumes;
|
|
42
|
+
private cleanupCreatedVolumesAfterFailure;
|
|
43
|
+
private engineErrorMessage;
|
|
44
|
+
private isServiceDown;
|
|
45
|
+
protected startContainer(image: string, containerId: string): Promise<void>;
|
|
46
|
+
protected stopContainer(containerId: string): Promise<void>;
|
|
47
|
+
protected exec(command: string, options?: ExecuteCommandOptions): Promise<CommandResult>;
|
|
48
|
+
protected spawnProcess(command: string, options?: SpawnOptions): SandboxProcess;
|
|
49
|
+
protected createSandboxMethods(): DisposableSandbox;
|
|
50
|
+
protected abstract getImage(): Promise<string>;
|
|
51
|
+
protected abstract configure(): Promise<void>;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Starts a vanilla image and runs the supplied installers in order. Shared by
|
|
55
|
+
* both engines — the post-start installer context comes from
|
|
56
|
+
* `engine.createInstallerContext`, so the same class drives `docker exec` and
|
|
57
|
+
* `container exec`.
|
|
58
|
+
*/
|
|
59
|
+
export declare class RuntimeStrategy<TOpts extends CommonSandboxOptions = CommonSandboxOptions> extends ContainerSandboxStrategy<TOpts> {
|
|
60
|
+
private image;
|
|
61
|
+
private installers;
|
|
62
|
+
constructor(opts: TOpts, engine: ContainerEngine<TOpts>, mode: {
|
|
63
|
+
image: string;
|
|
64
|
+
installers: Installer[];
|
|
65
|
+
});
|
|
66
|
+
protected getImage(): Promise<string>;
|
|
67
|
+
protected configure(): Promise<void>;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Builds a custom image from a Dockerfile (content-hash caching), delegating the
|
|
71
|
+
* build invocation to `engine.buildImage`. Shared by both engines — the tag
|
|
72
|
+
* computation and existence check are common; only the build dialect differs.
|
|
73
|
+
* Runs no post-start configuration — the Dockerfile defines the image.
|
|
74
|
+
*/
|
|
75
|
+
export declare class ContainerfileStrategy<TOpts extends CommonSandboxOptions = CommonSandboxOptions> extends ContainerSandboxStrategy<TOpts> {
|
|
76
|
+
private dockerfile;
|
|
77
|
+
private dockerContext;
|
|
78
|
+
private showBuildLogs;
|
|
79
|
+
private identity?;
|
|
80
|
+
constructor(opts: TOpts, engine: ContainerEngine<TOpts>, mode: {
|
|
81
|
+
dockerfile: string;
|
|
82
|
+
context: string;
|
|
83
|
+
showBuildLogs: boolean;
|
|
84
|
+
identity?: string;
|
|
85
|
+
});
|
|
86
|
+
protected getImage(): Promise<string>;
|
|
87
|
+
protected configure(): Promise<void>;
|
|
88
|
+
}
|
|
89
|
+
export {};
|
|
90
|
+
//# sourceMappingURL=container-sandbox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"container-sandbox.d.ts","sourceRoot":"","sources":["../../../src/lib/sandbox/container-sandbox.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import { ContainerSandboxError } from './container-sandbox-errors.ts';
|
|
2
|
+
export declare class DockerSandboxError extends ContainerSandboxError {
|
|
3
3
|
constructor(message: string, containerId?: string);
|
|
4
4
|
}
|
|
5
5
|
export declare class DockerNotAvailableError extends DockerSandboxError {
|