@owlmeans/viable-common 0.0.29 → 0.0.31
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 +3 -3
- package/agent-meta/manifest.json +2 -2
- package/agent-meta/skills/agent-presentation/SKILL.md +1 -1
- package/agent-meta/skills/viable-common/SKILL.md +2 -2
- package/build/blueprint/case.js +3 -3
- package/build/skills/catalogue.d.ts.map +1 -1
- package/build/skills/catalogue.js +34 -3
- package/build/skills/catalogue.js.map +1 -1
- package/build/skills/roles.d.ts.map +1 -1
- package/build/skills/roles.js +10 -2
- package/build/skills/roles.js.map +1 -1
- package/package.json +8 -8
- package/src/blueprint/case.ts +3 -3
- package/src/skills/catalogue.ts +34 -3
- package/src/skills/roles.ts +10 -2
package/README.md
CHANGED
|
@@ -21,7 +21,7 @@ filesystem, no inference SDK. It is safe to import from a browser bundle.
|
|
|
21
21
|
## Installation
|
|
22
22
|
|
|
23
23
|
```bash
|
|
24
|
-
bun add @owlmeans/viable-common@^0.0.
|
|
24
|
+
bun add @owlmeans/viable-common@^0.0.31
|
|
25
25
|
```
|
|
26
26
|
|
|
27
27
|
## Rules worth knowing before you change something
|
|
@@ -39,7 +39,7 @@ means "inherit" has no other spelling. `tests/convert.spec.ts` walks every expor
|
|
|
39
39
|
both faults, and for draft-04 tuple `items`.
|
|
40
40
|
|
|
41
41
|
**A field that crosses a version skew carries no `enum`.** A connector is installed with
|
|
42
|
-
`npx -y @owlmeans/viable-mcp@^0.1.18-rc.
|
|
42
|
+
`npx -y @owlmeans/viable-mcp@^0.1.18-rc.28` and talks to a separately deployed platform, so an executor kind it
|
|
43
43
|
sends must remain an unused capability on an older platform rather than a refused session.
|
|
44
44
|
|
|
45
45
|
**A ceiling exists once.** The inquiry answer cap here equals `DEFAULT_INQUIRY_ANSWER_CHARS` in
|
|
@@ -59,7 +59,7 @@ This package ships embedded agent skills under `agent-meta/`. After installing y
|
|
|
59
59
|
your project's skill store (`.agents/skills/`):
|
|
60
60
|
|
|
61
61
|
```sh
|
|
62
|
-
npx @owlmeans/agent-skills@^0.1.18-rc.
|
|
62
|
+
npx @owlmeans/agent-skills@^0.1.18-rc.35
|
|
63
63
|
```
|
|
64
64
|
|
|
65
65
|
The embedded files are version-matched to this package release. Do not edit them
|
package/agent-meta/manifest.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 2,
|
|
3
3
|
"package": "@owlmeans/viable-common",
|
|
4
|
-
"version": "0.0.
|
|
5
|
-
"generatedAt": "2026-09-
|
|
4
|
+
"version": "0.0.31",
|
|
5
|
+
"generatedAt": "2026-09-22T21:57:18.828Z",
|
|
6
6
|
"canonicalRepo": "https://github.com/owlmeans/common",
|
|
7
7
|
"entries": [
|
|
8
8
|
{
|
|
@@ -6,7 +6,7 @@ description: Shared, runtime-free taxonomy for presenting OwlMeans Viable agent
|
|
|
6
6
|
|
|
7
7
|
# Agent output presentation
|
|
8
8
|
|
|
9
|
-
**Install:** `"@owlmeans/viable-common": "^0.0.
|
|
9
|
+
**Install:** `"@owlmeans/viable-common": "^0.0.31"` in `dependencies`
|
|
10
10
|
|
|
11
11
|
`@owlmeans/viable-common`'s `agent/presentation.ts` owns the browser-safe vocabulary for agent
|
|
12
12
|
output. Keep the server and every client on `classifyAgentMessage()`; consumers may refine a
|
|
@@ -8,7 +8,7 @@ user-invocable: false
|
|
|
8
8
|
# @owlmeans/viable-common
|
|
9
9
|
|
|
10
10
|
**Layer:** Cross-cutting domain (contracts only)
|
|
11
|
-
**Install:** `"@owlmeans/viable-common": "^0.0.
|
|
11
|
+
**Install:** `"@owlmeans/viable-common": "^0.0.31"` in `dependencies`
|
|
12
12
|
**Subpaths:** `.` · `./slot` · `./connect` · `./convert` · `./integrity`
|
|
13
13
|
**Runtime-free:** no `@langchain/*`, no filesystem, no Ajv at run time (a devDependency, for the
|
|
14
14
|
tests that compile the schemas). It depends on `@owlmeans/planning`, `@owlmeans/resource`,
|
|
@@ -253,7 +253,7 @@ code, never as `minItems`/`maxItems`. The descriptions are what the planning mod
|
|
|
253
253
|
state each field's purpose and bounds; `gate.target` is filled by code and described as such.
|
|
254
254
|
|
|
255
255
|
**A field that crosses a version skew carries no `enum`.** Users run
|
|
256
|
-
`npx -y @owlmeans/viable-mcp@^0.1.18-rc.
|
|
256
|
+
`npx -y @owlmeans/viable-mcp@^0.1.18-rc.28` (the moving prerelease tag) against a separately deployed
|
|
257
257
|
platform, so `ConnectCapabilitiesSchema.executors.items`
|
|
258
258
|
is a bare string: a newer executor kind must stay an unused capability on an older platform, never
|
|
259
259
|
a refused session. Apply the same reasoning to anything else a newer connector may send an older
|
package/build/blueprint/case.js
CHANGED
|
@@ -46,8 +46,8 @@ export var GameKind;
|
|
|
46
46
|
/** What every AI case installs. The langchain peers are declared here, at ONE range. */
|
|
47
47
|
const AI_DEPS = {
|
|
48
48
|
[SubProject.Backend]: {
|
|
49
|
-
'@owlmeans/llm': '^0.1.18-rc.
|
|
50
|
-
'@owlmeans/agent': '^0.1.18-rc.
|
|
49
|
+
'@owlmeans/llm': '^0.1.18-rc.35',
|
|
50
|
+
'@owlmeans/agent': '^0.1.18-rc.36',
|
|
51
51
|
'@langchain/core': '^1.2.9',
|
|
52
52
|
'@langchain/anthropic': '^1.5.8',
|
|
53
53
|
'@langchain/openai': '^1.5.10',
|
|
@@ -230,7 +230,7 @@ in advance.
|
|
|
230
230
|
deps: {
|
|
231
231
|
[SubProject.Backend]: {
|
|
232
232
|
...AI_DEPS[SubProject.Backend],
|
|
233
|
-
'@owlmeans/agent-skills': '^0.1.18-rc.
|
|
233
|
+
'@owlmeans/agent-skills': '^0.1.18-rc.35',
|
|
234
234
|
},
|
|
235
235
|
},
|
|
236
236
|
libraries: AI_LIBRARIES,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalogue.d.ts","sourceRoot":"","sources":["../../src/skills/catalogue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,EAAe,WAAW,EAAE,MAAM,aAAa,CAAA;AAgBtD,2FAA2F;AAC3F,eAAO,MAAM,eAAe,SAAU,MAAM,EAAE,KAAG,MACuC,CAAA;AAKxF;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,UAAU,CAAA;AACxC,eAAO,MAAM,kBAAkB,UAE9B,CAAA;AACD,eAAO,MAAM,sBAAsB,UAKlC,CAAA;AACD;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,UAE9B,CAAA;AACD,eAAO,MAAM,iBAAiB,UAAmE,CAAA;AAEjG;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,UAEzB,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,UAAgD,CAAA;AAE5E;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,QAUrB,CAAA;AAER,eAAO,MAAM,aAAa,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"catalogue.d.ts","sourceRoot":"","sources":["../../src/skills/catalogue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,EAAe,WAAW,EAAE,MAAM,aAAa,CAAA;AAgBtD,2FAA2F;AAC3F,eAAO,MAAM,eAAe,SAAU,MAAM,EAAE,KAAG,MACuC,CAAA;AAKxF;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,UAAU,CAAA;AACxC,eAAO,MAAM,kBAAkB,UAE9B,CAAA;AACD,eAAO,MAAM,sBAAsB,UAKlC,CAAA;AACD;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,UAE9B,CAAA;AACD,eAAO,MAAM,iBAAiB,UAAmE,CAAA;AAEjG;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,UAEzB,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,UAAgD,CAAA;AAE5E;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,QAUrB,CAAA;AAER,eAAO,MAAM,aAAa,EAAE,eAAe,EA6tD1C,CAAA;AAED,yFAAyF;AACzF,eAAO,MAAM,WAAW,UAAW,WAAW,KAAG,eACI,CAAA"}
|
|
@@ -224,6 +224,14 @@ in its own language, with no TypeScript syntax and no import statements it does
|
|
|
224
224
|
skill(ViableSkill.TsImports, 'Imports and path aliases', `
|
|
225
225
|
- Import shared code as \`project-common/<path>\`, never as \`sources/common/src/<path>\`,
|
|
226
226
|
and never with a \`.js\` extension.
|
|
227
|
+
- From \`api\` and \`worker\`, reach the shared BACKEND library the same way — as the package, by
|
|
228
|
+
its path under \`src\`, with NO extension:
|
|
229
|
+
\`import { taskResource } from 'project-backend/resources/task/task'\`.
|
|
230
|
+
Both libraries publish \`"./*": "./build/*.js"\`, so \`project-backend/resources/task/task.js\`
|
|
231
|
+
looks for \`task.js.js\` and is \`TS2307: Cannot find module\`; \`project-backend/build/…\` doubles
|
|
232
|
+
the \`build/\`; and a relative \`../../resources/task/task.js\` stays inside YOUR package, where
|
|
233
|
+
no \`resources/\` exists. The \`.js\` suffix belongs ONLY to relative imports inside
|
|
234
|
+
\`sources/backend/\` (below) — never to a package specifier.
|
|
227
235
|
- Inside a BUNDLED package — \`api\`, \`web\`, \`worker\` — \`@/\` is an alias for that package's own
|
|
228
236
|
\`src\`; use it instead of chains of \`../\`.
|
|
229
237
|
- **The shared backend library has NO \`@/\` alias.** It is built by \`tsc -b\`, not bundled, and
|
|
@@ -731,6 +739,11 @@ which records match, so a screen never recomputes ids and never re-subscribes.
|
|
|
731
739
|
const open = useTaskList({ status: 'open' }) // StateModel<Task>[]
|
|
732
740
|
open.map(model => model.record.title)
|
|
733
741
|
|
|
742
|
+
The hook returns the ARRAY itself — there is no \`.list\`, \`.items\`, \`.records\` or \`.data\` on
|
|
743
|
+
it, and each element is a MODEL, not a \`Task\`. Where plain records are wanted (a prop typed
|
|
744
|
+
\`Task[]\`, a filter, a count), map them out: \`open.map(model => model.record)\`.
|
|
745
|
+
An error saying \`StateModel<Task>[]\` is not assignable to \`Task[]\` means exactly that map is missing.
|
|
746
|
+
|
|
734
747
|
\`useStoreModel(id)\` is one record — the model always exists so a screen has something to bind
|
|
735
748
|
to, but nothing is invented to fill it. \`model.empty\` is what "not loaded yet" looks like:
|
|
736
749
|
|
|
@@ -902,12 +915,24 @@ file:
|
|
|
902
915
|
|
|
903
916
|
pg: { references: { resource: 'other-alias' } }
|
|
904
917
|
|
|
918
|
+
The referencing property has EXACTLY the type and format of the referenced resource's \`id\`. An
|
|
919
|
+
\`id\` declared \`{ type: 'string', format: 'uuid' }\` is a \`uuid\` column, and an \`id\` left
|
|
920
|
+
undeclared is \`text\` — so copy the referenced \`id\`'s declaration onto the reference:
|
|
921
|
+
|
|
922
|
+
bakeId: { type: 'string', format: 'uuid', pg: { references: { resource: 'bake' } } }
|
|
923
|
+
|
|
924
|
+
A plain \`{ type: 'string' }\` pointing at a \`uuid\` id compiles, and then the backend refuses to
|
|
925
|
+
start: \`42804 foreign key constraint … cannot be implemented — Key columns are of incompatible
|
|
926
|
+
types\`.
|
|
927
|
+
|
|
905
928
|
If the referenced resource does not exist, use a plain string property instead.
|
|
906
929
|
`),
|
|
907
930
|
skill(ViableSkill.ResourceResults, 'How resource methods are called, and what they return', `
|
|
908
|
-
Reach data through the accessor
|
|
909
|
-
|
|
910
|
-
|
|
931
|
+
Reach data through the resource's accessor and call the resource's own methods. Resources live
|
|
932
|
+
in the shared backend library: from \`api\` and \`worker\` import the accessor as
|
|
933
|
+
\`project-backend/resources/{entity}/{type}\` (no \`.js\`); inside \`sources/backend/\` import it
|
|
934
|
+
relatively, with \`.js\` (\`../../resources/{entity}/{type}.js\`). Never write raw SQL in a route
|
|
935
|
+
handler, never import a database connection, and never construct a resource yourself.
|
|
911
936
|
|
|
912
937
|
A WRITE takes ONE argument — the record — and the id travels INSIDE it. There is no
|
|
913
938
|
\`(id, changes)\` overload on any of them:
|
|
@@ -1220,6 +1245,12 @@ package, and every request to the route then fails with \`TypeError: handler is
|
|
|
1220
1245
|
- A handler is inert until the \`bind(protocols.api.<name>, api.body/params/request(protocols.api.<name>, handler))\`
|
|
1221
1246
|
line in \`sources/api/src/entrypoints.ts\` binds it to its protocol. Without that line the
|
|
1222
1247
|
endpoint answers 404 and nothing reports an error.
|
|
1248
|
+
- The wrap decides the handler's signature — match it exactly:
|
|
1249
|
+
\`api.body(p, (payload, ctx, request) => …)\` — the typed body first;
|
|
1250
|
+
\`api.params(p, (params, ctx, request) => …)\` — the typed route params first;
|
|
1251
|
+
\`api.request(p, (request, ctx) => …)\` — the whole request first.
|
|
1252
|
+
Only \`.request\` hands you the request as the FIRST argument. When you need to name its type,
|
|
1253
|
+
\`HandlerRequest\` comes from \`@owlmeans/entrypoint\` — \`@owlmeans/server-api\` does NOT export it.
|
|
1223
1254
|
- Handlers are ENTITY-SCOPED: \`sources/api/src/app/<entity>/<action>.ts\`, named exports only.
|
|
1224
1255
|
The directory is what keeps two entities' \`list\` apart — the file name carries no marker.
|
|
1225
1256
|
`),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalogue.js","sourceRoot":"","sources":["../../src/skills/catalogue.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"catalogue.js","sourceRoot":"","sources":["../../src/skills/catalogue.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"roles.d.ts","sourceRoot":"","sources":["../../src/skills/roles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAGxD;;;;;;;GAOG;AACH,oBAAY,aAAa;IACvB,eAAe,qBAAqB;IACpC,aAAa,mBAAmB;IAChC,wFAAwF;IACxF,gBAAgB,sBAAsB;IACtC,UAAU,gBAAgB;IAC1B,cAAc,oBAAoB;IAElC,eAAe,qBAAqB;IACpC,kBAAkB,wBAAwB;IAC1C,cAAc,oBAAoB;IAClC,mBAAmB,yBAAyB;IAC5C,oBAAoB,2BAA2B;IAC/C,eAAe,qBAAqB;IACpC,YAAY,kBAAkB;IAC9B,kBAAkB,wBAAwB;IAC1C,sBAAsB,6BAA6B;IAEnD,WAAW,iBAAiB;IAC5B,YAAY,mBAAmB;IAC/B,WAAW,kBAAkB;IAC7B,UAAU,iBAAiB;IAC3B,cAAc,oBAAoB;IAClC,QAAQ,cAAc;IACtB,iBAAiB,wBAAwB;IACzC,qGAAqG;IACrG,gBAAgB,sBAAsB;IACtC,kFAAkF;IAClF,WAAW,iBAAiB;IAC5B,eAAe,sBAAsB;IAErC,KAAK,UAAU;IACf,YAAY,iBAAiB;IAC7B,eAAe,qBAAqB;IACpC,iBAAiB,uBAAuB;IACxC,QAAQ,cAAc;CACvB;
|
|
1
|
+
{"version":3,"file":"roles.d.ts","sourceRoot":"","sources":["../../src/skills/roles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAGxD;;;;;;;GAOG;AACH,oBAAY,aAAa;IACvB,eAAe,qBAAqB;IACpC,aAAa,mBAAmB;IAChC,wFAAwF;IACxF,gBAAgB,sBAAsB;IACtC,UAAU,gBAAgB;IAC1B,cAAc,oBAAoB;IAElC,eAAe,qBAAqB;IACpC,kBAAkB,wBAAwB;IAC1C,cAAc,oBAAoB;IAClC,mBAAmB,yBAAyB;IAC5C,oBAAoB,2BAA2B;IAC/C,eAAe,qBAAqB;IACpC,YAAY,kBAAkB;IAC9B,kBAAkB,wBAAwB;IAC1C,sBAAsB,6BAA6B;IAEnD,WAAW,iBAAiB;IAC5B,YAAY,mBAAmB;IAC/B,WAAW,kBAAkB;IAC7B,UAAU,iBAAiB;IAC3B,cAAc,oBAAoB;IAClC,QAAQ,cAAc;IACtB,iBAAiB,wBAAwB;IACzC,qGAAqG;IACrG,gBAAgB,sBAAsB;IACtC,kFAAkF;IAClF,WAAW,iBAAiB;IAC5B,eAAe,sBAAsB;IAErC,KAAK,UAAU;IACf,YAAY,iBAAiB;IAC7B,eAAe,qBAAqB;IACpC,iBAAiB,uBAAuB;IACxC,QAAQ,cAAc;CACvB;AAqCD;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,aAAa,EAAE,YAAY,CA6N/D,CAAA"}
|
package/build/skills/roles.js
CHANGED
|
@@ -49,11 +49,19 @@ and typescript.
|
|
|
49
49
|
`.trim();
|
|
50
50
|
/** The rules every coder and the fixer need, whatever they are writing. */
|
|
51
51
|
const CODING_BASE = [ViableSkill.OutputSourceOnly, ViableSkill.TsStyle, ViableSkill.TsImports];
|
|
52
|
-
/**
|
|
52
|
+
/**
|
|
53
|
+
* The frontend stack, in the order a component is built up.
|
|
54
|
+
*
|
|
55
|
+
* `OwlmeansState` is here, not only on the state coder: the view models that READ the stores are
|
|
56
|
+
* written by the view and nav coders and repaired by the fixer, and none of them carried it —
|
|
57
|
+
* the traces show `useStoreList(...)` read as `.list` / `.items` / a plain `T[]` in 18 projects,
|
|
58
|
+
* the second most frequent repair the fixer made.
|
|
59
|
+
*/
|
|
53
60
|
const FRONTEND = [
|
|
54
61
|
ViableSkill.ReactComponents, ViableSkill.OwlMeansEntrypoints, ViableSkill.OwlMeansNav,
|
|
55
62
|
ViableSkill.OwlMeansServices, ViableSkill.ShadcnUi, ViableSkill.FormFeedback,
|
|
56
|
-
ViableSkill.
|
|
63
|
+
ViableSkill.OwlmeansState, ViableSkill.StoreAccess, ViableSkill.ViewModelNaming,
|
|
64
|
+
ViableSkill.LibrariesUi,
|
|
57
65
|
];
|
|
58
66
|
/** The backend stack. */
|
|
59
67
|
const BACKEND = [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"roles.js","sourceRoot":"","sources":["../../src/skills/roles.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAEzC;;;;;;;GAOG;AACH,MAAM,CAAN,IAAY,aAoCX;AApCD,WAAY,aAAa;IACvB,qDAAoC,CAAA;IACpC,iDAAgC,CAAA;IAChC,wFAAwF;IACxF,uDAAsC,CAAA;IACtC,2CAA0B,CAAA;IAC1B,mDAAkC,CAAA;IAElC,qDAAoC,CAAA;IACpC,2DAA0C,CAAA;IAC1C,mDAAkC,CAAA;IAClC,6DAA4C,CAAA;IAC5C,gEAA+C,CAAA;IAC/C,qDAAoC,CAAA;IACpC,+CAA8B,CAAA;IAC9B,2DAA0C,CAAA;IAC1C,oEAAmD,CAAA;IAEnD,6CAA4B,CAAA;IAC5B,gDAA+B,CAAA;IAC/B,8CAA6B,CAAA;IAC7B,4CAA2B,CAAA;IAC3B,mDAAkC,CAAA;IAClC,uCAAsB,CAAA;IACtB,0DAAyC,CAAA;IACzC,qGAAqG;IACrG,uDAAsC,CAAA;IACtC,kFAAkF;IAClF,6CAA4B,CAAA;IAC5B,sDAAqC,CAAA;IAErC,gCAAe,CAAA;IACf,8CAA6B,CAAA;IAC7B,qDAAoC,CAAA;IACpC,yDAAwC,CAAA;IACxC,uCAAsB,CAAA;AACxB,CAAC,EApCW,aAAa,KAAb,aAAa,QAoCxB;AAED,kFAAkF;AAClF,MAAM,gBAAgB,GAAG;;;CAGxB,CAAC,IAAI,EAAE,CAAA;AAER,2EAA2E;AAC3E,MAAM,WAAW,GAAG,CAAC,WAAW,CAAC,gBAAgB,EAAE,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,CAAA;AAE9F
|
|
1
|
+
{"version":3,"file":"roles.js","sourceRoot":"","sources":["../../src/skills/roles.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@owlmeans/viable-common",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.31",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Runtime-free contracts of the OwlMeans Viable platform — the analysis, design and metadata shapes of a generated project, its target-shape manifest, the slot command vocabulary, the connector protocol and the conversion vocabulary.",
|
|
6
6
|
"type": "module",
|
|
@@ -59,13 +59,13 @@
|
|
|
59
59
|
"typescript": "^7.0.2"
|
|
60
60
|
},
|
|
61
61
|
"dependencies": {
|
|
62
|
-
"@owlmeans/agent-common": "^0.1.18-rc.
|
|
63
|
-
"@owlmeans/entrypoint": "^0.1.18-rc.
|
|
64
|
-
"@owlmeans/error": "^0.1.18-rc.
|
|
65
|
-
"@owlmeans/llm-common": "^0.1.18-rc.
|
|
66
|
-
"@owlmeans/planning": "^0.1.18-rc.
|
|
67
|
-
"@owlmeans/resource": "^0.1.18-rc.
|
|
68
|
-
"@owlmeans/route": "^0.1.18-rc.
|
|
62
|
+
"@owlmeans/agent-common": "^0.1.18-rc.38",
|
|
63
|
+
"@owlmeans/entrypoint": "^0.1.18-rc.34",
|
|
64
|
+
"@owlmeans/error": "^0.1.18-rc.33",
|
|
65
|
+
"@owlmeans/llm-common": "^0.1.18-rc.34",
|
|
66
|
+
"@owlmeans/planning": "^0.1.18-rc.7",
|
|
67
|
+
"@owlmeans/resource": "^0.1.18-rc.33",
|
|
68
|
+
"@owlmeans/route": "^0.1.18-rc.32"
|
|
69
69
|
},
|
|
70
70
|
"publishConfig": {
|
|
71
71
|
"access": "public"
|
package/src/blueprint/case.ts
CHANGED
|
@@ -62,8 +62,8 @@ export interface BlueprintCaseDefinition {
|
|
|
62
62
|
/** What every AI case installs. The langchain peers are declared here, at ONE range. */
|
|
63
63
|
const AI_DEPS = {
|
|
64
64
|
[SubProject.Backend]: {
|
|
65
|
-
'@owlmeans/llm': '^0.1.18-rc.
|
|
66
|
-
'@owlmeans/agent': '^0.1.18-rc.
|
|
65
|
+
'@owlmeans/llm': '^0.1.18-rc.35',
|
|
66
|
+
'@owlmeans/agent': '^0.1.18-rc.36',
|
|
67
67
|
'@langchain/core': '^1.2.9',
|
|
68
68
|
'@langchain/anthropic': '^1.5.8',
|
|
69
69
|
'@langchain/openai': '^1.5.10',
|
|
@@ -261,7 +261,7 @@ in advance.
|
|
|
261
261
|
deps: {
|
|
262
262
|
[SubProject.Backend]: {
|
|
263
263
|
...AI_DEPS[SubProject.Backend],
|
|
264
|
-
'@owlmeans/agent-skills': '^0.1.18-rc.
|
|
264
|
+
'@owlmeans/agent-skills': '^0.1.18-rc.35',
|
|
265
265
|
},
|
|
266
266
|
},
|
|
267
267
|
libraries: AI_LIBRARIES,
|
package/src/skills/catalogue.ts
CHANGED
|
@@ -245,6 +245,14 @@ in its own language, with no TypeScript syntax and no import statements it does
|
|
|
245
245
|
skill(ViableSkill.TsImports, 'Imports and path aliases', `
|
|
246
246
|
- Import shared code as \`project-common/<path>\`, never as \`sources/common/src/<path>\`,
|
|
247
247
|
and never with a \`.js\` extension.
|
|
248
|
+
- From \`api\` and \`worker\`, reach the shared BACKEND library the same way — as the package, by
|
|
249
|
+
its path under \`src\`, with NO extension:
|
|
250
|
+
\`import { taskResource } from 'project-backend/resources/task/task'\`.
|
|
251
|
+
Both libraries publish \`"./*": "./build/*.js"\`, so \`project-backend/resources/task/task.js\`
|
|
252
|
+
looks for \`task.js.js\` and is \`TS2307: Cannot find module\`; \`project-backend/build/…\` doubles
|
|
253
|
+
the \`build/\`; and a relative \`../../resources/task/task.js\` stays inside YOUR package, where
|
|
254
|
+
no \`resources/\` exists. The \`.js\` suffix belongs ONLY to relative imports inside
|
|
255
|
+
\`sources/backend/\` (below) — never to a package specifier.
|
|
248
256
|
- Inside a BUNDLED package — \`api\`, \`web\`, \`worker\` — \`@/\` is an alias for that package's own
|
|
249
257
|
\`src\`; use it instead of chains of \`../\`.
|
|
250
258
|
- **The shared backend library has NO \`@/\` alias.** It is built by \`tsc -b\`, not bundled, and
|
|
@@ -759,6 +767,11 @@ which records match, so a screen never recomputes ids and never re-subscribes.
|
|
|
759
767
|
const open = useTaskList({ status: 'open' }) // StateModel<Task>[]
|
|
760
768
|
open.map(model => model.record.title)
|
|
761
769
|
|
|
770
|
+
The hook returns the ARRAY itself — there is no \`.list\`, \`.items\`, \`.records\` or \`.data\` on
|
|
771
|
+
it, and each element is a MODEL, not a \`Task\`. Where plain records are wanted (a prop typed
|
|
772
|
+
\`Task[]\`, a filter, a count), map them out: \`open.map(model => model.record)\`.
|
|
773
|
+
An error saying \`StateModel<Task>[]\` is not assignable to \`Task[]\` means exactly that map is missing.
|
|
774
|
+
|
|
762
775
|
\`useStoreModel(id)\` is one record — the model always exists so a screen has something to bind
|
|
763
776
|
to, but nothing is invented to fill it. \`model.empty\` is what "not loaded yet" looks like:
|
|
764
777
|
|
|
@@ -934,13 +947,25 @@ file:
|
|
|
934
947
|
|
|
935
948
|
pg: { references: { resource: 'other-alias' } }
|
|
936
949
|
|
|
950
|
+
The referencing property has EXACTLY the type and format of the referenced resource's \`id\`. An
|
|
951
|
+
\`id\` declared \`{ type: 'string', format: 'uuid' }\` is a \`uuid\` column, and an \`id\` left
|
|
952
|
+
undeclared is \`text\` — so copy the referenced \`id\`'s declaration onto the reference:
|
|
953
|
+
|
|
954
|
+
bakeId: { type: 'string', format: 'uuid', pg: { references: { resource: 'bake' } } }
|
|
955
|
+
|
|
956
|
+
A plain \`{ type: 'string' }\` pointing at a \`uuid\` id compiles, and then the backend refuses to
|
|
957
|
+
start: \`42804 foreign key constraint … cannot be implemented — Key columns are of incompatible
|
|
958
|
+
types\`.
|
|
959
|
+
|
|
937
960
|
If the referenced resource does not exist, use a plain string property instead.
|
|
938
961
|
`),
|
|
939
962
|
|
|
940
963
|
skill(ViableSkill.ResourceResults, 'How resource methods are called, and what they return', `
|
|
941
|
-
Reach data through the accessor
|
|
942
|
-
|
|
943
|
-
|
|
964
|
+
Reach data through the resource's accessor and call the resource's own methods. Resources live
|
|
965
|
+
in the shared backend library: from \`api\` and \`worker\` import the accessor as
|
|
966
|
+
\`project-backend/resources/{entity}/{type}\` (no \`.js\`); inside \`sources/backend/\` import it
|
|
967
|
+
relatively, with \`.js\` (\`../../resources/{entity}/{type}.js\`). Never write raw SQL in a route
|
|
968
|
+
handler, never import a database connection, and never construct a resource yourself.
|
|
944
969
|
|
|
945
970
|
A WRITE takes ONE argument — the record — and the id travels INSIDE it. There is no
|
|
946
971
|
\`(id, changes)\` overload on any of them:
|
|
@@ -1257,6 +1282,12 @@ package, and every request to the route then fails with \`TypeError: handler is
|
|
|
1257
1282
|
- A handler is inert until the \`bind(protocols.api.<name>, api.body/params/request(protocols.api.<name>, handler))\`
|
|
1258
1283
|
line in \`sources/api/src/entrypoints.ts\` binds it to its protocol. Without that line the
|
|
1259
1284
|
endpoint answers 404 and nothing reports an error.
|
|
1285
|
+
- The wrap decides the handler's signature — match it exactly:
|
|
1286
|
+
\`api.body(p, (payload, ctx, request) => …)\` — the typed body first;
|
|
1287
|
+
\`api.params(p, (params, ctx, request) => …)\` — the typed route params first;
|
|
1288
|
+
\`api.request(p, (request, ctx) => …)\` — the whole request first.
|
|
1289
|
+
Only \`.request\` hands you the request as the FIRST argument. When you need to name its type,
|
|
1290
|
+
\`HandlerRequest\` comes from \`@owlmeans/entrypoint\` — \`@owlmeans/server-api\` does NOT export it.
|
|
1260
1291
|
- Handlers are ENTITY-SCOPED: \`sources/api/src/app/<entity>/<action>.ts\`, named exports only.
|
|
1261
1292
|
The directory is what keeps two entities' \`list\` apart — the file name carries no marker.
|
|
1262
1293
|
`),
|
package/src/skills/roles.ts
CHANGED
|
@@ -56,11 +56,19 @@ and typescript.
|
|
|
56
56
|
/** The rules every coder and the fixer need, whatever they are writing. */
|
|
57
57
|
const CODING_BASE = [ViableSkill.OutputSourceOnly, ViableSkill.TsStyle, ViableSkill.TsImports]
|
|
58
58
|
|
|
59
|
-
/**
|
|
59
|
+
/**
|
|
60
|
+
* The frontend stack, in the order a component is built up.
|
|
61
|
+
*
|
|
62
|
+
* `OwlmeansState` is here, not only on the state coder: the view models that READ the stores are
|
|
63
|
+
* written by the view and nav coders and repaired by the fixer, and none of them carried it —
|
|
64
|
+
* the traces show `useStoreList(...)` read as `.list` / `.items` / a plain `T[]` in 18 projects,
|
|
65
|
+
* the second most frequent repair the fixer made.
|
|
66
|
+
*/
|
|
60
67
|
const FRONTEND = [
|
|
61
68
|
ViableSkill.ReactComponents, ViableSkill.OwlMeansEntrypoints, ViableSkill.OwlMeansNav,
|
|
62
69
|
ViableSkill.OwlMeansServices, ViableSkill.ShadcnUi, ViableSkill.FormFeedback,
|
|
63
|
-
ViableSkill.
|
|
70
|
+
ViableSkill.OwlmeansState, ViableSkill.StoreAccess, ViableSkill.ViewModelNaming,
|
|
71
|
+
ViableSkill.LibrariesUi,
|
|
64
72
|
]
|
|
65
73
|
|
|
66
74
|
/** The backend stack. */
|