@rubytech/create-maxy-code 0.1.365 → 0.1.367

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 (64) hide show
  1. package/dist/index.js +4 -0
  2. package/package.json +1 -1
  3. package/payload/platform/plugins/admin/mcp/dist/content-producer-authoring-skills.d.ts.map +1 -1
  4. package/payload/platform/plugins/admin/mcp/dist/content-producer-authoring-skills.js +5 -4
  5. package/payload/platform/plugins/admin/mcp/dist/content-producer-authoring-skills.js.map +1 -1
  6. package/payload/platform/plugins/admin/mcp/dist/tools/__tests__/account-lifecycle.test.js +1 -1
  7. package/payload/platform/plugins/admin/mcp/dist/tools/__tests__/account-lifecycle.test.js.map +1 -1
  8. package/payload/platform/plugins/admin/skills/platform-architecture/SKILL.md +37 -31
  9. package/payload/platform/plugins/docs/references/admin-ui.md +2 -0
  10. package/payload/platform/plugins/docs/references/graph.md +34 -30
  11. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-write-path-task802.test.js +62 -0
  12. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-write-path-task802.test.js.map +1 -1
  13. package/payload/platform/plugins/memory/mcp/dist/lib/schema-loader.d.ts +14 -0
  14. package/payload/platform/plugins/memory/mcp/dist/lib/schema-loader.d.ts.map +1 -1
  15. package/payload/platform/plugins/memory/mcp/dist/lib/schema-loader.js +18 -0
  16. package/payload/platform/plugins/memory/mcp/dist/lib/schema-loader.js.map +1 -1
  17. package/payload/platform/plugins/memory/mcp/dist/lib/schema-validator.d.ts.map +1 -1
  18. package/payload/platform/plugins/memory/mcp/dist/lib/schema-validator.js +16 -1
  19. package/payload/platform/plugins/memory/mcp/dist/lib/schema-validator.js.map +1 -1
  20. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-search-fields.test.js +40 -0
  21. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-search-fields.test.js.map +1 -1
  22. package/payload/platform/plugins/memory/references/schema-construction.md +7 -0
  23. package/payload/platform/plugins/url-get/mcp/vitest.config.ts +14 -0
  24. package/payload/platform/services/claude-session-manager/dist/session-cap-audit.d.ts +46 -1
  25. package/payload/platform/services/claude-session-manager/dist/session-cap-audit.d.ts.map +1 -1
  26. package/payload/platform/services/claude-session-manager/dist/session-cap-audit.js +131 -7
  27. package/payload/platform/services/claude-session-manager/dist/session-cap-audit.js.map +1 -1
  28. package/payload/platform/services/claude-session-manager/dist/stuck-turn.d.ts +5 -7
  29. package/payload/platform/services/claude-session-manager/dist/stuck-turn.d.ts.map +1 -1
  30. package/payload/platform/services/claude-session-manager/dist/stuck-turn.js +48 -32
  31. package/payload/platform/services/claude-session-manager/dist/stuck-turn.js.map +1 -1
  32. package/payload/platform/templates/agents/admin/IDENTITY.md +1 -1
  33. package/payload/premium-plugins/venture-studio/skills/investor-data-room/SKILL.md +73 -27
  34. package/payload/premium-plugins/writer-craft/PLUGIN.md +1 -1
  35. package/payload/premium-plugins/writer-craft/skills/voice-mirror/SKILL.md +2 -2
  36. package/payload/server/public/assets/{AdminLoginScreens-CJatEEai.js → AdminLoginScreens-B45MFjWG.js} +1 -1
  37. package/payload/server/public/assets/AdminShell-CyZPfbzd.js +1 -0
  38. package/payload/server/public/assets/{Checkbox-DqnBuFEU.js → Checkbox-BPYEJJPq.js} +1 -1
  39. package/payload/server/public/assets/OperatorConversations-Civ7TETM.css +1 -0
  40. package/payload/server/public/assets/{OperatorConversations-BwnO3IUP.js → OperatorConversations-D_o_59Oc.js} +1 -1
  41. package/payload/server/public/assets/{admin-Cocx_If1.js → admin-DcuJ3_xm.js} +1 -1
  42. package/payload/server/public/assets/{browser-BsFHTA93.js → browser-Be9LRtM2.js} +1 -1
  43. package/payload/server/public/assets/{calendar-hwGeTmWC.js → calendar-BeofvK7c.js} +1 -1
  44. package/payload/server/public/assets/chat-BWNFeIjw.js +1 -0
  45. package/payload/server/public/assets/{data-DOjJ8031.js → data-lTmU53k6.js} +1 -1
  46. package/payload/server/public/assets/{graph-DfUM66RH.js → graph-XYK2qT5D.js} +19 -19
  47. package/payload/server/public/assets/{graph-labels-CXt55mIP.js → graph-labels-DNCXtQVn.js} +1 -1
  48. package/payload/server/public/assets/{operator-CRRc0nD-.js → operator-B3hpbhNo.js} +1 -1
  49. package/payload/server/public/assets/page-DFOoEKVK.js +32 -0
  50. package/payload/server/public/assets/{public-Ba5G74iP.js → public-Bd_0QBGJ.js} +1 -1
  51. package/payload/server/public/assets/{rotate-ccw-BfYwa6ew.js → rotate-ccw-BxD1B_G-.js} +1 -1
  52. package/payload/server/public/browser.html +4 -4
  53. package/payload/server/public/calendar.html +4 -4
  54. package/payload/server/public/chat.html +6 -6
  55. package/payload/server/public/data.html +4 -4
  56. package/payload/server/public/graph.html +7 -7
  57. package/payload/server/public/index.html +6 -6
  58. package/payload/server/public/operator.html +8 -8
  59. package/payload/server/public/public.html +6 -6
  60. package/payload/server/server.js +51 -45
  61. package/payload/server/public/assets/AdminShell-D0MDlfI1.js +0 -1
  62. package/payload/server/public/assets/OperatorConversations-DDUzu1h8.css +0 -1
  63. package/payload/server/public/assets/chat-DMssYitp.js +0 -1
  64. package/payload/server/public/assets/page-wUvf2I5u.js +0 -32
package/dist/index.js CHANGED
@@ -1624,6 +1624,10 @@ function provisionNeo4jPidfileScrub() {
1624
1624
  shell("cp", [tmpScript, plan.scriptPath], { sudo: true });
1625
1625
  shell("chmod", ["0755", plan.scriptPath], { sudo: true });
1626
1626
  spawnSync("rm", ["-f", tmpScript]);
1627
+ // Pre-log the privileged drop-in install (the mkdir+cp pair below) so a
1628
+ // failure to lay the systemd drop-in is visible in the install log rather
1629
+ // than silent. Diagnostic: `grep '\[privileged\]' <install-log>`.
1630
+ logFile(` [privileged] op=neo4j-pidfile-dropin path=${plan.dropinPath}`);
1627
1631
  shell("mkdir", ["-p", plan.dropinDir], { sudo: true });
1628
1632
  const tmpDropin = `/tmp/10-maxy-pidfile-scrub.${process.pid}.conf`;
1629
1633
  writeFileSync(tmpDropin, plan.dropinContent);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rubytech/create-maxy-code",
3
- "version": "0.1.365",
3
+ "version": "0.1.367",
4
4
  "description": "Install Maxy — AI for Productive People",
5
5
  "bin": {
6
6
  "create-maxy-code": "./dist/index.js"
@@ -1 +1 @@
1
- {"version":3,"file":"content-producer-authoring-skills.d.ts","sourceRoot":"","sources":["../src/content-producer-authoring-skills.ts"],"names":[],"mappings":"AAgCA,eAAO,MAAM,sCAAsC,qIAOzC,CAAC"}
1
+ {"version":3,"file":"content-producer-authoring-skills.d.ts","sourceRoot":"","sources":["../src/content-producer-authoring-skills.ts"],"names":[],"mappings":"AAiCA,eAAO,MAAM,sCAAsC,qIAOzC,CAAC"}
@@ -26,10 +26,11 @@
26
26
  // it would lock those operator choices inside a subagent that cannot ask.
27
27
  //
28
28
  // The 19 management-consulting analysis-framework skills stay admin-run and are
29
- // not listed here. The founder fundraise pack (investor-data-room) stays
30
- // admin-run, keeping voice-retrieve-conditioning on the admin surface, until its
31
- // mandatory research-assistant citation routing can move off a leaf authoring
32
- // seat that has no Task/Agent tool.
29
+ // not listed here. The founder fundraise pack (investor-data-room) is admin-
30
+ // orchestrated: admin dispatches research-assistant for each sourced section,
31
+ // writes findings to data room files, then dispatches content-producer for the
32
+ // voice-conditioned prose (Stage 3). voice-retrieve-conditioning therefore lives
33
+ // only on content-producer, not on the admin surface (Task 976).
33
34
  export const CONTENT_PRODUCER_AUTHORING_SKILL_SLUGS = [
34
35
  "professional-document",
35
36
  "a4-print-documents",
@@ -1 +1 @@
1
- {"version":3,"file":"content-producer-authoring-skills.js","sourceRoot":"","sources":["../src/content-producer-authoring-skills.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,gFAAgF;AAChF,+EAA+E;AAC/E,8EAA8E;AAC9E,gFAAgF;AAChF,oDAAoD;AACpD,EAAE;AACF,wEAAwE;AACxE,4EAA4E;AAC5E,6EAA6E;AAC7E,+EAA+E;AAC/E,8EAA8E;AAC9E,sDAAsD;AACtD,EAAE;AACF,0EAA0E;AAC1E,sEAAsE;AACtE,wEAAwE;AACxE,8EAA8E;AAC9E,wEAAwE;AACxE,0EAA0E;AAC1E,EAAE;AACF,gFAAgF;AAChF,+EAA+E;AAC/E,8EAA8E;AAC9E,iFAAiF;AACjF,0EAA0E;AAC1E,EAAE;AACF,gFAAgF;AAChF,yEAAyE;AACzE,iFAAiF;AACjF,8EAA8E;AAC9E,oCAAoC;AACpC,MAAM,CAAC,MAAM,sCAAsC,GAAG;IACpD,uBAAuB;IACvB,oBAAoB;IACpB,cAAc;IACd,eAAe;IACf,mBAAmB;IACnB,mBAAmB;CACX,CAAC"}
1
+ {"version":3,"file":"content-producer-authoring-skills.js","sourceRoot":"","sources":["../src/content-producer-authoring-skills.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,gFAAgF;AAChF,+EAA+E;AAC/E,8EAA8E;AAC9E,gFAAgF;AAChF,oDAAoD;AACpD,EAAE;AACF,wEAAwE;AACxE,4EAA4E;AAC5E,6EAA6E;AAC7E,+EAA+E;AAC/E,8EAA8E;AAC9E,sDAAsD;AACtD,EAAE;AACF,0EAA0E;AAC1E,sEAAsE;AACtE,wEAAwE;AACxE,8EAA8E;AAC9E,wEAAwE;AACxE,0EAA0E;AAC1E,EAAE;AACF,gFAAgF;AAChF,+EAA+E;AAC/E,8EAA8E;AAC9E,iFAAiF;AACjF,0EAA0E;AAC1E,EAAE;AACF,gFAAgF;AAChF,6EAA6E;AAC7E,8EAA8E;AAC9E,+EAA+E;AAC/E,iFAAiF;AACjF,iEAAiE;AACjE,MAAM,CAAC,MAAM,sCAAsC,GAAG;IACpD,uBAAuB;IACvB,oBAAoB;IACpB,cAAc;IACd,eAAe;IACf,mBAAmB;IACnB,mBAAmB;CACX,CAAC"}
@@ -1,4 +1,4 @@
1
- import test from "node:test";
1
+ import { test } from "vitest";
2
2
  import assert from "node:assert/strict";
3
3
  import { mkdtempSync, mkdirSync, writeFileSync, existsSync, rmSync } from "node:fs";
4
4
  import { tmpdir } from "node:os";
@@ -1 +1 @@
1
- {"version":3,"file":"account-lifecycle.test.js","sourceRoot":"","sources":["../../../src/tools/__tests__/account-lifecycle.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"account-lifecycle.test.js","sourceRoot":"","sources":["../../../src/tools/__tests__/account-lifecycle.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACpF,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjG,MAAM,KAAK,GAAG,sCAAsC,CAAC;AACrD,MAAM,MAAM,GAAG,sCAAsC,CAAC;AAEtD,SAAS,IAAI,CAAC,IAAY,EAAE,EAAU,EAAE,IAAY;IAClD,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,cAAc,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACzF,CAAC;AACD,MAAM,EAAE,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,iBAAiB,CAAC,CAAC,CAAC;AAEhE,IAAI,CAAC,4DAA4D,EAAE,GAAG,EAAE;IACtE,MAAM,IAAI,GAAG,EAAE,EAAE,CAAC;IAClB,IAAI,CAAC;QACH,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAC3B,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC7B,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,UAAU;QAC/C,MAAM,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QAC9F,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC7B,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9G,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IACpH,CAAC;YAAS,CAAC;QAAC,MAAM,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAAC,CAAC;AAClD,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,gDAAgD,EAAE,GAAG,EAAE;IAC1D,MAAM,IAAI,GAAG,EAAE,EAAE,CAAC;IAClB,IAAI,CAAC;QACH,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAC3B,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC7B,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;QAChD,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;IACpD,CAAC;YAAS,CAAC;QAAC,MAAM,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAAC,CAAC;AAClD,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,iEAAiE,EAAE,GAAG,EAAE;IAC3E,MAAM,IAAI,GAAG,EAAE,EAAE,CAAC;IAClB,IAAI,CAAC;QACH,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC7B,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,kBAAkB,CAAC,CAAC;QACrF,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC9B,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACpD,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,CAAC;QAC1C,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAChE,gDAAgD;QAChD,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACpD,CAAC;YAAS,CAAC;QAAC,MAAM,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAAC,CAAC;AAClD,CAAC,CAAC,CAAC"}
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: platform-architecture
3
3
  description: Use when grounding any documented-surface claim about what Maxy ships — plugins, skills, specialists, install/deploy flows, internals. This is the install catalogue, not evidence of what is enabled on the current account. For install state on this account, call `capabilities-here`; for documented surface, cite the `Source:` URL inline.
4
- content-hash: sha256:e863053737ee5f8477f1f3ff4eb5b718f5999d1b3497276922e19ab8d88a866b
4
+ content-hash: sha256:84a488c2f488527829397d4a06c22aa6348a0e562bea64205f368bb69441766f
5
5
  brand: maxy-code
6
6
  product-name: Maxy
7
7
  ---
@@ -2541,6 +2541,8 @@ either is a regression.
2541
2541
 
2542
2542
  **`/chat` Conversations flyout + zero-sessions splash.** The admin `/chat` `HeaderMenu` carries a **Conversations** item (rendered only when `onOpenConversations` is wired, which scopes it to `/chat`) that opens an in-chat session-management pane (`app/chat/SessionList.tsx`) hosted by `chat/page.tsx` — distinct from, and sharing endpoints with, the `Sidebar` Sessions list (which stays hidden on narrow viewports). It enumerates the admin's own webchat sessions via `GET /api/admin/sidebar-sessions` (carries the per-row `live` marker and `archived` flag, install-wide), lists them newest-first with the live one marked and archived rows folded under a collapsible subsection, and offers per-row resume (`/chat?session=<id>`), rename, archive/unarchive, two-tap delete, an **End** control on the live row (`session-stop`), plus a New-session control (`session-rc-spawn`) and a copyable full id. When the canonical pointer is `known:false` (`canonical-empty`) and enumeration returns zero rows, the surface renders a splash (brand logo + New session) instead of a dead bootstrap thread; a freshly-spawned New session is `known:true`, so its greeting is preserved. Client breadcrumbs: `[chat-conversations] op=enumerate owned=<n>` and `op=action name=<open|rename|archive|delete|stop> sessionId=<id8>` (`op=action-failed … status=…` on a non-2xx). Detail lives in `.docs/admin-webchat-native-channel.md` ("Conversations flyout + zero-sessions splash").
2543
2543
 
2544
+ **`/chat` header conversation label.** When `/chat` has an active titled conversation, the admin/operator `HeaderMenu` centre shows that title in place of the brand icon + name (the `chat-logo` image is suppressed; the operator's first grid track keeps an empty width-reserved placeholder so centring is unchanged). `AdminChat` resolves the active session's title from the same `GET /api/admin/sidebar-sessions` list (active id = the `?session=` target, or the canonical session for the operator), adopting the row's `title` only when `titleSource ∈ {user, ai, first-message}`; a `prefix`-only row (the 8-char UUID fallback) or no matching row keeps the brand block. The label re-resolves on active-id change. One breadcrumb fires on every resolve: `[admin-ui] op=header-label sessionId=<id8> variant=<admin|operator> present=<bool> source=<user|ai|first-message|none> reason=<resolved|untitled|no-match|fetch-failed>`. The lite variant header is unchanged. Sessions named only by a resolved `personName` (public-webchat visitor / admin-webchat author rows, which stay `titleSource:'prefix'`) currently fall back to the icon; adopting those into the header label is tracked as a separate follow-up.
2545
+
2544
2546
  **`/chat` Claude-desktop transcript presentation.** The admin webchat keeps the shared `Transcript` shell (stream, follow-tail) but injects a /chat-only item renderer via the component's optional `renderItems` prop: `renderChatTimeline` in `app/chat/transcript-render.tsx`. Presentation: operator turns render as a right-aligned grey bubble showing the message text and, beneath it, a subtle always-visible time-of-day stamp (no label); delivered agent replies render as plain prose with the same time-of-day stamp beneath (the reply-document filename line stays, as prose); the stamp is HH:MM from the turn's `ts` (locale-formatted, right-aligned inside the operator bubble, left-aligned under agent prose), and a turn whose `ts` is null/unparseable shows no stamp, never an empty line — so only delivered operator and agent-reply turns are stamped, while tool runs, the collapsed "Thinking" block, and the agent-error banner stay time-free; a maximal consecutive run of `tool-call`/`tool-result` turns renders as one collapsed grey one-liner ("Used N tools ›") whose expansion shows every call and result payload — a lone call still gets the one-liner, and prose or a directive row ends a run. The WhatsApp reader (`/whatsapp`) omits the prop and keeps the default `renderTimeline`, so its rendering is unchanged; both presentations are test-pinned (`app/whatsapp/__tests__/Transcript-*.test.tsx`, `app/chat/__tests__/transcript-render.test.tsx`). **Day-divider:** both renderers insert a centered `.day-divider` row between two consecutive timeline items on different local calendar days (label `Today`/`Yesterday`, else `Sat 14 Jun 2026`), so a thread spanning midnight is never an ambiguous run of HH:MM; the first dated item gets a leading divider, a null/unparseable `ts` marks no boundary, dividers are computed over the filtered `visibleItems`, and in `/chat` a day crossover flushes any open tool/think run first so a collapsed run never spans it. Per-bubble HH:MM stamps are unchanged. Shared helpers `dayKey`/`dayLabel`/`itemTs`/`DayDivider` live in `app/whatsapp/Transcript.tsx`.
2545
2547
 
2546
2548
  **`/chat` live activity line.** While a turn is in flight the transcript tail shows one ephemeral `ChatActivity` line (mounted only while `busy`, admin/operator only). It tracks real activity, not a timer: while a `Task` subagent runs it shows that subagent's headline (`agentType · description`, prefixed `N agents ·` when ≥2 are concurrent), sourced from `agent-<hex>.meta.json` via named `activity` SSE events the admin reader pushes from the session's `subagents/` dir; with no subagent active it shows a neutral word that advances only on a real turn arrival. The line carries a turn-elapsed clock and flips to a `stalled` state once nothing has been written for 5 minutes (`now − lastEmitAt`), so the operator can tell a wedge from progress without SSH. It is never added to the persisted timeline. Detail and the `[webchat-activity]` observability live in [`admin-webchat-native-channel.md`](../../../.docs/admin-webchat-native-channel.md).
@@ -2913,9 +2915,10 @@ see the most useful identity at every scale.
2913
2915
  Opening `/graph` with no filter chips selected shows **all your top-level
2914
2916
  nodes** straight away, so the canvas is populated on arrival rather than
2915
2917
  blank. Top-level nodes are the operator-meaningful entry points (People,
2916
- Organizations, Conversations, Tasks, Jobs, and the rest of the filter chip
2917
- roster); their child and infrastructural nodes stay off this view and are
2918
- reached by clicking into a node's neighbourhood.
2918
+ Organizations, Tasks, Jobs, and the rest of the filter chip roster); their
2919
+ child and infrastructural nodes stay off this view and are reached by
2920
+ clicking into a node's neighbourhood. Conversations are deliberately not
2921
+ top-level — see **Conversations are off the default canvas** below.
2919
2922
 
2920
2923
  This view is capped at **1000 nodes**. When your graph has more than that, the
2921
2924
  canvas shows 1000 of them and a note reads, for example, `Showing 1,000 of
@@ -3007,35 +3010,38 @@ preserve toolbar space at depth.
3007
3010
 
3008
3011
  ## Trashed conversations
3009
3012
 
3010
- Trashed Conversation nodes are hidden by default. Toggle **Show trashed** in
3011
- the filter popover to surface them; they render with a faded fill and dashed
3012
- border, with their zoom-tier labels intact. The `N msgs` count excludes
3013
- trashed Messages, so the detailed-tier label reflects only live turns in the
3013
+ Conversations are off the default canvas (see below), so you meet trashed
3014
+ ones the same way you meet live ones via search or drilldown. Trashed
3015
+ nodes are hidden by default there too; toggle **Show trashed** in the filter
3016
+ popover to surface them. They render with a faded fill and dashed border,
3017
+ with their zoom-tier labels intact. The `N msgs` count excludes trashed
3018
+ Messages, so the detailed-tier label reflects only live turns in the
3014
3019
  conversation.
3015
3020
 
3016
- ## Filtering by channel and message kind
3017
-
3018
- When you select **AdminConversation** or **PublicConversation** in the
3019
- filter popover, two extra rows appear underneath the chip list:
3020
-
3021
- - **Channel** Web / WhatsApp. Select one to scope the canvas to
3022
- conversations that came in over that channel only. Selecting both is
3023
- the same as selecting neither (all channels). After the migration that
3024
- ships with this release, every conversation carries an explicit
3025
- channel value — pre-existing conversations are backfilled to "Web"
3026
- because only the WhatsApp and Telegram intake paths ever set non-Web
3027
- values.
3028
- - **Message** User / Assistant / WhatsApp. When you've also pivoted
3029
- into a conversation neighbourhood (or your search hits messages
3030
- directly), this row scopes the messages on canvas to the chosen kind.
3031
- WhatsApp messages persist with their own sublabel so you can isolate
3032
- the live-channel cohort from the agent-path cohort within the same
3033
- conversation.
3034
-
3035
- These sub-facets compose with the chip selection. Searching with the
3036
- AdminConversation chip selected now also reaches the body text of every
3037
- admin message typing a rare word like "ATM" returns every conversation
3038
- that mentions it, not just conversations with that word in the title.
3021
+ ## Conversations are off the default canvas
3022
+
3023
+ Conversations no longer appear as top-level nodes or filter chips. Both
3024
+ admin conversations (your own chats with the agent) and public
3025
+ conversations (the agent's chats with customers) are chat transcripts, not
3026
+ operator-entry domain entities, so they stay off the populated-on-arrival
3027
+ canvas and out of the filter popover.
3028
+
3029
+ They remain fully in the graph and fully searchable. You reach a
3030
+ conversation two ways:
3031
+
3032
+ - **Search** — type a term and the conversation (or a message inside it)
3033
+ surfaces as a search hit; clicking it pivots into the cluster. Search
3034
+ reaches the body text of every message, so a rare word like "ATM"
3035
+ returns every conversation that mentions it, not just ones with that
3036
+ word in the title.
3037
+ - **Drilldown** clicking any rendered node next to a conversation, or
3038
+ the conversation via a search hit, pulls the whole conversation cluster
3039
+ onto the canvas (see **Cluster-expand on Conversation/Message clicks**).
3040
+
3041
+ Because conversations carry no chip, the per-chip Channel (Web / WhatsApp)
3042
+ and Message-kind (User / Assistant / WhatsApp) sub-facet filters are no
3043
+ longer surfaced. The underlying channel and message-sublabel values are
3044
+ unchanged on the nodes; only the chip-driven filter UI is retired.
3039
3045
 
3040
3046
  ## Sidebar conversations list
3041
3047
 
@@ -69,6 +69,8 @@ either is a regression.
69
69
 
70
70
  **`/chat` Conversations flyout + zero-sessions splash.** The admin `/chat` `HeaderMenu` carries a **Conversations** item (rendered only when `onOpenConversations` is wired, which scopes it to `/chat`) that opens an in-chat session-management pane (`app/chat/SessionList.tsx`) hosted by `chat/page.tsx` — distinct from, and sharing endpoints with, the `Sidebar` Sessions list (which stays hidden on narrow viewports). It enumerates the admin's own webchat sessions via `GET /api/admin/sidebar-sessions` (carries the per-row `live` marker and `archived` flag, install-wide), lists them newest-first with the live one marked and archived rows folded under a collapsible subsection, and offers per-row resume (`/chat?session=<id>`), rename, archive/unarchive, two-tap delete, an **End** control on the live row (`session-stop`), plus a New-session control (`session-rc-spawn`) and a copyable full id. When the canonical pointer is `known:false` (`canonical-empty`) and enumeration returns zero rows, the surface renders a splash (brand logo + New session) instead of a dead bootstrap thread; a freshly-spawned New session is `known:true`, so its greeting is preserved. Client breadcrumbs: `[chat-conversations] op=enumerate owned=<n>` and `op=action name=<open|rename|archive|delete|stop> sessionId=<id8>` (`op=action-failed … status=…` on a non-2xx). Detail lives in `.docs/admin-webchat-native-channel.md` ("Conversations flyout + zero-sessions splash").
71
71
 
72
+ **`/chat` header conversation label.** When `/chat` has an active titled conversation, the admin/operator `HeaderMenu` centre shows that title in place of the brand icon + name (the `chat-logo` image is suppressed; the operator's first grid track keeps an empty width-reserved placeholder so centring is unchanged). `AdminChat` resolves the active session's title from the same `GET /api/admin/sidebar-sessions` list (active id = the `?session=` target, or the canonical session for the operator), adopting the row's `title` only when `titleSource ∈ {user, ai, first-message}`; a `prefix`-only row (the 8-char UUID fallback) or no matching row keeps the brand block. The label re-resolves on active-id change. One breadcrumb fires on every resolve: `[admin-ui] op=header-label sessionId=<id8> variant=<admin|operator> present=<bool> source=<user|ai|first-message|none> reason=<resolved|untitled|no-match|fetch-failed>`. The lite variant header is unchanged. Sessions named only by a resolved `personName` (public-webchat visitor / admin-webchat author rows, which stay `titleSource:'prefix'`) currently fall back to the icon; adopting those into the header label is tracked as a separate follow-up.
73
+
72
74
  **`/chat` Claude-desktop transcript presentation.** The admin webchat keeps the shared `Transcript` shell (stream, follow-tail) but injects a /chat-only item renderer via the component's optional `renderItems` prop: `renderChatTimeline` in `app/chat/transcript-render.tsx`. Presentation: operator turns render as a right-aligned grey bubble showing the message text and, beneath it, a subtle always-visible time-of-day stamp (no label); delivered agent replies render as plain prose with the same time-of-day stamp beneath (the reply-document filename line stays, as prose); the stamp is HH:MM from the turn's `ts` (locale-formatted, right-aligned inside the operator bubble, left-aligned under agent prose), and a turn whose `ts` is null/unparseable shows no stamp, never an empty line — so only delivered operator and agent-reply turns are stamped, while tool runs, the collapsed "Thinking" block, and the agent-error banner stay time-free; a maximal consecutive run of `tool-call`/`tool-result` turns renders as one collapsed grey one-liner ("Used N tools ›") whose expansion shows every call and result payload — a lone call still gets the one-liner, and prose or a directive row ends a run. The WhatsApp reader (`/whatsapp`) omits the prop and keeps the default `renderTimeline`, so its rendering is unchanged; both presentations are test-pinned (`app/whatsapp/__tests__/Transcript-*.test.tsx`, `app/chat/__tests__/transcript-render.test.tsx`). **Day-divider:** both renderers insert a centered `.day-divider` row between two consecutive timeline items on different local calendar days (label `Today`/`Yesterday`, else `Sat 14 Jun 2026`), so a thread spanning midnight is never an ambiguous run of HH:MM; the first dated item gets a leading divider, a null/unparseable `ts` marks no boundary, dividers are computed over the filtered `visibleItems`, and in `/chat` a day crossover flushes any open tool/think run first so a collapsed run never spans it. Per-bubble HH:MM stamps are unchanged. Shared helpers `dayKey`/`dayLabel`/`itemTs`/`DayDivider` live in `app/whatsapp/Transcript.tsx`.
73
75
 
74
76
  **`/chat` live activity line.** While a turn is in flight the transcript tail shows one ephemeral `ChatActivity` line (mounted only while `busy`, admin/operator only). It tracks real activity, not a timer: while a `Task` subagent runs it shows that subagent's headline (`agentType · description`, prefixed `N agents ·` when ≥2 are concurrent), sourced from `agent-<hex>.meta.json` via named `activity` SSE events the admin reader pushes from the session's `subagents/` dir; with no subagent active it shows a neutral word that advances only on a real turn arrival. The line carries a turn-elapsed clock and flips to a `stalled` state once nothing has been written for 5 minutes (`now − lastEmitAt`), so the operator can tell a wedge from progress without SSH. It is never added to the persisted timeline. Detail and the `[webchat-activity]` observability live in [`admin-webchat-native-channel.md`](../../../.docs/admin-webchat-native-channel.md).
@@ -9,9 +9,10 @@ see the most useful identity at every scale.
9
9
  Opening `/graph` with no filter chips selected shows **all your top-level
10
10
  nodes** straight away, so the canvas is populated on arrival rather than
11
11
  blank. Top-level nodes are the operator-meaningful entry points (People,
12
- Organizations, Conversations, Tasks, Jobs, and the rest of the filter chip
13
- roster); their child and infrastructural nodes stay off this view and are
14
- reached by clicking into a node's neighbourhood.
12
+ Organizations, Tasks, Jobs, and the rest of the filter chip roster); their
13
+ child and infrastructural nodes stay off this view and are reached by
14
+ clicking into a node's neighbourhood. Conversations are deliberately not
15
+ top-level — see **Conversations are off the default canvas** below.
15
16
 
16
17
  This view is capped at **1000 nodes**. When your graph has more than that, the
17
18
  canvas shows 1000 of them and a note reads, for example, `Showing 1,000 of
@@ -103,35 +104,38 @@ preserve toolbar space at depth.
103
104
 
104
105
  ## Trashed conversations
105
106
 
106
- Trashed Conversation nodes are hidden by default. Toggle **Show trashed** in
107
- the filter popover to surface them; they render with a faded fill and dashed
108
- border, with their zoom-tier labels intact. The `N msgs` count excludes
109
- trashed Messages, so the detailed-tier label reflects only live turns in the
107
+ Conversations are off the default canvas (see below), so you meet trashed
108
+ ones the same way you meet live ones via search or drilldown. Trashed
109
+ nodes are hidden by default there too; toggle **Show trashed** in the filter
110
+ popover to surface them. They render with a faded fill and dashed border,
111
+ with their zoom-tier labels intact. The `N msgs` count excludes trashed
112
+ Messages, so the detailed-tier label reflects only live turns in the
110
113
  conversation.
111
114
 
112
- ## Filtering by channel and message kind
113
-
114
- When you select **AdminConversation** or **PublicConversation** in the
115
- filter popover, two extra rows appear underneath the chip list:
116
-
117
- - **Channel** Web / WhatsApp. Select one to scope the canvas to
118
- conversations that came in over that channel only. Selecting both is
119
- the same as selecting neither (all channels). After the migration that
120
- ships with this release, every conversation carries an explicit
121
- channel value — pre-existing conversations are backfilled to "Web"
122
- because only the WhatsApp and Telegram intake paths ever set non-Web
123
- values.
124
- - **Message** User / Assistant / WhatsApp. When you've also pivoted
125
- into a conversation neighbourhood (or your search hits messages
126
- directly), this row scopes the messages on canvas to the chosen kind.
127
- WhatsApp messages persist with their own sublabel so you can isolate
128
- the live-channel cohort from the agent-path cohort within the same
129
- conversation.
130
-
131
- These sub-facets compose with the chip selection. Searching with the
132
- AdminConversation chip selected now also reaches the body text of every
133
- admin message typing a rare word like "ATM" returns every conversation
134
- that mentions it, not just conversations with that word in the title.
115
+ ## Conversations are off the default canvas
116
+
117
+ Conversations no longer appear as top-level nodes or filter chips. Both
118
+ admin conversations (your own chats with the agent) and public
119
+ conversations (the agent's chats with customers) are chat transcripts, not
120
+ operator-entry domain entities, so they stay off the populated-on-arrival
121
+ canvas and out of the filter popover.
122
+
123
+ They remain fully in the graph and fully searchable. You reach a
124
+ conversation two ways:
125
+
126
+ - **Search** — type a term and the conversation (or a message inside it)
127
+ surfaces as a search hit; clicking it pivots into the cluster. Search
128
+ reaches the body text of every message, so a rare word like "ATM"
129
+ returns every conversation that mentions it, not just ones with that
130
+ word in the title.
131
+ - **Drilldown** clicking any rendered node next to a conversation, or
132
+ the conversation via a search hit, pulls the whole conversation cluster
133
+ onto the canvas (see **Cluster-expand on Conversation/Message clicks**).
134
+
135
+ Because conversations carry no chip, the per-chip Channel (Web / WhatsApp)
136
+ and Message-kind (User / Assistant / WhatsApp) sub-facet filters are no
137
+ longer surfaced. The underlying channel and message-sublabel values are
138
+ unchanged on the nodes; only the chip-driven filter UI is retired.
135
139
 
136
140
  ## Sidebar conversations list
137
141
 
@@ -139,4 +139,66 @@ test("JobCost without costType is rejected (isPresent boundary)", () => {
139
139
  accountId: ACCT,
140
140
  }, env, CONSTRUCTION)).toThrow(/missing required property/);
141
141
  });
142
+ // ---------------------------------------------------------------------------
143
+ // JobLogic billing children carry a line-item monetary `amount` that is
144
+ // genuinely distinct from the invoice-level `totalPaymentDue`. The doc gate
145
+ // (detectContradictions) already exempts `amount` on InvoiceLine /
146
+ // InvoicePayment / Credit via the shared BAN_EXEMPT map; the write validator
147
+ // must apply the same per-label exemption so an agent following the green doc
148
+ // can persist these nodes verbatim. `amount` on any other label still trips
149
+ // the synonym ban.
150
+ // ---------------------------------------------------------------------------
151
+ test("InvoiceLine with amount is accepted (billing-child exemption)", () => {
152
+ const env = makeEnv(["InvoiceLine"]);
153
+ expect(() => validateWrite({
154
+ labels: ["InvoiceLine"],
155
+ properties: {
156
+ invoiceId: "INV-1840",
157
+ lineId: "L1",
158
+ description: "Boiler service",
159
+ quantity: 1,
160
+ amount: 120,
161
+ },
162
+ accountId: ACCT,
163
+ }, env, CONSTRUCTION)).not.toThrow();
164
+ });
165
+ test("InvoicePayment with amount is accepted (billing-child exemption)", () => {
166
+ const env = makeEnv(["InvoicePayment"]);
167
+ expect(() => validateWrite({
168
+ labels: ["InvoicePayment"],
169
+ properties: {
170
+ invoiceId: "INV-1840",
171
+ paymentId: "P1",
172
+ amount: 120,
173
+ date: "2026-06-01",
174
+ paymentType: "card",
175
+ },
176
+ accountId: ACCT,
177
+ }, env, CONSTRUCTION)).not.toThrow();
178
+ });
179
+ test("Credit with amount is accepted (billing-child exemption)", () => {
180
+ const env = makeEnv(["Credit"]);
181
+ expect(() => validateWrite({
182
+ labels: ["Credit"],
183
+ properties: {
184
+ creditId: "C1",
185
+ amount: 50,
186
+ date: "2026-06-01",
187
+ },
188
+ accountId: ACCT,
189
+ }, env, CONSTRUCTION)).not.toThrow();
190
+ });
191
+ test("amount on a non-exempt label is still rejected with the synonym message", () => {
192
+ const env = makeEnv(["Invoice"]);
193
+ expect(() => validateWrite({
194
+ labels: ["Invoice"],
195
+ properties: {
196
+ jobId: "1840",
197
+ invoiceId: "INV-1840",
198
+ amount: 9710,
199
+ date: "2026-06-01",
200
+ },
201
+ accountId: ACCT,
202
+ }, env, CONSTRUCTION)).toThrow(/property name 'amount' is not Schema\.org — use 'totalPaymentDue' instead/);
203
+ });
142
204
  //# sourceMappingURL=schema-write-path-task802.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema-write-path-task802.test.js","sourceRoot":"","sources":["../../../src/lib/__tests__/schema-write-path-task802.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema-write-path-task802.test.js","sourceRoot":"","sources":["../../../src/lib/__tests__/schema-write-path-task802.test.ts"],"names":[],"mappings":"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"}
@@ -196,5 +196,19 @@ export interface SchemaContradiction {
196
196
  * member-by-member — a doc must not present a banned name even as one
197
197
  * alternative.
198
198
  */
199
+ /**
200
+ * Per-label ban exemptions. The global synonym map (schema-base.md) bans
201
+ * `amount` in favour of `totalPaymentDue` — that is invoice-level semantics.
202
+ * The JobLogic billing children `InvoiceLine`, `InvoicePayment`, and `Credit`
203
+ * each carry a line-item monetary `amount` that is genuinely distinct from the
204
+ * invoice-level total, so they keep the JobLogic-exact `amount` field. A
205
+ * (banned-property -> allowed-labels) entry here suppresses the contradiction
206
+ * for exactly those labels and nowhere else. See schema-construction.md.
207
+ *
208
+ * Exported so the write-path validator applies the identical exemption — the
209
+ * doc gate and the validator must agree on exactly the same three-label set,
210
+ * which means one definition, not two.
211
+ */
212
+ export declare const BAN_EXEMPT: Record<string, ReadonlySet<string>>;
199
213
  export declare function detectContradictions(schema: LoadedSchema): SchemaContradiction[];
200
214
  //# sourceMappingURL=schema-loader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema-loader.d.ts","sourceRoot":"","sources":["../../src/lib/schema-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAIH,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,4BAA4B,CAAC;AAEpC,mDAAmD;AACnD,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAExC,MAAM,WAAW,eAAe;IAC9B,0DAA0D;IAC1D,KAAK,EAAE,MAAM,CAAC;IACd,+DAA+D;IAC/D,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,gEAAgE;IAChE,UAAU,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B;;;;;;;;;OASG;IACH,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC7C;;;;;OAKG;IACH,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrE;;;;;;;OAOG;IACH,gBAAgB,EAAE,GAAG,CACnB,MAAM,EACN,GAAG,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CACvD,CAAC;IACF;;;;;;;OAOG;IACH,oBAAoB,EAAE,KAAK,CAAC;QAC1B,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;IACH,wDAAwD;IACxD,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB;;;;;;;;;OASG;IACH,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B;;;;;;OAMG;IACH,oBAAoB,EAAE,mBAAmB,EAAE,CAAC;CAC7C;AAsMD;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAkBlD;AAuMD,MAAM,WAAW,iBAAiB;IAChC;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,UAAU,CAAC,IAAI,GAAE,iBAAsB,GAAG,YAAY,CAmLrE;AAMD;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,4DAA4D;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,0EAA0E;IAC1E,KAAK,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,QAAQ,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,YAAY,GACnB,mBAAmB,EAAE,CAuCvB"}
1
+ {"version":3,"file":"schema-loader.d.ts","sourceRoot":"","sources":["../../src/lib/schema-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAIH,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,4BAA4B,CAAC;AAEpC,mDAAmD;AACnD,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAExC,MAAM,WAAW,eAAe;IAC9B,0DAA0D;IAC1D,KAAK,EAAE,MAAM,CAAC;IACd,+DAA+D;IAC/D,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,gEAAgE;IAChE,UAAU,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B;;;;;;;;;OASG;IACH,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC7C;;;;;OAKG;IACH,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrE;;;;;;;OAOG;IACH,gBAAgB,EAAE,GAAG,CACnB,MAAM,EACN,GAAG,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CACvD,CAAC;IACF;;;;;;;OAOG;IACH,oBAAoB,EAAE,KAAK,CAAC;QAC1B,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;IACH,wDAAwD;IACxD,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB;;;;;;;;;OASG;IACH,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B;;;;;;OAMG;IACH,oBAAoB,EAAE,mBAAmB,EAAE,CAAC;CAC7C;AAsMD;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAkBlD;AAuMD,MAAM,WAAW,iBAAiB;IAChC;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,UAAU,CAAC,IAAI,GAAE,iBAAsB,GAAG,YAAY,CAmLrE;AAMD;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,4DAA4D;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,0EAA0E;IAC1E,KAAK,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,QAAQ,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;GAOG;AACH;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAE1D,CAAC;AAEF,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,YAAY,GACnB,mBAAmB,EAAE,CAwCvB"}
@@ -565,6 +565,22 @@ export function loadSchema(opts = {}) {
565
565
  * member-by-member — a doc must not present a banned name even as one
566
566
  * alternative.
567
567
  */
568
+ /**
569
+ * Per-label ban exemptions. The global synonym map (schema-base.md) bans
570
+ * `amount` in favour of `totalPaymentDue` — that is invoice-level semantics.
571
+ * The JobLogic billing children `InvoiceLine`, `InvoicePayment`, and `Credit`
572
+ * each carry a line-item monetary `amount` that is genuinely distinct from the
573
+ * invoice-level total, so they keep the JobLogic-exact `amount` field. A
574
+ * (banned-property -> allowed-labels) entry here suppresses the contradiction
575
+ * for exactly those labels and nowhere else. See schema-construction.md.
576
+ *
577
+ * Exported so the write-path validator applies the identical exemption — the
578
+ * doc gate and the validator must agree on exactly the same three-label set,
579
+ * which means one definition, not two.
580
+ */
581
+ export const BAN_EXEMPT = {
582
+ amount: new Set(["InvoiceLine", "InvoicePayment", "Credit"]),
583
+ };
568
584
  export function detectContradictions(schema) {
569
585
  const out = [];
570
586
  const seen = new Set();
@@ -572,6 +588,8 @@ export function detectContradictions(schema) {
572
588
  const hit = schema.wrongToCorrect.get(name);
573
589
  if (!hit)
574
590
  return;
591
+ if (BAN_EXEMPT[name]?.has(label))
592
+ return;
575
593
  const inScope = hit.sourceFile === "schema-base.md" ||
576
594
  hit.sourceFile === prescribedIn;
577
595
  if (!inScope)
@@ -1 +1 @@
1
- {"version":3,"file":"schema-loader.js","sourceRoot":"","sources":["../../src/lib/schema-loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema-loader.js","sourceRoot":"","sources":["../../src/lib/schema-loader.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"schema-validator.d.ts","sourceRoot":"","sources":["../../src/lib/schema-validator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAiB,MAAM,oBAAoB,CAAC;AACtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAoBpE,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,+DAA+D;IAC/D,MAAM,EAAE,YAAY,CAAC;IACrB,4DAA4D;IAC5D,UAAU,EAAE,gBAAgB,CAAC;IAC7B,4DAA4D;IAC5D,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,oBAAoB;IACnC;;;;;;;;;;;OAWG;IACH,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC3B;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,kBAAkB,EACzB,GAAG,EAAE,YAAY,EACjB,OAAO,GAAE,oBAAyB,GACjC,IAAI,CA+KN"}
1
+ {"version":3,"file":"schema-validator.d.ts","sourceRoot":"","sources":["../../src/lib/schema-validator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAiB,MAAM,oBAAoB,CAAC;AAEtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAoBpE,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,+DAA+D;IAC/D,MAAM,EAAE,YAAY,CAAC;IACrB,4DAA4D;IAC5D,UAAU,EAAE,gBAAgB,CAAC;IAC7B,4DAA4D;IAC5D,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,oBAAoB;IACnC;;;;;;;;;;;OAWG;IACH,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC3B;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,kBAAkB,EACzB,GAAG,EAAE,YAAY,EACjB,OAAO,GAAE,oBAAyB,GACjC,IAAI,CA2LN"}
@@ -43,6 +43,7 @@
43
43
  * not a whitespace-only string. Numeric `0`, boolean `false`, and empty
44
44
  * arrays count as present — the agent may legitimately persist those.
45
45
  */
46
+ import { BAN_EXEMPT } from "./schema-loader.js";
46
47
  import { nearestLabel } from "../../../../../lib/graph-mcp/dist/schema-cypher-parser.js";
47
48
  const BASE_SOURCE_FILE = "schema-base.md";
48
49
  /**
@@ -120,10 +121,24 @@ export function validateWrite(input, env, options = {}) {
120
121
  // Synonym map is independent of label — `firstName` is wrong on every
121
122
  // Person variant. Runs even when the label is markdown-undocumented;
122
123
  // the synonyms apply to property semantics, not to specific labels.
124
+ //
125
+ // Per-label exemption: a handful of properties are banned globally yet
126
+ // genuinely canonical on specific labels (e.g. `amount` is invoice-level
127
+ // wrong-name everywhere, but the line-item value on the JobLogic billing
128
+ // children InvoiceLine / InvoicePayment / Credit). `BAN_EXEMPT` is the
129
+ // single shared definition the doc gate (detectContradictions) and this
130
+ // validator both consult, so the two surfaces can never diverge on which
131
+ // labels keep the property. Keyed on `primaryLabel` — the same label the
132
+ // forbidden- and required-property passes below use — so `amount` on an
133
+ // invoice-level `Invoice` is still rejected.
123
134
  // ---------------------------------------------------------------------
124
135
  for (const key of Object.keys(properties)) {
125
136
  const hit = env.schema.wrongToCorrect.get(key);
126
- if (hit && isRuleInScope(hit.sourceFile, resolvedVertical)) {
137
+ if (!hit)
138
+ continue;
139
+ if (BAN_EXEMPT[key]?.has(primaryLabel))
140
+ continue;
141
+ if (isRuleInScope(hit.sourceFile, resolvedVertical)) {
127
142
  throw new Error(`memory-write: property name '${key}' is not Schema.org — use '${hit.correct}' instead (${hit.sourceFile} property naming rules)`);
128
143
  }
129
144
  }