@snappedly-tools/shipyard 0.2.0 → 0.3.1

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 (36) hide show
  1. package/README.md +14 -11
  2. package/dist/{SandboxProvider-KeFp_nju.d.ts → SandboxProvider-XJQqEdSf.d.ts} +4 -0
  3. package/dist/chunk-2GT3OPO5.js +2620 -0
  4. package/dist/chunk-2GT3OPO5.js.map +1 -0
  5. package/dist/{chunk-CP6YEQKU.js → chunk-KMGNFXKN.js} +2 -6
  6. package/dist/chunk-KMGNFXKN.js.map +1 -0
  7. package/dist/{chunk-OAHPDSOJ.js → chunk-OCJKONZ7.js} +90 -22
  8. package/dist/chunk-OCJKONZ7.js.map +1 -0
  9. package/dist/chunk-VDHZO5PP.js +113 -0
  10. package/dist/chunk-VDHZO5PP.js.map +1 -0
  11. package/dist/{chunk-YVJHSJUW.js → chunk-VW4MI5GJ.js} +5 -6
  12. package/dist/chunk-VW4MI5GJ.js.map +1 -0
  13. package/dist/chunk-WA7QPAXO.js +50 -0
  14. package/dist/chunk-WA7QPAXO.js.map +1 -0
  15. package/dist/index.d.ts +28 -5
  16. package/dist/index.js +471 -297
  17. package/dist/index.js.map +1 -1
  18. package/dist/main.js +242 -19347
  19. package/dist/main.js.map +1 -1
  20. package/dist/sandboxes/docker.d.ts +1 -1
  21. package/dist/sandboxes/docker.js +4 -7
  22. package/dist/sandboxes/no-sandbox.d.ts +1 -1
  23. package/dist/sandboxes/no-sandbox.js +2 -5
  24. package/dist/sandboxes/vercel.d.ts +1 -1
  25. package/dist/sandboxes/vercel.js +2 -4
  26. package/dist/sandboxes/vercel.js.map +1 -1
  27. package/package.json +15 -12
  28. package/dist/chunk-4VDXZY7T.js +0 -27624
  29. package/dist/chunk-4VDXZY7T.js.map +0 -1
  30. package/dist/chunk-BU6XJFJ2.js +0 -90
  31. package/dist/chunk-BU6XJFJ2.js.map +0 -1
  32. package/dist/chunk-CP6YEQKU.js.map +0 -1
  33. package/dist/chunk-OAHPDSOJ.js.map +0 -1
  34. package/dist/chunk-SRUH232X.js +0 -26712
  35. package/dist/chunk-SRUH232X.js.map +0 -1
  36. package/dist/chunk-YVJHSJUW.js.map +0 -1
package/README.md CHANGED
@@ -23,7 +23,8 @@ branches, logs, sessions, and commits.
23
23
 
24
24
  ## Quick start
25
25
 
26
- You need Node.js, Git, Docker, and credentials for your chosen coding agent.
26
+ You need Node.js 20.18.1 or newer, Git, Docker, and credentials for your chosen
27
+ coding agent.
27
28
  Run these commands inside the Git repository the agent should change:
28
29
 
29
30
  ```sh
@@ -123,16 +124,18 @@ untracked or ignored files.
123
124
  the chosen agent. Keep `.shipyard/.env`, agent login files, logs, and recovery
124
125
  patches private.
125
126
 
126
- For Codex, choose either:
127
-
128
- - ChatGPT authentication: select `chatgpt` during init and complete the
129
- browser login. The generated configuration mounts `~/.codex/auth.json`
130
- read-only.
131
- - API authentication: select `api-key` and put `OPENAI_API_KEY` in
132
- `.shipyard/.env`.
133
-
134
- For Claude Code, run `claude setup-token` and put the resulting value in the
135
- generated `CLAUDE_CODE_OAUTH_TOKEN` entry.
127
+ Use a subscription first when the selected agent supports it. If subscription
128
+ authentication does not work in your environment, use the API-key fallback:
129
+
130
+ - Codex subscription authentication: run `codex login` on the host, then pass
131
+ `--codex-auth chatgpt` to `shipyard init`. The generated configuration mounts
132
+ `~/.codex/auth.json` read-only.
133
+ - Codex API authentication: pass `--codex-auth api-key` and put
134
+ `OPENAI_API_KEY` in `.shipyard/.env`.
135
+ - Claude Code subscription authentication: run `claude setup-token` on the
136
+ host and put the result in `CLAUDE_CODE_OAUTH_TOKEN` in `.shipyard/.env`.
137
+ - Claude Code API authentication: uncomment `ANTHROPIC_API_KEY` in
138
+ `.shipyard/.env` and put your API key there.
136
139
 
137
140
  ## Generated files
138
141
 
@@ -16,6 +16,8 @@ interface InteractiveExecOptions {
16
16
  readonly stdout: NodeJS.WritableStream;
17
17
  readonly stderr: NodeJS.WritableStream;
18
18
  readonly cwd?: string;
19
+ /** Terminate the interactive process when the caller cancels the session. */
20
+ readonly signal?: AbortSignal;
19
21
  }
20
22
  /** Handle to a running bind-mount sandbox. */
21
23
  interface BindMountSandboxHandle {
@@ -48,6 +50,7 @@ interface BindMountSandboxHandle {
48
50
  * Optional — providers that support interactive sessions implement this.
49
51
  * The provider detects TTY mode from the streams (e.g. stdin.isTTY) and
50
52
  * allocates a pseudo-terminal accordingly.
53
+ * Implementations MUST terminate the underlying process when `signal` aborts.
51
54
  */
52
55
  interactiveExec?(args: string[], options: InteractiveExecOptions): Promise<{
53
56
  exitCode: number;
@@ -120,6 +123,7 @@ interface IsolatedSandboxHandle {
120
123
  * Optional — providers that support interactive sessions implement this.
121
124
  * The provider detects TTY mode from the streams (e.g. stdin.isTTY) and
122
125
  * allocates a pseudo-terminal accordingly.
126
+ * Implementations MUST terminate the underlying process when `signal` aborts.
123
127
  */
124
128
  interactiveExec?(args: string[], options: InteractiveExecOptions): Promise<{
125
129
  exitCode: number;