@osva-ai/cli 1.1.0-rc.1 → 1.1.0-rc.2

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 (196) hide show
  1. package/README.md +178 -0
  2. package/dist/bin/osva.js +83 -5
  3. package/dist/bin/osva.js.map +1 -1
  4. package/dist/commands/index.js +13 -1
  5. package/dist/commands/index.js.map +1 -1
  6. package/dist/doctor/format.d.ts +4 -0
  7. package/dist/doctor/format.d.ts.map +1 -0
  8. package/dist/doctor/format.js +18 -0
  9. package/dist/doctor/format.js.map +1 -0
  10. package/dist/doctor/http-probe.d.ts +17 -0
  11. package/dist/doctor/http-probe.d.ts.map +1 -0
  12. package/dist/doctor/http-probe.js +104 -0
  13. package/dist/doctor/http-probe.js.map +1 -0
  14. package/dist/doctor/index.d.ts +7 -0
  15. package/dist/doctor/index.d.ts.map +1 -0
  16. package/dist/doctor/index.js +15 -0
  17. package/dist/doctor/index.js.map +1 -0
  18. package/dist/doctor/read-env.d.ts +3 -0
  19. package/dist/doctor/read-env.d.ts.map +1 -0
  20. package/dist/doctor/read-env.js +27 -0
  21. package/dist/doctor/read-env.js.map +1 -0
  22. package/dist/doctor/redact.d.ts +2 -0
  23. package/dist/doctor/redact.d.ts.map +1 -0
  24. package/dist/doctor/redact.js +10 -0
  25. package/dist/doctor/redact.js.map +1 -0
  26. package/dist/doctor/run-doctor.d.ts +6 -0
  27. package/dist/doctor/run-doctor.d.ts.map +1 -0
  28. package/dist/doctor/run-doctor.js +250 -0
  29. package/dist/doctor/run-doctor.js.map +1 -0
  30. package/dist/doctor/types.d.ts +22 -0
  31. package/dist/doctor/types.d.ts.map +1 -0
  32. package/dist/doctor/types.js +2 -0
  33. package/dist/doctor/types.js.map +1 -0
  34. package/dist/exit.d.ts +7 -0
  35. package/dist/exit.d.ts.map +1 -0
  36. package/dist/exit.js +9 -0
  37. package/dist/exit.js.map +1 -0
  38. package/dist/init/index.d.ts +7 -0
  39. package/dist/init/index.d.ts.map +1 -0
  40. package/dist/init/index.js +40 -0
  41. package/dist/init/index.js.map +1 -0
  42. package/dist/init/resolve-target.d.ts +2 -0
  43. package/dist/init/resolve-target.d.ts.map +1 -0
  44. package/dist/init/resolve-target.js +15 -0
  45. package/dist/init/resolve-target.js.map +1 -0
  46. package/dist/init/run-init.d.ts +6 -0
  47. package/dist/init/run-init.d.ts.map +1 -0
  48. package/dist/init/run-init.js +34 -0
  49. package/dist/init/run-init.js.map +1 -0
  50. package/dist/init/scaffold.d.ts +6 -0
  51. package/dist/init/scaffold.d.ts.map +1 -0
  52. package/dist/init/scaffold.js +66 -0
  53. package/dist/init/scaffold.js.map +1 -0
  54. package/dist/init/template-root.d.ts +3 -0
  55. package/dist/init/template-root.d.ts.map +1 -0
  56. package/dist/init/template-root.js +8 -0
  57. package/dist/init/template-root.js.map +1 -0
  58. package/dist/init/template-vars.d.ts +4 -0
  59. package/dist/init/template-vars.d.ts.map +1 -0
  60. package/dist/init/template-vars.js +18 -0
  61. package/dist/init/template-vars.js.map +1 -0
  62. package/dist/init/types.d.ts +18 -0
  63. package/dist/init/types.d.ts.map +1 -0
  64. package/dist/init/types.js +2 -0
  65. package/dist/init/types.js.map +1 -0
  66. package/dist/init/validate-project-name.d.ts +3 -0
  67. package/dist/init/validate-project-name.d.ts.map +1 -0
  68. package/dist/init/validate-project-name.js +26 -0
  69. package/dist/init/validate-project-name.js.map +1 -0
  70. package/dist/project/compose-volume.d.ts +11 -0
  71. package/dist/project/compose-volume.d.ts.map +1 -0
  72. package/dist/project/compose-volume.js +66 -0
  73. package/dist/project/compose-volume.js.map +1 -0
  74. package/dist/project/deploy-env.d.ts +12 -0
  75. package/dist/project/deploy-env.d.ts.map +1 -0
  76. package/dist/project/deploy-env.js +50 -0
  77. package/dist/project/deploy-env.js.map +1 -0
  78. package/dist/project/ensure-agent-version.d.ts +17 -0
  79. package/dist/project/ensure-agent-version.d.ts.map +1 -0
  80. package/dist/project/ensure-agent-version.js +105 -0
  81. package/dist/project/ensure-agent-version.js.map +1 -0
  82. package/dist/project/errors.d.ts +10 -0
  83. package/dist/project/errors.d.ts.map +1 -0
  84. package/dist/project/errors.js +19 -0
  85. package/dist/project/errors.js.map +1 -0
  86. package/dist/project/format.d.ts +42 -0
  87. package/dist/project/format.d.ts.map +1 -0
  88. package/dist/project/format.js +66 -0
  89. package/dist/project/format.js.map +1 -0
  90. package/dist/project/index.d.ts +5 -0
  91. package/dist/project/index.d.ts.map +1 -0
  92. package/dist/project/index.js +101 -0
  93. package/dist/project/index.js.map +1 -0
  94. package/dist/project/install-trusted-runtime.d.ts +14 -0
  95. package/dist/project/install-trusted-runtime.d.ts.map +1 -0
  96. package/dist/project/install-trusted-runtime.js +82 -0
  97. package/dist/project/install-trusted-runtime.js.map +1 -0
  98. package/dist/project/load-manifest.d.ts +3 -0
  99. package/dist/project/load-manifest.d.ts.map +1 -0
  100. package/dist/project/load-manifest.js +13 -0
  101. package/dist/project/load-manifest.js.map +1 -0
  102. package/dist/project/manifest.d.ts +4 -0
  103. package/dist/project/manifest.d.ts.map +1 -0
  104. package/dist/project/manifest.js +12 -0
  105. package/dist/project/manifest.js.map +1 -0
  106. package/dist/project/parse-run-input.d.ts +6 -0
  107. package/dist/project/parse-run-input.d.ts.map +1 -0
  108. package/dist/project/parse-run-input.js +43 -0
  109. package/dist/project/parse-run-input.js.map +1 -0
  110. package/dist/project/poll.d.ts +15 -0
  111. package/dist/project/poll.d.ts.map +1 -0
  112. package/dist/project/poll.js +32 -0
  113. package/dist/project/poll.js.map +1 -0
  114. package/dist/project/run-deploy.d.ts +16 -0
  115. package/dist/project/run-deploy.d.ts.map +1 -0
  116. package/dist/project/run-deploy.js +142 -0
  117. package/dist/project/run-deploy.js.map +1 -0
  118. package/dist/project/run-run.d.ts +17 -0
  119. package/dist/project/run-run.d.ts.map +1 -0
  120. package/dist/project/run-run.js +203 -0
  121. package/dist/project/run-run.js.map +1 -0
  122. package/dist/project/run-status.d.ts +15 -0
  123. package/dist/project/run-status.d.ts.map +1 -0
  124. package/dist/project/run-status.js +122 -0
  125. package/dist/project/run-status.js.map +1 -0
  126. package/dist/project/sdk-error.d.ts +10 -0
  127. package/dist/project/sdk-error.d.ts.map +1 -0
  128. package/dist/project/sdk-error.js +49 -0
  129. package/dist/project/sdk-error.js.map +1 -0
  130. package/dist/project/state.d.ts +28 -0
  131. package/dist/project/state.d.ts.map +1 -0
  132. package/dist/project/state.js +54 -0
  133. package/dist/project/state.js.map +1 -0
  134. package/dist/project/workspace-context.d.ts +6 -0
  135. package/dist/project/workspace-context.d.ts.map +1 -0
  136. package/dist/project/workspace-context.js +25 -0
  137. package/dist/project/workspace-context.js.map +1 -0
  138. package/dist/stdout.d.ts +3 -0
  139. package/dist/stdout.d.ts.map +1 -0
  140. package/dist/stdout.js +27 -0
  141. package/dist/stdout.js.map +1 -0
  142. package/dist/tsconfig.tsbuildinfo +1 -1
  143. package/dist/validate/canonical-json.d.ts +2 -0
  144. package/dist/validate/canonical-json.d.ts.map +1 -0
  145. package/dist/validate/canonical-json.js +17 -0
  146. package/dist/validate/canonical-json.js.map +1 -0
  147. package/dist/validate/exit-code.d.ts +3 -0
  148. package/dist/validate/exit-code.d.ts.map +1 -0
  149. package/dist/validate/exit-code.js +4 -0
  150. package/dist/validate/exit-code.js.map +1 -0
  151. package/dist/validate/format.d.ts +4 -0
  152. package/dist/validate/format.d.ts.map +1 -0
  153. package/dist/validate/format.js +23 -0
  154. package/dist/validate/format.js.map +1 -0
  155. package/dist/validate/index.d.ts +6 -0
  156. package/dist/validate/index.d.ts.map +1 -0
  157. package/dist/validate/index.js +29 -0
  158. package/dist/validate/index.js.map +1 -0
  159. package/dist/validate/integrity.d.ts +4 -0
  160. package/dist/validate/integrity.d.ts.map +1 -0
  161. package/dist/validate/integrity.js +24 -0
  162. package/dist/validate/integrity.js.map +1 -0
  163. package/dist/validate/json-schema-draft.d.ts +8 -0
  164. package/dist/validate/json-schema-draft.d.ts.map +1 -0
  165. package/dist/validate/json-schema-draft.js +32 -0
  166. package/dist/validate/json-schema-draft.js.map +1 -0
  167. package/dist/validate/project-config.d.ts +24 -0
  168. package/dist/validate/project-config.d.ts.map +1 -0
  169. package/dist/validate/project-config.js +27 -0
  170. package/dist/validate/project-config.js.map +1 -0
  171. package/dist/validate/resolve-project-dir.d.ts +12 -0
  172. package/dist/validate/resolve-project-dir.d.ts.map +1 -0
  173. package/dist/validate/resolve-project-dir.js +27 -0
  174. package/dist/validate/resolve-project-dir.js.map +1 -0
  175. package/dist/validate/run-validate.d.ts +3 -0
  176. package/dist/validate/run-validate.d.ts.map +1 -0
  177. package/dist/validate/run-validate.js +278 -0
  178. package/dist/validate/run-validate.js.map +1 -0
  179. package/dist/validate/safe-path.d.ts +4 -0
  180. package/dist/validate/safe-path.d.ts.map +1 -0
  181. package/dist/validate/safe-path.js +42 -0
  182. package/dist/validate/safe-path.js.map +1 -0
  183. package/dist/validate/types.d.ts +14 -0
  184. package/dist/validate/types.d.ts.map +1 -0
  185. package/dist/validate/types.js +2 -0
  186. package/dist/validate/types.js.map +1 -0
  187. package/package.json +6 -3
  188. package/templates/agent-typescript/.gitignore +4 -0
  189. package/templates/agent-typescript/README.md.template +56 -0
  190. package/templates/agent-typescript/agent/agent.ts.template +25 -0
  191. package/templates/agent-typescript/contracts/input.v1.schema.json +12 -0
  192. package/templates/agent-typescript/contracts/output.v1.schema.json +12 -0
  193. package/templates/agent-typescript/osva-agent.project.json.template +21 -0
  194. package/templates/agent-typescript/package.json.template +16 -0
  195. package/templates/agent-typescript/scripts/build-manifest.mjs +53 -0
  196. package/templates/agent-typescript/tsconfig.json +19 -0
package/README.md ADDED
@@ -0,0 +1,178 @@
1
+ # @osva-ai/cli
2
+
3
+ Official OSVA command-line interface for local agent development and control-plane operations.
4
+
5
+ **Node.js:** >= 24 (matches `engines` in this package).
6
+
7
+ ## Installation
8
+
9
+ From npm (after **`1.1.0-rc.2`** is published):
10
+
11
+ ```bash
12
+ npm install -g @osva-ai/cli@1.1.0-rc.2
13
+ ```
14
+
15
+ Or use `npx`:
16
+
17
+ ```bash
18
+ npx @osva-ai/cli@1.1.0-rc.2 help
19
+ ```
20
+
21
+ **Do not use `@1.1.0-rc.1` for M10.2 agent commands** — that npm tarball predates `init`, `validate`, `deploy`, `run`, `status`, and `doctor`.
22
+
23
+ From a git checkout, build then invoke `dist/bin/osva.js` or link the package locally.
24
+
25
+ `@osva-ai/cli` depends on `@osva-ai/sdk`, `@osva-ai/contracts`, and `ajv`; npm installs them automatically when published with aligned dependency versions.
26
+
27
+ ## Quick start (standalone agent project)
28
+
29
+ ```bash
30
+ mkdir my-agents && cd my-agents
31
+ osva init my-first-agent
32
+ cd my-first-agent
33
+ npm install
34
+ npm run build
35
+ npm run manifest
36
+ osva validate
37
+ ```
38
+
39
+ Configure the control plane and trusted runtime (see below), then:
40
+
41
+ ```bash
42
+ osva deploy
43
+ osva run --wait --input '{"message":"Hello OSVA"}'
44
+ osva status
45
+ ```
46
+
47
+ Generated projects use output field **`greeting`** (for example `"Hello, Hello OSVA!"`).
48
+
49
+ ## Configuration
50
+
51
+ | Variable | Required for | Description |
52
+ |----------|----------------|-------------|
53
+ | `OSVA_BASE_URL` | deploy, run, status, API commands | Control plane URL (e.g. `http://127.0.0.1:8080`) |
54
+ | `OSVA_API_KEY` | deploy, run, status, API commands | Bearer token (`osva_ak_…`); **never** pass `--api-key` (unsupported) |
55
+ | `OSVA_WORKSPACE_ID` | optional | If set, must match the workspace for `OSVA_API_KEY` |
56
+ | `OSVA_TRUSTED_RUNTIME_MODE` | deploy | `host` or `compose` (default: `host` if `OSVA_TRUSTED_RUNTIME_ROOT` is set, else `compose`) |
57
+ | `OSVA_TRUSTED_RUNTIME_ROOT` | deploy (host) | Directory the worker reads for TRUSTED_TYPESCRIPT entrypoints |
58
+ | `OSVA_COMPOSE_DIR` | deploy (compose) | Path to `deploy/compose` (directory containing `compose.yml`) |
59
+ | `OSVA_COMPOSE_PROJECT` / `COMPOSE_PROJECT_NAME` | optional | Compose project name when not the default |
60
+ | `OSVA_RUN_POLL_INTERVAL_MS` / `OSVA_RUN_POLL_TIMEOUT_MS` | optional | `--wait` polling (defaults 500 ms / 120 s) |
61
+
62
+ Global flags: `--base-url`, `--json`, and `--project <dir>` (agent project root).
63
+
64
+ Precedence: CLI flag > environment variable.
65
+
66
+ ## Trusted runtime: host vs Compose
67
+
68
+ **Host** — for local `pnpm dev:worker` with a shared directory:
69
+
70
+ ```bash
71
+ export OSVA_TRUSTED_RUNTIME_MODE=host
72
+ export OSVA_TRUSTED_RUNTIME_ROOT=/path/to/trusted-runtime
73
+ ```
74
+
75
+ **Compose** — copies the built entrypoint into the worker’s `osva-trusted-runtime` volume (discovered via Docker Compose labels, not a guessed volume name):
76
+
77
+ ```bash
78
+ export OSVA_TRUSTED_RUNTIME_MODE=compose
79
+ export OSVA_COMPOSE_DIR=/path/to/osva/deploy/compose
80
+ ```
81
+
82
+ Deploy installs **only** your agent’s manifest entrypoint file; it does not overwrite unrelated agents with different entrypoint paths.
83
+
84
+ ## Commands
85
+
86
+ ### Local (no API credentials)
87
+
88
+ - `osva init <project-name> [--yes] [--json]`
89
+ - `osva validate [--project DIR] [--json]`
90
+ - `osva doctor [--json]`
91
+ - `osva help` / `osva version`
92
+
93
+ ### Agent workflow (API credentials required)
94
+
95
+ - `osva deploy [--project DIR] [--json]` — validate, install bytes, register AgentVersion, write `.osva/deployment.json`
96
+ - `osva run [--project DIR] --input '<json>' | --input-file <path> [--wait] [--json]`
97
+ - `osva status [--project DIR] [--json]`
98
+
99
+ ### Control plane (API credentials required)
100
+
101
+ - `osva agents list` / `osva agents get <id>`
102
+ - `osva runs create --agent-id … --agent-version-id … [--input '{}']`
103
+ - `osva runs get <runId>`
104
+ - `osva workflows …`, `osva approvals …`, `osva schedules list`
105
+
106
+ See `osva help` for the full list.
107
+
108
+ ## JSON input (PowerShell, Bash, CI)
109
+
110
+ Prefer **`--input-file`** when shells mangle quotes:
111
+
112
+ ```powershell
113
+ @'
114
+ {"message":"Hello OSVA"}
115
+ '@ | Set-Content -Encoding utf8 run-input.json
116
+ osva run --wait --input-file run-input.json
117
+ ```
118
+
119
+ Inline JSON (Bash):
120
+
121
+ ```bash
122
+ osva run --wait --input '{"message":"Hello OSVA"}'
123
+ ```
124
+
125
+ PowerShell inline (escape nested quotes):
126
+
127
+ ```powershell
128
+ osva run --wait --input '{\"message\":\"Hello OSVA\"}'
129
+ ```
130
+
131
+ ## JSON output and exit codes
132
+
133
+ - With `--json`, structured results go to **stdout** as a single JSON document; diagnostics for local validation failures also use stdout for validate/deploy preflight.
134
+ - API/transport failures with `--json` emit `{ "error": { "kind": "api" | "transport", … } }` on stdout (no API key material).
135
+ - Exit code `0` on success; non-zero on validation failure, configuration errors, deploy/run failures, or `--wait` when the Run does not succeed.
136
+ - Human-readable errors go to **stderr** and are redacted for secret-like patterns.
137
+
138
+ ## Manifest and integrity
139
+
140
+ 1. `npm run build` — emits `dist/agent/<entrypoint>.js`
141
+ 2. `npm run manifest` — writes `osva.manifest.json` with `runtime.integrity` (`sha256:…`) from the built file
142
+ 3. `osva validate` / `osva deploy` — refuse stale or tampered artifacts when digest ≠ manifest
143
+
144
+ Changing source requires rebuild + manifest + deploy to produce a new immutable AgentVersion.
145
+
146
+ ## Local state
147
+
148
+ Non-secret deployment metadata: `.osva/deployment.json` (gitignored in scaffolds). Contains agent/version IDs, integrity fingerprint, deploy target, and last run IDs — **not** API keys.
149
+
150
+ ## Troubleshooting
151
+
152
+ | Symptom | Likely cause |
153
+ |--------|----------------|
154
+ | `Missing OSVA_BASE_URL` / `OSVA_API_KEY` | Export credentials before deploy/run |
155
+ | `Compose deploy mode requires OSVA_COMPOSE_DIR` | Set compose directory or use host mode |
156
+ | `No trusted-runtime Compose volume found` | Start Compose worker stack; check project name env vars |
157
+ | Validate `artifact_integrity` FAIL | Run `npm run build` then `npm run manifest` |
158
+ | `Run osva deploy before osva run` | Deploy after manifest changes |
159
+ | Run timeout with `--wait` | Worker not running or trusted runtime path/volume mismatch |
160
+ | HTTP 401/403 | Invalid or under-privileged API key |
161
+
162
+ Run `osva doctor --json` to probe `/health`, `/ready`, and `/v1/auth/context`.
163
+
164
+ ## Limitations
165
+
166
+ - TRUSTED_TYPESCRIPT agents only; host or Compose trusted-runtime targets only (no remote SSH/prod push).
167
+ - `osva run` without `--wait` submits a Run but does not wait for terminal execution.
168
+ - No built-in login or credential store; use environment variables or your shell profile.
169
+
170
+ ## Links
171
+
172
+ - [Community quickstart](../../docs/OSS-COMMUNITY-QUICKSTART.md)
173
+ - [SDK documentation](../../docs/engineering/SDK.md)
174
+ - M10.2E acceptance: `pnpm acceptance:m10-2e:pack` (offline), `OSVA_ACCEPTANCE_LIVE=1 pnpm acceptance:m10-2e` (live)
175
+
176
+ ## License
177
+
178
+ Apache-2.0
package/dist/bin/osva.js CHANGED
@@ -2,13 +2,88 @@
2
2
  import { OsvaClient } from "@osva-ai/sdk";
3
3
  import { runCommand } from "../commands/index.js";
4
4
  import { loadCliConfig, parseCliArgs } from "../config.js";
5
+ import { runDoctorCommand } from "../doctor/index.js";
6
+ import { exitCli } from "../exit.js";
7
+ import { runInitCommand } from "../init/index.js";
5
8
  import { printError } from "../output.js";
9
+ import { runDeployCommand, runRunCommand, runStatusCommand, } from "../project/index.js";
10
+ import { runValidateCommand } from "../validate/index.js";
6
11
  async function main() {
7
12
  const parsed = parseCliArgs(process.argv.slice(2));
13
+ const jsonOutput = parsed.flags.json === true;
8
14
  const helpCommand = parsed.command.length === 0 ||
9
15
  parsed.command[0] === "help" ||
10
16
  parsed.command[0] === "--help";
11
17
  const versionCommand = parsed.command[0] === "version";
18
+ const doctorCommand = parsed.command[0] === "doctor";
19
+ const initCommand = parsed.command[0] === "init";
20
+ const validateCommand = parsed.command[0] === "validate";
21
+ const deployCommand = parsed.command[0] === "deploy";
22
+ const runAgentCommand = parsed.command[0] === "run";
23
+ const statusCommand = parsed.command[0] === "status";
24
+ if (initCommand) {
25
+ try {
26
+ const exitCode = await runInitCommand(parsed.command, parsed.flags);
27
+ await exitCli(exitCode);
28
+ }
29
+ catch (error) {
30
+ printError(error instanceof Error ? error.message : "Init failed.");
31
+ await exitCli(1);
32
+ }
33
+ return;
34
+ }
35
+ if (validateCommand) {
36
+ try {
37
+ const exitCode = await runValidateCommand(parsed.flags);
38
+ await exitCli(exitCode);
39
+ }
40
+ catch (error) {
41
+ printError(error instanceof Error ? error.message : "Validate failed.");
42
+ await exitCli(1);
43
+ }
44
+ return;
45
+ }
46
+ if (doctorCommand) {
47
+ try {
48
+ const exitCode = await runDoctorCommand(parsed.flags);
49
+ await exitCli(exitCode);
50
+ }
51
+ catch (error) {
52
+ printError(error instanceof Error ? error.message : "Doctor failed.");
53
+ await exitCli(1);
54
+ }
55
+ return;
56
+ }
57
+ if (deployCommand || runAgentCommand || statusCommand) {
58
+ let config;
59
+ try {
60
+ config = loadCliConfig(parsed.flags);
61
+ }
62
+ catch (error) {
63
+ printError(error instanceof Error ? error.message : "Invalid configuration.");
64
+ await exitCli(1);
65
+ return;
66
+ }
67
+ try {
68
+ const exitCode = deployCommand
69
+ ? await runDeployCommand(config, parsed.flags)
70
+ : runAgentCommand
71
+ ? await runRunCommand(config, parsed.flags)
72
+ : await runStatusCommand(config, parsed.flags);
73
+ await exitCli(exitCode);
74
+ }
75
+ catch (error) {
76
+ printError(error instanceof Error
77
+ ? error.message
78
+ : deployCommand
79
+ ? "Deploy failed."
80
+ : runAgentCommand
81
+ ? "Run failed."
82
+ : "Status failed.");
83
+ await exitCli(1);
84
+ }
85
+ return;
86
+ }
12
87
  if (helpCommand || versionCommand) {
13
88
  const exitCode = await runCommand(new OsvaClient({
14
89
  baseUrl: "http://127.0.0.1:9",
@@ -16,13 +91,13 @@ async function main() {
16
91
  }), {
17
92
  baseUrl: "http://127.0.0.1:9",
18
93
  apiKey: "osva_ak_test.placeholder",
19
- json: false,
94
+ json: jsonOutput,
20
95
  }, parsed.command.length === 0
21
96
  ? ["help"]
22
97
  : versionCommand
23
98
  ? ["version"]
24
99
  : parsed.command, parsed.flags);
25
- process.exit(exitCode);
100
+ await exitCli(exitCode);
26
101
  return;
27
102
  }
28
103
  let config;
@@ -31,7 +106,7 @@ async function main() {
31
106
  }
32
107
  catch (error) {
33
108
  printError(error instanceof Error ? error.message : "Invalid configuration.");
34
- process.exit(1);
109
+ await exitCli(1);
35
110
  return;
36
111
  }
37
112
  const client = new OsvaClient({
@@ -39,7 +114,10 @@ async function main() {
39
114
  apiKey: config.apiKey,
40
115
  });
41
116
  const exitCode = await runCommand(client, config, parsed.command, parsed.flags);
42
- process.exit(exitCode);
117
+ await exitCli(exitCode);
43
118
  }
44
- void main();
119
+ void main().catch(async (error) => {
120
+ printError(error instanceof Error ? error.message : "Unexpected CLI failure.");
121
+ await exitCli(1);
122
+ });
45
123
  //# sourceMappingURL=osva.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"osva.js","sourceRoot":"","sources":["../../src/bin/osva.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,MAAM,WAAW,GACf,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;QAC3B,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,MAAM;QAC5B,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;IACjC,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC;IAEvD,IAAI,WAAW,IAAI,cAAc,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,MAAM,UAAU,CAC/B,IAAI,UAAU,CAAC;YACb,OAAO,EAAE,oBAAoB;YAC7B,MAAM,EAAE,0BAA0B;SACnC,CAAC,EACF;YACE,OAAO,EAAE,oBAAoB;YAC7B,MAAM,EAAE,0BAA0B;YAClC,IAAI,EAAE,KAAK;SACZ,EACD,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;YACzB,CAAC,CAAC,CAAC,MAAM,CAAC;YACV,CAAC,CAAC,cAAc;gBACd,CAAC,CAAC,CAAC,SAAS,CAAC;gBACb,CAAC,CAAC,MAAM,CAAC,OAAO,EACpB,MAAM,CAAC,KAAK,CACb,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvB,OAAO;IACT,CAAC;IAED,IAAI,MAAM,CAAC;IACX,IAAI,CAAC;QACH,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,UAAU,CACR,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAClE,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC;QAC5B,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM;KACtB,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,MAAM,UAAU,CAC/B,MAAM,EACN,MAAM,EACN,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,KAAK,CACb,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzB,CAAC;AAED,KAAK,IAAI,EAAE,CAAC"}
1
+ {"version":3,"file":"osva.js","sourceRoot":"","sources":["../../src/bin/osva.ts"],"names":[],"mappings":"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"}
@@ -183,12 +183,24 @@ Commands:
183
183
  approvals approve <approvalRequestId> [--comment TEXT]
184
184
  approvals reject <approvalRequestId> [--comment TEXT]
185
185
  schedules list
186
+ init <project-name> [--yes] [--json]
187
+ validate [--project DIR] [--json]
188
+ deploy [--project DIR] [--json]
189
+ run [--project DIR] --input JSON | --input-file PATH [--wait] [--json]
190
+ status [--project DIR] [--json]
191
+ doctor [--json]
186
192
  version
187
193
  help
188
194
 
189
195
  Environment:
190
196
  OSVA_BASE_URL
191
- OSVA_WORKSPACE_ID
197
+ OSVA_API_KEY
198
+ OSVA_WORKSPACE_ID (optional; verified against API key workspace)
199
+ OSVA_TRUSTED_RUNTIME_MODE (host | compose)
200
+ OSVA_TRUSTED_RUNTIME_ROOT (required for host mode)
201
+ OSVA_COMPOSE_DIR (required for compose mode)
202
+ OSVA_COMPOSE_PROJECT / COMPOSE_PROJECT_NAME (optional)
203
+ OSVA_RUN_POLL_INTERVAL_MS / OSVA_RUN_POLL_TIMEOUT_MS (optional)
192
204
  `);
193
205
  }
194
206
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { DoctorReport } from "./types.js";
2
+ export declare function formatDoctorHuman(report: DoctorReport): string;
3
+ export declare function formatDoctorJson(report: DoctorReport): string;
4
+ //# sourceMappingURL=format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/doctor/format.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAa9D;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAE7D"}
@@ -0,0 +1,18 @@
1
+ export function formatDoctorHuman(report) {
2
+ const lines = ["OSVA Doctor", ""];
3
+ for (const check of report.checks) {
4
+ const status = check.status.padEnd(4, " ");
5
+ const id = check.id.padEnd(22, " ");
6
+ lines.push(`${status} ${id} ${check.message}`);
7
+ if (check.remediation !== undefined) {
8
+ lines.push(` → ${check.remediation}`);
9
+ }
10
+ }
11
+ lines.push("");
12
+ lines.push(`Result: ${report.result.toUpperCase()}`);
13
+ return `${lines.join("\n")}\n`;
14
+ }
15
+ export function formatDoctorJson(report) {
16
+ return `${JSON.stringify(report, null, 2)}\n`;
17
+ }
18
+ //# sourceMappingURL=format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/doctor/format.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,iBAAiB,CAAC,MAAoB;IACpD,MAAM,KAAK,GAAa,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;IAC5C,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC3C,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QACpC,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,EAAE,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/C,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC,WAAW,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IACrD,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAAoB;IACnD,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;AAChD,CAAC"}
@@ -0,0 +1,17 @@
1
+ export interface DoctorProbeTransport {
2
+ getJson(url: string, headers?: Readonly<Record<string, string>>): Promise<HttpProbeResult>;
3
+ }
4
+ export declare function createNodeProbeTransport(timeoutMs: number): DoctorProbeTransport;
5
+ export declare function createFetchProbeTransport(fetchImpl: typeof fetch, timeoutMs: number): DoctorProbeTransport;
6
+ export type HttpProbeResult = {
7
+ kind: "ok";
8
+ status: number;
9
+ body: unknown;
10
+ } | {
11
+ kind: "transport";
12
+ cause: unknown;
13
+ } | {
14
+ kind: "timeout";
15
+ };
16
+ export declare function httpGetJson(urlString: string, timeoutMs: number, headers?: Readonly<Record<string, string>>): Promise<HttpProbeResult>;
17
+ //# sourceMappingURL=http-probe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-probe.d.ts","sourceRoot":"","sources":["../../src/doctor/http-probe.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,oBAAoB;IACnC,OAAO,CACL,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GACzC,OAAO,CAAC,eAAe,CAAC,CAAC;CAC7B;AAED,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,MAAM,GAChB,oBAAoB,CAItB;AAED,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,OAAO,KAAK,EACvB,SAAS,EAAE,MAAM,GAChB,oBAAoB,CAItB;AAED,MAAM,MAAM,eAAe,GACvB;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAC7C;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC;AAExB,wBAAsB,WAAW,CAC/B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM,GAC7C,OAAO,CAAC,eAAe,CAAC,CA8D1B"}
@@ -0,0 +1,104 @@
1
+ import http from "node:http";
2
+ import https from "node:https";
3
+ export function createNodeProbeTransport(timeoutMs) {
4
+ return {
5
+ getJson: (url, headers) => httpGetJson(url, timeoutMs, headers),
6
+ };
7
+ }
8
+ export function createFetchProbeTransport(fetchImpl, timeoutMs) {
9
+ return {
10
+ getJson: (url, headers) => fetchGetJson(url, fetchImpl, timeoutMs, headers),
11
+ };
12
+ }
13
+ export async function httpGetJson(urlString, timeoutMs, headers = {}) {
14
+ let url;
15
+ try {
16
+ url = new URL(urlString);
17
+ }
18
+ catch (cause) {
19
+ return { kind: "transport", cause };
20
+ }
21
+ const transport = url.protocol === "https:" ? https : http;
22
+ return new Promise((resolve) => {
23
+ const request = transport.request(url, {
24
+ method: "GET",
25
+ headers: {
26
+ connection: "close",
27
+ accept: "application/json",
28
+ ...headers,
29
+ },
30
+ }, (response) => {
31
+ const chunks = [];
32
+ response.on("data", (chunk) => {
33
+ chunks.push(chunk);
34
+ });
35
+ response.on("end", () => {
36
+ const text = Buffer.concat(chunks).toString("utf8");
37
+ let body = null;
38
+ if (text.length > 0) {
39
+ try {
40
+ body = JSON.parse(text);
41
+ }
42
+ catch {
43
+ body = null;
44
+ }
45
+ }
46
+ resolve({
47
+ kind: "ok",
48
+ status: response.statusCode ?? 0,
49
+ body,
50
+ });
51
+ });
52
+ response.on("error", (cause) => {
53
+ resolve({ kind: "transport", cause });
54
+ });
55
+ });
56
+ request.setTimeout(timeoutMs, () => {
57
+ request.destroy(new Error("timeout"));
58
+ });
59
+ request.on("error", (cause) => {
60
+ if (cause instanceof Error && cause.message === "timeout") {
61
+ resolve({ kind: "timeout" });
62
+ return;
63
+ }
64
+ resolve({ kind: "transport", cause });
65
+ });
66
+ request.end();
67
+ });
68
+ }
69
+ async function fetchGetJson(url, fetchImpl, timeoutMs, headers = {}) {
70
+ const controller = new AbortController();
71
+ const timer = setTimeout(() => {
72
+ controller.abort();
73
+ }, timeoutMs);
74
+ try {
75
+ const response = await fetchImpl(url, {
76
+ method: "GET",
77
+ signal: controller.signal,
78
+ headers: {
79
+ connection: "close",
80
+ accept: "application/json",
81
+ ...headers,
82
+ },
83
+ });
84
+ let body;
85
+ try {
86
+ body = await response.json();
87
+ }
88
+ catch {
89
+ body = null;
90
+ }
91
+ return { kind: "ok", status: response.status, body };
92
+ }
93
+ catch (error) {
94
+ if (error instanceof Error &&
95
+ (error.name === "AbortError" || error.name === "TimeoutError")) {
96
+ return { kind: "timeout" };
97
+ }
98
+ return { kind: "transport", cause: error };
99
+ }
100
+ finally {
101
+ clearTimeout(timer);
102
+ }
103
+ }
104
+ //# sourceMappingURL=http-probe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-probe.js","sourceRoot":"","sources":["../../src/doctor/http-probe.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { DoctorProbeOptions } from "./types.js";
2
+ export type { DoctorCheck, DoctorReport } from "./types.js";
3
+ export { doctorExitCode, runDoctorPipeline, REQUIRED_NODE_MAJOR, DEFAULT_PROBE_TIMEOUT_MS, } from "./run-doctor.js";
4
+ export { redactSecrets } from "./redact.js";
5
+ export { readDoctorEnv } from "./read-env.js";
6
+ export declare function runDoctorCommand(flags: Readonly<Record<string, string | boolean>>, processEnv?: NodeJS.ProcessEnv, options?: DoctorProbeOptions): Promise<number>;
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/doctor/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,EACjD,UAAU,GAAE,MAAM,CAAC,UAAwB,EAC3C,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,MAAM,CAAC,CAQjB"}
@@ -0,0 +1,15 @@
1
+ import { writeStdout } from "../stdout.js";
2
+ import { formatDoctorHuman, formatDoctorJson } from "./format.js";
3
+ import { readDoctorEnv } from "./read-env.js";
4
+ import { doctorExitCode, runDoctorPipeline } from "./run-doctor.js";
5
+ export { doctorExitCode, runDoctorPipeline, REQUIRED_NODE_MAJOR, DEFAULT_PROBE_TIMEOUT_MS, } from "./run-doctor.js";
6
+ export { redactSecrets } from "./redact.js";
7
+ export { readDoctorEnv } from "./read-env.js";
8
+ export async function runDoctorCommand(flags, processEnv = process.env, options = {}) {
9
+ const env = readDoctorEnv(flags, processEnv);
10
+ const report = await runDoctorPipeline(env, options);
11
+ const json = flags.json === true;
12
+ await writeStdout(json ? formatDoctorJson(report) : formatDoctorHuman(report));
13
+ return doctorExitCode(report);
14
+ }
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/doctor/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAIpE,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,KAAiD,EACjD,aAAgC,OAAO,CAAC,GAAG,EAC3C,UAA8B,EAAE;IAEhC,MAAM,GAAG,GAAG,aAAa,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACrD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC;IACjC,MAAM,WAAW,CACf,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAC5D,CAAC;IACF,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC;AAChC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { DoctorEnv } from "./types.js";
2
+ export declare function readDoctorEnv(flags: Readonly<Record<string, string | boolean>>, processEnv?: NodeJS.ProcessEnv): DoctorEnv;
3
+ //# sourceMappingURL=read-env.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-env.d.ts","sourceRoot":"","sources":["../../src/doctor/read-env.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,wBAAgB,aAAa,CAC3B,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,EACjD,UAAU,GAAE,MAAM,CAAC,UAAwB,GAC1C,SAAS,CAsBX"}
@@ -0,0 +1,27 @@
1
+ export function readDoctorEnv(flags, processEnv = process.env) {
2
+ if ("api-key" in flags) {
3
+ throw new Error("The --api-key flag is not supported. Set OSVA_API_KEY in the environment.");
4
+ }
5
+ const baseUrl = pickOptionalString(flags, processEnv, "base-url", "OSVA_BASE_URL");
6
+ const apiKey = processEnv.OSVA_API_KEY?.trim();
7
+ const workspaceId = processEnv.OSVA_WORKSPACE_ID?.trim();
8
+ return {
9
+ ...(baseUrl !== undefined && baseUrl.length > 0 ? { baseUrl } : {}),
10
+ ...(apiKey !== undefined && apiKey.length > 0 ? { apiKey } : {}),
11
+ ...(workspaceId !== undefined && workspaceId.length > 0
12
+ ? { workspaceId }
13
+ : {}),
14
+ };
15
+ }
16
+ function pickOptionalString(flags, env, flagName, envName) {
17
+ const flagValue = flags[flagName];
18
+ if (typeof flagValue === "string" && flagValue.length > 0) {
19
+ return flagValue.trim();
20
+ }
21
+ const envValue = env[envName]?.trim();
22
+ if (envValue !== undefined && envValue.length > 0) {
23
+ return envValue;
24
+ }
25
+ return undefined;
26
+ }
27
+ //# sourceMappingURL=read-env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-env.js","sourceRoot":"","sources":["../../src/doctor/read-env.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,aAAa,CAC3B,KAAiD,EACjD,aAAgC,OAAO,CAAC,GAAG;IAE3C,IAAI,SAAS,IAAI,KAAK,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,2EAA2E,CAC5E,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,kBAAkB,CAChC,KAAK,EACL,UAAU,EACV,UAAU,EACV,eAAe,CAChB,CAAC;IACF,MAAM,MAAM,GAAG,UAAU,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC;IAC/C,MAAM,WAAW,GAAG,UAAU,CAAC,iBAAiB,EAAE,IAAI,EAAE,CAAC;IAEzD,OAAO;QACL,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,GAAG,CAAC,WAAW,KAAK,SAAS,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC;YACrD,CAAC,CAAC,EAAE,WAAW,EAAE;YACjB,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CACzB,KAAiD,EACjD,GAAsB,EACtB,QAAgB,EAChB,OAAe;IAEf,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;IAClC,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1D,OAAO,SAAS,CAAC,IAAI,EAAE,CAAC;IAC1B,CAAC;IACD,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC;IACtC,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClD,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function redactSecrets(text: string): string;
2
+ //# sourceMappingURL=redact.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redact.d.ts","sourceRoot":"","sources":["../../src/doctor/redact.ts"],"names":[],"mappings":"AAIA,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKlD"}
@@ -0,0 +1,10 @@
1
+ const API_KEY_PATTERN = /osva_ak_[A-Za-z0-9._-]+/g;
2
+ const BEARER_PATTERN = /Bearer\s+\S+/gi;
3
+ const URL_CREDENTIALS_PATTERN = /\/\/[^/\s:@]+:[^@\s/]+@/g;
4
+ export function redactSecrets(text) {
5
+ return text
6
+ .replace(URL_CREDENTIALS_PATTERN, "//***:***@")
7
+ .replace(BEARER_PATTERN, "Bearer ***")
8
+ .replace(API_KEY_PATTERN, "osva_ak_***");
9
+ }
10
+ //# sourceMappingURL=redact.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redact.js","sourceRoot":"","sources":["../../src/doctor/redact.ts"],"names":[],"mappings":"AAAA,MAAM,eAAe,GAAG,0BAA0B,CAAC;AACnD,MAAM,cAAc,GAAG,gBAAgB,CAAC;AACxC,MAAM,uBAAuB,GAAG,0BAA0B,CAAC;AAE3D,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,OAAO,IAAI;SACR,OAAO,CAAC,uBAAuB,EAAE,YAAY,CAAC;SAC9C,OAAO,CAAC,cAAc,EAAE,YAAY,CAAC;SACrC,OAAO,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;AAC7C,CAAC"}