interaqt 1.5.9 → 1.6.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 (39) hide show
  1. package/agent/agentspace/knowledge/generator/api-reference.md +14 -5
  2. package/agent/agentspace/knowledge/usage/04-reactive-computations.md +18 -28
  3. package/agent/agentspace/knowledge/usage/14-api-reference.md +12 -2
  4. package/agent/skill/interaqt-patterns.md +3 -1
  5. package/agent/skill/interaqt-reference.md +26 -1
  6. package/dist/core/Custom.d.ts +16 -0
  7. package/dist/core/Custom.d.ts.map +1 -1
  8. package/dist/core/Transform.d.ts +0 -7
  9. package/dist/core/Transform.d.ts.map +1 -1
  10. package/dist/index.js +4376 -4038
  11. package/dist/index.js.map +1 -1
  12. package/dist/runtime/ComputationSourceMap.d.ts +4 -0
  13. package/dist/runtime/ComputationSourceMap.d.ts.map +1 -1
  14. package/dist/runtime/Scheduler.d.ts +17 -1
  15. package/dist/runtime/Scheduler.d.ts.map +1 -1
  16. package/dist/runtime/computations/Any.d.ts +5 -1
  17. package/dist/runtime/computations/Any.d.ts.map +1 -1
  18. package/dist/runtime/computations/Average.d.ts +5 -1
  19. package/dist/runtime/computations/Average.d.ts.map +1 -1
  20. package/dist/runtime/computations/Computation.d.ts +49 -0
  21. package/dist/runtime/computations/Computation.d.ts.map +1 -1
  22. package/dist/runtime/computations/Count.d.ts +5 -1
  23. package/dist/runtime/computations/Count.d.ts.map +1 -1
  24. package/dist/runtime/computations/Custom.d.ts +4 -1
  25. package/dist/runtime/computations/Custom.d.ts.map +1 -1
  26. package/dist/runtime/computations/Every.d.ts +5 -1
  27. package/dist/runtime/computations/Every.d.ts.map +1 -1
  28. package/dist/runtime/computations/Summation.d.ts +5 -1
  29. package/dist/runtime/computations/Summation.d.ts.map +1 -1
  30. package/dist/runtime/computations/Transform.d.ts +3 -1
  31. package/dist/runtime/computations/Transform.d.ts.map +1 -1
  32. package/dist/runtime/computations/WeightedSummation.d.ts +13 -4
  33. package/dist/runtime/computations/WeightedSummation.d.ts.map +1 -1
  34. package/dist/runtime/errors/ComputationErrors.d.ts +3 -0
  35. package/dist/runtime/errors/ComputationErrors.d.ts.map +1 -1
  36. package/dist/runtime/errors/index.d.ts +1 -1
  37. package/dist/runtime/errors/index.d.ts.map +1 -1
  38. package/dist/runtime/migration.d.ts.map +1 -1
  39. package/package.json +1 -1
@@ -1028,6 +1028,8 @@ Transform supports two modes of operation:
1028
1028
  - **Context**: `this` is bound to the Controller instance, providing access to system APIs via `this.system.storage`, `this.globals`, etc.
1029
1029
  - **Signature**: `function(this: Controller, mutationEvent: MutationEvent): any | any[]`
1030
1030
 
1031
+ Transform does not accept `dataDeps`. For cross-source enrichment, persist the needed values on the source event/record or use a `Custom` computation.
1032
+
1031
1033
  **Event Dependencies (eventDeps)**
1032
1034
 
1033
1035
  The `eventDeps` parameter allows Transform to react to specific mutation events (create, update, delete) on entities. This is the recommended approach for transforming data based on interactions or system events.
@@ -1688,10 +1690,14 @@ Custom.create(config: CustomConfig): CustomInstance
1688
1690
  - For Property computation: use `type: 'property'` with `attributeQuery` to access current record and its relations
1689
1691
  - For Dictionary computation: use `type: 'records'` with `source: EntityName`
1690
1692
  - For accessing dictionaries: use `type: 'global'` with `source: DictionaryInstance`
1693
+ - `config.incrementalDataDeps` (string[], optional): Required for simple incremental computations. Lists exactly which data dependency keys are resolved before `incrementalCompute` / `incrementalPatchCompute`; use `[]` when the event itself is enough.
1694
+ - `config.planIncremental` (function, optional): Required instead of `incrementalDataDeps` for advanced incremental computations. Return `{ type: 'incremental', dataDepKeys, needsLastValue? }`, `{ type: 'fullRecompute', reason }`, or `{ type: 'skip', reason }`.
1691
1695
  - `config.useLastValue` (boolean, optional): Whether to use last computed value in incremental computation
1692
1696
  - `config.attributeQuery` (AttributeQueryData, optional): Attribute query configuration
1693
1697
  - `config.concurrency` (`'serializable' | 'atomic-safe'`, optional): Defaults to `'serializable'`. Serializable custom computations are retried in PostgreSQL `SERIALIZABLE` transactions. Use `'atomic-safe'` only when the callback is explicitly written with atomic state, idempotent patches, or other safe primitives.
1694
1698
 
1699
+ If `incrementalCompute` or `incrementalPatchCompute` is provided without `incrementalDataDeps` or `planIncremental`, runtime setup fails with `ComputationProtocolError`. Incremental callbacks receive only the planned partial `dataDeps`, not all declared dependencies.
1700
+
1695
1701
  **Retry safety**
1696
1702
 
1697
1703
  Custom `compute`, `incrementalCompute`, `incrementalPatchCompute`, and `asyncReturn` callbacks may be replayed after transaction retry. Keep them deterministic and avoid irreversible external IO. Put post-commit external work in `recordMutationSideEffects`.
@@ -1720,7 +1726,7 @@ const userStats = Dictionary.create({
1720
1726
  attributeQuery: ['id', 'authorId', 'status']
1721
1727
  }
1722
1728
  },
1723
- compute: async function(this: Controller, dataContext, args, state, dataDeps) {
1729
+ compute: async function(dataDeps) {
1724
1730
  const activeUsers = dataDeps.users.filter(u => u.status === 'active');
1725
1731
  const publishedPosts = dataDeps.posts.filter(p => p.status === 'published');
1726
1732
 
@@ -1759,19 +1765,22 @@ const counterDict = Dictionary.create({
1759
1765
  attributeQuery: ['value']
1760
1766
  }
1761
1767
  },
1768
+ incrementalDataDeps: [],
1762
1769
  compute: async function(dataDeps) {
1763
1770
  const total = dataDeps.counters.reduce((sum, c) => sum + (c.value || 0), 0);
1764
1771
  return { total, count: dataDeps.counters.length };
1765
1772
  },
1766
1773
  incrementalCompute: async function(lastValue, mutationEvent, record, dataDeps) {
1767
1774
  console.log('Previous value:', lastValue);
1768
- const total = dataDeps.counters.reduce((sum, c) => sum + (c.value || 0), 0);
1769
- const diff = total - (lastValue?.total || 0);
1775
+ const delta = mutationEvent.type === 'delete'
1776
+ ? -(mutationEvent.oldRecord?.value || 0)
1777
+ : (mutationEvent.record?.value || 0) - (mutationEvent.oldRecord?.value || 0);
1778
+ const total = (lastValue?.total || 0) + delta;
1770
1779
 
1771
1780
  return {
1772
1781
  total,
1773
- count: dataDeps.counters.length,
1774
- lastChange: diff,
1782
+ count: (lastValue?.count || 0) + (mutationEvent.type === 'create' ? 1 : mutationEvent.type === 'delete' ? -1 : 0),
1783
+ lastChange: delta,
1775
1784
  timestamp: Math.floor(Date.now()/1000) // In seconds
1776
1785
  };
1777
1786
  },
@@ -87,6 +87,8 @@ Built-in computations such as Count, Summation, Average, Every, Any, WeightedSum
87
87
 
88
88
  Custom computations are different because interaqt cannot inspect user callback logic. `Custom.create()` defaults to `concurrency: 'serializable'`, so the framework promotes the transaction to PostgreSQL `SERIALIZABLE` and retries on `40001` / `40P01`. Use `concurrency: 'atomic-safe'` only when the custom computation is explicitly written with atomic state, idempotent patches, or other safe primitives.
89
89
 
90
+ Custom incremental computations must declare an incremental plan. Use `incrementalDataDeps: [...]` for the common case, or `planIncremental(event, record, context)` when the computation needs to choose between incremental, full recompute, and skip per event. Incremental callbacks receive only the planned partial `dataDeps`; the runtime no longer resolves all declared dependencies before incremental execution.
91
+
90
92
  Because retry replays the transaction attempt, `guard`, `mapEventData`, `resolve`, computation callbacks, `afterDispatch`, and `asyncReturn` must be deterministic and retry-safe. Put irreversible external IO in `postCommit` for interaction-specific effects or `recordMutationSideEffects` for mutation-driven effects; both run after the final commit.
91
93
 
92
94
  ### Scoped Atomic Sequences
@@ -871,31 +873,25 @@ const ActivityReward = Entity.create({
871
873
  ],
872
874
  computation: Transform.create({
873
875
  record: InteractionEventEntity,
874
- attributeQuery: ['interactionName', 'user', 'createdAt'],
875
- dataDeps: {
876
- users: {
877
- type: 'records',
878
- source: User,
879
- attributeQuery: ['username', 'monthlyLoginCount']
880
- }
881
- },
882
- callback: (interactionEvents, dataDeps) => {
876
+ attributeQuery: ['interactionName', 'user', 'payload', 'createdAt'],
877
+ callback: (interactionEvents) => {
883
878
  // Transform essence: define data transformation rules
884
- // Input: InteractionEventEntity data + dependency data
879
+ // Input: InteractionEventEntity data
885
880
  // Output: ActivityReward data (or null)
886
881
 
887
882
  return interactionEvents
888
883
  .filter(event => event.interactionName === 'userLogin')
889
884
  .map(event => {
890
- const user = dataDeps.users.find(u => u.id === event.user.id);
885
+ const monthlyLoginCount = event.payload?.monthlyLoginCount || 0;
886
+ const username = event.payload?.username || 'User';
891
887
 
892
888
  // Declare transformation condition: when user monthly login count >= 10, this interaction data transforms to reward data
893
- if (user && user.monthlyLoginCount >= 10) {
889
+ if (monthlyLoginCount >= 10) {
894
890
  return {
895
891
  type: 'frequent_user',
896
- description: `${user.username} received active user reward`,
892
+ description: `${username} received active user reward`,
897
893
  createdAt: event.createdAt,
898
- userId: user.id
894
+ userId: event.user.id
899
895
  };
900
896
  }
901
897
 
@@ -924,28 +920,22 @@ const DirectorMemo = Entity.create({
924
920
  computation: Transform.create({
925
921
  record: InteractionEventEntity,
926
922
  attributeQuery: ['interactionName', 'user', 'payload', 'createdAt'],
927
- dataDeps: {
928
- users: {
929
- type: 'records',
930
- source: User,
931
- attributeQuery: ['username', 'currentMonthLeaveCount']
932
- }
933
- },
934
- callback: (interactionEvents, dataDeps) => {
923
+ callback: (interactionEvents) => {
935
924
  // Declare data transformation relationship:
936
- // Input: submitLeaveRequest interaction data + user data
925
+ // Input: submitLeaveRequest interaction data
937
926
  // Output: qualifying DirectorMemo data
938
927
 
939
928
  return interactionEvents
940
929
  .filter(event => event.interactionName === 'submitLeaveRequest')
941
930
  .map(event => {
942
- const user = dataDeps.users.find(u => u.id === event.user.id);
931
+ const username = event.payload?.username || 'User';
932
+ const currentMonthLeaveCount = event.payload?.currentMonthLeaveCount || 0;
943
933
 
944
934
  // Transformation rule: when user's current month leave count >= 3, this interaction data transforms to memo data
945
- if (user && user.currentMonthLeaveCount >= 3) {
935
+ if (currentMonthLeaveCount >= 3) {
946
936
  return {
947
- content: `${user.username} taking leave for the ${user.currentMonthLeaveCount}th time this month, needs attention`,
948
- priority: user.currentMonthLeaveCount >= 5 ? 'urgent' : 'high',
937
+ content: `${username} taking leave for the ${currentMonthLeaveCount}th time this month, needs attention`,
938
+ priority: currentMonthLeaveCount >= 5 ? 'urgent' : 'high',
949
939
  createdAt: event.createdAt
950
940
  };
951
941
  }
@@ -2237,4 +2227,4 @@ import { StyleVersionRelation } from '../relations/StyleVersionRelation'
2237
2227
 
2238
2228
  computation: Count.create({
2239
2229
  record: StyleVersionRelation // Direct reference
2240
- })
2230
+ })
@@ -510,9 +510,12 @@ Transform.create(config: TransformConfig): KlassInstance<typeof Transform>
510
510
  ```
511
511
 
512
512
  **Parameters**
513
- - `config.record` (Entity|Relation, required): Entity or relation to transform from (source collection)
513
+ - `config.record` (Entity|Relation, optional): Entity or relation to transform from (source collection)
514
+ - `config.eventDeps` (object, optional): Event-driven source map. Use either `record` or `eventDeps`.
514
515
  - `config.callback` (function, required): Transformation function that converts source data to target data
515
- - `config.attributeQuery` (AttributeQueryData, required): Attribute query configuration
516
+ - `config.attributeQuery` (AttributeQueryData, optional): Attribute query configuration
517
+
518
+ Transform does not accept `dataDeps`. Use `eventDeps` / `record` as the source, and keep cross-source enrichment in existing persisted state or a `Custom` computation.
516
519
 
517
520
  ### Custom.create()
518
521
 
@@ -525,6 +528,13 @@ Create a custom computation when built-in computations are not expressive enough
525
528
 
526
529
  Custom callbacks may be replayed after retryable transaction failures. Do not perform irreversible external IO inside custom `compute`, `incrementalCompute`, `incrementalPatchCompute`, or `asyncReturn`; use `recordMutationSideEffects` for post-commit external work.
527
530
 
531
+ **Incremental planning**
532
+ - If `incrementalCompute` or `incrementalPatchCompute` is provided, the computation must also provide `incrementalDataDeps` or `planIncremental`.
533
+ - `incrementalDataDeps: string[]` lists exactly which `dataDeps` keys should be resolved for the incremental callback; use `[]` when none are needed.
534
+ - `planIncremental(event, record, context)` is the advanced form. Return `{ type: 'incremental', dataDepKeys, needsLastValue? }`, `{ type: 'fullRecompute', reason }`, or `{ type: 'skip', reason }`.
535
+ - Incremental callbacks receive only planned partial `dataDeps`; the runtime no longer resolves all `dataDeps` before incremental execution.
536
+ - For entity/relation outputs, last value requires explicit `{ mode: 'fullOutput', reason }` because it may read the full output table.
537
+
528
538
  ### ScopedSequence.create()
529
539
 
530
540
  Create a transactional per-scope sequence allocator for a `number` property.
@@ -215,7 +215,7 @@ Property.create({
215
215
  ```
216
216
 
217
217
  ### WHY
218
- Count uses incremental algorithms. Transform loads all records into memory, which is inefficient for counting.
218
+ Count uses aggregate-specific incremental algorithms. Transform creates derived entity/relation rows and is not a property aggregate.
219
219
 
220
220
  ### WRONG: Computations passed to Controller
221
221
  ```typescript
@@ -291,6 +291,8 @@ const Media = Entity.create({
291
291
  - [ ] `computed` is used for same-record-only property derivations
292
292
  - [ ] Properties with aggregate/state computations have `defaultValue`; `ScopedSequence` does not
293
293
  - [ ] NEVER pass computations to Controller constructor
294
+ - [ ] Custom incremental computations declare `incrementalDataDeps` or `planIncremental`
295
+ - [ ] Transform does not use `dataDeps`
294
296
 
295
297
  ---
296
298
 
@@ -235,7 +235,6 @@ Transform.create(args: {
235
235
 
236
236
  // Common
237
237
  callback: Function // (this: Controller, record/mutationEvent) => any | any[] | null
238
- dataDeps?: { [key: string]: DataDep }
239
238
  }): TransformInstance
240
239
  ```
241
240
 
@@ -246,6 +245,32 @@ Constraints:
246
245
  - NEVER reference the entity being defined as `record` (circular reference)
247
246
  - Use `eventDeps` mode for interaction-based transformations (recommended)
248
247
  - Use `record` mode for deriving entities from other entities
248
+ - Transform does not accept `dataDeps`; put cross-source logic in persisted state or a `Custom` computation
249
+
250
+ ---
251
+
252
+ ## Custom.create
253
+
254
+ ```typescript
255
+ Custom.create(args: {
256
+ name: string
257
+ dataDeps?: { [key: string]: DataDep }
258
+ compute?: (this: { controller: Controller, state: any }, dataDeps: any, record?: any) => any
259
+ incrementalCompute?: (lastValue: any, event: any, record: any, dataDeps: any) => any
260
+ incrementalPatchCompute?: (lastValue: any, event: any, record: any, dataDeps: any) => ComputationResultPatch | ComputationResultPatch[] | undefined
261
+ incrementalDataDeps?: string[]
262
+ planIncremental?: (event: any, record: any, context: DataDepEventContext) => IncrementalPlan
263
+ useLastValue?: boolean
264
+ concurrency?: 'serializable' | 'atomic-safe'
265
+ }): CustomInstance
266
+ ```
267
+
268
+ Constraints:
269
+ - If `incrementalCompute` or `incrementalPatchCompute` is present, also provide `incrementalDataDeps` or `planIncremental`
270
+ - `incrementalDataDeps` lists the data dependency keys the incremental callback needs; use `[]` when it needs none
271
+ - `planIncremental` returns `{ type: 'incremental' | 'fullRecompute' | 'skip', ... }`
272
+ - Incremental callbacks receive only planned partial `dataDeps`, not all declared deps
273
+ - Entity/relation incremental computations that need last output state must use `needsLastValue: { mode: 'fullOutput', reason }`
249
274
 
250
275
  ---
251
276
 
@@ -6,6 +6,8 @@ export interface CustomInstance extends IInstance {
6
6
  dataDeps?: {
7
7
  [key: string]: DataDep;
8
8
  };
9
+ incrementalDataDeps?: string[];
10
+ planIncremental?: Function;
9
11
  compute?: Function;
10
12
  incrementalCompute?: Function;
11
13
  incrementalPatchCompute?: Function;
@@ -29,6 +31,8 @@ export interface CustomCreateArgs {
29
31
  dataDeps?: {
30
32
  [key: string]: DataDep;
31
33
  };
34
+ incrementalDataDeps?: string[];
35
+ planIncremental?: Function;
32
36
  compute?: Function;
33
37
  incrementalCompute?: Function;
34
38
  incrementalPatchCompute?: Function;
@@ -48,6 +52,8 @@ export declare class Custom implements CustomInstance {
48
52
  dataDeps?: {
49
53
  [key: string]: DataDep;
50
54
  };
55
+ incrementalDataDeps?: string[];
56
+ planIncremental?: Function;
51
57
  compute?: Function;
52
58
  incrementalCompute?: Function;
53
59
  incrementalPatchCompute?: Function;
@@ -73,6 +79,16 @@ export declare class Custom implements CustomInstance {
73
79
  collection: false;
74
80
  required: false;
75
81
  };
82
+ incrementalDataDeps: {
83
+ type: "object";
84
+ collection: false;
85
+ required: false;
86
+ };
87
+ planIncremental: {
88
+ type: "function";
89
+ collection: false;
90
+ required: false;
91
+ };
76
92
  compute: {
77
93
  type: "function";
78
94
  collection: false;
@@ -1 +1 @@
1
- {"version":3,"file":"Custom.d.ts","sourceRoot":"","sources":["../../src/core/Custom.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Custom.d.ts","sourceRoot":"","sources":["../../src/core/Custom.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  import { IInstance } from './interfaces.js';
2
2
  import { ComputationRecord, AttributeQueryData } from './types.js';
3
- import { DataDep } from './Computation.js';
4
3
  declare const PHASE_BEFORE_ALL = 0;
5
4
  declare const PHASE_NORMAL = 1;
6
5
  declare const PHASE_AFTER_ALL = 2;
@@ -17,9 +16,6 @@ export interface TransformInstance extends IInstance {
17
16
  eventDeps?: {
18
17
  [key: string]: EventDep;
19
18
  };
20
- dataDeps?: {
21
- [key: string]: DataDep;
22
- };
23
19
  attributeQuery?: AttributeQueryData;
24
20
  callback: Function;
25
21
  }
@@ -28,9 +24,6 @@ export interface TransformCreateArgs {
28
24
  eventDeps?: {
29
25
  [key: string]: EventDep;
30
26
  };
31
- dataDeps?: {
32
- [key: string]: DataDep;
33
- };
34
27
  attributeQuery?: AttributeQueryData;
35
28
  callback: Function;
36
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Transform.d.ts","sourceRoot":"","sources":["../../src/core/Transform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Transform.d.ts","sourceRoot":"","sources":["../../src/core/Transform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAgC,MAAM,iBAAiB,CAAC;AAE1E,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAExE,QAAA,MAAM,gBAAgB,IAAI,CAAA;AAC1B,QAAA,MAAM,YAAY,IAAI,CAAA;AACtB,QAAA,MAAM,eAAe,IAAI,CAAA;AACzB,KAAK,gBAAgB,GAAG,OAAO,gBAAgB,GAAC,OAAO,YAAY,GAAC,OAAO,eAAe,CAAA;AAG1F,KAAK,QAAQ,GAAG;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,QAAQ,GAAC,QAAQ,GAAC,QAAQ,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACnC,KAAK,CAAC,EAAE,gBAAgB,CAAA;CACzB,CAAC;AAEF,MAAM,WAAW,iBAAkB,SAAQ,SAAS;IAClD,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,SAAS,CAAC,EAAE;QACV,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAC;KACzB,CAAC;IACF,cAAc,CAAC,EAAE,kBAAkB,CAAC;IACpC,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,SAAS,CAAC,EAAE;QACV,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAC;KACzB,CAAC;IACF,cAAc,CAAC,EAAE,kBAAkB,CAAC;IACpC,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,qBAAa,SAAU,YAAW,iBAAiB;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,SAAe;IACpB,QAAQ,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7B,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,SAAS,CAAC,EAAE;QACjB,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAC;KACzB,CAAC;IACK,cAAc,CAAC,EAAE,kBAAkB,CAAC;IACpC,QAAQ,EAAE,QAAQ,CAAC;gBAEd,IAAI,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE;IAUlE,MAAM,CAAC,OAAO,EAAG,IAAI,CAAU;IAC/B,MAAM,CAAC,WAAW,SAAe;IACjC,MAAM,CAAC,SAAS,EAAE,iBAAiB,EAAE,CAAM;IAE3C,MAAM,CAAC,MAAM;;;;;;;0BAOsB,kBAAkB;;;;;;;;;MASnD;IAEF,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,iBAAiB;IAaxF,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM;IAgBrD,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,iBAAiB,EAAE,IAAI,EAAE,OAAO,GAAG,iBAAiB;IAQ3E,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,iBAAiB;IAIjD,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO;IAIpC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB;CAe9C"}