@odla-ai/cli 0.7.1 → 0.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 +72 -4
- package/dist/bin.cjs +999 -227
- package/dist/bin.cjs.map +1 -1
- package/dist/bin.js +1 -1
- package/dist/{chunk-643B2AKG.js → chunk-BHAEDEL2.js} +965 -171
- package/dist/chunk-BHAEDEL2.js.map +1 -0
- package/dist/index.cjs +1038 -229
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +353 -26
- package/dist/index.d.ts +353 -26
- package/dist/index.js +29 -3
- package/llms.txt +433 -33
- package/package.json +3 -3
- package/skills/odla/SKILL.md +8 -1
- package/skills/odla/references/build.md +17 -2
- package/skills/odla/references/sdks.md +2 -2
- package/skills/odla-migrate/references/phase-2-db.md +2 -2
- package/skills/odla-migrate/references/phase-5-cutover.md +8 -2
- package/dist/chunk-643B2AKG.js.map +0 -1
package/README.md
CHANGED
|
@@ -29,8 +29,8 @@ For a project you keep working in, install it as a dev dependency so the
|
|
|
29
29
|
shorter `npx odla-ai` form works and the version is pinned by your lockfile:
|
|
30
30
|
|
|
31
31
|
```bash
|
|
32
|
-
npm view @odla-ai/cli@0.
|
|
33
|
-
npm i -D --save-exact @odla-ai/cli@0.
|
|
32
|
+
npm view @odla-ai/cli@0.8.0 version
|
|
33
|
+
npm i -D --save-exact @odla-ai/cli@0.8.0
|
|
34
34
|
```
|
|
35
35
|
|
|
36
36
|
## Prerequisites
|
|
@@ -60,6 +60,12 @@ npx odla-ai provision --write-dev-vars --push-secrets
|
|
|
60
60
|
npx odla-ai smoke --env dev
|
|
61
61
|
npx odla-ai secrets push --env dev
|
|
62
62
|
npx odla-ai security run . --env dev --ack-redacted-source
|
|
63
|
+
npx odla-ai security github connect --env dev # infers owner/name from git origin
|
|
64
|
+
npx odla-ai security plan --env dev
|
|
65
|
+
npx odla-ai security sources --env dev
|
|
66
|
+
npx odla-ai security run --source <source-id> --ref main --env dev --plan-digest <digest-from-security-plan> --ack-redacted-source
|
|
67
|
+
npx odla-ai security status <job-id>
|
|
68
|
+
npx odla-ai security report <job-id>
|
|
63
69
|
npx odla-ai admin ai show
|
|
64
70
|
npx odla-ai admin ai models
|
|
65
71
|
npx odla-ai admin ai set security --discovery-provider anthropic --discovery-model claude-opus-4-8 --validation-provider openai --validation-model gpt-5.5 --enabled
|
|
@@ -127,7 +133,7 @@ when provisioning has not written `.odla/credentials.local.json`.
|
|
|
127
133
|
|
|
128
134
|
The bundled build/migration skills add a passive pre-ship gate with
|
|
129
135
|
`@odla-ai/security`: after the exact-version availability check, run
|
|
130
|
-
`npm i -D --save-exact @odla-ai/security@0.2.
|
|
136
|
+
`npm i -D --save-exact @odla-ai/security@0.2.2`, then
|
|
131
137
|
`npx odla-security scan . --profile odla --out .odla/security/pre-ship --fail-on high --fail-on-candidates critical`.
|
|
132
138
|
The passive scan remains a separate binary: it makes no model calls and does
|
|
133
139
|
not execute target code. After explicit redacted-source approval,
|
|
@@ -152,12 +158,74 @@ carries a bounded `Retry-After` only when the upstream supplied one. The CLI
|
|
|
152
158
|
does not echo arbitrary response text or silently change the admin-selected
|
|
153
159
|
model.
|
|
154
160
|
Before installing the exact release, require
|
|
155
|
-
`npm view @odla-ai/security@0.2.
|
|
161
|
+
`npm view @odla-ai/security@0.2.2 version` to succeed before installation. An
|
|
156
162
|
exact-version `E404` means the release is unavailable, not that the security
|
|
157
163
|
preflight passed, and does not prove the package name is absent. odla's own
|
|
158
164
|
engineering environment uses an equivalent internal gate; customer projects
|
|
159
165
|
should use the published `odla-security` command above.
|
|
160
166
|
|
|
167
|
+
For a server-side, commit-pinned review, connect one repository through the
|
|
168
|
+
source-read-only odla GitHub App. The CLI infers `owner/name` from a safe GitHub HTTPS
|
|
169
|
+
or SSH `origin`; pass `--repo owner/name` when it cannot. It opens GitHub's
|
|
170
|
+
installation/authorization page and polls that exact odla attempt:
|
|
171
|
+
|
|
172
|
+
```bash
|
|
173
|
+
npx odla-ai security github connect --env dev
|
|
174
|
+
npx odla-ai security plan --env dev
|
|
175
|
+
npx odla-ai security sources --env dev
|
|
176
|
+
npx odla-ai security run --source <source-id> --ref main --env dev --plan-digest <digest-from-security-plan> --ack-redacted-source
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
`security plan` is the owner-readable disclosure preflight. It shows the exact
|
|
180
|
+
admin-selected discovery and validation provider/model, immutable policy
|
|
181
|
+
versions, per-route call/input/output bounds, prompt bundle,
|
|
182
|
+
redaction/report contracts, credential readiness, provider independence,
|
|
183
|
+
report retention, the no-target-execution boundary, and a digest covering that
|
|
184
|
+
complete processing contract.
|
|
185
|
+
`security sources` includes the same plan (and returns `{ plan, sources }` with
|
|
186
|
+
`--json`). A source run fetches it again and refuses to enqueue while either
|
|
187
|
+
route is disabled, lacks a usable platform credential, or is not independently
|
|
188
|
+
routed. Copy the displayed digest into `--plan-digest`; the CLI requires it in
|
|
189
|
+
addition to `--ack-redacted-source` and refuses to let a generic acknowledgement
|
|
190
|
+
silently approve a refetched plan. The enqueue request carries the plan digest
|
|
191
|
+
and both expected policy versions. After verifying the user-supplied plan
|
|
192
|
+
digest, the CLI fetches and prints odla.ai's exact source/ref/profile execution
|
|
193
|
+
intent. A second server-computed digest binds that selection, the redacted
|
|
194
|
+
disclosure, and the plan digest; the CLI sends it as
|
|
195
|
+
`expectedExecutionDigest`. A concurrent selection or admin change returns
|
|
196
|
+
`intent_conflict`, `plan_conflict`, `policy_conflict`, or `security_ai_not_ready` instead of
|
|
197
|
+
silently switching providers or models. Fetch and review a fresh `security
|
|
198
|
+
plan`, then explicitly acknowledge its new digest.
|
|
199
|
+
An omitted `--ref` is previewed as the source's explicit current default-branch
|
|
200
|
+
name. If that default changes before enqueue, odla.ai rejects the stale intent;
|
|
201
|
+
it never defers the choice to GitHub HEAD at Workflow execution time.
|
|
202
|
+
|
|
203
|
+
The source job defaults to follow, renders the normalized report, and applies
|
|
204
|
+
the same `--fail-on high`, `--fail-on-candidates critical`, and incomplete
|
|
205
|
+
coverage gate; use `--no-follow` only to enqueue. `security status <job-id>` and
|
|
206
|
+
`security report <job-id>` recover or inspect a prior job. `security github
|
|
207
|
+
disconnect --source <source-id> --env dev --yes` revokes odla's saved source
|
|
208
|
+
without requiring a GitHub-side uninstall.
|
|
209
|
+
|
|
210
|
+
The client sends only the opaque odla `sourceId`, ref, profile, and explicit
|
|
211
|
+
`sourceDisclosure: "redacted"`; it has no PAT, GitHub installation id, provider
|
|
212
|
+
key, provider, or model flag. odla.ai verifies repository access, resolves the
|
|
213
|
+
ref to an immutable commit SHA, fetches the bounded snapshot server-side, and
|
|
214
|
+
routes bounded best-effort credential-pattern-redacted snippets through the admin-selected System AI discovery
|
|
215
|
+
and independent-validation models. GitHub read authorization is **not** source
|
|
216
|
+
disclosure consent, which is why `--ack-redacted-source` remains required.
|
|
217
|
+
The retained schema has no archive, file-body, explicit source-excerpt, context
|
|
218
|
+
packet, raw provider-response, execution-trace, or reproduction-output field.
|
|
219
|
+
The private normalized report does retain bounded best-effort credential-pattern-redacted
|
|
220
|
+
model-derived prose and repository-relative paths for up to 90 days, so treat
|
|
221
|
+
it as sensitive because that prose can reveal source semantics or an
|
|
222
|
+
unrecognized secret. GitHub and
|
|
223
|
+
provider retention/residency terms remain separate. GitHub
|
|
224
|
+
Checks contain counts/coverage and link to the authenticated Studio report.
|
|
225
|
+
Target code is not executed, and even complete coverage is not proof of
|
|
226
|
+
security; unscheduled, shallow, blocked, budget-exhausted, and projection-
|
|
227
|
+
truncated work stays visible.
|
|
228
|
+
|
|
161
229
|
`admin ai show|models|set|credentials|credential set|usage|audit` manages platform-funded System
|
|
162
230
|
AI (`o11y.triage`, `security.discovery`, `security.validation`). It uses a
|
|
163
231
|
separate, mode-`0600` `.odla/admin-token.local.json` cache. Studio displays the
|