@skein-code/cli 0.3.24 → 0.3.26

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 CHANGED
@@ -96,7 +96,7 @@ To build, verify, and install a local package artifact from this checkout:
96
96
 
97
97
  ```bash
98
98
  npm run verify:package -- --output-dir artifacts/package
99
- npm install -g ./artifacts/package/skein-code-cli-0.3.24.tgz
99
+ npm install -g ./artifacts/package/skein-code-cli-0.3.26.tgz
100
100
  ```
101
101
 
102
102
  To install the published package from npm:
@@ -278,6 +278,24 @@ allowed by policy. Use `--auto-edit` to allow file edits while retaining prompts
278
278
  for shell/Git/network, or `--yes` for intentionally unattended runs. Hard deny
279
279
  rules still win over both flags.
280
280
 
281
+ JSON emits one `type: "result"` object; JSONL ends with a `type: "session"`
282
+ record, or `type: "final"` after a runtime error. These terminal records follow
283
+ [`docs/headless-output.schema.json`](docs/headless-output.schema.json), include
284
+ `schemaVersion: 1`, `status`, `reason`, and `exitCode`, and use this stable
285
+ exit-code contract:
286
+
287
+ | Code | Status | Meaning |
288
+ | ---: | --- | --- |
289
+ | 0 | `completed`, `verified` | The read-only run completed or current changes were verified. |
290
+ | 1 | `error` | Setup, provider, extension, or runtime failure. |
291
+ | 2 | `needs_input` | One persisted clarification is required; resume the same session. |
292
+ | 3 | `unverified` | Changes or required acceptance evidence remain unverified. |
293
+ | 4 | `verification_failed` | A current verification command failed. |
294
+ | 5 | `blocked` | The active Task Contract records a blocked required criterion. |
295
+ | 6 | `cancelled` | The run was interrupted; its session state was saved. |
296
+ | 7 | `max_turns` | The configured turn limit ended the run. |
297
+ | 8 | `token_budget` | The lifetime token budget ended the run. |
298
+
281
299
  ## Commands
282
300
 
283
301
  ```text
@@ -296,6 +314,8 @@ skein session list|show|delete local session management
296
314
  skein session export <id> Markdown audit export
297
315
  skein checkpoint list <session> inspect snapshots
298
316
  skein checkpoint restore <s> <c> restore a snapshot
317
+ skein /review [scope] read-only fixed-scope review in the TUI
318
+ skein /recover [action] recovery status, retry, resume, diff, audit, rollback
299
319
  skein tools tool schemas and categories
300
320
  skein rules loaded user/workspace rule files
301
321
  ```
@@ -366,7 +386,10 @@ permissions:
366
386
 
367
387
  agent:
368
388
  maxTurns: 24
369
- maxSessionTokens: 250000
389
+ # Rotate deterministic context handoffs without changing the session id.
390
+ maxEpochTokens: 250000
391
+ # Hard lifetime cost/usage ceiling across every resumed epoch.
392
+ maxSessionTokens: 1000000
370
393
  autoVerify: true
371
394
  verifyCommands:
372
395
  - npm run typecheck
@@ -379,6 +402,20 @@ hooks:
379
402
  afterTurn: []
380
403
  ```
381
404
 
405
+ `--epoch-token-budget` overrides the handoff boundary for one invocation;
406
+ `--token-budget` remains the hard lifetime ceiling. Reaching an epoch boundary
407
+ keeps the complete transcript and cumulative usage, validates Task Contract,
408
+ failure, changed-file, and verification state, then continues in the same
409
+ session with a bounded active window. The Context inspector shows both meters.
410
+
411
+ For complex executable requests, Skein records an Intent Sufficiency receipt
412
+ before model-driven mutation. Explicit requests proceed directly; repository
413
+ facts are inspected rather than asked back to the user; a genuine product
414
+ choice such as public-API compatibility pauses with one question and two or
415
+ three concrete options. Headless JSON/JSONL emits `needs_input`, persists the
416
+ question, performs no mutation, and exits with status 2. The next reply resumes
417
+ the same logical run. Permission approval remains a separate runtime gate.
418
+
382
419
  See [examples/config.yaml](examples/config.yaml) for a ready-to-adapt file.
383
420
  Secrets should normally stay in environment variables instead of committed
384
421
  configuration.