@workser/cli 0.6.4 → 0.6.6

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.js CHANGED
@@ -4092,8 +4092,12 @@ user's machine remotely \u2014 you're getting it locally, gated by the same safe
4092
4092
  destructive commands, rate limits. Refusals are the policy working, not a bug to
4093
4093
  route around.
4094
4094
  - **Sensitive actions are approval-gated.** Writing or deleting files, running a shell
4095
- command, clicking or typing may return \`awaiting_approval\` (exit 5) \u2014 tell the user
4096
- to approve in Orbit, then retry.
4095
+ command, clicking or typing may return \`awaiting_approval\` (exit 5) \u2014 this is
4096
+ usually an unattended run, so nobody is necessarily watching for it. Say plainly
4097
+ that it needs approval in Orbit and **stop this turn**. Never write a retry loop,
4098
+ a polling script, or a sleep-and-recheck command around it \u2014 that spends the whole
4099
+ run spin-waiting on a click and will simply time out. The same command works on
4100
+ its own, the next time it runs, once approved.
4097
4101
  - **You already have your own tools.** For editing files in this repo, use them. Reach
4098
4102
  for \`workser tool\` when you need something *outside* the project \u2014 the screen, the
4099
4103
  clipboard, a browser, another app on the machine.
@@ -4128,7 +4132,8 @@ workser auth status # is auth enabled? + Neon auth mode
4128
4132
  - **\`db url\` is a credential.** Don't print it into the conversation, don't paste it
4129
4133
  into a file the user will commit. The app gets it from its environment already.
4130
4134
  - **Writes are approval-gated.** A \`db query\` that mutates may return
4131
- \`awaiting_approval\` (exit 5). Ask the user to approve in Orbit, then retry.
4135
+ \`awaiting_approval\` (exit 5). Say it needs approval in Orbit and stop this turn \u2014
4136
+ don't loop or poll waiting for it; the same command works once it's approved.
4132
4137
  - **\`DROP\` / \`TRUNCATE\` are refused** by the safety policy. Change schema with a
4133
4138
  migration in the app's own migration folder, not with a destructive one-off.
4134
4139
  - **The database is the project's, not the app's.** Sibling apps in the same project
@@ -4292,17 +4297,19 @@ Settings \u2014 \`workser env\` \u2014 are their own topic: \`workser help env\`
4292
4297
  - **\`promote\` and \`rollback\` are the same upstream call and two commands on
4293
4298
  purpose.** Promote ships the newest build; rollback puts version N back. Both
4294
4299
  ask the owner and return exit 7 (\`awaiting_approval\`) until they answer \u2014 and
4295
- that gate holds even on a "just do it" run.
4300
+ that gate holds even on a "just do it" run. Say so and stop this turn; don't
4301
+ loop or poll for the answer (see the \`awaiting_approval\` note below).
4296
4302
  - **There is no \`deployments cancel\`.** Nothing upstream can stop a build that is
4297
4303
  already running. Wait for it and then promote or roll back.
4298
4304
  - **\`--watch\` blocks until there's a live URL.** Without it you get a deploy id and
4299
4305
  have to poll \`deploy status\`.
4300
4306
  - **\`domain add\` and \`domain rm\` ask the owner to confirm** and return exit 7
4301
- (\`awaiting_approval\`) until they do \u2014 tell them to approve, then retry the same
4302
- command. Domains Workser owns (\`workser.ai\` and its subdomains) and hostnames
4303
- the hosting provider assigns (\`*.vercel.app\`) are refused outright: those are
4304
- not attachable, and the app's own preview and live URLs already exist without
4305
- attaching anything.
4307
+ (\`awaiting_approval\`) until they do \u2014 say plainly that it needs approval in
4308
+ Orbit and stop this turn; the same command works on its own once it's approved,
4309
+ so don't write a retry loop or poll for it. Domains Workser owns (\`workser.ai\`
4310
+ and its subdomains) and hostnames the hosting provider assigns (\`*.vercel.app\`)
4311
+ are refused outright: those are not attachable, and the app's own preview and
4312
+ live URLs already exist without attaching anything.
4306
4313
 
4307
4314
  ## After a successful deploy
4308
4315
 
@@ -10625,7 +10632,7 @@ function colour(d) {
10625
10632
 
10626
10633
  // src/index.ts
10627
10634
  var pkg = {
10628
- version: true ? "0.6.4" : "0.0.0-dev"
10635
+ version: true ? "0.6.6" : "0.0.0-dev"
10629
10636
  };
10630
10637
  var program2 = new Command();
10631
10638
  program2.name("workser").description(
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@workser/cli",
3
- "version": "0.6.4",
3
+ "version": "0.6.6",
4
4
  "description": "Workser CLI — give your local AI agent native DevOps & infrastructure on Workser. The agent runs `workser …` to provision, deploy, and manage real apps.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -56,7 +56,7 @@ You operate on **one project's own infrastructure**. You *can* provision and use
56
56
  create the Neon database, read its connection string, browse its tables / rows / run
57
57
  SQL, provision the bucket + auth, deploy, set env vars, manage files. Sensitive
58
58
  actions are **gated** — the daemon may return `error.code = "awaiting_approval"`
59
- (exit 5) and wait for the user to approve in Orbit; ask them to approve, then retry.
59
+ (exit 5); say so, stop, don't loop (rule 5).
60
60
 
61
61
  What you **cannot** do is administer the project set or destroy config:
62
62
  `project create` · `project use` · `env rm` · `domain set` return
@@ -85,9 +85,10 @@ pick or switch it.
85
85
  reserved for the owner in Orbit. Don't retry or look for a workaround — tell the
86
86
  user, then continue. Provisioning the *pinned project's own* db / bucket / auth is
87
87
  allowed (it may be approval-gated, not owner-only).
88
- 5. **Approvals are normal.** Some allowed actions may return
89
- `{"error":{"code":"awaiting_approval"}}` (exit 5) while the user approves in the
90
- Orbit UI. Tell the user to approve, then retry do **not** try to bypass it.
88
+ 5. **Approvals are normal — likely unattended, nobody watching.** An action may
89
+ return `{"error":{"code":"awaiting_approval"}}` (exit 5). Say so, **stop this
90
+ turn** never a retry loop or sleep-and-recheck, it just times out. Works next
91
+ time, once approved.
91
92
  6. **Never ask for or store credentials.** Auth is handled by Orbit; you never see keys.
92
93
  7. **Verify before "done".** Before telling the user a task is complete, run
93
94
  `workser verify --json` (runs the project's typecheck/lint/build). If it
@@ -119,7 +120,7 @@ workser deploy --prod --watch --json # 8. ship; returns the stable
119
120
  - `unauthorized` → user needs to authenticate.
120
121
  - `no_project` → no project is linked here; the user links it in Orbit.
121
122
  - `owner_only` → an owner action; tell the user to do it in Orbit, then continue.
122
- - `awaiting_approval` → user must approve in Orbit; then retry.
123
+ - `awaiting_approval` → someone must approve in Orbit; say so, stop, don't poll.
123
124
  - `needs_local_app` → this machine has no Workser app, so folder commands
124
125
  can't run. Say so; don't reach for `git` instead.
125
126
 
@@ -28,8 +28,12 @@ user's machine remotely — you're getting it locally, gated by the same safety
28
28
  destructive commands, rate limits. Refusals are the policy working, not a bug to
29
29
  route around.
30
30
  - **Sensitive actions are approval-gated.** Writing or deleting files, running a shell
31
- command, clicking or typing may return `awaiting_approval` (exit 5) — tell the user
32
- to approve in Orbit, then retry.
31
+ command, clicking or typing may return `awaiting_approval` (exit 5) — this is
32
+ usually an unattended run, so nobody is necessarily watching for it. Say plainly
33
+ that it needs approval in Orbit and **stop this turn**. Never write a retry loop,
34
+ a polling script, or a sleep-and-recheck command around it — that spends the whole
35
+ run spin-waiting on a click and will simply time out. The same command works on
36
+ its own, the next time it runs, once approved.
33
37
  - **You already have your own tools.** For editing files in this repo, use them. Reach
34
38
  for `workser tool` when you need something *outside* the project — the screen, the
35
39
  clipboard, a browser, another app on the machine.
@@ -28,7 +28,8 @@ workser auth status # is auth enabled? + Neon auth mode
28
28
  - **`db url` is a credential.** Don't print it into the conversation, don't paste it
29
29
  into a file the user will commit. The app gets it from its environment already.
30
30
  - **Writes are approval-gated.** A `db query` that mutates may return
31
- `awaiting_approval` (exit 5). Ask the user to approve in Orbit, then retry.
31
+ `awaiting_approval` (exit 5). Say it needs approval in Orbit and stop this turn —
32
+ don't loop or poll waiting for it; the same command works once it's approved.
32
33
  - **`DROP` / `TRUNCATE` are refused** by the safety policy. Change schema with a
33
34
  migration in the app's own migration folder, not with a destructive one-off.
34
35
  - **The database is the project's, not the app's.** Sibling apps in the same project
@@ -46,17 +46,19 @@ Settings — `workser env` — are their own topic: `workser help env`.
46
46
  - **`promote` and `rollback` are the same upstream call and two commands on
47
47
  purpose.** Promote ships the newest build; rollback puts version N back. Both
48
48
  ask the owner and return exit 7 (`awaiting_approval`) until they answer — and
49
- that gate holds even on a "just do it" run.
49
+ that gate holds even on a "just do it" run. Say so and stop this turn; don't
50
+ loop or poll for the answer (see the `awaiting_approval` note below).
50
51
  - **There is no `deployments cancel`.** Nothing upstream can stop a build that is
51
52
  already running. Wait for it and then promote or roll back.
52
53
  - **`--watch` blocks until there's a live URL.** Without it you get a deploy id and
53
54
  have to poll `deploy status`.
54
55
  - **`domain add` and `domain rm` ask the owner to confirm** and return exit 7
55
- (`awaiting_approval`) until they do — tell them to approve, then retry the same
56
- command. Domains Workser owns (`workser.ai` and its subdomains) and hostnames
57
- the hosting provider assigns (`*.vercel.app`) are refused outright: those are
58
- not attachable, and the app's own preview and live URLs already exist without
59
- attaching anything.
56
+ (`awaiting_approval`) until they do — say plainly that it needs approval in
57
+ Orbit and stop this turn; the same command works on its own once it's approved,
58
+ so don't write a retry loop or poll for it. Domains Workser owns (`workser.ai`
59
+ and its subdomains) and hostnames the hosting provider assigns (`*.vercel.app`)
60
+ are refused outright: those are not attachable, and the app's own preview and
61
+ live URLs already exist without attaching anything.
60
62
 
61
63
  ## After a successful deploy
62
64