@yeshwanthyk/runtime-effect 0.1.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.
- package/README.md +19 -0
- package/dist/agent.d.ts +15 -0
- package/dist/agent.d.ts.map +1 -0
- package/dist/agent.js +28 -0
- package/dist/agent.js.map +1 -0
- package/dist/config.d.ts +65 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +232 -0
- package/dist/config.js.map +1 -0
- package/dist/extensibility/custom-commands.d.ts +51 -0
- package/dist/extensibility/custom-commands.d.ts.map +1 -0
- package/dist/extensibility/custom-commands.js +139 -0
- package/dist/extensibility/custom-commands.js.map +1 -0
- package/dist/extensibility/custom-tools/index.d.ts +6 -0
- package/dist/extensibility/custom-tools/index.d.ts.map +1 -0
- package/dist/extensibility/custom-tools/index.js +5 -0
- package/dist/extensibility/custom-tools/index.js.map +1 -0
- package/dist/extensibility/custom-tools/loader.d.ts +24 -0
- package/dist/extensibility/custom-tools/loader.d.ts.map +1 -0
- package/dist/extensibility/custom-tools/loader.js +219 -0
- package/dist/extensibility/custom-tools/loader.js.map +1 -0
- package/dist/extensibility/custom-tools/types.d.ts +102 -0
- package/dist/extensibility/custom-tools/types.d.ts.map +1 -0
- package/dist/extensibility/custom-tools/types.js +5 -0
- package/dist/extensibility/custom-tools/types.js.map +1 -0
- package/dist/extensibility/index.d.ts +36 -0
- package/dist/extensibility/index.d.ts.map +1 -0
- package/dist/extensibility/index.js +79 -0
- package/dist/extensibility/index.js.map +1 -0
- package/dist/extensibility/schema.d.ts +40 -0
- package/dist/extensibility/schema.d.ts.map +1 -0
- package/dist/extensibility/schema.js +75 -0
- package/dist/extensibility/schema.js.map +1 -0
- package/dist/extensibility/validation.d.ts +11 -0
- package/dist/extensibility/validation.d.ts.map +1 -0
- package/dist/extensibility/validation.js +59 -0
- package/dist/extensibility/validation.js.map +1 -0
- package/dist/hooks/context-controller.d.ts +25 -0
- package/dist/hooks/context-controller.d.ts.map +1 -0
- package/dist/hooks/context-controller.js +21 -0
- package/dist/hooks/context-controller.js.map +1 -0
- package/dist/hooks/effects.d.ts +25 -0
- package/dist/hooks/effects.d.ts.map +1 -0
- package/dist/hooks/effects.js +45 -0
- package/dist/hooks/effects.js.map +1 -0
- package/dist/hooks/hook-messages.d.ts +10 -0
- package/dist/hooks/hook-messages.d.ts.map +1 -0
- package/dist/hooks/hook-messages.js +28 -0
- package/dist/hooks/hook-messages.js.map +1 -0
- package/dist/hooks/hook-tool-adapter.d.ts +12 -0
- package/dist/hooks/hook-tool-adapter.d.ts.map +1 -0
- package/dist/hooks/hook-tool-adapter.js +39 -0
- package/dist/hooks/hook-tool-adapter.js.map +1 -0
- package/dist/hooks/hook-transport.d.ts +19 -0
- package/dist/hooks/hook-transport.d.ts.map +1 -0
- package/dist/hooks/hook-transport.js +29 -0
- package/dist/hooks/hook-transport.js.map +1 -0
- package/dist/hooks/hook-ui-context.d.ts +20 -0
- package/dist/hooks/hook-ui-context.d.ts.map +1 -0
- package/dist/hooks/hook-ui-context.js +16 -0
- package/dist/hooks/hook-ui-context.js.map +1 -0
- package/dist/hooks/index.d.ts +17 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +27 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/loader.d.ts +59 -0
- package/dist/hooks/loader.d.ts.map +1 -0
- package/dist/hooks/loader.js +170 -0
- package/dist/hooks/loader.js.map +1 -0
- package/dist/hooks/message-transformer.d.ts +16 -0
- package/dist/hooks/message-transformer.d.ts.map +1 -0
- package/dist/hooks/message-transformer.js +46 -0
- package/dist/hooks/message-transformer.js.map +1 -0
- package/dist/hooks/runner.d.ts +109 -0
- package/dist/hooks/runner.d.ts.map +1 -0
- package/dist/hooks/runner.js +426 -0
- package/dist/hooks/runner.js.map +1 -0
- package/dist/hooks/tool-wrapper.d.ts +16 -0
- package/dist/hooks/tool-wrapper.d.ts.map +1 -0
- package/dist/hooks/tool-wrapper.js +74 -0
- package/dist/hooks/tool-wrapper.js.map +1 -0
- package/dist/hooks/types.d.ts +431 -0
- package/dist/hooks/types.d.ts.map +1 -0
- package/dist/hooks/types.js +8 -0
- package/dist/hooks/types.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +17 -0
- package/dist/index.js.map +1 -0
- package/dist/instrumentation.d.ts +56 -0
- package/dist/instrumentation.d.ts.map +1 -0
- package/dist/instrumentation.js +13 -0
- package/dist/instrumentation.js.map +1 -0
- package/dist/lazy-tool-loader.d.ts +67 -0
- package/dist/lazy-tool-loader.d.ts.map +1 -0
- package/dist/lazy-tool-loader.js +129 -0
- package/dist/lazy-tool-loader.js.map +1 -0
- package/dist/lsp.d.ts +16 -0
- package/dist/lsp.d.ts.map +1 -0
- package/dist/lsp.js +24 -0
- package/dist/lsp.js.map +1 -0
- package/dist/runtime.d.ts +62 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +243 -0
- package/dist/runtime.js.map +1 -0
- package/dist/session/execution-plan.d.ts +53 -0
- package/dist/session/execution-plan.d.ts.map +1 -0
- package/dist/session/execution-plan.js +170 -0
- package/dist/session/execution-plan.js.map +1 -0
- package/dist/session/orchestrator.d.ts +21 -0
- package/dist/session/orchestrator.d.ts.map +1 -0
- package/dist/session/orchestrator.js +154 -0
- package/dist/session/orchestrator.js.map +1 -0
- package/dist/session/prompt-queue.d.ts +50 -0
- package/dist/session/prompt-queue.d.ts.map +1 -0
- package/dist/session/prompt-queue.js +155 -0
- package/dist/session/prompt-queue.js.map +1 -0
- package/dist/session-manager.d.ts +80 -0
- package/dist/session-manager.d.ts.map +1 -0
- package/dist/session-manager.js +257 -0
- package/dist/session-manager.js.map +1 -0
- package/dist/tools.d.ts +10 -0
- package/dist/tools.d.ts.map +1 -0
- package/dist/tools.js +19 -0
- package/dist/tools.js.map +1 -0
- package/dist/transports.d.ts +18 -0
- package/dist/transports.d.ts.map +1 -0
- package/dist/transports.js +37 -0
- package/dist/transports.js.map +1 -0
- package/package.json +43 -0
|
@@ -0,0 +1,431 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hook system types.
|
|
3
|
+
*
|
|
4
|
+
* Hooks are TypeScript modules that subscribe to agent lifecycle events.
|
|
5
|
+
* Load from ~/.config/marvin/hooks/*.ts
|
|
6
|
+
*/
|
|
7
|
+
import type { AppMessage } from "@yeshwanthyk/agent-core";
|
|
8
|
+
import type { Api, ImageContent, Message, Model, SimpleStreamOptions, TextContent, ToolResultMessage } from "@yeshwanthyk/ai";
|
|
9
|
+
import type { JSX } from "solid-js";
|
|
10
|
+
import type { ReadonlySessionManager } from "../session-manager.js";
|
|
11
|
+
import type { PromptDeliveryMode } from "../session/prompt-queue.js";
|
|
12
|
+
export interface HookTheme {
|
|
13
|
+
name?: string;
|
|
14
|
+
mode?: string;
|
|
15
|
+
readonly [key: string]: unknown;
|
|
16
|
+
}
|
|
17
|
+
/** Result of executing a command via ctx.exec() */
|
|
18
|
+
export interface ExecResult {
|
|
19
|
+
stdout: string;
|
|
20
|
+
stderr: string;
|
|
21
|
+
code: number;
|
|
22
|
+
killed?: boolean;
|
|
23
|
+
}
|
|
24
|
+
export interface ExecOptions {
|
|
25
|
+
signal?: AbortSignal;
|
|
26
|
+
timeout?: number;
|
|
27
|
+
}
|
|
28
|
+
/** Context passed to hook event handlers */
|
|
29
|
+
export interface HookEventContext {
|
|
30
|
+
/** Execute a shell command */
|
|
31
|
+
exec(command: string, args: string[], options?: ExecOptions): Promise<ExecResult>;
|
|
32
|
+
/** Current working directory */
|
|
33
|
+
cwd: string;
|
|
34
|
+
/** Config directory (~/.config/marvin) */
|
|
35
|
+
configDir: string;
|
|
36
|
+
/** Current session ID (null if no session) */
|
|
37
|
+
sessionId: string | null;
|
|
38
|
+
/** Read-only session manager for accessing session data */
|
|
39
|
+
sessionManager: ReadonlySessionManager;
|
|
40
|
+
/** Current model (null if not set) */
|
|
41
|
+
model: Model<Api> | null;
|
|
42
|
+
/** UI context for prompts/notifications */
|
|
43
|
+
ui: HookUIContext;
|
|
44
|
+
/** Whether UI is available (false in headless/ACP) */
|
|
45
|
+
hasUI: boolean;
|
|
46
|
+
/** Session operations (summarize, toast, etc.) */
|
|
47
|
+
session: HookSessionContext;
|
|
48
|
+
/** Delivery-aware helpers */
|
|
49
|
+
isIdle(): boolean;
|
|
50
|
+
steer(text: string): Promise<void>;
|
|
51
|
+
followUp(text: string): Promise<void>;
|
|
52
|
+
sendUserMessage(text: string, options?: {
|
|
53
|
+
deliverAs?: PromptDeliveryMode;
|
|
54
|
+
}): Promise<void>;
|
|
55
|
+
}
|
|
56
|
+
/** UI context for hook prompts and notifications */
|
|
57
|
+
export interface HookUIContext {
|
|
58
|
+
select(title: string, options: string[]): Promise<string | undefined>;
|
|
59
|
+
confirm(title: string, message: string): Promise<boolean>;
|
|
60
|
+
input(title: string, placeholder?: string): Promise<string | undefined>;
|
|
61
|
+
editor(title: string, initialText?: string): Promise<string | undefined>;
|
|
62
|
+
notify(message: string, type?: "info" | "warning" | "error"): void;
|
|
63
|
+
custom<T>(factory: (done: (result: T) => void) => JSX.Element): Promise<T | undefined>;
|
|
64
|
+
setEditorText(text: string): void;
|
|
65
|
+
getEditorText(): string;
|
|
66
|
+
}
|
|
67
|
+
/** Token usage stats */
|
|
68
|
+
export interface TokenUsage {
|
|
69
|
+
input: number;
|
|
70
|
+
output: number;
|
|
71
|
+
cacheRead?: number;
|
|
72
|
+
cacheWrite?: number;
|
|
73
|
+
total: number;
|
|
74
|
+
}
|
|
75
|
+
/** Result from an LLM completion */
|
|
76
|
+
export interface CompletionResult {
|
|
77
|
+
text: string;
|
|
78
|
+
stopReason: "end" | "tool_use" | "max_tokens" | "aborted" | "error";
|
|
79
|
+
}
|
|
80
|
+
/** Session operations available to hooks */
|
|
81
|
+
export interface HookSessionContext {
|
|
82
|
+
/** Trigger session compaction/summarization */
|
|
83
|
+
summarize(): Promise<void>;
|
|
84
|
+
/** Show toast notification (TUI only, no-op in headless) */
|
|
85
|
+
toast(title: string, message: string, variant?: "info" | "warning" | "success" | "error"): void;
|
|
86
|
+
/** Get current token usage for the session */
|
|
87
|
+
getTokenUsage(): TokenUsage | undefined;
|
|
88
|
+
/** Get model context limit */
|
|
89
|
+
getContextLimit(): number | undefined;
|
|
90
|
+
/** Create a new session, optionally linking to parent */
|
|
91
|
+
newSession(opts?: {
|
|
92
|
+
parentSession?: string;
|
|
93
|
+
}): Promise<{
|
|
94
|
+
cancelled: boolean;
|
|
95
|
+
sessionId?: string;
|
|
96
|
+
}>;
|
|
97
|
+
/** Get API key for a model's provider (may not work for OAuth) */
|
|
98
|
+
getApiKey(model: Model<Api>): Promise<string | undefined>;
|
|
99
|
+
/** Make an LLM completion using the app's transport (handles OAuth, etc.) */
|
|
100
|
+
complete(systemPrompt: string, userText: string): Promise<CompletionResult>;
|
|
101
|
+
}
|
|
102
|
+
/** Message part (text or image) */
|
|
103
|
+
export type MessagePart = TextContent | ImageContent;
|
|
104
|
+
/** Hook-injected message */
|
|
105
|
+
export interface HookMessage<T = unknown> {
|
|
106
|
+
role: "hookMessage";
|
|
107
|
+
customType: string;
|
|
108
|
+
content: string | MessagePart[];
|
|
109
|
+
display: boolean;
|
|
110
|
+
details?: T;
|
|
111
|
+
timestamp: number;
|
|
112
|
+
}
|
|
113
|
+
/** Registered slash command from a hook */
|
|
114
|
+
export interface RegisteredCommand {
|
|
115
|
+
name: string;
|
|
116
|
+
description?: string;
|
|
117
|
+
handler: (args: string, ctx: HookEventContext) => Promise<void>;
|
|
118
|
+
}
|
|
119
|
+
/** Renderer for hook messages */
|
|
120
|
+
export type HookMessageRenderer<T = unknown> = (message: HookMessage<T>, options: {
|
|
121
|
+
expanded: boolean;
|
|
122
|
+
}, theme: HookTheme) => JSX.Element | undefined;
|
|
123
|
+
/** Schema for hook-registered tool */
|
|
124
|
+
export interface HookToolSchema {
|
|
125
|
+
type: "object";
|
|
126
|
+
properties: Record<string, {
|
|
127
|
+
type: "string" | "number" | "boolean" | "array" | "object";
|
|
128
|
+
description?: string;
|
|
129
|
+
enum?: string[];
|
|
130
|
+
optional?: boolean;
|
|
131
|
+
}>;
|
|
132
|
+
required?: string[];
|
|
133
|
+
}
|
|
134
|
+
/** Tool registered by a hook */
|
|
135
|
+
export interface RegisteredTool {
|
|
136
|
+
name: string;
|
|
137
|
+
description: string;
|
|
138
|
+
schema: HookToolSchema;
|
|
139
|
+
execute: (args: Record<string, unknown>, ctx: HookEventContext) => Promise<string>;
|
|
140
|
+
}
|
|
141
|
+
/** Fired after config load, before agent starts */
|
|
142
|
+
export interface AppStartEvent {
|
|
143
|
+
type: "app.start";
|
|
144
|
+
}
|
|
145
|
+
/** Fired when session starts/resumes/clears */
|
|
146
|
+
export interface SessionEvent {
|
|
147
|
+
type: "session.start" | "session.resume" | "session.clear";
|
|
148
|
+
sessionId: string | null;
|
|
149
|
+
}
|
|
150
|
+
/** Fired when agent loop starts (once per user prompt) */
|
|
151
|
+
export interface AgentStartEvent {
|
|
152
|
+
type: "agent.start";
|
|
153
|
+
sessionId: string | null;
|
|
154
|
+
}
|
|
155
|
+
/** Fired when agent loop ends */
|
|
156
|
+
export interface AgentEndEvent {
|
|
157
|
+
type: "agent.end";
|
|
158
|
+
sessionId: string | null;
|
|
159
|
+
messages: AppMessage[];
|
|
160
|
+
totalTokens: TokenUsage;
|
|
161
|
+
contextLimit: number;
|
|
162
|
+
}
|
|
163
|
+
/** Fired when a turn starts (one LLM call cycle) */
|
|
164
|
+
export interface TurnStartEvent {
|
|
165
|
+
type: "turn.start";
|
|
166
|
+
sessionId: string | null;
|
|
167
|
+
turnIndex: number;
|
|
168
|
+
}
|
|
169
|
+
/** Context usage info for hooks */
|
|
170
|
+
export interface ContextUsage {
|
|
171
|
+
/** Current token count */
|
|
172
|
+
current: number;
|
|
173
|
+
/** Max context window */
|
|
174
|
+
max: number;
|
|
175
|
+
/** Usage percentage (0-100) */
|
|
176
|
+
percent: number;
|
|
177
|
+
}
|
|
178
|
+
/** Fired when a turn ends */
|
|
179
|
+
export interface TurnEndEvent {
|
|
180
|
+
type: "turn.end";
|
|
181
|
+
sessionId: string | null;
|
|
182
|
+
turnIndex: number;
|
|
183
|
+
message: AppMessage;
|
|
184
|
+
toolResults: ToolResultMessage[];
|
|
185
|
+
tokens: TokenUsage;
|
|
186
|
+
contextLimit: number;
|
|
187
|
+
/** @deprecated Use tokens and contextLimit instead */
|
|
188
|
+
usage?: ContextUsage;
|
|
189
|
+
}
|
|
190
|
+
/** Fired before a tool executes. Hooks can block or modify input. */
|
|
191
|
+
export interface ToolExecuteBeforeEvent {
|
|
192
|
+
type: "tool.execute.before";
|
|
193
|
+
sessionId: string | null;
|
|
194
|
+
toolName: string;
|
|
195
|
+
toolCallId: string;
|
|
196
|
+
input: Record<string, unknown>;
|
|
197
|
+
}
|
|
198
|
+
/** Fired after a tool executes. Hooks can modify result. */
|
|
199
|
+
export interface ToolExecuteAfterEvent<TDetails = unknown> {
|
|
200
|
+
type: "tool.execute.after";
|
|
201
|
+
sessionId: string | null;
|
|
202
|
+
toolName: string;
|
|
203
|
+
toolCallId: string;
|
|
204
|
+
input: Record<string, unknown>;
|
|
205
|
+
content: (TextContent | ImageContent)[];
|
|
206
|
+
details: TDetails;
|
|
207
|
+
isError: boolean;
|
|
208
|
+
}
|
|
209
|
+
/** Fired before agent starts, allows injecting context */
|
|
210
|
+
export interface BeforeAgentStartEvent {
|
|
211
|
+
type: "agent.before_start";
|
|
212
|
+
prompt: string;
|
|
213
|
+
images?: ImageContent[];
|
|
214
|
+
}
|
|
215
|
+
/** Result from agent.before_start handler */
|
|
216
|
+
export interface BeforeAgentStartResult {
|
|
217
|
+
message?: Pick<HookMessage, "customType" | "content" | "display" | "details">;
|
|
218
|
+
}
|
|
219
|
+
/** Mutates user input before sending to LLM */
|
|
220
|
+
export interface ChatMessageEvent {
|
|
221
|
+
type: "chat.message";
|
|
222
|
+
input: {
|
|
223
|
+
sessionId: string | null;
|
|
224
|
+
text: string;
|
|
225
|
+
};
|
|
226
|
+
output: {
|
|
227
|
+
parts: MessagePart[];
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
/** Transforms full message history before LLM call */
|
|
231
|
+
export interface ChatMessagesTransformEvent {
|
|
232
|
+
type: "chat.messages.transform";
|
|
233
|
+
messages: Message[];
|
|
234
|
+
}
|
|
235
|
+
/** Transforms system prompt before LLM call */
|
|
236
|
+
export interface ChatSystemTransformEvent {
|
|
237
|
+
type: "chat.system.transform";
|
|
238
|
+
input: {
|
|
239
|
+
sessionId: string | null;
|
|
240
|
+
systemPrompt: string;
|
|
241
|
+
};
|
|
242
|
+
output: {
|
|
243
|
+
systemPrompt: string;
|
|
244
|
+
};
|
|
245
|
+
}
|
|
246
|
+
/** Mutates stream options before LLM call */
|
|
247
|
+
export interface ChatParamsEvent {
|
|
248
|
+
type: "chat.params";
|
|
249
|
+
input: {
|
|
250
|
+
sessionId: string | null;
|
|
251
|
+
};
|
|
252
|
+
output: {
|
|
253
|
+
streamOptions: SimpleStreamOptions;
|
|
254
|
+
};
|
|
255
|
+
}
|
|
256
|
+
/** Provides auth overrides per request */
|
|
257
|
+
export interface AuthGetEvent {
|
|
258
|
+
type: "auth.get";
|
|
259
|
+
input: {
|
|
260
|
+
sessionId: string | null;
|
|
261
|
+
provider: string;
|
|
262
|
+
modelId: string;
|
|
263
|
+
};
|
|
264
|
+
output: {
|
|
265
|
+
apiKey?: string;
|
|
266
|
+
headers?: Record<string, string>;
|
|
267
|
+
baseUrl?: string;
|
|
268
|
+
};
|
|
269
|
+
}
|
|
270
|
+
/** Resolves/overrides model for request */
|
|
271
|
+
export interface ModelResolveEvent {
|
|
272
|
+
type: "model.resolve";
|
|
273
|
+
input: {
|
|
274
|
+
sessionId: string | null;
|
|
275
|
+
model: Model<Api>;
|
|
276
|
+
};
|
|
277
|
+
output: {
|
|
278
|
+
model: Model<Api>;
|
|
279
|
+
};
|
|
280
|
+
}
|
|
281
|
+
/** Fired before session compaction */
|
|
282
|
+
export interface SessionBeforeCompactEvent {
|
|
283
|
+
type: "session.before_compact";
|
|
284
|
+
input: {
|
|
285
|
+
sessionId: string | null;
|
|
286
|
+
};
|
|
287
|
+
output: {
|
|
288
|
+
cancel?: boolean;
|
|
289
|
+
prompt?: string;
|
|
290
|
+
context?: string[];
|
|
291
|
+
};
|
|
292
|
+
}
|
|
293
|
+
/** Fired after session compaction completes */
|
|
294
|
+
export interface SessionCompactEvent {
|
|
295
|
+
type: "session.compact";
|
|
296
|
+
sessionId: string | null;
|
|
297
|
+
summary: string;
|
|
298
|
+
}
|
|
299
|
+
/** Fired when session/app is shutting down */
|
|
300
|
+
export interface SessionShutdownEvent {
|
|
301
|
+
type: "session.shutdown";
|
|
302
|
+
sessionId: string | null;
|
|
303
|
+
}
|
|
304
|
+
/** Union of all hook event types */
|
|
305
|
+
export type HookEvent = AppStartEvent | SessionEvent | SessionBeforeCompactEvent | SessionCompactEvent | SessionShutdownEvent | BeforeAgentStartEvent | AgentStartEvent | AgentEndEvent | TurnStartEvent | TurnEndEvent | ToolExecuteBeforeEvent | ToolExecuteAfterEvent | ChatMessageEvent | ChatMessagesTransformEvent | ChatSystemTransformEvent | ChatParamsEvent | AuthGetEvent | ModelResolveEvent;
|
|
306
|
+
/** Return type for tool.execute.before handlers - can block execution or modify input */
|
|
307
|
+
export interface ToolExecuteBeforeResult {
|
|
308
|
+
block?: boolean;
|
|
309
|
+
reason?: string;
|
|
310
|
+
/** Modified input to use instead of original */
|
|
311
|
+
input?: Record<string, unknown>;
|
|
312
|
+
}
|
|
313
|
+
/** Return type for tool.execute.after handlers - can modify result */
|
|
314
|
+
export interface ToolExecuteAfterResult<TDetails = unknown> {
|
|
315
|
+
content?: (TextContent | ImageContent)[];
|
|
316
|
+
details?: TDetails;
|
|
317
|
+
isError?: boolean;
|
|
318
|
+
}
|
|
319
|
+
/** Handler function type */
|
|
320
|
+
export type HookHandler<E, R = void> = (event: E, ctx: HookEventContext) => Promise<R> | R;
|
|
321
|
+
/** Event type string literals */
|
|
322
|
+
export type HookEventType = HookEvent["type"];
|
|
323
|
+
/** Map event type to event data */
|
|
324
|
+
export interface HookEventMap {
|
|
325
|
+
"app.start": AppStartEvent;
|
|
326
|
+
"session.start": SessionEvent;
|
|
327
|
+
"session.resume": SessionEvent;
|
|
328
|
+
"session.clear": SessionEvent;
|
|
329
|
+
"session.before_compact": SessionBeforeCompactEvent;
|
|
330
|
+
"session.compact": SessionCompactEvent;
|
|
331
|
+
"session.shutdown": SessionShutdownEvent;
|
|
332
|
+
"agent.before_start": BeforeAgentStartEvent;
|
|
333
|
+
"agent.start": AgentStartEvent;
|
|
334
|
+
"agent.end": AgentEndEvent;
|
|
335
|
+
"turn.start": TurnStartEvent;
|
|
336
|
+
"turn.end": TurnEndEvent;
|
|
337
|
+
"tool.execute.before": ToolExecuteBeforeEvent;
|
|
338
|
+
"tool.execute.after": ToolExecuteAfterEvent;
|
|
339
|
+
"chat.message": ChatMessageEvent;
|
|
340
|
+
"chat.messages.transform": ChatMessagesTransformEvent;
|
|
341
|
+
"chat.system.transform": ChatSystemTransformEvent;
|
|
342
|
+
"chat.params": ChatParamsEvent;
|
|
343
|
+
"auth.get": AuthGetEvent;
|
|
344
|
+
"model.resolve": ModelResolveEvent;
|
|
345
|
+
}
|
|
346
|
+
/** Map event type to result type */
|
|
347
|
+
export interface HookResultMap {
|
|
348
|
+
"app.start": void;
|
|
349
|
+
"session.start": void;
|
|
350
|
+
"session.resume": void;
|
|
351
|
+
"session.clear": void;
|
|
352
|
+
"session.before_compact": void;
|
|
353
|
+
"session.compact": void;
|
|
354
|
+
"session.shutdown": void;
|
|
355
|
+
"agent.before_start": BeforeAgentStartResult | undefined;
|
|
356
|
+
"agent.start": void;
|
|
357
|
+
"agent.end": void;
|
|
358
|
+
"turn.start": void;
|
|
359
|
+
"turn.end": void;
|
|
360
|
+
"tool.execute.before": ToolExecuteBeforeResult | undefined;
|
|
361
|
+
"tool.execute.after": ToolExecuteAfterResult | undefined;
|
|
362
|
+
"chat.message": void;
|
|
363
|
+
"chat.messages.transform": void;
|
|
364
|
+
"chat.system.transform": void;
|
|
365
|
+
"chat.params": void;
|
|
366
|
+
"auth.get": void;
|
|
367
|
+
"model.resolve": void;
|
|
368
|
+
}
|
|
369
|
+
/**
|
|
370
|
+
* HookAPI passed to hook factory functions.
|
|
371
|
+
* Hooks use marvin.on() to subscribe to events and marvin.send() to inject messages.
|
|
372
|
+
*/
|
|
373
|
+
export interface HookAPI {
|
|
374
|
+
on<T extends HookEventType>(event: T, handler: HookHandler<HookEventMap[T], HookResultMap[T]>): void;
|
|
375
|
+
/**
|
|
376
|
+
* Send a message to the agent.
|
|
377
|
+
* If agent is streaming, message is queued.
|
|
378
|
+
* If agent is idle, triggers a new agent loop.
|
|
379
|
+
*/
|
|
380
|
+
send(text: string): void;
|
|
381
|
+
/**
|
|
382
|
+
* Send a user message with explicit delivery mode.
|
|
383
|
+
* Defaults to follow-up when agent is busy, otherwise triggers a new turn.
|
|
384
|
+
*/
|
|
385
|
+
sendUserMessage(text: string, options?: {
|
|
386
|
+
deliverAs?: PromptDeliveryMode;
|
|
387
|
+
}): Promise<void>;
|
|
388
|
+
/** Queue steering instructions or send immediately if idle. */
|
|
389
|
+
steer(text: string): Promise<void>;
|
|
390
|
+
/** Queue follow-up instructions or send immediately if idle. */
|
|
391
|
+
followUp(text: string): Promise<void>;
|
|
392
|
+
/** True when the agent is not currently streaming or running tools. */
|
|
393
|
+
isIdle(): boolean;
|
|
394
|
+
/**
|
|
395
|
+
* Send a hook message to the agent.
|
|
396
|
+
* Message is persisted and optionally triggers a new turn.
|
|
397
|
+
*/
|
|
398
|
+
sendMessage<T = unknown>(message: Pick<HookMessage<T>, "customType" | "content" | "display" | "details">, triggerTurn?: boolean): void;
|
|
399
|
+
/**
|
|
400
|
+
* Append a custom entry to the session log.
|
|
401
|
+
* Does not affect agent state, only persists data.
|
|
402
|
+
*/
|
|
403
|
+
appendEntry<T = unknown>(customType: string, data?: T): void;
|
|
404
|
+
/**
|
|
405
|
+
* Register a custom renderer for hook messages of a given type.
|
|
406
|
+
*/
|
|
407
|
+
registerMessageRenderer<T = unknown>(customType: string, renderer: HookMessageRenderer<T>): void;
|
|
408
|
+
/**
|
|
409
|
+
* Register a slash command.
|
|
410
|
+
*/
|
|
411
|
+
registerCommand(name: string, options: {
|
|
412
|
+
description?: string;
|
|
413
|
+
handler: RegisteredCommand["handler"];
|
|
414
|
+
}): void;
|
|
415
|
+
/**
|
|
416
|
+
* Register a tool that will be available to the agent.
|
|
417
|
+
*/
|
|
418
|
+
registerTool(tool: RegisteredTool): void;
|
|
419
|
+
}
|
|
420
|
+
/**
|
|
421
|
+
* Hook factory function type.
|
|
422
|
+
* Hooks export a default function that receives the HookAPI.
|
|
423
|
+
*/
|
|
424
|
+
export type HookFactory = (marvin: HookAPI) => void | Promise<void>;
|
|
425
|
+
/** Error emitted when a hook fails */
|
|
426
|
+
export interface HookError {
|
|
427
|
+
hookPath: string;
|
|
428
|
+
event: string;
|
|
429
|
+
error: string;
|
|
430
|
+
}
|
|
431
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/hooks/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/hooks/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export * from "./config.js";
|
|
2
|
+
export * from "./session-manager.js";
|
|
3
|
+
export * from "./transports.js";
|
|
4
|
+
export * from "./tools.js";
|
|
5
|
+
export * from "./agent.js";
|
|
6
|
+
export * from "./extensibility/index.js";
|
|
7
|
+
export * from "./extensibility/custom-commands.js";
|
|
8
|
+
export * from "./extensibility/schema.js";
|
|
9
|
+
export * from "./extensibility/validation.js";
|
|
10
|
+
export * from "./hooks/index.js";
|
|
11
|
+
export * from "./lazy-tool-loader.js";
|
|
12
|
+
export * from "./session/prompt-queue.js";
|
|
13
|
+
export * from "./session/execution-plan.js";
|
|
14
|
+
export * from "./session/orchestrator.js";
|
|
15
|
+
export * from "./instrumentation.js";
|
|
16
|
+
export * from "./runtime.js";
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,0BAA0B,CAAC;AACzC,cAAc,oCAAoC,CAAC;AACnD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export * from "./config.js";
|
|
2
|
+
export * from "./session-manager.js";
|
|
3
|
+
export * from "./transports.js";
|
|
4
|
+
export * from "./tools.js";
|
|
5
|
+
export * from "./agent.js";
|
|
6
|
+
export * from "./extensibility/index.js";
|
|
7
|
+
export * from "./extensibility/custom-commands.js";
|
|
8
|
+
export * from "./extensibility/schema.js";
|
|
9
|
+
export * from "./extensibility/validation.js";
|
|
10
|
+
export * from "./hooks/index.js";
|
|
11
|
+
export * from "./lazy-tool-loader.js";
|
|
12
|
+
export * from "./session/prompt-queue.js";
|
|
13
|
+
export * from "./session/execution-plan.js";
|
|
14
|
+
export * from "./session/orchestrator.js";
|
|
15
|
+
export * from "./instrumentation.js";
|
|
16
|
+
export * from "./runtime.js";
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,0BAA0B,CAAC;AACzC,cAAc,oCAAoC,CAAC;AACnD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { Context, Layer } from "effect";
|
|
2
|
+
import type { ValidationIssue } from "./extensibility/schema.js";
|
|
3
|
+
export type InstrumentationEvent = {
|
|
4
|
+
type: "hook:error";
|
|
5
|
+
hookPath: string;
|
|
6
|
+
event: string;
|
|
7
|
+
error: string;
|
|
8
|
+
} | {
|
|
9
|
+
type: "hook:context-configured";
|
|
10
|
+
hasUI: boolean;
|
|
11
|
+
} | {
|
|
12
|
+
type: "extensibility:validation-issue";
|
|
13
|
+
issue: ValidationIssue;
|
|
14
|
+
} | {
|
|
15
|
+
type: "extensibility:loaded";
|
|
16
|
+
hooks: number;
|
|
17
|
+
customTools: number;
|
|
18
|
+
customCommands?: number;
|
|
19
|
+
} | {
|
|
20
|
+
type: "extensibility:commands-loaded";
|
|
21
|
+
count: number;
|
|
22
|
+
names: string[];
|
|
23
|
+
} | {
|
|
24
|
+
type: "extensibility:custom-tools-loaded";
|
|
25
|
+
count: number;
|
|
26
|
+
entries: Array<{
|
|
27
|
+
name: string;
|
|
28
|
+
path: string;
|
|
29
|
+
}>;
|
|
30
|
+
} | {
|
|
31
|
+
type: "lsp:activity";
|
|
32
|
+
active: boolean;
|
|
33
|
+
} | {
|
|
34
|
+
type: "execution-plan:registered";
|
|
35
|
+
steps: Array<{
|
|
36
|
+
id: string;
|
|
37
|
+
provider: string;
|
|
38
|
+
modelId: string;
|
|
39
|
+
attempts: number;
|
|
40
|
+
isFallback: boolean;
|
|
41
|
+
}>;
|
|
42
|
+
} | {
|
|
43
|
+
type: "tmux:log";
|
|
44
|
+
level: "info" | "warn" | "error";
|
|
45
|
+
message: string;
|
|
46
|
+
details?: Record<string, unknown>;
|
|
47
|
+
};
|
|
48
|
+
export interface InstrumentationService {
|
|
49
|
+
record: (event: InstrumentationEvent) => void;
|
|
50
|
+
}
|
|
51
|
+
export declare const InstrumentationTag: Context.Tag<InstrumentationService, InstrumentationService>;
|
|
52
|
+
export declare const NoopInstrumentationLayer: Layer.Layer<InstrumentationService, never, never>;
|
|
53
|
+
export declare const ConsoleInstrumentationLayer: (options?: {
|
|
54
|
+
prefix?: string;
|
|
55
|
+
}) => Layer.Layer<InstrumentationService, never, never>;
|
|
56
|
+
//# sourceMappingURL=instrumentation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../src/instrumentation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AACvC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAEhE,MAAM,MAAM,oBAAoB,GAC7B;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACtE;IAAE,IAAI,EAAE,yBAAyB,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GACnD;IAAE,IAAI,EAAE,gCAAgC,CAAC;IAAC,KAAK,EAAE,eAAe,CAAA;CAAE,GAClE;IAAE,IAAI,EAAE,sBAAsB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,GAC7F;IAAE,IAAI,EAAE,+BAA+B,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,GACzE;IACA,IAAI,EAAE,mCAAmC,CAAA;IACzC,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAC7C,GACD;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GACzC;IACA,IAAI,EAAE,2BAA2B,CAAA;IACjC,KAAK,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;CACrG,GACD;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAA;AAE7G,MAAM,WAAW,sBAAsB;IACtC,MAAM,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAA;CAC7C;AAED,eAAO,MAAM,kBAAkB,6DAAsF,CAAA;AAErH,eAAO,MAAM,wBAAwB,mDAEnC,CAAA;AAEF,eAAO,MAAM,2BAA2B,GAAI,UAAU;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,sDAOtE,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Context, Layer } from "effect";
|
|
2
|
+
export const InstrumentationTag = Context.GenericTag("runtime-effect/InstrumentationService");
|
|
3
|
+
export const NoopInstrumentationLayer = Layer.succeed(InstrumentationTag, {
|
|
4
|
+
record: () => { },
|
|
5
|
+
});
|
|
6
|
+
export const ConsoleInstrumentationLayer = (options) => Layer.succeed(InstrumentationTag, {
|
|
7
|
+
record: (event) => {
|
|
8
|
+
const prefix = options?.prefix ?? "[runtime]";
|
|
9
|
+
// eslint-disable-next-line no-console
|
|
10
|
+
console.error(`${prefix} ${event.type}`, event);
|
|
11
|
+
},
|
|
12
|
+
});
|
|
13
|
+
//# sourceMappingURL=instrumentation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../src/instrumentation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAyBvC,MAAM,CAAC,MAAM,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAyB,uCAAuC,CAAC,CAAA;AAErH,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,CAAC,OAAO,CAAC,kBAAkB,EAAE;IACzE,MAAM,EAAE,GAAG,EAAE,GAAE,CAAC;CAChB,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,OAA6B,EAAE,EAAE,CAC5E,KAAK,CAAC,OAAO,CAAC,kBAAkB,EAAE;IACjC,MAAM,EAAE,CAAC,KAA2B,EAAE,EAAE;QACvC,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,WAAW,CAAA;QAC7C,sCAAsC;QACtC,OAAO,CAAC,KAAK,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,CAAA;IAChD,CAAC;CACD,CAAC,CAAA"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import type { AgentTool } from "@yeshwanthyk/ai";
|
|
2
|
+
import type { ToolDef } from "@yeshwanthyk/base-tools";
|
|
3
|
+
/**
|
|
4
|
+
* Lazily loads tools from registry + manages custom/hook tools.
|
|
5
|
+
* Pre-loads core tools (read, bash) on instantiation for fast startup.
|
|
6
|
+
*/
|
|
7
|
+
export declare class LazyToolLoader {
|
|
8
|
+
private registry;
|
|
9
|
+
private customTools;
|
|
10
|
+
private hookTools;
|
|
11
|
+
private loaded;
|
|
12
|
+
private loading;
|
|
13
|
+
constructor(registry: Record<string, ToolDef>, customTools?: AgentTool[], hookTools?: AgentTool[]);
|
|
14
|
+
/**
|
|
15
|
+
* Pre-load core tools for fast startup.
|
|
16
|
+
* Call this after construction but before agent runs.
|
|
17
|
+
*/
|
|
18
|
+
preloadCoreTools(): Promise<void>;
|
|
19
|
+
/**
|
|
20
|
+
* Get a tool, loading lazily if not yet loaded.
|
|
21
|
+
* Returns null if tool doesn't exist.
|
|
22
|
+
*/
|
|
23
|
+
getTool(name: string): Promise<AgentTool | null>;
|
|
24
|
+
/**
|
|
25
|
+
* Get all currently loaded tools as an array.
|
|
26
|
+
* Includes custom and hook tools.
|
|
27
|
+
*/
|
|
28
|
+
getLoadedTools(): AgentTool[];
|
|
29
|
+
/**
|
|
30
|
+
* Get all tools (loaded + pre-loaded + custom + hooks)
|
|
31
|
+
* For use with agent initialization.
|
|
32
|
+
* Returns a proxy array that supports find() without full loading.
|
|
33
|
+
*/
|
|
34
|
+
getToolsProxy(): ToolProxyArray;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Proxy array that supports array operations but loads tools lazily.
|
|
38
|
+
* Used for agent.state.tools to maintain array interface.
|
|
39
|
+
*/
|
|
40
|
+
export declare class ToolProxyArray {
|
|
41
|
+
private loader;
|
|
42
|
+
constructor(loader: LazyToolLoader);
|
|
43
|
+
/**
|
|
44
|
+
* Find a tool by predicate.
|
|
45
|
+
* Only searches pre-loaded tools (core + custom + hooks).
|
|
46
|
+
* Secondary tools are loaded on-demand by agent-loop.
|
|
47
|
+
*/
|
|
48
|
+
find(predicate: (tool: AgentTool) => boolean): AgentTool | undefined;
|
|
49
|
+
/**
|
|
50
|
+
* Check if array is empty.
|
|
51
|
+
*/
|
|
52
|
+
get length(): number;
|
|
53
|
+
/**
|
|
54
|
+
* Iterate over loaded tools.
|
|
55
|
+
*/
|
|
56
|
+
[Symbol.iterator](): ArrayIterator<AgentTool<import("@sinclair/typebox").TSchema, any>>;
|
|
57
|
+
/**
|
|
58
|
+
* Filter loaded tools.
|
|
59
|
+
*/
|
|
60
|
+
filter(predicate: (tool: AgentTool) => boolean): AgentTool[];
|
|
61
|
+
/**
|
|
62
|
+
* Map over loaded tools.
|
|
63
|
+
*/
|
|
64
|
+
map<T>(fn: (tool: AgentTool) => T): T[];
|
|
65
|
+
toArray(): AgentTool[];
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=lazy-tool-loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lazy-tool-loader.d.ts","sourceRoot":"","sources":["../src/lazy-tool-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAEvD;;;GAGG;AACH,qBAAa,cAAc;IAKzB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,SAAS;IANlB,OAAO,CAAC,MAAM,CAAgC;IAC9C,OAAO,CAAC,OAAO,CAAyC;gBAG/C,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,WAAW,GAAE,SAAS,EAAO,EAC7B,SAAS,GAAE,SAAS,EAAO;IAGpC;;;OAGG;IACG,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIvC;;;OAGG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAyCtD;;;OAGG;IACH,cAAc,IAAI,SAAS,EAAE;IAQ7B;;;;OAIG;IACH,aAAa,IAAI,cAAc;CAG/B;AAED;;;GAGG;AACH,qBAAa,cAAc;IACd,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,cAAc;IAE1C;;;;OAIG;IACH,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,OAAO,GAAG,SAAS,GAAG,SAAS;IAIpE;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;OAEG;IACH,CAAC,MAAM,CAAC,QAAQ,CAAC;IAIjB;;OAEG;IACH,MAAM,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,OAAO,GAAG,SAAS,EAAE;IAI5D;;OAEG;IACH,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,CAAC,GAAG,CAAC,EAAE;IAIvC,OAAO,IAAI,SAAS,EAAE;CAGtB"}
|