@odla-ai/cli 0.29.0 → 0.30.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 +42 -23
- package/dist/bin.cjs +254 -43
- package/dist/bin.cjs.map +1 -1
- package/dist/bin.js +1 -1
- package/dist/{chunk-YTVLTADT.js → chunk-PPSXHZJI.js} +234 -44
- package/dist/chunk-PPSXHZJI.js.map +1 -0
- package/dist/{cli-DNOAYDBR.js → cli-CKBUVTJM.js} +2 -2
- package/dist/index.cjs +233 -43
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -2
- package/dist/index.d.ts +3 -2
- package/dist/index.js +1 -1
- package/dist/runtime/pi-agent.js +18728 -15
- package/package.json +1 -1
- package/skills/odla/SKILL.md +4 -1
- package/skills/odla/references/pm-work-intake.md +5 -3
- package/skills/odla/references/pm.md +4 -0
- package/skills/odla-migrate/references/secrets-map.md +22 -22
- package/skills/odla-migrate/references/troubleshooting.md +14 -16
- package/dist/chunk-YTVLTADT.js.map +0 -1
- /package/dist/{cli-DNOAYDBR.js.map → cli-CKBUVTJM.js.map} +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@odla-ai/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.30.0",
|
|
4
4
|
"description": "Agent-operable CLI for odla provisioning, calendar consent and connection 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
|
@@ -178,7 +178,10 @@ project id.
|
|
|
178
178
|
Before project-mutating work, confirm the request aligns to an open goal and
|
|
179
179
|
propose/refine a **task** in Backlog. Ready is a planner handoff: an ordinary
|
|
180
180
|
managed-agent grant has `pm.execute`, so a human owner or `pm.plan` agent must
|
|
181
|
-
approve the Ready contract before
|
|
181
|
+
approve the Ready contract before an unattended executor claims work discovered
|
|
182
|
+
through PM. A direct request from the user actively directing the coding
|
|
183
|
+
session is already authority: record it, but do not stop and ask that user to
|
|
184
|
+
repeat approval by moving the task to Ready.
|
|
182
185
|
Record a **decision** the moment you make one (with what it rules out), and file
|
|
183
186
|
a **bug** the moment you notice one. A decision you don't record is one the next
|
|
184
187
|
agent re-litigates. Full command set, conventions, and recovery procedure:
|
|
@@ -43,9 +43,11 @@ An agent must not create a convenient goal merely to authorize itself.
|
|
|
43
43
|
Ready is a durable planner-to-executor handoff. A human project owner or an
|
|
44
44
|
agent holding `pm.plan` may refine the task and mark it Ready. Ordinary managed
|
|
45
45
|
agent handshakes receive `pm.execute`, not `pm.plan`: they may create a Backlog
|
|
46
|
-
proposal or file a bug
|
|
47
|
-
|
|
48
|
-
the
|
|
46
|
+
proposal or file a bug. Require the Ready transition only when PM/watch supplied
|
|
47
|
+
the work or the agent is operating unattended. In an interactive coding session,
|
|
48
|
+
the user's direct request is already execution authority; record it in PM and
|
|
49
|
+
continue without asking the same user for a duplicate board click. Do not treat
|
|
50
|
+
a 403 as a reason to widen the grant.
|
|
49
51
|
|
|
50
52
|
Create/refine the task with one alignment source, an actionable description,
|
|
51
53
|
acceptance criteria, and execution mode:
|
|
@@ -106,6 +106,10 @@ Human project owners retain planning authority through ownership. Legacy
|
|
|
106
106
|
`pm.write` grants remain executable so existing claims are not stranded, but do
|
|
107
107
|
not gain planning authority.
|
|
108
108
|
|
|
109
|
+
This split coordinates unattended work; it is not an interactive approval
|
|
110
|
+
gate. When a user directly requests work in the active coding session, record
|
|
111
|
+
the request in PM but do not require them to repeat it with a Ready transition.
|
|
112
|
+
|
|
109
113
|
## Working with it
|
|
110
114
|
|
|
111
115
|
**At the start of a session**, resolve the exact project and read before you
|
|
@@ -25,26 +25,26 @@ not ask the human for Anthropic/OpenAI/Google keys for hosted security.
|
|
|
25
25
|
|
|
26
26
|
## Moving the db key (+ o11y token) into the Worker (never through the transcript)
|
|
27
27
|
|
|
28
|
-
Normal provisioning owns the complete sequence
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
Normal deployment provisioning owns the complete sequence. The handshake
|
|
29
|
+
authorizes one exact Cloudflare target; Registry stages additive DB/o11y
|
|
30
|
+
credentials, the CLI holds plaintext only in memory, and one Wrangler bulk
|
|
31
|
+
stdin call installs `ODLA_API_KEY` plus `ODLA_O11Y_TOKEN`:
|
|
31
32
|
|
|
32
|
-
npx @odla-ai/cli provision --
|
|
33
|
-
npx @odla-ai/cli provision --yes --push-secrets # Phase 5;
|
|
33
|
+
npx @odla-ai/cli provision --push-secrets
|
|
34
|
+
npx @odla-ai/cli provision --live --yes --push-secrets # Phase 5; prod only
|
|
34
35
|
|
|
35
|
-
|
|
36
|
-
|
|
36
|
+
Each developer and Worker may have a different credential for the same sandbox
|
|
37
|
+
tenant. Revocation is targeted and never rotates siblings. Use
|
|
38
|
+
`credentials list` and `credentials revoke <receipt-id>` to inventory or retire
|
|
39
|
+
one deployed runtime. Use the narrower command below only to transfer an
|
|
40
|
+
already-saved local-development credential:
|
|
37
41
|
|
|
38
42
|
npx @odla-ai/cli secrets push --env dev
|
|
39
43
|
npx @odla-ai/cli secrets push --env prod --yes
|
|
40
44
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
| npx wrangler secret put ODLA_API_KEY --env dev
|
|
45
|
-
|
|
46
|
-
(For prod, use `c.envs.prod.dbKey` and drop `--env` — the top-level
|
|
47
|
-
wrangler env is prod.)
|
|
45
|
+
There is intentionally no production manual-copy fallback. If the CLI is
|
|
46
|
+
unavailable, repair the CLI or Registry session path rather than exporting a
|
|
47
|
+
production key into shell history or chat.
|
|
48
48
|
|
|
49
49
|
## Moving a tenant-vault secret (never through the transcript)
|
|
50
50
|
|
|
@@ -68,11 +68,11 @@ Clerk dashboard between two browser tabs). Prod-named envs require `--yes`.
|
|
|
68
68
|
- Before every commit: read `git status`; the files above and the build
|
|
69
69
|
output dir must not be staged. `odla-ai init` gitignores them — trust
|
|
70
70
|
but verify.
|
|
71
|
-
- If a secret value ever does land in the conversation or a committed
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
`provision --
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
71
|
+
- If a secret value ever does land in the conversation or a committed file:
|
|
72
|
+
tell the human immediately and treat it as burned. For a receipt-backed
|
|
73
|
+
Worker, use `credentials revoke <receipt-id>` and run
|
|
74
|
+
`provision --push-secrets` for a fresh independent set. For a legacy local
|
|
75
|
+
credential, use `provision --rotate-keys` or `--rotate-o11y-token` only with
|
|
76
|
+
explicit human approval; use the provider dashboard for LLM/Clerk values.
|
|
77
|
+
- Studio's o11y token control is destructive legacy recovery. Prefer an
|
|
78
|
+
additive deployment credential so unrelated runtimes remain live.
|
|
@@ -86,14 +86,12 @@ smoke.
|
|
|
86
86
|
|
|
87
87
|
## Provision reports an existing o11y token but no local credential
|
|
88
88
|
|
|
89
|
-
Cause:
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
to the Worker. Do not use the Studio button for routine recovery; it cannot sync
|
|
96
|
-
the repository's credential file.
|
|
89
|
+
Cause: an older CLI expected one o11y token per tenant. Current o11y credentials
|
|
90
|
+
are additive, so another developer or Worker's token is not an obstacle.
|
|
91
|
+
Fix: run `npx @odla-ai/cli provision --push-secrets` (add `--yes` when production
|
|
92
|
+
is in the plan). The approved handshake stages a new target-bound token and DB
|
|
93
|
+
key, installs them without a local plaintext cache, and leaves every sibling
|
|
94
|
+
credential intact. Use destructive rotation only for an actual compromise.
|
|
97
95
|
|
|
98
96
|
## Clerk-verified requests return no email
|
|
99
97
|
|
|
@@ -118,14 +116,14 @@ Never rotate a key or rewrite the route merely to defeat a cached response.
|
|
|
118
116
|
|
|
119
117
|
## Re-running provision — is it safe?
|
|
120
118
|
|
|
121
|
-
Yes: plain re-runs are idempotent (existing app registration and
|
|
122
|
-
and o11y credentials are reused; schema/rules re-push).
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
119
|
+
Yes: plain local re-runs are idempotent (existing app registration and saved db
|
|
120
|
+
and o11y credentials are reused; schema/rules re-push). Each `--push-secrets`
|
|
121
|
+
run intentionally creates a new receipt-backed set for that exact Worker.
|
|
122
|
+
Retire an older deployment with `credentials list` followed by
|
|
123
|
+
`credentials revoke <receipt-id>`. Destructive legacy local rotation is always
|
|
124
|
+
explicit: `--rotate-o11y-token` replaces only o11y, while `--rotate-keys` is
|
|
125
|
+
broader. Rotation flags cannot be combined with `--push-secrets`; a failed
|
|
126
|
+
Wrangler bulk operation automatically revokes its staged set.
|
|
129
127
|
|
|
130
128
|
## Something not covered here
|
|
131
129
|
|