@owlmeans/viable-common 0.0.30 → 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 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.30
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.27` and talks to a separately deployed platform, so an executor kind it
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.34
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
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": 2,
3
3
  "package": "@owlmeans/viable-common",
4
- "version": "0.0.30",
5
- "generatedAt": "2026-09-22T20:45:24.063Z",
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.30"` in `dependencies`
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.30"` in `dependencies`
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.27` (the moving prerelease tag) against a separately deployed
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
@@ -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.34',
50
- '@owlmeans/agent': '^0.1.18-rc.35',
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',
@@ -163,7 +163,7 @@ party, nothing walks an unbounded set, nothing is scheduled. Most products are t
163
163
  `.trim(),
164
164
  patch: {
165
165
  packages: {
166
- capabilities: { postgres: true, kv: false, queue: false, worker: false, agents: false, validation: true },
166
+ capabilities: { postgres: true, kv: false, queue: false, worker: false, agents: false, validation: true, marketingConsent: true },
167
167
  personaSkills: LANDING_GATE_PERSONA_SKILLS,
168
168
  },
169
169
  experience: ENCOURAGE_GATE,
@@ -184,7 +184,7 @@ to call a model at all.
184
184
  `.trim(),
185
185
  patch: {
186
186
  packages: {
187
- capabilities: { postgres: true, kv: true, queue: true, worker: true, agents: false, validation: true },
187
+ capabilities: { postgres: true, kv: true, queue: true, worker: true, agents: false, validation: true, marketingConsent: true },
188
188
  personaSkills: PRODUCER_PERSONA_SKILLS,
189
189
  },
190
190
  // Neutral: the named off-request part is usually operator-side work, and whether a guest
@@ -206,7 +206,7 @@ application, and never merely a scalable one.
206
206
  `.trim(),
207
207
  patch: {
208
208
  packages: {
209
- capabilities: { postgres: true, kv: true, queue: true, worker: true, agents: true, validation: true },
209
+ capabilities: { postgres: true, kv: true, queue: true, worker: true, agents: true, validation: true, marketingConsent: true },
210
210
  deps: AI_DEPS,
211
211
  libraries: AI_LIBRARIES,
212
212
  skills: AI_SKILLS,
@@ -226,11 +226,11 @@ in advance.
226
226
  `.trim(),
227
227
  patch: {
228
228
  packages: {
229
- capabilities: { postgres: true, kv: true, queue: true, worker: true, agents: true, validation: true },
229
+ capabilities: { postgres: true, kv: true, queue: true, worker: true, agents: true, validation: true, marketingConsent: true },
230
230
  deps: {
231
231
  [SubProject.Backend]: {
232
232
  ...AI_DEPS[SubProject.Backend],
233
- '@owlmeans/agent-skills': '^0.1.18-rc.34',
233
+ '@owlmeans/agent-skills': '^0.1.18-rc.35',
234
234
  },
235
235
  },
236
236
  libraries: AI_LIBRARIES,
@@ -253,7 +253,7 @@ is not it.
253
253
  `.trim(),
254
254
  patch: {
255
255
  packages: {
256
- capabilities: { postgres: true, kv: true, queue: true, worker: true, agents: false, validation: true },
256
+ capabilities: { postgres: true, kv: true, queue: true, worker: true, agents: false, validation: true, marketingConsent: true },
257
257
  deps: {
258
258
  [SubProject.Web]: { three: '^0.186.0', '@types/three': '^0.185.4' },
259
259
  },
@@ -1 +1 @@
1
- {"version":3,"file":"case.js","sourceRoot":"","sources":["../../src/blueprint/case.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"case.js","sourceRoot":"","sources":["../../src/blueprint/case.ts"],"names":[],"mappings":"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"}
@@ -200,6 +200,16 @@ export interface BlueprintCapabilities {
200
200
  agents: boolean;
201
201
  /** Request-body validation from generated AJV schemas. */
202
202
  validation: boolean;
203
+ /**
204
+ * The marketing-consent ledger (`@owlmeans/marketing-consent` + `@owlmeans/web-marketing-consent`
205
+ * + `@owlmeans/server-marketing-consent` + a database extension) — the post-sign-in consent step,
206
+ * the settings control, and the server-side `isGranted` checks a story's sends and shares must
207
+ * honor. Required on every case today: a target that sends marketing communications, profiles
208
+ * behaviour, shares data with partners or loads a tracker needs this regardless of what kind of
209
+ * product it is: the case only decides HOW the target uses what the capability turns on, never
210
+ * whether the capability itself is reachable.
211
+ */
212
+ marketingConsent: boolean;
203
213
  }
204
214
  /** A partial override of a blueprint, deep-merged over the resolved value. */
205
215
  export type BlueprintPatch = {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/blueprint/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/blueprint/types.ts"],"names":[],"mappings":"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"}
@@ -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,EAupD1C,CAAA;AAED,yFAAyF;AACzF,eAAO,MAAM,WAAW,UAAW,WAAW,KAAG,eACI,CAAA"}
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 from \`@/resources/{entity}/{type}.js\` and call the
909
- resource's own methods. Never write raw SQL in a route handler, never import a database
910
- connection, and never construct a resource yourself.
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
  `),
@@ -1715,6 +1746,44 @@ player, rebuilding a leaderboard — is a job. No realtime anything.
1715
1746
  updates rather than snapped.
1716
1747
  - Anything the outcome depends on — damage, scoring, currency, who won — is decided on the
1717
1748
  server and nowhere else.
1749
+ `),
1750
+ skill(ViableSkill.MarketingConsent, 'Marketing consent — the eight standard keys', `
1751
+ This application ships \`@owlmeans/marketing-consent\` wired by \`@owlmeans/web-marketing-consent\`
1752
+ and \`@owlmeans/server-marketing-consent\`: a post-sign-in step, a "Privacy choices" settings
1753
+ screen, and a server-side ledger. Everything about consent already exists — never build a second
1754
+ one.
1755
+
1756
+ **The eight standard keys**, each independently opt-in and unchecked until the person says
1757
+ otherwise: \`marketing.email\`, \`marketing.sms\`, \`marketing.phone\`, \`marketing.push\` (which
1758
+ channel may send promotional messages), \`data.profiling\` (personalising from behaviour),
1759
+ \`data.partners\` (sharing with another company for ITS OWN marketing), \`trackers.analytics\` and
1760
+ \`trackers.advertising\` (already bridged to the cookie-consent categories — never build a second
1761
+ cookie banner or duplicate that bridge).
1762
+
1763
+ **Never build your own.** No new consent table, flag, checkbox, pre-ticked box, "I agree to
1764
+ marketing" toggle, or cookie dialog. No sign-in-time bundling of consent with the terms checkbox —
1765
+ they are two different questions with two different lawful bases, kept apart on purpose. Consent
1766
+ is never a condition of using the product: a person who declines everything still gets a working
1767
+ account.
1768
+
1769
+ **Every send and every share checks the RECIPIENT's grant, at the moment it acts — never the
1770
+ sender's, never a cached value from earlier in the request.** A campaign email checks
1771
+ \`marketing.email\`; an SMS reminder checks \`marketing.sms\`; handing a record to another company
1772
+ checks \`data.partners\`. An absent record reads as NOT granted — never assume consent because a
1773
+ person signed up, imported a contact, or has not yet been asked. A withdrawal takes effect on the
1774
+ very next send; nothing already queued is exempt.
1775
+
1776
+ **Service messages are never gated.** A password reset, a receipt, a delivery notice, an
1777
+ account-security alert, an invite the person themselves triggered — none of these are "marketing"
1778
+ and none of them ever consult this ledger. Gating a service message on marketing consent is itself
1779
+ a bug: it makes the product not work for someone who declined an unrelated choice.
1780
+
1781
+ **Every marketing message links to Privacy choices**, the standing control that changes a decision
1782
+ at any time — reference it as an alias, never write a fresh URL.
1783
+
1784
+ **A new channel or purpose the product genuinely needs** — a notification type this catalogue does
1785
+ not name — is one line in the target's marketing-consent config, above its own sentinel; it is
1786
+ never invented inline in a component or a handler.
1718
1787
  `),
1719
1788
  libraries(ViableSkill.LibrariesCommon, 'Libraries — shared code', commonLibraryList),
1720
1789
  libraries(ViableSkill.LibrariesUiState, 'Libraries — UI state', uiStateLibraryList),
@@ -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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"}
@@ -65,6 +65,9 @@ export declare enum ViableSkill {
65
65
  GameNetworking = "game-networking",
66
66
  LayoutDefinition = "layout-definition",
67
67
  ScreenDefinition = "screen-definition",
68
+ /** The marketing-consent ledger: the 8 standard keys, never build a custom consent UI, check
69
+ * the RECIPIENT's grant server-side before a send or a share. */
70
+ MarketingConsent = "marketing-consent",
68
71
  LibrariesCommon = "libraries-common",
69
72
  LibrariesUiState = "libraries-ui-state",
70
73
  LibrariesUi = "libraries-ui",
@@ -1 +1 @@
1
- {"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../../src/skills/consts.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,oBAAY,WAAW;IACrB,gDAAgD;IAChD,gBAAgB,uBAAuB;IACvC,0CAA0C;IAC1C,cAAc,qBAAqB;IACnC,qCAAqC;IACrC,eAAe,qBAAqB;IACpC,kFAAkF;IAClF,aAAa,oBAAoB;IACjC,wEAAwE;IACxE,mBAAmB,0BAA0B;IAE7C,OAAO,aAAa;IACpB,SAAS,eAAe;IAExB,eAAe,qBAAqB;IACpC,mBAAmB,yBAAyB;IAC5C,WAAW,iBAAiB;IAC5B,uFAAuF;IACvF,eAAe,qBAAqB;IACpC,QAAQ,cAAc;IACtB,aAAa,mBAAmB;IAChC,iGAAiG;IACjG,YAAY,kBAAkB;IAC9B,WAAW,iBAAiB;IAC5B,eAAe,qBAAqB;IACpC;;;OAGG;IACH,WAAW,iBAAiB;IAE5B,aAAa,mBAAmB;IAChC,eAAe,qBAAqB;IACpC,kBAAkB,wBAAwB;IAC1C,cAAc,oBAAoB;IAClC,eAAe,qBAAqB;IACpC,gBAAgB,sBAAsB;IACtC,eAAe,qBAAqB;IAEpC,aAAa,mBAAmB;IAChC,YAAY,kBAAkB;IAE9B,sFAAsF;IACtF,eAAe,qBAAqB;IACpC,gFAAgF;IAChF,UAAU,gBAAgB;IAC1B,4EAA4E;IAC5E,YAAY,kBAAkB;IAE9B,uFAAuF;IACvF,aAAa,mBAAmB;IAChC,wEAAwE;IACxE,SAAS,eAAe;IACxB,iFAAiF;IACjF,gBAAgB,uBAAuB;IAEvC,wDAAwD;IACxD,UAAU,gBAAgB;IAC1B,uEAAuE;IACvE,SAAS,eAAe;IACxB,sFAAsF;IACtF,MAAM,YAAY;IAClB,kFAAkF;IAClF,cAAc,oBAAoB;IAElC,gBAAgB,sBAAsB;IACtC,gBAAgB,sBAAsB;IAEtC,eAAe,qBAAqB;IACpC,gBAAgB,uBAAuB;IACvC,WAAW,iBAAiB;IAC5B,gBAAgB,sBAAsB;IACtC,WAAW,iBAAiB;IAC5B,aAAa,mBAAmB;CACjC;AAED;;;;GAIG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CA+CnD,CAAA;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,sBAAsB,EAAE,WAAW,EAe/C,CAAA;AAID;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,WACrB,WAAW,EAAE,YAAY,WAAW,EAAE,KAC7C,WAAW,EAKb,CAAA"}
1
+ {"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../../src/skills/consts.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,oBAAY,WAAW;IACrB,gDAAgD;IAChD,gBAAgB,uBAAuB;IACvC,0CAA0C;IAC1C,cAAc,qBAAqB;IACnC,qCAAqC;IACrC,eAAe,qBAAqB;IACpC,kFAAkF;IAClF,aAAa,oBAAoB;IACjC,wEAAwE;IACxE,mBAAmB,0BAA0B;IAE7C,OAAO,aAAa;IACpB,SAAS,eAAe;IAExB,eAAe,qBAAqB;IACpC,mBAAmB,yBAAyB;IAC5C,WAAW,iBAAiB;IAC5B,uFAAuF;IACvF,eAAe,qBAAqB;IACpC,QAAQ,cAAc;IACtB,aAAa,mBAAmB;IAChC,iGAAiG;IACjG,YAAY,kBAAkB;IAC9B,WAAW,iBAAiB;IAC5B,eAAe,qBAAqB;IACpC;;;OAGG;IACH,WAAW,iBAAiB;IAE5B,aAAa,mBAAmB;IAChC,eAAe,qBAAqB;IACpC,kBAAkB,wBAAwB;IAC1C,cAAc,oBAAoB;IAClC,eAAe,qBAAqB;IACpC,gBAAgB,sBAAsB;IACtC,eAAe,qBAAqB;IAEpC,aAAa,mBAAmB;IAChC,YAAY,kBAAkB;IAE9B,sFAAsF;IACtF,eAAe,qBAAqB;IACpC,gFAAgF;IAChF,UAAU,gBAAgB;IAC1B,4EAA4E;IAC5E,YAAY,kBAAkB;IAE9B,uFAAuF;IACvF,aAAa,mBAAmB;IAChC,wEAAwE;IACxE,SAAS,eAAe;IACxB,iFAAiF;IACjF,gBAAgB,uBAAuB;IAEvC,wDAAwD;IACxD,UAAU,gBAAgB;IAC1B,uEAAuE;IACvE,SAAS,eAAe;IACxB,sFAAsF;IACtF,MAAM,YAAY;IAClB,kFAAkF;IAClF,cAAc,oBAAoB;IAElC,gBAAgB,sBAAsB;IACtC,gBAAgB,sBAAsB;IAEtC;qEACiE;IACjE,gBAAgB,sBAAsB;IAEtC,eAAe,qBAAqB;IACpC,gBAAgB,uBAAuB;IACvC,WAAW,iBAAiB;IAC5B,gBAAgB,sBAAsB;IACtC,WAAW,iBAAiB;IAC5B,aAAa,mBAAmB;CACjC;AAED;;;;GAIG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAmDnD,CAAA;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,sBAAsB,EAAE,WAAW,EAe/C,CAAA;AAID;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,WACrB,WAAW,EAAE,YAAY,WAAW,EAAE,KAC7C,WAAW,EAKb,CAAA"}
@@ -66,6 +66,9 @@ export var ViableSkill;
66
66
  ViableSkill["GameNetworking"] = "game-networking";
67
67
  ViableSkill["LayoutDefinition"] = "layout-definition";
68
68
  ViableSkill["ScreenDefinition"] = "screen-definition";
69
+ /** The marketing-consent ledger: the 8 standard keys, never build a custom consent UI, check
70
+ * the RECIPIENT's grant server-side before a send or a share. */
71
+ ViableSkill["MarketingConsent"] = "marketing-consent";
69
72
  ViableSkill["LibrariesCommon"] = "libraries-common";
70
73
  ViableSkill["LibrariesUiState"] = "libraries-ui-state";
71
74
  ViableSkill["LibrariesUi"] = "libraries-ui";
@@ -98,6 +101,10 @@ export const SKILL_ORDER = {
98
101
  // After the frontend rules it builds on (entrypoints, nav, shadcn, form feedback, the store), and
99
102
  // before the backend block — it is only ever carried by analysis and frontend personas.
100
103
  [ViableSkill.LandingGate]: 56,
104
+ // Analysis and frontend read it the same way LandingGate is read — after the frontend rules it
105
+ // references (nav, shadcn) — and a backend coder reads it as a server-side check, so it sits
106
+ // just ahead of the backend block for either audience.
107
+ [ViableSkill.MarketingConsent]: 57,
101
108
  [ViableSkill.ResourceLayer]: 60,
102
109
  [ViableSkill.ResourceResults]: 62,
103
110
  [ViableSkill.ResourceMigrations]: 64,
@@ -1 +1 @@
1
- {"version":3,"file":"consts.js","sourceRoot":"","sources":["../../src/skills/consts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"consts.js","sourceRoot":"","sources":["../../src/skills/consts.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;AA6BD;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,aAAa,EAAE,YAAY,CA6N/D,CAAA"}
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"}
@@ -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
- /** The frontend stack, in the order a component is built up. */
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.StoreAccess, ViableSkill.ViewModelNaming, ViableSkill.LibrariesUi,
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":"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"}
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.30",
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.37",
63
- "@owlmeans/entrypoint": "^0.1.18-rc.33",
64
- "@owlmeans/error": "^0.1.18-rc.32",
65
- "@owlmeans/llm-common": "^0.1.18-rc.33",
66
- "@owlmeans/planning": "^0.1.18-rc.6",
67
- "@owlmeans/resource": "^0.1.18-rc.32",
68
- "@owlmeans/route": "^0.1.18-rc.31"
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"
@@ -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.34',
66
- '@owlmeans/agent': '^0.1.18-rc.35',
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',
@@ -191,7 +191,7 @@ party, nothing walks an unbounded set, nothing is scheduled. Most products are t
191
191
  `.trim(),
192
192
  patch: {
193
193
  packages: {
194
- capabilities: { postgres: true, kv: false, queue: false, worker: false, agents: false, validation: true },
194
+ capabilities: { postgres: true, kv: false, queue: false, worker: false, agents: false, validation: true, marketingConsent: true },
195
195
  personaSkills: LANDING_GATE_PERSONA_SKILLS,
196
196
  },
197
197
  experience: ENCOURAGE_GATE,
@@ -213,7 +213,7 @@ to call a model at all.
213
213
  `.trim(),
214
214
  patch: {
215
215
  packages: {
216
- capabilities: { postgres: true, kv: true, queue: true, worker: true, agents: false, validation: true },
216
+ capabilities: { postgres: true, kv: true, queue: true, worker: true, agents: false, validation: true, marketingConsent: true },
217
217
  personaSkills: PRODUCER_PERSONA_SKILLS,
218
218
  },
219
219
  // Neutral: the named off-request part is usually operator-side work, and whether a guest
@@ -236,7 +236,7 @@ application, and never merely a scalable one.
236
236
  `.trim(),
237
237
  patch: {
238
238
  packages: {
239
- capabilities: { postgres: true, kv: true, queue: true, worker: true, agents: true, validation: true },
239
+ capabilities: { postgres: true, kv: true, queue: true, worker: true, agents: true, validation: true, marketingConsent: true },
240
240
  deps: AI_DEPS,
241
241
  libraries: AI_LIBRARIES,
242
242
  skills: AI_SKILLS,
@@ -257,11 +257,11 @@ in advance.
257
257
  `.trim(),
258
258
  patch: {
259
259
  packages: {
260
- capabilities: { postgres: true, kv: true, queue: true, worker: true, agents: true, validation: true },
260
+ capabilities: { postgres: true, kv: true, queue: true, worker: true, agents: true, validation: true, marketingConsent: true },
261
261
  deps: {
262
262
  [SubProject.Backend]: {
263
263
  ...AI_DEPS[SubProject.Backend],
264
- '@owlmeans/agent-skills': '^0.1.18-rc.34',
264
+ '@owlmeans/agent-skills': '^0.1.18-rc.35',
265
265
  },
266
266
  },
267
267
  libraries: AI_LIBRARIES,
@@ -285,7 +285,7 @@ is not it.
285
285
  `.trim(),
286
286
  patch: {
287
287
  packages: {
288
- capabilities: { postgres: true, kv: true, queue: true, worker: true, agents: false, validation: true },
288
+ capabilities: { postgres: true, kv: true, queue: true, worker: true, agents: false, validation: true, marketingConsent: true },
289
289
  deps: {
290
290
  [SubProject.Web]: { three: '^0.186.0', '@types/three': '^0.185.4' },
291
291
  },
@@ -231,6 +231,16 @@ export interface BlueprintCapabilities {
231
231
  agents: boolean
232
232
  /** Request-body validation from generated AJV schemas. */
233
233
  validation: boolean
234
+ /**
235
+ * The marketing-consent ledger (`@owlmeans/marketing-consent` + `@owlmeans/web-marketing-consent`
236
+ * + `@owlmeans/server-marketing-consent` + a database extension) — the post-sign-in consent step,
237
+ * the settings control, and the server-side `isGranted` checks a story's sends and shares must
238
+ * honor. Required on every case today: a target that sends marketing communications, profiles
239
+ * behaviour, shares data with partners or loads a tracker needs this regardless of what kind of
240
+ * product it is: the case only decides HOW the target uses what the capability turns on, never
241
+ * whether the capability itself is reachable.
242
+ */
243
+ marketingConsent: boolean
234
244
  }
235
245
 
236
246
  /** A partial override of a blueprint, deep-merged over the resolved value. */
@@ -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 from \`@/resources/{entity}/{type}.js\` and call the
942
- resource's own methods. Never write raw SQL in a route handler, never import a database
943
- connection, and never construct a resource yourself.
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
  `),
@@ -1767,6 +1798,45 @@ player, rebuilding a leaderboard — is a job. No realtime anything.
1767
1798
  server and nowhere else.
1768
1799
  `),
1769
1800
 
1801
+ skill(ViableSkill.MarketingConsent, 'Marketing consent — the eight standard keys', `
1802
+ This application ships \`@owlmeans/marketing-consent\` wired by \`@owlmeans/web-marketing-consent\`
1803
+ and \`@owlmeans/server-marketing-consent\`: a post-sign-in step, a "Privacy choices" settings
1804
+ screen, and a server-side ledger. Everything about consent already exists — never build a second
1805
+ one.
1806
+
1807
+ **The eight standard keys**, each independently opt-in and unchecked until the person says
1808
+ otherwise: \`marketing.email\`, \`marketing.sms\`, \`marketing.phone\`, \`marketing.push\` (which
1809
+ channel may send promotional messages), \`data.profiling\` (personalising from behaviour),
1810
+ \`data.partners\` (sharing with another company for ITS OWN marketing), \`trackers.analytics\` and
1811
+ \`trackers.advertising\` (already bridged to the cookie-consent categories — never build a second
1812
+ cookie banner or duplicate that bridge).
1813
+
1814
+ **Never build your own.** No new consent table, flag, checkbox, pre-ticked box, "I agree to
1815
+ marketing" toggle, or cookie dialog. No sign-in-time bundling of consent with the terms checkbox —
1816
+ they are two different questions with two different lawful bases, kept apart on purpose. Consent
1817
+ is never a condition of using the product: a person who declines everything still gets a working
1818
+ account.
1819
+
1820
+ **Every send and every share checks the RECIPIENT's grant, at the moment it acts — never the
1821
+ sender's, never a cached value from earlier in the request.** A campaign email checks
1822
+ \`marketing.email\`; an SMS reminder checks \`marketing.sms\`; handing a record to another company
1823
+ checks \`data.partners\`. An absent record reads as NOT granted — never assume consent because a
1824
+ person signed up, imported a contact, or has not yet been asked. A withdrawal takes effect on the
1825
+ very next send; nothing already queued is exempt.
1826
+
1827
+ **Service messages are never gated.** A password reset, a receipt, a delivery notice, an
1828
+ account-security alert, an invite the person themselves triggered — none of these are "marketing"
1829
+ and none of them ever consult this ledger. Gating a service message on marketing consent is itself
1830
+ a bug: it makes the product not work for someone who declined an unrelated choice.
1831
+
1832
+ **Every marketing message links to Privacy choices**, the standing control that changes a decision
1833
+ at any time — reference it as an alias, never write a fresh URL.
1834
+
1835
+ **A new channel or purpose the product genuinely needs** — a notification type this catalogue does
1836
+ not name — is one line in the target's marketing-consent config, above its own sentinel; it is
1837
+ never invented inline in a component or a handler.
1838
+ `),
1839
+
1770
1840
  libraries(ViableSkill.LibrariesCommon, 'Libraries — shared code', commonLibraryList),
1771
1841
  libraries(ViableSkill.LibrariesUiState, 'Libraries — UI state', uiStateLibraryList),
1772
1842
  libraries(ViableSkill.LibrariesUi, 'Libraries — UI', fullUiLibraryList),
@@ -74,6 +74,10 @@ export enum ViableSkill {
74
74
  LayoutDefinition = 'layout-definition',
75
75
  ScreenDefinition = 'screen-definition',
76
76
 
77
+ /** The marketing-consent ledger: the 8 standard keys, never build a custom consent UI, check
78
+ * the RECIPIENT's grant server-side before a send or a share. */
79
+ MarketingConsent = 'marketing-consent',
80
+
77
81
  LibrariesCommon = 'libraries-common',
78
82
  LibrariesUiState = 'libraries-ui-state',
79
83
  LibrariesUi = 'libraries-ui',
@@ -107,6 +111,10 @@ export const SKILL_ORDER: Record<ViableSkill, number> = {
107
111
  // After the frontend rules it builds on (entrypoints, nav, shadcn, form feedback, the store), and
108
112
  // before the backend block — it is only ever carried by analysis and frontend personas.
109
113
  [ViableSkill.LandingGate]: 56,
114
+ // Analysis and frontend read it the same way LandingGate is read — after the frontend rules it
115
+ // references (nav, shadcn) — and a backend coder reads it as a server-side check, so it sits
116
+ // just ahead of the backend block for either audience.
117
+ [ViableSkill.MarketingConsent]: 57,
110
118
  [ViableSkill.ResourceLayer]: 60,
111
119
  [ViableSkill.ResourceResults]: 62,
112
120
  [ViableSkill.ResourceMigrations]: 64,
@@ -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
- /** The frontend stack, in the order a component is built up. */
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.StoreAccess, ViableSkill.ViewModelNaming, ViableSkill.LibrariesUi,
70
+ ViableSkill.OwlmeansState, ViableSkill.StoreAccess, ViableSkill.ViewModelNaming,
71
+ ViableSkill.LibrariesUi,
64
72
  ]
65
73
 
66
74
  /** The backend stack. */
@@ -17,7 +17,7 @@ const base = (extra: Partial<Blueprint> = {}): Blueprint => ({
17
17
  createApp: { id: 'create-app', package: '@owlmeans/create-app', bare: true, template: 'bare' },
18
18
  packages: {
19
19
  id: 'packages',
20
- capabilities: { postgres: true, kv: false, queue: false, worker: false, agents: false, validation: true },
20
+ capabilities: { postgres: true, kv: false, queue: false, worker: false, agents: false, validation: true, marketingConsent: true },
21
21
  libraries: {},
22
22
  skills: [ViableSkill.ShadcnUi],
23
23
  personaSkills: { [ViablePersona.BusinessAnalyst]: [ViableSkill.MainFlowFocus] },
@@ -1,25 +0,0 @@
1
- import type { ConnectJobKind } from './consts.js';
2
- /**
3
- * The separator a job id is joined with.
4
- *
5
- * `~`, because every other separator in play is already spoken for: a route alias is
6
- * colon-delimited and so is every run id (`init:<projectId>`, `story:<storyId>`), so a job id
7
- * built with one could not be split back apart.
8
- */
9
- export declare const JOB_SEPARATOR = "~";
10
- /**
11
- * A job's id: its kind, the project card it belongs to, and the subject it is about.
12
- *
13
- * The suffix is a CARD id for a story job and a run id for a pipeline job — never a story code.
14
- * Declared here rather than by whoever answers the job, because the SDK composes the id it then
15
- * polls for: two spellings of one id is a job nobody can find.
16
- */
17
- export declare const jobIdOf: (kind: ConnectJobKind, projectId: string, suffix?: string) => string;
18
- export interface ParsedJobId {
19
- kind: ConnectJobKind;
20
- projectId: string;
21
- suffix?: string;
22
- }
23
- /** Split a job id back into what {@link jobIdOf} composed it from. */
24
- export declare const parseJobId: (jobId: string) => ParsedJobId;
25
- //# sourceMappingURL=jobs.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"jobs.d.ts","sourceRoot":"","sources":["../../src/connect/jobs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAEjD;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,MAAM,CAAA;AAEhC;;;;;;GAMG;AACH,eAAO,MAAM,OAAO,SAAU,cAAc,aAAa,MAAM,WAAW,MAAM,KAAG,MACP,CAAA;AAE5E,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,cAAc,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,sEAAsE;AACtE,eAAO,MAAM,UAAU,UAAW,MAAM,KAAG,WAW1C,CAAA"}
@@ -1,29 +0,0 @@
1
- /**
2
- * The separator a job id is joined with.
3
- *
4
- * `~`, because every other separator in play is already spoken for: a route alias is
5
- * colon-delimited and so is every run id (`init:<projectId>`, `story:<storyId>`), so a job id
6
- * built with one could not be split back apart.
7
- */
8
- export const JOB_SEPARATOR = '~';
9
- /**
10
- * A job's id: its kind, the project card it belongs to, and the subject it is about.
11
- *
12
- * The suffix is a CARD id for a story job and a run id for a pipeline job — never a story code.
13
- * Declared here rather than by whoever answers the job, because the SDK composes the id it then
14
- * polls for: two spellings of one id is a job nobody can find.
15
- */
16
- export const jobIdOf = (kind, projectId, suffix) => [kind, projectId, ...(suffix != null ? [suffix] : [])].join(JOB_SEPARATOR);
17
- /** Split a job id back into what {@link jobIdOf} composed it from. */
18
- export const parseJobId = (jobId) => {
19
- const [kind, projectId, ...rest] = jobId.split(JOB_SEPARATOR);
20
- // A suffix may carry the separator back if one ever ends up in a card or run id, so the tail is
21
- // rejoined rather than taken as its first segment.
22
- const suffix = rest.length > 0 ? rest.join(JOB_SEPARATOR) : undefined;
23
- return {
24
- kind: kind,
25
- projectId: projectId ?? '',
26
- ...(suffix != null ? { suffix } : {}),
27
- };
28
- };
29
- //# sourceMappingURL=jobs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"jobs.js","sourceRoot":"","sources":["../../src/connect/jobs.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,CAAA;AAEhC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,IAAoB,EAAE,SAAiB,EAAE,MAAe,EAAU,EAAE,CAC1F,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;AAQ5E,sEAAsE;AACtE,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAa,EAAe,EAAE;IACvD,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;IAC7D,gGAAgG;IAChG,mDAAmD;IACnD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAErE,OAAO;QACL,IAAI,EAAE,IAAsB;QAC5B,SAAS,EAAE,SAAS,IAAI,EAAE;QAC1B,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtC,CAAA;AACH,CAAC,CAAA"}