@haoyiyin/workflow 0.2.10 → 0.3.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 (164) hide show
  1. package/dist/src/agents/contracts/implementer.d.ts +29 -0
  2. package/dist/src/agents/contracts/implementer.d.ts.map +1 -0
  3. package/dist/src/agents/contracts/implementer.js +94 -0
  4. package/dist/src/agents/contracts/implementer.js.map +1 -0
  5. package/dist/src/agents/contracts/index.d.ts +11 -0
  6. package/dist/src/agents/contracts/index.d.ts.map +1 -0
  7. package/dist/src/agents/contracts/index.js +11 -0
  8. package/dist/src/agents/contracts/index.js.map +1 -0
  9. package/dist/src/agents/contracts/planner.d.ts +25 -0
  10. package/dist/src/agents/contracts/planner.d.ts.map +1 -0
  11. package/dist/src/agents/contracts/planner.js +107 -0
  12. package/dist/src/agents/contracts/planner.js.map +1 -0
  13. package/dist/src/agents/contracts/router.d.ts +24 -0
  14. package/dist/src/agents/contracts/router.d.ts.map +1 -0
  15. package/dist/src/agents/contracts/router.js +137 -0
  16. package/dist/src/agents/contracts/router.js.map +1 -0
  17. package/dist/src/agents/contracts/verifier.d.ts +27 -0
  18. package/dist/src/agents/contracts/verifier.d.ts.map +1 -0
  19. package/dist/src/agents/contracts/verifier.js +115 -0
  20. package/dist/src/agents/contracts/verifier.js.map +1 -0
  21. package/dist/src/agents/dispatcher.d.ts +94 -51
  22. package/dist/src/agents/dispatcher.d.ts.map +1 -1
  23. package/dist/src/agents/dispatcher.js +207 -164
  24. package/dist/src/agents/dispatcher.js.map +1 -1
  25. package/dist/src/persistence/index.d.ts +4 -2
  26. package/dist/src/persistence/index.d.ts.map +1 -1
  27. package/dist/src/persistence/index.js +4 -1
  28. package/dist/src/persistence/index.js.map +1 -1
  29. package/dist/src/persistence/plan-md.d.ts +3 -2
  30. package/dist/src/persistence/plan-md.d.ts.map +1 -1
  31. package/dist/src/persistence/plan-md.js +47 -15
  32. package/dist/src/persistence/plan-md.js.map +1 -1
  33. package/dist/src/persistence/state-md.d.ts +2 -0
  34. package/dist/src/persistence/state-md.d.ts.map +1 -1
  35. package/dist/src/persistence/state-md.js +40 -22
  36. package/dist/src/persistence/state-md.js.map +1 -1
  37. package/dist/src/persistence/types.d.ts +35 -39
  38. package/dist/src/persistence/types.d.ts.map +1 -1
  39. package/dist/src/router/namespace/core/intent-router.d.ts +24 -0
  40. package/dist/src/router/namespace/core/intent-router.d.ts.map +1 -0
  41. package/dist/src/router/namespace/core/intent-router.js +190 -0
  42. package/dist/src/router/namespace/core/intent-router.js.map +1 -0
  43. package/dist/src/router/namespace/core/lifecycle-router.d.ts +28 -0
  44. package/dist/src/router/namespace/core/lifecycle-router.d.ts.map +1 -0
  45. package/dist/src/router/namespace/core/lifecycle-router.js +132 -0
  46. package/dist/src/router/namespace/core/lifecycle-router.js.map +1 -0
  47. package/dist/src/router/namespace/core/state-router.d.ts +32 -0
  48. package/dist/src/router/namespace/core/state-router.d.ts.map +1 -0
  49. package/dist/src/router/namespace/core/state-router.js +157 -0
  50. package/dist/src/router/namespace/core/state-router.js.map +1 -0
  51. package/dist/src/router/namespace/domain/code-router.d.ts +26 -0
  52. package/dist/src/router/namespace/domain/code-router.d.ts.map +1 -0
  53. package/dist/src/router/namespace/domain/code-router.js +171 -0
  54. package/dist/src/router/namespace/domain/code-router.js.map +1 -0
  55. package/dist/src/router/namespace/domain/debug-router.d.ts +25 -0
  56. package/dist/src/router/namespace/domain/debug-router.d.ts.map +1 -0
  57. package/dist/src/router/namespace/domain/debug-router.js +139 -0
  58. package/dist/src/router/namespace/domain/debug-router.js.map +1 -0
  59. package/dist/src/router/namespace/domain/plan-router.d.ts +29 -0
  60. package/dist/src/router/namespace/domain/plan-router.d.ts.map +1 -0
  61. package/dist/src/router/namespace/domain/plan-router.js +160 -0
  62. package/dist/src/router/namespace/domain/plan-router.js.map +1 -0
  63. package/dist/src/router/namespace/domain/review-router.d.ts +24 -0
  64. package/dist/src/router/namespace/domain/review-router.d.ts.map +1 -0
  65. package/dist/src/router/namespace/domain/review-router.js +116 -0
  66. package/dist/src/router/namespace/domain/review-router.js.map +1 -0
  67. package/dist/src/router/namespace/index.d.ts +19 -0
  68. package/dist/src/router/namespace/index.d.ts.map +1 -0
  69. package/dist/src/router/namespace/index.js +22 -0
  70. package/dist/src/router/namespace/index.js.map +1 -0
  71. package/dist/src/router/namespace/registry.d.ts +67 -0
  72. package/dist/src/router/namespace/registry.d.ts.map +1 -0
  73. package/dist/src/router/namespace/registry.js +197 -0
  74. package/dist/src/router/namespace/registry.js.map +1 -0
  75. package/dist/src/router/namespace/types.d.ts +124 -0
  76. package/dist/src/router/namespace/types.d.ts.map +1 -0
  77. package/dist/src/router/namespace/types.js +20 -0
  78. package/dist/src/router/namespace/types.js.map +1 -0
  79. package/dist/src/router/namespace/utility/fallback-router.d.ts +28 -0
  80. package/dist/src/router/namespace/utility/fallback-router.d.ts.map +1 -0
  81. package/dist/src/router/namespace/utility/fallback-router.js +88 -0
  82. package/dist/src/router/namespace/utility/fallback-router.js.map +1 -0
  83. package/dist/src/router/namespace/utility/quick-task-router.d.ts +28 -0
  84. package/dist/src/router/namespace/utility/quick-task-router.d.ts.map +1 -0
  85. package/dist/src/router/namespace/utility/quick-task-router.js +99 -0
  86. package/dist/src/router/namespace/utility/quick-task-router.js.map +1 -0
  87. package/dist/src/router/namespace/utility/research-router.d.ts +24 -0
  88. package/dist/src/router/namespace/utility/research-router.d.ts.map +1 -0
  89. package/dist/src/router/namespace/utility/research-router.js +84 -0
  90. package/dist/src/router/namespace/utility/research-router.js.map +1 -0
  91. package/dist/src/skills/agents-md/index.js +2 -2
  92. package/dist/src/skills/agents-md/index.js.map +1 -1
  93. package/dist/src/skills/execute-plan/index.d.ts +45 -65
  94. package/dist/src/skills/execute-plan/index.d.ts.map +1 -1
  95. package/dist/src/skills/execute-plan/index.js +325 -551
  96. package/dist/src/skills/execute-plan/index.js.map +1 -1
  97. package/dist/src/skills/index.d.ts +1 -0
  98. package/dist/src/skills/index.d.ts.map +1 -1
  99. package/dist/src/skills/index.js +1 -0
  100. package/dist/src/skills/index.js.map +1 -1
  101. package/dist/src/skills/quick-task/index.d.ts +4 -4
  102. package/dist/src/skills/quick-task/index.js +1 -1
  103. package/dist/src/skills/quick-task/index.js.map +1 -1
  104. package/dist/src/skills/review-diff/index.d.ts +6 -6
  105. package/dist/src/skills/review-diff/index.js +1 -1
  106. package/dist/src/skills/review-diff/index.js.map +1 -1
  107. package/dist/src/skills/router/index.d.ts +101 -0
  108. package/dist/src/skills/router/index.d.ts.map +1 -0
  109. package/dist/src/skills/router/index.js +450 -0
  110. package/dist/src/skills/router/index.js.map +1 -0
  111. package/dist/src/skills/router/types.d.ts +79 -0
  112. package/dist/src/skills/router/types.d.ts.map +1 -0
  113. package/dist/src/skills/router/types.js +8 -0
  114. package/dist/src/skills/router/types.js.map +1 -0
  115. package/dist/src/skills/systematic-debugging/index.js +1 -1
  116. package/dist/src/skills/systematic-debugging/index.js.map +1 -1
  117. package/dist/src/skills/tdd/index.d.ts +14 -14
  118. package/dist/src/skills/tdd/index.js +1 -1
  119. package/dist/src/skills/tdd/index.js.map +1 -1
  120. package/dist/src/skills/to-plan/index-enhanced.d.ts +4 -4
  121. package/dist/src/skills/to-plan/index-enhanced.d.ts.map +1 -1
  122. package/dist/src/skills/to-plan/index-enhanced.js +3 -5
  123. package/dist/src/skills/to-plan/index-enhanced.js.map +1 -1
  124. package/dist/src/skills/to-plan/index.d.ts +24 -91
  125. package/dist/src/skills/to-plan/index.d.ts.map +1 -1
  126. package/dist/src/skills/to-plan/index.js +214 -409
  127. package/dist/src/skills/to-plan/index.js.map +1 -1
  128. package/package.json +3 -5
  129. package/src/agents/contracts/implementer.ts +122 -0
  130. package/src/agents/contracts/index.ts +27 -0
  131. package/src/agents/contracts/planner.ts +129 -0
  132. package/src/agents/contracts/router.ts +168 -0
  133. package/src/agents/contracts/verifier.ts +137 -0
  134. package/src/agents/dispatcher.ts +387 -362
  135. package/src/persistence/index.ts +10 -4
  136. package/src/persistence/plan-md.ts +52 -18
  137. package/src/persistence/state-md.ts +45 -23
  138. package/src/persistence/types.ts +37 -40
  139. package/src/router/namespace/README.md +127 -0
  140. package/src/router/namespace/core/intent-router.ts +221 -0
  141. package/src/router/namespace/core/lifecycle-router.ts +156 -0
  142. package/src/router/namespace/core/state-router.ts +192 -0
  143. package/src/router/namespace/domain/code-router.ts +202 -0
  144. package/src/router/namespace/domain/debug-router.ts +167 -0
  145. package/src/router/namespace/domain/plan-router.ts +196 -0
  146. package/src/router/namespace/domain/review-router.ts +142 -0
  147. package/src/router/namespace/index.ts +84 -0
  148. package/src/router/namespace/registry.ts +242 -0
  149. package/src/router/namespace/types.ts +182 -0
  150. package/src/router/namespace/utility/fallback-router.ts +107 -0
  151. package/src/router/namespace/utility/quick-task-router.ts +121 -0
  152. package/src/router/namespace/utility/research-router.ts +105 -0
  153. package/src/skills/agents-md/index.ts +2 -2
  154. package/src/skills/execute-plan/index.ts +419 -673
  155. package/src/skills/index.ts +1 -0
  156. package/src/skills/quick-task/index.ts +1 -1
  157. package/src/skills/review-diff/index.ts +1 -1
  158. package/src/skills/router/SKILL.md +181 -0
  159. package/src/skills/router/index.ts +577 -0
  160. package/src/skills/router/types.ts +90 -0
  161. package/src/skills/systematic-debugging/index.ts +1 -1
  162. package/src/skills/tdd/index.ts +1 -1
  163. package/src/skills/to-plan/index-enhanced.ts +3 -5
  164. package/src/skills/to-plan/index.ts +231 -502
@@ -1,12 +1,15 @@
1
1
  /**
2
- * Subagent Dispatcher - Spawns isolated subagents to do all real work
2
+ * Subagent Dispatcher - Spawns isolated subagents with fresh context
3
3
  *
4
- * Constructs prompts from contracts, manages timeouts, validates outputs,
5
- * and collects results. Uses a pluggable executor backend so the dispatch
6
- * mechanism can be swapped (process, HTTP, in-process) without changing
7
- * the orchestration logic.
4
+ * Key principle: Each subagent gets ONLY the context it needs.
5
+ * - No history pollution from main agent
6
+ * - Minimal, focused prompts
7
+ * - Token budget enforcement
8
+ * - Resilient dispatch with circuit breaker and retry
8
9
  */
9
10
  import type { SubagentConfig, SubagentContract, SubagentResult } from './types.js';
11
+ import { TokenBudget, BudgetExceededError } from './token-budget.js';
12
+ import { ResilientDispatcher } from './resilience.js';
10
13
  import type { Logger } from '../types.js';
11
14
  export interface ExecutorOptions {
12
15
  id: string;
@@ -24,84 +27,124 @@ export interface SubagentExecutor {
24
27
  abort(id: string): Promise<void>;
25
28
  }
26
29
  export interface ProcessExecutorConfig {
27
- /** CLI command to invoke (default: "claude") */
28
30
  command: string;
29
- /** CLI arguments appended after the prompt */
30
31
  args: string[];
31
- /** Environment variables to forward */
32
32
  env: Record<string, string>;
33
33
  }
34
34
  /**
35
35
  * Creates a SubagentExecutor that spawns a subprocess for each dispatch.
36
- *
37
- * The executor writes the prompt to a temp file, invokes the configured
38
- * CLI command with `--input-file`, collects stdout/stderr, and cleans up.
39
36
  */
40
37
  export declare function createProcessExecutor(config?: Partial<ProcessExecutorConfig>): SubagentExecutor;
38
+ export interface SubagentDispatcherConfig {
39
+ logger: Logger;
40
+ tokenBudget?: {
41
+ limit: number;
42
+ warningThreshold: number;
43
+ };
44
+ resilience?: {
45
+ circuitBreaker?: {
46
+ failureThreshold?: number;
47
+ successThreshold?: number;
48
+ timeout?: number;
49
+ };
50
+ retryPolicy?: {
51
+ maxRetries?: number;
52
+ baseDelay?: number;
53
+ maxDelay?: number;
54
+ };
55
+ };
56
+ }
57
+ export interface DispatchConfig {
58
+ config: SubagentConfig;
59
+ contract: SubagentContract;
60
+ fallback?: () => unknown;
61
+ }
41
62
  export declare class SubagentDispatcher {
42
- private readonly executor;
43
63
  private readonly logger;
64
+ private readonly tokenBudget;
65
+ private readonly resilientDispatcher;
44
66
  private readonly activeIds;
45
- constructor(executor: SubagentExecutor, logger: Logger);
67
+ constructor(config: SubagentDispatcherConfig);
46
68
  /**
47
- * Dispatch a single subagent with the given config and contract.
69
+ * Dispatch a single subagent with fresh context.
48
70
  *
49
- * Constructs a structured prompt from the contract, sends it to the
50
- * executor, validates the output against the optional output schema,
51
- * and returns a typed SubagentResult.
71
+ * Steps:
72
+ * 1. Check token budget
73
+ * 2. Build fresh prompt (no history pollution)
74
+ * 3. Spawn subagent via resilient dispatcher
75
+ * 4. Parse and validate output
76
+ * 5. Return structured result
52
77
  */
53
78
  dispatch(config: SubagentConfig, contract: SubagentContract): Promise<SubagentResult>;
54
79
  /**
55
80
  * Dispatch multiple subagents in parallel.
56
81
  *
57
- * All subagents run concurrently. Use when tasks are independent
58
- * of each other (e.g. exploring multiple directories at once).
82
+ * Each subagent receives ONLY its own contract - no shared context pollution.
83
+ * Results are returned in the same order as configs.
59
84
  */
60
- dispatchParallel(configs: readonly SubagentConfig[], contracts: readonly SubagentContract[]): Promise<SubagentResult[]>;
85
+ dispatchParallel(configs: DispatchConfig[]): Promise<SubagentResult[]>;
61
86
  /**
62
- * Dispatch multiple subagents sequentially.
63
- *
64
- * Each subagent receives the output of all previous subagents as
65
- * additional context. The pipeline stops early if a subagent fails
66
- * or times out. Use when tasks form a pipeline (e.g. explore ->
67
- * implement -> review -> verify).
87
+ * Get current health status including token usage and circuit state
68
88
  */
69
- dispatchSequential(configs: readonly SubagentConfig[], contracts: readonly SubagentContract[]): Promise<SubagentResult[]>;
89
+ getHealth(): {
90
+ tokenUsage: {
91
+ used: number;
92
+ limit: number;
93
+ percentage: number;
94
+ remaining: number;
95
+ };
96
+ circuitState: string;
97
+ activeSubagents: number;
98
+ };
70
99
  /**
71
- * Abort a running subagent by its ID.
100
+ * Reset token budget (for testing or new milestone)
72
101
  */
73
- abort(id: string): Promise<void>;
102
+ resetBudget(): void;
74
103
  /**
75
- * Build a structured subagent prompt from config and contract.
104
+ * Build a fresh prompt with ONLY necessary context.
76
105
  *
77
- * The prompt follows the Claude Code agent tool pattern: explicit
78
- * permissions, owned/read file scopes, isolation instructions,
79
- * token budget, output format requirements, and the task itself.
106
+ * Excludes:
107
+ * - Main agent conversation history
108
+ * - Previous subagent outputs (unless explicitly passed)
109
+ * - Internal reasoning
110
+ *
111
+ * Includes:
112
+ * - Role instruction
113
+ * - Permissions
114
+ * - File scope
115
+ * - Token budget
116
+ * - Output schema
117
+ * - Task description
80
118
  */
81
- private buildPrompt;
119
+ private buildFreshPrompt;
82
120
  /**
83
- * Wraps a promise with a timeout. If the timeout fires first the
84
- * subagent is aborted and the promise rejects.
121
+ * Execute a subagent process.
122
+ * This is the actual implementation that the resilient dispatcher wraps.
85
123
  */
86
- private withTimeout;
87
- /**
88
- * Validate subagent output against an optional schema.
89
- * The schema is a Record<string, unknown> where values are type strings
90
- * like "string", "number", "boolean", "object".
91
- *
92
- * Returns an array of validation error messages (empty = valid).
93
- */
94
- private validateOutput;
124
+ private executeSubagent;
95
125
  }
96
126
  export interface DispatcherOptions {
97
- executor?: SubagentExecutor;
98
- processConfig?: Partial<ProcessExecutorConfig>;
127
+ logger: Logger;
128
+ tokenBudget?: {
129
+ limit: number;
130
+ warningThreshold: number;
131
+ };
132
+ resilience?: {
133
+ circuitBreaker?: {
134
+ failureThreshold?: number;
135
+ successThreshold?: number;
136
+ timeout?: number;
137
+ };
138
+ retryPolicy?: {
139
+ maxRetries?: number;
140
+ baseDelay?: number;
141
+ maxDelay?: number;
142
+ };
143
+ };
99
144
  }
100
145
  /**
101
146
  * Create a SubagentDispatcher with sensible defaults.
102
- *
103
- * If no executor is provided, a process-based executor is created
104
- * using `createProcessExecutor` which spawns a CLI command.
105
147
  */
106
- export declare function createDispatcher(logger: Logger, options?: DispatcherOptions): SubagentDispatcher;
148
+ export declare function createDispatcher(options: DispatcherOptions): SubagentDispatcher;
149
+ export { TokenBudget, BudgetExceededError, ResilientDispatcher };
107
150
  //# sourceMappingURL=dispatcher.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dispatcher.d.ts","sourceRoot":"","sources":["../../../src/agents/dispatcher.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAChB,cAAc,EAIf,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAM1C,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAC3E,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClC;AAMD,MAAM,WAAW,qBAAqB;IACpC,gDAAgD;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,uCAAuC;IACvC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7B;AAQD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,GAAE,OAAO,CAAC,qBAAqB,CAAM,GAC1C,gBAAgB,CAuFlB;AA2CD,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmB;IAC5C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAc;gBAE5B,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM;IAUtD;;;;;;OAMG;IACG,QAAQ,CACZ,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,cAAc,CAAC;IAuE1B;;;;;OAKG;IACG,gBAAgB,CACpB,OAAO,EAAE,SAAS,cAAc,EAAE,EAClC,SAAS,EAAE,SAAS,gBAAgB,EAAE,GACrC,OAAO,CAAC,cAAc,EAAE,CAAC;IA6B5B;;;;;;;OAOG;IACG,kBAAkB,CACtB,OAAO,EAAE,SAAS,cAAc,EAAE,EAClC,SAAS,EAAE,SAAS,gBAAgB,EAAE,GACrC,OAAO,CAAC,cAAc,EAAE,CAAC;IAgC5B;;OAEG;IACG,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IActC;;;;;;OAMG;IACH,OAAO,CAAC,WAAW;IAyBnB;;;OAGG;IACH,OAAO,CAAC,WAAW;IA+BnB;;;;;;OAMG;IACH,OAAO,CAAC,cAAc;CAyCvB;AAyJD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,aAAa,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;CAChD;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,iBAAsB,GAC9B,kBAAkB,CAIpB"}
1
+ {"version":3,"file":"dispatcher.d.ts","sourceRoot":"","sources":["../../../src/agents/dispatcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAChB,cAAc,EAIf,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAMzC,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,MAAM,EAAE,CAAA;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;IAC1E,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACjC;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC5B;AAQD;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,GAAE,OAAO,CAAC,qBAAqB,CAAM,GAC1C,gBAAgB,CAkFlB;AA4CD,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAA;KAAE,CAAA;IACzD,UAAU,CAAC,EAAE;QACX,cAAc,CAAC,EAAE;YAAE,gBAAgB,CAAC,EAAE,MAAM,CAAC;YAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;YAAC,OAAO,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;QAC3F,WAAW,CAAC,EAAE;YAAE,UAAU,CAAC,EAAE,MAAM,CAAC;YAAC,SAAS,CAAC,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAC7E,CAAA;CACF;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,cAAc,CAAA;IACtB,QAAQ,EAAE,gBAAgB,CAAA;IAC1B,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAA;CACzB;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAqB;IACzD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAa;gBAE3B,MAAM,EAAE,wBAAwB;IAc5C;;;;;;;;;OASG;IACG,QAAQ,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,cAAc,CAAC;IAyE3F;;;;;OAKG;IACG,gBAAgB,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IA+C5E;;OAEG;IACH,SAAS,IAAI;QACX,UAAU,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAA;SAAE,CAAA;QAClF,YAAY,EAAE,MAAM,CAAA;QACpB,eAAe,EAAE,MAAM,CAAA;KACxB;IAcD;;OAEG;IACH,WAAW,IAAI,IAAI;IASnB;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,gBAAgB;IAsBxB;;;OAGG;YACW,eAAe;CA+E9B;AA8KD,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAA;KAAE,CAAA;IACzD,UAAU,CAAC,EAAE;QACX,cAAc,CAAC,EAAE;YAAE,gBAAgB,CAAC,EAAE,MAAM,CAAC;YAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;YAAC,OAAO,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;QAC3F,WAAW,CAAC,EAAE;YAAE,UAAU,CAAC,EAAE,MAAM,CAAC;YAAC,SAAS,CAAC,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAC7E,CAAA;CACF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,kBAAkB,CAE/E;AAGD,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,CAAA"}