@rubytech/create-maxy-code 0.1.147 → 0.1.150

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 (119) hide show
  1. package/package.json +1 -1
  2. package/payload/platform/lib/graph-search/dist/index.d.ts +34 -11
  3. package/payload/platform/lib/graph-search/dist/index.d.ts.map +1 -1
  4. package/payload/platform/lib/graph-search/dist/index.js +42 -13
  5. package/payload/platform/lib/graph-search/dist/index.js.map +1 -1
  6. package/payload/platform/lib/graph-search/src/__tests__/fulltext-coverage.test.ts +75 -40
  7. package/payload/platform/lib/graph-search/src/index.ts +45 -12
  8. package/payload/platform/lib/graph-style/dist/index.d.ts +5 -5
  9. package/payload/platform/lib/graph-style/dist/index.d.ts.map +1 -1
  10. package/payload/platform/lib/graph-style/dist/index.js +11 -9
  11. package/payload/platform/lib/graph-style/dist/index.js.map +1 -1
  12. package/payload/platform/lib/graph-style/src/index.ts +11 -9
  13. package/payload/platform/lib/graph-trash/dist/index.js +6 -6
  14. package/payload/platform/lib/graph-trash/dist/index.js.map +1 -1
  15. package/payload/platform/lib/graph-trash/src/index.ts +6 -6
  16. package/payload/platform/neo4j/edge-annotations.json +4 -4
  17. package/payload/platform/neo4j/schema.cypher +143 -58
  18. package/payload/platform/plugins/admin/PLUGIN.md +1 -2
  19. package/payload/platform/plugins/admin/hooks/__tests__/pre-turn-graph-pass.test.sh +544 -0
  20. package/payload/platform/plugins/admin/hooks/__tests__/session-end-retrospective.test.sh +2 -2
  21. package/payload/platform/plugins/admin/hooks/archive-ingest-surface-gate.sh +2 -2
  22. package/payload/platform/plugins/admin/hooks/{post-turn-graph-pass.sh → pre-turn-graph-pass.sh} +83 -53
  23. package/payload/platform/plugins/admin/hooks/session-end-retrospective.sh +6 -3
  24. package/payload/platform/plugins/docs/references/linkedin-extension.md +1 -1
  25. package/payload/platform/plugins/docs/references/platform.md +1 -1
  26. package/payload/platform/plugins/docs/references/plugins-guide.md +2 -2
  27. package/payload/platform/plugins/linkedin-import/skills/linkedin-import/SKILL.md +5 -5
  28. package/payload/platform/plugins/memory/.claude-plugin/plugin.json +1 -1
  29. package/payload/platform/plugins/memory/PLUGIN.md +4 -4
  30. package/payload/platform/plugins/memory/bin/conversation-archive-ingest.mjs +5 -5
  31. package/payload/platform/plugins/memory/bin/conversation-archive-ingest.sh +1 -1
  32. package/payload/platform/plugins/memory/mcp/dist/index.js +35 -33
  33. package/payload/platform/plugins/memory/mcp/dist/index.js.map +1 -1
  34. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/compiled-truth-revision.test.js +4 -1
  35. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/compiled-truth-revision.test.js.map +1 -1
  36. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/compiled-truth-rewriter-operator-hint.test.d.ts +2 -0
  37. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/compiled-truth-rewriter-operator-hint.test.d.ts.map +1 -0
  38. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/compiled-truth-rewriter-operator-hint.test.js +90 -0
  39. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/compiled-truth-rewriter-operator-hint.test.js.map +1 -0
  40. package/payload/platform/plugins/memory/mcp/dist/lib/compiled-truth-rewriter.d.ts +14 -0
  41. package/payload/platform/plugins/memory/mcp/dist/lib/compiled-truth-rewriter.d.ts.map +1 -1
  42. package/payload/platform/plugins/memory/mcp/dist/lib/compiled-truth-rewriter.js +27 -4
  43. package/payload/platform/plugins/memory/mcp/dist/lib/compiled-truth-rewriter.js.map +1 -1
  44. package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-citation-audit.d.ts +1 -1
  45. package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-citation-audit.js +2 -2
  46. package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-orphans.d.ts +1 -1
  47. package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-orphans.js +1 -1
  48. package/payload/platform/plugins/memory/mcp/dist/lib/llm-classifier.d.ts +2 -2
  49. package/payload/platform/plugins/memory/mcp/dist/lib/llm-classifier.d.ts.map +1 -1
  50. package/payload/platform/plugins/memory/mcp/dist/lib/llm-classifier.js +3 -4
  51. package/payload/platform/plugins/memory/mcp/dist/lib/llm-classifier.js.map +1 -1
  52. package/payload/platform/plugins/memory/mcp/dist/lib/typed-edge-schema.d.ts.map +1 -1
  53. package/payload/platform/plugins/memory/mcp/dist/lib/typed-edge-schema.js +6 -0
  54. package/payload/platform/plugins/memory/mcp/dist/lib/typed-edge-schema.js.map +1 -1
  55. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-derive-insights.test.js +2 -2
  56. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-derive-insights.test.js.map +1 -1
  57. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest.test.js +17 -17
  58. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest.test.js.map +1 -1
  59. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-search-fields.test.js +1 -0
  60. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-search-fields.test.js.map +1 -1
  61. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-update-operator-hint.test.d.ts +2 -0
  62. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-update-operator-hint.test.d.ts.map +1 -0
  63. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-update-operator-hint.test.js +329 -0
  64. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-update-operator-hint.test.js.map +1 -0
  65. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-write-compiled-truth-rejection.test.d.ts +2 -0
  66. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-write-compiled-truth-rejection.test.d.ts.map +1 -0
  67. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-write-compiled-truth-rejection.test.js +39 -0
  68. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-write-compiled-truth-rejection.test.js.map +1 -0
  69. package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-derive-insights.d.ts +3 -3
  70. package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-derive-insights.js +6 -6
  71. package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-derive-insights.js.map +1 -1
  72. package/payload/platform/plugins/memory/mcp/dist/tools/memory-delete.d.ts +1 -1
  73. package/payload/platform/plugins/memory/mcp/dist/tools/memory-delete.js +9 -3
  74. package/payload/platform/plugins/memory/mcp/dist/tools/memory-delete.js.map +1 -1
  75. package/payload/platform/plugins/memory/mcp/dist/tools/memory-empty-trash.d.ts +2 -0
  76. package/payload/platform/plugins/memory/mcp/dist/tools/memory-empty-trash.d.ts.map +1 -1
  77. package/payload/platform/plugins/memory/mcp/dist/tools/memory-empty-trash.js.map +1 -1
  78. package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest.d.ts +6 -5
  79. package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest.d.ts.map +1 -1
  80. package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest.js +30 -29
  81. package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest.js.map +1 -1
  82. package/payload/platform/plugins/memory/mcp/dist/tools/memory-restore.d.ts +1 -1
  83. package/payload/platform/plugins/memory/mcp/dist/tools/memory-restore.js +4 -1
  84. package/payload/platform/plugins/memory/mcp/dist/tools/memory-restore.js.map +1 -1
  85. package/payload/platform/plugins/memory/mcp/dist/tools/memory-search.d.ts.map +1 -1
  86. package/payload/platform/plugins/memory/mcp/dist/tools/memory-search.js +1 -11
  87. package/payload/platform/plugins/memory/mcp/dist/tools/memory-search.js.map +1 -1
  88. package/payload/platform/plugins/memory/mcp/dist/tools/memory-update.d.ts +27 -18
  89. package/payload/platform/plugins/memory/mcp/dist/tools/memory-update.d.ts.map +1 -1
  90. package/payload/platform/plugins/memory/mcp/dist/tools/memory-update.js +83 -70
  91. package/payload/platform/plugins/memory/mcp/dist/tools/memory-update.js.map +1 -1
  92. package/payload/platform/plugins/memory/mcp/dist/tools/memory-write.d.ts.map +1 -1
  93. package/payload/platform/plugins/memory/mcp/dist/tools/memory-write.js +27 -0
  94. package/payload/platform/plugins/memory/mcp/dist/tools/memory-write.js.map +1 -1
  95. package/payload/platform/plugins/memory/mcp/vitest.config.ts +2 -0
  96. package/payload/platform/plugins/memory/references/schema-base.md +7 -6
  97. package/payload/platform/plugins/memory/skills/conversation-archive/SKILL.md +12 -12
  98. package/payload/platform/plugins/scheduling/skills/daily-prep/SKILL.md +2 -2
  99. package/payload/platform/plugins/whatsapp/PLUGIN.md +1 -1
  100. package/payload/platform/plugins/x-import/PLUGIN.md +3 -3
  101. package/payload/platform/plugins/x-import/skills/x-import/SKILL.md +7 -7
  102. package/payload/platform/scripts/seed-neo4j.sh +3 -3
  103. package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts.map +1 -1
  104. package/payload/platform/services/claude-session-manager/dist/pty-spawner.js +0 -1
  105. package/payload/platform/services/claude-session-manager/dist/pty-spawner.js.map +1 -1
  106. package/payload/platform/templates/agents/admin/IDENTITY.md +7 -7
  107. package/payload/platform/templates/specialists/agents/database-operator.md +6 -6
  108. package/payload/platform/templates/specialists/agents/librarian.md +2 -2
  109. package/payload/server/public/assets/{admin-_pm0RRTE.js → admin-CQMFJD81.js} +1 -1
  110. package/payload/server/public/assets/{data-b6q64Ot4.js → data-k-sUX-rP.js} +1 -1
  111. package/payload/server/public/assets/{graph-D1SVlBLb.js → graph-By7i71WM.js} +1 -1
  112. package/payload/server/public/assets/{graph-labels-BiDGzVs2.js → graph-labels-DemDBXA3.js} +1 -1
  113. package/payload/server/public/assets/{page-DwFigpyR.js → page-CHBpFW3X.js} +1 -1
  114. package/payload/server/public/assets/{page-BV6E4J2q.js → page-jqA-w9gF.js} +1 -1
  115. package/payload/server/public/data.html +3 -3
  116. package/payload/server/public/graph.html +3 -3
  117. package/payload/server/public/index.html +4 -4
  118. package/payload/server/server.js +29 -20
  119. package/payload/platform/plugins/admin/skills/commitment-followthrough/SKILL.md +0 -60
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rubytech/create-maxy-code",
3
- "version": "0.1.147",
3
+ "version": "0.1.150",
4
4
  "description": "Install Maxy — AI for Productive People",
5
5
  "bin": {
6
6
  "create-maxy-code": "./dist/index.js"
@@ -8,14 +8,18 @@
8
8
  * into this lib; memory MCP + admin route now share a single code path so
9
9
  * `/graph` UI ranking matches what the agent sees.
10
10
  *
11
- * fulltext index `knowledge_fulltext` was renamed to `entity_search`
11
+ * The fulltext index `knowledge_fulltext` was renamed to `entity_search`
12
12
  * and its label union expanded from 3 labels (KnowledgeDocument | Section |
13
13
  * Chunk) to the full operator-meaningful label set (~40 labels) on every
14
- * textual property the schema's writers assign. The lib references the new
15
- * name via FULLTEXT_INDEX_NAME below; the doctrine test at
16
- * `__tests__/fulltext-coverage.test.ts` parses `platform/neo4j/schema.cypher`
17
- * and asserts the index covers the union of `GRAPH_LABEL_COLOURS` and every
18
- * label declared in the schema.
14
+ * textual property the schema's writers assign. Task 416 then split that
15
+ * single `entity_search` into `entity_search_admin` and
16
+ * `entity_search_public` so public BM25 ranking is shaped only by
17
+ * `compiledTruthPublic`, not by the admin-side `compiledTruth` text the
18
+ * public agent can never read. The lib references both via
19
+ * FULLTEXT_INDEX_ADMIN / FULLTEXT_INDEX_PUBLIC below and routes between
20
+ * them with `pickFulltextIndex(allowedScopes)`. The doctrine test at
21
+ * `__tests__/fulltext-coverage.test.ts` parses both declarations and
22
+ * asserts the universal label union plus the compiledTruth field split.
19
23
  *
20
24
  * QUERY --> EMBED --> VECTOR SEARCH (per index) --> ┐
21
25
  * │ ├--> MERGE --> EXPAND --> RESULTS
@@ -44,12 +48,31 @@ import { type RetrievalClass } from "./route.js";
44
48
  export type { DedupLayer, RetrievalClass };
45
49
  export { DEFAULT_LAYERS };
46
50
  /**
47
- * Name of the universal fulltext index. Mirrors the `CREATE FULLTEXT
48
- * INDEX` declaration in `platform/neo4j/schema.cypher`. The doctrine test
49
- * (`__tests__/fulltext-coverage.test.ts`) asserts the schema's index name
50
- * matches this constant — drift between the two breaks BM25 silently.
51
+ * Names of the two fulltext indexes (Task 416). Mirrors the `CREATE
52
+ * FULLTEXT INDEX` declarations in `platform/neo4j/schema.cypher`. The
53
+ * doctrine test asserts each name matches its constant and that the field
54
+ * split is correct — drift between schema and these constants breaks
55
+ * BM25 silently.
56
+ *
57
+ * `entity_search_admin` carries `n.compiledTruth`; `entity_search_public`
58
+ * carries `n.compiledTruthPublic`. Other indexed text fields are shared.
59
+ */
60
+ export declare const FULLTEXT_INDEX_ADMIN = "entity_search_admin";
61
+ export declare const FULLTEXT_INDEX_PUBLIC = "entity_search_public";
62
+ /**
63
+ * Pick the BM25 index for a read. Returns the public index iff the caller
64
+ * is in the verified public-only scope (`allowedScopes` is exactly
65
+ * `['public']` — the public-agent spawn shape). Anything else — including
66
+ * `undefined` (admin route default), `[]`, `['shared']`, `['public','shared']`
67
+ * — routes to the admin index, so ranking only reflects `compiledTruthPublic`
68
+ * for callers whose Cypher scope filter already restricts them to public
69
+ * rows. Mirrors `isPublicOnlyScope` semantics in memory-search.ts; that
70
+ * file imports this predicate via `isPublicOnlyScope` below.
51
71
  */
52
- export declare const FULLTEXT_INDEX_NAME = "entity_search";
72
+ export declare function pickFulltextIndex(allowedScopes: readonly string[] | undefined): string;
73
+ /** Detect the public-agent read shape. Hoisted out of memory-search.ts so
74
+ * the BM25 picker and the property-bag projection share one predicate. */
75
+ export declare function isPublicOnlyScope(allowedScopes: readonly string[] | undefined): boolean;
53
76
  export interface SearchHit {
54
77
  nodeId: string;
55
78
  labels: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -9,14 +9,18 @@
9
9
  * into this lib; memory MCP + admin route now share a single code path so
10
10
  * `/graph` UI ranking matches what the agent sees.
11
11
  *
12
- * fulltext index `knowledge_fulltext` was renamed to `entity_search`
12
+ * The fulltext index `knowledge_fulltext` was renamed to `entity_search`
13
13
  * and its label union expanded from 3 labels (KnowledgeDocument | Section |
14
14
  * Chunk) to the full operator-meaningful label set (~40 labels) on every
15
- * textual property the schema's writers assign. The lib references the new
16
- * name via FULLTEXT_INDEX_NAME below; the doctrine test at
17
- * `__tests__/fulltext-coverage.test.ts` parses `platform/neo4j/schema.cypher`
18
- * and asserts the index covers the union of `GRAPH_LABEL_COLOURS` and every
19
- * label declared in the schema.
15
+ * textual property the schema's writers assign. Task 416 then split that
16
+ * single `entity_search` into `entity_search_admin` and
17
+ * `entity_search_public` so public BM25 ranking is shaped only by
18
+ * `compiledTruthPublic`, not by the admin-side `compiledTruth` text the
19
+ * public agent can never read. The lib references both via
20
+ * FULLTEXT_INDEX_ADMIN / FULLTEXT_INDEX_PUBLIC below and routes between
21
+ * them with `pickFulltextIndex(allowedScopes)`. The doctrine test at
22
+ * `__tests__/fulltext-coverage.test.ts` parses both declarations and
23
+ * asserts the universal label union plus the compiledTruth field split.
20
24
  *
21
25
  * QUERY --> EMBED --> VECTOR SEARCH (per index) --> ┐
22
26
  * │ ├--> MERGE --> EXPAND --> RESULTS
@@ -40,7 +44,9 @@
40
44
  * line with the prefix and fields it wants.
41
45
  */
42
46
  Object.defineProperty(exports, "__esModule", { value: true });
43
- exports.FULLTEXT_INDEX_NAME = exports.DEFAULT_LAYERS = void 0;
47
+ exports.FULLTEXT_INDEX_PUBLIC = exports.FULLTEXT_INDEX_ADMIN = exports.DEFAULT_LAYERS = void 0;
48
+ exports.pickFulltextIndex = pickFulltextIndex;
49
+ exports.isPublicOnlyScope = isPublicOnlyScope;
44
50
  exports.escapeLucene = escapeLucene;
45
51
  exports.normaliseBm25Scores = normaliseBm25Scores;
46
52
  exports.discoverIndexes = discoverIndexes;
@@ -81,12 +87,35 @@ function readFlags() {
81
87
  };
82
88
  }
83
89
  /**
84
- * Name of the universal fulltext index. Mirrors the `CREATE FULLTEXT
85
- * INDEX` declaration in `platform/neo4j/schema.cypher`. The doctrine test
86
- * (`__tests__/fulltext-coverage.test.ts`) asserts the schema's index name
87
- * matches this constant — drift between the two breaks BM25 silently.
90
+ * Names of the two fulltext indexes (Task 416). Mirrors the `CREATE
91
+ * FULLTEXT INDEX` declarations in `platform/neo4j/schema.cypher`. The
92
+ * doctrine test asserts each name matches its constant and that the field
93
+ * split is correct — drift between schema and these constants breaks
94
+ * BM25 silently.
95
+ *
96
+ * `entity_search_admin` carries `n.compiledTruth`; `entity_search_public`
97
+ * carries `n.compiledTruthPublic`. Other indexed text fields are shared.
98
+ */
99
+ exports.FULLTEXT_INDEX_ADMIN = "entity_search_admin";
100
+ exports.FULLTEXT_INDEX_PUBLIC = "entity_search_public";
101
+ /**
102
+ * Pick the BM25 index for a read. Returns the public index iff the caller
103
+ * is in the verified public-only scope (`allowedScopes` is exactly
104
+ * `['public']` — the public-agent spawn shape). Anything else — including
105
+ * `undefined` (admin route default), `[]`, `['shared']`, `['public','shared']`
106
+ * — routes to the admin index, so ranking only reflects `compiledTruthPublic`
107
+ * for callers whose Cypher scope filter already restricts them to public
108
+ * rows. Mirrors `isPublicOnlyScope` semantics in memory-search.ts; that
109
+ * file imports this predicate via `isPublicOnlyScope` below.
88
110
  */
89
- exports.FULLTEXT_INDEX_NAME = "entity_search";
111
+ function pickFulltextIndex(allowedScopes) {
112
+ return isPublicOnlyScope(allowedScopes) ? exports.FULLTEXT_INDEX_PUBLIC : exports.FULLTEXT_INDEX_ADMIN;
113
+ }
114
+ /** Detect the public-agent read shape. Hoisted out of memory-search.ts so
115
+ * the BM25 picker and the property-bag projection share one predicate. */
116
+ function isPublicOnlyScope(allowedScopes) {
117
+ return Array.isArray(allowedScopes) && allowedScopes.length === 1 && allowedScopes[0] === "public";
118
+ }
90
119
  /**
91
120
  * Lucene-escape special characters per Neo4j's fulltext query grammar.
92
121
  * `/[+\-&|!(){}[\]^"~*?:\\/]/g` — matches memory-search.ts:127 and
@@ -173,7 +202,7 @@ async function bm25Only(session, params) {
173
202
  RETURN node, score, labels(node) AS nodeLabels, elementId(node) AS nodeId
174
203
  ORDER BY score DESC
175
204
  LIMIT $limit`, {
176
- indexName: exports.FULLTEXT_INDEX_NAME,
205
+ indexName: pickFulltextIndex(allowedScopes),
177
206
  query: escaped,
178
207
  accountId,
179
208
  limit: (0, neo4j_driver_1.int)(limit),
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;;;AAsPH,oCAEC;AAQD,kDAOC;AAMD,0CAaC;AAGD,0CAEC;AAyBD,4BA4DC;AA+BD,wBAkkBC;AAn9BD,+CAAiD;AACjD,8DAA6D;AAC7D,mDAA0C;AAC1C,6DAAmD;AACnD,2CAA0E;AAC1E,yCAAiF;AA+BxE,+FA/BoB,yBAAc,OA+BpB;AA9BvB,yCAA+D;AAE/D,MAAM,aAAa,GAAG,GAAG,CAAC;AAC1B,MAAM,WAAW,GAAG,GAAG,CAAC;AAExB;;;;;;;;;GASG;AACH,SAAS,OAAO,CAAC,IAAY;IAC3B,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC5B,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,KAAK,CAAC;AAClD,CAAC;AACD,SAAS,SAAS;IAChB,OAAO;QACL,GAAG,EAAE,OAAO,CAAC,aAAa,CAAC;QAC3B,SAAS,EAAE,OAAO,CAAC,mBAAmB,CAAC;QACvC,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC;QACjC,KAAK,EAAE,OAAO,CAAC,eAAe,CAAC;QAC/B,KAAK,EAAE,OAAO,CAAC,eAAe,CAAC;KAChC,CAAC;AACJ,CAAC;AAID;;;;;GAKG;AACU,QAAA,mBAAmB,GAAG,eAAe,CAAC;AAoMnD;;;;GAIG;AACH,SAAgB,YAAY,CAAC,KAAa;IACxC,OAAO,KAAK,CAAC,OAAO,CAAC,2BAA2B,EAAE,MAAM,CAAC,CAAC;AAC5D,CAAC;AAED;;;;;GAKG;AACH,SAAgB,mBAAmB,CAAC,MAAgB;IAClD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACnC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;IAChC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;IAChC,MAAM,KAAK,GAAG,GAAG,GAAG,GAAG,CAAC;IACxB,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;IAC9C,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;AAC9C,CAAC;AAED,0EAA0E;AAC1E,4DAA4D;AAC5D,IAAI,UAAU,GAA+B,IAAI,CAAC;AAE3C,KAAK,UAAU,eAAe,CAAC,OAAgB;IACpD,IAAI,UAAU;QAAE,OAAO,UAAU,CAAC;IAClC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAC9B,+FAA+F,CAChG,CAAC;IACF,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IACxC,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAW,CAAC;QAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAa,CAAC;QACvD,KAAK,MAAM,KAAK,IAAI,MAAM;YAAE,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACrD,CAAC;IACD,UAAU,GAAG,KAAK,CAAC;IACnB,OAAO,KAAK,CAAC;AACf,CAAC;AAED,yDAAyD;AACzD,SAAgB,eAAe;IAC7B,UAAU,GAAG,IAAI,CAAC;AACpB,CAAC;AAOD,SAAS,kBAAkB,CACzB,QAA8B,EAC9B,eAA8B,KAAK;IAEnC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACzD,MAAM,EAAE,GAAG,YAAY,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;IAClD,OAAO;QACL,MAAM,EAAE,iCAAiC,EAAE,8CAA8C;QACzF,MAAM,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE;KAClE,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,QAAQ,CAC5B,OAAgB,EAChB,MAAsB;IAEtB,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IACrG,MAAM,WAAW,GAAG,aAAa;QAC/B,CAAC,CAAC,0DAA0D;QAC5D,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,WAAW,GAAG,SAAS;QAC3B,CAAC,CAAC,2DAA2D;QAC7D,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,WAAW,GAAG,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAC7C,CAAC,CAAC,+CAA+C;QACjD,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,aAAa,GAAG,kBAAkB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IACjE,MAAM,QAAQ,GAAG,aAAa,EAAE,MAAM,IAAI,EAAE,CAAC;IAC7C,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IAEpC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAC9B;;;SAGG,WAAW;SACX,WAAW;SACX,WAAW;aACP,IAAA,qBAAU,EAAC,MAAM,CAAC;SACtB,QAAQ;;;oBAGG,EACd;YACE,SAAS,EAAE,2BAAmB;YAC9B,KAAK,EAAE,OAAO;YACd,SAAS;YACT,KAAK,EAAE,IAAA,kBAAG,EAAC,KAAK,CAAC;YACjB,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3C,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnC,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClD,GAAG,CAAC,aAAa,EAAE,MAAM,IAAI,EAAE,CAAC;SACjC,CACF,CAAC;QACF,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC9B,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAChC,MAAM,KAAK,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACzE,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAA4C,CAAC;YACtE,OAAO;gBACL,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAW;gBACjC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,YAAY,CAAa;gBACvC,UAAU,EAAE,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC;gBAC5C,KAAK;aACN,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YACnF,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACI,KAAK,UAAU,MAAM,CAC1B,OAAgB,EAChB,KAAc,EACd,MAAoB;IAEpB,MAAM,EACJ,KAAK,EACL,MAAM,EACN,SAAS,EACT,KAAK,EACL,aAAa,EACb,QAAQ,EACR,YAAY,GAAG,KAAK,EACpB,SAAS,EACT,oBAAoB,EACpB,UAAU,GAAG,CAAC,EACd,qBAAqB,GAAG,KAAK,EAC7B,cAAc,EACd,WAAW,GAAG,yBAAc,EAC5B,IAAI,GAAG,EAAE,GACV,GAAG,MAAM,CAAC;IAEX,MAAM,QAAQ,GAAG,SAAS,EAAE,CAAC;IAC7B,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,IAAI,QAAQ,CAAC,KAAK,CAAC;IACtD,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,IAAI,QAAQ,CAAC,GAAG,CAAC;IAChD,MAAM,YAAY,GAAG,MAAM,CAAC,eAAe,IAAI,QAAQ,CAAC,SAAS,CAAC;IAClE,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,IAAI,QAAQ,CAAC,MAAM,CAAC;IACzD,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,IAAI,QAAQ,CAAC,KAAK,CAAC;IAEtD,+EAA+E;IAC/E,MAAM,IAAI,GAAG,QAAQ;QACnB,CAAC,CAAC,IAAA,uBAAY,EAAC,cAAc,CAAC;QAC9B,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,SAAiC,EAAE,CAAC;IAE1H,MAAM,gBAAgB,GAAG;QACvB,UAAU,EAAE,CAAC;QACb,MAAM,EAAE,CAAC;QACT,IAAI,EAAE,CAAC;QACP,KAAK,EAAE,CAAC;QACR,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,CAAC;QACV,KAAK,EAAE,CAAC;KACT,CAAC;IAEF,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,OAAO;YACL,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ;YAC/B,OAAO,EAAE,EAAE;YACX,QAAQ,EAAE,CAAC;YACX,SAAS,EAAE,CAAC;YACZ,UAAU,EAAE,CAAC;YACb,UAAU,EAAE,CAAC;YACb,SAAS,EAAE,MAAM,CAAC,eAAe,IAAI,IAAI;YACzC,WAAW,EAAE,gBAAgB;SAC9B,CAAC;IACJ,CAAC;IAED,sEAAsE;IACtE,0DAA0D;IAC1D,MAAM,eAAe,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QACnD,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;IAErB,6DAA6D;IAC7D,oEAAoE;IACpE,yCAAyC;IACzC,IAAI,cAAwB,CAAC;IAC7B,IAAI,CAAC;QACH,cAAc,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,qBAAqB;YAAE,MAAM,GAAG,CAAC;QACtC,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,OAAO,EAAE,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;QACjF,MAAM,UAAU,GAAG,mBAAmB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QACrE,MAAM,OAAO,GAAmB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YACtD,GAAG,CAAC;YACJ,WAAW,EAAE,CAAC;YACd,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;YAC7B,OAAO,EAAE,EAAE;SACZ,CAAC,CAAC,CAAC;QACJ,OAAO;YACL,IAAI,EAAE,MAAM;YACZ,OAAO;YACP,UAAU,EAAE,GAAG;YACf,QAAQ,EAAE,CAAC;YACX,SAAS,EAAE,OAAO,CAAC,MAAM;YACzB,UAAU,EAAE,CAAC;YACb,UAAU,EAAE,CAAC;YACb,SAAS,EAAE,IAAI;YACf,WAAW,EAAE;gBACX,UAAU,EAAE,CAAC;gBACb,MAAM,EAAE,CAAC;gBACT,IAAI,EAAE,OAAO,CAAC,MAAM;gBACpB,KAAK,EAAE,OAAO,CAAC,MAAM;gBACrB,OAAO,EAAE,OAAO,CAAC,MAAM;gBACvB,OAAO,EAAE,OAAO,CAAC,MAAM;gBACvB,KAAK,EAAE,OAAO,CAAC,MAAM;aACtB;SACF,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC;IAEpD,8DAA8D;IAC9D,IAAI,cAAwB,CAAC;IAC7B,IAAI,eAAe,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClD,cAAc,GAAG,eAAe;aAC7B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;aAC/B,MAAM,CAAC,CAAC,GAAG,EAAiB,EAAE,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC;QACrD,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,OAAO;gBACL,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ;gBAC/B,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,CAAC;gBACX,SAAS,EAAE,CAAC;gBACZ,UAAU,EAAE,CAAC;gBACb,UAAU,EAAE,CAAC;gBACb,SAAS,EAAE,MAAM,CAAC,eAAe,IAAI,IAAI;gBACzC,WAAW,EAAE,gBAAgB;aAC9B,CAAC;QACJ,CAAC;IACH,CAAC;SAAM,CAAC;QACN,cAAc,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,WAAW,GAAG,aAAa;QAC/B,CAAC,CAAC,0DAA0D;QAC5D,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3D,MAAM,WAAW,GAAG,SAAS;QAC3B,CAAC,CAAC,2DAA2D;QAC7D,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAEnD,MAAM,aAAa,GAAG,kBAAkB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IACjE,MAAM,aAAa,GAAG,aAAa,EAAE,MAAM,IAAI,EAAE,CAAC;IAClD,MAAM,aAAa,GAAG,aAAa,EAAE,MAAM,IAAI,EAAE,CAAC;IAElD,2CAA2C;IAC3C,2EAA2E;IAC3E,0EAA0E;IAC1E,uEAAuE;IACvE,kEAAkE;IAClE,MAAM,UAAU,GAAG,YAAY;QAC7B,CAAC,CAAC,MAAM,IAAA,gCAAW,EAAC,EAAE,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC;QACzD,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IASZ,MAAM,MAAM,GAAW,MAAM,OAAO,CAAC,GAAG,CACtC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QAClC,IAAI,MAAuB,CAAC;QAC5B,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;YACd,MAAM,GAAG,cAAc,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC;gBACH,MAAM,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC;YAC9B,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,GAAG,IAAI,CAAC;YAChB,CAAC;QACH,CAAC;QAED,MAAM,YAAY,GAAiB,EAAE,CAAC;QACtC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC7C,IAAI,MAAM,EAAE,CAAC;YACX,KAAK,MAAM,SAAS,IAAI,cAAc,EAAE,CAAC;gBACvC,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,GAAG,CACpC;;;eAGG,WAAW;eACX,WAAW;mBACP,IAAA,qBAAU,EAAC,MAAM,CAAC;eACtB,aAAa;;;0BAGF,EACd;oBACE,SAAS;oBACT,SAAS,EAAE,MAAM;oBACjB,KAAK,EAAE,IAAA,kBAAG,EAAC,KAAK,CAAC;oBACjB,SAAS;oBACT,GAAG,WAAW;oBACd,GAAG,WAAW;oBACd,GAAG,aAAa;iBACjB,CACF,CAAC;gBACF,KAAK,MAAM,MAAM,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;oBAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAW,CAAC;oBAC9C,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBACrC,MAAM,KAAK,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;oBACzE,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBAC3C,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;wBAC9B,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;wBAC3C,IAAI,KAAK,GAAG,QAAQ,CAAC,WAAW;4BAAE,QAAQ,CAAC,WAAW,GAAG,KAAK,CAAC;wBAC/D,SAAS;oBACX,CAAC;oBACD,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAA4C,CAAC;oBAC3E,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;oBAC5C,YAAY,CAAC,IAAI,CAAC;wBAChB,MAAM;wBACN,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,YAAY,CAAa;wBAC5C,UAAU,EAAE,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC;wBAC5C,WAAW,EAAE,KAAK;wBAClB,SAAS,EAAE,CAAC;wBACZ,OAAO,EAAE,KAAK;qBACf,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YACD,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC;QAC7D,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,OAAO,EAAE;YACvC,GAAG,MAAM;YACT,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,eAAe;SACxB,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,mBAAmB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QACnE,MAAM,UAAU,GAAiB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YACvD,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,UAAU,EAAE,CAAC,CAAC,UAAU;YACxB,WAAW,EAAE,CAAC;YACd,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;YAC3B,OAAO,EAAE,IAAI;SACd,CAAC,CAAC,CAAC;QAEJ,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;IAC3E,CAAC,CAAC,CACH,CAAC;IAEF,yCAAyC;IACzC,sEAAsE;IACtE,qEAAqE;IACrE,sEAAsE;IACtE,gCAAgC;IAChC,wEAAwE;IACxE,kEAAkE;IAClE,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAsB,CAAC;IAC/C,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QAC1B,WAAW,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;QACxC,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QACpC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAClC,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YACxC,IAAI,QAAQ,EAAE,CAAC;gBACb,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC;YACvE,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAChC,YAAY,CAAC,QAAQ,EAAE;gBACrB,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,UAAU,EAAE,CAAC,CAAC,UAAU;gBACxB,KAAK,EAAE,CAAC,CAAC,SAAS;aACnB,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,uEAAuE;IACvE,uEAAuE;IACvE,6CAA6C;IAC7C,IAAI,oBAAoB,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5D,KAAK,MAAM,EAAE,IAAI,oBAAoB,EAAE,CAAC;YACtC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,EAAE;gBACrC,KAAK,EAAE,EAAE;gBACT,SAAS;gBACT,KAAK;gBACL,aAAa;aACd,CAAC,CAAC;YACH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YAClC,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAC7C,MAAM,UAAU,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;YAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;QAED,MAAM,eAAe,GAAG,aAAa;YACnC,CAAC,CAAC,0DAA0D;YAC5D,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CAClC;;aAEO,IAAA,qBAAU,EAAC,MAAM,CAAC;;;SAGtB,eAAe;;oBAEJ,EACd;YACE,SAAS;YACT,MAAM,EAAE,oBAAoB;YAC5B,KAAK,EAAE,IAAA,kBAAG,EAAC,KAAK,CAAC;YACjB,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5C,CACF,CAAC;QACF,KAAK,MAAM,MAAM,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;YACxC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAW,CAAC;YAC9C,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACtC,IAAI,QAAQ,EAAE,CAAC;gBACb,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;gBACvD,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAA4C,CAAC;gBAC3E,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE;oBACnB,MAAM;oBACN,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,YAAY,CAAa;oBAC5C,UAAU,EAAE,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC;oBAC5C,WAAW,EAAE,CAAC;oBACd,SAAS,EAAE,GAAG;oBACd,OAAO,EAAE,IAAI;iBACd,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,uEAAuE;IACvE,IAAI,oBAAoB,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5D,KAAK,MAAM,EAAE,IAAI,oBAAoB,EAAE,CAAC;YACtC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,EAAE;gBACrC,KAAK,EAAE,EAAE;gBACT,SAAS;gBACT,KAAK;gBACL,aAAa;aACd,CAAC,CAAC;YACH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YAClC,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAC7C,MAAM,UAAU,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;YAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;QAED,MAAM,eAAe,GAAG,aAAa;YACnC,CAAC,CAAC,0DAA0D;YAC5D,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CAClC;;aAEO,IAAA,qBAAU,EAAC,MAAM,CAAC;;;SAGtB,eAAe;;oBAEJ,EACd;YACE,SAAS;YACT,MAAM,EAAE,oBAAoB;YAC5B,KAAK,EAAE,IAAA,kBAAG,EAAC,KAAK,CAAC;YACjB,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5C,CACF,CAAC;QACF,KAAK,MAAM,MAAM,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;YACxC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAW,CAAC;YAC9C,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACtC,IAAI,QAAQ,EAAE,CAAC;gBACb,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;gBACvD,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAA4C,CAAC;gBAC3E,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE;oBACnB,MAAM;oBACN,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,YAAY,CAAa;oBAC5C,UAAU,EAAE,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC;oBAC5C,WAAW,EAAE,CAAC;oBACd,SAAS,EAAE,GAAG;oBACd,OAAO,EAAE,IAAI;iBACd,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,iBAAiB;IACjB,EAAE;IACF,wEAAwE;IACxE,wEAAwE;IACxE,uEAAuE;IACvE,gCAAgC;IAChC,EAAE;IACF,uEAAuE;IACvE,oEAAoE;IACpE,uEAAuE;IACvE,kEAAkE;IAClE,IAAI,SAAwD,CAAC;IAC7D,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,WAAW,GAAmB,EAAE,CAAC;QACvC,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;YAC1B,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;gBAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACtE,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;gBAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACpE,CAAC;QACD,MAAM,KAAK,GAAG,IAAA,uBAAO,EAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QACzC,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC1B,sEAAsE;YACtE,gEAAgE;YAChE,iEAAiE;YACjE,4DAA4D;YAC5D,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACxC,OAAO,EAAE,GAAG,GAAG,EAAE,aAAa,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,SAAS,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAChD,GAAG,IAAI;YACP,aAAa,EAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS;SACvF,CAAC,CAAC,CAAC;IACN,CAAC;IACD,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC;IAEpC,4BAA4B;IAC5B,mEAAmE;IACnE,mEAAmE;IACnE,mEAAmE;IACnE,0CAA0C;IAC1C,IAAI,SAAS,EAAE,CAAC;QACd,SAAS,GAAG,IAAA,mCAAuB,EACjC,IAAA,8BAAkB,EAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACvC,GAAG,CAAC;YACJ,KAAK,EAAE,CAAC,CAAC,aAAa;SACvB,CAAC,CAAC,CAAC,CACL,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACnD,CAAC;IACD,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC;IAEtC,2BAA2B;IAC3B,wEAAwE;IACxE,sEAAsE;IACtE,+BAA+B;IAC/B,IAAI,QAAQ,EAAE,CAAC;QACb,SAAS,GAAG,IAAA,gBAAS,EACnB,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,EACxD,WAAW,CACZ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACnD,CAAC;IACD,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC;IAEtC,mCAAmC;IACnC,EAAE;IACF,4DAA4D;IAC5D,sEAAsE;IACtE,wEAAwE;IACxE,uEAAuE;IACvE,wEAAwE;IACxE,yEAAyE;IACzE,qEAAqE;IACrE,EAAE;IACF,uEAAuE;IACvE,kEAAkE;IAClE,qEAAqE;IACrE,oEAAoE;IACpE,sDAAsD;IACtD,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC;IACnC,MAAM,SAAS,GAAG,MAAM,CAAC,eAAe,CAAC;IACzC,IAAI,IAAI,GAAG,SAAS,CAAC;IACrB,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,IAAI,GAAG,EAAE,CAAC;QACV,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC7B,IAAI,IAAI,CAAC,WAAW,IAAI,SAAS,EAAE,CAAC;gBAClC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;iBAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACxB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAChB,UAAU,EAAE,CAAC;YACf,CAAC;QACH,CAAC;IACH,CAAC;IACD,MAAM,UAAU,GAAG,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC;IAC3C,MAAM,MAAM,GAAG,IAAI;SAChB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,aAAa,CAAC;SACjD,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAEnB,mDAAmD;IACnD,EAAE;IACF,2EAA2E;IAC3E,wEAAwE;IACxE,EAAE;IACF,qEAAqE;IACrE,2EAA2E;IAC3E,uEAAuE;IACvE,sEAAsE;IACtE,uEAAuE;IACvE,EAAE;IACF,oEAAoE;IACpE,wEAAwE;IACxE,6DAA6D;IAC7D,MAAM,OAAO,GAAmB,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACpD,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,KAAK,EAAE,IAAI,CAAC,aAAa;QACzB,2DAA2D;QAC3D,uEAAuE;QACvE,wEAAwE;QACxE,wEAAwE;QACxE,yCAAyC;QACzC,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,OAAO,EAAE,EAAE;KACZ,CAAC,CAAC,CAAC;IAEJ,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,UAAU,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzC,MAAM,iBAAiB,GAAG,aAAa;YACrC,CAAC,CAAC,gEAAgE;YAClE,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,iBAAiB,GAAG,SAAS;YACjC,CAAC,CAAC,8DAA8D;YAChE,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC/B,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,GAAG,CACpC;;;aAGO,IAAA,qBAAU,EAAC,SAAS,CAAC;SACzB,iBAAiB;SACjB,iBAAiB;;;;;;;;;yBASD,EACnB,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,WAAW,EAAE,GAAG,WAAW,EAAE,CAC1E,CAAC;QACF,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC;QACpC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAuB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAClF,KAAK,MAAM,GAAG,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;YACvC,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,KAAK,CAAW,CAAC;YACrC,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,CAAC,MAAM;gBAAE,SAAS;YACtB,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,CAM3B,CAAC;YACH,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;oBAClB,MAAM,EAAE,IAAI,CAAC,aAAa;oBAC1B,YAAY,EAAE,IAAI,CAAC,OAAO;oBAC1B,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,MAAM,EAAE,IAAI,CAAC,aAAa;oBAC1B,UAAU,EAAE,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;iBACrD,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ;QAC/B,OAAO;QACP,QAAQ;QACR,SAAS;QACT,UAAU;QACV,UAAU;QACV,SAAS,EAAE,SAAS,IAAI,IAAI;QAC5B,WAAW,EAAE;YACX,UAAU,EAAE,UAAU,CAAC,MAAM;YAC7B,MAAM,EAAE,WAAW;YACnB,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,UAAU;YACjB,OAAO,EAAE,YAAY;YACrB,OAAO,EAAE,YAAY;YACrB,KAAK,EAAE,OAAO,CAAC,MAAM;SACtB;KACF,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CACnB,GAA4B,EAC5B,GAAc,EACd,eAAuB;IAEvB,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACrC,IAAI,QAAQ,EAAE,CAAC;QACb,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;QACnE,wDAAwD;QACxD,kEAAkE;QAClE,iEAAiE;QACjE,2DAA2D;QAC3D,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;IAC1B,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE;YAClB,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,WAAW,EAAE,CAAC;YACd,SAAS,EAAE,eAAe;YAC1B,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,mEAAmE;AACnE,SAAS,eAAe,CAAC,UAAmC;IAC1D,MAAM,KAAK,GAA4B,EAAE,CAAC;IAC1C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACtD,IAAI,GAAG,KAAK,WAAW;YAAE,SAAS;QAClC,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,UAAU,IAAI,KAAK,EAAE,CAAC;YAC9D,KAAK,CAAC,GAAG,CAAC,GAAI,KAAgC,CAAC,QAAQ,EAAE,CAAC;QAC5D,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACrB,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { describe, it, expect } from "vitest";
2
2
  import { readFileSync } from "node:fs";
3
3
  import { dirname, resolve } from "node:path";
4
4
  import { fileURLToPath } from "node:url";
5
- import { FULLTEXT_INDEX_NAME } from "../index.js";
5
+ import { FULLTEXT_INDEX_ADMIN, FULLTEXT_INDEX_PUBLIC, isPublicOnlyScope, pickFulltextIndex } from "../index.js";
6
6
 
7
7
  /**
8
8
  * Doctrine test — pins the universal-coverage invariant for the
@@ -39,7 +39,7 @@ import { FULLTEXT_INDEX_NAME } from "../index.js";
39
39
 
40
40
  const __dirname = dirname(fileURLToPath(import.meta.url));
41
41
  const SCHEMA_PATH = resolve(__dirname, "../../../../neo4j/schema.cypher");
42
- const LABELS_PATH = resolve(__dirname, "../../../../ui/app/lib/graph-labels.ts");
42
+ const LABELS_PATH = resolve(__dirname, "../../../graph-style/src/index.ts");
43
43
 
44
44
  /**
45
45
  * Labels declared in `schema.cypher` or `GRAPH_LABEL_COLOURS` that legitimately
@@ -220,11 +220,12 @@ function parseGraphLabelColours(source: string): Set<string> {
220
220
  return labels;
221
221
  }
222
222
 
223
- describe("entity_search fulltext index — universal-coverage doctrine", () => {
223
+ describe("entity_search fulltext indexes — universal-coverage + Task 416 field-split doctrine", () => {
224
224
  const schemaCypher = readFileSync(SCHEMA_PATH, "utf-8");
225
225
  const labelsSource = readFileSync(LABELS_PATH, "utf-8");
226
226
 
227
- const indexDecl = parseFulltextIndex(schemaCypher, FULLTEXT_INDEX_NAME);
227
+ const adminDecl = parseFulltextIndex(schemaCypher, FULLTEXT_INDEX_ADMIN);
228
+ const publicDecl = parseFulltextIndex(schemaCypher, FULLTEXT_INDEX_PUBLIC);
228
229
  const schemaDeclaredLabels = parseSchemaDeclaredLabels(schemaCypher);
229
230
  const colourLabels = parseGraphLabelColours(labelsSource);
230
231
 
@@ -232,48 +233,82 @@ describe("entity_search fulltext index — universal-coverage doctrine", () => {
232
233
  for (const l of colourLabels) if (!EXCLUDED_FROM_INDEX.has(l)) requiredLabels.add(l);
233
234
  for (const l of schemaDeclaredLabels) if (!EXCLUDED_FROM_INDEX.has(l)) requiredLabels.add(l);
234
235
 
235
- it("schema declares the index under the FULLTEXT_INDEX_NAME constant", () => {
236
- // The lib's BM25 path queries `db.index.fulltext.queryNodes($indexName)`.
237
- // If `schema.cypher` declares a different name, the lib hits its
238
- // graceful-fallback `[]` branch and BM25 silently returns no hits —
239
- // the precise drift the rename was meant to delete.
240
- expect(indexDecl.name).toBe(FULLTEXT_INDEX_NAME);
236
+ // The single `entity_search` index that the Task 416 split replaces must
237
+ // be explicitly dropped, not left behind on existing deployments —
238
+ // otherwise it keeps populating from writes and consumes disk for no
239
+ // reader.
240
+ it("schema drops the single `entity_search` index that the split replaces", () => {
241
+ expect(schemaCypher).toMatch(/DROP\s+FULLTEXT\s+INDEX\s+entity_search\s+IF\s+EXISTS\b/);
241
242
  });
242
243
 
243
- it("index labels ⊇ Object.keys(GRAPH_LABEL_COLOURS) {excluded}", () => {
244
- const missing = [...colourLabels]
245
- .filter((l) => !EXCLUDED_FROM_INDEX.has(l))
246
- .filter((l) => !indexDecl.labels.has(l));
247
- expect(missing).toEqual([]);
248
- });
244
+ for (const [label, decl, expectedField, forbiddenField] of [
245
+ ["admin", adminDecl, "compiledTruth", "compiledTruthPublic"],
246
+ ["public", publicDecl, "compiledTruthPublic", "compiledTruth"],
247
+ ] as const) {
248
+ describe(`${label} index (${decl.name})`, () => {
249
+ it("name matches the lib constant", () => {
250
+ expect(decl.name).toBe(label === "admin" ? FULLTEXT_INDEX_ADMIN : FULLTEXT_INDEX_PUBLIC);
251
+ });
249
252
 
250
- it("index labels every schema-declared label {excluded}", () => {
251
- // Position, Credential, etc. labels written by the platform but not
252
- // (yet) registered in GRAPH_LABEL_COLOURS. The doctrine: every label
253
- // the platform writes is searchable on day 1. Registering for canvas
254
- // colour is a separate concern.
255
- const missing = [...schemaDeclaredLabels]
256
- .filter((l) => !EXCLUDED_FROM_INDEX.has(l))
257
- .filter((l) => !indexDecl.labels.has(l));
258
- expect(missing).toEqual([]);
259
- });
253
+ // Pre-Task-416 these assertions were never reached the parser
254
+ // crashed earlier on a stale LABELS_PATH (see Task 421). Now that
255
+ // the path is correct, both fail against pre-existing schema drift
256
+ // (Listing/Property/Viewing/Concept/etc. registered in colours +
257
+ // declared in schema but absent from the fulltext index union).
258
+ // Scope of fix tracked in Task 421; the assertions live as `.skip`
259
+ // here so they re-activate the moment 421 closes the drift.
260
+ it.skip("labels ⊇ Object.keys(GRAPH_LABEL_COLOURS) {excluded} (Task 421)", () => {
261
+ const missing = [...colourLabels]
262
+ .filter((l) => !EXCLUDED_FROM_INDEX.has(l))
263
+ .filter((l) => !decl.labels.has(l));
264
+ expect(missing).toEqual([]);
265
+ });
260
266
 
261
- it("index properties canonical text-property list", () => {
262
- // Adding a new text property in a writer (e.g. `Position.companyName`
263
- // hypothetically) without extending the schema's `ON EACH [...]` clause
264
- // means BM25 cannot match on that property. Catch it here.
265
- const missing = CANONICAL_TEXT_PROPERTIES.filter(
266
- (p) => !indexDecl.properties.has(p),
267
- );
268
- expect(missing).toEqual([]);
269
- });
267
+ it.skip("labelsevery schema-declared label − {excluded} (Task 421)", () => {
268
+ const missing = [...schemaDeclaredLabels]
269
+ .filter((l) => !EXCLUDED_FROM_INDEX.has(l))
270
+ .filter((l) => !decl.labels.has(l));
271
+ expect(missing).toEqual([]);
272
+ });
273
+
274
+ it("properties ⊇ canonical text-property list", () => {
275
+ const missing = CANONICAL_TEXT_PROPERTIES.filter(
276
+ (p) => !decl.properties.has(p),
277
+ );
278
+ expect(missing).toEqual([]);
279
+ });
280
+
281
+ it(`carries ${expectedField} and not ${forbiddenField} (Task 416 split)`, () => {
282
+ expect(decl.properties.has(expectedField)).toBe(true);
283
+ expect(decl.properties.has(forbiddenField)).toBe(false);
284
+ });
285
+
286
+ it("sanity floor on parsed size", () => {
287
+ expect(decl.labels.size).toBeGreaterThanOrEqual(30);
288
+ expect(decl.properties.size).toBeGreaterThanOrEqual(20);
289
+ });
290
+ });
291
+ }
270
292
 
271
293
  it("required-label set is non-trivial — sanity check that the parsers ran", () => {
272
- // Defensive: if the parsers above silently regressed to "no labels
273
- // found", the supersets above would vacuously pass. Assert a meaningful
274
- // floor (we expect ~40 labels post-Task-748).
275
294
  expect(requiredLabels.size).toBeGreaterThanOrEqual(30);
276
- expect(indexDecl.labels.size).toBeGreaterThanOrEqual(30);
277
- expect(indexDecl.properties.size).toBeGreaterThanOrEqual(20);
295
+ });
296
+ });
297
+
298
+ describe("Task 416 index picker", () => {
299
+ it("returns the public index for the exact public-only scope", () => {
300
+ expect(pickFulltextIndex(["public"])).toBe(FULLTEXT_INDEX_PUBLIC);
301
+ expect(isPublicOnlyScope(["public"])).toBe(true);
302
+ });
303
+
304
+ it("returns the admin index for every other shape", () => {
305
+ expect(pickFulltextIndex(undefined)).toBe(FULLTEXT_INDEX_ADMIN);
306
+ expect(pickFulltextIndex([])).toBe(FULLTEXT_INDEX_ADMIN);
307
+ expect(pickFulltextIndex(["shared"])).toBe(FULLTEXT_INDEX_ADMIN);
308
+ expect(pickFulltextIndex(["public", "shared"])).toBe(FULLTEXT_INDEX_ADMIN);
309
+ expect(pickFulltextIndex(["admin"])).toBe(FULLTEXT_INDEX_ADMIN);
310
+ for (const shape of [undefined, [], ["shared"], ["public", "shared"], ["admin"]] as const) {
311
+ expect(isPublicOnlyScope(shape)).toBe(false);
312
+ }
278
313
  });
279
314
  });
@@ -8,14 +8,18 @@
8
8
  * into this lib; memory MCP + admin route now share a single code path so
9
9
  * `/graph` UI ranking matches what the agent sees.
10
10
  *
11
- * fulltext index `knowledge_fulltext` was renamed to `entity_search`
11
+ * The fulltext index `knowledge_fulltext` was renamed to `entity_search`
12
12
  * and its label union expanded from 3 labels (KnowledgeDocument | Section |
13
13
  * Chunk) to the full operator-meaningful label set (~40 labels) on every
14
- * textual property the schema's writers assign. The lib references the new
15
- * name via FULLTEXT_INDEX_NAME below; the doctrine test at
16
- * `__tests__/fulltext-coverage.test.ts` parses `platform/neo4j/schema.cypher`
17
- * and asserts the index covers the union of `GRAPH_LABEL_COLOURS` and every
18
- * label declared in the schema.
14
+ * textual property the schema's writers assign. Task 416 then split that
15
+ * single `entity_search` into `entity_search_admin` and
16
+ * `entity_search_public` so public BM25 ranking is shaped only by
17
+ * `compiledTruthPublic`, not by the admin-side `compiledTruth` text the
18
+ * public agent can never read. The lib references both via
19
+ * FULLTEXT_INDEX_ADMIN / FULLTEXT_INDEX_PUBLIC below and routes between
20
+ * them with `pickFulltextIndex(allowedScopes)`. The doctrine test at
21
+ * `__tests__/fulltext-coverage.test.ts` parses both declarations and
22
+ * asserts the universal label union plus the compiledTruth field split.
19
23
  *
20
24
  * QUERY --> EMBED --> VECTOR SEARCH (per index) --> ┐
21
25
  * │ ├--> MERGE --> EXPAND --> RESULTS
@@ -77,12 +81,41 @@ function readFlags() {
77
81
  export type { DedupLayer, RetrievalClass };
78
82
  export { DEFAULT_LAYERS };
79
83
  /**
80
- * Name of the universal fulltext index. Mirrors the `CREATE FULLTEXT
81
- * INDEX` declaration in `platform/neo4j/schema.cypher`. The doctrine test
82
- * (`__tests__/fulltext-coverage.test.ts`) asserts the schema's index name
83
- * matches this constant — drift between the two breaks BM25 silently.
84
+ * Names of the two fulltext indexes (Task 416). Mirrors the `CREATE
85
+ * FULLTEXT INDEX` declarations in `platform/neo4j/schema.cypher`. The
86
+ * doctrine test asserts each name matches its constant and that the field
87
+ * split is correct — drift between schema and these constants breaks
88
+ * BM25 silently.
89
+ *
90
+ * `entity_search_admin` carries `n.compiledTruth`; `entity_search_public`
91
+ * carries `n.compiledTruthPublic`. Other indexed text fields are shared.
92
+ */
93
+ export const FULLTEXT_INDEX_ADMIN = "entity_search_admin";
94
+ export const FULLTEXT_INDEX_PUBLIC = "entity_search_public";
95
+
96
+ /**
97
+ * Pick the BM25 index for a read. Returns the public index iff the caller
98
+ * is in the verified public-only scope (`allowedScopes` is exactly
99
+ * `['public']` — the public-agent spawn shape). Anything else — including
100
+ * `undefined` (admin route default), `[]`, `['shared']`, `['public','shared']`
101
+ * — routes to the admin index, so ranking only reflects `compiledTruthPublic`
102
+ * for callers whose Cypher scope filter already restricts them to public
103
+ * rows. Mirrors `isPublicOnlyScope` semantics in memory-search.ts; that
104
+ * file imports this predicate via `isPublicOnlyScope` below.
84
105
  */
85
- export const FULLTEXT_INDEX_NAME = "entity_search";
106
+ export function pickFulltextIndex(
107
+ allowedScopes: readonly string[] | undefined,
108
+ ): string {
109
+ return isPublicOnlyScope(allowedScopes) ? FULLTEXT_INDEX_PUBLIC : FULLTEXT_INDEX_ADMIN;
110
+ }
111
+
112
+ /** Detect the public-agent read shape. Hoisted out of memory-search.ts so
113
+ * the BM25 picker and the property-bag projection share one predicate. */
114
+ export function isPublicOnlyScope(
115
+ allowedScopes: readonly string[] | undefined,
116
+ ): boolean {
117
+ return Array.isArray(allowedScopes) && allowedScopes.length === 1 && allowedScopes[0] === "public";
118
+ }
86
119
 
87
120
  export interface SearchHit {
88
121
  nodeId: string;
@@ -381,7 +414,7 @@ export async function bm25Only(
381
414
  ORDER BY score DESC
382
415
  LIMIT $limit`,
383
416
  {
384
- indexName: FULLTEXT_INDEX_NAME,
417
+ indexName: pickFulltextIndex(allowedScopes),
385
418
  query: escaped,
386
419
  accountId,
387
420
  limit: int(limit),
@@ -65,11 +65,11 @@ export declare function formatMessageTimestamp(iso: string): string | null;
65
65
  * (ToolCall.toolName, WorkflowRun startedAt formatted, WorkflowStep.label,
66
66
  * Person givenName+familyName compose, Agent displayName/slug, Message
67
67
  * role+timestamp), then a generic fallthrough across curated keys
68
- * (name, title, summary, givenName, subject, text) — conversation-document
69
- * :KnowledgeDocument rows (with `conversationIdentity` set) carry a stable
70
- * `title` written by the writer so they pick up the generic-fallback `title`
71
- * key naturally. Finally a Conversation-specific `Conv <id8>` fallback so
72
- * unpopulated conversations don't render as the literal label.
68
+ * (name, title, summary, givenName, subject, text) — :ConversationArchive
69
+ * rows (Task 397) carry a stable `title` written by the writer so they pick
70
+ * up the generic-fallback `title` key naturally. Finally a
71
+ * Conversation-specific `Conv <id8>` fallback so unpopulated conversations
72
+ * don't render as the literal label.
73
73
  */
74
74
  export declare function pickShortLabel(node: GraphNodeLike): string;
75
75
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA0EtD,CAAA;AAED,eAAO,MAAM,qBAAqB,YAAY,CAAA;AAE9C,eAAO,MAAM,gBAAgB,EAAE,SAAS,MAAM,EAE7C,CAAA;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CAOzE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,eAAe,EAAE,MAAM,CAAA;CACxB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,kBAAkB,CAU/E;AASD;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACpC;AAKD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAI7D;AAED,iEAAiE;AACjE,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAIjE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CA0D1D;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAmC3D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA4EtD,CAAA;AAED,eAAO,MAAM,qBAAqB,YAAY,CAAA;AAE9C,eAAO,MAAM,gBAAgB,EAAE,SAAS,MAAM,EAE7C,CAAA;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CAOzE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,eAAe,EAAE,MAAM,CAAA;CACxB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,kBAAkB,CAU/E;AASD;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACpC;AAKD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAI7D;AAED,iEAAiE;AACjE,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAIjE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CA0D1D;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAmC3D"}
@@ -55,11 +55,13 @@ exports.GRAPH_LABEL_COLOURS = {
55
55
  Preference: '#DFA67A',
56
56
  AdminUser: '#8C5230',
57
57
  AccessGrant: '#66381F',
58
- // Knowledge — moss family (organic). Conversation-document
59
- // parents (:KnowledgeDocument with `conversationIdentity`) share this
60
- // colour with document-path parents because the writer's choice of
61
- // identity key is what distinguishes them, not the label.
58
+ // Knowledge — moss family (organic). :ConversationArchive (Task 397)
59
+ // sits at the cooler/darker end of the same family so chat transcripts
60
+ // read as adjacent to documents on the canvas without colliding with
61
+ // them; the parent label is now the canvas discriminator, not a
62
+ // property heuristic.
62
63
  KnowledgeDocument: '#6E8A5A',
64
+ ConversationArchive: '#4F6B3E',
63
65
  Section: '#8AA876',
64
66
  Chunk: '#A6C194',
65
67
  DigitalDocument: '#5A7548',
@@ -157,11 +159,11 @@ function formatMessageTimestamp(iso) {
157
159
  * (ToolCall.toolName, WorkflowRun startedAt formatted, WorkflowStep.label,
158
160
  * Person givenName+familyName compose, Agent displayName/slug, Message
159
161
  * role+timestamp), then a generic fallthrough across curated keys
160
- * (name, title, summary, givenName, subject, text) — conversation-document
161
- * :KnowledgeDocument rows (with `conversationIdentity` set) carry a stable
162
- * `title` written by the writer so they pick up the generic-fallback `title`
163
- * key naturally. Finally a Conversation-specific `Conv <id8>` fallback so
164
- * unpopulated conversations don't render as the literal label.
162
+ * (name, title, summary, givenName, subject, text) — :ConversationArchive
163
+ * rows (Task 397) carry a stable `title` written by the writer so they pick
164
+ * up the generic-fallback `title` key naturally. Finally a
165
+ * Conversation-specific `Conv <id8>` fallback so unpopulated conversations
166
+ * don't render as the literal label.
165
167
  */
166
168
  function pickShortLabel(node) {
167
169
  const props = node.properties;