@carlonicora/nestjs-neo4jsonapi 3.1.1 → 3.2.0

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 (54) hide show
  1. package/dist/agents/graph/graph.module.d.ts.map +1 -1
  2. package/dist/agents/graph/graph.module.js +8 -1
  3. package/dist/agents/graph/graph.module.js.map +1 -1
  4. package/dist/agents/graph/interfaces/graph.catalog.interface.d.ts +8 -0
  5. package/dist/agents/graph/interfaces/graph.catalog.interface.d.ts.map +1 -1
  6. package/dist/agents/graph/prompts/graph.node.system.prompt.d.ts +1 -1
  7. package/dist/agents/graph/prompts/graph.node.system.prompt.d.ts.map +1 -1
  8. package/dist/agents/graph/prompts/graph.node.system.prompt.js +4 -2
  9. package/dist/agents/graph/prompts/graph.node.system.prompt.js.map +1 -1
  10. package/dist/agents/graph/services/field-formatting.d.ts +41 -7
  11. package/dist/agents/graph/services/field-formatting.d.ts.map +1 -1
  12. package/dist/agents/graph/services/field-formatting.js +111 -17
  13. package/dist/agents/graph/services/field-formatting.js.map +1 -1
  14. package/dist/agents/graph/services/graph.catalog.service.d.ts +3 -0
  15. package/dist/agents/graph/services/graph.catalog.service.d.ts.map +1 -1
  16. package/dist/agents/graph/services/graph.catalog.service.js +38 -5
  17. package/dist/agents/graph/services/graph.catalog.service.js.map +1 -1
  18. package/dist/agents/graph/services/materialise-bridge.d.ts +4 -1
  19. package/dist/agents/graph/services/materialise-bridge.d.ts.map +1 -1
  20. package/dist/agents/graph/services/materialise-bridge.js +10 -7
  21. package/dist/agents/graph/services/materialise-bridge.js.map +1 -1
  22. package/dist/agents/graph/services/related-edges.service.d.ts +40 -0
  23. package/dist/agents/graph/services/related-edges.service.d.ts.map +1 -0
  24. package/dist/agents/graph/services/related-edges.service.js +61 -0
  25. package/dist/agents/graph/services/related-edges.service.js.map +1 -0
  26. package/dist/agents/graph/tools/describe-entity.tool.d.ts.map +1 -1
  27. package/dist/agents/graph/tools/describe-entity.tool.js +1 -0
  28. package/dist/agents/graph/tools/describe-entity.tool.js.map +1 -1
  29. package/dist/agents/graph/tools/read-entity.tool.d.ts +5 -3
  30. package/dist/agents/graph/tools/read-entity.tool.d.ts.map +1 -1
  31. package/dist/agents/graph/tools/read-entity.tool.js +33 -10
  32. package/dist/agents/graph/tools/read-entity.tool.js.map +1 -1
  33. package/dist/agents/graph/tools/search-entities.tool.d.ts +3 -1
  34. package/dist/agents/graph/tools/search-entities.tool.d.ts.map +1 -1
  35. package/dist/agents/graph/tools/search-entities.tool.js +24 -13
  36. package/dist/agents/graph/tools/search-entities.tool.js.map +1 -1
  37. package/dist/agents/graph/tools/traverse.tool.d.ts +16 -1
  38. package/dist/agents/graph/tools/traverse.tool.d.ts.map +1 -1
  39. package/dist/agents/graph/tools/traverse.tool.js +123 -12
  40. package/dist/agents/graph/tools/traverse.tool.js.map +1 -1
  41. package/dist/agents/index.d.ts +2 -0
  42. package/dist/agents/index.d.ts.map +1 -1
  43. package/dist/agents/index.js +6 -2
  44. package/dist/agents/index.js.map +1 -1
  45. package/dist/agents/operator/tools/entity-write.tools.d.ts +3 -0
  46. package/dist/agents/operator/tools/entity-write.tools.d.ts.map +1 -1
  47. package/dist/agents/operator/tools/entity-write.tools.js +6 -0
  48. package/dist/agents/operator/tools/entity-write.tools.js.map +1 -1
  49. package/dist/agents/responder/nodes/graph.node.service.d.ts.map +1 -1
  50. package/dist/agents/responder/nodes/graph.node.service.js +28 -19
  51. package/dist/agents/responder/nodes/graph.node.service.js.map +1 -1
  52. package/dist/common/interfaces/entity.schema.interface.d.ts +10 -0
  53. package/dist/common/interfaces/entity.schema.interface.d.ts.map +1 -1
  54. package/package.json +1 -1
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MATERIALISE_LIMIT = void 0;
4
4
  exports.materialiseBridge = materialiseBridge;
5
5
  const common_1 = require("@nestjs/common");
6
- const field_formatting_1 = require("./field-formatting");
7
6
  const logger = new common_1.Logger("materialiseBridge");
8
7
  /** Hard cap per cardinality-many materialised relationship. */
9
8
  exports.MATERIALISE_LIMIT = 50;
@@ -66,12 +65,16 @@ async function materialiseBridge(params) {
66
65
  const truncated = records.length > exports.MATERIALISE_LIMIT;
67
66
  const visible = records.slice(0, exports.MATERIALISE_LIMIT);
68
67
  const summariser = target.summary ?? ((d) => String(d.name ?? d.id));
69
- const materialised = visible.map((r) => ({
70
- id: r.id,
71
- type: target.type,
72
- summary: String(summariser(r)),
73
- fields: (0, field_formatting_1.buildToolFieldsOutput)(target.fields, r),
74
- }));
68
+ const materialised = visible.map((r) => {
69
+ const { fields, availableOnRead } = deps.formatter.build({ entity: target, record: r, stage: "list" });
70
+ return {
71
+ id: r.id,
72
+ type: target.type,
73
+ summary: String(summariser(r)),
74
+ fields,
75
+ ...(availableOnRead ? { availableOnRead } : {}),
76
+ };
77
+ });
75
78
  out[relName] = rel.cardinality === "one" ? (materialised[0] ?? null) : materialised;
76
79
  out.__materialised.push(relName);
77
80
  if (truncated) {
@@ -1 +1 @@
1
- {"version":3,"file":"materialise-bridge.js","sourceRoot":"","sources":["../../../../src/agents/graph/services/materialise-bridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"materialise-bridge.js","sourceRoot":"","sources":["../../../../src/agents/graph/services/materialise-bridge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import { Neo4jService } from "../../../core/neo4j/services/neo4j.service";
2
+ /**
3
+ * Edge-only lookup behind the polymorphic "related" traversal.
4
+ *
5
+ * This is a graph-tool-layer query, not a repository: it returns nothing but
6
+ * node ids and labels, and every id it yields is re-fetched afterwards through
7
+ * that type's own company-scoped service read (`AbstractService.findRecordById`
8
+ * → `buildDefaultMatch()`), which is where tenancy is enforced. The traverse
9
+ * tool also verifies the SOURCE record through the same company-scoped read
10
+ * before this service is consulted at all, so the walk starts from a node the
11
+ * caller is already entitled to see.
12
+ */
13
+ export declare class RelatedEdgesService {
14
+ private readonly neo4j;
15
+ constructor(neo4j: Neo4jService);
16
+ /**
17
+ * Ids and labels of every node linked to `id` by `cypherLabel`, in EITHER
18
+ * direction — a link recorded one way (a GM-drawn link) and the same pair
19
+ * recorded the other way (a mention) are the same relationship to the model.
20
+ * `DISTINCT` collapses a pair linked both ways into one row.
21
+ *
22
+ * `labelName` and `cypherLabel` are interpolated because Cypher cannot
23
+ * parameterise a node label or a relationship type. Neither value is ever
24
+ * user-controlled: both come from the compiled catalog
25
+ * (`CatalogEntity.labelName` / `CatalogRelationship.cypherLabel`), never from
26
+ * tool input. `id` and `limit` are real query parameters, and the
27
+ * hand-written LIMIT casts with `toInteger($limit)` because a JS number
28
+ * reaches the driver as a float ("11.0") and Cypher rejects it.
29
+ */
30
+ findRelatedIds(params: {
31
+ labelName: string;
32
+ id: string;
33
+ cypherLabel: string;
34
+ limit: number;
35
+ }): Promise<{
36
+ id: string;
37
+ label: string;
38
+ }[]>;
39
+ }
40
+ //# sourceMappingURL=related-edges.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"related-edges.service.d.ts","sourceRoot":"","sources":["../../../../src/agents/graph/services/related-edges.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAE1E;;;;;;;;;;GAUG;AACH,qBACa,mBAAmB;IAClB,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,YAAY;IAEhD;;;;;;;;;;;;;OAaG;IACG,cAAc,CAAC,MAAM,EAAE;QAC3B,SAAS,EAAE,MAAM,CAAC;QAClB,EAAE,EAAE,MAAM,CAAC;QACX,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;KACf,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAe7C"}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.RelatedEdgesService = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const neo4j_service_1 = require("../../../core/neo4j/services/neo4j.service");
15
+ /**
16
+ * Edge-only lookup behind the polymorphic "related" traversal.
17
+ *
18
+ * This is a graph-tool-layer query, not a repository: it returns nothing but
19
+ * node ids and labels, and every id it yields is re-fetched afterwards through
20
+ * that type's own company-scoped service read (`AbstractService.findRecordById`
21
+ * → `buildDefaultMatch()`), which is where tenancy is enforced. The traverse
22
+ * tool also verifies the SOURCE record through the same company-scoped read
23
+ * before this service is consulted at all, so the walk starts from a node the
24
+ * caller is already entitled to see.
25
+ */
26
+ let RelatedEdgesService = class RelatedEdgesService {
27
+ constructor(neo4j) {
28
+ this.neo4j = neo4j;
29
+ }
30
+ /**
31
+ * Ids and labels of every node linked to `id` by `cypherLabel`, in EITHER
32
+ * direction — a link recorded one way (a GM-drawn link) and the same pair
33
+ * recorded the other way (a mention) are the same relationship to the model.
34
+ * `DISTINCT` collapses a pair linked both ways into one row.
35
+ *
36
+ * `labelName` and `cypherLabel` are interpolated because Cypher cannot
37
+ * parameterise a node label or a relationship type. Neither value is ever
38
+ * user-controlled: both come from the compiled catalog
39
+ * (`CatalogEntity.labelName` / `CatalogRelationship.cypherLabel`), never from
40
+ * tool input. `id` and `limit` are real query parameters, and the
41
+ * hand-written LIMIT casts with `toInteger($limit)` because a JS number
42
+ * reaches the driver as a float ("11.0") and Cypher rejects it.
43
+ */
44
+ async findRelatedIds(params) {
45
+ const result = await this.neo4j.read(`
46
+ MATCH (source:${params.labelName} { id: $id })-[:${params.cypherLabel}]-(x)
47
+ RETURN DISTINCT x.id AS id, labels(x)[0] AS label
48
+ LIMIT toInteger($limit)
49
+ `, { id: params.id, limit: params.limit });
50
+ return (result?.records ?? []).map((record) => ({
51
+ id: record.get("id"),
52
+ label: record.get("label"),
53
+ }));
54
+ }
55
+ };
56
+ exports.RelatedEdgesService = RelatedEdgesService;
57
+ exports.RelatedEdgesService = RelatedEdgesService = __decorate([
58
+ (0, common_1.Injectable)(),
59
+ __metadata("design:paramtypes", [neo4j_service_1.Neo4jService])
60
+ ], RelatedEdgesService);
61
+ //# sourceMappingURL=related-edges.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"related-edges.service.js","sourceRoot":"","sources":["../../../../src/agents/graph/services/related-edges.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,8EAA0E;AAE1E;;;;;;;;;;GAUG;AAEI,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAC9B,YAA6B,KAAmB;QAAnB,UAAK,GAAL,KAAK,CAAc;IAAG,CAAC;IAEpD;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,cAAc,CAAC,MAKpB;QACC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAClC;sBACgB,MAAM,CAAC,SAAS,mBAAmB,MAAM,CAAC,WAAW;;;OAGpE,EACD,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CACvC,CAAC;QAEF,OAAQ,CAAE,MAAc,EAAE,OAAO,IAAI,EAAE,CAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAClE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;YACpB,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;SAC3B,CAAC,CAAC,CAAC;IACN,CAAC;CACF,CAAA;AArCY,kDAAmB;8BAAnB,mBAAmB;IAD/B,IAAA,mBAAU,GAAE;qCAEyB,4BAAY;GADrC,mBAAmB,CAqC/B"}
@@ -1 +1 @@
1
- {"version":3,"file":"describe-entity.tool.d.ts","sourceRoot":"","sources":["../../../../src/agents/graph/tools/describe-entity.tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE1E,QAAA,MAAM,WAAW;;iBAEf,CAAC;AAEH,OAAO,EAAE,WAAW,IAAI,yBAAyB,EAAE,CAAC;AAEpD,qBACa,kBAAkB;IACjB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,WAAW;IAEjD,KAAK,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,qBAAqB;IASpE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;CA6BjH"}
1
+ {"version":3,"file":"describe-entity.tool.d.ts","sourceRoot":"","sources":["../../../../src/agents/graph/tools/describe-entity.tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE1E,QAAA,MAAM,WAAW;;iBAEf,CAAC;AAEH,OAAO,EAAE,WAAW,IAAI,yBAAyB,EAAE,CAAC;AAEpD,qBACa,kBAAkB;IACjB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,WAAW;IAEjD,KAAK,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,qBAAqB;IASpE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;CA8BjH"}
@@ -45,6 +45,7 @@ let DescribeEntityTool = class DescribeEntityTool {
45
45
  filterable: f.filterable,
46
46
  sortable: f.sortable,
47
47
  ...(f.kind ? { kind: f.kind } : {}),
48
+ ...(entity.list ? { stage: entity.list.includes(f.name) ? "list" : "detail" } : {}),
48
49
  })),
49
50
  relationships: entity.relationships.map((r) => ({
50
51
  name: r.name,
@@ -1 +1 @@
1
- {"version":3,"file":"describe-entity.tool.js","sourceRoot":"","sources":["../../../../src/agents/graph/tools/describe-entity.tool.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,iDAA8D;AAC9D,6BAAwB;AACxB,iDAA0E;AAE1E,MAAM,WAAW,GAAG,OAAC,CAAC,MAAM,CAAC;IAC3B,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;CAClE,CAAC,CAAC;AAEqB,gDAAyB;AAG1C,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAC7B,YAA6B,OAAoB;QAApB,YAAO,GAAP,OAAO,CAAa;IAAG,CAAC;IAErD,KAAK,CAAC,GAAgB,EAAE,QAA0B;QAChD,OAAO,IAAI,6BAAqB,CAAC;YAC/B,IAAI,EAAE,iBAAiB;YACvB,WAAW,EAAE,oEAAoE;YACjF,MAAM,EAAE,WAAW;YACnB,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;SAC/E,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAkC,EAAE,GAAgB,EAAE,QAA0B;QAC3F,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CACzB,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,EAClC,KAAK,IAAI,EAAE;YACT,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAC3D,IAAI,OAAO,IAAI,MAAM;gBAAE,OAAO,MAAM,CAAC;YACrC,OAAO;gBACL,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAChC,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,WAAW,EAAE,CAAC,CAAC,WAAW;oBAC1B,UAAU,EAAE,CAAC,CAAC,UAAU;oBACxB,QAAQ,EAAE,CAAC,CAAC,QAAQ;oBACpB,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACpC,CAAC,CAAC;gBACH,aAAa,EAAE,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC9C,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,UAAU,EAAE,CAAC,CAAC,UAAU;oBACxB,WAAW,EAAE,CAAC,CAAC,WAAW;oBAC1B,WAAW,EAAE,CAAC,CAAC,WAAW;iBAC3B,CAAC,CAAC;gBACH,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,aAAa,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC1F,CAAC;QACJ,CAAC,EACD,QAAQ,CACT,CAAC;IACJ,CAAC;CACF,CAAA;AAzCY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,mBAAU,GAAE;qCAE2B,0BAAW;GADtC,kBAAkB,CAyC9B"}
1
+ {"version":3,"file":"describe-entity.tool.js","sourceRoot":"","sources":["../../../../src/agents/graph/tools/describe-entity.tool.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,iDAA8D;AAC9D,6BAAwB;AACxB,iDAA0E;AAE1E,MAAM,WAAW,GAAG,OAAC,CAAC,MAAM,CAAC;IAC3B,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;CAClE,CAAC,CAAC;AAEqB,gDAAyB;AAG1C,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAC7B,YAA6B,OAAoB;QAApB,YAAO,GAAP,OAAO,CAAa;IAAG,CAAC;IAErD,KAAK,CAAC,GAAgB,EAAE,QAA0B;QAChD,OAAO,IAAI,6BAAqB,CAAC;YAC/B,IAAI,EAAE,iBAAiB;YACvB,WAAW,EAAE,oEAAoE;YACjF,MAAM,EAAE,WAAW;YACnB,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;SAC/E,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAkC,EAAE,GAAgB,EAAE,QAA0B;QAC3F,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CACzB,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,EAClC,KAAK,IAAI,EAAE;YACT,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAC3D,IAAI,OAAO,IAAI,MAAM;gBAAE,OAAO,MAAM,CAAC;YACrC,OAAO;gBACL,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAChC,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,WAAW,EAAE,CAAC,CAAC,WAAW;oBAC1B,UAAU,EAAE,CAAC,CAAC,UAAU;oBACxB,QAAQ,EAAE,CAAC,CAAC,QAAQ;oBACpB,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACnC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACpF,CAAC,CAAC;gBACH,aAAa,EAAE,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC9C,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,UAAU,EAAE,CAAC,CAAC,UAAU;oBACxB,WAAW,EAAE,CAAC,CAAC,WAAW;oBAC1B,WAAW,EAAE,CAAC,CAAC,WAAW;iBAC3B,CAAC,CAAC;gBACH,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,aAAa,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC1F,CAAC;QACJ,CAAC,EACD,QAAQ,CACT,CAAC;IACJ,CAAC;CACF,CAAA;AA1CY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,mBAAU,GAAE;qCAE2B,0BAAW;GADtC,kBAAkB,CA0C9B"}
@@ -1,6 +1,7 @@
1
1
  import { DynamicStructuredTool } from "@langchain/core/tools";
2
2
  import { z } from "zod";
3
3
  import { ToolFactory, ToolCallRecord, UserContext } from "./tool.factory";
4
+ import { ToolFieldFormatterService } from "../services/field-formatting";
4
5
  import { GraphCatalogService } from "../services/graph.catalog.service";
5
6
  import { EntityServiceRegistry } from "../../../common/registries/entity.service.registry";
6
7
  import { ScopeGuard } from "../services/scope.guard";
@@ -15,9 +16,10 @@ export declare class ReadEntityTool {
15
16
  private readonly catalog;
16
17
  private readonly registry;
17
18
  private readonly scopeGuard;
18
- constructor(factory: ToolFactory, catalog: GraphCatalogService, registry: EntityServiceRegistry, scopeGuard: ScopeGuard);
19
- build(ctx: UserContext, recorder: ToolCallRecord[]): DynamicStructuredTool;
20
- invoke(input: z.infer<typeof inputSchema>, ctx: UserContext, recorder: ToolCallRecord[]): Promise<unknown>;
19
+ private readonly formatter;
20
+ constructor(factory: ToolFactory, catalog: GraphCatalogService, registry: EntityServiceRegistry, scopeGuard: ScopeGuard, formatter: ToolFieldFormatterService);
21
+ build(ctx: UserContext, recorder: ToolCallRecord[], readIds?: Set<string>): DynamicStructuredTool;
22
+ invoke(input: z.infer<typeof inputSchema>, ctx: UserContext, recorder: ToolCallRecord[], readIds?: Set<string>): Promise<unknown>;
21
23
  /**
22
24
  * Drop records outside the run's scope. An unscoped run short-circuits
23
25
  * before the guard is consulted — the same contract ScopeGuard.filter
@@ -1 +1 @@
1
- {"version":3,"file":"read-entity.tool.d.ts","sourceRoot":"","sources":["../../../../src/agents/graph/tools/read-entity.tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,oDAAoD,CAAC;AAC3F,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,QAAA,MAAM,WAAW;;;;iBAIf,CAAC;AAEH,OAAO,EAAE,WAAW,IAAI,qBAAqB,EAAE,CAAC;AAEhD,qBACa,cAAc;IAEvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAGzB,OAAO,CAAC,QAAQ,CAAC,UAAU;gBALV,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,mBAAmB,EAC5B,QAAQ,EAAE,qBAAqB,EAG/B,UAAU,EAAE,UAAU;IAGzC,KAAK,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,qBAAqB;IASpE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IA6GhH;;;;OAIG;YACW,aAAa;CAI5B"}
1
+ {"version":3,"file":"read-entity.tool.d.ts","sourceRoot":"","sources":["../../../../src/agents/graph/tools/read-entity.tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AAEzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,oDAAoD,CAAC;AAC3F,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,QAAA,MAAM,WAAW;;;;iBAIf,CAAC;AAEH,OAAO,EAAE,WAAW,IAAI,qBAAqB,EAAE,CAAC;AAEhD,qBACa,cAAc;IAEvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAG3B,OAAO,CAAC,QAAQ,CAAC,SAAS;gBANT,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,mBAAmB,EAC5B,QAAQ,EAAE,qBAAqB,EAC/B,UAAU,EAAE,UAAU,EAGtB,SAAS,EAAE,yBAAyB;IAGvD,KAAK,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,EAAE,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,qBAAqB;IAS3F,MAAM,CACV,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,EAClC,GAAG,EAAE,WAAW,EAChB,QAAQ,EAAE,cAAc,EAAE,EAC1B,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GACpB,OAAO,CAAC,OAAO,CAAC;IAmInB;;;;OAIG;YACW,aAAa;CAI5B"}
@@ -26,24 +26,25 @@ const inputSchema = zod_1.z.object({
26
26
  });
27
27
  exports.readEntityInputSchema = inputSchema;
28
28
  let ReadEntityTool = class ReadEntityTool {
29
- constructor(factory, catalog, registry,
30
- // ScopeGuard is deliberately the LAST constructor parameter so existing
31
- // positional call sites keep working.
32
- scopeGuard) {
29
+ constructor(factory, catalog, registry, scopeGuard,
30
+ // ToolFieldFormatterService is deliberately the LAST constructor parameter
31
+ // so existing positional call sites keep working.
32
+ formatter) {
33
33
  this.factory = factory;
34
34
  this.catalog = catalog;
35
35
  this.registry = registry;
36
36
  this.scopeGuard = scopeGuard;
37
+ this.formatter = formatter;
37
38
  }
38
- build(ctx, recorder) {
39
+ build(ctx, recorder, readIds) {
39
40
  return new tools_1.DynamicStructuredTool({
40
41
  name: "read_entity",
41
42
  description: "Fetches one record by id, optionally pulling related records across described relationships.",
42
43
  schema: inputSchema,
43
- func: async (input) => JSON.stringify(await this.invoke(input, ctx, recorder)),
44
+ func: async (input) => JSON.stringify(await this.invoke(input, ctx, recorder, readIds)),
44
45
  });
45
46
  }
46
- async invoke(input, ctx, recorder) {
47
+ async invoke(input, ctx, recorder, readIds) {
47
48
  const localMaterialised = [];
48
49
  const result = await this.factory.capture({ tool: "read_entity", input }, async () => {
49
50
  const described = recorder.some((c) => c.tool === "describe_entity" && c.input.type === input.type);
@@ -56,6 +57,18 @@ let ReadEntityTool = class ReadEntityTool {
56
57
  schema: { fields: entity.fields, relationships: entity.relationships },
57
58
  };
58
59
  }
60
+ // A repeat read of a record already fetched in full earlier in this
61
+ // pass costs nothing further — checked before the (async) scope guard
62
+ // and the record fetch itself (spec § "3b. read_entity dedup"). Scope
63
+ // is one llm.call pass: the graph node clears readIds before every
64
+ // retry pass, since a retry's message history no longer contains it.
65
+ const dedupKey = `${input.type}:${input.id}`;
66
+ if (readIds?.has(dedupKey)) {
67
+ return {
68
+ alreadyRead: true,
69
+ note: "This record was already returned in full earlier in this conversation — reuse it. Do not call read_entity for it again.",
70
+ };
71
+ }
59
72
  const validRels = new Set(entity.relationships.map((r) => r.name));
60
73
  for (const name of input.include ?? []) {
61
74
  if (!validRels.has(name)) {
@@ -107,7 +120,7 @@ let ReadEntityTool = class ReadEntityTool {
107
120
  }));
108
121
  }
109
122
  }
110
- const baseFields = (0, field_formatting_1.buildToolFieldsOutput)(entity.fields, record);
123
+ const { fields: baseFields } = this.formatter.build({ entity, record, stage: "detail" });
111
124
  // Bridge fanout: if this entity is a bridge, replace the bare payload with
112
125
  // the materialised one. The existing `include` block (if any) stacks on top
113
126
  // as a sibling `related` map — it carries summary refs, while the bridge
@@ -117,11 +130,20 @@ let ReadEntityTool = class ReadEntityTool {
117
130
  bridge: entity,
118
131
  record: { id: record.id, fields: baseFields },
119
132
  ctx,
120
- deps: { catalog: this.catalog, registry: this.registry, scopeGuard: this.scopeGuard },
133
+ deps: {
134
+ catalog: this.catalog,
135
+ registry: this.registry,
136
+ scopeGuard: this.scopeGuard,
137
+ formatter: this.formatter,
138
+ },
121
139
  onMaterialised: (relName, count) => localMaterialised.push({ relName, count }),
122
140
  });
141
+ // Armed only on a successful read (spec § "3b. read_entity dedup").
142
+ readIds?.add(dedupKey);
123
143
  return input.include?.length ? { ...materialised, related } : materialised;
124
144
  }
145
+ // Armed only on a successful read (spec § "3b. read_entity dedup").
146
+ readIds?.add(dedupKey);
125
147
  return {
126
148
  id: record.id,
127
149
  type: entity.type,
@@ -152,6 +174,7 @@ exports.ReadEntityTool = ReadEntityTool = __decorate([
152
174
  __metadata("design:paramtypes", [tool_factory_1.ToolFactory,
153
175
  graph_catalog_service_1.GraphCatalogService,
154
176
  entity_service_registry_1.EntityServiceRegistry,
155
- scope_guard_1.ScopeGuard])
177
+ scope_guard_1.ScopeGuard,
178
+ field_formatting_1.ToolFieldFormatterService])
156
179
  ], ReadEntityTool);
157
180
  //# sourceMappingURL=read-entity.tool.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"read-entity.tool.js","sourceRoot":"","sources":["../../../../src/agents/graph/tools/read-entity.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"read-entity.tool.js","sourceRoot":"","sources":["../../../../src/agents/graph/tools/read-entity.tool.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { z } from "zod";
3
3
  import { ToolFactory, ToolCallRecord, UserContext } from "./tool.factory";
4
4
  import { GraphSearchService } from "../services/graph.search.service";
5
5
  import { GraphCatalogService } from "../services/graph.catalog.service";
6
+ import { ToolFieldFormatterService } from "../services/field-formatting";
6
7
  import { EntityServiceRegistry } from "../../../common/registries/entity.service.registry";
7
8
  import { ScopeGuard } from "../services/scope.guard";
8
9
  declare const inputSchema: z.ZodObject<{
@@ -18,7 +19,8 @@ export declare class SearchEntitiesTool {
18
19
  private readonly catalog;
19
20
  private readonly registry;
20
21
  private readonly scopeGuard;
21
- constructor(factory: ToolFactory, _search: GraphSearchService, catalog: GraphCatalogService, registry: EntityServiceRegistry, scopeGuard: ScopeGuard);
22
+ private readonly formatter;
23
+ constructor(factory: ToolFactory, _search: GraphSearchService, catalog: GraphCatalogService, registry: EntityServiceRegistry, scopeGuard: ScopeGuard, formatter: ToolFieldFormatterService);
22
24
  build(ctx: UserContext, recorder: ToolCallRecord[]): DynamicStructuredTool;
23
25
  invoke(input: z.infer<typeof inputSchema>, ctx: UserContext, recorder: ToolCallRecord[]): Promise<unknown>;
24
26
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"search-entities.tool.d.ts","sourceRoot":"","sources":["../../../../src/agents/graph/tools/search-entities.tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAGxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,oDAAoD,CAAC;AAC3F,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAGrD,QAAA,MAAM,WAAW;;;;;kBAON,CAAC;AAEZ,OAAO,EAAE,WAAW,IAAI,yBAAyB,EAAE,CAAC;AAUpD,qBACa,kBAAkB;IAE3B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAGxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAGzB,OAAO,CAAC,QAAQ,CAAC,UAAU;gBARV,OAAO,EAAE,WAAW,EAGpB,OAAO,EAAE,kBAAkB,EAC3B,OAAO,EAAE,mBAAmB,EAC5B,QAAQ,EAAE,qBAAqB,EAG/B,UAAU,EAAE,UAAU;IAGzC,KAAK,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,qBAAqB;IAUpE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAsGhH;;;;OAIG;YACW,aAAa;YAKb,WAAW;CA+B1B"}
1
+ {"version":3,"file":"search-entities.tool.d.ts","sourceRoot":"","sources":["../../../../src/agents/graph/tools/search-entities.tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AAEzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,oDAAoD,CAAC;AAC3F,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAGrD,QAAA,MAAM,WAAW;;;;;kBAON,CAAC;AAEZ,OAAO,EAAE,WAAW,IAAI,yBAAyB,EAAE,CAAC;AAUpD,qBACa,kBAAkB;IAE3B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAGxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAG3B,OAAO,CAAC,QAAQ,CAAC,SAAS;gBATT,OAAO,EAAE,WAAW,EAGpB,OAAO,EAAE,kBAAkB,EAC3B,OAAO,EAAE,mBAAmB,EAC5B,QAAQ,EAAE,qBAAqB,EAC/B,UAAU,EAAE,UAAU,EAGtB,SAAS,EAAE,yBAAyB;IAGvD,KAAK,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,qBAAqB;IAUpE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAsGhH;;;;OAIG;YACW,aAAa;YAKb,WAAW;CAwC1B"}
@@ -41,15 +41,16 @@ let SearchEntitiesTool = class SearchEntitiesTool {
41
41
  constructor(factory,
42
42
  // Injected for DI compatibility with GraphModule; no longer used at runtime
43
43
  // now that name resolution lives in resolve_entity.
44
- _search, catalog, registry,
45
- // ScopeGuard is deliberately the LAST constructor parameter so existing
46
- // positional call sites keep working.
47
- scopeGuard) {
44
+ _search, catalog, registry, scopeGuard,
45
+ // ToolFieldFormatterService is deliberately the LAST constructor parameter
46
+ // so existing positional call sites keep working.
47
+ formatter) {
48
48
  this.factory = factory;
49
49
  this._search = _search;
50
50
  this.catalog = catalog;
51
51
  this.registry = registry;
52
52
  this.scopeGuard = scopeGuard;
53
+ this.formatter = formatter;
53
54
  }
54
55
  build(ctx, recorder) {
55
56
  return new tools_1.DynamicStructuredTool({
@@ -154,13 +155,17 @@ let SearchEntitiesTool = class SearchEntitiesTool {
154
155
  return this.scopeGuard.filter({ type, records, ctx });
155
156
  }
156
157
  async buildOutput(entity, records, ctx, localMaterialised) {
157
- const baseItems = records.map((r) => ({
158
- id: r.id,
159
- type: entity.type,
160
- summary: entity.summary ? entity.summary(r) : String(r.name ?? r.id),
161
- fields: (0, field_formatting_1.buildToolFieldsOutput)(entity.fields, r),
162
- score: null,
163
- }));
158
+ const baseItems = records.map((r) => {
159
+ const { fields, availableOnRead } = this.formatter.build({ entity, record: r, stage: "list" });
160
+ return {
161
+ id: r.id,
162
+ type: entity.type,
163
+ summary: entity.summary ? entity.summary(r) : String(r.name ?? r.id),
164
+ fields,
165
+ ...(availableOnRead ? { availableOnRead } : {}),
166
+ score: null,
167
+ };
168
+ });
164
169
  if (!entity.bridge)
165
170
  return { matchMode: "none", items: baseItems };
166
171
  // Bridge fanout: each item is materialised. The `score` field is preserved
@@ -169,7 +174,12 @@ let SearchEntitiesTool = class SearchEntitiesTool {
169
174
  bridge: entity,
170
175
  record: { id: item.id, fields: item.fields },
171
176
  ctx,
172
- deps: { catalog: this.catalog, registry: this.registry, scopeGuard: this.scopeGuard },
177
+ deps: {
178
+ catalog: this.catalog,
179
+ registry: this.registry,
180
+ scopeGuard: this.scopeGuard,
181
+ formatter: this.formatter,
182
+ },
173
183
  onMaterialised: (relName, count) => localMaterialised.push({ relName, count }),
174
184
  }).then((m) => ({ ...m, score }))));
175
185
  return { matchMode: "none", items };
@@ -182,6 +192,7 @@ exports.SearchEntitiesTool = SearchEntitiesTool = __decorate([
182
192
  graph_search_service_1.GraphSearchService,
183
193
  graph_catalog_service_1.GraphCatalogService,
184
194
  entity_service_registry_1.EntityServiceRegistry,
185
- scope_guard_1.ScopeGuard])
195
+ scope_guard_1.ScopeGuard,
196
+ field_formatting_1.ToolFieldFormatterService])
186
197
  ], SearchEntitiesTool);
187
198
  //# sourceMappingURL=search-entities.tool.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"search-entities.tool.js","sourceRoot":"","sources":["../../../../src/agents/graph/tools/search-entities.tool.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,iDAA8D;AAC9D,6BAAwB;AACxB,iDAA0E;AAE1E,2EAAsE;AACtE,6EAAwE;AACxE,mEAAqE;AACrE,uEAAmE;AACnE,gGAA2F;AAC3F,yDAAqD;AACrD,mDAA4D;AAE5D,MAAM,WAAW,GAAG,OAAC;KAClB,MAAM,CAAC;IACN,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IAC9C,OAAO,EAAE,OAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAC3B,IAAI,EAAE,OAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACxB,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;CACnC,CAAC;KACD,MAAM,EAAE,CAAC;AAEY,gDAAyB;AAEjD,MAAM,kBAAkB,GAAgC;IACtD,MAAM,EAAE,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IAClE,MAAM,EAAE,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IACpF,OAAO,EAAE,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IACrD,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC5E,QAAQ,EAAE,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;CACjF,CAAC;AAGK,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAC7B,YACmB,OAAoB;IACrC,4EAA4E;IAC5E,oDAAoD;IACnC,OAA2B,EAC3B,OAA4B,EAC5B,QAA+B;IAChD,wEAAwE;IACxE,sCAAsC;IACrB,UAAsB;QARtB,YAAO,GAAP,OAAO,CAAa;QAGpB,YAAO,GAAP,OAAO,CAAoB;QAC3B,YAAO,GAAP,OAAO,CAAqB;QAC5B,aAAQ,GAAR,QAAQ,CAAuB;QAG/B,eAAU,GAAV,UAAU,CAAY;IACtC,CAAC;IAEJ,KAAK,CAAC,GAAgB,EAAE,QAA0B;QAChD,OAAO,IAAI,6BAAqB,CAAC;YAC/B,IAAI,EAAE,iBAAiB;YACvB,WAAW,EACT,2QAA2Q;YAC7Q,MAAM,EAAE,WAAW;YACnB,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;SAC/E,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAkC,EAAE,GAAgB,EAAE,QAA0B;QAC3F,MAAM,OAAO,GAAG,IAAA,6BAAa,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC7C,MAAM,IAAI,GAAG,IAAA,0BAAU,EAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,iBAAiB,GAA8C,EAAE,CAAC;QAExE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CACvC,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAC/D,KAAK,IAAI,EAAE;YACT,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAC7B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,iBAAiB,IAAK,CAAC,CAAC,KAA2B,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAC1F,CAAC;YACF,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAC3D,IAAI,OAAO,IAAI,MAAM;gBAAE,OAAO,MAAM,CAAC;YACrC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO;oBACL,KAAK,EAAE,0CAA0C,KAAK,CAAC,IAAI,yBAAyB,KAAK,CAAC,IAAI,yEAAyE,KAAK,CAAC,IAAI,oIAAoI;oBACrT,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE;iBACvE,CAAC;YACJ,CAAC;YAED,MAAM,MAAM,GAAG,IAAI,GAAG,CAAuB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACpF,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpE,MAAM,iBAAiB,GAAG,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7E,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACxB,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBAChC,IAAI,CAAC,GAAG,EAAE,CAAC;oBACT,OAAO;wBACL,KAAK,EAAE,UAAU,CAAC,CAAC,KAAK,yBAAyB,MAAM,CAAC,IAAI,qCAAqC,MAAM,CAAC,IAAI,MAAM,eAAe,8FAA8F,MAAM,CAAC,IAAI,MAAM,iBAAiB,IAAI,MAAM,2DAA2D;qBACvU,CAAC;gBACJ,CAAC;gBACD,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC;gBAC1D,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;oBACvB,OAAO;wBACL,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,6BAA6B,CAAC,CAAC,KAAK,aAAa,GAAG,CAAC,IAAI,yBAAyB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;qBAC7I,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM;iBACrC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;iBACzB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;iBAClB,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,KAAK,MAAM,CAAC,IAAI,IAAI,IAAI,EAAE,EAAE,CAAC;gBAC3B,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBAChC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;oBAC1B,OAAO;wBACL,KAAK,EAAE,UAAU,CAAC,CAAC,KAAK,kCAAkC,MAAM,CAAC,IAAI,wBAAwB,MAAM,CAAC,IAAI,MAAM,kBAAkB,IAAI,MAAM,IAAI;qBAC/I,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACrD,IAAI,CAAC,GAAG;gBAAE,OAAO,EAAE,KAAK,EAAE,8BAA8B,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YAE1E,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAE3D,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;YAC3F,MAAM,aAAa,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,EAAE,QAAQ,KAAK,GAAG,CAAC,SAAS,CAAC;YAEhF,wEAAwE;YACxE,sEAAsE;YACtE,qEAAqE;YACrE,gEAAgE;YAChE,iEAAiE;YACjE,MAAM,OAAO,GACX,aAAa,IAAI,WAAW;gBAC1B,CAAC,CAAC,MAAM,GAAG,CAAC,kBAAkB,CAAC;oBAC3B,YAAY,EAAE,WAAW;oBACzB,EAAE,EAAE,GAAG,CAAC,OAAQ;oBAChB,OAAO;oBACP,aAAa,EAAE,IAAI;oBACnB,KAAK,EAAE,KAAK,GAAG,CAAC;iBACjB,CAAC;gBACJ,CAAC,CAAC,MAAM,IAAI,CAAC,aAAa,CACtB,MAAM,CAAC,IAAI,EACX,MAAM,GAAG,CAAC,WAAW,CAAC;oBACpB,OAAO;oBACP,aAAa,EAAE,IAAI;oBACnB,KAAK,EAAE,KAAK,GAAG,CAAC;iBACjB,CAAC,EACF,GAAG,CACJ,CAAC;YACR,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;YACvC,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YAE5D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,iBAAiB,CAAC,CAAC;YAC/E,OAAO,OAAO;gBACZ,CAAC,CAAC;oBACE,GAAG,MAAM;oBACT,OAAO,EAAE,IAAI;oBACb,IAAI,EAAE,kBAAkB,KAAK,4FAA4F;iBAC1H;gBACH,CAAC,CAAC,MAAM,CAAC;QACb,CAAC,EACD,QAAQ,CACT,CAAC;QAEF,IAAI,iBAAiB,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YAChD,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,YAAY,GAAG,iBAAiB,CAAC;QACjE,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,aAAa,CAAC,IAAY,EAAE,OAAc,EAAE,GAAgB;QACxE,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS;YAAE,OAAO,OAAO,CAAC;QACnD,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;IACxD,CAAC;IAEO,KAAK,CAAC,WAAW,CACvB,MAAqB,EACrB,OAAc,EACd,GAAgB,EAChB,iBAA4D;QAE5D,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACpC,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC;YACpE,MAAM,EAAE,IAAA,wCAAqB,EAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YAC/C,KAAK,EAAE,IAAqB;SAC7B,CAAC,CAAC,CAAC;QAEJ,IAAI,CAAC,MAAM,CAAC,MAAM;YAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QAEnE,2EAA2E;QAC3E,uEAAuE;QACvE,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAC7B,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,CACnC,IAAA,sCAAiB,EAAC;YAChB,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;YAC5C,GAAG;YACH,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE;YACrF,cAAc,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;SAC/E,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAClC,CACF,CAAC;QACF,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IACtC,CAAC;CACF,CAAA;AAtKY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,mBAAU,GAAE;qCAGiB,0BAAW;QAGX,yCAAkB;QAClB,2CAAmB;QAClB,+CAAqB;QAGnB,wBAAU;GAV9B,kBAAkB,CAsK9B"}
1
+ {"version":3,"file":"search-entities.tool.js","sourceRoot":"","sources":["../../../../src/agents/graph/tools/search-entities.tool.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,11 @@
1
1
  import { DynamicStructuredTool } from "@langchain/core/tools";
2
2
  import { z } from "zod";
3
3
  import { ToolFactory, ToolCallRecord, UserContext } from "./tool.factory";
4
+ import { ToolFieldFormatterService } from "../services/field-formatting";
4
5
  import { GraphCatalogService } from "../services/graph.catalog.service";
5
6
  import { EntityServiceRegistry } from "../../../common/registries/entity.service.registry";
6
7
  import { ScopeGuard } from "../services/scope.guard";
8
+ import { RelatedEdgesService } from "../services/related-edges.service";
7
9
  declare const FilterOpEnum: z.ZodEnum<{
8
10
  in: "in";
9
11
  eq: "eq";
@@ -57,9 +59,22 @@ export declare class TraverseTool {
57
59
  private readonly catalog;
58
60
  private readonly registry;
59
61
  private readonly scopeGuard;
60
- constructor(factory: ToolFactory, catalog: GraphCatalogService, registry: EntityServiceRegistry, scopeGuard: ScopeGuard);
62
+ private readonly formatter;
63
+ private readonly relatedEdges;
64
+ constructor(factory: ToolFactory, catalog: GraphCatalogService, registry: EntityServiceRegistry, scopeGuard: ScopeGuard, formatter: ToolFieldFormatterService, relatedEdges: RelatedEdgesService);
61
65
  build(ctx: UserContext, recorder: ToolCallRecord[]): DynamicStructuredTool;
62
66
  invoke(input: z.infer<typeof inputSchema>, ctx: UserContext, recorder: ToolCallRecord[]): Promise<unknown>;
67
+ /**
68
+ * Polymorphic traversal: one edge label, no single target type. The edge
69
+ * lookup returns bare ids + labels; every surviving row is then re-read
70
+ * through its OWN type's service, so tenancy stays in the repository layer
71
+ * and each item is projected with its own type's stage-1 fields.
72
+ *
73
+ * Silent drops (unknown label, module-gated type, out-of-scope record) match
74
+ * the materialise-bridge contract: the model is never told a record exists
75
+ * that it may not see.
76
+ */
77
+ private invokePolymorphic;
63
78
  /**
64
79
  * Drop records outside the run's scope. An unscoped run short-circuits
65
80
  * before the guard is consulted — the same contract ScopeGuard.filter
@@ -1 +1 @@
1
- {"version":3,"file":"traverse.tool.d.ts","sourceRoot":"","sources":["../../../../src/agents/graph/tools/traverse.tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,oDAAoD,CAAC;AAC3F,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,QAAA,MAAM,YAAY;;;;;;;;;;;EAAsF,CAAC;AAMzG,QAAA,MAAM,WAAW;;;;;;;iBAOf,CAAC;AAEH,OAAO,EAAE,WAAW,IAAI,mBAAmB,EAAE,CAAC;AAE9C,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,KAAK,GAAG,MAAM,CAAC;CAC3B;AACD,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;AACpF,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;IACjC,KAAK,CAAC,EAAE,qBAAqB,CAAC;CAC/B;AAYD;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,cAAc,EAAE,CAwBzD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB,EAAE,CAgB9D;AAUD,qBACa,YAAY;IAErB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAGzB,OAAO,CAAC,QAAQ,CAAC,UAAU;gBALV,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,mBAAmB,EAC5B,QAAQ,EAAE,qBAAqB,EAG/B,UAAU,EAAE,UAAU;IAGzC,KAAK,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,qBAAqB;IASpE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAiIhH;;;;OAIG;YACW,aAAa;CAI5B"}
1
+ {"version":3,"file":"traverse.tool.d.ts","sourceRoot":"","sources":["../../../../src/agents/graph/tools/traverse.tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AAEzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAExE,OAAO,EAAE,qBAAqB,EAAE,MAAM,oDAAoD,CAAC;AAC3F,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAExE,QAAA,MAAM,YAAY;;;;;;;;;;;EAAsF,CAAC;AAMzG,QAAA,MAAM,WAAW;;;;;;;iBAOf,CAAC;AAEH,OAAO,EAAE,WAAW,IAAI,mBAAmB,EAAE,CAAC;AAE9C,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,KAAK,GAAG,MAAM,CAAC;CAC3B;AACD,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;AACpF,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;IACjC,KAAK,CAAC,EAAE,qBAAqB,CAAC;CAC/B;AAYD;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,cAAc,EAAE,CAwBzD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB,EAAE,CAgB9D;AAUD,qBACa,YAAY;IAErB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAG1B,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAPZ,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,mBAAmB,EAC5B,QAAQ,EAAE,qBAAqB,EAC/B,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,yBAAyB,EAGpC,YAAY,EAAE,mBAAmB;IAGpD,KAAK,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,qBAAqB;IASpE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IA8IhH;;;;;;;;;OASG;YACW,iBAAiB;IA4F/B;;;;OAIG;YACW,aAAa;CAI5B"}