@odla-ai/cli 0.27.0 → 0.27.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 +6 -6
- package/REQUIREMENTS.md +6 -4
- package/dist/bin.cjs +133 -123
- package/dist/bin.cjs.map +1 -1
- package/dist/bin.js +1 -1
- package/dist/{chunk-DS64H4FY.js → chunk-JWEBGIBR.js} +133 -123
- package/dist/chunk-JWEBGIBR.js.map +1 -0
- package/dist/index.cjs +133 -123
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +6 -6
- package/dist/index.d.ts +6 -6
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/skills/odla/SKILL.md +10 -8
- package/skills/odla-migrate/references/phase-2-db.md +3 -1
- package/skills/odla-migrate/references/troubleshooting.md +4 -3
- package/dist/chunk-DS64H4FY.js.map +0 -1
package/dist/index.d.cts
CHANGED
|
@@ -569,8 +569,8 @@ interface ProvisionOptions {
|
|
|
569
569
|
token?: string;
|
|
570
570
|
/** Existing odla account email used only when a fresh device handshake is required. */
|
|
571
571
|
email?: string;
|
|
572
|
-
/**
|
|
573
|
-
*
|
|
572
|
+
/** Browser opening is attempted by default in every real CLI environment.
|
|
573
|
+
* true records an explicit request; false is the only production suppression. */
|
|
574
574
|
open?: boolean;
|
|
575
575
|
/** Cap the handshake-approval wait, in seconds. When it elapses the command
|
|
576
576
|
* exits with the pending handshake persisted; rerunning resumes it. Defaults
|
|
@@ -897,10 +897,10 @@ declare function initProject(options: InitOptions): void;
|
|
|
897
897
|
*
|
|
898
898
|
* The developer token comes from (in order) `options.token`, `$ODLA_DEV_TOKEN`,
|
|
899
899
|
* the cached `.odla` token, or a fresh email-bound device handshake — which
|
|
900
|
-
* prints
|
|
901
|
-
*
|
|
902
|
-
*
|
|
903
|
-
*
|
|
900
|
+
* prints one canonical Studio URL and attempts to open it from every real CLI
|
|
901
|
+
* environment, including CI, SSH, display-less, and agent-driven shells. Only
|
|
902
|
+
* `open: false` suppresses the attempt; opener failures remain explicit.
|
|
903
|
+
* Network error bodies pass through
|
|
904
904
|
* `redactSecrets` before display.
|
|
905
905
|
*
|
|
906
906
|
* @param options.dryRun Print the resolved plan and return before any network call/write.
|
package/dist/index.d.ts
CHANGED
|
@@ -569,8 +569,8 @@ interface ProvisionOptions {
|
|
|
569
569
|
token?: string;
|
|
570
570
|
/** Existing odla account email used only when a fresh device handshake is required. */
|
|
571
571
|
email?: string;
|
|
572
|
-
/**
|
|
573
|
-
*
|
|
572
|
+
/** Browser opening is attempted by default in every real CLI environment.
|
|
573
|
+
* true records an explicit request; false is the only production suppression. */
|
|
574
574
|
open?: boolean;
|
|
575
575
|
/** Cap the handshake-approval wait, in seconds. When it elapses the command
|
|
576
576
|
* exits with the pending handshake persisted; rerunning resumes it. Defaults
|
|
@@ -897,10 +897,10 @@ declare function initProject(options: InitOptions): void;
|
|
|
897
897
|
*
|
|
898
898
|
* The developer token comes from (in order) `options.token`, `$ODLA_DEV_TOKEN`,
|
|
899
899
|
* the cached `.odla` token, or a fresh email-bound device handshake — which
|
|
900
|
-
* prints
|
|
901
|
-
*
|
|
902
|
-
*
|
|
903
|
-
*
|
|
900
|
+
* prints one canonical Studio URL and attempts to open it from every real CLI
|
|
901
|
+
* environment, including CI, SSH, display-less, and agent-driven shells. Only
|
|
902
|
+
* `open: false` suppresses the attempt; opener failures remain explicit.
|
|
903
|
+
* Network error bodies pass through
|
|
904
904
|
* `redactSecrets` before display.
|
|
905
905
|
*
|
|
906
906
|
* @param options.dryRun Print the resolved plan and return before any network call/write.
|
package/dist/index.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@odla-ai/cli",
|
|
3
|
-
"version": "0.27.
|
|
3
|
+
"version": "0.27.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
|
@@ -106,9 +106,11 @@ guessing which platform/credential steps need manual work. Then:
|
|
|
106
106
|
`npx @odla-ai/cli provision --email <existing-odla-account>
|
|
107
107
|
--write-dev-vars --push-secrets`. A device code prints; that same account
|
|
108
108
|
signs in, reviews the exact code, and approves it at https://odla.ai/studio.
|
|
109
|
-
Opening the link alone is inert.
|
|
110
|
-
|
|
111
|
-
|
|
109
|
+
Opening the link alone is inert. The CLI prints exactly one `/studio?code=`
|
|
110
|
+
URL and attempts to open it in every real environment. **If you have browser
|
|
111
|
+
control, open that exact URL now.** If you do not, give it to the human
|
|
112
|
+
verbatim; never wait silently or start a substitute handshake. Outside an
|
|
113
|
+
interactive terminal the wait is capped (90s default,
|
|
112
114
|
`--wait <seconds>`); exit code 75 means still pending: the handshake is
|
|
113
115
|
persisted, so once the human approves, re-run the same command and it
|
|
114
116
|
resumes the same code and collects the token. It creates the app,
|
|
@@ -242,11 +244,11 @@ Found a wrong step? Fix an app runbook directly. For a platform runbook,
|
|
|
242
244
|
`runbook edit` requests an admin-approved capability — a plain handshake token is
|
|
243
245
|
never admin, and `npx @odla-ai/cli whoami` tells you what you hold.
|
|
244
246
|
|
|
245
|
-
⏸ That request prints
|
|
246
|
-
|
|
247
|
-
approve it yourself — the grant is issued to you, not by you — and
|
|
248
|
-
blocks until a signed-in admin approves it.
|
|
249
|
-
|
|
247
|
+
⏸ That request prints the same canonical approval block. **Use browser control
|
|
248
|
+
to open its URL immediately; if unavailable, give it to the human verbatim.**
|
|
249
|
+
You cannot approve it yourself — the grant is issued to you, not by you — and
|
|
250
|
+
the command blocks until a signed-in admin approves it. Never wait silently or
|
|
251
|
+
start a substitute handshake because the automatic opener produced no tab.
|
|
250
252
|
If approval is not available, comment on the runbook instead so an admin can fix
|
|
251
253
|
it later.
|
|
252
254
|
|
|
@@ -7,7 +7,9 @@ schema + deny-all rules, the db key in the dev worker, and first
|
|
|
7
7
|
Human obligation: provide the existing odla account email (not a password or
|
|
8
8
|
session credential), sign in at https://odla.ai/studio, explicitly review the
|
|
9
9
|
exact handshake code, and approve it. The provision run prints the code and
|
|
10
|
-
|
|
10
|
+
attempts to open the one canonical review URL in every real CLI environment.
|
|
11
|
+
Agents with browser control open that exact URL immediately; loading it alone
|
|
12
|
+
is inert until the signed-in human approves.
|
|
11
13
|
|
|
12
14
|
## Steps
|
|
13
15
|
|
|
@@ -40,9 +40,10 @@ password or session token.
|
|
|
40
40
|
Cause: nobody approved within the wait cap (90s outside an interactive
|
|
41
41
|
terminal; `--wait <seconds>` overrides). This is normal in agent shells and
|
|
42
42
|
loses nothing — the handshake is persisted in `.odla/handshake.local.json`.
|
|
43
|
-
Fix:
|
|
44
|
-
|
|
45
|
-
|
|
43
|
+
Fix: use browser control to open the one printed `/studio?code=` URL now. If
|
|
44
|
+
browser control is unavailable, give that URL to the human **verbatim**. The
|
|
45
|
+
CLI attempts its OS opener in every real environment, but that request can
|
|
46
|
+
still produce no visible tab. Wait for approval, then re-run the same command; it
|
|
46
47
|
resumes the same code and collects the token. Do not loop unattended
|
|
47
48
|
retries; each handshake lives ~10 minutes.
|
|
48
49
|
|