@procedures/docker 0.0.0-stage → 0.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/CHANGELOG.md +5 -0
- package/LICENSE +21 -0
- package/README.md +752 -2
- package/dist/.tsbuildinfo +1 -0
- package/dist/index.d.ts +35 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +35 -0
- package/dist/index.js.map +1 -0
- package/dist/module.d.ts +16 -0
- package/dist/module.d.ts.map +1 -0
- package/dist/module.js +183 -0
- package/dist/module.js.map +1 -0
- package/dist/procedures/docker/build.d.ts +12 -0
- package/dist/procedures/docker/build.d.ts.map +1 -0
- package/dist/procedures/docker/build.js +34 -0
- package/dist/procedures/docker/build.js.map +1 -0
- package/dist/procedures/docker/down.d.ts +12 -0
- package/dist/procedures/docker/down.d.ts.map +1 -0
- package/dist/procedures/docker/down.js +25 -0
- package/dist/procedures/docker/down.js.map +1 -0
- package/dist/procedures/docker/exec.d.ts +12 -0
- package/dist/procedures/docker/exec.d.ts.map +1 -0
- package/dist/procedures/docker/exec.js +30 -0
- package/dist/procedures/docker/exec.js.map +1 -0
- package/dist/procedures/docker/index.d.ts +11 -0
- package/dist/procedures/docker/index.d.ts.map +1 -0
- package/dist/procedures/docker/index.js +11 -0
- package/dist/procedures/docker/index.js.map +1 -0
- package/dist/procedures/docker/logs.d.ts +16 -0
- package/dist/procedures/docker/logs.d.ts.map +1 -0
- package/dist/procedures/docker/logs.js +40 -0
- package/dist/procedures/docker/logs.js.map +1 -0
- package/dist/procedures/docker/ps.d.ts +12 -0
- package/dist/procedures/docker/ps.d.ts.map +1 -0
- package/dist/procedures/docker/ps.js +22 -0
- package/dist/procedures/docker/ps.js.map +1 -0
- package/dist/procedures/docker/pull.d.ts +12 -0
- package/dist/procedures/docker/pull.d.ts.map +1 -0
- package/dist/procedures/docker/pull.js +17 -0
- package/dist/procedures/docker/pull.js.map +1 -0
- package/dist/procedures/docker/rm.d.ts +12 -0
- package/dist/procedures/docker/rm.d.ts.map +1 -0
- package/dist/procedures/docker/rm.js +21 -0
- package/dist/procedures/docker/rm.js.map +1 -0
- package/dist/procedures/docker/run.d.ts +21 -0
- package/dist/procedures/docker/run.d.ts.map +1 -0
- package/dist/procedures/docker/run.js +56 -0
- package/dist/procedures/docker/run.js.map +1 -0
- package/dist/procedures/docker/shared.d.ts +23 -0
- package/dist/procedures/docker/shared.d.ts.map +1 -0
- package/dist/procedures/docker/shared.js +51 -0
- package/dist/procedures/docker/shared.js.map +1 -0
- package/dist/procedures/docker/stop.d.ts +12 -0
- package/dist/procedures/docker/stop.d.ts.map +1 -0
- package/dist/procedures/docker/stop.js +20 -0
- package/dist/procedures/docker/stop.js.map +1 -0
- package/dist/procedures/docker/up.d.ts +12 -0
- package/dist/procedures/docker/up.d.ts.map +1 -0
- package/dist/procedures/docker/up.js +28 -0
- package/dist/procedures/docker/up.js.map +1 -0
- package/dist/register.d.ts +9 -0
- package/dist/register.d.ts.map +1 -0
- package/dist/register.js +16 -0
- package/dist/register.js.map +1 -0
- package/dist/types.d.ts +130 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +207 -0
- package/dist/types.js.map +1 -0
- package/package.json +81 -3
- package/src/index.ts +75 -0
- package/src/module.ts +237 -0
- package/src/procedures/docker/build.ts +46 -0
- package/src/procedures/docker/down.ts +31 -0
- package/src/procedures/docker/exec.ts +37 -0
- package/src/procedures/docker/index.ts +10 -0
- package/src/procedures/docker/logs.ts +52 -0
- package/src/procedures/docker/ps.ts +27 -0
- package/src/procedures/docker/pull.ts +23 -0
- package/src/procedures/docker/rm.ts +28 -0
- package/src/procedures/docker/run.ts +65 -0
- package/src/procedures/docker/shared.ts +62 -0
- package/src/procedures/docker/stop.ts +29 -0
- package/src/procedures/docker/up.ts +35 -0
- package/src/register.ts +20 -0
- package/src/types.ts +351 -0
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* docker.run procedure
|
|
3
|
+
*
|
|
4
|
+
* Run a Docker container.
|
|
5
|
+
*/
|
|
6
|
+
import { dockerArg, runDocker, words } from "./shared.js";
|
|
7
|
+
/**
|
|
8
|
+
* Run a Docker container
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* // Run nginx in detached mode
|
|
12
|
+
* await client.call(["docker", "run"], {
|
|
13
|
+
* image: "nginx:latest",
|
|
14
|
+
* name: "my-nginx",
|
|
15
|
+
* ports: ["8080:80"],
|
|
16
|
+
* detach: true,
|
|
17
|
+
* });
|
|
18
|
+
*/
|
|
19
|
+
export async function dockerRun(input, ctx) {
|
|
20
|
+
{
|
|
21
|
+
const args = ["run"];
|
|
22
|
+
// Add flags
|
|
23
|
+
if (input.detach)
|
|
24
|
+
args.push("-d");
|
|
25
|
+
if (input.rm)
|
|
26
|
+
args.push("--rm");
|
|
27
|
+
if (input.name)
|
|
28
|
+
args.push("--name", input.name);
|
|
29
|
+
// Add port mappings
|
|
30
|
+
if (input.ports) {
|
|
31
|
+
for (const port of input.ports) {
|
|
32
|
+
args.push("-p", port);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
// Add volume mappings
|
|
36
|
+
if (input.volumes) {
|
|
37
|
+
for (const volume of input.volumes) {
|
|
38
|
+
args.push("-v", volume);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
// Add environment variables
|
|
42
|
+
if (input.env) {
|
|
43
|
+
for (const [key, value] of Object.entries(input.env)) {
|
|
44
|
+
args.push("-e", `${key}=${value}`);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
// Add image
|
|
48
|
+
args.push(dockerArg("image", input.image));
|
|
49
|
+
// Add command if specified
|
|
50
|
+
if (input.command) {
|
|
51
|
+
args.push(...words(input.command));
|
|
52
|
+
}
|
|
53
|
+
return runDocker(args, input, ctx);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=run.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/procedures/docker/run.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAG1D;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,KAAqB,EACrB,GAAqB;IAErB,CAAC;QACC,MAAM,IAAI,GAAa,CAAC,KAAK,CAAC,CAAC;QAE/B,YAAY;QACZ,IAAI,KAAK,CAAC,MAAM;YAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,KAAK,CAAC,EAAE;YAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,KAAK,CAAC,IAAI;YAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAEhD,oBAAoB;QACpB,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAChB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBAC/B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;QAED,sBAAsB;QACtB,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAClB,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBACnC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,4BAA4B;QAC5B,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;YACd,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;QAED,YAAY;QACZ,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QAE3C,2BAA2B;QAC3B,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IACrC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The way every docker procedure runs docker: an argument list through `shell.run`, no shell.
|
|
3
|
+
*
|
|
4
|
+
* Before, each procedure joined its arguments into one string for `shell.exec`, which runs a
|
|
5
|
+
* shell, so a value such as `x & calc` ran a second command. `docker.*` is an MCP tool, and
|
|
6
|
+
* the deep dive ran an injected command through `docker.ps` and through `client.chain`
|
|
7
|
+
* (documentation/deep-dive-2026-10/wrappers.md, WRP-1).
|
|
8
|
+
*/
|
|
9
|
+
import type { ProcedureContext } from "@procedures/client";
|
|
10
|
+
import type { DockerCommandOutput } from "../../types.js";
|
|
11
|
+
/**
|
|
12
|
+
* A value that docker reads as an argument (an image, a container, a path, a service). It must
|
|
13
|
+
* not start with "-", or docker reads it as an option (for example `--privileged`).
|
|
14
|
+
*/
|
|
15
|
+
export declare function dockerArg(name: string, value: string): string;
|
|
16
|
+
/** The words of a command string, split at whitespace. No shell runs it, so there is no quoting. */
|
|
17
|
+
export declare function words(command: string): string[];
|
|
18
|
+
/** This function runs `docker <args>` and gives its result. It does not throw. */
|
|
19
|
+
export declare function runDocker(args: string[], input: {
|
|
20
|
+
cwd?: string | undefined;
|
|
21
|
+
timeout?: number | undefined;
|
|
22
|
+
}, ctx: ProcedureContext): Promise<DockerCommandOutput>;
|
|
23
|
+
//# sourceMappingURL=shared.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/procedures/docker/shared.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE1D;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAK7D;AAED,oGAAoG;AACpG,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAE/C;AAED,kFAAkF;AAClF,wBAAsB,SAAS,CAC7B,IAAI,EAAE,MAAM,EAAE,EACd,KAAK,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,EACjE,GAAG,EAAE,gBAAgB,GACpB,OAAO,CAAC,mBAAmB,CAAC,CA4B9B"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The way every docker procedure runs docker: an argument list through `shell.run`, no shell.
|
|
3
|
+
*
|
|
4
|
+
* Before, each procedure joined its arguments into one string for `shell.exec`, which runs a
|
|
5
|
+
* shell, so a value such as `x & calc` ran a second command. `docker.*` is an MCP tool, and
|
|
6
|
+
* the deep dive ran an injected command through `docker.ps` and through `client.chain`
|
|
7
|
+
* (documentation/deep-dive-2026-10/wrappers.md, WRP-1).
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* A value that docker reads as an argument (an image, a container, a path, a service). It must
|
|
11
|
+
* not start with "-", or docker reads it as an option (for example `--privileged`).
|
|
12
|
+
*/
|
|
13
|
+
export function dockerArg(name, value) {
|
|
14
|
+
if (value.startsWith("-")) {
|
|
15
|
+
throw new Error(`Invalid ${name} (starts with "-"): ${value}`);
|
|
16
|
+
}
|
|
17
|
+
return value;
|
|
18
|
+
}
|
|
19
|
+
/** The words of a command string, split at whitespace. No shell runs it, so there is no quoting. */
|
|
20
|
+
export function words(command) {
|
|
21
|
+
return command.trim().split(/\s+/).filter((word) => word.length > 0);
|
|
22
|
+
}
|
|
23
|
+
/** This function runs `docker <args>` and gives its result. It does not throw. */
|
|
24
|
+
export async function runDocker(args, input, ctx) {
|
|
25
|
+
const startTime = Date.now();
|
|
26
|
+
try {
|
|
27
|
+
const shellInput = { command: "docker", args };
|
|
28
|
+
if (input.cwd !== undefined)
|
|
29
|
+
shellInput.cwd = input.cwd;
|
|
30
|
+
if (input.timeout !== undefined)
|
|
31
|
+
shellInput.timeout = input.timeout;
|
|
32
|
+
const result = await ctx.client.call(["shell", "run"], shellInput);
|
|
33
|
+
return {
|
|
34
|
+
exitCode: result.exitCode,
|
|
35
|
+
stdout: result.stdout,
|
|
36
|
+
stderr: result.stderr,
|
|
37
|
+
success: result.exitCode === 0,
|
|
38
|
+
duration: Date.now() - startTime,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
return {
|
|
43
|
+
exitCode: 1,
|
|
44
|
+
stdout: "",
|
|
45
|
+
stderr: error instanceof Error ? error.message : String(error),
|
|
46
|
+
success: false,
|
|
47
|
+
duration: Date.now() - startTime,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=shared.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/procedures/docker/shared.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,IAAY,EAAE,KAAa;IACnD,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,uBAAuB,KAAK,EAAE,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,oGAAoG;AACpG,MAAM,UAAU,KAAK,CAAC,OAAe;IACnC,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACvE,CAAC;AAED,kFAAkF;AAClF,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,IAAc,EACd,KAAiE,EACjE,GAAqB;IAErB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,IAAI,CAAC;QACH,MAAM,UAAU,GAAwE,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QACpH,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS;YAAE,UAAU,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;QACxD,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS;YAAE,UAAU,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAEpE,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAGlC,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,UAAU,CAAC,CAAC;QAEhC,OAAO;YACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,OAAO,EAAE,MAAM,CAAC,QAAQ,KAAK,CAAC;YAC9B,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;SACjC,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,QAAQ,EAAE,CAAC;YACX,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YAC9D,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;SACjC,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* docker.stop procedure
|
|
3
|
+
*
|
|
4
|
+
* Stop running container(s).
|
|
5
|
+
*/
|
|
6
|
+
import type { ProcedureContext } from "@procedures/client";
|
|
7
|
+
import type { DockerStopInput, DockerCommandOutput } from "../../types.js";
|
|
8
|
+
/**
|
|
9
|
+
* Stop container(s)
|
|
10
|
+
*/
|
|
11
|
+
export declare function dockerStop(input: DockerStopInput, ctx: ProcedureContext): Promise<DockerCommandOutput>;
|
|
12
|
+
//# sourceMappingURL=stop.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stop.d.ts","sourceRoot":"","sources":["../../../src/procedures/docker/stop.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE3E;;GAEG;AACH,wBAAsB,UAAU,CAC9B,KAAK,EAAE,eAAe,EACtB,GAAG,EAAE,gBAAgB,GACpB,OAAO,CAAC,mBAAmB,CAAC,CAY9B"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* docker.stop procedure
|
|
3
|
+
*
|
|
4
|
+
* Stop running container(s).
|
|
5
|
+
*/
|
|
6
|
+
import { dockerArg, runDocker } from "./shared.js";
|
|
7
|
+
/**
|
|
8
|
+
* Stop container(s)
|
|
9
|
+
*/
|
|
10
|
+
export async function dockerStop(input, ctx) {
|
|
11
|
+
{
|
|
12
|
+
const args = ["stop"];
|
|
13
|
+
if (input.time !== undefined) {
|
|
14
|
+
args.push("-t", String(input.time));
|
|
15
|
+
}
|
|
16
|
+
args.push(...input.containers.map((c) => dockerArg("container", c)));
|
|
17
|
+
return runDocker(args, input, ctx);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=stop.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stop.js","sourceRoot":"","sources":["../../../src/procedures/docker/stop.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGnD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,KAAsB,EACtB,GAAqB;IAErB,CAAC;QACC,MAAM,IAAI,GAAa,CAAC,MAAM,CAAC,CAAC;QAEhC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC7B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QACtC,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAErE,OAAO,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IACrC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* docker.compose.up procedure
|
|
3
|
+
*
|
|
4
|
+
* Start services with docker compose.
|
|
5
|
+
*/
|
|
6
|
+
import type { ProcedureContext } from "@procedures/client";
|
|
7
|
+
import type { DockerComposeUpInput, DockerCommandOutput } from "../../types.js";
|
|
8
|
+
/**
|
|
9
|
+
* Start services with docker compose
|
|
10
|
+
*/
|
|
11
|
+
export declare function dockerComposeUp(input: DockerComposeUpInput, ctx: ProcedureContext): Promise<DockerCommandOutput>;
|
|
12
|
+
//# sourceMappingURL=up.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"up.d.ts","sourceRoot":"","sources":["../../../src/procedures/docker/up.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAEhF;;GAEG;AACH,wBAAsB,eAAe,CACnC,KAAK,EAAE,oBAAoB,EAC3B,GAAG,EAAE,gBAAgB,GACpB,OAAO,CAAC,mBAAmB,CAAC,CAkB9B"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* docker.compose.up procedure
|
|
3
|
+
*
|
|
4
|
+
* Start services with docker compose.
|
|
5
|
+
*/
|
|
6
|
+
import { dockerArg, runDocker } from "./shared.js";
|
|
7
|
+
/**
|
|
8
|
+
* Start services with docker compose
|
|
9
|
+
*/
|
|
10
|
+
export async function dockerComposeUp(input, ctx) {
|
|
11
|
+
{
|
|
12
|
+
const args = ["compose"];
|
|
13
|
+
if (input.file)
|
|
14
|
+
args.push("-f", input.file);
|
|
15
|
+
args.push("up");
|
|
16
|
+
if (input.detach)
|
|
17
|
+
args.push("-d");
|
|
18
|
+
if (input.build)
|
|
19
|
+
args.push("--build");
|
|
20
|
+
if (input.forceRecreate)
|
|
21
|
+
args.push("--force-recreate");
|
|
22
|
+
if (input.services && input.services.length > 0) {
|
|
23
|
+
args.push(...input.services.map((s) => dockerArg("service", s)));
|
|
24
|
+
}
|
|
25
|
+
return runDocker(args, input, ctx);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=up.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"up.js","sourceRoot":"","sources":["../../../src/procedures/docker/up.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGnD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,KAA2B,EAC3B,GAAqB;IAErB,CAAC;QACC,MAAM,IAAI,GAAa,CAAC,SAAS,CAAC,CAAC;QAEnC,IAAI,KAAK,CAAC,IAAI;YAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAE5C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEhB,IAAI,KAAK,CAAC,MAAM;YAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,KAAK,CAAC,KAAK;YAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtC,IAAI,KAAK,CAAC,aAAa;YAAE,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAEvD,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChD,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,CAAC;QAED,OAAO,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IACrC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Importing this file registers the procedures of @procedures/docker in the global registry
|
|
3
|
+
* (DECISIONS-2026-10, "Every package root registers its procedures"). The procedures as data
|
|
4
|
+
* are in `module.ts`, which registers nothing: a host with its own registry uses that one.
|
|
5
|
+
*/
|
|
6
|
+
import "@procedures/shell";
|
|
7
|
+
export * from "./module.js";
|
|
8
|
+
export declare function registerDockerProcedures(): void;
|
|
9
|
+
//# sourceMappingURL=register.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,mBAAmB,CAAC;AAK3B,cAAc,aAAa,CAAC;AAE5B,wBAAgB,wBAAwB,IAAI,IAAI,CAE/C"}
|
package/dist/register.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Importing this file registers the procedures of @procedures/docker in the global registry
|
|
3
|
+
* (DECISIONS-2026-10, "Every package root registers its procedures"). The procedures as data
|
|
4
|
+
* are in `module.ts`, which registers nothing: a host with its own registry uses that one.
|
|
5
|
+
*/
|
|
6
|
+
// Import shell dependency to ensure shell.exec is registered
|
|
7
|
+
import "@procedures/shell";
|
|
8
|
+
import { registerProcedures } from "@procedures/client";
|
|
9
|
+
import { dockerModule } from "./module.js";
|
|
10
|
+
export * from "./module.js";
|
|
11
|
+
export function registerDockerProcedures() {
|
|
12
|
+
registerProcedures(dockerModule.procedures);
|
|
13
|
+
}
|
|
14
|
+
// Auto-register when this module is loaded
|
|
15
|
+
registerDockerProcedures();
|
|
16
|
+
//# sourceMappingURL=register.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register.js","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,6DAA6D;AAC7D,OAAO,mBAAmB,CAAC;AAE3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,cAAc,aAAa,CAAC;AAE5B,MAAM,UAAU,wBAAwB;IACtC,kBAAkB,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;AAC9C,CAAC;AAED,2CAA2C;AAC3C,wBAAwB,EAAE,CAAC"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type definitions for client-docker procedures
|
|
3
|
+
*
|
|
4
|
+
* client-docker wraps Docker CLI commands as procedures using client-shell.
|
|
5
|
+
*/
|
|
6
|
+
import { z } from "zod";
|
|
7
|
+
export interface DockerCommandOutput {
|
|
8
|
+
/** Exit code of the command */
|
|
9
|
+
exitCode: number;
|
|
10
|
+
/** Standard output */
|
|
11
|
+
stdout: string;
|
|
12
|
+
/** Standard error */
|
|
13
|
+
stderr: string;
|
|
14
|
+
/** Whether command succeeded (exit code 0) */
|
|
15
|
+
success: boolean;
|
|
16
|
+
/** Duration in milliseconds */
|
|
17
|
+
duration: number;
|
|
18
|
+
}
|
|
19
|
+
/** One item of a followed log: a line of the container, or the end of `docker logs` (the last item). */
|
|
20
|
+
export type DockerLogItem = {
|
|
21
|
+
type: "stdout" | "stderr";
|
|
22
|
+
line: string;
|
|
23
|
+
} | {
|
|
24
|
+
type: "exit";
|
|
25
|
+
exitCode: number;
|
|
26
|
+
duration: number;
|
|
27
|
+
signal?: string | undefined;
|
|
28
|
+
timedOut?: boolean | undefined;
|
|
29
|
+
aborted?: boolean | undefined;
|
|
30
|
+
};
|
|
31
|
+
/** The result of a docker command: every docker.* procedure gives it. */
|
|
32
|
+
export declare const DockerCommandOutputSchema: z.ZodType<DockerCommandOutput>;
|
|
33
|
+
/** docker.logs: one result, or with follow a stream of lines and one last exit item. */
|
|
34
|
+
export declare const DockerLogsOutputSchema: z.ZodType<DockerCommandOutput | DockerLogItem>;
|
|
35
|
+
export declare const DockerRunInputSchema: z.ZodObject<{
|
|
36
|
+
image: z.ZodString;
|
|
37
|
+
name: z.ZodOptional<z.ZodString>;
|
|
38
|
+
ports: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
39
|
+
volumes: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
40
|
+
env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
41
|
+
detach: z.ZodOptional<z.ZodBoolean>;
|
|
42
|
+
rm: z.ZodOptional<z.ZodBoolean>;
|
|
43
|
+
command: z.ZodOptional<z.ZodString>;
|
|
44
|
+
cwd: z.ZodOptional<z.ZodString>;
|
|
45
|
+
timeout: z.ZodOptional<z.ZodNumber>;
|
|
46
|
+
}>;
|
|
47
|
+
export type DockerRunInput = z.infer<typeof DockerRunInputSchema>;
|
|
48
|
+
export declare const DockerBuildInputSchema: z.ZodObject<{
|
|
49
|
+
context: z.ZodString;
|
|
50
|
+
tag: z.ZodString;
|
|
51
|
+
dockerfile: z.ZodOptional<z.ZodString>;
|
|
52
|
+
buildArgs: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
53
|
+
noCache: z.ZodOptional<z.ZodBoolean>;
|
|
54
|
+
cwd: z.ZodOptional<z.ZodString>;
|
|
55
|
+
timeout: z.ZodOptional<z.ZodNumber>;
|
|
56
|
+
}>;
|
|
57
|
+
export type DockerBuildInput = z.infer<typeof DockerBuildInputSchema>;
|
|
58
|
+
export declare const DockerPullInputSchema: z.ZodObject<{
|
|
59
|
+
image: z.ZodString;
|
|
60
|
+
tag: z.ZodOptional<z.ZodString>;
|
|
61
|
+
cwd: z.ZodOptional<z.ZodString>;
|
|
62
|
+
timeout: z.ZodOptional<z.ZodNumber>;
|
|
63
|
+
}>;
|
|
64
|
+
export type DockerPullInput = z.infer<typeof DockerPullInputSchema>;
|
|
65
|
+
export declare const DockerExecInputSchema: z.ZodObject<{
|
|
66
|
+
container: z.ZodString;
|
|
67
|
+
command: z.ZodString;
|
|
68
|
+
interactive: z.ZodOptional<z.ZodBoolean>;
|
|
69
|
+
tty: z.ZodOptional<z.ZodBoolean>;
|
|
70
|
+
workdir: z.ZodOptional<z.ZodString>;
|
|
71
|
+
env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
72
|
+
cwd: z.ZodOptional<z.ZodString>;
|
|
73
|
+
timeout: z.ZodOptional<z.ZodNumber>;
|
|
74
|
+
}>;
|
|
75
|
+
export type DockerExecInput = z.infer<typeof DockerExecInputSchema>;
|
|
76
|
+
export declare const DockerStopInputSchema: z.ZodObject<{
|
|
77
|
+
containers: z.ZodArray<z.ZodString>;
|
|
78
|
+
time: z.ZodOptional<z.ZodNumber>;
|
|
79
|
+
cwd: z.ZodOptional<z.ZodString>;
|
|
80
|
+
timeout: z.ZodOptional<z.ZodNumber>;
|
|
81
|
+
}>;
|
|
82
|
+
export type DockerStopInput = z.infer<typeof DockerStopInputSchema>;
|
|
83
|
+
export declare const DockerRmInputSchema: z.ZodObject<{
|
|
84
|
+
containers: z.ZodArray<z.ZodString>;
|
|
85
|
+
force: z.ZodOptional<z.ZodBoolean>;
|
|
86
|
+
volumes: z.ZodOptional<z.ZodBoolean>;
|
|
87
|
+
cwd: z.ZodOptional<z.ZodString>;
|
|
88
|
+
timeout: z.ZodOptional<z.ZodNumber>;
|
|
89
|
+
}>;
|
|
90
|
+
export type DockerRmInput = z.infer<typeof DockerRmInputSchema>;
|
|
91
|
+
export declare const DockerPsInputSchema: z.ZodObject<{
|
|
92
|
+
all: z.ZodOptional<z.ZodBoolean>;
|
|
93
|
+
filter: z.ZodOptional<z.ZodString>;
|
|
94
|
+
format: z.ZodOptional<z.ZodString>;
|
|
95
|
+
cwd: z.ZodOptional<z.ZodString>;
|
|
96
|
+
timeout: z.ZodOptional<z.ZodNumber>;
|
|
97
|
+
}>;
|
|
98
|
+
export type DockerPsInput = z.infer<typeof DockerPsInputSchema>;
|
|
99
|
+
export declare const DockerLogsInputSchema: z.ZodObject<{
|
|
100
|
+
container: z.ZodString;
|
|
101
|
+
follow: z.ZodOptional<z.ZodBoolean>;
|
|
102
|
+
tail: z.ZodOptional<z.ZodNumber>;
|
|
103
|
+
timestamps: z.ZodOptional<z.ZodBoolean>;
|
|
104
|
+
cwd: z.ZodOptional<z.ZodString>;
|
|
105
|
+
timeout: z.ZodOptional<z.ZodNumber>;
|
|
106
|
+
}>;
|
|
107
|
+
export type DockerLogsInput = z.infer<typeof DockerLogsInputSchema>;
|
|
108
|
+
export declare const DockerComposeUpInputSchema: z.ZodObject<{
|
|
109
|
+
file: z.ZodOptional<z.ZodString>;
|
|
110
|
+
services: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
111
|
+
detach: z.ZodOptional<z.ZodBoolean>;
|
|
112
|
+
build: z.ZodOptional<z.ZodBoolean>;
|
|
113
|
+
forceRecreate: z.ZodOptional<z.ZodBoolean>;
|
|
114
|
+
cwd: z.ZodOptional<z.ZodString>;
|
|
115
|
+
timeout: z.ZodOptional<z.ZodNumber>;
|
|
116
|
+
}>;
|
|
117
|
+
export type DockerComposeUpInput = z.infer<typeof DockerComposeUpInputSchema>;
|
|
118
|
+
export declare const DockerComposeDownInputSchema: z.ZodObject<{
|
|
119
|
+
file: z.ZodOptional<z.ZodString>;
|
|
120
|
+
volumes: z.ZodOptional<z.ZodBoolean>;
|
|
121
|
+
removeOrphans: z.ZodOptional<z.ZodBoolean>;
|
|
122
|
+
rmi: z.ZodOptional<z.ZodEnum<{
|
|
123
|
+
all: "all";
|
|
124
|
+
local: "local";
|
|
125
|
+
}>>;
|
|
126
|
+
cwd: z.ZodOptional<z.ZodString>;
|
|
127
|
+
timeout: z.ZodOptional<z.ZodNumber>;
|
|
128
|
+
}>;
|
|
129
|
+
export type DockerComposeDownInput = z.infer<typeof DockerComposeDownInputSchema>;
|
|
130
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type definitions for client-docker procedures
|
|
3
|
+
*
|
|
4
|
+
* client-docker wraps Docker CLI commands as procedures using client-shell.
|
|
5
|
+
*/
|
|
6
|
+
import { z } from "zod";
|
|
7
|
+
// Output schemas (roadmap 2.1). Loose objects: a field that a schema does not name stays in the
|
|
8
|
+
// result (a strict schema would remove it when the output is validated).
|
|
9
|
+
/** The result of a docker command: every docker.* procedure gives it. */
|
|
10
|
+
export const DockerCommandOutputSchema = z.looseObject({
|
|
11
|
+
exitCode: z.number().describe("The exit code of docker (0 is success)"),
|
|
12
|
+
stdout: z.string().describe("The standard output of docker"),
|
|
13
|
+
stderr: z.string().describe("The standard error of docker, or the error message when docker did not start"),
|
|
14
|
+
success: z.boolean().describe("True when the exit code is 0"),
|
|
15
|
+
duration: z.number().describe("The time of the command, in milliseconds"),
|
|
16
|
+
});
|
|
17
|
+
/** docker.logs: one result, or with follow a stream of lines and one last exit item. */
|
|
18
|
+
export const DockerLogsOutputSchema = z.union([
|
|
19
|
+
DockerCommandOutputSchema,
|
|
20
|
+
z.looseObject({
|
|
21
|
+
type: z.enum(["stdout", "stderr"]).describe("The stream of the line"),
|
|
22
|
+
line: z.string().describe("One line of the log, without its line end"),
|
|
23
|
+
}),
|
|
24
|
+
z.looseObject({
|
|
25
|
+
type: z.literal("exit").describe("The end of the stream"),
|
|
26
|
+
exitCode: z.number().describe("The exit code of docker logs"),
|
|
27
|
+
duration: z.number().describe("The time of the stream, in milliseconds"),
|
|
28
|
+
signal: z.string().optional().describe("The signal that ended docker logs"),
|
|
29
|
+
timedOut: z.boolean().optional().describe("True when the timeout ended the stream"),
|
|
30
|
+
aborted: z.boolean().optional().describe("True when the reader or the signal ended the stream"),
|
|
31
|
+
}),
|
|
32
|
+
]);
|
|
33
|
+
// =============================================================================
|
|
34
|
+
// docker.run Types
|
|
35
|
+
// =============================================================================
|
|
36
|
+
export const DockerRunInputSchema = z.object({
|
|
37
|
+
/** Docker image to run */
|
|
38
|
+
image: z.string().describe("Docker image to run"),
|
|
39
|
+
/** Container name */
|
|
40
|
+
name: z.string().optional().describe("Container name"),
|
|
41
|
+
/** Port mappings (e.g., ["8080:80", "3000:3000"]) */
|
|
42
|
+
ports: z.array(z.string()).optional().describe("Port mappings (e.g., [\"8080:80\", \"3000:3000\"])"),
|
|
43
|
+
/** Volume mappings (e.g., ["/host:/container"]) */
|
|
44
|
+
volumes: z.array(z.string()).optional().describe("Volume mappings (e.g., [\"/host:/container\"])"),
|
|
45
|
+
/** Environment variables */
|
|
46
|
+
env: z.record(z.string(), z.string()).optional().describe("Environment variables"),
|
|
47
|
+
/** Run in detached mode */
|
|
48
|
+
detach: z.boolean().optional().describe("Run in detached mode"),
|
|
49
|
+
/** Automatically remove container when it exits */
|
|
50
|
+
rm: z.boolean().optional().describe("Automatically remove container when it exits"),
|
|
51
|
+
/** Command to run in container */
|
|
52
|
+
command: z.string().optional().describe("Command to run in container"),
|
|
53
|
+
/** Working directory */
|
|
54
|
+
cwd: z.string().optional().describe("Working directory"),
|
|
55
|
+
/** Timeout in milliseconds */
|
|
56
|
+
timeout: z.number().optional().describe("Timeout in milliseconds"),
|
|
57
|
+
});
|
|
58
|
+
// =============================================================================
|
|
59
|
+
// docker.build Types
|
|
60
|
+
// =============================================================================
|
|
61
|
+
export const DockerBuildInputSchema = z.object({
|
|
62
|
+
/** Build context path */
|
|
63
|
+
context: z.string().describe("Build context path"),
|
|
64
|
+
/** Image tag */
|
|
65
|
+
tag: z.string().describe("Image tag"),
|
|
66
|
+
/** Dockerfile path (relative to context) */
|
|
67
|
+
dockerfile: z.string().optional().describe("Dockerfile path (relative to context)"),
|
|
68
|
+
/** Build arguments */
|
|
69
|
+
buildArgs: z.record(z.string(), z.string()).optional().describe("Build arguments"),
|
|
70
|
+
/** Do not use cache when building */
|
|
71
|
+
noCache: z.boolean().optional().describe("Do not use cache when building"),
|
|
72
|
+
/** Working directory */
|
|
73
|
+
cwd: z.string().optional().describe("Working directory"),
|
|
74
|
+
/** Timeout in milliseconds */
|
|
75
|
+
timeout: z.number().optional().describe("Timeout in milliseconds"),
|
|
76
|
+
});
|
|
77
|
+
// =============================================================================
|
|
78
|
+
// docker.pull Types
|
|
79
|
+
// =============================================================================
|
|
80
|
+
export const DockerPullInputSchema = z.object({
|
|
81
|
+
/** Image to pull */
|
|
82
|
+
image: z.string().describe("Image to pull"),
|
|
83
|
+
/** Image tag (default: latest) */
|
|
84
|
+
tag: z.string().optional().describe("Image tag (default: latest)"),
|
|
85
|
+
/** Working directory */
|
|
86
|
+
cwd: z.string().optional().describe("Working directory"),
|
|
87
|
+
/** Timeout in milliseconds */
|
|
88
|
+
timeout: z.number().optional().describe("Timeout in milliseconds"),
|
|
89
|
+
});
|
|
90
|
+
// =============================================================================
|
|
91
|
+
// docker.exec Types
|
|
92
|
+
// =============================================================================
|
|
93
|
+
export const DockerExecInputSchema = z.object({
|
|
94
|
+
/** Container name or ID */
|
|
95
|
+
container: z.string().describe("Container name or ID"),
|
|
96
|
+
/** Command to execute */
|
|
97
|
+
command: z.string().describe("Command to execute"),
|
|
98
|
+
/** Run interactively */
|
|
99
|
+
interactive: z.boolean().optional().describe("Run interactively"),
|
|
100
|
+
/** Allocate a TTY */
|
|
101
|
+
tty: z.boolean().optional().describe("Allocate a TTY"),
|
|
102
|
+
/** Working directory inside container */
|
|
103
|
+
workdir: z.string().optional().describe("Working directory inside container"),
|
|
104
|
+
/** Environment variables */
|
|
105
|
+
env: z.record(z.string(), z.string()).optional().describe("Environment variables"),
|
|
106
|
+
/** Working directory (host) */
|
|
107
|
+
cwd: z.string().optional().describe("Working directory (host)"),
|
|
108
|
+
/** Timeout in milliseconds */
|
|
109
|
+
timeout: z.number().optional().describe("Timeout in milliseconds"),
|
|
110
|
+
});
|
|
111
|
+
// =============================================================================
|
|
112
|
+
// docker.stop Types
|
|
113
|
+
// =============================================================================
|
|
114
|
+
export const DockerStopInputSchema = z.object({
|
|
115
|
+
/** Container name(s) or ID(s) */
|
|
116
|
+
containers: z.array(z.string()).describe("Container name(s) or ID(s)"),
|
|
117
|
+
/** Seconds to wait before killing */
|
|
118
|
+
time: z.number().optional().describe("Seconds to wait before killing"),
|
|
119
|
+
/** Working directory */
|
|
120
|
+
cwd: z.string().optional().describe("Working directory"),
|
|
121
|
+
/** Timeout in milliseconds */
|
|
122
|
+
timeout: z.number().optional().describe("Timeout in milliseconds"),
|
|
123
|
+
});
|
|
124
|
+
// =============================================================================
|
|
125
|
+
// docker.rm Types
|
|
126
|
+
// =============================================================================
|
|
127
|
+
export const DockerRmInputSchema = z.object({
|
|
128
|
+
/** Container name(s) or ID(s) */
|
|
129
|
+
containers: z.array(z.string()).describe("Container name(s) or ID(s)"),
|
|
130
|
+
/** Force removal */
|
|
131
|
+
force: z.boolean().optional().describe("Force removal"),
|
|
132
|
+
/** Remove volumes */
|
|
133
|
+
volumes: z.boolean().optional().describe("Remove volumes"),
|
|
134
|
+
/** Working directory */
|
|
135
|
+
cwd: z.string().optional().describe("Working directory"),
|
|
136
|
+
/** Timeout in milliseconds */
|
|
137
|
+
timeout: z.number().optional().describe("Timeout in milliseconds"),
|
|
138
|
+
});
|
|
139
|
+
// =============================================================================
|
|
140
|
+
// docker.ps Types
|
|
141
|
+
// =============================================================================
|
|
142
|
+
export const DockerPsInputSchema = z.object({
|
|
143
|
+
/** Show all containers (default shows just running) */
|
|
144
|
+
all: z.boolean().optional().describe("Show all containers (default shows just running)"),
|
|
145
|
+
/** Filter containers */
|
|
146
|
+
filter: z.string().optional().describe("Filter containers"),
|
|
147
|
+
/** Format output */
|
|
148
|
+
format: z.string().optional().describe("Format output"),
|
|
149
|
+
/** Working directory */
|
|
150
|
+
cwd: z.string().optional().describe("Working directory"),
|
|
151
|
+
/** Timeout in milliseconds */
|
|
152
|
+
timeout: z.number().optional().describe("Timeout in milliseconds"),
|
|
153
|
+
});
|
|
154
|
+
// =============================================================================
|
|
155
|
+
// docker.logs Types
|
|
156
|
+
// =============================================================================
|
|
157
|
+
export const DockerLogsInputSchema = z.object({
|
|
158
|
+
/** Container name or ID */
|
|
159
|
+
container: z.string().describe("Container name or ID"),
|
|
160
|
+
/** Follow log output */
|
|
161
|
+
follow: z.boolean().optional().describe("Follow log output"),
|
|
162
|
+
/** Number of lines from end */
|
|
163
|
+
tail: z.number().optional().describe("Number of lines from end"),
|
|
164
|
+
/** Show timestamps */
|
|
165
|
+
timestamps: z.boolean().optional().describe("Show timestamps"),
|
|
166
|
+
/** Working directory */
|
|
167
|
+
cwd: z.string().optional().describe("Working directory"),
|
|
168
|
+
/** Timeout in milliseconds */
|
|
169
|
+
timeout: z.number().optional().describe("Timeout in milliseconds"),
|
|
170
|
+
});
|
|
171
|
+
// =============================================================================
|
|
172
|
+
// docker.compose.up Types
|
|
173
|
+
// =============================================================================
|
|
174
|
+
export const DockerComposeUpInputSchema = z.object({
|
|
175
|
+
/** Compose file path */
|
|
176
|
+
file: z.string().optional().describe("Compose file path"),
|
|
177
|
+
/** Services to start (default: all) */
|
|
178
|
+
services: z.array(z.string()).optional().describe("Services to start (default: all)"),
|
|
179
|
+
/** Detached mode */
|
|
180
|
+
detach: z.boolean().optional().describe("Detached mode"),
|
|
181
|
+
/** Build images before starting */
|
|
182
|
+
build: z.boolean().optional().describe("Build images before starting"),
|
|
183
|
+
/** Force recreate containers */
|
|
184
|
+
forceRecreate: z.boolean().optional().describe("Force recreate containers"),
|
|
185
|
+
/** Working directory */
|
|
186
|
+
cwd: z.string().optional().describe("Working directory"),
|
|
187
|
+
/** Timeout in milliseconds */
|
|
188
|
+
timeout: z.number().optional().describe("Timeout in milliseconds"),
|
|
189
|
+
});
|
|
190
|
+
// =============================================================================
|
|
191
|
+
// docker.compose.down Types
|
|
192
|
+
// =============================================================================
|
|
193
|
+
export const DockerComposeDownInputSchema = z.object({
|
|
194
|
+
/** Compose file path */
|
|
195
|
+
file: z.string().optional().describe("Compose file path"),
|
|
196
|
+
/** Remove volumes */
|
|
197
|
+
volumes: z.boolean().optional().describe("Remove volumes"),
|
|
198
|
+
/** Remove orphan containers */
|
|
199
|
+
removeOrphans: z.boolean().optional().describe("Remove orphan containers"),
|
|
200
|
+
/** Remove images (all, local) */
|
|
201
|
+
rmi: z.enum(["all", "local"]).optional().describe("Remove images (all, local)"),
|
|
202
|
+
/** Working directory */
|
|
203
|
+
cwd: z.string().optional().describe("Working directory"),
|
|
204
|
+
/** Timeout in milliseconds */
|
|
205
|
+
timeout: z.number().optional().describe("Timeout in milliseconds"),
|
|
206
|
+
});
|
|
207
|
+
//# sourceMappingURL=types.js.map
|