mirror of
https://github.com/rowboatlabs/rowboat.git
synced 2026-07-12 21:02:17 +02:00
The design rule "app/always capabilities are never model-loadable" was held only by two arrays happening to be separate. Now it is structural: CapabilityDefinition is a union — ModelCapability (requires catalog title/summary and lazy content, cannot carry a fragment) vs EagerCapability (requires promptFragment, never enters the catalog) — and DiskSkill is typed as ModelCapability, making the disk trust boundary a compile-time fact instead of a comment. The kitchen is fenced along with the menu: catalog building and skill-tool attachment go through pure, fenced helpers (buildCatalogFromEntries / toolNamesFromEntries), and the boundary test now feeds a real eager capability through a mixed list and asserts both the catalog hides it and the tool path refuses its tools. Golden snapshots unchanged. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| docs | ||
| scripts | ||
| src | ||
| .gitignore | ||
| package.json | ||
| tsconfig.build.json | ||
| tsconfig.json | ||
| vitest.config.ts | ||