@mastra/factory 0.21.0-alpha.2 → 0.21.0-alpha.4

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 (85) hide show
  1. package/dist/auth.d.ts +7 -12
  2. package/dist/auth.d.ts.map +1 -1
  3. package/dist/auth.js +20 -1
  4. package/dist/auth.js.map +1 -1
  5. package/dist/factory.d.ts +9 -0
  6. package/dist/factory.d.ts.map +1 -1
  7. package/dist/factory.js +56 -23
  8. package/dist/factory.js.map +1 -1
  9. package/dist/integrations/github/routes.js +1 -0
  10. package/dist/integrations/github/routes.js.map +1 -1
  11. package/dist/integrations/linear/issue-reconciler.d.ts +3 -1
  12. package/dist/integrations/linear/issue-reconciler.d.ts.map +1 -1
  13. package/dist/integrations/linear/issue-reconciler.js +1 -1
  14. package/dist/integrations/linear/issue-reconciler.js.map +1 -1
  15. package/dist/integrations/platform/linear/integration.d.ts.map +1 -1
  16. package/dist/integrations/platform/linear/integration.js +10 -9
  17. package/dist/integrations/platform/linear/integration.js.map +1 -1
  18. package/dist/integrations/slack/integration.d.ts.map +1 -1
  19. package/dist/integrations/slack/integration.js +0 -1
  20. package/dist/integrations/slack/integration.js.map +1 -1
  21. package/dist/integrations/slack/slack.d.ts +0 -17
  22. package/dist/integrations/slack/slack.d.ts.map +1 -1
  23. package/dist/integrations/slack/slack.js +8 -40
  24. package/dist/integrations/slack/slack.js.map +1 -1
  25. package/dist/packages/_internals/workspace/dist/index.js +3 -0
  26. package/dist/packages/_internals/workspace/dist/index.js.map +1 -1
  27. package/dist/routes/config.d.ts +15 -36
  28. package/dist/routes/config.d.ts.map +1 -1
  29. package/dist/routes/config.js +72 -123
  30. package/dist/routes/config.js.map +1 -1
  31. package/dist/routes/knowledge.d.ts +115 -21
  32. package/dist/routes/knowledge.d.ts.map +1 -1
  33. package/dist/routes/knowledge.js +715 -30
  34. package/dist/routes/knowledge.js.map +1 -1
  35. package/dist/routes/oauth.d.ts +0 -3
  36. package/dist/routes/oauth.d.ts.map +1 -1
  37. package/dist/routes/oauth.js +2 -10
  38. package/dist/routes/oauth.js.map +1 -1
  39. package/dist/routes/provider-credentials.d.ts.map +1 -1
  40. package/dist/routes/provider-credentials.js +2 -1
  41. package/dist/routes/provider-credentials.js.map +1 -1
  42. package/dist/routes/surface.d.ts +1 -0
  43. package/dist/routes/surface.d.ts.map +1 -1
  44. package/dist/routes/surface.js +6 -3
  45. package/dist/routes/surface.js.map +1 -1
  46. package/dist/rules/binding-context.d.ts +19 -0
  47. package/dist/rules/binding-context.d.ts.map +1 -1
  48. package/dist/rules/binding-context.js +39 -1
  49. package/dist/rules/binding-context.js.map +1 -1
  50. package/dist/rules/dispatcher.d.ts +2 -13
  51. package/dist/rules/dispatcher.d.ts.map +1 -1
  52. package/dist/rules/dispatcher.js +0 -6
  53. package/dist/rules/dispatcher.js.map +1 -1
  54. package/dist/rules/processor.d.ts +35 -1
  55. package/dist/rules/processor.d.ts.map +1 -1
  56. package/dist/rules/processor.js +80 -4
  57. package/dist/rules/processor.js.map +1 -1
  58. package/dist/rules/start-coordinator.d.ts +1 -2
  59. package/dist/rules/start-coordinator.d.ts.map +1 -1
  60. package/dist/rules/start-coordinator.js +2 -6
  61. package/dist/rules/start-coordinator.js.map +1 -1
  62. package/dist/session/factory-session.d.ts +5 -43
  63. package/dist/session/factory-session.d.ts.map +1 -1
  64. package/dist/session/factory-session.js +6 -47
  65. package/dist/session/factory-session.js.map +1 -1
  66. package/dist/session/memory-settings-hydration.d.ts +17 -89
  67. package/dist/session/memory-settings-hydration.d.ts.map +1 -1
  68. package/dist/session/memory-settings-hydration.js +25 -111
  69. package/dist/session/memory-settings-hydration.js.map +1 -1
  70. package/dist/storage/domains/memory-settings/base.d.ts +5 -17
  71. package/dist/storage/domains/memory-settings/base.d.ts.map +1 -1
  72. package/dist/storage/domains/memory-settings/base.js +8 -15
  73. package/dist/storage/domains/memory-settings/base.js.map +1 -1
  74. package/dist/supervisor/session.d.ts +2 -4
  75. package/dist/supervisor/session.d.ts.map +1 -1
  76. package/dist/supervisor/session.js +3 -5
  77. package/dist/supervisor/session.js.map +1 -1
  78. package/dist/workspace.d.ts.map +1 -1
  79. package/dist/workspace.js +2 -2
  80. package/dist/workspace.js.map +1 -1
  81. package/package.json +8 -8
  82. package/dist/routes/om-seed.d.ts +0 -22
  83. package/dist/routes/om-seed.d.ts.map +0 -1
  84. package/dist/routes/om-seed.js +0 -40
  85. package/dist/routes/om-seed.js.map +0 -1
@@ -1,10 +1,9 @@
1
1
  /**
2
2
  * Read-only Mastra `apiRoutes` exposing the factory project's knowledge graph.
3
3
  *
4
- * Serves the Knowledge page in factory-ui: a polling graph snapshot (nodes
5
- * as nodes, wikilink edges derived from record text), a node flyout payload
6
- * with per-record provenance, and the recent activity feed. Every endpoint is a
7
- * GET — this module never writes knowledge.
4
+ * Serves the Knowledge page in factory-ui through bounded scope-tree,
5
+ * selected-subgraph, node-detail, and activity reads. Every endpoint is a GET;
6
+ * this module never writes knowledge.
8
7
  *
9
8
  * Scoping is fail-closed: the org and resource rungs are derived server-side
10
9
  * from the authenticated caller and the validated `:id` project. The DEFAULT
@@ -15,11 +14,65 @@
15
14
  * visible under the caller's org/project prefix; unknown or cross-org threads
16
15
  * 404 — never a silent fallback to the default view.
17
16
  */
17
+ import type { Knowledge } from '@mastra/core/knowledge';
18
18
  import type { ApiRoute } from '@mastra/core/server';
19
- import type { KnowledgeScope, KnowledgeStorage } from '@mastra/core/storage';
19
+ import type { KnowledgeScope, KnowledgeScopeNodeSummary } from '@mastra/core/storage';
20
20
  import type { FactoryProjectsStorage } from '../storage/domains/projects/base.js';
21
21
  import type { RouteDependencies } from './route.js';
22
22
  import { Route } from './route.js';
23
+ export type KnowledgeScopeLevel = 'org' | 'resource' | 'thread';
24
+ export interface KnowledgeScopeTreeNode extends KnowledgeScopeNodeSummary {
25
+ /** Viewer-visible direct members, capped by the route's node window. */
26
+ memberCount: number;
27
+ /** True when more direct members may exist beyond `memberCount`. */
28
+ memberCountTruncated: boolean;
29
+ /** Viewer-visible content nodes directly assigned to this scope. */
30
+ contentNodeCount: number;
31
+ /** Direct child scopes available for lazy expansion. */
32
+ childScopeCount: number;
33
+ }
34
+ export interface KnowledgeSearchResult {
35
+ id: string;
36
+ name: string;
37
+ kind: string;
38
+ type: 'scope' | 'node';
39
+ rung: KnowledgeScopeLevel | null;
40
+ /** Present when a thread-scoped content result needs to restore its owning session lens. */
41
+ threadId?: string;
42
+ }
43
+ export interface KnowledgeSearchPayload {
44
+ results: KnowledgeSearchResult[];
45
+ truncated: boolean;
46
+ }
47
+ export interface KnowledgeScopeTreePayload {
48
+ roots: Array<{
49
+ level: KnowledgeScopeLevel;
50
+ id: string;
51
+ available: boolean;
52
+ /**
53
+ * Set when a reconciled structural scope node has this rung's canonical
54
+ * address (`org:<orgId>`, `resource:<projectId>`, `thread:<threadId>`) —
55
+ * the client renders ONE merged entry (structural name, identity marker)
56
+ * that opens the structural lens instead of duplicating the scope.
57
+ */
58
+ scopeNodeId?: string;
59
+ /** Structural name of the matched scope node (present iff scopeNodeId). */
60
+ name?: string;
61
+ }>;
62
+ defaultLevel: 'resource';
63
+ /**
64
+ * Reconciled structural scope tree (isScope nodes with membership edges),
65
+ * e.g. `mastra → features → memory` and `repo:mastra → issues/prs`. Omitted
66
+ * only when the storage adapter does not expose structural scope nodes.
67
+ */
68
+ scopeNodes?: KnowledgeScopeTreeNode[];
69
+ /** Cursor for the next sibling page (roots when parentId is omitted). */
70
+ nextCursor?: string;
71
+ /** Initial child-page cursors keyed by parent scope id. */
72
+ childCursors?: Record<string, string>;
73
+ /** True when the org has more scopes than the route reads, so whole scopes are missing from the tree. */
74
+ truncated?: boolean;
75
+ }
23
76
  /** Window caps. Injectable at construction only — never per-request. */
24
77
  export interface KnowledgeRouteLimits {
25
78
  /** Max nodes in a graph snapshot (newest-first). */
@@ -28,13 +81,22 @@ export interface KnowledgeRouteLimits {
28
81
  maxRecords: number;
29
82
  /** Max fallback `resolveNode` store lookups per request (deduped per unique name+scope). */
30
83
  maxFallbackLookups: number;
84
+ /** Max `listScopeNodes` pages (of up to 1,000 scopes) read for one org; past it responses report `truncated`. */
85
+ maxOrgScopePages: number;
31
86
  }
32
87
  export interface KnowledgeRoutesDeps extends RouteDependencies {
33
88
  /** Factory projects domain — validates the `:id` project belongs to the caller's org. */
34
89
  projects: FactoryProjectsStorage;
35
- /** Lazy handle to the knowledge storage domain; endpoints 503 when absent. */
36
- knowledge: () => Promise<KnowledgeStorage | undefined>;
90
+ /** Lazy handle to the host-registered Knowledge runtime; endpoints 503 when absent. */
91
+ knowledge: (key: string) => Promise<Knowledge | undefined>;
92
+ /** Host-selected Knowledge key. Requests cannot override it; endpoints 503 when it does not resolve. */
93
+ defaultKnowledgeKey?: string;
37
94
  limits?: Partial<KnowledgeRouteLimits>;
95
+ /**
96
+ * Current title of a thread, read when a session scope is listed so its label follows renames.
97
+ * Sessions fall back to `session <first 8 of id>` when absent or untitled.
98
+ */
99
+ threadTitle?: (threadId: string) => Promise<string | undefined>;
38
100
  }
39
101
  /** A graph node. `recordCount` is window-derived (records inside the snapshot window only). */
40
102
  export interface KnowledgeGraphNode {
@@ -42,9 +104,12 @@ export interface KnowledgeGraphNode {
42
104
  name: string;
43
105
  kind: string;
44
106
  description?: string;
45
- scope: KnowledgeScope;
46
- /** Deepest rung of the record's scope: org | resource | thread. */
47
- rung: 'org' | 'resource' | 'thread';
107
+ /** Null for structural scope-node members (global, not identity-scoped). */
108
+ scope: KnowledgeScope | null;
109
+ /** Deepest rung of the record's scope: org | resource | thread; null for scope nodes. */
110
+ rung: 'org' | 'resource' | 'thread' | null;
111
+ /** True for structural scope nodes (member-lens drill targets); absent for content nodes. */
112
+ isScope?: boolean;
48
113
  /**
49
114
  * True when a non-deleted pinned record's wikilinks reference ONLY this
50
115
  * node (A9: multi-target pins mark their edges instead — the pin is
@@ -53,23 +118,30 @@ export interface KnowledgeGraphNode {
53
118
  pinned: boolean;
54
119
  /** Records owned by this node INSIDE the snapshot window (not a total). */
55
120
  recordCount: number;
56
- createdAt: string;
57
- updatedAt: string;
121
+ /** Viewer-visible direct-member counts, present only for structural scope nodes. */
122
+ memberCount?: number;
123
+ memberCountTruncated?: boolean;
124
+ contentNodeCount?: number;
125
+ childScopeCount?: number;
126
+ /** Omitted for a structural lens root when the adapter cannot read it back as a node. */
127
+ createdAt?: string;
128
+ updatedAt?: string;
58
129
  }
59
130
  export interface KnowledgeGraphEdge {
60
131
  id: string;
61
- /** The owning node of the record (its `node`). */
132
+ /** The owning node of the record (its `node`); the scope node for containment edges. */
62
133
  source: string;
63
- /** The wikilink-resolved node. */
134
+ /** The wikilink-resolved node; the contained member for containment edges. */
64
135
  target: string;
65
136
  /**
66
- * Always 'wikilink': the record's `node` is the edge SOURCE, so the
67
- * plan's "parent link" collapses into the wikilink edge — nodes carry no
68
- * separate parent field to derive a second edge type from.
137
+ * 'wikilink': derived from a record's wikilinks (the record's `node` is the
138
+ * edge SOURCE, so the plan's "parent link" collapses into the wikilink edge).
139
+ * 'contains': structural lens only — the selected scope node contains the
140
+ * target member, so the clicked scope is visible as its own graph root.
69
141
  */
70
- type: 'wikilink';
71
- /** The record whose text produced the edge. */
72
- recordId: string;
142
+ type: 'wikilink' | 'contains';
143
+ /** The record whose text produced the edge; absent on containment edges. */
144
+ recordId?: string;
73
145
  /**
74
146
  * True when the edge is derived from a PINNED record linking two nodes —
75
147
  * the pin marks the relationship, so the accent lives on the edge (A9).
@@ -100,10 +172,12 @@ export interface KnowledgeGraphPayload {
100
172
  records: KnowledgeGraphRecord[];
101
173
  /** True when the node or record window cap was hit (newest-first window). */
102
174
  truncated: boolean;
103
- /** Wikilink targets that resolved in the store but fell outside the node window. */
175
+ /** Authorized wikilink targets outside the node window, including enough scope context for a deep-link jump. */
104
176
  outOfWindow: Array<{
105
177
  id: string;
106
178
  name: string;
179
+ scope: KnowledgeScope;
180
+ rung: 'org' | 'resource' | 'thread';
107
181
  }>;
108
182
  /** Unique unknown names skipped once the fallback-lookup cap was hit. */
109
183
  unresolvedCapped: {
@@ -132,12 +206,32 @@ export interface KnowledgeNodeRecordPayload {
132
206
  pinned: boolean;
133
207
  metadata?: Record<string, unknown>;
134
208
  }
209
+ export interface KnowledgeActivityPayload {
210
+ events: Array<{
211
+ id: string;
212
+ action: string;
213
+ recordType: string;
214
+ recordId?: string;
215
+ scope: KnowledgeScope;
216
+ node: {
217
+ id: string;
218
+ name: string;
219
+ rung: 'org' | 'resource' | 'thread';
220
+ threadId?: string;
221
+ };
222
+ createdAt: string;
223
+ }>;
224
+ nextCursor?: string;
225
+ /** The scope has more members than the activity filter reads; events for the rest are omitted. */
226
+ truncated?: true;
227
+ }
135
228
  export interface KnowledgeNodePayload {
136
229
  node: {
137
230
  id: string;
138
231
  name: string;
139
232
  kind: string;
140
233
  content: string;
234
+ description?: string;
141
235
  scope: KnowledgeScope;
142
236
  rung: 'org' | 'resource' | 'thread';
143
237
  createdAt: string;
@@ -1 +1 @@
1
- {"version":3,"file":"knowledge.d.ts","sourceRoot":"","sources":["../../src/routes/knowledge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"knowledge.d.ts","sourceRoot":"","sources":["../../src/routes/knowledge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,KAAK,EAIV,cAAc,EACd,yBAAyB,EAG1B,MAAM,sBAAsB,CAAC;AAU9B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAClF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AA+BnC,MAAM,MAAM,mBAAmB,GAAG,KAAK,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEhE,MAAM,WAAW,sBAAuB,SAAQ,yBAAyB;IACvE,wEAAwE;IACxE,WAAW,EAAE,MAAM,CAAC;IACpB,oEAAoE;IACpE,oBAAoB,EAAE,OAAO,CAAC;IAC9B,oEAAoE;IACpE,gBAAgB,EAAE,MAAM,CAAC;IACzB,wDAAwD;IACxD,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IACvB,IAAI,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACjC,4FAA4F;IAC5F,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,qBAAqB,EAAE,CAAC;IACjC,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,KAAK,CAAC;QACX,KAAK,EAAE,mBAAmB,CAAC;QAC3B,EAAE,EAAE,MAAM,CAAC;QACX,SAAS,EAAE,OAAO,CAAC;QACnB;;;;;WAKG;QACH,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,2EAA2E;QAC3E,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;IACH,YAAY,EAAE,UAAU,CAAC;IACzB;;;;OAIG;IACH,UAAU,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACtC,yEAAyE;IACzE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2DAA2D;IAC3D,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,yGAAyG;IACzG,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,wEAAwE;AACxE,MAAM,WAAW,oBAAoB;IACnC,oDAAoD;IACpD,QAAQ,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,UAAU,EAAE,MAAM,CAAC;IACnB,4FAA4F;IAC5F,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iHAAiH;IACjH,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AASD,MAAM,WAAW,mBAAoB,SAAQ,iBAAiB;IAC5D,yFAAyF;IACzF,QAAQ,EAAE,sBAAsB,CAAC;IACjC,uFAAuF;IACvF,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC;IAC3D,wGAAwG;IACxG,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,MAAM,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACvC;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CACjE;AAED,+FAA+F;AAC/F,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4EAA4E;IAC5E,KAAK,EAAE,cAAc,GAAG,IAAI,CAAC;IAC7B,yFAAyF;IACzF,IAAI,EAAE,KAAK,GAAG,UAAU,GAAG,QAAQ,GAAG,IAAI,CAAC;IAC3C,6FAA6F;IAC7F,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,MAAM,EAAE,OAAO,CAAC;IAChB,2EAA2E;IAC3E,WAAW,EAAE,MAAM,CAAC;IACpB,oFAAoF;IACpF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,yFAAyF;IACzF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,wFAAwF;IACxF,MAAM,EAAE,MAAM,CAAC;IACf,8EAA8E;IAC9E,MAAM,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,IAAI,EAAE,UAAU,GAAG,UAAU,CAAC;IAC9B,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,oBAAoB;IACnC,qBAAqB;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,2EAA2E;IAC3E,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAC5B,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAC5B,OAAO,EAAE,oBAAoB,EAAE,CAAC;IAChC,6EAA6E;IAC7E,SAAS,EAAE,OAAO,CAAC;IACnB,gHAAgH;IAChH,WAAW,EAAE,KAAK,CAAC;QACjB,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,cAAc,CAAC;QACtB,IAAI,EAAE,KAAK,GAAG,UAAU,GAAG,QAAQ,CAAC;KACrC,CAAC,CAAC;IACH,yEAAyE;IACzE,gBAAgB,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IACrD,mFAAmF;IACnF,SAAS,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IACvD,qFAAqF;IACrF,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,0BAA0B;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,0FAA0F;IAC1F,QAAQ,EAAE,OAAO,GAAG,UAAU,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,cAAc,CAAC;IACtB,IAAI,EAAE,KAAK,GAAG,UAAU,GAAG,QAAQ,CAAC;IACpC,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,KAAK,CAAC;QACZ,EAAE,EAAE,MAAM,CAAC;QACX,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,cAAc,CAAC;QACtB,IAAI,EAAE;YACJ,EAAE,EAAE,MAAM,CAAC;YACX,IAAI,EAAE,MAAM,CAAC;YACb,IAAI,EAAE,KAAK,GAAG,UAAU,GAAG,QAAQ,CAAC;YACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;SACnB,CAAC;QACF,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC,CAAC;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kGAAkG;IAClG,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB;AAOD,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE;QACJ,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,cAAc,CAAC;QACtB,IAAI,EAAE,KAAK,GAAG,UAAU,GAAG,QAAQ,CAAC;QACpC,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,OAAO,EAAE,0BAA0B,EAAE,CAAC;CACvC;AA8MD,qBAAa,eAAgB,SAAQ,KAAK,CAAC,mBAAmB,CAAC;;gBAGjD,IAAI,EAAE,mBAAmB;IAwQrC,MAAM,IAAI,QAAQ,EAAE;CA61BrB"}