@carlonicora/nestjs-neo4jsonapi 4.2.0 → 4.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agents/graph/graph.module.d.ts.map +1 -1
- package/dist/agents/graph/graph.module.js +6 -0
- package/dist/agents/graph/graph.module.js.map +1 -1
- package/dist/agents/graph/interfaces/graph.catalog.interface.d.ts +46 -1
- package/dist/agents/graph/interfaces/graph.catalog.interface.d.ts.map +1 -1
- package/dist/agents/graph/services/graph.catalog.service.d.ts +14 -2
- package/dist/agents/graph/services/graph.catalog.service.d.ts.map +1 -1
- package/dist/agents/graph/services/graph.catalog.service.js +75 -0
- package/dist/agents/graph/services/graph.catalog.service.js.map +1 -1
- package/dist/agents/graph/services/richtext.write.d.ts +52 -0
- package/dist/agents/graph/services/richtext.write.d.ts.map +1 -0
- package/dist/agents/graph/services/richtext.write.js +92 -0
- package/dist/agents/graph/services/richtext.write.js.map +1 -0
- package/dist/agents/graph/services/writable.rules.d.ts +37 -0
- package/dist/agents/graph/services/writable.rules.d.ts.map +1 -0
- package/dist/agents/graph/services/writable.rules.js +46 -0
- package/dist/agents/graph/services/writable.rules.js.map +1 -0
- package/dist/agents/graph/tools/describe-entity.tool.d.ts.map +1 -1
- package/dist/agents/graph/tools/describe-entity.tool.js +15 -0
- package/dist/agents/graph/tools/describe-entity.tool.js.map +1 -1
- package/dist/agents/index.d.ts +1 -1
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/operator/contexts/operator.context.d.ts +17 -1
- package/dist/agents/operator/contexts/operator.context.d.ts.map +1 -1
- package/dist/agents/operator/contexts/operator.context.js +8 -0
- package/dist/agents/operator/contexts/operator.context.js.map +1 -1
- package/dist/agents/operator/controllers/operator.controller.d.ts.map +1 -1
- package/dist/agents/operator/controllers/operator.controller.js +10 -1
- package/dist/agents/operator/controllers/operator.controller.js.map +1 -1
- package/dist/agents/operator/interfaces/operator.tool.interface.d.ts +49 -1
- package/dist/agents/operator/interfaces/operator.tool.interface.d.ts.map +1 -1
- package/dist/agents/operator/interfaces/operator.tool.interface.js.map +1 -1
- package/dist/agents/operator/prompts/operator.system.prompt.d.ts +1 -1
- package/dist/agents/operator/prompts/operator.system.prompt.d.ts.map +1 -1
- package/dist/agents/operator/prompts/operator.system.prompt.js +2 -0
- package/dist/agents/operator/prompts/operator.system.prompt.js.map +1 -1
- package/dist/agents/operator/services/operator.service.d.ts +32 -0
- package/dist/agents/operator/services/operator.service.d.ts.map +1 -1
- package/dist/agents/operator/services/operator.service.js +83 -2
- package/dist/agents/operator/services/operator.service.js.map +1 -1
- package/dist/agents/operator/tools/entity-write.tools.d.ts +75 -19
- package/dist/agents/operator/tools/entity-write.tools.d.ts.map +1 -1
- package/dist/agents/operator/tools/entity-write.tools.js +422 -149
- package/dist/agents/operator/tools/entity-write.tools.js.map +1 -1
- package/dist/common/helpers/bound-content.d.ts +21 -0
- package/dist/common/helpers/bound-content.d.ts.map +1 -0
- package/dist/common/helpers/bound-content.js +28 -0
- package/dist/common/helpers/bound-content.js.map +1 -0
- package/dist/common/helpers/index.d.ts +1 -0
- package/dist/common/helpers/index.d.ts.map +1 -1
- package/dist/common/helpers/index.js +1 -0
- package/dist/common/helpers/index.js.map +1 -1
- package/dist/common/interfaces/entity.schema.interface.d.ts +27 -4
- package/dist/common/interfaces/entity.schema.interface.d.ts.map +1 -1
- package/dist/foundations/assistant/controllers/assistant.controller.d.ts +0 -7
- package/dist/foundations/assistant/controllers/assistant.controller.d.ts.map +1 -1
- package/dist/foundations/assistant/controllers/assistant.controller.js +2 -16
- package/dist/foundations/assistant/controllers/assistant.controller.js.map +1 -1
- package/dist/foundations/assistant/services/assistant.service.d.ts +0 -9
- package/dist/foundations/assistant/services/assistant.service.d.ts.map +1 -1
- package/dist/foundations/assistant/services/assistant.service.js +32 -35
- package/dist/foundations/assistant/services/assistant.service.js.map +1 -1
- package/dist/foundations/assistant-action/entities/assistant-action.d.ts +1 -0
- package/dist/foundations/assistant-action/entities/assistant-action.d.ts.map +1 -1
- package/dist/foundations/assistant-action/entities/assistant-action.js +1 -0
- package/dist/foundations/assistant-action/entities/assistant-action.js.map +1 -1
- package/dist/foundations/assistant-action/services/assistant-action.service.d.ts +2 -0
- package/dist/foundations/assistant-action/services/assistant-action.service.d.ts.map +1 -1
- package/dist/foundations/assistant-action/services/assistant-action.service.js +1 -0
- package/dist/foundations/assistant-action/services/assistant-action.service.js.map +1 -1
- package/dist/mcp/mcp.module.d.ts +4 -0
- package/dist/mcp/mcp.module.d.ts.map +1 -1
- package/dist/mcp/mcp.module.js +6 -1
- package/dist/mcp/mcp.module.js.map +1 -1
- package/dist/mcp/services/mcp.entity.write.service.d.ts +16 -1
- package/dist/mcp/services/mcp.entity.write.service.d.ts.map +1 -1
- package/dist/mcp/services/mcp.entity.write.service.js +25 -6
- package/dist/mcp/services/mcp.entity.write.service.js.map +1 -1
- package/dist/mcp/services/mcp.promoted.tools.factory.d.ts +21 -4
- package/dist/mcp/services/mcp.promoted.tools.factory.d.ts.map +1 -1
- package/dist/mcp/services/mcp.promoted.tools.factory.js +28 -5
- package/dist/mcp/services/mcp.promoted.tools.factory.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph.module.d.ts","sourceRoot":"","sources":["../../../src/agents/graph/graph.module.ts"],"names":[],"mappings":"AAqBA;;;;;;;GAOG;AACH,
|
|
1
|
+
{"version":3,"file":"graph.module.d.ts","sourceRoot":"","sources":["../../../src/agents/graph/graph.module.ts"],"names":[],"mappings":"AAqBA;;;;;;;GAOG;AACH,qBAiDa,WAAW;CAAG"}
|
|
@@ -65,6 +65,12 @@ exports.GraphModule = GraphModule = __decorate([
|
|
|
65
65
|
{ provide: scope_predicate_source_1.SCOPE_PREDICATE_SOURCE, useExisting: scope_predicate_service_1.ScopePredicateService },
|
|
66
66
|
],
|
|
67
67
|
exports: [
|
|
68
|
+
// Re-exported: the operator's write tools (OperatorModule, which imports
|
|
69
|
+
// GraphModule) need BlockNoteService to store markdown in a rich-text field
|
|
70
|
+
// as a BlockNote document. A module that exports a consumer of a non-global
|
|
71
|
+
// provider must re-export that provider's module, or the consumer cannot be
|
|
72
|
+
// constructed in the importing module's injector.
|
|
73
|
+
blocknote_module_1.BlockNoteModule,
|
|
68
74
|
descriptor_source_1.GraphDescriptorRegistry,
|
|
69
75
|
graph_catalog_service_1.GraphCatalogService,
|
|
70
76
|
user_modules_repository_1.UserModulesRepository,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph.module.js","sourceRoot":"","sources":["../../../src/agents/graph/graph.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,+DAA+D;AAC/D,2CAAgD;AAChD,6FAA0F;AAC1F,4EAAwE;AACxE,0DAAsD;AACtD,oFAA+E;AAC/E,wEAAmE;AACnE,0EAAqE;AACrE,oEAAuE;AACvE,4EAAuE;AACvE,kEAAwE;AACxE,4EAAuE;AACvE,wDAAoD;AACpD,gFAA2E;AAC3E,uEAAkE;AAClE,+DAA0D;AAC1D,qEAAgE;AAChE,uEAAkE;AAClE,uDAAmD;AACnD,yDAAqD;AAErD;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"graph.module.js","sourceRoot":"","sources":["../../../src/agents/graph/graph.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,+DAA+D;AAC/D,2CAAgD;AAChD,6FAA0F;AAC1F,4EAAwE;AACxE,0DAAsD;AACtD,oFAA+E;AAC/E,wEAAmE;AACnE,0EAAqE;AACrE,oEAAuE;AACvE,4EAAuE;AACvE,kEAAwE;AACxE,4EAAuE;AACvE,wDAAoD;AACpD,gFAA2E;AAC3E,uEAAkE;AAClE,+DAA0D;AAC1D,qEAAgE;AAChE,uEAAkE;AAClE,uDAAmD;AACnD,yDAAqD;AAErD;;;;;;;GAOG;AAkDI,IAAM,WAAW,GAAjB,MAAM,WAAW;CAAG,CAAA;AAAd,kCAAW;sBAAX,WAAW;IAjDvB,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,sBAAS,EAAE,kCAAe,CAAC;QACrC,SAAS,EAAE;YACT,2CAAuB;YACvB;gBACE,OAAO,EAAE,2CAAmB;gBAC5B,UAAU,EAAE,CAAC,GAA4B,EAAE,EAAE,CAAC,IAAI,2CAAmB,CAAC,GAAG,CAAC;gBAC1E,MAAM,EAAE,CAAC,2CAAuB,CAAC;aAClC;YACD,0BAAW;YACX,uCAAiB;YACjB,yCAAkB;YAClB,yCAAkB;YAClB,iCAAc;YACd,4BAAY;YACZ,+CAAqB;YACrB,uCAAiB;YACjB,yCAAkB;YAClB,wBAAU;YACV,+CAAqB;YACrB,4CAAyB;YACzB,2CAAmB;YACnB,EAAE,OAAO,EAAE,+CAAsB,EAAE,WAAW,EAAE,+CAAqB,EAAE;SACxE;QACD,OAAO,EAAE;YACP,yEAAyE;YACzE,4EAA4E;YAC5E,4EAA4E;YAC5E,4EAA4E;YAC5E,kDAAkD;YAClD,kCAAe;YACf,2CAAuB;YACvB,2CAAmB;YACnB,+CAAqB;YACrB,0BAAW;YACX,uCAAiB;YACjB,yCAAkB;YAClB,yCAAkB;YAClB,iCAAc;YACd,4BAAY;YACZ,yCAAkB;YAClB,wBAAU;YACV,+CAAqB;YACrB,4CAAyB;YACzB,2CAAmB;YACnB,+CAAsB;SACvB;KACF,CAAC;GACW,WAAW,CAAG"}
|
|
@@ -18,6 +18,16 @@ export interface CatalogField {
|
|
|
18
18
|
export interface CatalogRelationship {
|
|
19
19
|
/** Traversal name exposed to the LLM. */
|
|
20
20
|
name: string;
|
|
21
|
+
/**
|
|
22
|
+
* Key this relationship takes inside a JSON:API `relationships` object: the
|
|
23
|
+
* descriptor's `dtoKey`, or `name` when the descriptor declares none.
|
|
24
|
+
*
|
|
25
|
+
* Writes go through `AbstractService.createFromDTO` / `patchFromDTO`, which look
|
|
26
|
+
* a relationship up by `dtoKey` (`relationshipDef.dtoKey || relationshipKey`).
|
|
27
|
+
* A payload keyed by `name` is silently DROPPED whenever the two differ — the
|
|
28
|
+
* edge is never written and nothing reports a failure.
|
|
29
|
+
*/
|
|
30
|
+
dtoKey: string;
|
|
21
31
|
sourceType: string;
|
|
22
32
|
targetType: string;
|
|
23
33
|
cardinality: "one" | "many";
|
|
@@ -42,6 +52,13 @@ export interface CatalogRelationship {
|
|
|
42
52
|
export interface CatalogScopeHop {
|
|
43
53
|
/** Descriptor relationship key on the SOURCE type of this hop. */
|
|
44
54
|
key: string;
|
|
55
|
+
/**
|
|
56
|
+
* Key this hop takes inside a JSON:API `relationships` object: the descriptor's
|
|
57
|
+
* `dtoKey`, or `key` when it declares none. Same reason as
|
|
58
|
+
* {@link CatalogRelationship.dtoKey} — the write tools pin a new record to the
|
|
59
|
+
* run's scope root through the DTO path.
|
|
60
|
+
*/
|
|
61
|
+
dtoKey: string;
|
|
45
62
|
/** Neo4j relationship type, e.g. "PART_OF". */
|
|
46
63
|
cypherLabel: string;
|
|
47
64
|
/** Direction from the SOURCE node's perspective. */
|
|
@@ -78,8 +95,36 @@ export interface CatalogEntity {
|
|
|
78
95
|
};
|
|
79
96
|
/** Compiled scope chain. Absent when the descriptor declares no chat.scope. */
|
|
80
97
|
scope?: CatalogScope;
|
|
81
|
-
/**
|
|
98
|
+
/**
|
|
99
|
+
* The descriptor relationship that records the owning user — the one the host
|
|
100
|
+
* application's own clients fill with the current user on create. Compiled from
|
|
101
|
+
* the FULL descriptor relationship set (it is deliberately undescribed, so it
|
|
102
|
+
* never appears in `relationships`), and absent when the descriptor declares no
|
|
103
|
+
* such relationship or when it is filled from CLS through a `contextKey`.
|
|
104
|
+
*
|
|
105
|
+
* The generic write tools must set it themselves: a host read query that
|
|
106
|
+
* REQUIRES the owner edge returns nothing for a record created without it, so
|
|
107
|
+
* the write succeeds and the read-back after it throws `not found`.
|
|
108
|
+
*/
|
|
109
|
+
owner?: {
|
|
110
|
+
key: string;
|
|
111
|
+
dtoKey: string;
|
|
112
|
+
type: string;
|
|
113
|
+
};
|
|
114
|
+
/** Mirrors chat.writable — true for BOTH the legacy `true` and the object form. */
|
|
82
115
|
writable?: boolean;
|
|
116
|
+
/**
|
|
117
|
+
* Field names the write tools may set, from the object form of `chat.writable`.
|
|
118
|
+
* `undefined` is the legacy `chat.writable: true`: every described field.
|
|
119
|
+
*/
|
|
120
|
+
writableFields?: string[];
|
|
121
|
+
/**
|
|
122
|
+
* Relationship keys the write tools may set, from the object form of
|
|
123
|
+
* `chat.writable`. An object form that omits `relationships` compiles to `[]`
|
|
124
|
+
* (none). `undefined` is the legacy `chat.writable: true`: every forward,
|
|
125
|
+
* non-polymorphic relationship except the scope one.
|
|
126
|
+
*/
|
|
127
|
+
writableRelationships?: string[];
|
|
83
128
|
/** Mirrors chat.list — stage-1 field names for list-returning tools. */
|
|
84
129
|
list?: string[];
|
|
85
130
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph.catalog.interface.d.ts","sourceRoot":"","sources":["../../../../src/agents/graph/interfaces/graph.catalog.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oDAAoD,CAAC;AAE/E,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,UAAU,EAAE,OAAO,CAAC;IACpB,6CAA6C;IAC7C,QAAQ,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,KAAK,GAAG,MAAM,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,wFAAwF;IACxF,eAAe,EAAE,KAAK,GAAG,IAAI,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,+FAA+F;IAC/F,SAAS,EAAE,OAAO,CAAC;IACnB;;;yFAGqF;IACrF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,WAAW,CAAC,EAAE,IAAI,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,kEAAkE;IAClE,GAAG,EAAE,MAAM,CAAC;IACZ,+CAA+C;IAC/C,WAAW,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,eAAe,EAAE,KAAK,GAAG,IAAI,CAAC;IAC9B,yDAAyD;IACzD,WAAW,EAAE,MAAM,CAAC;IACpB,4DAA4D;IAC5D,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,2FAA2F;IAC3F,IAAI,EAAE,eAAe,EAAE,CAAC;IACxB,yDAAyD;IACzD,QAAQ,EAAE,MAAM,CAAC;IACjB,sDAAsD;IACtD,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,aAAa,EAAE,mBAAmB,EAAE,CAAC;IACrC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,MAAM,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,iEAAiE;IACjE,QAAQ,EAAE,MAAM,CAAC;IACjB,0DAA0D;IAC1D,SAAS,EAAE,MAAM,CAAC;IAClB,4FAA4F;IAC5F,MAAM,CAAC,EAAE;QAAE,aAAa,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IACrC,+EAA+E;IAC/E,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,
|
|
1
|
+
{"version":3,"file":"graph.catalog.interface.d.ts","sourceRoot":"","sources":["../../../../src/agents/graph/interfaces/graph.catalog.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oDAAoD,CAAC;AAE/E,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,UAAU,EAAE,OAAO,CAAC;IACpB,6CAA6C;IAC7C,QAAQ,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb;;;;;;;;OAQG;IACH,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,KAAK,GAAG,MAAM,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,wFAAwF;IACxF,eAAe,EAAE,KAAK,GAAG,IAAI,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,+FAA+F;IAC/F,SAAS,EAAE,OAAO,CAAC;IACnB;;;yFAGqF;IACrF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,WAAW,CAAC,EAAE,IAAI,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,kEAAkE;IAClE,GAAG,EAAE,MAAM,CAAC;IACZ;;;;;OAKG;IACH,MAAM,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,WAAW,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,eAAe,EAAE,KAAK,GAAG,IAAI,CAAC;IAC9B,yDAAyD;IACzD,WAAW,EAAE,MAAM,CAAC;IACpB,4DAA4D;IAC5D,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,2FAA2F;IAC3F,IAAI,EAAE,eAAe,EAAE,CAAC;IACxB,yDAAyD;IACzD,QAAQ,EAAE,MAAM,CAAC;IACjB,sDAAsD;IACtD,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,aAAa,EAAE,mBAAmB,EAAE,CAAC;IACrC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,MAAM,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,iEAAiE;IACjE,QAAQ,EAAE,MAAM,CAAC;IACjB,0DAA0D;IAC1D,SAAS,EAAE,MAAM,CAAC;IAClB,4FAA4F;IAC5F,MAAM,CAAC,EAAE;QAAE,aAAa,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IACrC,+EAA+E;IAC/E,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB;;;;;;;;;;OAUG;IACH,KAAK,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACtD,mFAAmF;IACnF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B;;;;;OAKG;IACH,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;IACjC,wEAAwE;IACxE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { OnApplicationBootstrap } from "@nestjs/common";
|
|
2
2
|
import { CatalogEntity } from "../interfaces/graph.catalog.interface";
|
|
3
|
-
import { FieldKind } from "../../../common/interfaces/entity.schema.interface";
|
|
3
|
+
import { ChatWritableConfig, FieldKind } from "../../../common/interfaces/entity.schema.interface";
|
|
4
4
|
/**
|
|
5
5
|
* Provided by the library bootstrap layer. Must return the full list of registered
|
|
6
6
|
* entity descriptors (including their `moduleId` — the stable UUID of the `(Module)`
|
|
@@ -34,13 +34,17 @@ export interface DescriptorSource {
|
|
|
34
34
|
name: string;
|
|
35
35
|
description: string;
|
|
36
36
|
};
|
|
37
|
+
/** JSON:API `relationships` key override; the descriptor key when absent. */
|
|
38
|
+
dtoKey?: string;
|
|
39
|
+
/** Set when the value is filled from CLS instead of the DTO. */
|
|
40
|
+
contextKey?: string;
|
|
37
41
|
}>;
|
|
38
42
|
chat?: {
|
|
39
43
|
summary?: (d: any) => string;
|
|
40
44
|
textSearchFields?: string[];
|
|
41
45
|
list?: string[];
|
|
42
46
|
scope?: string;
|
|
43
|
-
writable?: boolean;
|
|
47
|
+
writable?: boolean | ChatWritableConfig;
|
|
44
48
|
/** Compile a polymorphic chat-only "related" traversal (RELATES_TO, both directions). */
|
|
45
49
|
related?: boolean;
|
|
46
50
|
};
|
|
@@ -58,6 +62,14 @@ export declare class GraphCatalogService implements OnApplicationBootstrap {
|
|
|
58
62
|
constructor(source: DescriptorSource);
|
|
59
63
|
onApplicationBootstrap(): void;
|
|
60
64
|
buildCatalog(): void;
|
|
65
|
+
/**
|
|
66
|
+
* A `chat.writable` object form names exactly what the assistant may write, so
|
|
67
|
+
* a typo in it silently narrows the assistant instead of failing — the model is
|
|
68
|
+
* simply told a field is not writable and gives up. Every listed name is
|
|
69
|
+
* therefore checked at boot, in the same style as the writable/scope check
|
|
70
|
+
* above: a misconfiguration is a boot failure, never a runtime surprise.
|
|
71
|
+
*/
|
|
72
|
+
private validateWritableAllowLists;
|
|
61
73
|
/**
|
|
62
74
|
* Resolve `chat.scope` into a Cypher-ready chain of hops ending at a
|
|
63
75
|
* `chat.scope === "self"` root. Runs once, at catalog build time: a chain
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph.catalog.service.d.ts","sourceRoot":"","sources":["../../../../src/agents/graph/services/graph.catalog.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EACL,aAAa,EAKd,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,oDAAoD,CAAC;
|
|
1
|
+
{"version":3,"file":"graph.catalog.service.d.ts","sourceRoot":"","sources":["../../../../src/agents/graph/services/graph.catalog.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,8 @@ var GraphCatalogService_1;
|
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
13
|
exports.GraphCatalogService = void 0;
|
|
14
14
|
const common_1 = require("@nestjs/common");
|
|
15
|
+
const user_meta_1 = require("../../../foundations/user/entities/user.meta");
|
|
16
|
+
const writable_rules_1 = require("./writable.rules");
|
|
15
17
|
const FILTERABLE_TYPES = new Set(["string", "number", "boolean", "date", "datetime"]);
|
|
16
18
|
const SORTABLE_TYPES = new Set(["string", "number", "date", "datetime"]);
|
|
17
19
|
function renderFieldKindMarker(kind) {
|
|
@@ -22,6 +24,11 @@ function renderFieldKindMarker(kind) {
|
|
|
22
24
|
const factor = minor === 0 ? "1" : `10^${minor}`;
|
|
23
25
|
return `, money [integer stored in minor units (${minor} decimals); divide by ${factor} to display]`;
|
|
24
26
|
}
|
|
27
|
+
if (kind.type === "richtext") {
|
|
28
|
+
// Consistent with describe_entity's `format: "markdown"` and the write
|
|
29
|
+
// tools' RICHTEXT_HINT: read as markdown, written as markdown.
|
|
30
|
+
return ", richtext [markdown; read and written as markdown, stored as a document]";
|
|
31
|
+
}
|
|
25
32
|
return "";
|
|
26
33
|
}
|
|
27
34
|
let GraphCatalogService = GraphCatalogService_1 = class GraphCatalogService {
|
|
@@ -67,6 +74,7 @@ let GraphCatalogService = GraphCatalogService_1 = class GraphCatalogService {
|
|
|
67
74
|
continue;
|
|
68
75
|
relationships.push({
|
|
69
76
|
name,
|
|
77
|
+
dtoKey: rel.dtoKey ?? name,
|
|
70
78
|
sourceType: d.model.type,
|
|
71
79
|
targetType: rel.model.type,
|
|
72
80
|
cardinality: rel.cardinality,
|
|
@@ -76,9 +84,14 @@ let GraphCatalogService = GraphCatalogService_1 = class GraphCatalogService {
|
|
|
76
84
|
isReverse: false,
|
|
77
85
|
});
|
|
78
86
|
}
|
|
87
|
+
// The owner edge is deliberately UNDESCRIBED (the assistant has no reason to
|
|
88
|
+
// read or write it), so the loop above never sees it: this lookup scans the
|
|
89
|
+
// full descriptor relationship set instead.
|
|
90
|
+
const ownerEntry = Object.entries(d.relationships).find(([, rel]) => rel.model.nodeName === user_meta_1.ownerMeta.nodeName && !rel.contextKey);
|
|
79
91
|
if (d.chat?.related) {
|
|
80
92
|
relationships.push({
|
|
81
93
|
name: "related",
|
|
94
|
+
dtoKey: "related",
|
|
82
95
|
sourceType: d.model.type,
|
|
83
96
|
targetType: "*",
|
|
84
97
|
cardinality: "many",
|
|
@@ -89,6 +102,12 @@ let GraphCatalogService = GraphCatalogService_1 = class GraphCatalogService {
|
|
|
89
102
|
polymorphic: true,
|
|
90
103
|
});
|
|
91
104
|
}
|
|
105
|
+
// `writable` stays a plain boolean for BOTH forms — every caller that only
|
|
106
|
+
// asks "may this type be written at all?" keeps working unchanged. The
|
|
107
|
+
// object form additionally compiles its allow-lists; an omitted
|
|
108
|
+
// `relationships` means none, so it compiles to `[]`, never to undefined
|
|
109
|
+
// (which is the legacy "all of them").
|
|
110
|
+
const writableConfig = d.chat?.writable && typeof d.chat.writable === "object" ? d.chat.writable : undefined;
|
|
92
111
|
const entity = {
|
|
93
112
|
type: d.model.type,
|
|
94
113
|
moduleId: d.moduleId,
|
|
@@ -99,8 +118,23 @@ let GraphCatalogService = GraphCatalogService_1 = class GraphCatalogService {
|
|
|
99
118
|
textSearchFields: d.chat?.textSearchFields,
|
|
100
119
|
nodeName: d.model.nodeName,
|
|
101
120
|
labelName: d.model.labelName,
|
|
121
|
+
...(ownerEntry
|
|
122
|
+
? {
|
|
123
|
+
owner: {
|
|
124
|
+
key: ownerEntry[0],
|
|
125
|
+
dtoKey: ownerEntry[1].dtoKey ?? ownerEntry[0],
|
|
126
|
+
type: ownerEntry[1].model.type,
|
|
127
|
+
},
|
|
128
|
+
}
|
|
129
|
+
: {}),
|
|
102
130
|
...(d.bridge ? { bridge: { materialiseTo: [...d.bridge.materialiseTo] } } : {}),
|
|
103
131
|
...(d.chat?.writable ? { writable: true } : {}),
|
|
132
|
+
...(writableConfig
|
|
133
|
+
? {
|
|
134
|
+
writableFields: [...writableConfig.fields],
|
|
135
|
+
writableRelationships: [...(writableConfig.relationships ?? [])],
|
|
136
|
+
}
|
|
137
|
+
: {}),
|
|
104
138
|
...(d.chat?.list ? { list: [...d.chat.list] } : {}),
|
|
105
139
|
};
|
|
106
140
|
this.entities.set(d.model.type, entity);
|
|
@@ -135,6 +169,9 @@ let GraphCatalogService = GraphCatalogService_1 = class GraphCatalogService {
|
|
|
135
169
|
}
|
|
136
170
|
target.relationships.push({
|
|
137
171
|
name: rel.reverse.name,
|
|
172
|
+
// A reverse relationship has no edge on this side and is never written,
|
|
173
|
+
// so its DTO key is simply its own name.
|
|
174
|
+
dtoKey: rel.reverse.name,
|
|
138
175
|
sourceType: rel.model.type,
|
|
139
176
|
targetType: d.model.type,
|
|
140
177
|
cardinality: rel.cardinality,
|
|
@@ -146,6 +183,11 @@ let GraphCatalogService = GraphCatalogService_1 = class GraphCatalogService {
|
|
|
146
183
|
});
|
|
147
184
|
}
|
|
148
185
|
}
|
|
186
|
+
// Pass 2b: validate the object form of chat.writable. Runs AFTER pass 2 so a
|
|
187
|
+
// listed relationship is checked against the FULL relationship set, reverse
|
|
188
|
+
// ones included — naming a reverse relationship is exactly the mistake this
|
|
189
|
+
// has to catch, and before pass 2 it would look like an unknown name.
|
|
190
|
+
this.validateWritableAllowLists();
|
|
149
191
|
// Pass 3: render per-moduleId text fragments.
|
|
150
192
|
const byModuleId = new Map();
|
|
151
193
|
for (const e of this.entities.values()) {
|
|
@@ -184,6 +226,38 @@ let GraphCatalogService = GraphCatalogService_1 = class GraphCatalogService {
|
|
|
184
226
|
}
|
|
185
227
|
this.logger.log(`Graph catalog built: ${this.entities.size} entities, ${byModuleId.size} modules: ${JSON.stringify(Array.from(this.entities.values()).map((e) => ({ type: e.type, moduleId: e.moduleId, isBridge: !!e.bridge })))}`);
|
|
186
228
|
}
|
|
229
|
+
/**
|
|
230
|
+
* A `chat.writable` object form names exactly what the assistant may write, so
|
|
231
|
+
* a typo in it silently narrows the assistant instead of failing — the model is
|
|
232
|
+
* simply told a field is not writable and gives up. Every listed name is
|
|
233
|
+
* therefore checked at boot, in the same style as the writable/scope check
|
|
234
|
+
* above: a misconfiguration is a boot failure, never a runtime surprise.
|
|
235
|
+
*/
|
|
236
|
+
validateWritableAllowLists() {
|
|
237
|
+
for (const entity of this.entities.values()) {
|
|
238
|
+
if (!entity.writableFields)
|
|
239
|
+
continue;
|
|
240
|
+
const described = new Set(entity.fields.map((field) => field.name));
|
|
241
|
+
for (const name of entity.writableFields) {
|
|
242
|
+
if (!described.has(name)) {
|
|
243
|
+
throw new Error(`Entity "${entity.type}" declares chat.writable field "${name}", which is not a described field on it.`);
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
const scopeKey = (0, writable_rules_1.scopeKeyOf)(entity);
|
|
247
|
+
for (const name of entity.writableRelationships ?? []) {
|
|
248
|
+
const relationship = entity.relationships.find((candidate) => candidate.name === name);
|
|
249
|
+
if (!relationship) {
|
|
250
|
+
throw new Error(`Entity "${entity.type}" declares chat.writable relationship "${name}", which is not a catalogued relationship on it.`);
|
|
251
|
+
}
|
|
252
|
+
if (relationship.isReverse || relationship.polymorphic) {
|
|
253
|
+
throw new Error(`Entity "${entity.type}" declares chat.writable relationship "${name}", which is read-only and cannot be written.`);
|
|
254
|
+
}
|
|
255
|
+
if (name === scopeKey) {
|
|
256
|
+
throw new Error(`Entity "${entity.type}" declares chat.writable relationship "${name}", which is the scope relationship and cannot be changed.`);
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
}
|
|
187
261
|
/**
|
|
188
262
|
* Resolve `chat.scope` into a Cypher-ready chain of hops ending at a
|
|
189
263
|
* `chat.scope === "self"` root. Runs once, at catalog build time: a chain
|
|
@@ -219,6 +293,7 @@ let GraphCatalogService = GraphCatalogService_1 = class GraphCatalogService {
|
|
|
219
293
|
seen.add(targetType);
|
|
220
294
|
path.push({
|
|
221
295
|
key: current.scopeKey,
|
|
296
|
+
dtoKey: rel.dtoKey ?? current.scopeKey,
|
|
222
297
|
cypherLabel: rel.relationship,
|
|
223
298
|
cypherDirection: rel.direction,
|
|
224
299
|
targetLabel: rel.model.labelName,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph.catalog.service.js","sourceRoot":"","sources":["../../../../src/agents/graph/services/graph.catalog.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"graph.catalog.service.js","sourceRoot":"","sources":["../../../../src/agents/graph/services/graph.catalog.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { CatalogEntity } from "../interfaces/graph.catalog.interface";
|
|
2
|
+
import type { BlockNoteService } from "../../../core/blocknote/services/blocknote.service";
|
|
3
|
+
/**
|
|
4
|
+
* The one sentence every write tool's description carries, so the model knows
|
|
5
|
+
* what a `kind: { type: "richtext" }` field expects. `describe_entity` says the
|
|
6
|
+
* same thing per field (`format: "markdown"`), and the catalogue's inline kind
|
|
7
|
+
* marker says it again in the system prompt — all three from this contract.
|
|
8
|
+
*/
|
|
9
|
+
export declare const RICHTEXT_HINT = "Rich-text fields (kind richtext) take markdown; it is stored as a document.";
|
|
10
|
+
/**
|
|
11
|
+
* A BlockNote-backed field is stored as a JSON string in its own string
|
|
12
|
+
* attribute — the convention every host-app entity already uses (e.g.
|
|
13
|
+
* `Npc.description`: `JSON.stringify` out, `JSON.parse` back). Detect that
|
|
14
|
+
* shape without trusting it: plain prose must never be mistaken for a
|
|
15
|
+
* document, so this requires an array whose first entry is an object with a
|
|
16
|
+
* string `type`, which is the minimal shape of a BlockNote block.
|
|
17
|
+
*
|
|
18
|
+
* Returns the parsed node array, or `null` when the string is not a serialised
|
|
19
|
+
* BlockNote document. The single implementation: the write path uses it to
|
|
20
|
+
* decide whether a value still needs converting, and the assistant uses it to
|
|
21
|
+
* decide whether a user message came from a rich composer.
|
|
22
|
+
*/
|
|
23
|
+
export declare function parseBlockNoteDocument(raw: string): unknown[] | null;
|
|
24
|
+
/**
|
|
25
|
+
* The value to STORE in a `kind: { type: "richtext" }` field.
|
|
26
|
+
*
|
|
27
|
+
* The read side already renders these fields to markdown for the model
|
|
28
|
+
* (`ToolFieldFormatterService.renderRichtext`), so the model writes markdown
|
|
29
|
+
* back. Storing that prose verbatim leaves a string the frontend then tries to
|
|
30
|
+
* `JSON.parse` into BlockNote blocks, and the record cannot be rendered at all
|
|
31
|
+
* ("Cannot read properties of undefined (reading 'dehydrate')"). So markdown
|
|
32
|
+
* is converted to a serialised BlockNote document here, symmetrically with the
|
|
33
|
+
* read.
|
|
34
|
+
*
|
|
35
|
+
* - a string that already IS a serialised BlockNote document: unchanged (a
|
|
36
|
+
* client-shaped payload must survive a round trip untouched);
|
|
37
|
+
* - any other non-empty string: treated as markdown and converted;
|
|
38
|
+
* - `null` / `undefined` / `""` and every non-string: unchanged, so clearing a
|
|
39
|
+
* field and non-text values behave exactly as before.
|
|
40
|
+
*/
|
|
41
|
+
export declare function toStoredRichtext(blockNote: BlockNoteService, value: unknown): Promise<unknown>;
|
|
42
|
+
/**
|
|
43
|
+
* Applies {@link toStoredRichtext} to every field the entity's catalog marks
|
|
44
|
+
* `kind: { type: "richtext" }`, returning a NEW map — the caller's own payload
|
|
45
|
+
* (and therefore the approval card, which renders the model's markdown as
|
|
46
|
+
* text) is never mutated.
|
|
47
|
+
*
|
|
48
|
+
* `blockNote` is optional so unit tests can exercise a write path without the
|
|
49
|
+
* converter; without it every field passes through unchanged.
|
|
50
|
+
*/
|
|
51
|
+
export declare function convertRichtextFields(blockNote: BlockNoteService | undefined, entity: CatalogEntity, fields: Record<string, unknown>): Promise<Record<string, unknown>>;
|
|
52
|
+
//# sourceMappingURL=richtext.write.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"richtext.write.d.ts","sourceRoot":"","sources":["../../../../src/agents/graph/services/richtext.write.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oDAAoD,CAAC;AAE3F;;;;;GAKG;AACH,eAAO,MAAM,aAAa,gFAAgF,CAAC;AAE3G;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,EAAE,GAAG,IAAI,CAYpE;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,gBAAgB,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAKpG;AAED;;;;;;;;GAQG;AACH,wBAAsB,qBAAqB,CACzC,SAAS,EAAE,gBAAgB,GAAG,SAAS,EACvC,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAWlC"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RICHTEXT_HINT = void 0;
|
|
4
|
+
exports.parseBlockNoteDocument = parseBlockNoteDocument;
|
|
5
|
+
exports.toStoredRichtext = toStoredRichtext;
|
|
6
|
+
exports.convertRichtextFields = convertRichtextFields;
|
|
7
|
+
/**
|
|
8
|
+
* The one sentence every write tool's description carries, so the model knows
|
|
9
|
+
* what a `kind: { type: "richtext" }` field expects. `describe_entity` says the
|
|
10
|
+
* same thing per field (`format: "markdown"`), and the catalogue's inline kind
|
|
11
|
+
* marker says it again in the system prompt — all three from this contract.
|
|
12
|
+
*/
|
|
13
|
+
exports.RICHTEXT_HINT = "Rich-text fields (kind richtext) take markdown; it is stored as a document.";
|
|
14
|
+
/**
|
|
15
|
+
* A BlockNote-backed field is stored as a JSON string in its own string
|
|
16
|
+
* attribute — the convention every host-app entity already uses (e.g.
|
|
17
|
+
* `Npc.description`: `JSON.stringify` out, `JSON.parse` back). Detect that
|
|
18
|
+
* shape without trusting it: plain prose must never be mistaken for a
|
|
19
|
+
* document, so this requires an array whose first entry is an object with a
|
|
20
|
+
* string `type`, which is the minimal shape of a BlockNote block.
|
|
21
|
+
*
|
|
22
|
+
* Returns the parsed node array, or `null` when the string is not a serialised
|
|
23
|
+
* BlockNote document. The single implementation: the write path uses it to
|
|
24
|
+
* decide whether a value still needs converting, and the assistant uses it to
|
|
25
|
+
* decide whether a user message came from a rich composer.
|
|
26
|
+
*/
|
|
27
|
+
function parseBlockNoteDocument(raw) {
|
|
28
|
+
const trimmed = raw.trimStart();
|
|
29
|
+
if (!trimmed.startsWith("["))
|
|
30
|
+
return null;
|
|
31
|
+
try {
|
|
32
|
+
const parsed = JSON.parse(trimmed);
|
|
33
|
+
if (!Array.isArray(parsed) || parsed.length === 0)
|
|
34
|
+
return null;
|
|
35
|
+
const first = parsed[0];
|
|
36
|
+
if (!first || typeof first !== "object" || typeof first.type !== "string")
|
|
37
|
+
return null;
|
|
38
|
+
return parsed;
|
|
39
|
+
}
|
|
40
|
+
catch {
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* The value to STORE in a `kind: { type: "richtext" }` field.
|
|
46
|
+
*
|
|
47
|
+
* The read side already renders these fields to markdown for the model
|
|
48
|
+
* (`ToolFieldFormatterService.renderRichtext`), so the model writes markdown
|
|
49
|
+
* back. Storing that prose verbatim leaves a string the frontend then tries to
|
|
50
|
+
* `JSON.parse` into BlockNote blocks, and the record cannot be rendered at all
|
|
51
|
+
* ("Cannot read properties of undefined (reading 'dehydrate')"). So markdown
|
|
52
|
+
* is converted to a serialised BlockNote document here, symmetrically with the
|
|
53
|
+
* read.
|
|
54
|
+
*
|
|
55
|
+
* - a string that already IS a serialised BlockNote document: unchanged (a
|
|
56
|
+
* client-shaped payload must survive a round trip untouched);
|
|
57
|
+
* - any other non-empty string: treated as markdown and converted;
|
|
58
|
+
* - `null` / `undefined` / `""` and every non-string: unchanged, so clearing a
|
|
59
|
+
* field and non-text values behave exactly as before.
|
|
60
|
+
*/
|
|
61
|
+
async function toStoredRichtext(blockNote, value) {
|
|
62
|
+
if (typeof value !== "string")
|
|
63
|
+
return value;
|
|
64
|
+
if (value.trim() === "")
|
|
65
|
+
return value;
|
|
66
|
+
if (parseBlockNoteDocument(value))
|
|
67
|
+
return value;
|
|
68
|
+
return JSON.stringify(await blockNote.createFromMarkdown(value));
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Applies {@link toStoredRichtext} to every field the entity's catalog marks
|
|
72
|
+
* `kind: { type: "richtext" }`, returning a NEW map — the caller's own payload
|
|
73
|
+
* (and therefore the approval card, which renders the model's markdown as
|
|
74
|
+
* text) is never mutated.
|
|
75
|
+
*
|
|
76
|
+
* `blockNote` is optional so unit tests can exercise a write path without the
|
|
77
|
+
* converter; without it every field passes through unchanged.
|
|
78
|
+
*/
|
|
79
|
+
async function convertRichtextFields(blockNote, entity, fields) {
|
|
80
|
+
const converted = { ...fields };
|
|
81
|
+
if (!blockNote)
|
|
82
|
+
return converted;
|
|
83
|
+
const richtext = new Set(entity.fields.filter((field) => field.kind?.type === "richtext").map((field) => field.name));
|
|
84
|
+
if (!richtext.size)
|
|
85
|
+
return converted;
|
|
86
|
+
for (const name of Object.keys(converted)) {
|
|
87
|
+
if (richtext.has(name))
|
|
88
|
+
converted[name] = await toStoredRichtext(blockNote, converted[name]);
|
|
89
|
+
}
|
|
90
|
+
return converted;
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=richtext.write.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"richtext.write.js","sourceRoot":"","sources":["../../../../src/agents/graph/services/richtext.write.ts"],"names":[],"mappings":";;;AAwBA,wDAYC;AAmBD,4CAKC;AAWD,sDAeC;AAnFD;;;;;GAKG;AACU,QAAA,aAAa,GAAG,6EAA6E,CAAC;AAE3G;;;;;;;;;;;;GAYG;AACH,SAAgB,sBAAsB,CAAC,GAAW;IAChD,MAAM,OAAO,GAAG,GAAG,CAAC,SAAS,EAAE,CAAC;IAChC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1C,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAC/D,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAA8B,CAAC;QACrD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QACvF,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACI,KAAK,UAAU,gBAAgB,CAAC,SAA2B,EAAE,KAAc;IAChF,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,KAAK,CAAC;IACtC,IAAI,sBAAsB,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAChD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,SAAS,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;AACnE,CAAC;AAED;;;;;;;;GAQG;AACI,KAAK,UAAU,qBAAqB,CACzC,SAAuC,EACvC,MAAqB,EACrB,MAA+B;IAE/B,MAAM,SAAS,GAA4B,EAAE,GAAG,MAAM,EAAE,CAAC;IACzD,IAAI,CAAC,SAAS;QAAE,OAAO,SAAS,CAAC;IAEjC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,KAAK,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IACtH,IAAI,CAAC,QAAQ,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAErC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1C,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,SAAS,CAAC,IAAI,CAAC,GAAG,MAAM,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/F,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { CatalogEntity, CatalogRelationship } from "../interfaces/graph.catalog.interface";
|
|
2
|
+
/**
|
|
3
|
+
* One place decides what a `chat.writable` entity exposes to the assistant, so
|
|
4
|
+
* `describe_entity` (which TELLS the model what it may write) and the operator's
|
|
5
|
+
* write tools (which REFUSE everything else) can never drift apart.
|
|
6
|
+
*
|
|
7
|
+
* Two declaration forms are compiled into the catalog:
|
|
8
|
+
* - legacy `chat.writable: true` — `writableFields` / `writableRelationships` are
|
|
9
|
+
* `undefined`, meaning "every described field, every forward non-polymorphic
|
|
10
|
+
* relationship except the scope one";
|
|
11
|
+
* - `ChatWritableConfig` — the allow-lists, with an omitted `relationships`
|
|
12
|
+
* compiled to `[]` (none).
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* The relationship that pins a record to the run's scope root. Writable types are
|
|
16
|
+
* exactly one hop from their root — the catalog rejects deeper ones at boot — so
|
|
17
|
+
* the first hop's key is that relationship.
|
|
18
|
+
*/
|
|
19
|
+
export declare const scopeKeyOf: (entity: CatalogEntity) => string | undefined;
|
|
20
|
+
/** Every field name the assistant may write on this entity, in declaration order. */
|
|
21
|
+
export declare const writableFieldNames: (entity: CatalogEntity) => string[];
|
|
22
|
+
export declare const isFieldWritable: (entity: CatalogEntity, name: string) => boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Why the generic write path must never touch a relationship:
|
|
25
|
+
* - `reverse`: serialisation-only, with no edge on this side;
|
|
26
|
+
* - `polymorphic`: a read-only chat traversal carrying no single target type
|
|
27
|
+
* (`targetType` is the `"*"` placeholder, which no scope check can honour);
|
|
28
|
+
* - `scope`: re-pointing it would move the record into another scope root;
|
|
29
|
+
* - `notListed`: the descriptor's `chat.writable.relationships` omits it.
|
|
30
|
+
*/
|
|
31
|
+
export type RelationshipRejection = "reverse" | "polymorphic" | "scope" | "notListed";
|
|
32
|
+
/** The reason this relationship may not be written, or `null` when it may. */
|
|
33
|
+
export declare const relationshipRejection: (entity: CatalogEntity, relationship: CatalogRelationship) => RelationshipRejection | null;
|
|
34
|
+
export declare const isRelationshipWritable: (entity: CatalogEntity, relationship: CatalogRelationship) => boolean;
|
|
35
|
+
/** Every relationship name the assistant may write on this entity, in catalog order. */
|
|
36
|
+
export declare const writableRelationshipNames: (entity: CatalogEntity) => string[];
|
|
37
|
+
//# sourceMappingURL=writable.rules.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"writable.rules.d.ts","sourceRoot":"","sources":["../../../../src/agents/graph/services/writable.rules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAE3F;;;;;;;;;;;GAWG;AAEH;;;;GAIG;AACH,eAAO,MAAM,UAAU,GAAI,QAAQ,aAAa,KAAG,MAAM,GAAG,SAAuC,CAAC;AAEpG,qFAAqF;AACrF,eAAO,MAAM,kBAAkB,GAAI,QAAQ,aAAa,KAAG,MAAM,EAC8B,CAAC;AAEhG,eAAO,MAAM,eAAe,GAAI,QAAQ,aAAa,EAAE,MAAM,MAAM,KAAG,OACN,CAAC;AAEjE;;;;;;;GAOG;AACH,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG,aAAa,GAAG,OAAO,GAAG,WAAW,CAAC;AAEtF,8EAA8E;AAC9E,eAAO,MAAM,qBAAqB,GAChC,QAAQ,aAAa,EACrB,cAAc,mBAAmB,KAChC,qBAAqB,GAAG,IAM1B,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,QAAQ,aAAa,EAAE,cAAc,mBAAmB,KAAG,OAC5C,CAAC;AAEvD,wFAAwF;AACxF,eAAO,MAAM,yBAAyB,GAAI,QAAQ,aAAa,KAAG,MAAM,EACwC,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.writableRelationshipNames = exports.isRelationshipWritable = exports.relationshipRejection = exports.isFieldWritable = exports.writableFieldNames = exports.scopeKeyOf = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* One place decides what a `chat.writable` entity exposes to the assistant, so
|
|
6
|
+
* `describe_entity` (which TELLS the model what it may write) and the operator's
|
|
7
|
+
* write tools (which REFUSE everything else) can never drift apart.
|
|
8
|
+
*
|
|
9
|
+
* Two declaration forms are compiled into the catalog:
|
|
10
|
+
* - legacy `chat.writable: true` — `writableFields` / `writableRelationships` are
|
|
11
|
+
* `undefined`, meaning "every described field, every forward non-polymorphic
|
|
12
|
+
* relationship except the scope one";
|
|
13
|
+
* - `ChatWritableConfig` — the allow-lists, with an omitted `relationships`
|
|
14
|
+
* compiled to `[]` (none).
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* The relationship that pins a record to the run's scope root. Writable types are
|
|
18
|
+
* exactly one hop from their root — the catalog rejects deeper ones at boot — so
|
|
19
|
+
* the first hop's key is that relationship.
|
|
20
|
+
*/
|
|
21
|
+
const scopeKeyOf = (entity) => entity.scope?.path[0]?.key;
|
|
22
|
+
exports.scopeKeyOf = scopeKeyOf;
|
|
23
|
+
/** Every field name the assistant may write on this entity, in declaration order. */
|
|
24
|
+
const writableFieldNames = (entity) => entity.writableFields ? [...entity.writableFields] : entity.fields.map((field) => field.name);
|
|
25
|
+
exports.writableFieldNames = writableFieldNames;
|
|
26
|
+
const isFieldWritable = (entity, name) => !entity.writableFields || entity.writableFields.includes(name);
|
|
27
|
+
exports.isFieldWritable = isFieldWritable;
|
|
28
|
+
/** The reason this relationship may not be written, or `null` when it may. */
|
|
29
|
+
const relationshipRejection = (entity, relationship) => {
|
|
30
|
+
if (relationship.isReverse)
|
|
31
|
+
return "reverse";
|
|
32
|
+
if (relationship.polymorphic)
|
|
33
|
+
return "polymorphic";
|
|
34
|
+
if (relationship.name === (0, exports.scopeKeyOf)(entity))
|
|
35
|
+
return "scope";
|
|
36
|
+
if (entity.writableRelationships && !entity.writableRelationships.includes(relationship.name))
|
|
37
|
+
return "notListed";
|
|
38
|
+
return null;
|
|
39
|
+
};
|
|
40
|
+
exports.relationshipRejection = relationshipRejection;
|
|
41
|
+
const isRelationshipWritable = (entity, relationship) => (0, exports.relationshipRejection)(entity, relationship) === null;
|
|
42
|
+
exports.isRelationshipWritable = isRelationshipWritable;
|
|
43
|
+
/** Every relationship name the assistant may write on this entity, in catalog order. */
|
|
44
|
+
const writableRelationshipNames = (entity) => entity.relationships.filter((relationship) => (0, exports.isRelationshipWritable)(entity, relationship)).map((r) => r.name);
|
|
45
|
+
exports.writableRelationshipNames = writableRelationshipNames;
|
|
46
|
+
//# sourceMappingURL=writable.rules.js.map
|