@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/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 only for interactive terminals. */
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, in
459
- * interactive terminals, auto-opens the browser
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 only for interactive terminals. */
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, in
459
- * interactive terminals, auto-opens the browser
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
@@ -38,7 +38,7 @@ import {
38
38
  secretsSetClerkKey,
39
39
  smoke,
40
40
  startHostedSecurityJob
41
- } from "./chunk-KUQCJ6KA.js";
41
+ } from "./chunk-DC4MIB4X.js";
42
42
  export {
43
43
  AGENT_HARNESSES,
44
44
  CAPABILITIES,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@odla-ai/cli",
3
- "version": "0.11.0",
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",
@@ -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. Create the Worker entrypoint and `wrangler.jsonc` before any
29
- deployed-secret transfer. With o11y, install `@odla-ai/o11y`, add
30
- `"nodejs_compat"` to `compatibility_flags`, and wrap the entrypoint with
31
- `withObservability`.
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`. The npm artifacts contain everything required for
36
- this flow; private service source or online documentation is not setup context.
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 using this documented shape:
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