@odla-ai/cli 0.10.1 → 0.11.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 +4 -4
- package/REQUIREMENTS.md +3 -1
- package/dist/bin.cjs +44 -12
- package/dist/bin.cjs.map +1 -1
- package/dist/bin.js +1 -1
- package/dist/{chunk-MWVKOIGR.js → chunk-KUQCJ6KA.js} +45 -13
- package/dist/chunk-KUQCJ6KA.js.map +1 -0
- package/dist/index.cjs +44 -12
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +5 -2
- package/dist/index.d.ts +5 -2
- package/dist/index.js +1 -1
- package/package.json +7 -9
- package/skills/odla/SKILL.md +4 -2
- package/skills/odla/references/build.md +6 -5
- package/skills/odla/references/sdks.md +6 -5
- package/skills/odla-migrate/SKILL.md +3 -2
- package/skills/odla-migrate/references/phase-2-db.md +6 -5
- package/skills/odla-migrate/references/phase-2b-calendar.md +2 -2
- package/skills/odla-migrate/references/phase-4-ai.md +4 -3
- package/skills/odla-migrate/references/phase-5-cutover.md +2 -2
- package/skills/odla-migrate/references/troubleshooting.md +3 -3
- package/dist/chunk-MWVKOIGR.js.map +0 -1
- package/llms.txt +0 -1270
package/dist/index.d.cts
CHANGED
|
@@ -447,8 +447,11 @@ declare function initProject(options: InitOptions): void;
|
|
|
447
447
|
* Clerk auth and links, then per env mints or reuses credentials only for the
|
|
448
448
|
* configured services, pushes the schema with the db key and the
|
|
449
449
|
* rules with the developer token, and stores the provider key in the tenant
|
|
450
|
-
* vault when `ai.keyEnv` is set and present.
|
|
451
|
-
* (mode 0600, gitignored) and, when requested, `.dev.vars`.
|
|
450
|
+
* vault when `ai.keyEnv` is set and present. Writes the credentials file
|
|
451
|
+
* (mode 0600, gitignored) and, when requested, `.dev.vars`. Google Calendar
|
|
452
|
+
* consent runs last, per env; when the platform connector itself is not yet
|
|
453
|
+
* configured (`calendar_*_not_configured`), provision prints a resume hint
|
|
454
|
+
* (`odla-ai calendar connect`) instead of aborting.
|
|
452
455
|
*
|
|
453
456
|
* The developer token comes from (in order) `options.token`, `$ODLA_DEV_TOKEN`,
|
|
454
457
|
* the cached `.odla` token, or a fresh email-bound device handshake — which
|
package/dist/index.d.ts
CHANGED
|
@@ -447,8 +447,11 @@ declare function initProject(options: InitOptions): void;
|
|
|
447
447
|
* Clerk auth and links, then per env mints or reuses credentials only for the
|
|
448
448
|
* configured services, pushes the schema with the db key and the
|
|
449
449
|
* rules with the developer token, and stores the provider key in the tenant
|
|
450
|
-
* vault when `ai.keyEnv` is set and present.
|
|
451
|
-
* (mode 0600, gitignored) and, when requested, `.dev.vars`.
|
|
450
|
+
* vault when `ai.keyEnv` is set and present. Writes the credentials file
|
|
451
|
+
* (mode 0600, gitignored) and, when requested, `.dev.vars`. Google Calendar
|
|
452
|
+
* consent runs last, per env; when the platform connector itself is not yet
|
|
453
|
+
* configured (`calendar_*_not_configured`), provision prints a resume hint
|
|
454
|
+
* (`odla-ai calendar connect`) instead of aborting.
|
|
452
455
|
*
|
|
453
456
|
* The developer token comes from (in order) `options.token`, `$ODLA_DEV_TOKEN`,
|
|
454
457
|
* the cached `.odla` token, or a fresh email-bound device handshake — which
|
package/dist/index.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@odla-ai/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.0",
|
|
4
4
|
"description": "Agent-operable CLI for odla provisioning, calendar consent and sync lifecycle, System AI administration, Worker secrets, security jobs, and smoke checks.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://odla.ai/docs/packages/cli",
|
|
@@ -27,8 +27,7 @@
|
|
|
27
27
|
"dist",
|
|
28
28
|
"skills",
|
|
29
29
|
"README.md",
|
|
30
|
-
"REQUIREMENTS.md"
|
|
31
|
-
"llms.txt"
|
|
30
|
+
"REQUIREMENTS.md"
|
|
32
31
|
],
|
|
33
32
|
"sideEffects": false,
|
|
34
33
|
"engines": {
|
|
@@ -55,14 +54,13 @@
|
|
|
55
54
|
"typecheck": "tsc --noEmit",
|
|
56
55
|
"test": "vitest run",
|
|
57
56
|
"coverage": "vitest run --coverage",
|
|
58
|
-
"
|
|
59
|
-
"prepublishOnly": "npm run build && npm run gen:llms"
|
|
57
|
+
"prepublishOnly": "npm run build"
|
|
60
58
|
},
|
|
61
59
|
"dependencies": {
|
|
62
|
-
"@odla-ai/ai": "^0.
|
|
63
|
-
"@odla-ai/apps": "^0.8.
|
|
64
|
-
"@odla-ai/db": "^0.6.
|
|
65
|
-
"@odla-ai/security": "^0.
|
|
60
|
+
"@odla-ai/ai": "^0.4.0",
|
|
61
|
+
"@odla-ai/apps": "^0.8.1",
|
|
62
|
+
"@odla-ai/db": "^0.6.4",
|
|
63
|
+
"@odla-ai/security": "^0.3.1"
|
|
66
64
|
},
|
|
67
65
|
"devDependencies": {
|
|
68
66
|
"@types/node": "^22.10.0",
|
package/skills/odla/SKILL.md
CHANGED
|
@@ -124,5 +124,7 @@ code, paste a publishable key, run a command) — and wait for a nod.
|
|
|
124
124
|
- `references/build.md` — the greenfield build, step by step, with the exact
|
|
125
125
|
commands and what to verify at each one.
|
|
126
126
|
- `references/sdks.md` — SDK cheat-sheet (what each does + minimal real usage).
|
|
127
|
-
|
|
128
|
-
|
|
127
|
+
For the full, version-matched API, read the installed package's README and
|
|
128
|
+
exported TypeScript declarations/JSDoc (resolve entry points through its
|
|
129
|
+
`package.json` `exports`). Rendered references are also public at
|
|
130
|
+
`https://odla.ai/docs/packages/<pkg>`.
|
|
@@ -30,9 +30,10 @@ deployed-secret transfer. With o11y, install `@odla-ai/o11y`, add
|
|
|
30
30
|
`"nodejs_compat"` to `compatibility_flags`, and wrap the entrypoint with
|
|
31
31
|
`withObservability`.
|
|
32
32
|
|
|
33
|
-
Each installed package's
|
|
34
|
-
|
|
35
|
-
|
|
33
|
+
Each installed package's README and exported TypeScript declarations/JSDoc are
|
|
34
|
+
the version-matched API contract; resolve public entry points through its
|
|
35
|
+
`package.json` `exports`. The npm artifacts contain everything required for
|
|
36
|
+
this flow; private service source or online documentation is not setup context.
|
|
36
37
|
|
|
37
38
|
## 3. Provision ⏸ device-code approval
|
|
38
39
|
|
|
@@ -87,12 +88,12 @@ code. Browser code uses db subscriptions under explicit rules or pure
|
|
|
87
88
|
Install the passive harness and scan before any production secret or deploy:
|
|
88
89
|
|
|
89
90
|
Before installing the exact release, first verify
|
|
90
|
-
`npm view @odla-ai/security@0.
|
|
91
|
+
`npm view @odla-ai/security@0.3.1 version`. An exact-version `E404` means the
|
|
91
92
|
release is unavailable and blocks this preflight; it is not a clean scan and
|
|
92
93
|
does not prove the package name is absent.
|
|
93
94
|
|
|
94
95
|
```
|
|
95
|
-
npm i -D --save-exact @odla-ai/security@0.
|
|
96
|
+
npm i -D --save-exact @odla-ai/security@0.3.1
|
|
96
97
|
npx odla-security scan . --profile odla --out .odla/security/pre-ship --fail-on high --fail-on-candidates critical
|
|
97
98
|
```
|
|
98
99
|
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
# odla SDK cheat-sheet
|
|
2
2
|
|
|
3
|
-
Install only what the app needs.
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
Install only what the app needs. Prefer the installed package's README and
|
|
4
|
+
exported TypeScript declarations/JSDoc over training memory; resolve public
|
|
5
|
+
entry points through its `package.json` `exports`. Rendered references are also
|
|
6
|
+
available at `https://odla.ai/docs/packages/<pkg>`. Minimal real usage follows.
|
|
6
7
|
|
|
7
8
|
## @odla-ai/db — realtime graph database
|
|
8
9
|
|
|
@@ -99,12 +100,12 @@ Run the passive CLI in local/CI development; do not import it into the running
|
|
|
99
100
|
Worker:
|
|
100
101
|
|
|
101
102
|
Before installing the exact release, require
|
|
102
|
-
`npm view @odla-ai/security@0.
|
|
103
|
+
`npm view @odla-ai/security@0.3.1 version` to succeed before installing it. An
|
|
103
104
|
exact-version `E404` means the release is unavailable, not that the preflight
|
|
104
105
|
passed, and does not prove the package name is absent.
|
|
105
106
|
|
|
106
107
|
```
|
|
107
|
-
npm i -D --save-exact @odla-ai/security@0.
|
|
108
|
+
npm i -D --save-exact @odla-ai/security@0.3.1
|
|
108
109
|
npx odla-security scan . --profile odla --out .odla/security/pre-ship --fail-on high --fail-on-candidates critical
|
|
109
110
|
```
|
|
110
111
|
|
|
@@ -121,5 +121,6 @@ On any failure, read references/troubleshooting.md before improvising.
|
|
|
121
121
|
This installed skill and its `references/` directory are the complete migration
|
|
122
122
|
runbook; do not fetch a website or private source repository to reconstruct it.
|
|
123
123
|
Read only the current phase file as directed above. After `npm install`, prefer
|
|
124
|
-
|
|
125
|
-
|
|
124
|
+
each installed package's README and exported TypeScript declarations/JSDoc over
|
|
125
|
+
training memory; resolve entry points through its `package.json` `exports`.
|
|
126
|
+
Those artifacts describe the version this project actually uses.
|
|
@@ -11,8 +11,8 @@ opens the review page in interactive terminals; loading it alone is inert.
|
|
|
11
11
|
|
|
12
12
|
## Steps
|
|
13
13
|
|
|
14
|
-
1. Require `npm view @odla-ai/cli@0.10.
|
|
15
|
-
`npm i -D --save-exact @odla-ai/cli@0.10.
|
|
14
|
+
1. Require `npm view @odla-ai/cli@0.10.2 version` to succeed, then run
|
|
15
|
+
`npm i -D --save-exact @odla-ai/cli@0.10.2` and `npm i @odla-ai/db`.
|
|
16
16
|
2. `npx @odla-ai/cli init --app-id <id> --name "<Name>" --env dev --services db`
|
|
17
17
|
Review `odla.config.mjs`. Keep `envs: ["dev"]` — prod is Phase 5. Set
|
|
18
18
|
`links.dev` to the URL the Phase 1 `wrangler deploy` **actually printed** —
|
|
@@ -22,7 +22,7 @@ opens the review page in interactive terminals; loading it alone is inert.
|
|
|
22
22
|
public-config show where the app runs. (`links.prod` is set the same way at
|
|
23
23
|
Phase 5, from the prod deploy's printed URL.)
|
|
24
24
|
3. STOP before touching schema: read "Porting relational code" in
|
|
25
|
-
`node_modules/@odla-ai/db/
|
|
25
|
+
`node_modules/@odla-ai/db/README.md`. The traps are silent: entity ids
|
|
26
26
|
are not attrs (mirror an id attr), there is no NULL (omit on write,
|
|
27
27
|
re-project on read), lists need explicit `order`, uniques are
|
|
28
28
|
single-attr (derive composite keys), ON CONFLICT maps to `mutationId`
|
|
@@ -49,8 +49,9 @@ opens the review page in interactive terminals; loading it alone is inert.
|
|
|
49
49
|
10. Add `/api/*` routes before the assets fall-through, using
|
|
50
50
|
`init({ appId: env.ODLA_TENANT, adminToken: env.ODLA_API_KEY,
|
|
51
51
|
endpoint: env.ODLA_ENDPOINT })` from `@odla-ai/db`. Read the installed
|
|
52
|
-
package's
|
|
53
|
-
error contracts.
|
|
52
|
+
package's README and exported TypeScript declarations/JSDoc for query,
|
|
53
|
+
transaction, and error contracts. The rendered reference is at
|
|
54
|
+
`https://odla.ai/docs/packages/db` when online.
|
|
54
55
|
11. `wrangler dev` + curl each route; then `npm run deploy:app:dev` and
|
|
55
56
|
curl the workers.dev URL.
|
|
56
57
|
|
|
@@ -9,8 +9,8 @@ server-issued Google consent page. They never paste an OAuth code or token.
|
|
|
9
9
|
|
|
10
10
|
1. Inventory the old behavior. Distinguish a public appointment-page link from
|
|
11
11
|
actual event create/reschedule/cancel APIs. Do not promise more than exists.
|
|
12
|
-
2. Require `npm view @odla-ai/calendar@0.1.
|
|
13
|
-
`npm i --save-exact @odla-ai/calendar@0.1.
|
|
12
|
+
2. Require `npm view @odla-ai/calendar@0.1.1 version` to succeed, then install
|
|
13
|
+
`npm i --save-exact @odla-ai/calendar@0.1.1` as a runtime dependency. An
|
|
14
14
|
exact-version `E404` blocks this phase; do not substitute a git checkout or
|
|
15
15
|
another version. Add `"calendar"` beside
|
|
16
16
|
`"db"` in services and configure:
|
|
@@ -24,9 +24,10 @@ own terminal so you never see the value.
|
|
|
24
24
|
3. `npm i @odla-ai/ai`. In the worker, use `initFromPlatform` — it reads
|
|
25
25
|
provider/model from public-config (cached ~60s) and resolves the key
|
|
26
26
|
from the vault at call time using only the app's db key. Provider and
|
|
27
|
-
model are switchable in Studio with no redeploy. Read
|
|
28
|
-
`node_modules/@odla-ai/ai/
|
|
29
|
-
|
|
27
|
+
model are switchable in Studio with no redeploy. Read the installed
|
|
28
|
+
`node_modules/@odla-ai/ai/README.md` and exported TypeScript
|
|
29
|
+
declarations/JSDoc for the version-matched API; the rendered reference at
|
|
30
|
+
`https://odla.ai/docs/packages/ai` covers the public platform composition.
|
|
30
31
|
4. Add one `/api/*` route that round-trips the model; deploy dev.
|
|
31
32
|
|
|
32
33
|
## Verification checklist
|
|
@@ -24,10 +24,10 @@ instance, never a second Clerk app per env; final go/no-go at each step.
|
|
|
24
24
|
`secrets push --env prod --yes` only to retry the transfer (see
|
|
25
25
|
references/secrets-map.md).
|
|
26
26
|
3. Build, then run the passive pre-cutover security gate:
|
|
27
|
-
first require `npm view @odla-ai/security@0.
|
|
27
|
+
first require `npm view @odla-ai/security@0.3.1 version` to succeed. An
|
|
28
28
|
exact-version `E404` means the release is unavailable and blocks cutover;
|
|
29
29
|
it is not a clean scan and does not prove the package name is absent. Run
|
|
30
|
-
`npm i -D --save-exact @odla-ai/security@0.
|
|
30
|
+
`npm i -D --save-exact @odla-ai/security@0.3.1` followed by
|
|
31
31
|
`npx odla-security scan . --profile odla --out .odla/security/pre-cutover --fail-on high --fail-on-candidates critical`.
|
|
32
32
|
Review `REPORT.md`; a candidate is a lead, not confirmation, and a baseline
|
|
33
33
|
requires a concrete reason, owner, and expiry.
|
|
@@ -80,6 +80,6 @@ the printed `secrets push --env ...` retry and do not rotate again.
|
|
|
80
80
|
## Something not covered here
|
|
81
81
|
|
|
82
82
|
Check, in order: `npx @odla-ai/cli doctor` output; this skill's current phase
|
|
83
|
-
and troubleshooting references; then the relevant installed
|
|
84
|
-
|
|
85
|
-
unblock yourself — surface the blocker to the human instead.
|
|
83
|
+
and troubleshooting references; then the relevant installed package README and
|
|
84
|
+
exported TypeScript declarations/JSDoc. Do not improvise around a safety rule
|
|
85
|
+
to unblock yourself — surface the blocker to the human instead.
|