@everfir/az8-cli 0.3.0 → 0.5.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/package.json CHANGED
@@ -1,14 +1,12 @@
1
1
  {
2
2
  "name": "@everfir/az8-cli",
3
- "version": "0.3.0",
3
+ "version": "0.5.0",
4
4
  "description": "Semantic Project Canvas client for AZ8 Studio agents.",
5
5
  "license": "UNLICENSED",
6
6
  "type": "module",
7
7
  "files": [
8
8
  "dist",
9
- "skills",
10
- "CHANGELOG.md",
11
- "RELEASE.md"
9
+ "skills"
12
10
  ],
13
11
  "bin": {
14
12
  "az8": "dist/main.js"
@@ -6,7 +6,7 @@ description: Use AZ8 CLI to safely select or create Projects, inspect and author
6
6
  # Use AZ8 CLI
7
7
 
8
8
  Treat `az8` as a semantic AZ8 Studio client, not as a document editor or generic backend client.
9
- Follow this guide before the first Project Canvas action in a new environment. Query runtime
9
+ Follow this guide before the first Project Canvas action in a new agent host. Query runtime
10
10
  capabilities instead of guessing operation names or input shapes.
11
11
 
12
12
  ## Contract
@@ -14,7 +14,7 @@ capabilities instead of guessing operation names or input shapes.
14
14
  - Use only public `az8 projects`, `az8 session`, and `az8 canvas` commands. Never mutate backend
15
15
  records, Yjs, Collaborative Document fields, Core Node payloads, or Project Content bindings
16
16
  directly.
17
- - Explicitly select `test` or `production`. Never infer authorization to write production data.
17
+ - Never infer authorization to write outside the user-selected Project and concrete task.
18
18
  - Read the relevant Canvas facts before planning a write. Submit one semantic Operation at a time.
19
19
  - Treat every accepted write as a blocker: wait for its terminal Receipt before issuing any later
20
20
  query or Operation.
@@ -22,9 +22,10 @@ capabilities instead of guessing operation names or input shapes.
22
22
  indeterminate result; do not execute later steps.
23
23
  - Never automatically retry a write. Retry only bounded reads when the returned error says doing so
24
24
  is safe. An idempotency key does not authorize blind replay.
25
- - Require the operator or agent host to provision credentials outside the recorded interaction.
26
- Keep tokens in the inherited process environment or an ignored env file. Never type, read, copy,
27
- print, or return a token through a shell tool call, argv, stdio frame, prompt, log, or output.
25
+ - Prefer `az8 login` browser authorization for the current operating-system user. Externally
26
+ provisioned process-environment and env-file credentials remain higher-priority automation
27
+ inputs. Never type, read, copy, print, or return a token through a shell tool call, argv, stdio
28
+ frame, prompt, log, or output.
28
29
 
29
30
  ## Concepts
30
31
 
@@ -57,27 +58,48 @@ capabilities instead of guessing operation names or input shapes.
57
58
  name is always `<authenticated display name> (<client suffix>)`; the default suffix is `cli`.
58
59
  CLI awareness does not publish selection bounds. Awareness never grants authority, changes
59
60
  persisted authorship, or proves a business result.
60
- - **Actor** is the authenticated account from `AZ8_TOKEN`. A client or awareness name cannot
61
- impersonate another author.
61
+ - **Actor** is the account selected by the active credential source. A client or awareness name
62
+ cannot impersonate another author.
62
63
 
63
64
  ## Bootstrap
64
65
 
65
- 1. Report the canonical working directory and intended environment before asking the operator to
66
- provision an env file. This tells them where automatic `.env.local` discovery begins without
67
- inspecting the file or secret. Then verify the installed client without credentials:
66
+ 1. Report the canonical working directory. Then verify the installed
67
+ client without credentials:
68
68
 
69
69
  ```bash
70
70
  az8 --version
71
71
  ```
72
72
 
73
- 2. Require credentials to be provisioned by the operator or agent host before authenticating. The
74
- CLI accepts `AZ8_TOKEN` from its inherited process environment or an env file. A provisioned env
75
- file has this shape, but the agent must not fill the placeholder with a real token in a recorded
76
- interaction:
73
+ 2. Check the active identity without inspecting credential material:
74
+
75
+ ```bash
76
+ az8 whoami
77
+ ```
78
+
79
+ If no credential is available, invoke browser authorization and ask the user to approve the
80
+ request in the opened AZ8 Studio page:
81
+
82
+ ```bash
83
+ az8 login
84
+ ```
85
+
86
+ `login` emits the verification URL and User Code as structured progress while it waits. Do not
87
+ create a polling loop around it. If the browser cannot be opened on the agent host, use
88
+ `az8 login --no-open`, give the emitted URL to the user, and keep that one
89
+ command running until it succeeds or fails. Authorization delivery is at-most-once: a lost
90
+ response, cancelled CLI, or failed local save requires a completely new `az8 login`; never retry
91
+ the consumed exchange yourself.
92
+
93
+ The CLI stores browser-authorized credentials privately by operating-system user and AZ8 service.
94
+ `az8 logout` removes only that local credential and closes daemon Sessions that depend on it; it
95
+ is not online revocation. Do not log out automatically at task completion.
96
+
97
+ The CLI also accepts `AZ8_TOKEN` from its inherited process environment or an env file for
98
+ externally managed automation. A provisioned env file has this shape, but the agent must not fill
99
+ the placeholder with a real token in a recorded interaction:
77
100
 
78
101
  ```dotenv
79
102
  AZ8_TOKEN=<operator-provisioned-secret>
80
- AZ8_ENVIRONMENT=test
81
103
  ```
82
104
 
83
105
  With no `--env-file`, the CLI searches for `.env.local` from the working directory upward. An
@@ -85,18 +107,19 @@ capabilities instead of guessing operation names or input shapes.
85
107
 
86
108
  ```bash
87
109
  az8 projects list --scope owned --page-size 1 \
88
- --environment test --env-file /secure/path/.env.local
110
+ --env-file /secure/path/.env.local
89
111
  ```
90
112
 
91
- Use the authenticated read as the credential check. Never verify a token with `cat`, `sed`,
92
- `grep`, `env`, `printenv`, `echo`, shell tracing, or by reading the env file through another
93
- tool. Do not create, edit, move, or delete a credential file unless the operator explicitly asks
94
- through a secure provisioning workflow. Keep it outside version control with owner-only access.
113
+ Use `az8 whoami` as the credential check. Never verify a token with `cat`, `sed`, `grep`, `env`,
114
+ `printenv`, `echo`, shell tracing, or by reading the env file through another tool. Do not create,
115
+ edit, move, or delete a credential file unless the operator explicitly asks through a secure
116
+ provisioning workflow. Keep it outside version control with owner-only access.
95
117
 
96
- The inherited process environment overrides env-file values; `--environment` overrides
97
- `AZ8_ENVIRONMENT`. Always pass or provision the intended environment explicitly. If the CLI
98
- reports a missing token or authentication failure, stop and ask the operator to provision or
99
- replace it outside the conversation. Never ask them to paste the secret into chat.
118
+ The inherited process environment overrides env-file values, and env-file values override the
119
+ locally saved login. `az8 login` can save a local
120
+ credential while an external credential remains active, so check the returned `credential.active`
121
+ field and use `az8 whoami` to confirm the effective Actor.
122
+ Never ask the user to paste a secret into chat.
100
123
 
101
124
  3. Select an existing Project or create a bounded workspace:
102
125
 
@@ -112,9 +135,9 @@ capabilities instead of guessing operation names or input shapes.
112
135
  daemon-backed Agent Collaboration Session now and retain it through the authoring task:
113
136
 
114
137
  ```bash
115
- az8 session open <project-id> --environment test
138
+ az8 session open <project-id>
116
139
  az8 session query capabilities.summary
117
- az8 session query capabilities.detail
140
+ az8 session query capabilities.detail --operation-name <operation-name>
118
141
  az8 session query canvas.summary
119
142
  ```
120
143
 
@@ -122,13 +145,15 @@ capabilities instead of guessing operation names or input shapes.
122
145
  Session merely to retain unused state:
123
146
 
124
147
  ```bash
125
- az8 canvas query <project-id> capabilities.summary --environment test
126
- az8 canvas query <project-id> canvas.summary --environment test
148
+ az8 canvas query <project-id> capabilities.summary
149
+ az8 canvas query <project-id> canvas.summary
127
150
  ```
128
151
 
129
- `capabilities.summary` is the short menu. `capabilities.detail` is authoritative for exact JSON
130
- Schema, `effect`, `history`, `completion`, and `retry`. Availability is filtered by the current
131
- account, Project role, upstream services, and CLI version. Do not rely on remembered schemas.
152
+ `capabilities.summary` is the short menu. Select one Operation with `--operation-name` when
153
+ querying `capabilities.detail`; that focused response is authoritative for exact JSON Schema,
154
+ `effect`, `history`, `completion`, and `retry`. Availability is filtered by the current account,
155
+ Project role, upstream services, and CLI version. Do not load the full detail catalog or rely on
156
+ remembered schemas.
132
157
 
133
158
  5. Use `canvas.detail` only when exact node geometry, Draft, status, or bindings are needed:
134
159
 
@@ -150,7 +175,7 @@ connection, Awareness, History, Receipts, Interests, and Watch Journal across or
150
175
  calls:
151
176
 
152
177
  ```bash
153
- az8 session open <project-id> --environment test
178
+ az8 session open <project-id>
154
179
  az8 session current
155
180
  az8 session status
156
181
  ```
@@ -244,7 +269,8 @@ one-shot processes.
244
269
  ## Canvas SOP
245
270
 
246
271
  1. Query `canvas.summary`; query selected details only as needed.
247
- 2. Query `capabilities.detail` and validate the planned Operation input against its schema.
272
+ 2. Query `capabilities.detail --operation-name <operation-name>` and validate the planned Operation
273
+ input against its schema.
248
274
  3. When artifact type and placement are already clear, make the first meaningful Canvas state
249
275
  visible before doing lengthy prompt refinement or generation planning:
250
276
  - create the generation target first, inspect whether its eligible default Draft was
@@ -275,6 +301,9 @@ entries. Never use compensating low-level mutations to imitate undo.
275
301
 
276
302
  Generation is an explicit sequence, never one transaction:
277
303
 
304
+ `getCoreNode` requires a non-empty unique `coreNodeIds` batch and returns `coreNodes` in request
305
+ order. Treat any missing requested Core Node as a failed read.
306
+
278
307
  1. Create a target with `createGenerationTarget` and retain its View Node ID. It accepts `audio`,
279
308
  `image`, `text`, or `video`; `createMediaTarget` remains a compatibility capability for non-text
280
309
  targets when advertised. The same creation interaction initializes an account-eligible default
@@ -296,6 +325,9 @@ Generation is an explicit sequence, never one transaction:
296
325
  plan.
297
326
  4. Execute `plan.operations` exactly in order, one Operation at a time. Each step revalidates
298
327
  current facts. Stop after the first non-success.
328
+ `addVisualReference` requires a non-empty unique `referenceViewNodeIds` batch, and
329
+ `removeVisualReference` requires a non-empty unique `referenceIds` batch. The runtime validates
330
+ the whole batch and writes the Draft once.
299
331
  When a reference must also appear at a meaningful Prompt position, use
300
332
  `insertPromptReference` with the target View Node and visible reference View Node. Use
301
333
  `placement: "start"` or `"end"` for boundary placement, or anchor a named concept precisely:
@@ -345,7 +377,15 @@ delivers each unchanged terminal fact once. User Workflow Interests are additive
345
377
  progress observations, but cannot remove or narrow the system terminal stream. This is Session
346
378
  discovery, not an account-wide or historical Workflow event log.
347
379
 
348
- Workflow Definitions change over time. Query `workflowDefinitions.summary`, then
380
+ Workflow Definitions change over time. Start with a bounded catalog page:
381
+
382
+ ```bash
383
+ az8 session query workflowDefinitions.summary --page-size 10
384
+ az8 session query workflowDefinitions.summary --workflow-target image --page-size 10
385
+ ```
386
+
387
+ The compact response reports `catalog.targetCounts`, filtered `pagination.total`, and an opaque
388
+ `pagination.nextCursor`. Continue only when more Definition identities are needed. Then query
349
389
  `workflowDefinition.detail` only when planning detail is insufficient. Never guess a Definition,
350
390
  configuration option, modality, cost, or media compatibility from its display name.
351
391
  Summary discovery, defaults, planning, and start are filtered to Definitions available to the
@@ -449,14 +489,13 @@ Never:
449
489
  - use one-shot as if it retained History, Receipts, replay state, observations, or presence;
450
490
  - attempt Asset membership, arbitrary Core Node creation, 3D World editing, unsupported
451
491
  Decoration, alignment, or automatic layout through lower-level access;
452
- - write production unless the user explicitly selected and authorized production for the concrete
453
- action.
492
+ - write Project data unless the user explicitly authorized the concrete action.
454
493
 
455
494
  ## Completion
456
495
 
457
496
  Before reporting a task complete, verify all applicable facts:
458
497
 
459
- - The intended environment, Project ID, authenticated role, and installed CLI version are known.
498
+ - The configured AZ8 service, Project ID, authenticated role, and installed CLI version are known.
460
499
  - Runtime capability discovery—not memory—authorized every Operation and input schema used.
461
500
  - Every write has its own request ID, terminal Receipt, and sequential position; no write was
462
501
  automatically retried.
package/CHANGELOG.md DELETED
@@ -1,225 +0,0 @@
1
- # Changelog
2
-
3
- All notable AZ8 CLI changes are recorded here. The CLI package has its own linear version sequence;
4
- it does not inherit the Web application or monorepo root version.
5
-
6
- ## Unreleased
7
-
8
- ## 0.3.0 - 2026-07-23
9
-
10
- ### Added
11
-
12
- - Account-aware Workflow discovery and selection, using the same free-account eligibility rule as
13
- Web while keeping unavailable historical Definitions inspectable in detail.
14
- - Web-equivalent default generation Drafts and private local Workflow preferences scoped by
15
- environment, authenticated account, and output content type.
16
- - Truthful terminal Workflow target identity derived from retained launch facts or unique Canvas
17
- History, with explicit unresolved and ambiguous states when evidence is insufficient.
18
- - Daemon-backed collaboration Sessions, manual and generated Text Resources, semantic Prompt
19
- reference insertion, structured transfer progress, and bounded download recovery.
20
-
21
- ### Changed
22
-
23
- - `createGenerationTarget` initializes an eligible default Draft in the same undoable interaction;
24
- prompt-only `editGenerationDraft` uses the same resolver when a historical target has no Draft.
25
- - Generation plans preserve their effective prompt and configuration when input modality switches
26
- to another Workflow Definition and rebuilds the target Draft.
27
- - Workflow summary, defaults, planning, reference edits, and generation start reject Definitions
28
- unavailable to the authenticated account. `available:free` is treated only as free-tier access,
29
- never as pricing evidence.
30
- - Agent guidance prioritizes one foreground `session watch`, early visible targets, authoritative
31
- planning, and explicit reconciliation instead of polling, guessed At syntax, or write retries.
32
-
33
- ### Safety and compatibility
34
-
35
- - Public writes remain semantic Operations backed by internal Commands. No Workflow preference,
36
- access rule, or Watch enrichment grants a raw Canvas mutation path.
37
- - Local preferences contain only a Definition id and sanitized scalar config values; they never
38
- contain credentials, prompts, media URLs, or Project data.
39
- - Stable protocol `1.0`, sequential write blocking, no automatic write retry, and explicit
40
- generation acceptance/completion boundaries remain unchanged from `0.2.0`.
41
-
42
- ## 0.3.0-preview.3 - 2026-07-23
43
-
44
- ### Added
45
-
46
- - Every collaborative Session receives discoverable Workflow terminal events by default, including
47
- the Workflow Run, target View Node, and output Core Node identities.
48
- - Prompt references can be inserted before or after an exact text occurrence without exposing raw
49
- Canvas data.
50
- - Media uploads report structured stage, byte, and percentage progress across one-shot, persistent
51
- stdio, and daemon-backed Session transports.
52
-
53
- ### Changed
54
-
55
- - Media downloads use bounded read-only retries under one caller deadline, clean partial files, and
56
- return structured, credential-safe transport diagnostics when recovery fails.
57
- - The built-in agent Skill prioritizes a single foreground `session watch` call, warns against
58
- background polling loops, and documents terminal reconciliation and exact Prompt placement.
59
-
60
- ### Safety and compatibility
61
-
62
- - User Workflow Interests remain additive and cannot disable the system terminal stream.
63
- - Download retries never extend the caller deadline or apply to definitive verification failures.
64
- - Upload progress is provisional observability and cannot change the semantic Operation result.
65
-
66
- ## 0.3.0-preview.2 - 2026-07-23
67
-
68
- ### Added
69
-
70
- - Cursor-only Awareness acknowledgement after a remote Canvas Watch delivery has been flushed and
71
- internally acknowledged.
72
- - Advisory `data.createdByCli` provenance on every View Node created through the CLI.
73
-
74
- ### Changed
75
-
76
- - CLI-created Notes retain the authenticated Actor id and display the current client suffix in
77
- their visible creator label.
78
- - Ordinary Resource View Nodes no longer receive invented generic creator metadata.
79
- - The built-in agent Skill recommends early visible generation targets and empty Text Resources
80
- when artifact type and placement are already unambiguous.
81
-
82
- ### Safety and compatibility
83
-
84
- - Delivery Awareness never responds to the CLI's own changes, never publishes Selection, and does
85
- not represent understanding or completion.
86
- - Editing an existing View Node preserves its creation provenance; duplicating stamps the new node
87
- with the current client suffix.
88
-
89
- ## 0.3.0-preview.1 - 2026-07-23
90
-
91
- ### Added
92
-
93
- - Manual Text Resources through `createTextNode` and `editTextContent`, generated Text targets
94
- through `createGenerationTarget`, and Web-compatible Note accents through `setNoteColor`.
95
- - Daemon-backed Agent Collaboration Sessions through `az8 session`, with one isolated local daemon
96
- per Session, current-context discovery, retained authenticated Canvas lifecycle, semantic
97
- Operations and queries, Interests, bounded Watch delivery, and explicit close.
98
- - A single semantic collaboration Watch for Canvas, Workflow, and Session facts, with bounded recent
99
- history, pending continuity inspection, at-least-once stdout delivery, and explicit
100
- resynchronization after journal loss.
101
-
102
- ### Changed
103
-
104
- - New generation references accept only visible Canvas View Node identities. Content available only
105
- as a Core Node must first be placed with `placeCoreNode`, preserving Web's inferred connection
106
- lines and preventing ambiguous placement selection.
107
- - Agent authoring now defaults to daemon-backed Sessions. Persistent stdio remains the lower-level
108
- carrier, while one-shot remains limited to isolated reads, standalone transfers, explicit caller
109
- choice, or hosts that cannot retain a collaborative client.
110
- - Numeric Workflow configuration enums normalize transport string values back to their declared
111
- numeric domain before planning validation, matching Web behavior.
112
-
113
- ### Safety and compatibility
114
-
115
- - Tokens remain outside command arguments, daemon descriptors, and the private daemon protocol.
116
- - Session writes remain serialized and never retry automatically. Queries wait behind executing
117
- writes; Watch collection remains independent.
118
- - The initial local daemon transport supports macOS and Linux. Windows remains explicitly
119
- unsupported until the same private Session carrier is hosted through a named pipe.
120
-
121
- ## 0.2.0 - 2026-07-22
122
-
123
- First stable semantic Project Canvas client for agents.
124
-
125
- ### Added
126
-
127
- - Project management, persistent NDJSON Canvas collaboration, one-shot compatibility wrappers,
128
- semantic note and hierarchy authoring, Core Node generation, Workflow observation, and safe local
129
- media upload/download.
130
- - A runtime-discoverable built-in agent Skill covering platform concepts, capability discovery,
131
- persistent request/process lifecycle, generation sequencing, recovery, and prohibited bypasses.
132
- - Commander 15 command routing and generated help, with Zod 4 schemas for typed option and
133
- cross-option validation.
134
-
135
- ### Changed
136
-
137
- - Source is grouped into `src/cli`, `src/commands`, `src/canvas`, `src/media`, `src/integrations`,
138
- `src/guide`, `src/schemas`, `src/errors`, and `src/utils`; tests remain colocated and domain
139
- modules remain framework-independent.
140
- - The CLI and repository development contract now require Node.js 22.12 or newer.
141
-
142
- ### Stability contract
143
-
144
- - Public Canvas writes remain available only through semantic Operations and internal Commands;
145
- callers cannot write raw backend, Yjs, Core Node, or Project Content data.
146
- - Protocol `1.0`, ordered request/Receipt behavior, authenticated presence, no automatic write retry,
147
- and explicit deferred scopes form the initial stable compatibility boundary.
148
- - 3D World, Asset aggregate management, automatic layout, media replacement, and batch upload remain
149
- intentionally deferred rather than partially exposed.
150
-
151
- ## 0.2.0-preview.5 - 2026-07-22
152
-
153
- ### Changed
154
-
155
- - Canvas awareness names now preserve the authenticated user's Web-equivalent display name first
156
- and append a CLI-owned parenthesized client suffix, defaulting to `(cli)`.
157
- - `--client-name <suffix>` may override the client suffix for persistent and one-shot lifecycles,
158
- but caller-provided parentheses are rejected so presence cannot obscure the name boundary.
159
- - CLI attention awareness now publishes only the semantic cursor and omits selection bounds.
160
- - `startGeneration` now carries valid Workflow execution-time estimates into the View Node's
161
- generation history as Web-compatible median and maximum completion timestamps.
162
-
163
- ## 0.2.0-preview.4 - 2026-07-22
164
-
165
- ### Changed
166
-
167
- - Persistent NDJSON stdio is now the default interaction mode for every Canvas authoring task,
168
- including a plan containing only one write.
169
- - One-shot is limited to isolated reads, standalone transfers, explicit caller choice, or hosts that
170
- genuinely cannot retain a child process; fewer tool calls alone is not a valid reason to use it.
171
- - The outer repository Skill now requires preview.4 so a newly triggered agent receives this mode
172
- selection policy.
173
-
174
- ## 0.2.0-preview.3 - 2026-07-21
175
-
176
- ### Changed
177
-
178
- - The built-in Skill now treats credentials as an operator or agent-host provisioning precondition
179
- and explains inherited environment, default `.env.local`, and explicit `--env-file` resolution.
180
- - Authentication is verified with a bounded Project read without inspecting, printing, copying, or
181
- editing the token source.
182
- - The shell example that could encourage an agent to type a real token into a recorded interaction
183
- has been removed, and missing or invalid credentials now direct the agent back to secure external
184
- provisioning.
185
-
186
- ## 0.2.0-preview.2 - 2026-07-21
187
-
188
- ### Added
189
-
190
- - A platform-neutral built-in agent Skill available through `az8 guide` without credentials or a
191
- network connection.
192
- - Section-level Markdown and versioned JSON guide output for progressive discovery.
193
- - Agent onboarding for platform concepts, runtime capability discovery, first-session, Canvas,
194
- generation and media SOPs, failure recovery, prohibited actions, and completion checks.
195
-
196
- ### Safety and compatibility
197
-
198
- - The Skill never replaces Project-scoped `capabilities.detail` or Workflow Definition discovery;
199
- dynamic schemas, permissions, completion, History, and retry policy remain runtime-authoritative.
200
- - Existing semantic Operations and protocol version `1.0` are unchanged.
201
-
202
- ## 0.2.0-preview.1 - 2026-07-21
203
-
204
- First installable internal preview.
205
-
206
- ### Added
207
-
208
- - Project list, detail, create, and rename commands.
209
- - Persistent NDJSON stdio Canvas client with lifecycle, awareness, observations, Receipts,
210
- reconnect, explicit shutdown, backpressure, and authenticated actor identity.
211
- - One-shot wrappers over the same Canvas Client and semantic Operation Registry.
212
- - Note lifecycle, non-World hierarchy, History, summary/detail inspection, and Core Node placement.
213
- - Generation Planning, Draft editing, Visual References, Workflow start, status query, and bounded
214
- wait semantics with credit-usage information.
215
- - Public media URL import and safe local image/video/audio upload and download.
216
-
217
- ### Safety and compatibility
218
-
219
- - Canvas writes are available only through semantic Operations and Commands.
220
- - Writes are serialized, never automatically retried, and isolate the Canvas context after an
221
- indeterminate result. Read retry remains bounded.
222
- - Tokens are accepted only through environment variables or env files and are redacted from
223
- program interaction and diagnostics.
224
- - 3D World, Asset aggregate management, automatic layout, media replacement, and batch upload are
225
- intentionally not part of this preview.
package/RELEASE.md DELETED
@@ -1,93 +0,0 @@
1
- # AZ8 CLI release
2
-
3
- `latest` is the stable release channel. Preview versions remain immutable historical artifacts and
4
- must not be republished or renamed into a stable version.
5
-
6
- ## Release gate
7
-
8
- From the repository root:
9
-
10
- ```bash
11
- pnpm release:az8-cli
12
- pnpm release:pack:az8-cli
13
- ```
14
-
15
- The first command rebuilds the CLI's classified workspace dependencies, runs CLI tests and type
16
- checking, builds a real npm tarball, installs that tarball in a clean temporary directory, and
17
- verifies the installed `az8` executable. The second repeats the dependency-aware prepack and
18
- preserves the verified tarball and clean installation under `tmp/az8-cli-release/` for live
19
- acceptance. Never bundle against pre-existing workspace `dist/` output.
20
-
21
- Run the live smoke only against the test environment. It creates one Project unless `--project-id`
22
- reuses an explicit test Project, starts one visible-reference image generation, and uploads one
23
- generated 512×512 PNG:
24
-
25
- ```bash
26
- node apps/az8-cli/scripts/smoke-test.js \
27
- --bin ./tmp/az8-cli-release/install/node_modules/.bin/az8 \
28
- --env-file ./.env.local
29
- ```
30
-
31
- The smoke report must show authenticated persistent stdio, ordered shutdown, a completed Workflow
32
- Run whose target resolves its output Core Node, upload replay without another transfer, and matching
33
- download SHA-256. `--skip-generation` is only for diagnosing unrelated media or transport checks;
34
- it cannot satisfy full release acceptance. When the release changes generation-time projection,
35
- select a timing-enabled test Definition and require its persisted Web estimate:
36
-
37
- ```bash
38
- node apps/az8-cli/scripts/smoke-test.js \
39
- --bin ./tmp/az8-cli-release/install/node_modules/.bin/az8 \
40
- --env-file ./.env.local \
41
- --generation-definition-id <timing-enabled-test-definition-id> \
42
- --require-generation-estimate
43
- ```
44
-
45
- When a release changes Text generation, add one bounded Text Workflow to the smoke with a known
46
- test Definition. This is additive to the image acceptance unless the image path is being diagnosed
47
- separately:
48
-
49
- ```bash
50
- node apps/az8-cli/scripts/smoke-test.js \
51
- --bin ./tmp/az8-cli-release/install/node_modules/.bin/az8 \
52
- --env-file ./.env.local \
53
- --text-generation-definition-id <test-text-definition-id>
54
- ```
55
-
56
- Before publishing, also run the test-environment acceptance checklist in the packaged README and the
57
- repository-wide `pnpm verify`. Publishing is an external action and requires explicit operator
58
- authorization:
59
-
60
- For the `0.3.0` stable candidate, publish the exact retained artifact to the stable channel only
61
- after its test-environment acceptance succeeds:
62
-
63
- ```bash
64
- npm publish ./tmp/az8-cli-release/everfir-az8-cli-0.3.0.tgz --tag latest
65
- npm view @everfir/az8-cli dist-tags versions --json
66
- ```
67
-
68
- Publish only the exact retained tarball whose SHA-512 appears in its release verification record.
69
- Do not publish from an unverified source directory, retag a preview artifact as stable, or rebuild
70
- after acceptance. If the obsolete misspelled `prewview` tag still exists, remove that tag without
71
- unpublishing its immutable version:
72
-
73
- ```bash
74
- npm dist-tag rm @everfir/az8-cli prewview
75
- npm view @everfir/az8-cli dist-tags --json
76
- ```
77
-
78
- ## Rollback
79
-
80
- Published versions are immutable. Rollback moves `latest` to a previously verified stable version
81
- instead of unpublishing or overwriting a package:
82
-
83
- ```bash
84
- npm dist-tag add @everfir/az8-cli@<previous-stable-version> latest
85
- npm view @everfir/az8-cli dist-tags --json
86
- npm install --global @everfir/az8-cli
87
- az8 --version
88
- ```
89
-
90
- For tarball distribution, retain every verified `.tgz`; reinstall the previous tarball and confirm
91
- `az8 --version`. A rollback changes only the installed client. It never reverses already
92
- acknowledged Project or Canvas effects; agents must use semantic compensation or Canvas History for
93
- product data.