@reminix/langgraph 0.0.6 → 0.0.8

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/README.md CHANGED
@@ -39,8 +39,7 @@ serve({ agents: [agent], port: 8080 });
39
39
  ```
40
40
 
41
41
  Your agent is now available at:
42
- - `POST /agents/my-agent/invoke` - Stateless invocation
43
- - `POST /agents/my-agent/chat` - Conversational chat
42
+ - `POST /agents/my-agent/execute` - Execute the agent
44
43
 
45
44
  ## API Reference
46
45
 
@@ -64,7 +63,7 @@ Wrap a LangGraph compiled graph for use with Reminix Runtime. Use this with `ser
64
63
  | `graph` | `CompiledGraph` | required | A LangGraph compiled graph |
65
64
  | `name` | `string` | `"langgraph-agent"` | Name for the agent (used in URL path) |
66
65
 
67
- **Returns:** `LangGraphAdapter` - A Reminix adapter instance
66
+ **Returns:** `LangGraphAgentAdapter` - A Reminix adapter instance
68
67
 
69
68
  ### How It Works
70
69
 
@@ -76,18 +75,16 @@ LangGraph uses a state-based approach. The adapter:
76
75
 
77
76
  ## Endpoint Input/Output Formats
78
77
 
79
- ### POST /agents/{name}/invoke
78
+ ### POST /agents/{name}/execute
80
79
 
81
- Stateless invocation. Input is passed directly to the graph.
80
+ Execute the graph. Input keys are passed directly to the graph.
82
81
 
83
82
  **Request:**
84
83
  ```json
85
84
  {
86
- "input": {
87
- "messages": [
88
- {"role": "user", "content": "Hello!"}
89
- ]
90
- }
85
+ "messages": [
86
+ {"role": "user", "content": "Hello!"}
87
+ ]
91
88
  }
92
89
  ```
93
90
 
@@ -98,29 +95,18 @@ Stateless invocation. Input is passed directly to the graph.
98
95
  }
99
96
  ```
100
97
 
101
- ### POST /agents/{name}/chat
98
+ ### Streaming
102
99
 
103
- Conversational chat with message history.
100
+ For streaming responses, set `stream: true` in the request:
104
101
 
105
- **Request:**
106
102
  ```json
107
103
  {
108
- "messages": [
109
- {"role": "user", "content": "What is the capital of France?"}
110
- ]
104
+ "messages": [{"role": "user", "content": "Hello!"}],
105
+ "stream": true
111
106
  }
112
107
  ```
113
108
 
114
- **Response:**
115
- ```json
116
- {
117
- "output": "The capital of France is Paris.",
118
- "messages": [
119
- {"role": "user", "content": "What is the capital of France?"},
120
- {"role": "assistant", "content": "The capital of France is Paris."}
121
- ]
122
- }
123
- ```
109
+ The response will be sent as Server-Sent Events (SSE).
124
110
 
125
111
  ## Runtime Documentation
126
112
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * LangGraph adapter for Reminix Runtime.
3
3
  */
4
- import { AdapterBase, type ServeOptions, type InvokeRequest, type InvokeResponse, type ChatRequest, type ChatResponse } from '@reminix/runtime';
4
+ import { AgentAdapter, type ServeOptions, type ExecuteRequest, type ExecuteResponse } from '@reminix/runtime';
5
5
  /**
6
6
  * Graph interface that matches LangGraph compiled graphs.
7
7
  */
@@ -12,7 +12,7 @@ interface LangGraphRunnable {
12
12
  /**
13
13
  * Adapter for LangGraph compiled graphs.
14
14
  */
15
- export declare class LangGraphAdapter extends AdapterBase {
15
+ export declare class LangGraphAgentAdapter extends AgentAdapter {
16
16
  static adapterName: string;
17
17
  private graph;
18
18
  private _name;
@@ -28,10 +28,6 @@ export declare class LangGraphAdapter extends AdapterBase {
28
28
  * Convert a Reminix message to a LangChain message.
29
29
  */
30
30
  private toLangChainMessage;
31
- /**
32
- * Convert a LangChain message to a Reminix message.
33
- */
34
- private toReminixMessage;
35
31
  /**
36
32
  * Check if a message is an AI message.
37
33
  */
@@ -41,45 +37,32 @@ export declare class LangGraphAdapter extends AdapterBase {
41
37
  */
42
38
  private getLastAIContent;
43
39
  /**
44
- * Handle an invoke request.
45
- *
46
- * For task-oriented operations. Passes the input directly to the graph.
47
- *
48
- * @param request - The invoke request with input data.
49
- * @returns The invoke response with the output.
40
+ * Build LangGraph input from execute request.
50
41
  */
51
- invoke(request: InvokeRequest): Promise<InvokeResponse>;
42
+ private buildGraphInput;
52
43
  /**
53
- * Handle a chat request.
44
+ * Handle an execute request.
54
45
  *
55
- * For conversational interactions. Converts messages to LangChain format
56
- * and invokes the graph with the state dict format.
46
+ * For both task-oriented and chat-style operations.
57
47
  *
58
- * @param request - The chat request with messages.
59
- * @returns The chat response with output and messages.
60
- */
61
- chat(request: ChatRequest): Promise<ChatResponse>;
62
- /**
63
- * Handle a streaming invoke request.
64
- *
65
- * @param request - The invoke request with input data.
66
- * @yields JSON-encoded chunks from the stream.
48
+ * @param request - The execute request with input data.
49
+ * @returns The execute response with the output.
67
50
  */
68
- invokeStream(request: InvokeRequest): AsyncGenerator<string, void, unknown>;
51
+ execute(request: ExecuteRequest): Promise<ExecuteResponse>;
69
52
  /**
70
- * Handle a streaming chat request.
53
+ * Handle a streaming execute request.
71
54
  *
72
- * @param request - The chat request with messages.
55
+ * @param request - The execute request with input data.
73
56
  * @yields JSON-encoded chunks from the stream.
74
57
  */
75
- chatStream(request: ChatRequest): AsyncGenerator<string, void, unknown>;
58
+ executeStream(request: ExecuteRequest): AsyncGenerator<string, void, unknown>;
76
59
  }
77
60
  /**
78
61
  * Wrap a LangGraph compiled graph for use with Reminix Runtime.
79
62
  *
80
63
  * @param graph - A LangGraph compiled graph.
81
64
  * @param name - Name for the agent.
82
- * @returns A LangGraphAdapter instance.
65
+ * @returns A LangGraphAgentAdapter instance.
83
66
  *
84
67
  * @example
85
68
  * ```typescript
@@ -94,7 +77,7 @@ export declare class LangGraphAdapter extends AdapterBase {
94
77
  * serve({ agents: [agent], port: 8080 });
95
78
  * ```
96
79
  */
97
- export declare function wrapAgent(graph: LangGraphRunnable, name?: string): LangGraphAdapter;
80
+ export declare function wrapAgent(graph: LangGraphRunnable, name?: string): LangGraphAgentAdapter;
98
81
  /**
99
82
  * Options for wrapping and serving a LangGraph graph.
100
83
  */
@@ -122,4 +105,4 @@ export interface WrapAndServeOptions extends ServeOptions {
122
105
  */
123
106
  export declare function serveAgent(graph: LangGraphRunnable, options?: WrapAndServeOptions): void;
124
107
  export {};
125
- //# sourceMappingURL=adapter.d.ts.map
108
+ //# sourceMappingURL=agent-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-adapter.d.ts","sourceRoot":"","sources":["../src/agent-adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,OAAO,EACL,YAAY,EAEZ,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,eAAe,EAErB,MAAM,kBAAkB,CAAC;AAU1B;;GAEG;AACH,UAAU,iBAAiB;IACzB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;CAClF;AAED;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,YAAY;IACrD,MAAM,CAAC,WAAW,SAAe;IAEjC,OAAO,CAAC,KAAK,CAAoB;IACjC,OAAO,CAAC,KAAK,CAAS;IAEtB;;;;;OAKG;gBACS,KAAK,EAAE,iBAAiB,EAAE,IAAI,GAAE,MAA0B;IAMtE,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAqB1B;;OAEG;IACH,OAAO,CAAC,WAAW;IAUnB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAyBxB;;OAEG;IACH,OAAO,CAAC,eAAe;IAYvB;;;;;;;OAOG;IACG,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;IAoBhE;;;;;OAKG;IACI,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC;CA6BrF;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,iBAAiB,EACxB,IAAI,GAAE,MAA0B,GAC/B,qBAAqB,CAEvB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,YAAY;IACvD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,iBAAiB,EAAE,OAAO,GAAE,mBAAwB,GAAG,IAAI,CAI5F"}
@@ -2,11 +2,11 @@
2
2
  * LangGraph adapter for Reminix Runtime.
3
3
  */
4
4
  import { HumanMessage, AIMessage, SystemMessage, ToolMessage, } from '@langchain/core/messages';
5
- import { AdapterBase, serve, } from '@reminix/runtime';
5
+ import { AgentAdapter, serve, } from '@reminix/runtime';
6
6
  /**
7
7
  * Adapter for LangGraph compiled graphs.
8
8
  */
9
- export class LangGraphAdapter extends AdapterBase {
9
+ export class LangGraphAgentAdapter extends AgentAdapter {
10
10
  static adapterName = 'langgraph';
11
11
  graph;
12
12
  _name;
@@ -46,29 +46,6 @@ export class LangGraphAdapter extends AdapterBase {
46
46
  return new HumanMessage({ content: contentStr });
47
47
  }
48
48
  }
49
- /**
50
- * Convert a LangChain message to a Reminix message.
51
- */
52
- toReminixMessage(message) {
53
- let role;
54
- if (message instanceof HumanMessage) {
55
- role = 'user';
56
- }
57
- else if (message instanceof AIMessage) {
58
- role = 'assistant';
59
- }
60
- else if (message instanceof SystemMessage) {
61
- role = 'system';
62
- }
63
- else if (message instanceof ToolMessage) {
64
- role = 'tool';
65
- }
66
- else {
67
- role = 'assistant';
68
- }
69
- const content = typeof message.content === 'string' ? message.content : String(message.content);
70
- return { role, content };
71
- }
72
49
  /**
73
50
  * Check if a message is an AI message.
74
51
  */
@@ -112,16 +89,31 @@ export class LangGraphAdapter extends AdapterBase {
112
89
  return '';
113
90
  }
114
91
  /**
115
- * Handle an invoke request.
92
+ * Build LangGraph input from execute request.
93
+ */
94
+ buildGraphInput(request) {
95
+ const input = request.input;
96
+ if ('messages' in input) {
97
+ const messages = input.messages;
98
+ const lcMessages = messages.map((m) => this.toLangChainMessage(m));
99
+ return { messages: lcMessages };
100
+ }
101
+ else {
102
+ return input;
103
+ }
104
+ }
105
+ /**
106
+ * Handle an execute request.
116
107
  *
117
- * For task-oriented operations. Passes the input directly to the graph.
108
+ * For both task-oriented and chat-style operations.
118
109
  *
119
- * @param request - The invoke request with input data.
120
- * @returns The invoke response with the output.
110
+ * @param request - The execute request with input data.
111
+ * @returns The execute response with the output.
121
112
  */
122
- async invoke(request) {
123
- // Pass input directly to the graph
124
- const result = await this.graph.invoke(request.input);
113
+ async execute(request) {
114
+ const graphInput = this.buildGraphInput(request);
115
+ // Call the graph
116
+ const result = await this.graph.invoke(graphInput);
125
117
  // Extract output from result
126
118
  let output;
127
119
  if (result && typeof result === 'object' && 'messages' in result) {
@@ -137,73 +129,15 @@ export class LangGraphAdapter extends AdapterBase {
137
129
  return { output };
138
130
  }
139
131
  /**
140
- * Handle a chat request.
141
- *
142
- * For conversational interactions. Converts messages to LangChain format
143
- * and invokes the graph with the state dict format.
144
- *
145
- * @param request - The chat request with messages.
146
- * @returns The chat response with output and messages.
147
- */
148
- async chat(request) {
149
- // Convert messages to LangChain format
150
- const lcMessages = request.messages.map((m) => this.toLangChainMessage(m));
151
- // Call the graph with state dict format
152
- const result = (await this.graph.invoke({ messages: lcMessages }));
153
- // Extract messages from result
154
- const resultMessages = result.messages || [];
155
- // Get content from the last AI message
156
- const output = this.getLastAIContent(resultMessages);
157
- // Convert all messages back to Reminix format
158
- const responseMessages = resultMessages.map((m) => this.toReminixMessage(m));
159
- return { output, messages: responseMessages };
160
- }
161
- /**
162
- * Handle a streaming invoke request.
163
- *
164
- * @param request - The invoke request with input data.
165
- * @yields JSON-encoded chunks from the stream.
166
- */
167
- async *invokeStream(request) {
168
- // Stream from the graph (await if stream returns a promise)
169
- const streamResult = this.graph.stream(request.input);
170
- const stream = streamResult instanceof Promise ? await streamResult : streamResult;
171
- for await (const chunk of stream) {
172
- // LangGraph streams dicts with node outputs
173
- if (chunk && typeof chunk === 'object') {
174
- for (const [, nodeOutput] of Object.entries(chunk)) {
175
- if (nodeOutput && typeof nodeOutput === 'object' && 'messages' in nodeOutput) {
176
- const messages = nodeOutput.messages;
177
- for (const msg of messages) {
178
- if (msg instanceof AIMessage) {
179
- const content = typeof msg.content === 'string' ? msg.content : String(msg.content);
180
- if (content) {
181
- yield JSON.stringify({ chunk: content });
182
- }
183
- }
184
- }
185
- }
186
- else {
187
- yield JSON.stringify({ chunk: JSON.stringify(nodeOutput) });
188
- }
189
- }
190
- }
191
- else {
192
- yield JSON.stringify({ chunk: String(chunk) });
193
- }
194
- }
195
- }
196
- /**
197
- * Handle a streaming chat request.
132
+ * Handle a streaming execute request.
198
133
  *
199
- * @param request - The chat request with messages.
134
+ * @param request - The execute request with input data.
200
135
  * @yields JSON-encoded chunks from the stream.
201
136
  */
202
- async *chatStream(request) {
203
- // Convert messages to LangChain format
204
- const lcMessages = request.messages.map((m) => this.toLangChainMessage(m));
137
+ async *executeStream(request) {
138
+ const graphInput = this.buildGraphInput(request);
205
139
  // Stream from the graph (await if stream returns a promise)
206
- const streamResult = this.graph.stream({ messages: lcMessages });
140
+ const streamResult = this.graph.stream(graphInput);
207
141
  const stream = streamResult instanceof Promise ? await streamResult : streamResult;
208
142
  for await (const chunk of stream) {
209
143
  // LangGraph streams dicts with node outputs
@@ -236,7 +170,7 @@ export class LangGraphAdapter extends AdapterBase {
236
170
  *
237
171
  * @param graph - A LangGraph compiled graph.
238
172
  * @param name - Name for the agent.
239
- * @returns A LangGraphAdapter instance.
173
+ * @returns A LangGraphAgentAdapter instance.
240
174
  *
241
175
  * @example
242
176
  * ```typescript
@@ -252,7 +186,7 @@ export class LangGraphAdapter extends AdapterBase {
252
186
  * ```
253
187
  */
254
188
  export function wrapAgent(graph, name = 'langgraph-agent') {
255
- return new LangGraphAdapter(graph, name);
189
+ return new LangGraphAgentAdapter(graph, name);
256
190
  }
257
191
  /**
258
192
  * Wrap a LangGraph graph and serve it immediately.
@@ -278,4 +212,4 @@ export function serveAgent(graph, options = {}) {
278
212
  const agent = wrapAgent(graph, name);
279
213
  serve({ agents: [agent], port, hostname });
280
214
  }
281
- //# sourceMappingURL=adapter.js.map
215
+ //# sourceMappingURL=agent-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-adapter.js","sourceRoot":"","sources":["../src/agent-adapter.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- export { LangGraphAdapter, wrapAgent, serveAgent } from './adapter.js';
2
- export type { WrapAndServeOptions } from './adapter.js';
1
+ export { LangGraphAgentAdapter, wrapAgent, serveAgent } from './agent-adapter.js';
2
+ export type { WrapAndServeOptions } from './agent-adapter.js';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACvE,YAAY,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAClF,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC"}
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- export { LangGraphAdapter, wrapAgent, serveAgent } from './adapter.js';
1
+ export { LangGraphAgentAdapter, wrapAgent, serveAgent } from './agent-adapter.js';
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reminix/langgraph",
3
- "version": "0.0.6",
3
+ "version": "0.0.8",
4
4
  "description": "Reminix adapter for LangGraph - serve agents as REST APIs",
5
5
  "license": "Apache-2.0",
6
6
  "author": {
@@ -46,7 +46,7 @@
46
46
  "LICENSE"
47
47
  ],
48
48
  "dependencies": {
49
- "@reminix/runtime": "^0.0.6"
49
+ "@reminix/runtime": "^0.0.8"
50
50
  },
51
51
  "peerDependencies": {
52
52
  "@langchain/langgraph": ">=1.0.0"
@@ -1 +0,0 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,OAAO,EACL,WAAW,EAEX,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,YAAY,EAElB,MAAM,kBAAkB,CAAC;AAU1B;;GAEG;AACH,UAAU,iBAAiB;IACzB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;CAClF;AAED;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,WAAW;IAC/C,MAAM,CAAC,WAAW,SAAe;IAEjC,OAAO,CAAC,KAAK,CAAoB;IACjC,OAAO,CAAC,KAAK,CAAS;IAEtB;;;;;OAKG;gBACS,KAAK,EAAE,iBAAiB,EAAE,IAAI,GAAE,MAA0B;IAMtE,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAqB1B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAoBxB;;OAEG;IACH,OAAO,CAAC,WAAW;IAUnB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAyBxB;;;;;;;OAOG;IACG,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAkB7D;;;;;;;;OAQG;IACG,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAmBvD;;;;;OAKG;IACI,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC;IA4BlF;;;;;OAKG;IACI,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC;CA8B/E;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,iBAAiB,EACxB,IAAI,GAAE,MAA0B,GAC/B,gBAAgB,CAElB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,YAAY;IACvD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,iBAAiB,EAAE,OAAO,GAAE,mBAAwB,GAAG,IAAI,CAI5F"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,YAAY,EACZ,SAAS,EACT,aAAa,EACb,WAAW,GAEZ,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,WAAW,EACX,KAAK,GAON,MAAM,kBAAkB,CAAC;AAkB1B;;GAEG;AACH,MAAM,OAAO,gBAAiB,SAAQ,WAAW;IAC/C,MAAM,CAAC,WAAW,GAAG,WAAW,CAAC;IAEzB,KAAK,CAAoB;IACzB,KAAK,CAAS;IAEtB;;;;;OAKG;IACH,YAAY,KAAwB,EAAE,OAAe,iBAAiB;QACpE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;OAEG;IACK,kBAAkB,CAAC,OAAgB;QACzC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;QAClC,MAAM,UAAU,GAAG,OAAO,IAAI,EAAE,CAAC;QAEjC,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,MAAM;gBACT,OAAO,IAAI,YAAY,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;YACnD,KAAK,WAAW;gBACd,OAAO,IAAI,SAAS,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;YAChD,KAAK,QAAQ;gBACX,OAAO,IAAI,aAAa,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;YACpD,KAAK,MAAM;gBACT,OAAO,IAAI,WAAW,CAAC;oBACrB,OAAO,EAAE,UAAU;oBACnB,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,SAAS;iBAChD,CAAC,CAAC;YACL;gBACE,OAAO,IAAI,YAAY,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,OAAoB;QAC3C,IAAI,IAAqB,CAAC;QAE1B,IAAI,OAAO,YAAY,YAAY,EAAE,CAAC;YACpC,IAAI,GAAG,MAAM,CAAC;QAChB,CAAC;aAAM,IAAI,OAAO,YAAY,SAAS,EAAE,CAAC;YACxC,IAAI,GAAG,WAAW,CAAC;QACrB,CAAC;aAAM,IAAI,OAAO,YAAY,aAAa,EAAE,CAAC;YAC5C,IAAI,GAAG,QAAQ,CAAC;QAClB,CAAC;aAAM,IAAI,OAAO,YAAY,WAAW,EAAE,CAAC;YAC1C,IAAI,GAAG,MAAM,CAAC;QAChB,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,WAAW,CAAC;QACrB,CAAC;QAED,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAEhG,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED;;OAEG;IACK,WAAW,CAAC,OAAoB;QACtC,8CAA8C;QAC9C,IAAI,OAAO,YAAY,SAAS;YAAE,OAAO,IAAI,CAAC;QAC9C,kDAAkD;QAClD,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU,IAAI,OAAO,CAAC,QAAQ,EAAE,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QACvF,mCAAmC;QACnC,IAAI,OAAO,CAAC,WAAW,EAAE,IAAI,KAAK,WAAW;YAAE,OAAO,IAAI,CAAC;QAC3D,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,QAAuB;QAC9C,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9C,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC9B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;gBAChC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;oBAChC,IAAI,OAAO;wBAAE,OAAO,OAAO,CAAC;gBAC9B,CAAC;qBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;oBAClC,wDAAwD;oBACxD,MAAM,SAAS,GAAG,OAAO;yBACtB,MAAM,CACL,CAAC,IAAI,EAA0C,EAAE,CAC/C,OAAO,IAAI,KAAK,QAAQ;wBACxB,IAAI,KAAK,IAAI;wBACb,IAAI,CAAC,IAAI,KAAK,MAAM;wBACpB,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAChC;yBACA,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC5B,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;wBAAE,OAAO,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACtD,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,MAAM,CAAC,OAAsB;QACjC,mCAAmC;QACnC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAEtD,6BAA6B;QAC7B,IAAI,MAAe,CAAC;QACpB,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,UAAU,IAAI,MAAM,EAAE,CAAC;YACjE,MAAM,QAAQ,GAAI,MAAqB,CAAC,QAAQ,IAAI,EAAE,CAAC;YACvD,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC3C,CAAC;aAAM,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAChD,MAAM,GAAG,MAAM,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,IAAI,CAAC,OAAoB;QAC7B,uCAAuC;QACvC,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;QAE3E,wCAAwC;QACxC,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAe,CAAC;QAEjF,+BAA+B;QAC/B,MAAM,cAAc,GAAkB,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;QAE5D,uCAAuC;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;QAErD,8CAA8C;QAC9C,MAAM,gBAAgB,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;QAE7E,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAChD,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,CAAC,YAAY,CAAC,OAAsB;QACxC,4DAA4D;QAC5D,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,YAAY,YAAY,OAAO,CAAC,CAAC,CAAC,MAAM,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC;QACnF,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACjC,4CAA4C;YAC5C,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACvC,KAAK,MAAM,CAAC,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,EAAE,CAAC;oBAC9E,IAAI,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,IAAI,UAAU,EAAE,CAAC;wBAC7E,MAAM,QAAQ,GAAI,UAA0C,CAAC,QAAQ,CAAC;wBACtE,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;4BAC3B,IAAI,GAAG,YAAY,SAAS,EAAE,CAAC;gCAC7B,MAAM,OAAO,GAAG,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gCACpF,IAAI,OAAO,EAAE,CAAC;oCACZ,MAAM,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;gCAC3C,CAAC;4BACH,CAAC;wBACH,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,MAAM,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;oBAC9D,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,CAAC,UAAU,CAAC,OAAoB;QACpC,uCAAuC;QACvC,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;QAE3E,4DAA4D;QAC5D,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;QACjE,MAAM,MAAM,GAAG,YAAY,YAAY,OAAO,CAAC,CAAC,CAAC,MAAM,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC;QACnF,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACjC,4CAA4C;YAC5C,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACvC,KAAK,MAAM,CAAC,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,EAAE,CAAC;oBAC9E,IAAI,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,IAAI,UAAU,EAAE,CAAC;wBAC7E,MAAM,QAAQ,GAAI,UAA0C,CAAC,QAAQ,CAAC;wBACtE,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;4BAC3B,IAAI,GAAG,YAAY,SAAS,EAAE,CAAC;gCAC7B,MAAM,OAAO,GAAG,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gCACpF,IAAI,OAAO,EAAE,CAAC;oCACZ,MAAM,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;gCAC3C,CAAC;4BACH,CAAC;wBACH,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,MAAM,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;oBAC9D,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;IACH,CAAC;;AAGH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,SAAS,CACvB,KAAwB,EACxB,OAAe,iBAAiB;IAEhC,OAAO,IAAI,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAC3C,CAAC;AASD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,UAAU,CAAC,KAAwB,EAAE,UAA+B,EAAE;IACpF,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IACzC,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACrC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC7C,CAAC"}