@north-light/cli 0.3.452 → 0.3.454

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.
@@ -1,8 +1,8 @@
1
1
  ---
2
2
  kind: preference
3
3
  when-and-why-to-read: When a run cannot reach a person and a decision still needs to be made, this preference should be read because waiting cannot produce an answer on this run.
4
- rationale: A run without `ask` cannot use the human branch, so it needs a completion path that records its decision rather than waiting forever.
5
- gate: {not: {scopes: ask}}
4
+ rationale: A run without `crtr:act` cannot use the human branch, so it needs a completion path that records its decision rather than waiting forever.
5
+ gate: {not: {scopes: crtr:act}}
6
6
  surfaces:
7
7
  - on: boot
8
8
  at: content
@@ -2,7 +2,7 @@
2
2
  kind: preference
3
3
  when-and-why-to-read: When progress depends on a person deciding, reviewing, or responding, or when a crtr command fails unexpectedly, this preference should be read because the runtime can deliver the needed signal to its actual recipient instead of leaving work stranded in conversation prose.
4
4
  rationale: The human inbox and system-feedback commands are delivery paths whose effects are otherwise invisible in ordinary conversation.
5
- gate: {scopes: ask}
5
+ gate: {scopes: crtr:act}
6
6
  surfaces:
7
7
  - on: boot
8
8
  at: content
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  kind: preference
3
3
  when-and-why-to-read: When a terminal node needs a person, this preference should be read because its turn-by-turn output does not reach anyone.
4
- gate: {lifecycle: terminal, scopes: ask}
4
+ gate: {lifecycle: terminal, scopes: crtr:act}
5
5
  surfaces:
6
6
  - on: boot
7
7
  at: content
@@ -345,7 +345,7 @@ if (outcome.kind === 'result') {
345
345
  }
346
346
  ```
347
347
 
348
- The runtime validates the value before it records it. A submission that does not match is refused with its field errors and never appears in `runs.get`, an event, or a report, so the agent fixes it and resubmits. `output_schema` accepts a plain JSON Schema object or anything with `toJSONSchema()`, such as a Zod v4 object. The SDK sends it as a JSON object and validates nothing itself. A schema that is not an object, or is over 256 KB serialized, is refused with `invalid_request` and `param: 'output_schema'`, and no run is created. A submitted result can be at most 1 MiB. The agent submits with its `submit_result` tool, which needs no scope, so a run that only reasons and answers can be started with `scopes: ['crtr:llm']`. The same value is in `runs.get(runId).result`, which `runs.wait` returns unchanged, and on the run's `node.settled` event.
348
+ The runtime validates the value before it records it. A submission that does not match is refused with its field errors and never appears in `runs.get`, an event, or a report, so the agent fixes it and resubmits. `output_schema` accepts a plain JSON Schema object or anything with `toJSONSchema()`, such as a Zod v4 object. The SDK sends it as a JSON object and validates nothing itself. A schema that is not an object, or is over 256 KB serialized, is refused with `invalid_request` and `param: 'output_schema'`, and no run is created. A submitted result can be at most 1 MiB. The value is validated exactly as submitted, with no coercion: `null` is never turned into `0` or `""`, and `"5"` is not turned into `5`, so a mismatch is refused and the agent resubmits. The schema is one JSON object, so a `$ref` can point only into itself (`#/$defs/x`, `#anchor`) or at another schema document bundled under `$defs` with its own `$id` (`"$defs": { "common": { "$id": "common.schema.json", ... } }` resolves `common.schema.json#/$defs/x`). Files are never fetched. A schema with a `$ref` that resolves nowhere inside it, or one that cannot be compiled (a bad `pattern`), is refused with `invalid_request` and `param: 'output_schema'` and no run is created. The agent submits with its `submit_result` tool, which needs no scope, so a run that only reasons and answers can be started with `scopes: ['crtr:llm']`. The same value is in `runs.get(runId).result`, which `runs.wait` returns unchanged, and on the run's `node.settled` event.
349
349
 
350
350
  Do not parse assistant text out of `runs.trace` to get data back. `runs.trace` is for showing a person the transcript. Its text is whatever the model said, not a value anything checked.
351
351