@clipboard-health/groundcrew 1.7.3 → 1.8.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 +8 -7
- package/bin/runCli.js +8 -11
- package/{src → dist}/cli.d.ts +1 -0
- package/dist/cli.d.ts.map +1 -0
- package/{src → dist}/cli.js +0 -1
- package/{src → dist}/commands/cleaner.d.ts +1 -0
- package/dist/commands/cleaner.d.ts.map +1 -0
- package/{src → dist}/commands/cleaner.js +0 -1
- package/{src → dist}/commands/cleanupWorkspace.d.ts +1 -0
- package/dist/commands/cleanupWorkspace.d.ts.map +1 -0
- package/{src → dist}/commands/cleanupWorkspace.js +0 -1
- package/{src → dist}/commands/dispatcher.d.ts +1 -0
- package/dist/commands/dispatcher.d.ts.map +1 -0
- package/{src → dist}/commands/dispatcher.js +0 -1
- package/{src → dist}/commands/doctor.d.ts +1 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/{src → dist}/commands/doctor.js +0 -1
- package/{src → dist}/commands/eligibility.d.ts +1 -0
- package/dist/commands/eligibility.d.ts.map +1 -0
- package/{src → dist}/commands/eligibility.js +0 -1
- package/{src → dist}/commands/orchestrator.d.ts +1 -0
- package/dist/commands/orchestrator.d.ts.map +1 -0
- package/{src → dist}/commands/orchestrator.js +0 -1
- package/{src → dist}/commands/remoteSetup.d.ts +1 -0
- package/dist/commands/remoteSetup.d.ts.map +1 -0
- package/{src → dist}/commands/remoteSetup.js +0 -1
- package/{src → dist}/commands/setupWorkspace.d.ts +1 -0
- package/dist/commands/setupWorkspace.d.ts.map +1 -0
- package/{src → dist}/commands/setupWorkspace.js +17 -19
- package/{src → dist}/commands/teardownReporter.d.ts +1 -0
- package/dist/commands/teardownReporter.d.ts.map +1 -0
- package/{src → dist}/commands/teardownReporter.js +0 -1
- package/{src → dist}/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -0
- package/{src → dist}/index.js +0 -1
- package/{src → dist}/lib/boardSource.d.ts +1 -0
- package/dist/lib/boardSource.d.ts.map +1 -0
- package/{src → dist}/lib/boardSource.js +0 -1
- package/{src → dist}/lib/buildSecrets.d.ts +1 -0
- package/dist/lib/buildSecrets.d.ts.map +1 -0
- package/{src → dist}/lib/buildSecrets.js +0 -1
- package/{src → dist}/lib/commandRunner.d.ts +1 -0
- package/dist/lib/commandRunner.d.ts.map +1 -0
- package/{src → dist}/lib/commandRunner.js +0 -1
- package/{src → dist}/lib/config.d.ts +1 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/{src → dist}/lib/config.js +0 -1
- package/{src → dist}/lib/host.d.ts +1 -0
- package/dist/lib/host.d.ts.map +1 -0
- package/{src → dist}/lib/host.js +0 -1
- package/{src → dist}/lib/launchCommand.d.ts +1 -0
- package/dist/lib/launchCommand.d.ts.map +1 -0
- package/{src → dist}/lib/launchCommand.js +0 -1
- package/{src → dist}/lib/localRunner.d.ts +1 -0
- package/dist/lib/localRunner.d.ts.map +1 -0
- package/{src → dist}/lib/localRunner.js +0 -1
- package/{src → dist}/lib/remoteSetupCommand.d.ts +1 -0
- package/dist/lib/remoteSetupCommand.d.ts.map +1 -0
- package/{src → dist}/lib/remoteSetupCommand.js +0 -1
- package/{src → dist}/lib/shell.d.ts +1 -0
- package/dist/lib/shell.d.ts.map +1 -0
- package/{src → dist}/lib/shell.js +0 -1
- package/{src → dist}/lib/spriteRemoteRunnerProvider.d.ts +1 -0
- package/dist/lib/spriteRemoteRunnerProvider.d.ts.map +1 -0
- package/{src → dist}/lib/spriteRemoteRunnerProvider.js +3 -14
- package/{src → dist}/lib/usage.d.ts +1 -0
- package/dist/lib/usage.d.ts.map +1 -0
- package/{src → dist}/lib/usage.js +0 -1
- package/{src → dist}/lib/util.d.ts +1 -0
- package/dist/lib/util.d.ts.map +1 -0
- package/{src → dist}/lib/util.js +0 -1
- package/{src → dist}/lib/workspaces.d.ts +1 -0
- package/dist/lib/workspaces.d.ts.map +1 -0
- package/{src → dist}/lib/workspaces.js +6 -5
- package/{src → dist}/lib/worktrees.d.ts +1 -0
- package/dist/lib/worktrees.d.ts.map +1 -0
- package/{src → dist}/lib/worktrees.js +7 -2
- package/dist/main.d.ts +2 -0
- package/dist/main.d.ts.map +1 -0
- package/{src → dist}/main.js +0 -1
- package/package.json +72 -13
- package/static/groundcrew.svg +9 -0
- package/CONTEXT.md +0 -64
- package/src/cli.js.map +0 -1
- package/src/commands/cleaner.js.map +0 -1
- package/src/commands/cleanupWorkspace.js.map +0 -1
- package/src/commands/dispatcher.js.map +0 -1
- package/src/commands/doctor.js.map +0 -1
- package/src/commands/eligibility.js.map +0 -1
- package/src/commands/orchestrator.js.map +0 -1
- package/src/commands/remoteSetup.js.map +0 -1
- package/src/commands/setupWorkspace.js.map +0 -1
- package/src/commands/teardownReporter.js.map +0 -1
- package/src/index.js.map +0 -1
- package/src/lib/boardSource.js.map +0 -1
- package/src/lib/buildSecrets.js.map +0 -1
- package/src/lib/commandRunner.js.map +0 -1
- package/src/lib/config.js.map +0 -1
- package/src/lib/host.js.map +0 -1
- package/src/lib/launchCommand.js.map +0 -1
- package/src/lib/localRunner.js.map +0 -1
- package/src/lib/remoteSetupCommand.js.map +0 -1
- package/src/lib/shell.js.map +0 -1
- package/src/lib/spriteRemoteRunnerProvider.js.map +0 -1
- package/src/lib/usage.js.map +0 -1
- package/src/lib/util.js.map +0 -1
- package/src/lib/workspaces.js.map +0 -1
- package/src/lib/worktrees.js.map +0 -1
- package/src/main.d.ts +0 -1
- package/src/main.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<h1 align="center">groundcrew</h1>
|
|
2
2
|
<p align="center">
|
|
3
|
-
<img alt="Groundcrew logo." height="250px" src="
|
|
3
|
+
<img alt="Groundcrew logo." height="250px" src="./static/groundcrew.svg">
|
|
4
4
|
</p>
|
|
5
5
|
|
|
6
6
|
Watch a Linear project and farm out ready tickets to coding-agent CLIs running in workspaces backed by git worktrees. Workspaces are [`cmux`](https://github.com/clayton-cole/cmux) panes on macOS or `tmux` windows on Linux/macOS.
|
|
@@ -58,7 +58,7 @@ This installs the `crew` binary. `@clipboard-health/clearance` is pulled in tran
|
|
|
58
58
|
|
|
59
59
|
Local setup fails before creating a worktree when the host is not macOS or `safehouse` is missing. `models.isolation`, per-model `isolation`, and per-model `sandbox` are legacy keys and now fail config validation.
|
|
60
60
|
|
|
61
|
-
6. **Set the clearance allowlist for local macOS runs.** Groundcrew starts `clearance` from `@clipboard-health/clearance` on `http://127.0.0.1:19999` (skipping the launch if something is already listening) and runs the agent through the bundled `safehouse-clearance` wrapper. Clearance refuses to start without an allowlist — see [its README](
|
|
61
|
+
6. **Set the clearance allowlist for local macOS runs.** Groundcrew starts `clearance` from `@clipboard-health/clearance` on `http://127.0.0.1:19999` (skipping the launch if something is already listening) and runs the agent through the bundled `safehouse-clearance` wrapper. Clearance refuses to start without an allowlist — see [its README](https://github.com/ClipboardHealth/core-utils/tree/main/packages/clearance) for the proxy's env vars, log paths, and DNS rules. The shortest path is to set the env before `crew run`:
|
|
62
62
|
|
|
63
63
|
```bash
|
|
64
64
|
CLEARANCE_ALLOW_HOSTS="api.openai.com,auth.openai.com,api.anthropic.com,mcp.linear.app,api.linear.app" \
|
|
@@ -82,8 +82,8 @@ This installs the `crew` binary. `@clipboard-health/clearance` is pulled in tran
|
|
|
82
82
|
--codex \
|
|
83
83
|
--copy-local-codex-auth \
|
|
84
84
|
--github \
|
|
85
|
-
--git-name "
|
|
86
|
-
--git-email "
|
|
85
|
+
--git-name "Your Name" \
|
|
86
|
+
--git-email "you@users.noreply.github.com" \
|
|
87
87
|
--mcp linear \
|
|
88
88
|
--mcp slack \
|
|
89
89
|
--checkpoint
|
|
@@ -167,6 +167,7 @@ crew cleanup <TICKET>
|
|
|
167
167
|
- **Safehouse-already-wrapped commands are not re-wrapped.** If a `models.definitions.<name>.cmd` already starts with `safehouse`, groundcrew assumes that command owns its Safehouse flags and does not add the `safehouse-clearance` wrapper a second time. Changing the proxy's allowlist after it's running requires killing the PID in `${XDG_CACHE_HOME:-$HOME/.cache}/clearance/clearance.pid` so the next launch picks up the new env.
|
|
168
168
|
- **Legacy Docker Sandboxes state is unmanaged.** Groundcrew no longer discovers or cleans `.sbx` worktrees or persistent Docker Sandboxes containers. If you have old state, inspect and remove it manually with `sbx`.
|
|
169
169
|
- **Remote cleanup is also conservative.** `crew cleanup` removes tracked remote worktrees and branches, but it does not kill active remote sessions. Use `crew remote sessions [<runner-name>]` to inspect sessions and, with the Sprite provider, `sprite sessions kill -s <runner-name> <session-id>` when Git reports a worktree is busy.
|
|
170
|
+
- **Dead tmux windows vanish by default.** When a wrapped agent command fails (e.g. `safehouse-clearance` not found, `npm install` crash), the tmux window closes immediately and the error scrolls into the void. Set `GROUNDCREW_KEEP_DEAD_WINDOWS=1` (any non-empty value works) in the env you launch `crew` from to flip the per-window `remain-on-exit` to `on`; the window stays open with the error visible. Close it manually with `tmux kill-window -t groundcrew:<ticket>` after diagnosis. tmux backend only.
|
|
170
171
|
- **Long-running remote shell tools block agent input.** Claude Code and similar TUI agents cannot accept a new prompt while one of their shell tools is still running. Use `crew remote ps <runner-name>` to inspect the remote process tree; interrupt the tool's child `PGID`, not the agent session `PGID`, with `crew remote interrupt <PGID> --runner <runner-name>`.
|
|
171
172
|
- **Codex auth in remote runners may need auth-file copy.** If `crew remote setup <runner-name> --codex` finishes interactive login but `codex login status` still fails inside the remote runner, rerun with `--copy-local-codex-auth` after confirming local Codex auth works.
|
|
172
173
|
- **Usage source defaults are OS-aware.** `codexbar` usage uses `--source auto` on macOS so CodexBar can prefer account/web sources and fall back as it supports. On Linux/WSL it uses `--source cli`, so install the CodexBar Linux CLI and authenticate the provider CLIs inside that environment.
|
|
@@ -182,10 +183,10 @@ crew cleanup <TICKET>
|
|
|
182
183
|
|
|
183
184
|
## Hacking on groundcrew
|
|
184
185
|
|
|
185
|
-
For developers working on the package itself,
|
|
186
|
+
For developers working on the package itself, clone this repo, run `npm install`, and the repo's `crew` / `crew:op` scripts execute groundcrew straight from TypeScript source — no build step. Package dependencies, including `@clipboard-health/clearance`, resolve through normal npm package exports.
|
|
186
187
|
|
|
187
188
|
```bash
|
|
188
|
-
cd ~/dev/c/
|
|
189
|
+
cd ~/dev/c/groundcrew
|
|
189
190
|
node --run crew -- doctor
|
|
190
191
|
|
|
191
192
|
# With 1Password for LINEAR_API_KEY:
|
|
@@ -196,4 +197,4 @@ Both forms read `${XDG_CONFIG_HOME:-$HOME/.config}/groundcrew/config.ts` by defa
|
|
|
196
197
|
|
|
197
198
|
Logs land in `${XDG_STATE_HOME:-$HOME/.local/state}/groundcrew/groundcrew.log` by default (override via `logging.file` in your config). The "Loaded config from …" line at startup tells you which config won.
|
|
198
199
|
|
|
199
|
-
Source edits in `
|
|
200
|
+
Source edits in `src/**` are picked up on the next invocation. Requires Node ≥ 24.3 (the version with native `.ts` type stripping enabled by default).
|
package/bin/runCli.js
CHANGED
|
@@ -5,28 +5,25 @@ import { join } from "node:path";
|
|
|
5
5
|
import { pathToFileURL } from "node:url";
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
|
-
* Load a side-effecting entrypoint by basename. In published/built mode,
|
|
9
|
-
* imports the compiled
|
|
10
|
-
* present), spawns a child node that loads the `.ts`
|
|
11
|
-
*
|
|
12
|
-
* `@clipboard-health/*` workspace deps also resolve to source.
|
|
8
|
+
* Load a side-effecting entrypoint by basename. In published/built mode,
|
|
9
|
+
* dynamically imports the compiled `dist/${name}.js` in-process. In source/dev
|
|
10
|
+
* mode (no compiled output present), spawns a child node that loads the `.ts`
|
|
11
|
+
* source while dependencies resolve through normal package exports.
|
|
13
12
|
*
|
|
14
13
|
* @param {string} packageRoot
|
|
15
14
|
* @param {string} name
|
|
16
15
|
*/
|
|
17
16
|
export async function runCli(packageRoot, name) {
|
|
18
|
-
const compiledPath = join(packageRoot, "
|
|
17
|
+
const compiledPath = join(packageRoot, "dist", `${name}.js`);
|
|
19
18
|
if (existsSync(compiledPath)) {
|
|
20
19
|
await import(pathToFileURL(compiledPath).href);
|
|
21
20
|
return;
|
|
22
21
|
}
|
|
23
22
|
|
|
24
23
|
const sourcePath = join(packageRoot, "src", `${name}.ts`);
|
|
25
|
-
const result = spawnSync(
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
{ stdio: "inherit" },
|
|
29
|
-
);
|
|
24
|
+
const result = spawnSync(process.execPath, [sourcePath, ...process.argv.slice(2)], {
|
|
25
|
+
stdio: "inherit",
|
|
26
|
+
});
|
|
30
27
|
|
|
31
28
|
if (result.error !== undefined) {
|
|
32
29
|
throw result.error;
|
package/{src → dist}/cli.d.ts
RENAMED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAiGA,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAyBvD"}
|
package/{src → dist}/cli.js
RENAMED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cleaner.d.ts","sourceRoot":"","sources":["../../src/commands/cleaner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,UAAU,EAAoB,MAAM,uBAAuB,CAAC;AAC1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,KAAK,aAAa,EAAa,MAAM,qBAAqB,CAAC;AAGpE,UAAU,WAAW;IACnB,MAAM,EAAE,cAAc,CAAC;CACxB;AAED,MAAM,WAAW,OAAO;IACtB,OAAO,CAAC,UAAU,EAAE;QAClB,KAAK,EAAE,UAAU,CAAC;QAClB,eAAe,EAAE,SAAS,aAAa,EAAE,CAAC;QAC1C,MAAM,EAAE,OAAO,CAAC;QAChB,MAAM,CAAC,EAAE,WAAW,CAAC;KACtB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnB;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAqDxD"}
|
|
@@ -6,3 +6,4 @@ export interface CleanupWorkspaceOptions {
|
|
|
6
6
|
}
|
|
7
7
|
export declare function cleanupWorkspace(config: ResolvedConfig, options: CleanupWorkspaceOptions): Promise<void>;
|
|
8
8
|
export declare function cleanupWorkspaceCli(argv: string[]): Promise<void>;
|
|
9
|
+
//# sourceMappingURL=cleanupWorkspace.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cleanupWorkspace.d.ts","sourceRoot":"","sources":["../../src/commands/cleanupWorkspace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAKnE,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,kFAAkF;IAClF,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAwBD,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,IAAI,CAAC,CAcf;AAED,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAIvE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dispatcher.d.ts","sourceRoot":"","sources":["../../src/commands/dispatcher.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EACL,KAAK,UAAU,EAIhB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAGpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAczD,UAAU,cAAc;IACtB,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,EAAE,YAAY,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,UAAU,EAAE;QAClB,KAAK,EAAE,UAAU,CAAC;QAClB,eAAe,EAAE,SAAS,aAAa,EAAE,CAAC;QAC1C,+FAA+F;QAC/F,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;QACvD,MAAM,EAAE,OAAO,CAAC;QAChB,MAAM,CAAC,EAAE,WAAW,CAAC;KACtB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnB;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,cAAc,GAAG,UAAU,CAoQjE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAmIH,wBAAsB,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,CAmE/C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eligibility.d.ts","sourceRoot":"","sources":["../../src/commands/eligibility.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAgB,KAAK,eAAe,EAAoB,MAAM,uBAAuB,CAAC;AAC7F,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,KAAK,UAAU,GACX,SAAS,GACT,oBAAoB,GACpB,oBAAoB,GACpB,iBAAiB,GACjB,4BAA4B,GAC5B,mBAAmB,CAAC;AAExB,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,eAAe,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,8EAA8E;IAC9E,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,eAAe,CAAC;IACvB,sBAAsB;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,WAAW,EAAE,UAAU,CAAC;IACxB,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,KAAK,OAAO,GAAG,YAAY,GAAG,WAAW,CAAC;AAE1C,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,cAAc,CAAC;IACvB;;;;;OAKG;IACH,SAAS,EAAE,SAAS,eAAe,EAAE,CAAC;IACtC,eAAe,EAAE,SAAS,aAAa,EAAE,CAAC;IAC1C,cAAc,EAAE,cAAc,CAAC;IAC/B,KAAK,EAAE,YAAY,CAAC;IACpB,oDAAoD;IACpD,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACvB,qDAAqD;IACrD,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,UAAU,qBAAqB;IAC7B,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB;AAqCD;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE,YAAY,EACnB,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,GACrB,MAAM,GAAG,SAAS,CAepB;AA4CD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,SAAS,eAAe,EAAE,GAC/B,qBAAqB,CAYvB;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,iBAAiB,GAAG,OAAO,EAAE,CAgE5E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/commands/orchestrator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA4LH,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;CACjB;AAiBD,wBAAsB,WAAW,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgC7E"}
|
|
@@ -47,3 +47,4 @@ export declare function listRemoteProcesses(options: RemoteProcessOptions): Prom
|
|
|
47
47
|
export declare function interruptRemoteProcessGroup(options: RemoteInterruptOptions): Promise<void>;
|
|
48
48
|
export declare function setupRemoteRunner(options: RemoteSetupOptions): Promise<void>;
|
|
49
49
|
export declare function remoteCli(argv: string[]): Promise<void>;
|
|
50
|
+
//# sourceMappingURL=remoteSetup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remoteSetup.d.ts","sourceRoot":"","sources":["../../src/commands/remoteSetup.ts"],"names":[],"mappings":"AAwBA,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;IACtB,wBAAwB,EAAE,OAAO,CAAC;IAClC,uBAAuB,EAAE,OAAO,CAAC;IACjC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,wBAAwB,EAAE,OAAO,CAAC;IAClC,qBAAqB,EAAE,OAAO,CAAC;IAC/B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,4BAA4B,EAAE,OAAO,CAAC;IACtC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,oBAAoB;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,sBAAsB;IACrC,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AA4rBD,wBAAsB,yBAAyB,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6B9F;AAUD,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAItF;AAED,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAGrF;AAED,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAItF;AAED,wBAAsB,2BAA2B,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAGhG;AAYD,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6BlF;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA2B7D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setupWorkspace.d.ts","sourceRoot":"","sources":["../../src/commands/setupWorkspace.ts"],"names":[],"mappings":"AAOA,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,eAAe,EACrB,MAAM,kBAAkB,CAAC;AAa1B,UAAU,aAAa;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAgBD,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,wEAAwE;IACxE,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAkED,wBAAsB,cAAc,CAClC,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,qBAAqB,EAC9B,UAAU,GAAE,wBAA6B,GACxC,OAAO,CAAC,IAAI,CAAC,CA6Ef;AAuHD,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,MAAM,EACd,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GACjC,OAAO,CAAC,IAAI,CAAC,CAoBf"}
|
|
@@ -54,6 +54,17 @@ function stageLaunchScript(promptDir, command) {
|
|
|
54
54
|
writeFileSync(launcherFile, `#!/usr/bin/env bash\n${command}\n`, { mode: 0o700 });
|
|
55
55
|
return launcherFile;
|
|
56
56
|
}
|
|
57
|
+
function stagePrompt(input) {
|
|
58
|
+
const promptDir = mkdtempSync(join(tmpdir(), `groundcrew-${input.ticket}-`));
|
|
59
|
+
const promptFile = join(promptDir, "prompt.txt");
|
|
60
|
+
writeFileSync(promptFile, renderPrompt(input.config.prompts.initial, {
|
|
61
|
+
ticket: input.ticket,
|
|
62
|
+
worktree: input.worktreeName,
|
|
63
|
+
title: input.ticketDetails.title,
|
|
64
|
+
description: input.ticketDetails.description,
|
|
65
|
+
}));
|
|
66
|
+
return { directory: promptDir, file: promptFile };
|
|
67
|
+
}
|
|
57
68
|
export async function setupWorkspace(config, options, runOptions = {}) {
|
|
58
69
|
const { ticket, repository, model } = options;
|
|
59
70
|
const runner = options.runner ?? "local";
|
|
@@ -95,18 +106,12 @@ export async function setupWorkspace(config, options, runOptions = {}) {
|
|
|
95
106
|
else {
|
|
96
107
|
ticketDetails = options.details;
|
|
97
108
|
}
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
writeFileSync(promptFile, renderPrompt(config.prompts.initial, {
|
|
101
|
-
ticket,
|
|
102
|
-
worktree: worktreeName,
|
|
103
|
-
title: ticketDetails.title,
|
|
104
|
-
description: ticketDetails.description,
|
|
105
|
-
}));
|
|
109
|
+
const stagedPrompt = stagePrompt({ config, ticket, ticketDetails, worktreeName });
|
|
110
|
+
promptDir = stagedPrompt.directory;
|
|
106
111
|
const secretsFile = stageBuildSecrets(promptDir);
|
|
107
112
|
const launchCmd = buildLaunchCommand({
|
|
108
113
|
definition,
|
|
109
|
-
promptFile,
|
|
114
|
+
promptFile: stagedPrompt.file,
|
|
110
115
|
worktreeDir: launchDir,
|
|
111
116
|
secretsFile,
|
|
112
117
|
});
|
|
@@ -151,14 +156,8 @@ async function setupRemoteWorkspace(arguments_) {
|
|
|
151
156
|
let promptDir;
|
|
152
157
|
try {
|
|
153
158
|
const ticketDetails = await resolveTicketDetails(options);
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
writeFileSync(promptFile, renderPrompt(config.prompts.initial, {
|
|
157
|
-
ticket,
|
|
158
|
-
worktree: worktreeName,
|
|
159
|
-
title: ticketDetails.title,
|
|
160
|
-
description: ticketDetails.description,
|
|
161
|
-
}));
|
|
159
|
+
const stagedPrompt = stagePrompt({ config, ticket, ticketDetails, worktreeName });
|
|
160
|
+
promptDir = stagedPrompt.directory;
|
|
162
161
|
const secretsFile = stageBuildSecrets(promptDir, config.remote.secretNames);
|
|
163
162
|
const remotePromptFile = `/tmp/groundcrew-${ticket}-prompt.txt`;
|
|
164
163
|
const remoteSecretsFile = secretsFile === undefined ? undefined : `/tmp/groundcrew-${ticket}-secrets.env`;
|
|
@@ -166,7 +165,7 @@ async function setupRemoteWorkspace(arguments_) {
|
|
|
166
165
|
definition,
|
|
167
166
|
provider: getRemoteRunnerProvider(config.remote.provider),
|
|
168
167
|
remoteConfig: config.remote,
|
|
169
|
-
promptFile,
|
|
168
|
+
promptFile: stagedPrompt.file,
|
|
170
169
|
remotePromptFile,
|
|
171
170
|
worktreeDir: remoteWorktreeDir,
|
|
172
171
|
secretNames: config.remote.secretNames,
|
|
@@ -243,4 +242,3 @@ export async function setupWorkspaceCli(ticket, options = {}) {
|
|
|
243
242
|
details: { title: resolved.title, description: resolved.description },
|
|
244
243
|
});
|
|
245
244
|
}
|
|
246
|
-
//# sourceMappingURL=setupWorkspace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"teardownReporter.d.ts","sourceRoot":"","sources":["../../src/commands/teardownReporter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,wBAAgB,WAAW,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAmBxD;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAwCjE"}
|
package/{src → dist}/index.d.ts
RENAMED
|
@@ -7,3 +7,4 @@ export { setupWorkspace, type SetupWorkspaceOptions } from "./commands/setupWork
|
|
|
7
7
|
export type { Config, ModelDefinition, RemoteRunnerConfig, RemoteRunnerProviderName, ResolvedConfig, WorkspaceRunner, } from "./lib/config.ts";
|
|
8
8
|
export { loadConfig } from "./lib/config.ts";
|
|
9
9
|
export { getUsageByModel, type UsageByModel } from "./lib/usage.ts";
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,KAAK,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAChG,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,KAAK,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACnF,OAAO,EACL,yBAAyB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,iBAAiB,GAClB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAC1F,YAAY,EACV,MAAM,EACN,eAAe,EACf,kBAAkB,EAClB,wBAAwB,EACxB,cAAc,EACd,eAAe,GAChB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
|
package/{src → dist}/index.js
RENAMED
|
@@ -6,4 +6,3 @@ export { bootstrapRemoteRepository, setupRemoteRunner, } from "./commands/remote
|
|
|
6
6
|
export { setupWorkspace } from "./commands/setupWorkspace.js";
|
|
7
7
|
export { loadConfig } from "./lib/config.js";
|
|
8
8
|
export { getUsageByModel } from "./lib/usage.js";
|
|
9
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"boardSource.d.ts","sourceRoot":"","sources":["../../src/lib/boardSource.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAmB,KAAK,cAAc,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAMzF,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,0FAA0F;IAC1F,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,0FAA0F;IAC1F,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,0FAA0F;IAC1F,MAAM,EAAE,eAAe,GAAG,SAAS,CAAC;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,eAAe,CAAC;CACzB,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,IAAI,eAAe,CAExE;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,KAAK,EAAE,CAAC;CACjB;AAED,qBAAa,yBAA0B,SAAQ,KAAK;IAClD,YAAmB,UAAU,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,EAMjF;CACF;AAED,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,8DAA8D;IAC9D,KAAK,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;CAC9B;AAED,UAAU,eAAe;IACvB,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,EAAE,YAAY,CAAC;CACtB;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,eAAe,GAAG,WAAW,CAUpE;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAEhF;AA+LD,UAAU,aAAa;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,eAAe,CAAC;CACzB;AAID;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,UAAU,EAAE;IACnD,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC,aAAa,CAAC,CAwCzB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildSecrets.d.ts","sourceRoot":"","sources":["../../src/lib/buildSecrets.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,kBAAkB,YAAI,WAAW,EAAE,WAAW,CAAU,CAAC"}
|
|
@@ -17,3 +17,4 @@ export declare function runCommandAsync(command: string, arguments_: readonly st
|
|
|
17
17
|
export declare function runCommandAsync(command: string, arguments_: readonly string[], options?: RunCommandOptions & {
|
|
18
18
|
stdio?: "captured";
|
|
19
19
|
}): Promise<string>;
|
|
20
|
+
//# sourceMappingURL=commandRunner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commandRunner.d.ts","sourceRoot":"","sources":["../../src/lib/commandRunner.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,iBAAiB;IAChC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IAC/B,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAgB,UAAU,CACxB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,SAAS,MAAM,EAAE,EAC7B,OAAO,EAAE,iBAAiB,GAAG;IAAE,KAAK,EAAE,SAAS,CAAA;CAAE,GAChD,IAAI,CAAC;AACR,wBAAgB,UAAU,CACxB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,SAAS,MAAM,EAAE,EAC7B,OAAO,CAAC,EAAE,iBAAiB,GAAG;IAAE,KAAK,CAAC,EAAE,UAAU,CAAA;CAAE,GACnD,MAAM,CAAC;AA8BV,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,SAAS,MAAM,EAAE,EAC7B,OAAO,EAAE,iBAAiB,GAAG;IAAE,KAAK,EAAE,SAAS,CAAA;CAAE,GAChD,OAAO,CAAC,SAAS,CAAC,CAAC;AACtB,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,SAAS,MAAM,EAAE,EAC7B,OAAO,CAAC,EAAE,iBAAiB,GAAG;IAAE,KAAK,CAAC,EAAE,UAAU,CAAA;CAAE,GACnD,OAAO,CAAC,MAAM,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,3 +26,4 @@ export interface HostCapabilities {
|
|
|
26
26
|
*/
|
|
27
27
|
export declare function which(cmd: string, signal?: AbortSignal): Promise<string | undefined>;
|
|
28
28
|
export declare function detectHostCapabilities(signal?: AbortSignal): Promise<HostCapabilities>;
|
|
29
|
+
//# sourceMappingURL=host.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../src/lib/host.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,MAAM,WAAW,gBAAgB;IAC/B,mDAAmD;IACnD,YAAY,EAAE,OAAO,CAAC;IACtB,8CAA8C;IAC9C,OAAO,EAAE,OAAO,CAAC;IACjB,8CAA8C;IAC9C,OAAO,EAAE,OAAO,CAAC;IACjB,+EAA+E;IAC/E,OAAO,EAAE,OAAO,CAAC;IACjB;;;;OAIG;IACH,oBAAoB,EAAE,OAAO,CAAC;CAC/B;AAED;;;;GAIG;AACH,wBAAsB,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAc1F;AAED,wBAAsB,sBAAsB,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAc5F"}
|
package/{src → dist}/lib/host.js
RENAMED
|
@@ -45,3 +45,4 @@ interface RemoteLaunchCommandArguments {
|
|
|
45
45
|
*/
|
|
46
46
|
export declare function buildLaunchCommand(arguments_: LaunchCommandArguments): string;
|
|
47
47
|
export declare function buildRemoteLaunchCommand(arguments_: RemoteLaunchCommandArguments): string;
|
|
48
|
+
//# sourceMappingURL=launchCommand.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"launchCommand.d.ts","sourceRoot":"","sources":["../../src/lib/launchCommand.ts"],"names":[],"mappings":"AAIA,OAAO,EAIL,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACxB,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAE5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C;;;;;;;;;GASG;AACH,wBAAgB,6BAA6B,CAAC,OAAO,GAAE,MAAwB,GAAG,MAAM,CAcvF;AA+BD,UAAU,sBAAsB;IAC9B,UAAU,EAAE,eAAe,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC;AAED,UAAU,4BAA4B;IACpC,UAAU,EAAE,eAAe,CAAC;IAC5B,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,YAAY,EAAE,kBAAkB,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACxC;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,sBAAsB,GAAG,MAAM,CA2B7E;AAED,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,4BAA4B,GAAG,MAAM,CAiDzF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"localRunner.d.ts","sourceRoot":"","sources":["../../src/lib/localRunner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAElD,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI,CAW1E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remoteSetupCommand.d.ts","sourceRoot":"","sources":["../../src/lib/remoteSetupCommand.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,4BAA4B,QA8B3B,CAAC"}
|
|
@@ -29,4 +29,3 @@ export const DEFAULT_REMOTE_SETUP_COMMAND = [
|
|
|
29
29
|
'if [ -n "$required_npm" ]; then npm install --global "npm@$required_npm" --no-audit --no-fund && hash -r; fi',
|
|
30
30
|
"if [ -x .claude/setup.sh ]; then ./.claude/setup.sh --deps-only; elif [ -f .claude/setup.sh ] && command -v bash >/dev/null 2>&1; then bash .claude/setup.sh --deps-only; else npm clean-install; fi",
|
|
31
31
|
].join(" && ");
|
|
32
|
-
//# sourceMappingURL=remoteSetupCommand.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../src/lib/shell.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEtD"}
|
|
@@ -66,3 +66,4 @@ export declare const spriteRemoteRunnerProvider: RemoteRunnerProvider;
|
|
|
66
66
|
export declare function remoteConfigWithRunnerName(runnerName: string): RemoteRunnerConfig;
|
|
67
67
|
export declare function getRemoteRunnerProvider(provider: RemoteRunnerProviderName): RemoteRunnerProvider;
|
|
68
68
|
export {};
|
|
69
|
+
//# sourceMappingURL=spriteRemoteRunnerProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spriteRemoteRunnerProvider.d.ts","sourceRoot":"","sources":["../../src/lib/spriteRemoteRunnerProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,9 +19,10 @@ function escapeRegExp(value) {
|
|
|
19
19
|
function spriteFileArguments(files = []) {
|
|
20
20
|
return files.flatMap((file) => ["--file", `${file.localPath}:${file.remotePath}`]);
|
|
21
21
|
}
|
|
22
|
-
function spriteExecArguments(arguments_) {
|
|
22
|
+
function spriteExecArguments(arguments_, options = {}) {
|
|
23
23
|
const args = [
|
|
24
24
|
"exec",
|
|
25
|
+
...(options.isTty === true ? ["--tty"] : []),
|
|
25
26
|
"-s",
|
|
26
27
|
arguments_.config.runnerName,
|
|
27
28
|
...spriteFileArguments(arguments_.files),
|
|
@@ -33,18 +34,7 @@ function spriteExecArguments(arguments_) {
|
|
|
33
34
|
return args;
|
|
34
35
|
}
|
|
35
36
|
function spriteTtyExecArguments(arguments_) {
|
|
36
|
-
|
|
37
|
-
"exec",
|
|
38
|
-
"--tty",
|
|
39
|
-
"-s",
|
|
40
|
-
arguments_.config.runnerName,
|
|
41
|
-
...spriteFileArguments(arguments_.files),
|
|
42
|
-
];
|
|
43
|
-
if (arguments_.workingDirectory !== undefined) {
|
|
44
|
-
args.push("--dir", arguments_.workingDirectory);
|
|
45
|
-
}
|
|
46
|
-
args.push("--", ...arguments_.remoteArguments);
|
|
47
|
-
return args;
|
|
37
|
+
return spriteExecArguments(arguments_, { isTty: true });
|
|
48
38
|
}
|
|
49
39
|
async function runSprite(args, options) {
|
|
50
40
|
if (options?.stdio === "inherit") {
|
|
@@ -270,4 +260,3 @@ export function getRemoteRunnerProvider(provider) {
|
|
|
270
260
|
}
|
|
271
261
|
throw new Error(`Unknown remote provider: ${JSON.stringify(provider)}`);
|
|
272
262
|
}
|
|
273
|
-
//# sourceMappingURL=spriteRemoteRunnerProvider.js.map
|
|
@@ -24,3 +24,4 @@ export type UsageByModel = Record<string, NormalizedUsage>;
|
|
|
24
24
|
export declare const EXHAUSTED_USAGE: NormalizedUsage;
|
|
25
25
|
export declare function getUsageByModel(config: ResolvedConfig, signal?: AbortSignal): Promise<UsageByModel>;
|
|
26
26
|
export {};
|
|
27
|
+
//# sourceMappingURL=usage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../../src/lib/usage.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAmB,cAAc,EAAE,MAAM,aAAa,CAAC;AA+BnE,UAAU,eAAe;IACvB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;AAE3D;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,EAAE,eAK7B,CAAC;AAyGF,wBAAsB,eAAe,CACnC,MAAM,EAAE,cAAc,EACtB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,YAAY,CAAC,CA6BvB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/lib/util.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,wBAAsB,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAoB3E;AAED,wBAAgB,WAAW,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAIlD;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAGhD;AAED,wBAAgB,WAAW,IAAI,IAAI,CAGlC;AAOD,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAEzD;AAkBD,wBAAgB,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAKzC;AAED,KAAK,kBAAkB,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;AAUpF,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,IAAI,CAWxF;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGxE;AAED,wBAAgB,eAAe,IAAI,YAAY,CAM9C;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAcnD"}
|
package/{src → dist}/lib/util.js
RENAMED