@odla-ai/cli 0.11.0 → 0.11.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.
- package/README.md +5 -4
- package/dist/bin.cjs +15 -12
- package/dist/bin.cjs.map +1 -1
- package/dist/bin.js +1 -1
- package/dist/{chunk-KUQCJ6KA.js → chunk-DC4MIB4X.js} +16 -13
- package/dist/chunk-DC4MIB4X.js.map +1 -0
- package/dist/index.cjs +15 -12
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +5 -8
- package/dist/index.d.ts +5 -8
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/skills/odla/SKILL.md +22 -0
- package/skills/odla/references/build.md +10 -6
- package/skills/odla-migrate/SKILL.md +17 -0
- package/skills/odla-migrate/references/phase-1-static.md +5 -1
- package/skills/odla-migrate/references/phase-3-auth.md +5 -0
- package/dist/chunk-KUQCJ6KA.js.map +0 -1
package/dist/index.d.cts
CHANGED
|
@@ -151,7 +151,6 @@ interface CalendarLifecycleOptions {
|
|
|
151
151
|
/** Existing developer-token override. */ token?: string;
|
|
152
152
|
/** Existing odla account email used only for a fresh handshake. */ email?: string;
|
|
153
153
|
open?: boolean;
|
|
154
|
-
interactive?: boolean;
|
|
155
154
|
yes?: boolean;
|
|
156
155
|
json?: boolean;
|
|
157
156
|
fetch?: typeof fetch;
|
|
@@ -323,10 +322,9 @@ interface ProvisionOptions {
|
|
|
323
322
|
token?: string;
|
|
324
323
|
/** Existing odla account email used only when a fresh device handshake is required. */
|
|
325
324
|
email?: string;
|
|
326
|
-
/** true forces browser launch, false disables it, undefined auto-opens
|
|
325
|
+
/** true forces browser launch, false disables it, undefined auto-opens whenever
|
|
326
|
+
* this machine can show a browser (skipped in CI, over SSH, or with no display). */
|
|
327
327
|
open?: boolean;
|
|
328
|
-
/** Test/embedding override for terminal interactivity. Defaults to stdin/stdout TTY detection. */
|
|
329
|
-
interactive?: boolean;
|
|
330
328
|
/** Test/embedding override for opening the approval URL. Defaults to the OS browser opener. */
|
|
331
329
|
openApprovalUrl?: (url: string) => Promise<void>;
|
|
332
330
|
/** Test/embedding override for calendar connection polling. */
|
|
@@ -361,7 +359,6 @@ interface SmokeOptions {
|
|
|
361
359
|
/** Existing odla account email used only when a fresh device handshake is required. */
|
|
362
360
|
email?: string;
|
|
363
361
|
open?: boolean;
|
|
364
|
-
interactive?: boolean;
|
|
365
362
|
openApprovalUrl?: (url: string) => Promise<void>;
|
|
366
363
|
fetch?: typeof fetch;
|
|
367
364
|
stdout?: Pick<typeof console, "log" | "error">;
|
|
@@ -455,8 +452,9 @@ declare function initProject(options: InitOptions): void;
|
|
|
455
452
|
*
|
|
456
453
|
* The developer token comes from (in order) `options.token`, `$ODLA_DEV_TOKEN`,
|
|
457
454
|
* the cached `.odla` token, or a fresh email-bound device handshake — which
|
|
458
|
-
* prints a user code for the same signed-in account to review and
|
|
459
|
-
*
|
|
455
|
+
* prints a user code for the same signed-in account to review and auto-opens
|
|
456
|
+
* the browser whenever this machine can show one — including scripted and
|
|
457
|
+
* agent-driven runs; only CI, SSH, and display-less hosts skip it
|
|
460
458
|
* (`open: true`/`false` forces/suppresses it). Network error bodies pass through
|
|
461
459
|
* `redactSecrets` before display.
|
|
462
460
|
*
|
|
@@ -525,7 +523,6 @@ interface SecretsSetOptions {
|
|
|
525
523
|
/** Existing odla account email used only when a fresh handshake is required. */
|
|
526
524
|
email?: string;
|
|
527
525
|
open?: boolean;
|
|
528
|
-
interactive?: boolean;
|
|
529
526
|
openApprovalUrl?: (url: string) => Promise<void>;
|
|
530
527
|
fetch?: typeof fetch;
|
|
531
528
|
readStdin?: () => Promise<string>;
|
package/dist/index.d.ts
CHANGED
|
@@ -151,7 +151,6 @@ interface CalendarLifecycleOptions {
|
|
|
151
151
|
/** Existing developer-token override. */ token?: string;
|
|
152
152
|
/** Existing odla account email used only for a fresh handshake. */ email?: string;
|
|
153
153
|
open?: boolean;
|
|
154
|
-
interactive?: boolean;
|
|
155
154
|
yes?: boolean;
|
|
156
155
|
json?: boolean;
|
|
157
156
|
fetch?: typeof fetch;
|
|
@@ -323,10 +322,9 @@ interface ProvisionOptions {
|
|
|
323
322
|
token?: string;
|
|
324
323
|
/** Existing odla account email used only when a fresh device handshake is required. */
|
|
325
324
|
email?: string;
|
|
326
|
-
/** true forces browser launch, false disables it, undefined auto-opens
|
|
325
|
+
/** true forces browser launch, false disables it, undefined auto-opens whenever
|
|
326
|
+
* this machine can show a browser (skipped in CI, over SSH, or with no display). */
|
|
327
327
|
open?: boolean;
|
|
328
|
-
/** Test/embedding override for terminal interactivity. Defaults to stdin/stdout TTY detection. */
|
|
329
|
-
interactive?: boolean;
|
|
330
328
|
/** Test/embedding override for opening the approval URL. Defaults to the OS browser opener. */
|
|
331
329
|
openApprovalUrl?: (url: string) => Promise<void>;
|
|
332
330
|
/** Test/embedding override for calendar connection polling. */
|
|
@@ -361,7 +359,6 @@ interface SmokeOptions {
|
|
|
361
359
|
/** Existing odla account email used only when a fresh device handshake is required. */
|
|
362
360
|
email?: string;
|
|
363
361
|
open?: boolean;
|
|
364
|
-
interactive?: boolean;
|
|
365
362
|
openApprovalUrl?: (url: string) => Promise<void>;
|
|
366
363
|
fetch?: typeof fetch;
|
|
367
364
|
stdout?: Pick<typeof console, "log" | "error">;
|
|
@@ -455,8 +452,9 @@ declare function initProject(options: InitOptions): void;
|
|
|
455
452
|
*
|
|
456
453
|
* The developer token comes from (in order) `options.token`, `$ODLA_DEV_TOKEN`,
|
|
457
454
|
* the cached `.odla` token, or a fresh email-bound device handshake — which
|
|
458
|
-
* prints a user code for the same signed-in account to review and
|
|
459
|
-
*
|
|
455
|
+
* prints a user code for the same signed-in account to review and auto-opens
|
|
456
|
+
* the browser whenever this machine can show one — including scripted and
|
|
457
|
+
* agent-driven runs; only CI, SSH, and display-less hosts skip it
|
|
460
458
|
* (`open: true`/`false` forces/suppresses it). Network error bodies pass through
|
|
461
459
|
* `redactSecrets` before display.
|
|
462
460
|
*
|
|
@@ -525,7 +523,6 @@ interface SecretsSetOptions {
|
|
|
525
523
|
/** Existing odla account email used only when a fresh handshake is required. */
|
|
526
524
|
email?: string;
|
|
527
525
|
open?: boolean;
|
|
528
|
-
interactive?: boolean;
|
|
529
526
|
openApprovalUrl?: (url: string) => Promise<void>;
|
|
530
527
|
fetch?: typeof fetch;
|
|
531
528
|
readStdin?: () => Promise<string>;
|
package/dist/index.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@odla-ai/cli",
|
|
3
|
-
"version": "0.11.
|
|
3
|
+
"version": "0.11.2",
|
|
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",
|
package/skills/odla/SKILL.md
CHANGED
|
@@ -55,6 +55,28 @@ State which path you're taking and what you'll build in one line; get a nod.
|
|
|
55
55
|
store a Google authorization code/refresh token. Open only the state-bound
|
|
56
56
|
platform/Google consent URL returned by odla; calendar actions remain unavailable in the read-only slice.
|
|
57
57
|
|
|
58
|
+
## Tooling sources
|
|
59
|
+
|
|
60
|
+
- **odla**: this skill plus the installed `@odla-ai/*` packages are the
|
|
61
|
+
complete, offline contract (README + exported declarations/JSDoc, rendered
|
|
62
|
+
at `https://odla.ai/docs/packages/<pkg>`). Never reconstruct odla behavior
|
|
63
|
+
from the web or training memory.
|
|
64
|
+
- **Third-party tools (wrangler, Clerk) — the reverse**: their CLIs and config
|
|
65
|
+
formats evolve, so never work from memorized setup steps. When you reach a
|
|
66
|
+
wrangler or Clerk step, fetch the vendor's current agent docs and follow
|
|
67
|
+
those:
|
|
68
|
+
- Cloudflare: docs index `https://developers.cloudflare.com/llms.txt`; every
|
|
69
|
+
docs page has a markdown twin at `<page>/index.md` (wrangler config:
|
|
70
|
+
`https://developers.cloudflare.com/workers/wrangler/configuration/index.md`).
|
|
71
|
+
With the human's OK (it edits global agent config), you may also follow
|
|
72
|
+
`https://developers.cloudflare.com/agent-setup/prompt.md` to add
|
|
73
|
+
Cloudflare's own skills + MCP servers to your harness.
|
|
74
|
+
- Clerk: agent-first CLI setup `https://clerk.com/docs/cli.md`; docs index
|
|
75
|
+
`https://clerk.com/docs/llms.txt`.
|
|
76
|
+
|
|
77
|
+
Offline? Say so, continue with the vendor steps written in these references,
|
|
78
|
+
and flag that they may be stale.
|
|
79
|
+
|
|
58
80
|
## The flow
|
|
59
81
|
|
|
60
82
|
You reached this skill because the human ran `npx @odla-ai/cli setup`. Then:
|
|
@@ -25,15 +25,19 @@ For static Appointment Schedule parity, add the public per-env
|
|
|
25
25
|
## 2. Build the Worker shell
|
|
26
26
|
|
|
27
27
|
`npm i` only the SDKs you need and use the local `references/sdks.md` as the
|
|
28
|
-
integration map.
|
|
29
|
-
|
|
30
|
-
`
|
|
31
|
-
|
|
28
|
+
integration map. `npm i -D wrangler` so the project pins its own copy instead
|
|
29
|
+
of relying on an implicit `npx` fetch. Create the Worker entrypoint and
|
|
30
|
+
`wrangler.jsonc` before any deployed-secret transfer — take the current config
|
|
31
|
+
syntax from Cloudflare's live docs (SKILL.md "Tooling sources"), not memory.
|
|
32
|
+
With o11y, install `@odla-ai/o11y`, add `"nodejs_compat"` to
|
|
33
|
+
`compatibility_flags`, and wrap the entrypoint with `withObservability`.
|
|
32
34
|
|
|
33
35
|
Each installed package's README and exported TypeScript declarations/JSDoc are
|
|
34
36
|
the version-matched API contract; resolve public entry points through its
|
|
35
|
-
`package.json` `exports`.
|
|
36
|
-
|
|
37
|
+
`package.json` `exports`. For everything odla, the npm artifacts contain the
|
|
38
|
+
whole setup context — private service source or web documentation is never
|
|
39
|
+
required. Third-party tooling (wrangler, Clerk) is the reverse: use the live
|
|
40
|
+
vendor docs, never memorized steps.
|
|
37
41
|
|
|
38
42
|
## 3. Provision ⏸ device-code approval
|
|
39
43
|
|
|
@@ -124,3 +124,20 @@ Read only the current phase file as directed above. After `npm install`, prefer
|
|
|
124
124
|
each installed package's README and exported TypeScript declarations/JSDoc over
|
|
125
125
|
training memory; resolve entry points through its `package.json` `exports`.
|
|
126
126
|
Those artifacts describe the version this project actually uses.
|
|
127
|
+
|
|
128
|
+
Third-party tools (wrangler, Clerk) are the reverse: their CLIs and config
|
|
129
|
+
formats evolve, so never work from memorized setup steps. When a phase reaches
|
|
130
|
+
a wrangler or Clerk step, fetch the vendor's current agent docs and prefer
|
|
131
|
+
their syntax over any literal command written in a phase file:
|
|
132
|
+
|
|
133
|
+
- Cloudflare: docs index `https://developers.cloudflare.com/llms.txt`; every
|
|
134
|
+
docs page has a markdown twin at `<page>/index.md` (wrangler config:
|
|
135
|
+
`https://developers.cloudflare.com/workers/wrangler/configuration/index.md`).
|
|
136
|
+
With the human's OK (it edits global agent config), you may also follow
|
|
137
|
+
`https://developers.cloudflare.com/agent-setup/prompt.md` to add Cloudflare's
|
|
138
|
+
own skills + MCP servers to your harness.
|
|
139
|
+
- Clerk: agent-first CLI setup `https://clerk.com/docs/cli.md`; docs index
|
|
140
|
+
`https://clerk.com/docs/llms.txt`.
|
|
141
|
+
|
|
142
|
+
Offline? Say so, continue with the vendor steps written in the phase files,
|
|
143
|
+
and flag that they may be stale.
|
|
@@ -10,7 +10,11 @@ in this session).
|
|
|
10
10
|
## Steps
|
|
11
11
|
|
|
12
12
|
1. `npm i -D wrangler`
|
|
13
|
-
2. Write `wrangler.jsonc` by hand
|
|
13
|
+
2. Write `wrangler.jsonc` by hand. The shape below is the odla-shaped
|
|
14
|
+
baseline; verify field names and current syntax against Cloudflare's live
|
|
15
|
+
doc first
|
|
16
|
+
(`https://developers.cloudflare.com/workers/wrangler/configuration/index.md`
|
|
17
|
+
— see SKILL.md "Context bootstrap"):
|
|
14
18
|
- `name`: kebab-case app id; `main`: `src/worker.ts`
|
|
15
19
|
- `compatibility_date` (today), `compatibility_flags: ["nodejs_compat"]`
|
|
16
20
|
- `assets: { "directory": "<buildDir>", "binding": "ASSETS",
|
|
@@ -17,6 +17,11 @@ dashboard. Do NOT assume an app exists: a stale publishable key can linger
|
|
|
17
17
|
on the registry's app_auth record from a deleted/recreated app —
|
|
18
18
|
`clerk apps list` is the source of truth for what's real.
|
|
19
19
|
|
|
20
|
+
Clerk's CLI evolves. Before the first `npx clerk` command, fetch the current
|
|
21
|
+
doc — `https://clerk.com/docs/cli.md` — and prefer its syntax over the literal
|
|
22
|
+
flags below. The steps here are the odla-shaped sequence; the live doc is
|
|
23
|
+
authoritative for commands and flags.
|
|
24
|
+
|
|
20
25
|
## Steps
|
|
21
26
|
|
|
22
27
|
1. Provision the Clerk app with the CLI (after the human's `clerk auth
|