@orkestrel/scaffold 0.0.104 → 0.0.106

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.
Files changed (33) hide show
  1. package/dist/bin/main.js +8 -8
  2. package/dist/bin/main.js.map +1 -1
  3. package/dist/host/agents/orchestration.md +3 -3
  4. package/dist/host/agents/skills/orkestrel-parallel/SKILL.md +72 -0
  5. package/dist/host/agents/skills/orkestrel-parallel/agents/openai.yaml +4 -0
  6. package/dist/host/agents/skills/orkestrel-parallel/references/harnesses.md +12 -0
  7. package/dist/host/claude/agents/orkestrel.md +7 -7
  8. package/dist/host/claude/agents/verifier.md +1 -1
  9. package/dist/host/claude/skills/orkestrel-parallel/SKILL.md +11 -0
  10. package/dist/host/codex/agents/verifier.toml +3 -1
  11. package/dist/host/guides/agent.md +102 -57
  12. package/dist/host/guides/form.md +8 -8
  13. package/dist/host/guides/ollama.md +275 -18
  14. package/dist/host/guides/scaffold.md +38 -38
  15. package/dist/host/guides/study.md +589 -39
  16. package/dist/host/guides/table.md +14 -14
  17. package/dist/host/guides/test.md +94 -67
  18. package/dist/host/manifest.json +42 -14
  19. package/dist/host/tests/policy.test.ts +2 -2
  20. package/dist/host/tests/setupPolicy.ts +1 -1
  21. package/dist/src/core/index.cjs +13 -12
  22. package/dist/src/core/index.cjs.map +1 -1
  23. package/dist/src/core/index.d.cts +6 -6
  24. package/dist/src/core/index.d.ts +6 -6
  25. package/dist/src/core/index.js +13 -12
  26. package/dist/src/core/index.js.map +1 -1
  27. package/dist/src/server/index.cjs +7 -7
  28. package/dist/src/server/index.cjs.map +1 -1
  29. package/dist/src/server/index.d.cts +10 -10
  30. package/dist/src/server/index.d.ts +10 -10
  31. package/dist/src/server/index.js +7 -7
  32. package/dist/src/server/index.js.map +1 -1
  33. package/package.json +8 -8
@@ -12,7 +12,7 @@ drawing belongs to each host. The browser face binds native table elements to th
12
12
  The row store is the source of truth, and it is the whole of it. Sort terms, filters, the picked
13
13
  keys, the opened keys, and the page are held; `view` and every tally are worked out on read, so no
14
14
  second copy of an answer can go stale. A write validates all of itself before any of it lands, and
15
- announces itself once it has.
15
+ announces itself after it has.
16
16
 
17
17
  The core refuses rather than throws. Every guard returns `false` off-shape rather than throwing,
18
18
  every parser returns `undefined` on refusal, and every row the table hands back is a frozen owned
@@ -362,7 +362,7 @@ A `Shape` cell holds the constant's declared type.
362
362
  ### Guards
363
363
 
364
364
  Total `is*` guards over unknown input. None throws, none coerces, and each returns `false` for
365
- anything off-shape — including a hostile prototype, a symbol key, or a cyclic value.
365
+ anything off-shape — including an unexpected prototype, a symbol key, or a cyclic value.
366
366
 
367
367
  In a guard table a `Shape` cell holds the type the guard narrows to.
368
368
 
@@ -404,7 +404,7 @@ lens-list operations, the cell gate, the comparison, the filter tests, the row p
404
404
  audit, and the wire projections. `computeKeys`, `matchesTerms`, `filterRows`, and `sortRows`
405
405
  propagate exceptions from supplied callbacks; `serializeTable` raises `SCHEMA` for a `meta` no clone
406
406
  can own. The other helpers are total over ordinary declared inputs, subject to the core's
407
- hostile-reflection boundary described later.
407
+ reflection-failure boundary described later.
408
408
 
409
409
  | API | Kind | Summary |
410
410
  | ---------------- | -------- | --------------------------------------------------------------------------------------------------------------------------- |
@@ -435,7 +435,7 @@ row the table hands back is a live internal reference.
435
435
  | `cloneRow` | function | Clones one row into an owned frozen snapshot. |
436
436
  | `cloneSchema` | function | Clones a whole schema into an owned frozen snapshot, freezing every nested column, choice list, choice, and `meta`; raises `SCHEMA` for a `meta` it cannot own. |
437
437
 
438
- `cloneRow` cannot fail for an ordinary row record, subject to the core's hostile-reflection boundary
438
+ `cloneRow` cannot fail for an ordinary row record, subject to the core's reflection-failure boundary
439
439
  described later. `cloneSchema` can also fail when a column's `meta` holds something no clone can own, such as a
440
440
  record that refers back to itself. `meta` is typed as JSON and a cycle satisfies that type, so the
441
441
  refusal is a `TableError` coded `SCHEMA` rather than a silent partial copy. `createTable` never reaches
@@ -455,9 +455,9 @@ owned value rather than the caller's.
455
455
  | `parseTable` | function | Parses unknown wire data into an owned, structurally valid, semantically sound table schema. |
456
456
  | `parseRows` | function | Parses unknown wire data into owned rows against one table schema, coercing a numeric string and `'true'` / `'false'`. |
457
457
 
458
- **Hostile reflection.** A TypeScript shape does not guarantee that reflection succeeds. An ordinary
458
+ **Reflection failures.** A TypeScript shape does not guarantee that reflection succeeds. An ordinary
459
459
  helper or cloner may propagate a throw from a proxy trap or accessor. Guards and parsers contain that
460
- throw and refuse instead. This is the hostile-reflection boundary for the whole core.
460
+ throw and refuse instead. This is the reflection-failure boundary for the whole core.
461
461
 
462
462
  ## Cells
463
463
 
@@ -982,7 +982,7 @@ the filter admits, so nothing here can drift out of step with what the table hol
982
982
  "page 1 of 1" over an empty list needs no separate case for it.
983
983
  - A page beyond the last one clamps to the last one. Narrowing the filter therefore moves the page
984
984
  on its own, and moving to page 9 of 3 shows page 3 rather than nothing.
985
- - `resize` keeps the first row the view was showing, so the page moves to wherever that row now
985
+ - `resize` keeps the first row the view was showing, so the page moves to wherever that row
986
986
  falls. Resizing is a change of magnification, not a jump to the top.
987
987
 
988
988
  ```ts
@@ -1144,11 +1144,11 @@ An event fires only when something actually moved: a write that changes nothing
1144
1144
  | ---------- | --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
1145
1145
  | `write` | the row's `key` | Once per row admitted, written over, or moved to a different place, in the order the table wrote them. A listener that wants the row reads it back. |
1146
1146
  | `remove` | the row's `key` | Once per row taken out, in the order the table removed them. A `clear` is the exception; see its row. |
1147
- | `sort` | every current `TableOrder` | Whenever the term list's content changes, carrying the whole list as it now stands. |
1148
- | `filter` | every current `TableFilter` | Whenever the filter list's content changes, carrying the whole list as it now stands. |
1147
+ | `sort` | every current `TableOrder` | Whenever the term list's content changes, carrying the whole list as it stands. |
1148
+ | `filter` | every current `TableFilter` | Whenever the filter list's content changes, carrying the whole list as it stands. |
1149
1149
  | `select` | the picked `TableKey` set | Whenever the picked set changes, carrying the whole set — including when removing rows pruned it. |
1150
1150
  | `expand` | the opened `TableKey` set | Whenever the opened set changes, carrying the whole set — including when removing rows pruned it. |
1151
- | `paginate` | the `page` now shown | Whenever the paged window moves: a `move`, a `resize`, and a clamp caused by a narrower filter or by rows leaving. |
1151
+ | `paginate` | the `page` shown | Whenever the paged window moves: a `move`, a `resize`, and a clamp caused by a narrower filter or by rows leaving. |
1152
1152
  | `clear` | nothing | On a completed `clear`. It is the whole announcement of that reset: no `remove`, no `sort`, no `filter`, no `select`, no `expand`, and no `paginate` is emitted beside it. |
1153
1153
 
1154
1154
  A payload is owned by the listener. `sort` and `filter` carry the whole axis because a single term is
@@ -1365,7 +1365,7 @@ a host can check against the same number the package checks against.
1365
1365
  They bind at the schema door and the value door, and which door a limit sits at is the whole story.
1366
1366
 
1367
1367
  **The schema door reports.** `auditTable` counts columns, choices, names, strings, total text, and
1368
- total nodes — `meta` included, since it is retained like everything else — and returns one human
1368
+ total nodes — `meta` included, because it is retained like everything else — and returns one human
1369
1369
  diagnostic per breach. `createTable` raises `SCHEMA` carrying them and `parseTable` refuses the
1370
1370
  schema, so no over-budget schema is ever held.
1371
1371
 
@@ -1642,7 +1642,7 @@ These invariants hold across [`src/core`](../src/core) and this guide.
1642
1642
  whatever it reset, so a reset of ten thousand rows is one event. `destroy` called twice does what
1643
1643
  calling it once did; afterwards every write raises `DESTROYED` while every getter still answers
1644
1644
  what the table last held, and `destroyed` reports the fact so a host need not catch to learn it.
1645
- 16. **Guards are total and parsers refuse.** No `is*` throws for any input — hostile prototype,
1645
+ 16. **Guards are total and parsers refuse.** No `is*` throws for any input — unexpected prototype,
1646
1646
  symbol key, cycle, or depth. No `parse*` throws; each returns `undefined` on refusal. A
1647
1647
  guard-valid value is never refused by its parser, and every parsed result satisfies its guard.
1648
1648
  `isTableSchema` is therefore semantic and not merely structural: it is the exact shape plus an
@@ -1701,7 +1701,7 @@ this package answers today through a mechanism it already exposes.
1701
1701
  | Grouping and aggregation | out | Group headers, subtotals, and rollups add a second row kind that is not a row, and a fold that is not a filter. `view` stays a flat list of the rows the table holds. |
1702
1702
  | Tree and hierarchical rows | out | A parent key would make `view` a traversal rather than a projection, and expansion would mean "show children" instead of "this row is open". Expansion here says only which rows are open. |
1703
1703
  | Editing transactions | out | A staged edit set with commit and rollback is a second store beside the row store, and two writers that can disagree. A host that needs one holds the pending values and calls `update` once. |
1704
- | Undo and history | out | The table holds the rows now. A stack of everything before is a host concern with a host's retention policy, built over the same `update` and `remove` calls. |
1704
+ | Undo and history | out | The table holds the rows. A stack of everything before is a host concern with a host's retention policy, built over the same `update` and `remove` calls. |
1705
1705
  | Async data sources | host | Every read here is synchronous, so `view` is right the instant anything moves. Fetching, paging a server, and reconciling a response are the host's; it reads the lens and calls `add` or `clear`. |
1706
1706
  | Server-side paging | seam | `sort.orders()`, `filter.filters()`, `pagination.offset`, and `pagination.limit` are already the shape a query asks for, in the vocabulary `@orkestrel/database` uses. |
1707
1707
  | Row count budget | out | A table legitimately holds a million rows. The budgets bound one schema's declarations, which arrive from a wire; how many rows a host holds is the host's memory to spend. |
@@ -1746,7 +1746,7 @@ this package answers today through a mechanism it already exposes.
1746
1746
  `compareCells`, `admitsFilter`, `matchesFilter`, `filterRows`, `sortRows`, `auditTable`,
1747
1747
  `serializeTable`, `serializeRows`, and the budgets.
1748
1748
  - [`tests/src/core/validators.test.ts`](../tests/src/core/validators.test.ts) — every guard against
1749
- valid, off-shape, and hostile input, plus guard/parser soundness in both directions.
1749
+ valid, off-shape, and untrusted input, plus guard/parser soundness in both directions.
1750
1750
  - [`tests/src/core/parsers.test.ts`](../tests/src/core/parsers.test.ts) — `parseTable`, `parseRows`,
1751
1751
  the coercions, identity at the parse door, and the canonical byte-stable round trip.
1752
1752
  - [`tests/src/core/cloners.test.ts`](../tests/src/core/cloners.test.ts) — every clone is owned,