@procedures/docker 0.2.3 → 0.3.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.
Files changed (112) hide show
  1. package/CHANGELOG.md +47 -0
  2. package/README.md +40 -3
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/index.d.ts +3 -3
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +2 -2
  7. package/dist/index.js.map +1 -1
  8. package/dist/module.d.ts +4 -1
  9. package/dist/module.d.ts.map +1 -1
  10. package/dist/module.js +252 -1
  11. package/dist/module.js.map +1 -1
  12. package/dist/procedures/docker/compose/build.d.ts +12 -0
  13. package/dist/procedures/docker/compose/build.d.ts.map +1 -0
  14. package/dist/procedures/docker/compose/build.js +22 -0
  15. package/dist/procedures/docker/compose/build.js.map +1 -0
  16. package/dist/procedures/docker/compose/logs.d.ts +13 -0
  17. package/dist/procedures/docker/compose/logs.d.ts.map +1 -0
  18. package/dist/procedures/docker/compose/logs.js +23 -0
  19. package/dist/procedures/docker/compose/logs.js.map +1 -0
  20. package/dist/procedures/docker/compose/ps.d.ts +12 -0
  21. package/dist/procedures/docker/compose/ps.d.ts.map +1 -0
  22. package/dist/procedures/docker/compose/ps.js +19 -0
  23. package/dist/procedures/docker/compose/ps.js.map +1 -0
  24. package/dist/procedures/docker/compose/restart.d.ts +12 -0
  25. package/dist/procedures/docker/compose/restart.d.ts.map +1 -0
  26. package/dist/procedures/docker/compose/restart.js +17 -0
  27. package/dist/procedures/docker/compose/restart.js.map +1 -0
  28. package/dist/procedures/docker/exec.d.ts.map +1 -1
  29. package/dist/procedures/docker/exec.js +7 -2
  30. package/dist/procedures/docker/exec.js.map +1 -1
  31. package/dist/procedures/docker/images.d.ts +12 -0
  32. package/dist/procedures/docker/images.d.ts.map +1 -0
  33. package/dist/procedures/docker/images.js +22 -0
  34. package/dist/procedures/docker/images.js.map +1 -0
  35. package/dist/procedures/docker/index.d.ts +15 -0
  36. package/dist/procedures/docker/index.d.ts.map +1 -1
  37. package/dist/procedures/docker/index.js +15 -0
  38. package/dist/procedures/docker/index.js.map +1 -1
  39. package/dist/procedures/docker/inspect.d.ts +13 -0
  40. package/dist/procedures/docker/inspect.d.ts.map +1 -0
  41. package/dist/procedures/docker/inspect.js +30 -0
  42. package/dist/procedures/docker/inspect.js.map +1 -0
  43. package/dist/procedures/docker/network/create.d.ts +13 -0
  44. package/dist/procedures/docker/network/create.d.ts.map +1 -0
  45. package/dist/procedures/docker/network/create.js +21 -0
  46. package/dist/procedures/docker/network/create.js.map +1 -0
  47. package/dist/procedures/docker/network/list.d.ts +12 -0
  48. package/dist/procedures/docker/network/list.d.ts.map +1 -0
  49. package/dist/procedures/docker/network/list.js +18 -0
  50. package/dist/procedures/docker/network/list.js.map +1 -0
  51. package/dist/procedures/docker/network/remove.d.ts +12 -0
  52. package/dist/procedures/docker/network/remove.d.ts.map +1 -0
  53. package/dist/procedures/docker/network/remove.js +14 -0
  54. package/dist/procedures/docker/network/remove.js.map +1 -0
  55. package/dist/procedures/docker/prune.d.ts +14 -0
  56. package/dist/procedures/docker/prune.d.ts.map +1 -0
  57. package/dist/procedures/docker/prune.js +30 -0
  58. package/dist/procedures/docker/prune.js.map +1 -0
  59. package/dist/procedures/docker/push.d.ts +13 -0
  60. package/dist/procedures/docker/push.d.ts.map +1 -0
  61. package/dist/procedures/docker/push.js +18 -0
  62. package/dist/procedures/docker/push.js.map +1 -0
  63. package/dist/procedures/docker/run.d.ts.map +1 -1
  64. package/dist/procedures/docker/run.js +3 -5
  65. package/dist/procedures/docker/run.js.map +1 -1
  66. package/dist/procedures/docker/shared.d.ts +16 -0
  67. package/dist/procedures/docker/shared.d.ts.map +1 -1
  68. package/dist/procedures/docker/shared.js +24 -0
  69. package/dist/procedures/docker/shared.js.map +1 -1
  70. package/dist/procedures/docker/tag.d.ts +12 -0
  71. package/dist/procedures/docker/tag.d.ts.map +1 -0
  72. package/dist/procedures/docker/tag.js +14 -0
  73. package/dist/procedures/docker/tag.js.map +1 -0
  74. package/dist/procedures/docker/volume/create.d.ts +13 -0
  75. package/dist/procedures/docker/volume/create.d.ts.map +1 -0
  76. package/dist/procedures/docker/volume/create.js +20 -0
  77. package/dist/procedures/docker/volume/create.js.map +1 -0
  78. package/dist/procedures/docker/volume/list.d.ts +12 -0
  79. package/dist/procedures/docker/volume/list.d.ts.map +1 -0
  80. package/dist/procedures/docker/volume/list.js +18 -0
  81. package/dist/procedures/docker/volume/list.js.map +1 -0
  82. package/dist/procedures/docker/volume/remove.d.ts +13 -0
  83. package/dist/procedures/docker/volume/remove.d.ts.map +1 -0
  84. package/dist/procedures/docker/volume/remove.js +18 -0
  85. package/dist/procedures/docker/volume/remove.js.map +1 -0
  86. package/dist/types.d.ts +170 -1
  87. package/dist/types.d.ts.map +1 -1
  88. package/dist/types.js +180 -4
  89. package/dist/types.js.map +1 -1
  90. package/package.json +4 -4
  91. package/src/index.ts +46 -0
  92. package/src/module.ts +329 -1
  93. package/src/procedures/docker/compose/build.ts +23 -0
  94. package/src/procedures/docker/compose/logs.ts +23 -0
  95. package/src/procedures/docker/compose/ps.ts +20 -0
  96. package/src/procedures/docker/compose/restart.ts +19 -0
  97. package/src/procedures/docker/exec.ts +7 -2
  98. package/src/procedures/docker/images.ts +21 -0
  99. package/src/procedures/docker/index.ts +15 -0
  100. package/src/procedures/docker/inspect.ts +31 -0
  101. package/src/procedures/docker/network/create.ts +22 -0
  102. package/src/procedures/docker/network/list.ts +19 -0
  103. package/src/procedures/docker/network/remove.ts +17 -0
  104. package/src/procedures/docker/prune.ts +30 -0
  105. package/src/procedures/docker/push.ts +20 -0
  106. package/src/procedures/docker/run.ts +3 -5
  107. package/src/procedures/docker/shared.ts +28 -0
  108. package/src/procedures/docker/tag.ts +17 -0
  109. package/src/procedures/docker/volume/create.ts +21 -0
  110. package/src/procedures/docker/volume/list.ts +19 -0
  111. package/src/procedures/docker/volume/remove.ts +20 -0
  112. package/src/types.ts +360 -5
package/CHANGELOG.md CHANGED
@@ -1,5 +1,52 @@
1
1
  # @procedures/docker
2
2
 
3
+ ## 0.3.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 2392f9e: More docker procedures (roadmap R41): `docker.compose.ps`, `docker.compose.logs`, `docker.compose.build`, `docker.compose.restart`, `docker.images`, `docker.inspect` (with `data`, the parsed JSON), `docker.volume.list`, `docker.volume.create`, `docker.volume.remove`, `docker.network.list`, `docker.network.create`, `docker.network.remove`, `docker.tag`, `docker.push` and `docker.prune`. Each one declares its effects and `calls: ["shell.run"]`. `docker.prune` is destructive and needs `confirm: true`.
8
+
9
+ `docker.run` and `docker.exec` take `args`, the command as a list of arguments. R32 found that `command`, split at whitespace, cannot carry an argument with a space or quotes. `command` still works. The two together are an error, and `docker.exec` needs one of them.
10
+
11
+ `docker.*` is a namespace of the MCP tools, so the dev-tools MCP server gets the new procedures as tools when `bundle-mcp` and the snapshots of `impl-mcp-dev` take them.
12
+
13
+ ### Patch Changes
14
+
15
+ - c5528e4: Streams that can run without an end (roadmap R15). A procedure declares `stream: { unbounded: true }` in its metadata (`docker.logs`, for `follow`, and `shell.stream` do). `ProcedureServer` marks its stream response, and the faces that collect a stream obey the mark: HTTP without NDJSON answers 406 `NOT_ACCEPTABLE` at once (before, the request waited until a timeout), and the MCP transport stops the stream at its `streamLimits` (default 100 items or 30 seconds) and says so in the result (before, `docker.logs` with `follow` ended only at the time limit of 10 minutes).
16
+ - Updated dependencies [ddea529]
17
+ - Updated dependencies [b2a3e3a]
18
+ - Updated dependencies [a8c47f1]
19
+ - Updated dependencies [381ce3a]
20
+ - Updated dependencies [0c627f8]
21
+ - Updated dependencies [ae7f05f]
22
+ - Updated dependencies [7873940]
23
+ - Updated dependencies [a70d445]
24
+ - Updated dependencies [bc70357]
25
+ - Updated dependencies [07cc998]
26
+ - Updated dependencies [a6b01a9]
27
+ - Updated dependencies [c799cdd]
28
+ - Updated dependencies [540f8d9]
29
+ - Updated dependencies [b6daaec]
30
+ - Updated dependencies [5b9264e]
31
+ - Updated dependencies [956e88b]
32
+ - Updated dependencies [ff62281]
33
+ - Updated dependencies [d81d0ed]
34
+ - Updated dependencies [aa67cc7]
35
+ - Updated dependencies [061fa22]
36
+ - Updated dependencies [cfb9d69]
37
+ - Updated dependencies [43f7de5]
38
+ - Updated dependencies [b07bb50]
39
+ - Updated dependencies [4a3bfa1]
40
+ - Updated dependencies [bd0b626]
41
+ - Updated dependencies [a6be873]
42
+ - Updated dependencies [fb30718]
43
+ - Updated dependencies [c5528e4]
44
+ - Updated dependencies [fee5d9c]
45
+ - Updated dependencies [21f7743]
46
+ - Updated dependencies [31a0b46]
47
+ - @procedures/client@0.3.0
48
+ - @procedures/shell@0.3.0
49
+
3
50
  ## 0.2.3
4
51
 
5
52
  ### Patch Changes
package/README.md CHANGED
@@ -11,7 +11,7 @@
11
11
 
12
12
  ### Key Features
13
13
 
14
- - **Comprehensive Docker Coverage**: Run, build, pull, exec, stop, rm, ps, logs commands
14
+ - **Comprehensive Docker Coverage**: Run, build, pull, push, tag, exec, stop, rm, ps, logs, images, inspect, volume, network and prune commands
15
15
  - **Docker Compose Support**: Up and down operations for multi-container applications
16
16
  - **Type-Safe Inputs**: Zod schemas for all inputs with full TypeScript support
17
17
  - **Shell Integration**: Leverages `client-shell` for reliable CLI execution
@@ -267,7 +267,8 @@ Run a Docker container.
267
267
  env?: Record<string, string>; // Environment variables
268
268
  detach?: boolean; // Run in background (default: false)
269
269
  rm?: boolean; // Auto-remove when stopped (default: false)
270
- command?: string; // Command to run in container
270
+ command?: string; // Command to run in container, split at whitespace
271
+ args?: string[]; // The command as a list: each item is one argument (not with command)
271
272
  cwd?: string; // Working directory for command
272
273
  timeout?: number; // Command timeout in ms
273
274
  }
@@ -346,7 +347,8 @@ Execute a command in a running container.
346
347
  ```typescript
347
348
  {
348
349
  container: string; // Required: Container name or ID
349
- command: string; // Required: Command to execute
350
+ command?: string; // Command to execute, split at whitespace
351
+ args?: string[]; // The command as a list: each item is one argument. Give command or args
350
352
  interactive?: boolean; // Allocate stdin (default: false)
351
353
  tty?: boolean; // Allocate pseudo-TTY (default: false)
352
354
  workdir?: string; // Working directory inside container
@@ -517,6 +519,41 @@ await client.exec(["docker", "compose", "down"], {
517
519
  });
518
520
  ```
519
521
 
522
+ ### More procedures (roadmap R41)
523
+
524
+ Each procedure gives the common output type, and takes `cwd` and `timeout`. A failed command does not throw. A name, an image or a service that starts with `-` is refused, because docker reads it as an option. The effects column shows `metadata.effects`.
525
+
526
+ | Procedure | Input | Effects |
527
+ |---|---|---|
528
+ | `docker.compose.ps` | `file`, `services`, `all`, `format` | reads docker and fs |
529
+ | `docker.compose.logs` | `file`, `services`, `tail`, `since`, `timestamps` | reads docker and fs |
530
+ | `docker.compose.build` | `file`, `services`, `noCache`, `pull`, `buildArgs` | reads docker, fs and network, writes docker and process, not destructive |
531
+ | `docker.compose.restart` | `file`, `services`, `time` | reads docker and fs, writes docker |
532
+ | `docker.images` | `repository`, `all`, `filter`, `format` | reads docker |
533
+ | `docker.inspect` | `targets` (one or more), `type`, `format` | reads docker |
534
+ | `docker.volume.list` | `filter`, `format` | reads docker |
535
+ | `docker.volume.create` | `name`, `driver`, `labels` | writes docker, not destructive, idempotent |
536
+ | `docker.volume.remove` | `volumes` (one or more), `force` | writes docker, destructive, idempotent |
537
+ | `docker.network.list` | `filter`, `format` | reads docker |
538
+ | `docker.network.create` | `name`, `driver`, `internal`, `labels` | writes docker, not destructive, idempotent |
539
+ | `docker.network.remove` | `networks` (one or more) | writes docker, destructive, idempotent |
540
+ | `docker.tag` | `source`, `target` | writes docker, idempotent |
541
+ | `docker.push` | `image`, `allTags` | reads docker and network, writes network, idempotent |
542
+ | `docker.prune` | `kind`, `all`, `volumes`, `filter`, `confirm` | writes docker, destructive, idempotent |
543
+
544
+ - `docker.inspect` gives `data`: the parsed JSON of docker. With `format`, docker writes text, and `data` is absent.
545
+ - `docker.compose.logs` does not follow the logs. It gives the lines that exist.
546
+ - `docker.prune` needs `confirm: true`. The removed objects and their data are lost. The `kind` is `system` (the default), `container`, `image`, `volume`, `network` or `builder`.
547
+ - `docker.tag` moves the name from another image. `docker.push` replaces the image of the tag in the registry.
548
+
549
+ `docker.run` and `docker.exec` take `args`, a list of arguments, in place of `command`. Docker gets each item as one argument, so an argument can contain spaces and quotes. `command` still works, split at whitespace. The two together are an error.
550
+
551
+ ```typescript
552
+ await client.exec(["docker", "exec"], { container: "db", args: ["psql", "-c", "SELECT 'a b'"] });
553
+ const { data } = await client.exec(["docker", "inspect"], { targets: ["db"], type: "container" });
554
+ await client.exec(["docker", "prune"], { kind: "image", all: true, confirm: true });
555
+ ```
556
+
520
557
  ## Types
521
558
 
522
559
  ### Input Types