clitrigger 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/.env.example +9 -0
- package/LICENSE +21 -0
- package/README.md +186 -0
- package/bin/clitrigger.js +106 -0
- package/dist/client/assets/index-BkOCv65b.css +1 -0
- package/dist/client/assets/index-Fbf16Lh1.js +129 -0
- package/dist/client/index.html +24 -0
- package/dist/server/db/connection.d.ts +4 -0
- package/dist/server/db/connection.d.ts.map +1 -0
- package/dist/server/db/connection.js +24 -0
- package/dist/server/db/connection.js.map +1 -0
- package/dist/server/db/queries.d.ts +265 -0
- package/dist/server/db/queries.d.ts.map +1 -0
- package/dist/server/db/queries.js +836 -0
- package/dist/server/db/queries.js.map +1 -0
- package/dist/server/db/schema.d.ts +3 -0
- package/dist/server/db/schema.d.ts.map +1 -0
- package/dist/server/db/schema.js +325 -0
- package/dist/server/db/schema.js.map +1 -0
- package/dist/server/index.d.ts +5 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +207 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/middleware/auth.d.ts +5 -0
- package/dist/server/middleware/auth.d.ts.map +1 -0
- package/dist/server/middleware/auth.js +45 -0
- package/dist/server/middleware/auth.js.map +1 -0
- package/dist/server/plugins/github/index.d.ts +3 -0
- package/dist/server/plugins/github/index.d.ts.map +1 -0
- package/dist/server/plugins/github/index.js +18 -0
- package/dist/server/plugins/github/index.js.map +1 -0
- package/dist/server/plugins/github/router.d.ts +4 -0
- package/dist/server/plugins/github/router.d.ts.map +1 -0
- package/dist/server/plugins/github/router.js +250 -0
- package/dist/server/plugins/github/router.js.map +1 -0
- package/dist/server/plugins/gstack/index.d.ts +3 -0
- package/dist/server/plugins/gstack/index.d.ts.map +1 -0
- package/dist/server/plugins/gstack/index.js +36 -0
- package/dist/server/plugins/gstack/index.js.map +1 -0
- package/dist/server/plugins/jira/index.d.ts +3 -0
- package/dist/server/plugins/jira/index.d.ts.map +1 -0
- package/dist/server/plugins/jira/index.js +19 -0
- package/dist/server/plugins/jira/index.js.map +1 -0
- package/dist/server/plugins/jira/router.d.ts +4 -0
- package/dist/server/plugins/jira/router.d.ts.map +1 -0
- package/dist/server/plugins/jira/router.js +332 -0
- package/dist/server/plugins/jira/router.js.map +1 -0
- package/dist/server/plugins/notion/index.d.ts +3 -0
- package/dist/server/plugins/notion/index.d.ts.map +1 -0
- package/dist/server/plugins/notion/index.js +17 -0
- package/dist/server/plugins/notion/index.js.map +1 -0
- package/dist/server/plugins/notion/router.d.ts +4 -0
- package/dist/server/plugins/notion/router.d.ts.map +1 -0
- package/dist/server/plugins/notion/router.js +313 -0
- package/dist/server/plugins/notion/router.js.map +1 -0
- package/dist/server/plugins/registry.d.ts +8 -0
- package/dist/server/plugins/registry.d.ts.map +1 -0
- package/dist/server/plugins/registry.js +31 -0
- package/dist/server/plugins/registry.js.map +1 -0
- package/dist/server/plugins/types.d.ts +32 -0
- package/dist/server/plugins/types.d.ts.map +1 -0
- package/dist/server/plugins/types.js +2 -0
- package/dist/server/plugins/types.js.map +1 -0
- package/dist/server/resources/gstack-skills/LICENSE +21 -0
- package/dist/server/resources/gstack-skills/benchmark/SKILL.md +528 -0
- package/dist/server/resources/gstack-skills/careful/SKILL.md +59 -0
- package/dist/server/resources/gstack-skills/cso/SKILL.md +898 -0
- package/dist/server/resources/gstack-skills/investigate/SKILL.md +474 -0
- package/dist/server/resources/gstack-skills/qa/SKILL.md +1055 -0
- package/dist/server/resources/gstack-skills/qa-only/SKILL.md +672 -0
- package/dist/server/resources/gstack-skills/review/SKILL.md +1044 -0
- package/dist/server/resources/gstack-skills/skills-manifest.d.ts +9 -0
- package/dist/server/resources/gstack-skills/skills-manifest.d.ts.map +1 -0
- package/dist/server/resources/gstack-skills/skills-manifest.js +52 -0
- package/dist/server/resources/gstack-skills/skills-manifest.js.map +1 -0
- package/dist/server/resources/gstack-skills/skills-manifest.ts +59 -0
- package/dist/server/routes/auth.d.ts +3 -0
- package/dist/server/routes/auth.d.ts.map +1 -0
- package/dist/server/routes/auth.js +70 -0
- package/dist/server/routes/auth.js.map +1 -0
- package/dist/server/routes/debug-logs.d.ts +3 -0
- package/dist/server/routes/debug-logs.d.ts.map +1 -0
- package/dist/server/routes/debug-logs.js +43 -0
- package/dist/server/routes/debug-logs.js.map +1 -0
- package/dist/server/routes/discussions.d.ts +3 -0
- package/dist/server/routes/discussions.d.ts.map +1 -0
- package/dist/server/routes/discussions.js +544 -0
- package/dist/server/routes/discussions.js.map +1 -0
- package/dist/server/routes/execution.d.ts +3 -0
- package/dist/server/routes/execution.d.ts.map +1 -0
- package/dist/server/routes/execution.js +339 -0
- package/dist/server/routes/execution.js.map +1 -0
- package/dist/server/routes/github.d.ts +3 -0
- package/dist/server/routes/github.d.ts.map +1 -0
- package/dist/server/routes/github.js +251 -0
- package/dist/server/routes/github.js.map +1 -0
- package/dist/server/routes/images.d.ts +17 -0
- package/dist/server/routes/images.d.ts.map +1 -0
- package/dist/server/routes/images.js +152 -0
- package/dist/server/routes/images.js.map +1 -0
- package/dist/server/routes/jira.d.ts +3 -0
- package/dist/server/routes/jira.d.ts.map +1 -0
- package/dist/server/routes/jira.js +333 -0
- package/dist/server/routes/jira.js.map +1 -0
- package/dist/server/routes/logs.d.ts +3 -0
- package/dist/server/routes/logs.d.ts.map +1 -0
- package/dist/server/routes/logs.js +156 -0
- package/dist/server/routes/logs.js.map +1 -0
- package/dist/server/routes/models.d.ts +3 -0
- package/dist/server/routes/models.d.ts.map +1 -0
- package/dist/server/routes/models.js +65 -0
- package/dist/server/routes/models.js.map +1 -0
- package/dist/server/routes/notion.d.ts +3 -0
- package/dist/server/routes/notion.d.ts.map +1 -0
- package/dist/server/routes/notion.js +312 -0
- package/dist/server/routes/notion.js.map +1 -0
- package/dist/server/routes/pipelines.d.ts +3 -0
- package/dist/server/routes/pipelines.d.ts.map +1 -0
- package/dist/server/routes/pipelines.js +315 -0
- package/dist/server/routes/pipelines.js.map +1 -0
- package/dist/server/routes/plugins.d.ts +3 -0
- package/dist/server/routes/plugins.d.ts.map +1 -0
- package/dist/server/routes/plugins.js +71 -0
- package/dist/server/routes/plugins.js.map +1 -0
- package/dist/server/routes/projects.d.ts +3 -0
- package/dist/server/routes/projects.d.ts.map +1 -0
- package/dist/server/routes/projects.js +557 -0
- package/dist/server/routes/projects.js.map +1 -0
- package/dist/server/routes/schedules.d.ts +3 -0
- package/dist/server/routes/schedules.d.ts.map +1 -0
- package/dist/server/routes/schedules.js +247 -0
- package/dist/server/routes/schedules.js.map +1 -0
- package/dist/server/routes/todos.d.ts +3 -0
- package/dist/server/routes/todos.d.ts.map +1 -0
- package/dist/server/routes/todos.js +103 -0
- package/dist/server/routes/todos.js.map +1 -0
- package/dist/server/routes/tunnel.d.ts +3 -0
- package/dist/server/routes/tunnel.d.ts.map +1 -0
- package/dist/server/routes/tunnel.js +44 -0
- package/dist/server/routes/tunnel.js.map +1 -0
- package/dist/server/services/claude-manager.d.ts +42 -0
- package/dist/server/services/claude-manager.d.ts.map +1 -0
- package/dist/server/services/claude-manager.js +275 -0
- package/dist/server/services/claude-manager.js.map +1 -0
- package/dist/server/services/cli-adapters.d.ts +35 -0
- package/dist/server/services/cli-adapters.d.ts.map +1 -0
- package/dist/server/services/cli-adapters.js +139 -0
- package/dist/server/services/cli-adapters.js.map +1 -0
- package/dist/server/services/debug-logger.d.ts +35 -0
- package/dist/server/services/debug-logger.d.ts.map +1 -0
- package/dist/server/services/debug-logger.js +168 -0
- package/dist/server/services/debug-logger.js.map +1 -0
- package/dist/server/services/discussion-orchestrator.d.ts +47 -0
- package/dist/server/services/discussion-orchestrator.d.ts.map +1 -0
- package/dist/server/services/discussion-orchestrator.js +599 -0
- package/dist/server/services/discussion-orchestrator.js.map +1 -0
- package/dist/server/services/log-streamer.d.ts +45 -0
- package/dist/server/services/log-streamer.d.ts.map +1 -0
- package/dist/server/services/log-streamer.js +348 -0
- package/dist/server/services/log-streamer.js.map +1 -0
- package/dist/server/services/orchestrator.d.ts +69 -0
- package/dist/server/services/orchestrator.d.ts.map +1 -0
- package/dist/server/services/orchestrator.js +642 -0
- package/dist/server/services/orchestrator.js.map +1 -0
- package/dist/server/services/pipeline-orchestrator.d.ts +43 -0
- package/dist/server/services/pipeline-orchestrator.d.ts.map +1 -0
- package/dist/server/services/pipeline-orchestrator.js +503 -0
- package/dist/server/services/pipeline-orchestrator.js.map +1 -0
- package/dist/server/services/prompt-guard.d.ts +19 -0
- package/dist/server/services/prompt-guard.d.ts.map +1 -0
- package/dist/server/services/prompt-guard.js +43 -0
- package/dist/server/services/prompt-guard.js.map +1 -0
- package/dist/server/services/scheduler.d.ts +43 -0
- package/dist/server/services/scheduler.d.ts.map +1 -0
- package/dist/server/services/scheduler.js +199 -0
- package/dist/server/services/scheduler.js.map +1 -0
- package/dist/server/services/skill-injector.d.ts +17 -0
- package/dist/server/services/skill-injector.d.ts.map +1 -0
- package/dist/server/services/skill-injector.js +60 -0
- package/dist/server/services/skill-injector.js.map +1 -0
- package/dist/server/services/tunnel-manager.d.ts +42 -0
- package/dist/server/services/tunnel-manager.d.ts.map +1 -0
- package/dist/server/services/tunnel-manager.js +265 -0
- package/dist/server/services/tunnel-manager.js.map +1 -0
- package/dist/server/services/worktree-manager.d.ts +117 -0
- package/dist/server/services/worktree-manager.d.ts.map +1 -0
- package/dist/server/services/worktree-manager.js +400 -0
- package/dist/server/services/worktree-manager.js.map +1 -0
- package/dist/server/websocket/broadcaster.d.ts +12 -0
- package/dist/server/websocket/broadcaster.d.ts.map +1 -0
- package/dist/server/websocket/broadcaster.js +23 -0
- package/dist/server/websocket/broadcaster.js.map +1 -0
- package/dist/server/websocket/events.d.ts +94 -0
- package/dist/server/websocket/events.d.ts.map +1 -0
- package/dist/server/websocket/events.js +2 -0
- package/dist/server/websocket/events.js.map +1 -0
- package/dist/server/websocket/index.d.ts +3 -0
- package/dist/server/websocket/index.d.ts.map +1 -0
- package/dist/server/websocket/index.js +82 -0
- package/dist/server/websocket/index.js.map +1 -0
- package/package.json +68 -0
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import { PassThrough } from 'stream';
|
|
4
|
+
const DEBUG_DIR = '.debug-logs';
|
|
5
|
+
class DebugLogger {
|
|
6
|
+
getDebugDir(projectPath) {
|
|
7
|
+
return path.join(projectPath, DEBUG_DIR);
|
|
8
|
+
}
|
|
9
|
+
ensureDir(dirPath) {
|
|
10
|
+
if (!fs.existsSync(dirPath)) {
|
|
11
|
+
fs.mkdirSync(dirPath, { recursive: true });
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
startSession(opts) {
|
|
15
|
+
const debugDir = this.getDebugDir(opts.projectPath);
|
|
16
|
+
this.ensureDir(debugDir);
|
|
17
|
+
const ts = new Date().toISOString().replace(/[:.]/g, '-');
|
|
18
|
+
const filename = `${opts.todoId}_${ts}.log`;
|
|
19
|
+
const filePath = path.join(debugDir, filename);
|
|
20
|
+
const startTime = Date.now();
|
|
21
|
+
// Write header
|
|
22
|
+
const header = [
|
|
23
|
+
'========================================',
|
|
24
|
+
'CLITrigger Debug Log',
|
|
25
|
+
'========================================',
|
|
26
|
+
`Task ID: ${opts.todoId}`,
|
|
27
|
+
`Timestamp: ${new Date().toISOString()}`,
|
|
28
|
+
`CLI Tool: ${opts.cliTool}`,
|
|
29
|
+
`Command: ${opts.command} ${opts.args.join(' ')}`,
|
|
30
|
+
`Work Dir: ${opts.workDir}`,
|
|
31
|
+
`Model: ${opts.model || '(default)'}`,
|
|
32
|
+
`Sandbox: ${opts.sandboxMode || 'N/A'}`,
|
|
33
|
+
'',
|
|
34
|
+
].join('\n');
|
|
35
|
+
fs.writeFileSync(filePath, header, 'utf-8');
|
|
36
|
+
let stdoutHeaderWritten = false;
|
|
37
|
+
let stderrHeaderWritten = false;
|
|
38
|
+
const session = {
|
|
39
|
+
filePath,
|
|
40
|
+
writeStdin(content) {
|
|
41
|
+
fs.appendFileSync(filePath, `\n======== STDIN/PROMPT ========\n${content}\n`, 'utf-8');
|
|
42
|
+
},
|
|
43
|
+
teeStdout(original) {
|
|
44
|
+
const passthrough = new PassThrough();
|
|
45
|
+
original.on('data', (chunk) => {
|
|
46
|
+
if (!stdoutHeaderWritten) {
|
|
47
|
+
fs.appendFileSync(filePath, '\n======== STDOUT ========\n', 'utf-8');
|
|
48
|
+
stdoutHeaderWritten = true;
|
|
49
|
+
}
|
|
50
|
+
try {
|
|
51
|
+
fs.appendFileSync(filePath, chunk);
|
|
52
|
+
}
|
|
53
|
+
catch { /* ignore write errors */ }
|
|
54
|
+
passthrough.push(chunk);
|
|
55
|
+
});
|
|
56
|
+
original.on('end', () => passthrough.push(null));
|
|
57
|
+
original.on('error', (err) => passthrough.destroy(err));
|
|
58
|
+
return passthrough;
|
|
59
|
+
},
|
|
60
|
+
teeStderr(original) {
|
|
61
|
+
const passthrough = new PassThrough();
|
|
62
|
+
original.on('data', (chunk) => {
|
|
63
|
+
if (!stderrHeaderWritten) {
|
|
64
|
+
fs.appendFileSync(filePath, '\n======== STDERR ========\n', 'utf-8');
|
|
65
|
+
stderrHeaderWritten = true;
|
|
66
|
+
}
|
|
67
|
+
try {
|
|
68
|
+
fs.appendFileSync(filePath, chunk);
|
|
69
|
+
}
|
|
70
|
+
catch { /* ignore write errors */ }
|
|
71
|
+
passthrough.push(chunk);
|
|
72
|
+
});
|
|
73
|
+
original.on('end', () => passthrough.push(null));
|
|
74
|
+
original.on('error', (err) => passthrough.destroy(err));
|
|
75
|
+
return passthrough;
|
|
76
|
+
},
|
|
77
|
+
finalize(exitCode) {
|
|
78
|
+
const duration = ((Date.now() - startTime) / 1000).toFixed(1);
|
|
79
|
+
const footer = [
|
|
80
|
+
'',
|
|
81
|
+
'======== EXIT ========',
|
|
82
|
+
`Exit Code: ${exitCode}`,
|
|
83
|
+
`Duration: ${duration}s`,
|
|
84
|
+
`Finished: ${new Date().toISOString()}`,
|
|
85
|
+
'========================================',
|
|
86
|
+
'',
|
|
87
|
+
].join('\n');
|
|
88
|
+
try {
|
|
89
|
+
fs.appendFileSync(filePath, footer, 'utf-8');
|
|
90
|
+
}
|
|
91
|
+
catch { /* ignore */ }
|
|
92
|
+
},
|
|
93
|
+
};
|
|
94
|
+
return session;
|
|
95
|
+
}
|
|
96
|
+
listLogs(projectPath, todoId) {
|
|
97
|
+
const debugDir = this.getDebugDir(projectPath);
|
|
98
|
+
if (!fs.existsSync(debugDir))
|
|
99
|
+
return [];
|
|
100
|
+
const files = fs.readdirSync(debugDir)
|
|
101
|
+
.filter(f => f.endsWith('.log'))
|
|
102
|
+
.map(name => {
|
|
103
|
+
const stat = fs.statSync(path.join(debugDir, name));
|
|
104
|
+
// Parse todoId from filename: {todoId}_{timestamp}.log
|
|
105
|
+
const underscoreIdx = name.indexOf('_');
|
|
106
|
+
const fileTodoId = underscoreIdx > 0 ? name.slice(0, underscoreIdx) : name;
|
|
107
|
+
return {
|
|
108
|
+
name,
|
|
109
|
+
todoId: fileTodoId,
|
|
110
|
+
timestamp: stat.mtime.toISOString(),
|
|
111
|
+
size: stat.size,
|
|
112
|
+
};
|
|
113
|
+
})
|
|
114
|
+
.sort((a, b) => b.timestamp.localeCompare(a.timestamp));
|
|
115
|
+
if (todoId) {
|
|
116
|
+
return files.filter(f => f.todoId === todoId);
|
|
117
|
+
}
|
|
118
|
+
return files;
|
|
119
|
+
}
|
|
120
|
+
readLog(projectPath, filename) {
|
|
121
|
+
const safeName = path.basename(filename);
|
|
122
|
+
const filePath = path.join(this.getDebugDir(projectPath), safeName);
|
|
123
|
+
if (!fs.existsSync(filePath))
|
|
124
|
+
return null;
|
|
125
|
+
return fs.readFileSync(filePath, 'utf-8');
|
|
126
|
+
}
|
|
127
|
+
deleteLog(projectPath, filename) {
|
|
128
|
+
const safeName = path.basename(filename);
|
|
129
|
+
const filePath = path.join(this.getDebugDir(projectPath), safeName);
|
|
130
|
+
if (!fs.existsSync(filePath))
|
|
131
|
+
return false;
|
|
132
|
+
fs.unlinkSync(filePath);
|
|
133
|
+
return true;
|
|
134
|
+
}
|
|
135
|
+
deleteAllLogs(projectPath) {
|
|
136
|
+
const debugDir = this.getDebugDir(projectPath);
|
|
137
|
+
if (!fs.existsSync(debugDir))
|
|
138
|
+
return 0;
|
|
139
|
+
const files = fs.readdirSync(debugDir).filter(f => f.endsWith('.log'));
|
|
140
|
+
for (const f of files) {
|
|
141
|
+
try {
|
|
142
|
+
fs.unlinkSync(path.join(debugDir, f));
|
|
143
|
+
}
|
|
144
|
+
catch { /* ignore */ }
|
|
145
|
+
}
|
|
146
|
+
return files.length;
|
|
147
|
+
}
|
|
148
|
+
cleanupOldLogs(projectPath, retentionDays) {
|
|
149
|
+
const debugDir = this.getDebugDir(projectPath);
|
|
150
|
+
if (!fs.existsSync(debugDir))
|
|
151
|
+
return 0;
|
|
152
|
+
const cutoff = Date.now() - retentionDays * 24 * 60 * 60 * 1000;
|
|
153
|
+
let cleaned = 0;
|
|
154
|
+
for (const f of fs.readdirSync(debugDir).filter(n => n.endsWith('.log'))) {
|
|
155
|
+
try {
|
|
156
|
+
const stat = fs.statSync(path.join(debugDir, f));
|
|
157
|
+
if (stat.mtime.getTime() < cutoff) {
|
|
158
|
+
fs.unlinkSync(path.join(debugDir, f));
|
|
159
|
+
cleaned++;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
catch { /* ignore */ }
|
|
163
|
+
}
|
|
164
|
+
return cleaned;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
export const debugLogger = new DebugLogger();
|
|
168
|
+
//# sourceMappingURL=debug-logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debug-logger.js","sourceRoot":"","sources":["../../../src/server/services/debug-logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import * as queries from '../db/queries.js';
|
|
2
|
+
export declare class DiscussionOrchestrator {
|
|
3
|
+
/**
|
|
4
|
+
* Start a discussion: create worktree, create round-1 messages, run first agent.
|
|
5
|
+
*/
|
|
6
|
+
startDiscussion(discussionId: string): Promise<void>;
|
|
7
|
+
/**
|
|
8
|
+
* Stop/pause a running discussion.
|
|
9
|
+
*/
|
|
10
|
+
stopDiscussion(discussionId: string): Promise<void>;
|
|
11
|
+
/**
|
|
12
|
+
* Skip the current agent's turn.
|
|
13
|
+
*/
|
|
14
|
+
skipCurrentTurn(discussionId: string): Promise<void>;
|
|
15
|
+
/**
|
|
16
|
+
* User injects a message into the discussion.
|
|
17
|
+
*/
|
|
18
|
+
injectUserMessage(discussionId: string, content: string): Promise<queries.DiscussionMessage>;
|
|
19
|
+
/**
|
|
20
|
+
* Trigger implementation round: a designated agent writes code.
|
|
21
|
+
*/
|
|
22
|
+
triggerImplementation(discussionId: string, agentId: string, options?: {
|
|
23
|
+
fromAutoImplement?: boolean;
|
|
24
|
+
}): Promise<void>;
|
|
25
|
+
/**
|
|
26
|
+
* Run a single agent turn.
|
|
27
|
+
*/
|
|
28
|
+
private runAgentTurn;
|
|
29
|
+
/**
|
|
30
|
+
* Advance to next agent or next round after a turn completes.
|
|
31
|
+
*/
|
|
32
|
+
private advanceDiscussion;
|
|
33
|
+
/**
|
|
34
|
+
* Create message records for a given round.
|
|
35
|
+
*/
|
|
36
|
+
private createRoundMessages;
|
|
37
|
+
/**
|
|
38
|
+
* Build prompt for an agent turn with full discussion history.
|
|
39
|
+
*/
|
|
40
|
+
private buildTurnPrompt;
|
|
41
|
+
/**
|
|
42
|
+
* Stream stdout/stderr to discussion_logs and broadcast via WebSocket.
|
|
43
|
+
*/
|
|
44
|
+
private streamToDiscussionDb;
|
|
45
|
+
}
|
|
46
|
+
export declare const discussionOrchestrator: DiscussionOrchestrator;
|
|
47
|
+
//# sourceMappingURL=discussion-orchestrator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discussion-orchestrator.d.ts","sourceRoot":"","sources":["../../../src/server/services/discussion-orchestrator.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAE5C,qBAAa,sBAAsB;IACjC;;OAEG;IACG,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwF1D;;OAEG;IACG,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBzD;;OAEG;IACG,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoB1D;;OAEG;IACG,iBAAiB,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC;IAyBlG;;OAEG;IACG,qBAAqB,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAyB5H;;OAEG;YACW,YAAY;IAsH1B;;OAEG;YACW,iBAAiB;IAuE/B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAY3B;;OAEG;IACH,OAAO,CAAC,eAAe;IAqFvB;;OAEG;IACH,OAAO,CAAC,oBAAoB;CAsK7B;AAED,eAAO,MAAM,sBAAsB,wBAA+B,CAAC"}
|