steroids-cli 0.4.47
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/LICENSE +21 -0
- package/README.md +640 -0
- package/dist/cli/colors.d.ts +110 -0
- package/dist/cli/colors.d.ts.map +1 -0
- package/dist/cli/colors.js +228 -0
- package/dist/cli/colors.js.map +1 -0
- package/dist/cli/env.d.ts +159 -0
- package/dist/cli/env.d.ts.map +1 -0
- package/dist/cli/env.js +227 -0
- package/dist/cli/env.js.map +1 -0
- package/dist/cli/errors.d.ts +166 -0
- package/dist/cli/errors.d.ts.map +1 -0
- package/dist/cli/errors.js +244 -0
- package/dist/cli/errors.js.map +1 -0
- package/dist/cli/flags.d.ts +75 -0
- package/dist/cli/flags.d.ts.map +1 -0
- package/dist/cli/flags.js +232 -0
- package/dist/cli/flags.js.map +1 -0
- package/dist/cli/help.d.ts +97 -0
- package/dist/cli/help.d.ts.map +1 -0
- package/dist/cli/help.js +275 -0
- package/dist/cli/help.js.map +1 -0
- package/dist/cli/index.d.ts +13 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +29 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/interactive.d.ts +58 -0
- package/dist/cli/interactive.d.ts.map +1 -0
- package/dist/cli/interactive.js +127 -0
- package/dist/cli/interactive.js.map +1 -0
- package/dist/cli/output.d.ts +116 -0
- package/dist/cli/output.d.ts.map +1 -0
- package/dist/cli/output.js +178 -0
- package/dist/cli/output.js.map +1 -0
- package/dist/commands/about.d.ts +7 -0
- package/dist/commands/about.d.ts.map +1 -0
- package/dist/commands/about.js +259 -0
- package/dist/commands/about.js.map +1 -0
- package/dist/commands/ai.d.ts +6 -0
- package/dist/commands/ai.d.ts.map +1 -0
- package/dist/commands/ai.js +382 -0
- package/dist/commands/ai.js.map +1 -0
- package/dist/commands/backup.d.ts +3 -0
- package/dist/commands/backup.d.ts.map +1 -0
- package/dist/commands/backup.js +528 -0
- package/dist/commands/backup.js.map +1 -0
- package/dist/commands/completion.d.ts +3 -0
- package/dist/commands/completion.d.ts.map +1 -0
- package/dist/commands/completion.js +405 -0
- package/dist/commands/completion.js.map +1 -0
- package/dist/commands/config.d.ts +3 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +665 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/disputes.d.ts +3 -0
- package/dist/commands/disputes.d.ts.map +1 -0
- package/dist/commands/disputes.js +499 -0
- package/dist/commands/disputes.js.map +1 -0
- package/dist/commands/gc.d.ts +3 -0
- package/dist/commands/gc.d.ts.map +1 -0
- package/dist/commands/gc.js +300 -0
- package/dist/commands/gc.js.map +1 -0
- package/dist/commands/git.d.ts +3 -0
- package/dist/commands/git.d.ts.map +1 -0
- package/dist/commands/git.js +458 -0
- package/dist/commands/git.js.map +1 -0
- package/dist/commands/health.d.ts +3 -0
- package/dist/commands/health.d.ts.map +1 -0
- package/dist/commands/health.js +604 -0
- package/dist/commands/health.js.map +1 -0
- package/dist/commands/hooks.d.ts +6 -0
- package/dist/commands/hooks.d.ts.map +1 -0
- package/dist/commands/hooks.js +529 -0
- package/dist/commands/hooks.js.map +1 -0
- package/dist/commands/init.d.ts +6 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +200 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/llm.d.ts +7 -0
- package/dist/commands/llm.d.ts.map +1 -0
- package/dist/commands/llm.js +285 -0
- package/dist/commands/llm.js.map +1 -0
- package/dist/commands/locks.d.ts +3 -0
- package/dist/commands/locks.d.ts.map +1 -0
- package/dist/commands/locks.js +431 -0
- package/dist/commands/locks.js.map +1 -0
- package/dist/commands/logs.d.ts +3 -0
- package/dist/commands/logs.d.ts.map +1 -0
- package/dist/commands/logs.js +487 -0
- package/dist/commands/logs.js.map +1 -0
- package/dist/commands/loop-phases.d.ts +11 -0
- package/dist/commands/loop-phases.d.ts.map +1 -0
- package/dist/commands/loop-phases.js +204 -0
- package/dist/commands/loop-phases.js.map +1 -0
- package/dist/commands/loop.d.ts +3 -0
- package/dist/commands/loop.d.ts.map +1 -0
- package/dist/commands/loop.js +396 -0
- package/dist/commands/loop.js.map +1 -0
- package/dist/commands/projects.d.ts +6 -0
- package/dist/commands/projects.d.ts.map +1 -0
- package/dist/commands/projects.js +362 -0
- package/dist/commands/projects.js.map +1 -0
- package/dist/commands/purge.d.ts +3 -0
- package/dist/commands/purge.d.ts.map +1 -0
- package/dist/commands/purge.js +516 -0
- package/dist/commands/purge.js.map +1 -0
- package/dist/commands/runners.d.ts +3 -0
- package/dist/commands/runners.d.ts.map +1 -0
- package/dist/commands/runners.js +1076 -0
- package/dist/commands/runners.js.map +1 -0
- package/dist/commands/scan.d.ts +3 -0
- package/dist/commands/scan.d.ts.map +1 -0
- package/dist/commands/scan.js +291 -0
- package/dist/commands/scan.js.map +1 -0
- package/dist/commands/sections-commands.d.ts +9 -0
- package/dist/commands/sections-commands.d.ts.map +1 -0
- package/dist/commands/sections-commands.js +282 -0
- package/dist/commands/sections-commands.js.map +1 -0
- package/dist/commands/sections-graph.d.ts +25 -0
- package/dist/commands/sections-graph.d.ts.map +1 -0
- package/dist/commands/sections-graph.js +180 -0
- package/dist/commands/sections-graph.js.map +1 -0
- package/dist/commands/sections.d.ts +3 -0
- package/dist/commands/sections.d.ts.map +1 -0
- package/dist/commands/sections.js +376 -0
- package/dist/commands/sections.js.map +1 -0
- package/dist/commands/stats.d.ts +6 -0
- package/dist/commands/stats.d.ts.map +1 -0
- package/dist/commands/stats.js +324 -0
- package/dist/commands/stats.js.map +1 -0
- package/dist/commands/tasks.d.ts +3 -0
- package/dist/commands/tasks.d.ts.map +1 -0
- package/dist/commands/tasks.js +1115 -0
- package/dist/commands/tasks.js.map +1 -0
- package/dist/commands/web.d.ts +7 -0
- package/dist/commands/web.d.ts.map +1 -0
- package/dist/commands/web.js +204 -0
- package/dist/commands/web.js.map +1 -0
- package/dist/config/ai-setup.d.ts +27 -0
- package/dist/config/ai-setup.d.ts.map +1 -0
- package/dist/config/ai-setup.js +432 -0
- package/dist/config/ai-setup.js.map +1 -0
- package/dist/config/browser.d.ts +9 -0
- package/dist/config/browser.d.ts.map +1 -0
- package/dist/config/browser.js +200 -0
- package/dist/config/browser.js.map +1 -0
- package/dist/config/json-schema.d.ts +28 -0
- package/dist/config/json-schema.d.ts.map +1 -0
- package/dist/config/json-schema.js +84 -0
- package/dist/config/json-schema.js.map +1 -0
- package/dist/config/loader.d.ts +152 -0
- package/dist/config/loader.d.ts.map +1 -0
- package/dist/config/loader.js +270 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/config/schema.d.ts +34 -0
- package/dist/config/schema.d.ts.map +1 -0
- package/dist/config/schema.js +437 -0
- package/dist/config/schema.js.map +1 -0
- package/dist/config/validator.d.ts +32 -0
- package/dist/config/validator.d.ts.map +1 -0
- package/dist/config/validator.js +187 -0
- package/dist/config/validator.js.map +1 -0
- package/dist/database/connection.d.ts +35 -0
- package/dist/database/connection.d.ts.map +1 -0
- package/dist/database/connection.js +208 -0
- package/dist/database/connection.js.map +1 -0
- package/dist/database/queries.d.ts +218 -0
- package/dist/database/queries.d.ts.map +1 -0
- package/dist/database/queries.js +613 -0
- package/dist/database/queries.js.map +1 -0
- package/dist/database/schema.d.ts +8 -0
- package/dist/database/schema.d.ts.map +1 -0
- package/dist/database/schema.js +160 -0
- package/dist/database/schema.js.map +1 -0
- package/dist/disputes/behavior.d.ts +106 -0
- package/dist/disputes/behavior.d.ts.map +1 -0
- package/dist/disputes/behavior.js +150 -0
- package/dist/disputes/behavior.js.map +1 -0
- package/dist/disputes/create.d.ts +59 -0
- package/dist/disputes/create.d.ts.map +1 -0
- package/dist/disputes/create.js +222 -0
- package/dist/disputes/create.js.map +1 -0
- package/dist/disputes/index.d.ts +21 -0
- package/dist/disputes/index.d.ts.map +1 -0
- package/dist/disputes/index.js +76 -0
- package/dist/disputes/index.js.map +1 -0
- package/dist/disputes/markdown.d.ts +41 -0
- package/dist/disputes/markdown.d.ts.map +1 -0
- package/dist/disputes/markdown.js +261 -0
- package/dist/disputes/markdown.js.map +1 -0
- package/dist/disputes/queries.d.ts +83 -0
- package/dist/disputes/queries.d.ts.map +1 -0
- package/dist/disputes/queries.js +180 -0
- package/dist/disputes/queries.js.map +1 -0
- package/dist/disputes/resolve.d.ts +57 -0
- package/dist/disputes/resolve.d.ts.map +1 -0
- package/dist/disputes/resolve.js +171 -0
- package/dist/disputes/resolve.js.map +1 -0
- package/dist/disputes/stale.d.ts +98 -0
- package/dist/disputes/stale.d.ts.map +1 -0
- package/dist/disputes/stale.js +205 -0
- package/dist/disputes/stale.js.map +1 -0
- package/dist/disputes/types.d.ts +92 -0
- package/dist/disputes/types.d.ts.map +1 -0
- package/dist/disputes/types.js +100 -0
- package/dist/disputes/types.js.map +1 -0
- package/dist/git/push.d.ts +26 -0
- package/dist/git/push.d.ts.map +1 -0
- package/dist/git/push.js +97 -0
- package/dist/git/push.js.map +1 -0
- package/dist/git/status.d.ts +61 -0
- package/dist/git/status.d.ts.map +1 -0
- package/dist/git/status.js +251 -0
- package/dist/git/status.js.map +1 -0
- package/dist/hooks/events.d.ts +72 -0
- package/dist/hooks/events.d.ts.map +1 -0
- package/dist/hooks/events.js +120 -0
- package/dist/hooks/events.js.map +1 -0
- package/dist/hooks/index.d.ts +19 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +48 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/integration.d.ts +69 -0
- package/dist/hooks/integration.d.ts.map +1 -0
- package/dist/hooks/integration.js +179 -0
- package/dist/hooks/integration.js.map +1 -0
- package/dist/hooks/merge.d.ts +115 -0
- package/dist/hooks/merge.d.ts.map +1 -0
- package/dist/hooks/merge.js +161 -0
- package/dist/hooks/merge.js.map +1 -0
- package/dist/hooks/orchestrator.d.ts +115 -0
- package/dist/hooks/orchestrator.d.ts.map +1 -0
- package/dist/hooks/orchestrator.js +226 -0
- package/dist/hooks/orchestrator.js.map +1 -0
- package/dist/hooks/payload.d.ts +294 -0
- package/dist/hooks/payload.d.ts.map +1 -0
- package/dist/hooks/payload.js +267 -0
- package/dist/hooks/payload.js.map +1 -0
- package/dist/hooks/script-runner.d.ts +63 -0
- package/dist/hooks/script-runner.d.ts.map +1 -0
- package/dist/hooks/script-runner.js +221 -0
- package/dist/hooks/script-runner.js.map +1 -0
- package/dist/hooks/templates.d.ts +104 -0
- package/dist/hooks/templates.d.ts.map +1 -0
- package/dist/hooks/templates.js +327 -0
- package/dist/hooks/templates.js.map +1 -0
- package/dist/hooks/webhook-runner.d.ts +69 -0
- package/dist/hooks/webhook-runner.d.ts.map +1 -0
- package/dist/hooks/webhook-runner.js +208 -0
- package/dist/hooks/webhook-runner.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +281 -0
- package/dist/index.js.map +1 -0
- package/dist/locking/cleanup.d.ts +70 -0
- package/dist/locking/cleanup.d.ts.map +1 -0
- package/dist/locking/cleanup.js +157 -0
- package/dist/locking/cleanup.js.map +1 -0
- package/dist/locking/queries.d.ts +116 -0
- package/dist/locking/queries.d.ts.map +1 -0
- package/dist/locking/queries.js +255 -0
- package/dist/locking/queries.js.map +1 -0
- package/dist/locking/section-lock.d.ts +74 -0
- package/dist/locking/section-lock.d.ts.map +1 -0
- package/dist/locking/section-lock.js +207 -0
- package/dist/locking/section-lock.js.map +1 -0
- package/dist/locking/task-lock.d.ts +92 -0
- package/dist/locking/task-lock.d.ts.map +1 -0
- package/dist/locking/task-lock.js +246 -0
- package/dist/locking/task-lock.js.map +1 -0
- package/dist/migrations/index.d.ts +7 -0
- package/dist/migrations/index.d.ts.map +1 -0
- package/dist/migrations/index.js +37 -0
- package/dist/migrations/index.js.map +1 -0
- package/dist/migrations/manifest.d.ts +92 -0
- package/dist/migrations/manifest.d.ts.map +1 -0
- package/dist/migrations/manifest.js +270 -0
- package/dist/migrations/manifest.js.map +1 -0
- package/dist/migrations/runner.d.ts +84 -0
- package/dist/migrations/runner.d.ts.map +1 -0
- package/dist/migrations/runner.js +351 -0
- package/dist/migrations/runner.js.map +1 -0
- package/dist/orchestrator/coder.d.ts +32 -0
- package/dist/orchestrator/coder.d.ts.map +1 -0
- package/dist/orchestrator/coder.js +174 -0
- package/dist/orchestrator/coder.js.map +1 -0
- package/dist/orchestrator/coordinator.d.ts +28 -0
- package/dist/orchestrator/coordinator.d.ts.map +1 -0
- package/dist/orchestrator/coordinator.js +256 -0
- package/dist/orchestrator/coordinator.js.map +1 -0
- package/dist/orchestrator/reviewer.d.ts +35 -0
- package/dist/orchestrator/reviewer.d.ts.map +1 -0
- package/dist/orchestrator/reviewer.js +241 -0
- package/dist/orchestrator/reviewer.js.map +1 -0
- package/dist/orchestrator/task-selector.d.ts +102 -0
- package/dist/orchestrator/task-selector.d.ts.map +1 -0
- package/dist/orchestrator/task-selector.js +341 -0
- package/dist/orchestrator/task-selector.js.map +1 -0
- package/dist/prompts/coder.d.ts +36 -0
- package/dist/prompts/coder.d.ts.map +1 -0
- package/dist/prompts/coder.js +315 -0
- package/dist/prompts/coder.js.map +1 -0
- package/dist/prompts/prompt-helpers.d.ts +51 -0
- package/dist/prompts/prompt-helpers.d.ts.map +1 -0
- package/dist/prompts/prompt-helpers.js +312 -0
- package/dist/prompts/prompt-helpers.js.map +1 -0
- package/dist/prompts/reviewer.d.ts +40 -0
- package/dist/prompts/reviewer.d.ts.map +1 -0
- package/dist/prompts/reviewer.js +438 -0
- package/dist/prompts/reviewer.js.map +1 -0
- package/dist/providers/api-models.d.ts +65 -0
- package/dist/providers/api-models.d.ts.map +1 -0
- package/dist/providers/api-models.js +323 -0
- package/dist/providers/api-models.js.map +1 -0
- package/dist/providers/claude.d.ts +53 -0
- package/dist/providers/claude.d.ts.map +1 -0
- package/dist/providers/claude.js +229 -0
- package/dist/providers/claude.js.map +1 -0
- package/dist/providers/codex.d.ts +53 -0
- package/dist/providers/codex.d.ts.map +1 -0
- package/dist/providers/codex.js +214 -0
- package/dist/providers/codex.js.map +1 -0
- package/dist/providers/gemini.d.ts +58 -0
- package/dist/providers/gemini.d.ts.map +1 -0
- package/dist/providers/gemini.js +242 -0
- package/dist/providers/gemini.js.map +1 -0
- package/dist/providers/index.d.ts +13 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +49 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/interface.d.ts +173 -0
- package/dist/providers/interface.d.ts.map +1 -0
- package/dist/providers/interface.js +96 -0
- package/dist/providers/interface.js.map +1 -0
- package/dist/providers/invocation-logger.d.ts +114 -0
- package/dist/providers/invocation-logger.d.ts.map +1 -0
- package/dist/providers/invocation-logger.js +298 -0
- package/dist/providers/invocation-logger.js.map +1 -0
- package/dist/providers/openai.d.ts +53 -0
- package/dist/providers/openai.d.ts.map +1 -0
- package/dist/providers/openai.js +232 -0
- package/dist/providers/openai.js.map +1 -0
- package/dist/providers/registry.d.ts +100 -0
- package/dist/providers/registry.d.ts.map +1 -0
- package/dist/providers/registry.js +178 -0
- package/dist/providers/registry.js.map +1 -0
- package/dist/runners/activity-log.d.ts +65 -0
- package/dist/runners/activity-log.d.ts.map +1 -0
- package/dist/runners/activity-log.js +148 -0
- package/dist/runners/activity-log.js.map +1 -0
- package/dist/runners/cron.d.ts +26 -0
- package/dist/runners/cron.d.ts.map +1 -0
- package/dist/runners/cron.js +176 -0
- package/dist/runners/cron.js.map +1 -0
- package/dist/runners/daemon.d.ts +71 -0
- package/dist/runners/daemon.d.ts.map +1 -0
- package/dist/runners/daemon.js +245 -0
- package/dist/runners/daemon.js.map +1 -0
- package/dist/runners/global-db.d.ts +31 -0
- package/dist/runners/global-db.d.ts.map +1 -0
- package/dist/runners/global-db.js +230 -0
- package/dist/runners/global-db.js.map +1 -0
- package/dist/runners/hang-detector.d.ts +38 -0
- package/dist/runners/hang-detector.d.ts.map +1 -0
- package/dist/runners/hang-detector.js +136 -0
- package/dist/runners/hang-detector.js.map +1 -0
- package/dist/runners/heartbeat.d.ts +39 -0
- package/dist/runners/heartbeat.d.ts.map +1 -0
- package/dist/runners/heartbeat.js +79 -0
- package/dist/runners/heartbeat.js.map +1 -0
- package/dist/runners/lock.d.ts +47 -0
- package/dist/runners/lock.d.ts.map +1 -0
- package/dist/runners/lock.js +150 -0
- package/dist/runners/lock.js.map +1 -0
- package/dist/runners/orchestrator-loop.d.ts +20 -0
- package/dist/runners/orchestrator-loop.d.ts.map +1 -0
- package/dist/runners/orchestrator-loop.js +285 -0
- package/dist/runners/orchestrator-loop.js.map +1 -0
- package/dist/runners/projects.d.ts +96 -0
- package/dist/runners/projects.d.ts.map +1 -0
- package/dist/runners/projects.js +255 -0
- package/dist/runners/projects.js.map +1 -0
- package/dist/runners/wakeup.d.ts +34 -0
- package/dist/runners/wakeup.d.ts.map +1 -0
- package/dist/runners/wakeup.js +291 -0
- package/dist/runners/wakeup.js.map +1 -0
- package/migrations/001_initial_schema.sql +106 -0
- package/migrations/002_add_commit_sha.sql +12 -0
- package/migrations/003_add_section_priority.sql +13 -0
- package/migrations/004_add_section_dependencies.sql +18 -0
- package/migrations/005_add_audit_actor_model.sql +10 -0
- package/migrations/006_add_task_invocations.sql +33 -0
- package/migrations/007_add_file_anchor.sql +14 -0
- package/migrations/manifest.json +62 -0
- package/package.json +49 -0
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AI Provider Interface
|
|
3
|
+
* Defines the contract for AI providers (Claude, Gemini, OpenAI, etc.)
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Options for invoking an AI provider
|
|
7
|
+
*/
|
|
8
|
+
export interface InvokeOptions {
|
|
9
|
+
/** Model identifier (e.g., 'claude-sonnet-4', 'gpt-4') */
|
|
10
|
+
model: string;
|
|
11
|
+
/** Timeout in milliseconds (default: 900000 = 15 minutes) */
|
|
12
|
+
timeout?: number;
|
|
13
|
+
/** Working directory for the invocation */
|
|
14
|
+
cwd?: string;
|
|
15
|
+
/** Path to prompt file (alternative to inline prompt) */
|
|
16
|
+
promptFile?: string;
|
|
17
|
+
/** Role for this invocation (orchestrator, coder, reviewer) */
|
|
18
|
+
role?: 'orchestrator' | 'coder' | 'reviewer';
|
|
19
|
+
/** Custom invocation template (e.g., "claude -p {prompt_file} --model {model}") */
|
|
20
|
+
invocationTemplate?: string;
|
|
21
|
+
/** Whether to stream output to stdout/stderr */
|
|
22
|
+
streamOutput?: boolean;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Result of an AI provider invocation
|
|
26
|
+
*/
|
|
27
|
+
export interface InvokeResult {
|
|
28
|
+
/** Whether the invocation succeeded (exit code 0) */
|
|
29
|
+
success: boolean;
|
|
30
|
+
/** Exit code from the CLI process */
|
|
31
|
+
exitCode: number;
|
|
32
|
+
/** Standard output from the process */
|
|
33
|
+
stdout: string;
|
|
34
|
+
/** Standard error from the process */
|
|
35
|
+
stderr: string;
|
|
36
|
+
/** Duration in milliseconds */
|
|
37
|
+
duration: number;
|
|
38
|
+
/** Whether the process was killed due to timeout */
|
|
39
|
+
timedOut: boolean;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Error types that can be classified from provider output
|
|
43
|
+
*/
|
|
44
|
+
export type ProviderErrorType = 'rate_limit' | 'auth_error' | 'network_error' | 'model_not_found' | 'context_exceeded' | 'subprocess_hung' | 'unknown';
|
|
45
|
+
/**
|
|
46
|
+
* Classified error from provider invocation
|
|
47
|
+
*/
|
|
48
|
+
export interface ProviderError {
|
|
49
|
+
/** Type of error */
|
|
50
|
+
type: ProviderErrorType;
|
|
51
|
+
/** Human-readable error message */
|
|
52
|
+
message: string;
|
|
53
|
+
/** Whether this error is retryable */
|
|
54
|
+
retryable: boolean;
|
|
55
|
+
/** Suggested retry delay in milliseconds */
|
|
56
|
+
retryAfterMs?: number;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Model information
|
|
60
|
+
*/
|
|
61
|
+
export interface ModelInfo {
|
|
62
|
+
/** Model identifier used for invocation */
|
|
63
|
+
id: string;
|
|
64
|
+
/** Human-readable name */
|
|
65
|
+
name: string;
|
|
66
|
+
/** Recommended role for this model */
|
|
67
|
+
recommendedFor?: ('orchestrator' | 'coder' | 'reviewer')[];
|
|
68
|
+
/** Whether this model supports streaming */
|
|
69
|
+
supportsStreaming?: boolean;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* AI Provider interface
|
|
73
|
+
* All providers must implement this interface
|
|
74
|
+
*/
|
|
75
|
+
export interface IAIProvider {
|
|
76
|
+
/** Provider name (e.g., 'claude', 'gemini', 'openai') */
|
|
77
|
+
readonly name: string;
|
|
78
|
+
/** Human-readable display name */
|
|
79
|
+
readonly displayName: string;
|
|
80
|
+
/**
|
|
81
|
+
* Invoke the provider with a prompt
|
|
82
|
+
* @param prompt The prompt text to send
|
|
83
|
+
* @param options Invocation options
|
|
84
|
+
* @returns Promise resolving to the invocation result
|
|
85
|
+
*/
|
|
86
|
+
invoke(prompt: string, options: InvokeOptions): Promise<InvokeResult>;
|
|
87
|
+
/**
|
|
88
|
+
* Check if this provider is available (CLI installed and accessible)
|
|
89
|
+
* @returns Promise resolving to true if available
|
|
90
|
+
*/
|
|
91
|
+
isAvailable(): Promise<boolean>;
|
|
92
|
+
/**
|
|
93
|
+
* List available models for this provider
|
|
94
|
+
* @returns Array of model identifiers
|
|
95
|
+
*/
|
|
96
|
+
listModels(): string[];
|
|
97
|
+
/**
|
|
98
|
+
* Get detailed model information
|
|
99
|
+
* @returns Array of model info objects
|
|
100
|
+
*/
|
|
101
|
+
getModelInfo(): ModelInfo[];
|
|
102
|
+
/**
|
|
103
|
+
* Get the default model for a role
|
|
104
|
+
* @param role The role to get default model for
|
|
105
|
+
* @returns Default model ID or undefined
|
|
106
|
+
*/
|
|
107
|
+
getDefaultModel(role: 'orchestrator' | 'coder' | 'reviewer'): string | undefined;
|
|
108
|
+
/**
|
|
109
|
+
* Classify an error from stderr output
|
|
110
|
+
* @param exitCode The process exit code
|
|
111
|
+
* @param stderr The stderr output
|
|
112
|
+
* @returns Classified error or null if not an error
|
|
113
|
+
*/
|
|
114
|
+
classifyError(exitCode: number, stderr: string): ProviderError | null;
|
|
115
|
+
/**
|
|
116
|
+
* Get the CLI path for this provider
|
|
117
|
+
* @returns Path to CLI executable or undefined if using default
|
|
118
|
+
*/
|
|
119
|
+
getCliPath(): string | undefined;
|
|
120
|
+
/**
|
|
121
|
+
* Set a custom CLI path
|
|
122
|
+
* @param path Path to CLI executable
|
|
123
|
+
*/
|
|
124
|
+
setCliPath(path: string): void;
|
|
125
|
+
/**
|
|
126
|
+
* Get the default invocation template
|
|
127
|
+
* @returns Default template with {prompt_file} and {model} placeholders
|
|
128
|
+
*/
|
|
129
|
+
getDefaultInvocationTemplate(): string;
|
|
130
|
+
/**
|
|
131
|
+
* Set a custom invocation template
|
|
132
|
+
* @param template Custom template with {prompt_file} and {model} placeholders
|
|
133
|
+
*/
|
|
134
|
+
setInvocationTemplate(template: string): void;
|
|
135
|
+
/**
|
|
136
|
+
* Get the current invocation template
|
|
137
|
+
* @returns Current template (custom or default)
|
|
138
|
+
*/
|
|
139
|
+
getInvocationTemplate(): string;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Base abstract class for AI providers
|
|
143
|
+
* Provides common functionality
|
|
144
|
+
*/
|
|
145
|
+
export declare abstract class BaseAIProvider implements IAIProvider {
|
|
146
|
+
abstract readonly name: string;
|
|
147
|
+
abstract readonly displayName: string;
|
|
148
|
+
protected cliPath: string | undefined;
|
|
149
|
+
protected invocationTemplate: string | undefined;
|
|
150
|
+
abstract invoke(prompt: string, options: InvokeOptions): Promise<InvokeResult>;
|
|
151
|
+
abstract isAvailable(): Promise<boolean>;
|
|
152
|
+
abstract listModels(): string[];
|
|
153
|
+
abstract getModelInfo(): ModelInfo[];
|
|
154
|
+
abstract getDefaultModel(role: 'orchestrator' | 'coder' | 'reviewer'): string | undefined;
|
|
155
|
+
abstract getDefaultInvocationTemplate(): string;
|
|
156
|
+
/**
|
|
157
|
+
* Classify an error based on exit code and stderr
|
|
158
|
+
* Subclasses can override for provider-specific error detection
|
|
159
|
+
*/
|
|
160
|
+
classifyError(exitCode: number, stderr: string): ProviderError | null;
|
|
161
|
+
getCliPath(): string | undefined;
|
|
162
|
+
setCliPath(path: string): void;
|
|
163
|
+
setInvocationTemplate(template: string): void;
|
|
164
|
+
getInvocationTemplate(): string;
|
|
165
|
+
/**
|
|
166
|
+
* Build the command from the invocation template
|
|
167
|
+
* @param promptFile Path to the prompt file
|
|
168
|
+
* @param model Model identifier
|
|
169
|
+
* @returns Command string ready for execution
|
|
170
|
+
*/
|
|
171
|
+
protected buildCommand(promptFile: string, model: string): string;
|
|
172
|
+
}
|
|
173
|
+
//# sourceMappingURL=interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src/providers/interface.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* AI Provider Interface
|
|
4
|
+
* Defines the contract for AI providers (Claude, Gemini, OpenAI, etc.)
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.BaseAIProvider = void 0;
|
|
8
|
+
/**
|
|
9
|
+
* Base abstract class for AI providers
|
|
10
|
+
* Provides common functionality
|
|
11
|
+
*/
|
|
12
|
+
class BaseAIProvider {
|
|
13
|
+
cliPath;
|
|
14
|
+
invocationTemplate;
|
|
15
|
+
/**
|
|
16
|
+
* Classify an error based on exit code and stderr
|
|
17
|
+
* Subclasses can override for provider-specific error detection
|
|
18
|
+
*/
|
|
19
|
+
classifyError(exitCode, stderr) {
|
|
20
|
+
if (exitCode === 0) {
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
const stderrLower = stderr.toLowerCase();
|
|
24
|
+
if (stderrLower.includes('rate limit') || stderr.includes('429')) {
|
|
25
|
+
return {
|
|
26
|
+
type: 'rate_limit',
|
|
27
|
+
message: 'Rate limit exceeded',
|
|
28
|
+
retryable: true,
|
|
29
|
+
retryAfterMs: 60000,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
if (stderrLower.includes('unauthorized') || stderrLower.includes('auth')) {
|
|
33
|
+
return {
|
|
34
|
+
type: 'auth_error',
|
|
35
|
+
message: 'Authentication failed',
|
|
36
|
+
retryable: false,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
if (stderrLower.includes('connection') || stderrLower.includes('timeout') ||
|
|
40
|
+
stderrLower.includes('network')) {
|
|
41
|
+
return {
|
|
42
|
+
type: 'network_error',
|
|
43
|
+
message: 'Network error',
|
|
44
|
+
retryable: true,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
if (stderrLower.includes('model') && stderrLower.includes('not found')) {
|
|
48
|
+
return {
|
|
49
|
+
type: 'model_not_found',
|
|
50
|
+
message: 'Model not found',
|
|
51
|
+
retryable: false,
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
if (stderrLower.includes('context') || stderrLower.includes('token limit') ||
|
|
55
|
+
stderrLower.includes('too long')) {
|
|
56
|
+
return {
|
|
57
|
+
type: 'context_exceeded',
|
|
58
|
+
message: 'Context limit exceeded',
|
|
59
|
+
retryable: false,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
return {
|
|
63
|
+
type: 'unknown',
|
|
64
|
+
message: stderr.slice(0, 200) || 'Unknown error',
|
|
65
|
+
retryable: true,
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
getCliPath() {
|
|
69
|
+
return this.cliPath;
|
|
70
|
+
}
|
|
71
|
+
setCliPath(path) {
|
|
72
|
+
this.cliPath = path;
|
|
73
|
+
}
|
|
74
|
+
setInvocationTemplate(template) {
|
|
75
|
+
this.invocationTemplate = template;
|
|
76
|
+
}
|
|
77
|
+
getInvocationTemplate() {
|
|
78
|
+
return this.invocationTemplate ?? this.getDefaultInvocationTemplate();
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Build the command from the invocation template
|
|
82
|
+
* @param promptFile Path to the prompt file
|
|
83
|
+
* @param model Model identifier
|
|
84
|
+
* @returns Command string ready for execution
|
|
85
|
+
*/
|
|
86
|
+
buildCommand(promptFile, model) {
|
|
87
|
+
const template = this.getInvocationTemplate();
|
|
88
|
+
const cli = this.cliPath ?? this.name;
|
|
89
|
+
return template
|
|
90
|
+
.replace('{cli}', cli)
|
|
91
|
+
.replace('{prompt_file}', promptFile)
|
|
92
|
+
.replace('{model}', model);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
exports.BaseAIProvider = BaseAIProvider;
|
|
96
|
+
//# sourceMappingURL=interface.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interface.js","sourceRoot":"","sources":["../../src/providers/interface.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAmKH;;;GAGG;AACH,MAAsB,cAAc;IAIxB,OAAO,CAAqB;IAC5B,kBAAkB,CAAqB;IASjD;;;OAGG;IACH,aAAa,CAAC,QAAgB,EAAE,MAAc;QAC5C,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QAEzC,IAAI,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACjE,OAAO;gBACL,IAAI,EAAE,YAAY;gBAClB,OAAO,EAAE,qBAAqB;gBAC9B,SAAS,EAAE,IAAI;gBACf,YAAY,EAAE,KAAK;aACpB,CAAC;QACJ,CAAC;QAED,IAAI,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACzE,OAAO;gBACL,IAAI,EAAE,YAAY;gBAClB,OAAO,EAAE,uBAAuB;gBAChC,SAAS,EAAE,KAAK;aACjB,CAAC;QACJ,CAAC;QAED,IAAI,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC;YACrE,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACpC,OAAO;gBACL,IAAI,EAAE,eAAe;gBACrB,OAAO,EAAE,eAAe;gBACxB,SAAS,EAAE,IAAI;aAChB,CAAC;QACJ,CAAC;QAED,IAAI,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YACvE,OAAO;gBACL,IAAI,EAAE,iBAAiB;gBACvB,OAAO,EAAE,iBAAiB;gBAC1B,SAAS,EAAE,KAAK;aACjB,CAAC;QACJ,CAAC;QAED,IAAI,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC;YACtE,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACrC,OAAO;gBACL,IAAI,EAAE,kBAAkB;gBACxB,OAAO,EAAE,wBAAwB;gBACjC,SAAS,EAAE,KAAK;aACjB,CAAC;QACJ,CAAC;QAED,OAAO;YACL,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,eAAe;YAChD,SAAS,EAAE,IAAI;SAChB,CAAC;IACJ,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,UAAU,CAAC,IAAY;QACrB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,qBAAqB,CAAC,QAAgB;QACpC,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC;IACrC,CAAC;IAED,qBAAqB;QACnB,OAAO,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,4BAA4B,EAAE,CAAC;IACxE,CAAC;IAED;;;;;OAKG;IACO,YAAY,CAAC,UAAkB,EAAE,KAAa;QACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC;QAEtC,OAAO,QAAQ;aACZ,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;aACrB,OAAO,CAAC,eAAe,EAAE,UAAU,CAAC;aACpC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC/B,CAAC;CACF;AA1GD,wCA0GC"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Invocation Logger
|
|
3
|
+
* Logs all LLM invocations for debugging and audit purposes
|
|
4
|
+
*/
|
|
5
|
+
import type { InvokeResult } from './interface.js';
|
|
6
|
+
/**
|
|
7
|
+
* Log entry for an LLM invocation
|
|
8
|
+
*/
|
|
9
|
+
export interface InvocationLogEntry {
|
|
10
|
+
/** Timestamp of invocation start */
|
|
11
|
+
timestamp: string;
|
|
12
|
+
/** Role (orchestrator, coder, reviewer) */
|
|
13
|
+
role: 'orchestrator' | 'coder' | 'reviewer';
|
|
14
|
+
/** Provider name (claude, openai, gemini, codex) */
|
|
15
|
+
provider: string;
|
|
16
|
+
/** Model identifier */
|
|
17
|
+
model: string;
|
|
18
|
+
/** Task ID if applicable */
|
|
19
|
+
taskId?: string;
|
|
20
|
+
/** Duration in milliseconds */
|
|
21
|
+
duration: number;
|
|
22
|
+
/** Exit code */
|
|
23
|
+
exitCode: number;
|
|
24
|
+
/** Whether the invocation succeeded */
|
|
25
|
+
success: boolean;
|
|
26
|
+
/** Whether the invocation timed out */
|
|
27
|
+
timedOut: boolean;
|
|
28
|
+
/** Prompt text */
|
|
29
|
+
prompt: string;
|
|
30
|
+
/** Response text (stdout) */
|
|
31
|
+
response: string;
|
|
32
|
+
/** Error text (stderr) */
|
|
33
|
+
error?: string;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Configuration for invocation logging
|
|
37
|
+
*/
|
|
38
|
+
export interface InvocationLoggerConfig {
|
|
39
|
+
/** Enable logging (default: true) */
|
|
40
|
+
enabled?: boolean;
|
|
41
|
+
/** Directory to store logs (default: .steroids/logs) */
|
|
42
|
+
logsDir?: string;
|
|
43
|
+
/** Log retention in days (default: 7, 0 = keep forever) */
|
|
44
|
+
retentionDays?: number;
|
|
45
|
+
/** Whether to include prompts in logs (default: true) */
|
|
46
|
+
includePrompts?: boolean;
|
|
47
|
+
/** Whether to include responses in logs (default: true) */
|
|
48
|
+
includeResponses?: boolean;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Invocation Logger
|
|
52
|
+
* Logs LLM invocations to disk for debugging and audit
|
|
53
|
+
*/
|
|
54
|
+
export declare class InvocationLogger {
|
|
55
|
+
private config;
|
|
56
|
+
constructor(config?: InvocationLoggerConfig);
|
|
57
|
+
/**
|
|
58
|
+
* Log an invocation
|
|
59
|
+
*/
|
|
60
|
+
log(entry: InvocationLogEntry): void;
|
|
61
|
+
/**
|
|
62
|
+
* Create log file name
|
|
63
|
+
*/
|
|
64
|
+
private createLogFileName;
|
|
65
|
+
/**
|
|
66
|
+
* Format log entry as text
|
|
67
|
+
*/
|
|
68
|
+
private formatLogEntry;
|
|
69
|
+
/**
|
|
70
|
+
* Ensure logs directory exists
|
|
71
|
+
*/
|
|
72
|
+
private ensureLogsDirectory;
|
|
73
|
+
/**
|
|
74
|
+
* Clean up old logs based on retention policy
|
|
75
|
+
*/
|
|
76
|
+
private cleanupOldLogs;
|
|
77
|
+
/**
|
|
78
|
+
* Get all log files
|
|
79
|
+
*/
|
|
80
|
+
getAllLogs(): string[];
|
|
81
|
+
/**
|
|
82
|
+
* Purge all logs
|
|
83
|
+
*/
|
|
84
|
+
purgeAll(): void;
|
|
85
|
+
/**
|
|
86
|
+
* Get total size of all logs in bytes
|
|
87
|
+
*/
|
|
88
|
+
getTotalSize(): number;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Get the global invocation logger
|
|
92
|
+
*/
|
|
93
|
+
export declare function getInvocationLogger(config?: InvocationLoggerConfig): InvocationLogger;
|
|
94
|
+
/**
|
|
95
|
+
* Set the global invocation logger
|
|
96
|
+
*/
|
|
97
|
+
export declare function setInvocationLogger(logger: InvocationLogger): void;
|
|
98
|
+
/**
|
|
99
|
+
* Reset the global invocation logger
|
|
100
|
+
*/
|
|
101
|
+
export declare function resetInvocationLogger(): void;
|
|
102
|
+
/**
|
|
103
|
+
* Helper to log an invocation result
|
|
104
|
+
* Logs to both file system and database (if taskId provided)
|
|
105
|
+
*/
|
|
106
|
+
export declare function logInvocation(prompt: string, result: InvokeResult, metadata: {
|
|
107
|
+
role: 'orchestrator' | 'coder' | 'reviewer';
|
|
108
|
+
provider: string;
|
|
109
|
+
model: string;
|
|
110
|
+
taskId?: string;
|
|
111
|
+
projectPath?: string;
|
|
112
|
+
rejectionNumber?: number;
|
|
113
|
+
}): void;
|
|
114
|
+
//# sourceMappingURL=invocation-logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invocation-logger.d.ts","sourceRoot":"","sources":["../../src/providers/invocation-logger.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,oCAAoC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,2CAA2C;IAC3C,IAAI,EAAE,cAAc,GAAG,OAAO,GAAG,UAAU,CAAC;IAC5C,oDAAoD;IACpD,QAAQ,EAAE,MAAM,CAAC;IACjB,uBAAuB;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,4BAA4B;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+BAA+B;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,uCAAuC;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,uCAAuC;IACvC,QAAQ,EAAE,OAAO,CAAC;IAClB,kBAAkB;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,6BAA6B;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,0BAA0B;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,qCAAqC;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wDAAwD;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,yDAAyD;IACzD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,2DAA2D;IAC3D,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAaD;;;GAGG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAmC;gBAErC,MAAM,GAAE,sBAA2B;IAI/C;;OAEG;IACH,GAAG,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI;IA2BpC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAgBzB;;OAEG;IACH,OAAO,CAAC,cAAc;IAkDtB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAM3B;;OAEG;IACH,OAAO,CAAC,cAAc;IAmCtB;;OAEG;IACH,UAAU,IAAI,MAAM,EAAE;IA6BtB;;OAEG;IACH,QAAQ,IAAI,IAAI;IAWhB;;OAEG;IACH,YAAY,IAAI,MAAM;CAevB;AAOD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,CAAC,EAAE,sBAAsB,GAAG,gBAAgB,CAKrF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAElE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE;IACR,IAAI,EAAE,cAAc,GAAG,OAAO,GAAG,UAAU,CAAC;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,GACA,IAAI,CAkDN"}
|