oh-my-claude-sisyphus 1.1.1 → 1.2.1
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/dist/cli/index.js +205 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/features/auto-update.d.ts +115 -0
- package/dist/features/auto-update.d.ts.map +1 -0
- package/dist/features/auto-update.js +326 -0
- package/dist/features/auto-update.js.map +1 -0
- package/dist/features/background-tasks.d.ts +99 -0
- package/dist/features/background-tasks.d.ts.map +1 -0
- package/dist/features/background-tasks.js +265 -0
- package/dist/features/background-tasks.js.map +1 -0
- package/dist/features/continuation-enforcement.d.ts +2 -1
- package/dist/features/continuation-enforcement.d.ts.map +1 -1
- package/dist/features/continuation-enforcement.js +4 -1
- package/dist/features/continuation-enforcement.js.map +1 -1
- package/dist/features/index.d.ts +1 -0
- package/dist/features/index.d.ts.map +1 -1
- package/dist/features/index.js +5 -0
- package/dist/features/index.js.map +1 -1
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -1
- package/dist/index.js.map +1 -1
- package/dist/installer/index.d.ts +63 -0
- package/dist/installer/index.d.ts.map +1 -0
- package/dist/installer/index.js +964 -0
- package/dist/installer/index.js.map +1 -0
- package/package.json +4 -3
- package/scripts/install.sh +95 -3
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Background Task Management
|
|
3
|
+
*
|
|
4
|
+
* Provides utilities for managing background task execution,
|
|
5
|
+
* similar to oh-my-opencode's Background Task Manager.
|
|
6
|
+
*
|
|
7
|
+
* In Claude Code, background execution is controlled via:
|
|
8
|
+
* - Bash tool's `run_in_background` parameter
|
|
9
|
+
* - Task tool's `run_in_background` parameter
|
|
10
|
+
* - TaskOutput tool for retrieving results
|
|
11
|
+
*
|
|
12
|
+
* This module provides:
|
|
13
|
+
* - Decision heuristics for when to use background execution
|
|
14
|
+
* - Task lifecycle management
|
|
15
|
+
* - Concurrency limit enforcement
|
|
16
|
+
* - System prompt guidance for agents
|
|
17
|
+
*/
|
|
18
|
+
/**
|
|
19
|
+
* Default maximum concurrent background tasks
|
|
20
|
+
*/
|
|
21
|
+
export const DEFAULT_MAX_BACKGROUND_TASKS = 5;
|
|
22
|
+
/**
|
|
23
|
+
* Patterns that indicate long-running operations
|
|
24
|
+
* These should typically run in background
|
|
25
|
+
*/
|
|
26
|
+
export const LONG_RUNNING_PATTERNS = [
|
|
27
|
+
// Package managers
|
|
28
|
+
/\b(npm|yarn|pnpm|bun)\s+(install|ci|update|upgrade)\b/i,
|
|
29
|
+
/\b(pip|pip3)\s+install\b/i,
|
|
30
|
+
/\bcargo\s+(build|install|test)\b/i,
|
|
31
|
+
/\bgo\s+(build|install|test)\b/i,
|
|
32
|
+
/\brustup\s+(update|install)\b/i,
|
|
33
|
+
/\bgem\s+install\b/i,
|
|
34
|
+
/\bcomposer\s+install\b/i,
|
|
35
|
+
/\bmaven|mvn\s+(install|package|test)\b/i,
|
|
36
|
+
/\bgradle\s+(build|test)\b/i,
|
|
37
|
+
// Build commands
|
|
38
|
+
/\b(npm|yarn|pnpm|bun)\s+run\s+(build|compile|bundle)\b/i,
|
|
39
|
+
/\bmake\s*(all|build|install)?\s*$/i,
|
|
40
|
+
/\bcmake\s+--build\b/i,
|
|
41
|
+
/\btsc\s+(--build|-b)?\b/i,
|
|
42
|
+
/\bwebpack\b/i,
|
|
43
|
+
/\brollup\b/i,
|
|
44
|
+
/\besbuild\b/i,
|
|
45
|
+
/\bvite\s+build\b/i,
|
|
46
|
+
// Test suites
|
|
47
|
+
/\b(npm|yarn|pnpm|bun)\s+run\s+test\b/i,
|
|
48
|
+
/\b(jest|mocha|vitest|pytest|cargo\s+test)\b/i,
|
|
49
|
+
/\bgo\s+test\b/i,
|
|
50
|
+
// Docker operations
|
|
51
|
+
/\bdocker\s+(build|pull|push)\b/i,
|
|
52
|
+
/\bdocker-compose\s+(up|build)\b/i,
|
|
53
|
+
// Database operations
|
|
54
|
+
/\b(prisma|typeorm|sequelize)\s+(migrate|generate|push)\b/i,
|
|
55
|
+
// Linting large codebases
|
|
56
|
+
/\b(eslint|prettier)\s+[^|]*\.\s*$/i,
|
|
57
|
+
// Git operations on large repos
|
|
58
|
+
/\bgit\s+(clone|fetch|pull)\b/i,
|
|
59
|
+
];
|
|
60
|
+
/**
|
|
61
|
+
* Patterns that should always run blocking (foreground)
|
|
62
|
+
* These are quick operations or need immediate feedback
|
|
63
|
+
*/
|
|
64
|
+
export const BLOCKING_PATTERNS = [
|
|
65
|
+
// Quick status checks
|
|
66
|
+
/\bgit\s+(status|diff|log|branch)\b/i,
|
|
67
|
+
/\bls\b/i,
|
|
68
|
+
/\bpwd\b/i,
|
|
69
|
+
/\bcat\b/i,
|
|
70
|
+
/\becho\b/i,
|
|
71
|
+
/\bhead\b/i,
|
|
72
|
+
/\btail\b/i,
|
|
73
|
+
/\bwc\b/i,
|
|
74
|
+
/\bwhich\b/i,
|
|
75
|
+
/\btype\b/i,
|
|
76
|
+
// File operations
|
|
77
|
+
/\bcp\b/i,
|
|
78
|
+
/\bmv\b/i,
|
|
79
|
+
/\brm\b/i,
|
|
80
|
+
/\bmkdir\b/i,
|
|
81
|
+
/\btouch\b/i,
|
|
82
|
+
// Environment checks
|
|
83
|
+
/\benv\b/i,
|
|
84
|
+
/\bprintenv\b/i,
|
|
85
|
+
/\bnode\s+-[vpe]\b/i,
|
|
86
|
+
/\bnpm\s+-v\b/i,
|
|
87
|
+
/\bpython\s+--version\b/i,
|
|
88
|
+
];
|
|
89
|
+
/**
|
|
90
|
+
* Determine if a command should run in background
|
|
91
|
+
*
|
|
92
|
+
* This is the core heuristic function that decides whether a command
|
|
93
|
+
* should be executed with `run_in_background: true`.
|
|
94
|
+
*
|
|
95
|
+
* @param command - The command to analyze
|
|
96
|
+
* @param currentBackgroundCount - Number of currently running background tasks
|
|
97
|
+
* @param maxBackgroundTasks - Maximum allowed concurrent background tasks
|
|
98
|
+
* @returns Decision object with recommendation and reasoning
|
|
99
|
+
*/
|
|
100
|
+
export function shouldRunInBackground(command, currentBackgroundCount = 0, maxBackgroundTasks = DEFAULT_MAX_BACKGROUND_TASKS) {
|
|
101
|
+
// Check if at capacity
|
|
102
|
+
if (currentBackgroundCount >= maxBackgroundTasks) {
|
|
103
|
+
return {
|
|
104
|
+
runInBackground: false,
|
|
105
|
+
reason: `At background task limit (${currentBackgroundCount}/${maxBackgroundTasks}). Wait for existing tasks or run blocking.`,
|
|
106
|
+
estimatedDuration: 'unknown',
|
|
107
|
+
confidence: 'high'
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
// Check for explicit blocking patterns first
|
|
111
|
+
for (const pattern of BLOCKING_PATTERNS) {
|
|
112
|
+
if (pattern.test(command)) {
|
|
113
|
+
return {
|
|
114
|
+
runInBackground: false,
|
|
115
|
+
reason: 'Quick operation that should complete immediately.',
|
|
116
|
+
estimatedDuration: 'quick',
|
|
117
|
+
confidence: 'high'
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
// Check for long-running patterns
|
|
122
|
+
for (const pattern of LONG_RUNNING_PATTERNS) {
|
|
123
|
+
if (pattern.test(command)) {
|
|
124
|
+
return {
|
|
125
|
+
runInBackground: true,
|
|
126
|
+
reason: 'Long-running operation detected. Run in background to continue other work.',
|
|
127
|
+
estimatedDuration: 'long',
|
|
128
|
+
confidence: 'high'
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
// Heuristic: commands with multiple operations (piped or chained)
|
|
133
|
+
if ((command.match(/\|/g) || []).length > 2 || (command.match(/&&/g) || []).length > 2) {
|
|
134
|
+
return {
|
|
135
|
+
runInBackground: true,
|
|
136
|
+
reason: 'Complex command chain that may take time.',
|
|
137
|
+
estimatedDuration: 'medium',
|
|
138
|
+
confidence: 'medium'
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
// Default: run blocking for unknown commands
|
|
142
|
+
return {
|
|
143
|
+
runInBackground: false,
|
|
144
|
+
reason: 'Unknown command type. Running blocking for immediate feedback.',
|
|
145
|
+
estimatedDuration: 'unknown',
|
|
146
|
+
confidence: 'low'
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Create a BackgroundTaskManager instance
|
|
151
|
+
*/
|
|
152
|
+
export function createBackgroundTaskManager(state, config) {
|
|
153
|
+
const maxBackgroundTasks = config.permissions?.maxBackgroundTasks ?? DEFAULT_MAX_BACKGROUND_TASKS;
|
|
154
|
+
return {
|
|
155
|
+
registerTask(agentName, prompt) {
|
|
156
|
+
const task = {
|
|
157
|
+
id: `task_${Date.now()}_${Math.random().toString(36).slice(2, 11)}`,
|
|
158
|
+
agentName,
|
|
159
|
+
prompt,
|
|
160
|
+
status: 'pending'
|
|
161
|
+
};
|
|
162
|
+
state.backgroundTasks.push(task);
|
|
163
|
+
return task;
|
|
164
|
+
},
|
|
165
|
+
getTasks() {
|
|
166
|
+
return [...state.backgroundTasks];
|
|
167
|
+
},
|
|
168
|
+
getTasksByStatus(status) {
|
|
169
|
+
return state.backgroundTasks.filter(t => t.status === status);
|
|
170
|
+
},
|
|
171
|
+
getRunningCount() {
|
|
172
|
+
return state.backgroundTasks.filter(t => t.status === 'running' || t.status === 'pending').length;
|
|
173
|
+
},
|
|
174
|
+
canStartNewTask() {
|
|
175
|
+
return this.getRunningCount() < maxBackgroundTasks;
|
|
176
|
+
},
|
|
177
|
+
updateTaskStatus(taskId, status, result, error) {
|
|
178
|
+
const task = state.backgroundTasks.find(t => t.id === taskId);
|
|
179
|
+
if (task) {
|
|
180
|
+
task.status = status;
|
|
181
|
+
if (result !== undefined)
|
|
182
|
+
task.result = result;
|
|
183
|
+
if (error !== undefined)
|
|
184
|
+
task.error = error;
|
|
185
|
+
}
|
|
186
|
+
},
|
|
187
|
+
completeTask(taskId, result) {
|
|
188
|
+
this.updateTaskStatus(taskId, 'completed', result);
|
|
189
|
+
},
|
|
190
|
+
failTask(taskId, error) {
|
|
191
|
+
this.updateTaskStatus(taskId, 'error', undefined, error);
|
|
192
|
+
},
|
|
193
|
+
pruneCompletedTasks(_maxAge = 5 * 60 * 1000) {
|
|
194
|
+
// Note: maxAge-based pruning would require tracking task completion timestamps
|
|
195
|
+
// For now, just prune all completed/errored tasks
|
|
196
|
+
const before = state.backgroundTasks.length;
|
|
197
|
+
state.backgroundTasks = state.backgroundTasks.filter(t => t.status !== 'completed' && t.status !== 'error');
|
|
198
|
+
return before - state.backgroundTasks.length;
|
|
199
|
+
},
|
|
200
|
+
getMaxTasks() {
|
|
201
|
+
return maxBackgroundTasks;
|
|
202
|
+
},
|
|
203
|
+
shouldRunInBackground(command) {
|
|
204
|
+
return shouldRunInBackground(command, this.getRunningCount(), maxBackgroundTasks);
|
|
205
|
+
}
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* System prompt guidance for background task execution
|
|
210
|
+
*
|
|
211
|
+
* This text should be appended to the system prompt to guide agents
|
|
212
|
+
* on when and how to use background execution.
|
|
213
|
+
*/
|
|
214
|
+
export function getBackgroundTaskGuidance(maxBackgroundTasks = DEFAULT_MAX_BACKGROUND_TASKS) {
|
|
215
|
+
return `
|
|
216
|
+
## Background Task Execution
|
|
217
|
+
|
|
218
|
+
For long-running operations, use the \`run_in_background\` parameter to avoid blocking.
|
|
219
|
+
|
|
220
|
+
### When to Use Background Execution
|
|
221
|
+
|
|
222
|
+
**Run in Background** (set \`run_in_background: true\`):
|
|
223
|
+
- Package installation: \`npm install\`, \`pip install\`, \`cargo build\`
|
|
224
|
+
- Build processes: \`npm run build\`, \`make\`, \`tsc\`
|
|
225
|
+
- Test suites: \`npm test\`, \`pytest\`, \`cargo test\`
|
|
226
|
+
- Docker operations: \`docker build\`, \`docker pull\`
|
|
227
|
+
- Git operations on large repos: \`git clone\`, \`git fetch\`
|
|
228
|
+
- Database migrations: \`prisma migrate\`, \`typeorm migration:run\`
|
|
229
|
+
|
|
230
|
+
**Run Blocking** (foreground, immediate):
|
|
231
|
+
- Quick status checks: \`git status\`, \`ls\`, \`pwd\`
|
|
232
|
+
- File operations: \`cat\`, \`head\`, \`tail\`
|
|
233
|
+
- Simple commands: \`echo\`, \`which\`, \`env\`
|
|
234
|
+
- Operations needing immediate feedback
|
|
235
|
+
|
|
236
|
+
### How to Use Background Execution
|
|
237
|
+
|
|
238
|
+
1. **Start in background:**
|
|
239
|
+
\`\`\`
|
|
240
|
+
Bash(command: "npm run build", run_in_background: true)
|
|
241
|
+
\`\`\`
|
|
242
|
+
|
|
243
|
+
2. **Continue with other work** while the task runs
|
|
244
|
+
|
|
245
|
+
3. **Check results later:**
|
|
246
|
+
\`\`\`
|
|
247
|
+
TaskOutput(task_id: "<task_id_from_step_1>", block: false)
|
|
248
|
+
\`\`\`
|
|
249
|
+
|
|
250
|
+
### Concurrency Limits
|
|
251
|
+
|
|
252
|
+
- Maximum **${maxBackgroundTasks}** concurrent background tasks
|
|
253
|
+
- If at limit, wait for existing tasks to complete or run the new task blocking
|
|
254
|
+
- Use \`TaskOutput\` to check if background tasks have finished
|
|
255
|
+
|
|
256
|
+
### Decision Checklist
|
|
257
|
+
|
|
258
|
+
Before running a command, ask:
|
|
259
|
+
1. Will this take more than 5 seconds? → Consider background
|
|
260
|
+
2. Do I need the result immediately? → Run blocking
|
|
261
|
+
3. Can I do other useful work while waiting? → Use background
|
|
262
|
+
4. Am I at the background task limit? → Run blocking or wait
|
|
263
|
+
`;
|
|
264
|
+
}
|
|
265
|
+
//# sourceMappingURL=background-tasks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"background-tasks.js","sourceRoot":"","sources":["../../src/features/background-tasks.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* - Monitors todo list for incomplete items
|
|
6
6
|
* - Adds reminders to continue when tasks remain
|
|
7
7
|
* - Prevents premature stopping
|
|
8
|
+
* - Provides background task execution guidance
|
|
8
9
|
*/
|
|
9
10
|
import type { HookDefinition } from '../shared/types.js';
|
|
10
11
|
/**
|
|
@@ -18,7 +19,7 @@ export declare function createContinuationHook(): HookDefinition;
|
|
|
18
19
|
/**
|
|
19
20
|
* System prompt addition for continuation enforcement
|
|
20
21
|
*/
|
|
21
|
-
export declare const continuationSystemPromptAddition
|
|
22
|
+
export declare const continuationSystemPromptAddition: string;
|
|
22
23
|
/**
|
|
23
24
|
* Check prompt for signals that all work is done
|
|
24
25
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"continuation-enforcement.d.ts","sourceRoot":"","sources":["../../src/features/continuation-enforcement.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"continuation-enforcement.d.ts","sourceRoot":"","sources":["../../src/features/continuation-enforcement.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,cAAc,EAA2B,MAAM,oBAAoB,CAAC;AAqBlF;;;;;;GAMG;AACH,wBAAgB,sBAAsB,IAAI,cAAc,CA2BvD;AAED;;GAEG;AACH,eAAO,MAAM,gCAAgC,QAgC5C,CAAC;AAEF;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG;IACzD,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACtC,MAAM,EAAE,MAAM,CAAC;CAChB,CAsCA;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAUtE"}
|
|
@@ -5,7 +5,9 @@
|
|
|
5
5
|
* - Monitors todo list for incomplete items
|
|
6
6
|
* - Adds reminders to continue when tasks remain
|
|
7
7
|
* - Prevents premature stopping
|
|
8
|
+
* - Provides background task execution guidance
|
|
8
9
|
*/
|
|
10
|
+
import { getBackgroundTaskGuidance, DEFAULT_MAX_BACKGROUND_TASKS } from './background-tasks.js';
|
|
9
11
|
/**
|
|
10
12
|
* Messages to remind agents to continue
|
|
11
13
|
*/
|
|
@@ -32,7 +34,7 @@ function getRandomReminder() {
|
|
|
32
34
|
export function createContinuationHook() {
|
|
33
35
|
return {
|
|
34
36
|
event: 'Stop',
|
|
35
|
-
handler: async (
|
|
37
|
+
handler: async (_context) => {
|
|
36
38
|
// In a real implementation, this would check the actual todo state
|
|
37
39
|
// For now, we'll provide the structure for integration
|
|
38
40
|
// The hook would examine:
|
|
@@ -87,6 +89,7 @@ CRITICAL RULES - You MUST follow these:
|
|
|
87
89
|
- Ask the user for clarification
|
|
88
90
|
- Create a verification task
|
|
89
91
|
- Continue investigating rather than stopping prematurely
|
|
92
|
+
${getBackgroundTaskGuidance(DEFAULT_MAX_BACKGROUND_TASKS)}
|
|
90
93
|
`;
|
|
91
94
|
/**
|
|
92
95
|
* Check prompt for signals that all work is done
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"continuation-enforcement.js","sourceRoot":"","sources":["../../src/features/continuation-enforcement.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"continuation-enforcement.js","sourceRoot":"","sources":["../../src/features/continuation-enforcement.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,yBAAyB,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAC;AAEhG;;GAEG;AACH,MAAM,sBAAsB,GAAG;IAC7B,4FAA4F;IAC5F,wFAAwF;IACxF,6DAA6D;IAC7D,qDAAqD;IACrD,uDAAuD;CACxD,CAAC;AAEF;;GAEG;AACH,SAAS,iBAAiB;IACxB,OAAO,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC;AAC3F,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB;IACpC,OAAO;QACL,KAAK,EAAE,MAAM;QACb,OAAO,EAAE,KAAK,EAAE,QAAqB,EAAuB,EAAE;YAC5D,mEAAmE;YACnE,uDAAuD;YAEvD,0BAA0B;YAC1B,iCAAiC;YACjC,+CAA+C;YAC/C,kDAAkD;YAElD,uEAAuE;YACvE,MAAM,kBAAkB,GAAG,KAAK,CAAC,CAAC,kCAAkC;YAEpE,IAAI,kBAAkB,EAAE,CAAC;gBACvB,OAAO;oBACL,QAAQ,EAAE,KAAK;oBACf,OAAO,EAAE,iBAAiB,EAAE;iBAC7B,CAAC;YACJ,CAAC;YAED,OAAO;gBACL,QAAQ,EAAE,IAAI;aACf,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+B9C,yBAAyB,CAAC,4BAA4B,CAAC;CACxD,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,QAAgB;IAKtD,MAAM,kBAAkB,GAAG;QACzB,8EAA8E;QAC9E,gEAAgE;QAChE,wDAAwD;QACxD,2DAA2D;KAC5D,CAAC;IAEF,MAAM,mBAAmB,GAAG;QAC1B,qCAAqC;QACrC,mCAAmC;QACnC,oBAAoB;KACrB,CAAC;IAEF,MAAM,aAAa,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IACrE,MAAM,cAAc,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEvE,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO;YACL,OAAO,EAAE,KAAK;YACd,UAAU,EAAE,MAAM;YAClB,MAAM,EAAE,8BAA8B;SACvC,CAAC;IACJ,CAAC;IAED,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO;YACL,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,KAAK;YACjB,MAAM,EAAE,8CAA8C;SACvD,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE,iCAAiC;KAC1C,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,0BAA0B,CAAC,WAAmB;IAC5D,OAAO;;;yBAGgB,WAAW;;;;;6CAKS,CAAC;AAC9C,CAAC"}
|
package/dist/features/index.d.ts
CHANGED
|
@@ -3,4 +3,5 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export { createMagicKeywordProcessor, detectMagicKeywords, builtInMagicKeywords } from './magic-keywords.js';
|
|
5
5
|
export { createContinuationHook, continuationSystemPromptAddition, detectCompletionSignals, generateVerificationPrompt } from './continuation-enforcement.js';
|
|
6
|
+
export { type VersionMetadata, type ReleaseInfo, type UpdateCheckResult, type UpdateResult, REPO_OWNER, REPO_NAME, GITHUB_API_URL, GITHUB_RAW_URL, CLAUDE_CONFIG_DIR, VERSION_FILE, getInstalledVersion, saveVersionMetadata, updateLastCheckTime, fetchLatestRelease, compareVersions, checkForUpdates, performUpdate, formatUpdateNotification, shouldCheckForUpdates, backgroundUpdateCheck, interactiveUpdate } from './auto-update.js';
|
|
6
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/features/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,2BAA2B,EAC3B,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,sBAAsB,EACtB,gCAAgC,EAChC,uBAAuB,EACvB,0BAA0B,EAC3B,MAAM,+BAA+B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/features/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,2BAA2B,EAC3B,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,sBAAsB,EACtB,gCAAgC,EAChC,uBAAuB,EACvB,0BAA0B,EAC3B,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,YAAY,EAEjB,UAAU,EACV,SAAS,EACT,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,YAAY,EAEZ,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,aAAa,EACb,wBAAwB,EACxB,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,kBAAkB,CAAC"}
|
package/dist/features/index.js
CHANGED
|
@@ -3,4 +3,9 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export { createMagicKeywordProcessor, detectMagicKeywords, builtInMagicKeywords } from './magic-keywords.js';
|
|
5
5
|
export { createContinuationHook, continuationSystemPromptAddition, detectCompletionSignals, generateVerificationPrompt } from './continuation-enforcement.js';
|
|
6
|
+
export {
|
|
7
|
+
// Constants
|
|
8
|
+
REPO_OWNER, REPO_NAME, GITHUB_API_URL, GITHUB_RAW_URL, CLAUDE_CONFIG_DIR, VERSION_FILE,
|
|
9
|
+
// Functions
|
|
10
|
+
getInstalledVersion, saveVersionMetadata, updateLastCheckTime, fetchLatestRelease, compareVersions, checkForUpdates, performUpdate, formatUpdateNotification, shouldCheckForUpdates, backgroundUpdateCheck, interactiveUpdate } from './auto-update.js';
|
|
6
11
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/features/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,2BAA2B,EAC3B,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,sBAAsB,EACtB,gCAAgC,EAChC,uBAAuB,EACvB,0BAA0B,EAC3B,MAAM,+BAA+B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/features/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,2BAA2B,EAC3B,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,sBAAsB,EACtB,gCAAgC,EAChC,uBAAuB,EACvB,0BAA0B,EAC3B,MAAM,+BAA+B,CAAC;AAEvC,OAAO;AAML,YAAY;AACZ,UAAU,EACV,SAAS,EACT,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,YAAY;AACZ,YAAY;AACZ,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,aAAa,EACb,wBAAwB,EACxB,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,kBAAkB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -14,13 +14,17 @@
|
|
|
14
14
|
*/
|
|
15
15
|
import { loadConfig } from './config/loader.js';
|
|
16
16
|
import { getAgentDefinitions, sisyphusSystemPrompt } from './agents/definitions.js';
|
|
17
|
+
import { type BackgroundTaskManager, type TaskExecutionDecision } from './features/background-tasks.js';
|
|
17
18
|
import type { PluginConfig, SessionState } from './shared/types.js';
|
|
18
19
|
export { loadConfig, getAgentDefinitions, sisyphusSystemPrompt };
|
|
19
20
|
export { getDefaultMcpServers, toSdkMcpFormat } from './mcp/servers.js';
|
|
20
21
|
export { lspTools, astTools, allCustomTools } from './tools/index.js';
|
|
21
22
|
export { createMagicKeywordProcessor, detectMagicKeywords } from './features/magic-keywords.js';
|
|
23
|
+
export { createBackgroundTaskManager, shouldRunInBackground, getBackgroundTaskGuidance, DEFAULT_MAX_BACKGROUND_TASKS, LONG_RUNNING_PATTERNS, BLOCKING_PATTERNS, type BackgroundTaskManager, type TaskExecutionDecision } from './features/background-tasks.js';
|
|
24
|
+
export { type VersionMetadata, type ReleaseInfo, type UpdateCheckResult, type UpdateResult, REPO_OWNER, REPO_NAME, GITHUB_API_URL, CLAUDE_CONFIG_DIR, VERSION_FILE, getInstalledVersion, saveVersionMetadata, checkForUpdates, performUpdate, formatUpdateNotification, shouldCheckForUpdates, backgroundUpdateCheck, compareVersions } from './features/auto-update.js';
|
|
22
25
|
export * from './shared/types.js';
|
|
23
26
|
export { expandCommand, expandCommandPrompt, getCommand, getAllCommands, listCommands, commandExists, expandCommands, getCommandsDir, type CommandInfo, type ExpandedCommand } from './commands/index.js';
|
|
27
|
+
export { install, isInstalled, getInstallInfo, isClaudeInstalled, CLAUDE_CONFIG_DIR as INSTALLER_CLAUDE_CONFIG_DIR, AGENTS_DIR, COMMANDS_DIR, VERSION as INSTALLER_VERSION, type InstallResult, type InstallOptions } from './installer/index.js';
|
|
24
28
|
/**
|
|
25
29
|
* Options for creating a Sisyphus session
|
|
26
30
|
*/
|
|
@@ -68,6 +72,10 @@ export interface SisyphusSession {
|
|
|
68
72
|
processPrompt: (prompt: string) => string;
|
|
69
73
|
/** Get detected magic keywords in a prompt */
|
|
70
74
|
detectKeywords: (prompt: string) => string[];
|
|
75
|
+
/** Background task manager for controlling async execution */
|
|
76
|
+
backgroundTasks: BackgroundTaskManager;
|
|
77
|
+
/** Check if a command should run in background (convenience method) */
|
|
78
|
+
shouldRunInBackground: (command: string) => TaskExecutionDecision;
|
|
71
79
|
}
|
|
72
80
|
/**
|
|
73
81
|
* Create a Sisyphus orchestration session
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,UAAU,EAA0C,MAAM,oBAAoB,CAAC;AACxF,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAIpF,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEpE,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,2BAA2B,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAChG,cAAc,mBAAmB,CAAC;AAGlC,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,UAAU,EACV,cAAc,EACd,YAAY,EACZ,aAAa,EACb,cAAc,EACd,cAAc,EACd,KAAK,WAAW,EAChB,KAAK,eAAe,EACrB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -17,13 +17,22 @@ import { getAgentDefinitions, sisyphusSystemPrompt } from './agents/definitions.
|
|
|
17
17
|
import { getDefaultMcpServers, toSdkMcpFormat } from './mcp/servers.js';
|
|
18
18
|
import { createMagicKeywordProcessor, detectMagicKeywords } from './features/magic-keywords.js';
|
|
19
19
|
import { continuationSystemPromptAddition } from './features/continuation-enforcement.js';
|
|
20
|
+
import { createBackgroundTaskManager, shouldRunInBackground as shouldRunInBackgroundFn } from './features/background-tasks.js';
|
|
20
21
|
export { loadConfig, getAgentDefinitions, sisyphusSystemPrompt };
|
|
21
22
|
export { getDefaultMcpServers, toSdkMcpFormat } from './mcp/servers.js';
|
|
22
23
|
export { lspTools, astTools, allCustomTools } from './tools/index.js';
|
|
23
24
|
export { createMagicKeywordProcessor, detectMagicKeywords } from './features/magic-keywords.js';
|
|
25
|
+
export { createBackgroundTaskManager, shouldRunInBackground, getBackgroundTaskGuidance, DEFAULT_MAX_BACKGROUND_TASKS, LONG_RUNNING_PATTERNS, BLOCKING_PATTERNS } from './features/background-tasks.js';
|
|
26
|
+
export {
|
|
27
|
+
// Auto-update constants
|
|
28
|
+
REPO_OWNER, REPO_NAME, GITHUB_API_URL, CLAUDE_CONFIG_DIR, VERSION_FILE,
|
|
29
|
+
// Auto-update functions
|
|
30
|
+
getInstalledVersion, saveVersionMetadata, checkForUpdates, performUpdate, formatUpdateNotification, shouldCheckForUpdates, backgroundUpdateCheck, compareVersions } from './features/auto-update.js';
|
|
24
31
|
export * from './shared/types.js';
|
|
25
32
|
// Command expansion utilities for SDK integration
|
|
26
33
|
export { expandCommand, expandCommandPrompt, getCommand, getAllCommands, listCommands, commandExists, expandCommands, getCommandsDir } from './commands/index.js';
|
|
34
|
+
// Installer exports
|
|
35
|
+
export { install, isInstalled, getInstallInfo, isClaudeInstalled, CLAUDE_CONFIG_DIR as INSTALLER_CLAUDE_CONFIG_DIR, AGENTS_DIR, COMMANDS_DIR, VERSION as INSTALLER_VERSION } from './installer/index.js';
|
|
27
36
|
/**
|
|
28
37
|
* Create a Sisyphus orchestration session
|
|
29
38
|
*
|
|
@@ -109,6 +118,8 @@ export function createSisyphusSession(options) {
|
|
|
109
118
|
backgroundTasks: [],
|
|
110
119
|
contextFiles: findContextFiles(options?.workingDirectory)
|
|
111
120
|
};
|
|
121
|
+
// Create background task manager
|
|
122
|
+
const backgroundTaskManager = createBackgroundTaskManager(state, config);
|
|
112
123
|
return {
|
|
113
124
|
queryOptions: {
|
|
114
125
|
options: {
|
|
@@ -122,7 +133,9 @@ export function createSisyphusSession(options) {
|
|
|
122
133
|
state,
|
|
123
134
|
config,
|
|
124
135
|
processPrompt,
|
|
125
|
-
detectKeywords: (prompt) => detectMagicKeywords(prompt, config.magicKeywords)
|
|
136
|
+
detectKeywords: (prompt) => detectMagicKeywords(prompt, config.magicKeywords),
|
|
137
|
+
backgroundTasks: backgroundTaskManager,
|
|
138
|
+
shouldRunInBackground: (command) => shouldRunInBackgroundFn(command, backgroundTaskManager.getRunningCount(), backgroundTaskManager.getMaxTasks())
|
|
126
139
|
};
|
|
127
140
|
}
|
|
128
141
|
/**
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AACxF,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACpF,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,2BAA2B,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAChG,OAAO,EAAE,gCAAgC,EAAE,MAAM,wCAAwC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Installer Module
|
|
3
|
+
*
|
|
4
|
+
* Handles installation of Sisyphus agents, commands, and configuration
|
|
5
|
+
* into the Claude Code config directory (~/.claude/).
|
|
6
|
+
*
|
|
7
|
+
* This replicates the functionality of scripts/install.sh but in TypeScript,
|
|
8
|
+
* allowing npm postinstall to work properly.
|
|
9
|
+
*/
|
|
10
|
+
/** Claude Code configuration directory */
|
|
11
|
+
export declare const CLAUDE_CONFIG_DIR: string;
|
|
12
|
+
export declare const AGENTS_DIR: string;
|
|
13
|
+
export declare const COMMANDS_DIR: string;
|
|
14
|
+
export declare const VERSION_FILE: string;
|
|
15
|
+
/** Current version */
|
|
16
|
+
export declare const VERSION = "1.2.1";
|
|
17
|
+
/** Installation result */
|
|
18
|
+
export interface InstallResult {
|
|
19
|
+
success: boolean;
|
|
20
|
+
message: string;
|
|
21
|
+
installedAgents: string[];
|
|
22
|
+
installedCommands: string[];
|
|
23
|
+
errors: string[];
|
|
24
|
+
}
|
|
25
|
+
/** Installation options */
|
|
26
|
+
export interface InstallOptions {
|
|
27
|
+
force?: boolean;
|
|
28
|
+
verbose?: boolean;
|
|
29
|
+
skipClaudeCheck?: boolean;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Check if Claude Code is installed
|
|
33
|
+
*/
|
|
34
|
+
export declare function isClaudeInstalled(): boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Agent definitions - matches the bash script exactly
|
|
37
|
+
*/
|
|
38
|
+
export declare const AGENT_DEFINITIONS: Record<string, string>;
|
|
39
|
+
/**
|
|
40
|
+
* Command definitions - matches the bash script exactly
|
|
41
|
+
*/
|
|
42
|
+
export declare const COMMAND_DEFINITIONS: Record<string, string>;
|
|
43
|
+
/**
|
|
44
|
+
* CLAUDE.md content for Sisyphus system
|
|
45
|
+
*/
|
|
46
|
+
export declare const CLAUDE_MD_CONTENT = "# Sisyphus Multi-Agent System\n\nYou are enhanced with the Sisyphus multi-agent orchestration system.\n\n## Available Subagents\n\nUse the Task tool to delegate to specialized agents:\n\n| Agent | Model | Purpose | When to Use |\n|-------|-------|---------|-------------|\n| `oracle` | Opus | Architecture & debugging | Complex problems, root cause analysis |\n| `librarian` | Sonnet | Documentation & research | Finding docs, understanding code |\n| `explore` | Haiku | Fast search | Quick file/pattern searches |\n| `frontend-engineer` | Sonnet | UI/UX | Component design, styling |\n| `document-writer` | Haiku | Documentation | README, API docs, comments |\n| `multimodal-looker` | Sonnet | Visual analysis | Screenshots, diagrams |\n| `momus` | Opus | Plan review | Critical evaluation of plans |\n| `metis` | Opus | Pre-planning | Hidden requirements, risk analysis |\n| `orchestrator-sisyphus` | Sonnet | Todo coordination | Complex multi-step task management |\n| `sisyphus-junior` | Sonnet | Focused execution | Direct task implementation |\n| `prometheus` | Opus | Strategic planning | Creating comprehensive work plans |\n\n## Slash Commands\n\n| Command | Description |\n|---------|-------------|\n| `/sisyphus <task>` | Activate Sisyphus multi-agent orchestration |\n| `/sisyphus-default` | Set Sisyphus as your default mode |\n| `/ultrawork <task>` | Maximum performance mode with parallel agents |\n| `/deepsearch <query>` | Thorough codebase search |\n| `/analyze <target>` | Deep analysis and investigation |\n| `/plan <description>` | Start planning session with Prometheus |\n| `/review [plan-path]` | Review a plan with Momus |\n| `/prometheus <task>` | Strategic planning with interview workflow |\n| `/orchestrator <task>` | Complex multi-step task coordination |\n| `/ralph-loop <task>` | Self-referential loop until task completion |\n| `/cancel-ralph` | Cancel active Ralph Loop |\n| `/update` | Check for and install updates |\n\n## Planning Workflow\n\n1. Use `/plan` to start a planning session\n2. Prometheus will interview you about requirements\n3. Say \"Create the plan\" when ready\n4. Use `/review` to have Momus evaluate the plan\n5. Execute the plan with `/sisyphus`\n\n## Orchestration Principles\n\n1. **Delegate Wisely**: Use subagents for specialized tasks\n2. **Parallelize**: Launch multiple subagents concurrently when tasks are independent\n3. **Persist**: Continue until ALL tasks are complete\n4. **Verify**: Check your todo list before declaring completion\n5. **Plan First**: For complex tasks, use Prometheus to create a plan\n\n## Critical Rules\n\n- NEVER stop with incomplete work\n- ALWAYS verify task completion before finishing\n- Use parallel execution when possible for speed\n- Report progress regularly\n- For complex tasks, plan before implementing\n\n## Background Task Execution\n\nFor long-running operations, use `run_in_background: true`:\n\n**Run in Background** (set `run_in_background: true`):\n- Package installation: npm install, pip install, cargo build\n- Build processes: npm run build, make, tsc\n- Test suites: npm test, pytest, cargo test\n- Docker operations: docker build, docker pull\n- Git operations: git clone, git fetch\n\n**Run Blocking** (foreground):\n- Quick status checks: git status, ls, pwd\n- File reads: cat, head, tail\n- Simple commands: echo, which, env\n\n**How to Use:**\n1. Bash: `run_in_background: true`\n2. Task: `run_in_background: true`\n3. Check results: `TaskOutput(task_id: \"...\")`\n\nMaximum 5 concurrent background tasks.\n";
|
|
47
|
+
/**
|
|
48
|
+
* Install Sisyphus agents and commands
|
|
49
|
+
*/
|
|
50
|
+
export declare function install(options?: InstallOptions): InstallResult;
|
|
51
|
+
/**
|
|
52
|
+
* Check if Sisyphus is already installed
|
|
53
|
+
*/
|
|
54
|
+
export declare function isInstalled(): boolean;
|
|
55
|
+
/**
|
|
56
|
+
* Get installation info
|
|
57
|
+
*/
|
|
58
|
+
export declare function getInstallInfo(): {
|
|
59
|
+
version: string;
|
|
60
|
+
installedAt: string;
|
|
61
|
+
method: string;
|
|
62
|
+
} | null;
|
|
63
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/installer/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAOH,0CAA0C;AAC1C,eAAO,MAAM,iBAAiB,QAA6B,CAAC;AAC5D,eAAO,MAAM,UAAU,QAAoC,CAAC;AAC5D,eAAO,MAAM,YAAY,QAAsC,CAAC;AAChE,eAAO,MAAM,YAAY,QAAoD,CAAC;AAE9E,sBAAsB;AACtB,eAAO,MAAM,OAAO,UAAU,CAAC;AAE/B,0BAA0B;AAC1B,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,2BAA2B;AAC3B,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAO3C;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAyWpD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAsXtD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,k9GAqF7B,CAAC;AAEF;;GAEG;AACH,wBAAgB,OAAO,CAAC,OAAO,GAAE,cAAmB,GAAG,aAAa,CAgGnE;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,OAAO,CAErC;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAehG"}
|