@firedrill-run/ci-client 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/NOTICE.md +15 -0
- package/README.md +42 -0
- package/dist/client-bin.js +27 -0
- package/dist/client-cli.js +63058 -0
- package/dist/distribution.json +1779 -0
- package/dist/licenses/@firedrill-run__browser-tests/LICENSE +201 -0
- package/dist/licenses/@firedrill-run__browser-tests/NOTICE +4 -0
- package/dist/licenses/@firedrill-run__compiler/LICENSE +201 -0
- package/dist/licenses/@firedrill-run__compiler/NOTICE +4 -0
- package/dist/licenses/@firedrill-run__contracts/LICENSE +201 -0
- package/dist/licenses/@firedrill-run__contracts/NOTICE +4 -0
- package/dist/licenses/@firedrill-run__drills/LICENSE +201 -0
- package/dist/licenses/@firedrill-run__drills/NOTICE +4 -0
- package/dist/licenses/@firedrill-run__sdk/LICENSE +201 -0
- package/dist/licenses/@firedrill-run__sdk/NOTICE +4 -0
- package/dist/licenses/@firedrill-run__world-ir/LICENSE +201 -0
- package/dist/licenses/@firedrill-run__world-ir/NOTICE +4 -0
- package/dist/licenses/ajv/LICENSE +22 -0
- package/dist/licenses/ajv-formats/LICENSE +21 -0
- package/dist/licenses/fast-deep-equal/LICENSE +21 -0
- package/dist/licenses/fast-uri/LICENSE +30 -0
- package/dist/licenses/json-schema-traverse/LICENSE +21 -0
- package/dist/licenses/jsonc-parser/LICENSE.md +21 -0
- package/dist/licenses/semver/LICENSE +15 -0
- package/dist/licenses/tsx/LICENSE +21 -0
- package/dist/licenses/yaml/LICENSE +13 -0
- package/dist/licenses/zod/LICENSE +21 -0
- package/package.json +29 -0
package/NOTICE.md
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# Distribution notices
|
|
2
|
+
|
|
3
|
+
The Firedrill CI client wrapper and platform-authored orchestration are proprietary
|
|
4
|
+
to Reload Tech Inc. This package does not grant a source redistribution license
|
|
5
|
+
for those components and imposes no local license-key execution check.
|
|
6
|
+
|
|
7
|
+
Bundled historical Firedrill engine contributions retain their Apache-2.0 license.
|
|
8
|
+
They are limited to compiler, schema, target invocation and capture support; no
|
|
9
|
+
world kernel, state store or server is distributed. Third-party modules retain
|
|
10
|
+
their original licenses. Complete package license and NOTICE files are included
|
|
11
|
+
under `dist/licenses/`; inline license notices are preserved in the bundle.
|
|
12
|
+
|
|
13
|
+
`dist/distribution.json` records the reviewed emitted module paths and the source
|
|
14
|
+
revision used to build the client. It is a dependency-boundary receipt, not a
|
|
15
|
+
claim that npm can publicly verify a private source repository.
|
package/README.md
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Firedrill CI client
|
|
2
|
+
|
|
3
|
+
Install on a Node.js 24 runner with `npm install --save-dev @firedrill-run/cloud @firedrill-run/ci-client`.
|
|
4
|
+
Run `npx firedrill ci --help` (or `npx firedrill-ci --help`). This package is an
|
|
5
|
+
authenticated client, not a standalone world runtime. Your own agent command
|
|
6
|
+
runs in a separate process on your runner.
|
|
7
|
+
|
|
8
|
+
```sh
|
|
9
|
+
firedrill ci run --auth github \
|
|
10
|
+
--project prj_... --environment env_... --repository-binding repo_... \
|
|
11
|
+
--revision "$CHECKED_OUT_SHA" \
|
|
12
|
+
--agent-command python --agent-arguments '["test/firedrill_agent.py"]'
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
GitHub jobs require `id-token: write` and a configured Firedrill repository
|
|
16
|
+
binding. Check out the exact base/head revision for a pull request, never its
|
|
17
|
+
synthetic merge commit. Other triggers run their exact revision. OIDC exchange
|
|
18
|
+
and the managed service retain repository, project and invocation authorization.
|
|
19
|
+
|
|
20
|
+
Other runners can use `--auth token` with a service credential supplied through
|
|
21
|
+
`FIREDRILL_CREDENTIAL`, plus explicit `--runner-id` and `--idempotency-scope`.
|
|
22
|
+
Keep the same scope and exact arguments after uncertain network outcomes. This
|
|
23
|
+
does not create a repository connection, approve Tools, or invent missing builds.
|
|
24
|
+
|
|
25
|
+
An explicit `--agent-command` is required even when source declares a module,
|
|
26
|
+
command or HTTP target. The source's target identity, protocol bindings and
|
|
27
|
+
timeout remain authoritative; only its launcher is replaced by your selected
|
|
28
|
+
subprocess. The command receives invocation JSON on stdin and scoped world
|
|
29
|
+
bindings in its environment, writes one JSON value to stdout, and logs to stderr.
|
|
30
|
+
No shell is used. GitHub, OIDC, control and dynamic-loader variables are stripped;
|
|
31
|
+
model credentials remain caller-owned. File/capture content is caller-provided
|
|
32
|
+
and must be redacted before collection. This is not an OS sandbox.
|
|
33
|
+
|
|
34
|
+
Exit 0 means the service's returned gate allows the suite, 1 blocks it, and 2
|
|
35
|
+
means setup failed. JSON, JUnit and terminal reports remain under `.firedrill/ci`.
|
|
36
|
+
Capture is off unless explicitly selected. `--capture-logs always` (or
|
|
37
|
+
`retain-on-failure`) captures subprocess stderr through the canonical capture
|
|
38
|
+
manager. The screenshots/video/files options are retention policies, not
|
|
39
|
+
automatic browser recording or a subprocess file-submission protocol; use the
|
|
40
|
+
SDK's explicit capture callback when that integration is needed.
|
|
41
|
+
This client does not run a local world
|
|
42
|
+
or require access to the private source repository or a private GitHub Action.
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { runCiCli } from "./client-cli.js";
|
|
3
|
+
const controller = new AbortController();
|
|
4
|
+
let signalExitCode;
|
|
5
|
+
const interrupt = () => {
|
|
6
|
+
signalExitCode = 130;
|
|
7
|
+
controller.abort();
|
|
8
|
+
};
|
|
9
|
+
const terminate = () => {
|
|
10
|
+
signalExitCode = 143;
|
|
11
|
+
controller.abort();
|
|
12
|
+
};
|
|
13
|
+
process.once("SIGINT", interrupt);
|
|
14
|
+
process.once("SIGTERM", terminate);
|
|
15
|
+
try {
|
|
16
|
+
process.exitCode = await runCiCli(process.argv.slice(2), {
|
|
17
|
+
cwd: process.cwd(),
|
|
18
|
+
environment: process.env,
|
|
19
|
+
stdout: process.stdout,
|
|
20
|
+
stderr: process.stderr,
|
|
21
|
+
signal: controller.signal
|
|
22
|
+
});
|
|
23
|
+
} finally {
|
|
24
|
+
if (signalExitCode !== void 0) process.exitCode = signalExitCode;
|
|
25
|
+
process.removeListener("SIGINT", interrupt);
|
|
26
|
+
process.removeListener("SIGTERM", terminate);
|
|
27
|
+
}
|