jumbo-cli 3.15.0 → 3.16.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/README.md +3 -3
- package/assets/agent-files/json/antigravity-hooks.fragment.json +11 -0
- package/assets/agent-files/scripts/antigravity-hook.mjs +133 -0
- package/dist/application/agents/AgentInvocation.d.ts +5 -0
- package/dist/application/agents/AgentInvocation.d.ts.map +1 -1
- package/dist/application/context/goals/codify/CodifierProcessManager.d.ts +1 -1
- package/dist/application/context/goals/codify/CodifierProcessManager.d.ts.map +1 -1
- package/dist/application/context/goals/codify/CodifierProcessManager.js +48 -39
- package/dist/application/context/goals/codify/CodifierProcessManager.js.map +1 -1
- package/dist/application/context/goals/refine/RefinerProcessManager.d.ts +1 -1
- package/dist/application/context/goals/refine/RefinerProcessManager.d.ts.map +1 -1
- package/dist/application/context/goals/refine/RefinerProcessManager.js +53 -37
- package/dist/application/context/goals/refine/RefinerProcessManager.js.map +1 -1
- package/dist/application/context/goals/review/ReviewerProcessManager.d.ts +1 -2
- package/dist/application/context/goals/review/ReviewerProcessManager.d.ts.map +1 -1
- package/dist/application/context/goals/review/ReviewerProcessManager.js +54 -57
- package/dist/application/context/goals/review/ReviewerProcessManager.js.map +1 -1
- package/dist/application/context/project/init/AgentSelection.d.ts +1 -1
- package/dist/application/context/project/init/AgentSelection.d.ts.map +1 -1
- package/dist/application/daemons/IProcessManager.d.ts +3 -0
- package/dist/application/daemons/IProcessManager.d.ts.map +1 -1
- package/dist/application/daemons/ProcessManagerEventEmitter.d.ts +12 -0
- package/dist/application/daemons/ProcessManagerEventEmitter.d.ts.map +1 -0
- package/dist/application/daemons/ProcessManagerEventEmitter.js +49 -0
- package/dist/application/daemons/ProcessManagerEventEmitter.js.map +1 -0
- package/dist/infrastructure/agents/AgentCliGateway.d.ts +3 -1
- package/dist/infrastructure/agents/AgentCliGateway.d.ts.map +1 -1
- package/dist/infrastructure/agents/AgentCliGateway.js +46 -11
- package/dist/infrastructure/agents/AgentCliGateway.js.map +1 -1
- package/dist/infrastructure/context/project/init/AgentFileProtocol.js +2 -2
- package/dist/infrastructure/context/project/init/AgentFileProtocol.js.map +1 -1
- package/dist/infrastructure/context/project/init/AntigravityConfigurer.d.ts +46 -0
- package/dist/infrastructure/context/project/init/AntigravityConfigurer.d.ts.map +1 -0
- package/dist/infrastructure/context/project/init/AntigravityConfigurer.js +300 -0
- package/dist/infrastructure/context/project/init/AntigravityConfigurer.js.map +1 -0
- package/dist/infrastructure/context/project/init/SafeAntigravityHooksMerger.d.ts +35 -0
- package/dist/infrastructure/context/project/init/SafeAntigravityHooksMerger.d.ts.map +1 -0
- package/dist/infrastructure/context/project/init/SafeAntigravityHooksMerger.js +105 -0
- package/dist/infrastructure/context/project/init/SafeAntigravityHooksMerger.js.map +1 -0
- package/dist/infrastructure/daemons/NodeWorkerDaemonProcessController.d.ts +2 -0
- package/dist/infrastructure/daemons/NodeWorkerDaemonProcessController.d.ts.map +1 -1
- package/dist/infrastructure/daemons/NodeWorkerDaemonProcessController.js +5 -1
- package/dist/infrastructure/daemons/NodeWorkerDaemonProcessController.js.map +1 -1
- package/dist/presentation/cli/commands/goals/list/GoalListOutputBuilder.js +1 -1
- package/dist/presentation/cli/commands/goals/list/GoalListOutputBuilder.js.map +1 -1
- package/dist/presentation/cli/commands/project/init/project.init.js +1 -1
- package/dist/presentation/cli/commands/project/init/project.init.js.map +1 -1
- package/dist/presentation/cli/commands/work/shared/AgentSpawner.d.ts +1 -1
- package/dist/presentation/cli/commands/work/shared/AgentSpawner.d.ts.map +1 -1
- package/dist/presentation/cli/commands/work/shared/AgentSpawner.js +2 -2
- package/dist/presentation/cli/commands/work/shared/AgentSpawner.js.map +1 -1
- package/dist/presentation/cli/output/HookOutput.d.ts +1 -1
- package/dist/presentation/tui/cockpit/CockpitDaemonAgentConfigCycler.js +1 -1
- package/dist/presentation/tui/cockpit/CockpitDaemonAgentConfigCycler.js.map +1 -1
- package/dist/presentation/tui/cockpit/CockpitDaemonPanel.d.ts.map +1 -1
- package/dist/presentation/tui/cockpit/CockpitDaemonPanel.js +37 -1
- package/dist/presentation/tui/cockpit/CockpitDaemonPanel.js.map +1 -1
- package/dist/presentation/tui/cockpit/DaemonEventRowMessageFormatter.d.ts.map +1 -1
- package/dist/presentation/tui/cockpit/DaemonEventRowMessageFormatter.js +10 -0
- package/dist/presentation/tui/cockpit/DaemonEventRowMessageFormatter.js.map +1 -1
- package/dist/presentation/tui/cockpit/DaemonEventRows.d.ts.map +1 -1
- package/dist/presentation/tui/cockpit/DaemonEventRows.js +36 -2
- package/dist/presentation/tui/cockpit/DaemonEventRows.js.map +1 -1
- package/dist/presentation/tui/daemon-subprocesses/DaemonEventCategory.d.ts +2 -0
- package/dist/presentation/tui/daemon-subprocesses/DaemonEventCategory.d.ts.map +1 -1
- package/dist/presentation/tui/daemon-subprocesses/DaemonEventCategory.js +2 -0
- package/dist/presentation/tui/daemon-subprocesses/DaemonEventCategory.js.map +1 -1
- package/dist/presentation/tui/daemon-subprocesses/DaemonEventSnapshot.d.ts +3 -0
- package/dist/presentation/tui/daemon-subprocesses/DaemonEventSnapshot.d.ts.map +1 -1
- package/dist/presentation/tui/daemon-subprocesses/DaemonOutputEventParser.d.ts.map +1 -1
- package/dist/presentation/tui/daemon-subprocesses/DaemonOutputEventParser.js +2 -0
- package/dist/presentation/tui/daemon-subprocesses/DaemonOutputEventParser.js.map +1 -1
- package/dist/presentation/tui/daemon-subprocesses/ManagedSubprocess.d.ts +2 -0
- package/dist/presentation/tui/daemon-subprocesses/ManagedSubprocess.d.ts.map +1 -1
- package/dist/presentation/tui/daemon-subprocesses/SubprocessLifecycleEventRecorder.d.ts +2 -0
- package/dist/presentation/tui/daemon-subprocesses/SubprocessLifecycleEventRecorder.d.ts.map +1 -1
- package/dist/presentation/tui/daemon-subprocesses/SubprocessLifecycleEventRecorder.js +49 -1
- package/dist/presentation/tui/daemon-subprocesses/SubprocessLifecycleEventRecorder.js.map +1 -1
- package/dist/presentation/tui/daemon-subprocesses/SubprocessManager.d.ts +3 -0
- package/dist/presentation/tui/daemon-subprocesses/SubprocessManager.d.ts.map +1 -1
- package/dist/presentation/tui/daemon-subprocesses/SubprocessManager.js +61 -1
- package/dist/presentation/tui/daemon-subprocesses/SubprocessManager.js.map +1 -1
- package/dist/presentation/tui/project-initialization/Constants.d.ts +1 -1
- package/dist/presentation/tui/project-initialization/Constants.js +1 -1
- package/dist/presentation/tui/project-initialization/Constants.js.map +1 -1
- package/dist/presentation/tui/project-initialization/InitFlow.js +3 -3
- package/dist/presentation/tui/project-initialization/InitFlow.js.map +1 -1
- package/package.json +1 -1
- package/assets/agent-files/json/gemini-settings.fragment.json +0 -41
- package/assets/gemini-logo.svg +0 -1
- package/dist/infrastructure/context/project/init/GeminiConfigurer.d.ts +0 -45
- package/dist/infrastructure/context/project/init/GeminiConfigurer.d.ts.map +0 -1
- package/dist/infrastructure/context/project/init/GeminiConfigurer.js +0 -126
- package/dist/infrastructure/context/project/init/GeminiConfigurer.js.map +0 -1
- package/dist/infrastructure/context/project/init/SafeGeminiSettingsMerger.d.ts +0 -75
- package/dist/infrastructure/context/project/init/SafeGeminiSettingsMerger.d.ts.map +0 -1
- package/dist/infrastructure/context/project/init/SafeGeminiSettingsMerger.js +0 -150
- package/dist/infrastructure/context/project/init/SafeGeminiSettingsMerger.js.map +0 -1
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
</p>
|
|
4
4
|
|
|
5
5
|
# Jumbo Context
|
|
6
|
-
### Tired of repeating yourself to Claude, Codex,
|
|
6
|
+
### Tired of repeating yourself to Claude, Codex, Antigravity, Copilot and their cohorts?
|
|
7
7
|
|
|
8
8
|
Agents shouldn't have to be re-taught your project every session.
|
|
9
9
|
Jumbo gives them the context they're missing, so you don't have to.
|
|
@@ -70,7 +70,7 @@ Those solve the core problems. These make Jumbo pleasant to use:
|
|
|
70
70
|
```
|
|
71
71
|
Jumbo will guide you in getting started.
|
|
72
72
|
|
|
73
|
-
3. Run your agent as normal (claude, codex,
|
|
73
|
+
3. Run your agent as normal (claude, codex, agy, vibe)
|
|
74
74
|
|
|
75
75
|
``` bash
|
|
76
76
|
> claude
|
|
@@ -212,7 +212,7 @@ Change agents and models at will. Jumbo just picks up where you left off.
|
|
|
212
212
|
<details>
|
|
213
213
|
<summary>What coding agents does jumbo work with?</summary>
|
|
214
214
|
|
|
215
|
-
Jumbo has been battle-tested with Claude Code, GitHub Copilot, and
|
|
215
|
+
Jumbo has been battle-tested with Claude Code, GitHub Copilot, Codex, and Antigravity. More are to be verified soon...
|
|
216
216
|
</details>
|
|
217
217
|
|
|
218
218
|
<details>
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
import { spawn } from "node:child_process";
|
|
4
|
+
|
|
5
|
+
const MANAGED_MARKER = "JUMBO_MANAGED_ANTIGRAVITY_HOOK_RUNNER_V1";
|
|
6
|
+
const MAX_INJECTED_MESSAGE_LENGTH = 12_000;
|
|
7
|
+
|
|
8
|
+
void MANAGED_MARKER;
|
|
9
|
+
|
|
10
|
+
const mode = process.argv[2] ?? "";
|
|
11
|
+
const input = parseJson(await readStdin());
|
|
12
|
+
|
|
13
|
+
try {
|
|
14
|
+
if (mode === "pre-invocation-bootstrap") {
|
|
15
|
+
await handlePreInvocationBootstrap(input);
|
|
16
|
+
} else {
|
|
17
|
+
writeJson({ injectSteps: [] });
|
|
18
|
+
}
|
|
19
|
+
} catch (error) {
|
|
20
|
+
writeJson({
|
|
21
|
+
injectSteps: [
|
|
22
|
+
{
|
|
23
|
+
ephemeralMessage: `Jumbo Antigravity hook failed: ${getErrorMessage(error)}`,
|
|
24
|
+
},
|
|
25
|
+
],
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
async function handlePreInvocationBootstrap(input) {
|
|
30
|
+
if (input.invocationNum !== 0) {
|
|
31
|
+
writeJson({ injectSteps: [] });
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
const cwd = getWorkspaceCwd(input);
|
|
36
|
+
const result = await runCommand("jumbo", ["session", "start", "--format", "text"], cwd);
|
|
37
|
+
const output = [result.stdout, result.stderr].filter(Boolean).join("\n").trim();
|
|
38
|
+
|
|
39
|
+
if (!output) {
|
|
40
|
+
writeJson({ injectSteps: [] });
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
const prefix = result.exitCode === 0 ? "" : `jumbo session start exited with code ${result.exitCode}.\n\n`;
|
|
45
|
+
writeJson({
|
|
46
|
+
injectSteps: [
|
|
47
|
+
{
|
|
48
|
+
ephemeralMessage: limitTextTail(`${prefix}${output}`, MAX_INJECTED_MESSAGE_LENGTH),
|
|
49
|
+
},
|
|
50
|
+
],
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
function runCommand(command, args, cwd) {
|
|
55
|
+
return new Promise((resolve) => {
|
|
56
|
+
const isWin = process.platform === "win32";
|
|
57
|
+
let child;
|
|
58
|
+
if (isWin) {
|
|
59
|
+
const commandLine = [command, ...args].map(arg => {
|
|
60
|
+
return /[ \"]/.test(arg) ? `"${arg.replace(/"/g, '\\"')}"` : arg;
|
|
61
|
+
}).join(" ");
|
|
62
|
+
child = spawn(commandLine, [], {
|
|
63
|
+
cwd,
|
|
64
|
+
shell: true,
|
|
65
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
66
|
+
});
|
|
67
|
+
} else {
|
|
68
|
+
child = spawn(command, args, {
|
|
69
|
+
cwd,
|
|
70
|
+
shell: false,
|
|
71
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
let stdout = "";
|
|
76
|
+
let stderr = "";
|
|
77
|
+
|
|
78
|
+
child.stdout?.on("data", (chunk) => {
|
|
79
|
+
stdout = limitTextTail(`${stdout}${chunk.toString()}`, MAX_INJECTED_MESSAGE_LENGTH);
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
child.stderr?.on("data", (chunk) => {
|
|
83
|
+
stderr = limitTextTail(`${stderr}${chunk.toString()}`, MAX_INJECTED_MESSAGE_LENGTH);
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
child.on("close", (code) => {
|
|
87
|
+
resolve({ exitCode: code ?? 1, stdout, stderr });
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
child.on("error", (error) => {
|
|
91
|
+
resolve({ exitCode: 1, stdout, stderr: stderr || error.message });
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
function getWorkspaceCwd(input) {
|
|
97
|
+
if (Array.isArray(input.workspacePaths) && typeof input.workspacePaths[0] === "string") {
|
|
98
|
+
return input.workspacePaths[0];
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
return process.cwd();
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
function readStdin() {
|
|
105
|
+
return new Promise((resolve) => {
|
|
106
|
+
let input = "";
|
|
107
|
+
process.stdin.setEncoding("utf-8");
|
|
108
|
+
process.stdin.on("data", (chunk) => {
|
|
109
|
+
input += chunk;
|
|
110
|
+
});
|
|
111
|
+
process.stdin.on("end", () => resolve(input));
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
function parseJson(value) {
|
|
116
|
+
try {
|
|
117
|
+
return value.trim() ? JSON.parse(value) : {};
|
|
118
|
+
} catch {
|
|
119
|
+
return {};
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
function writeJson(value) {
|
|
124
|
+
process.stdout.write(JSON.stringify(value));
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
function getErrorMessage(error) {
|
|
128
|
+
return error instanceof Error ? error.message : String(error);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
function limitTextTail(value, maxLength) {
|
|
132
|
+
return value.length > maxLength ? value.slice(-maxLength) : value;
|
|
133
|
+
}
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
export interface AgentInvocation {
|
|
2
2
|
readonly agentId: string;
|
|
3
3
|
readonly prompt: string;
|
|
4
|
+
readonly onActivity?: (activity: AgentActivity) => void;
|
|
5
|
+
}
|
|
6
|
+
export interface AgentActivity {
|
|
7
|
+
readonly stream: "stdout" | "stderr";
|
|
8
|
+
readonly text: string;
|
|
4
9
|
}
|
|
5
10
|
export interface AgentInvocationResult {
|
|
6
11
|
readonly exitCode: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentInvocation.d.ts","sourceRoot":"","sources":["../../../src/application/agents/AgentInvocation.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"AgentInvocation.d.ts","sourceRoot":"","sources":["../../../src/application/agents/AgentInvocation.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;CACzD;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B"}
|
|
@@ -26,9 +26,9 @@ export declare class CodifierProcessManager implements IProcessManager {
|
|
|
26
26
|
selectEligibleGoals(): Promise<GoalView[]>;
|
|
27
27
|
buildPrompt(goalId: string): string;
|
|
28
28
|
private isGoalDone;
|
|
29
|
-
private emit;
|
|
30
29
|
private emitFailure;
|
|
31
30
|
private track;
|
|
31
|
+
private emitReturnedAgentOutput;
|
|
32
32
|
private errorProperties;
|
|
33
33
|
}
|
|
34
34
|
//# sourceMappingURL=CodifierProcessManager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CodifierProcessManager.d.ts","sourceRoot":"","sources":["../../../../../src/application/context/goals/codify/CodifierProcessManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"CodifierProcessManager.d.ts","sourceRoot":"","sources":["../../../../../src/application/context/goals/codify/CodifierProcessManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AACvF,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AA+B3D,MAAM,MAAM,qBAAqB,GAC/B,oBAAoB,CAAC;AAEvB,MAAM,WAAW,oBAAqB,SAAQ,mBAAmB;IAC/D,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;CAC7B;AAED,MAAM,MAAM,sBAAsB,GAAG,qBAAqB,CAAC;AAE3D,MAAM,MAAM,qBAAqB,GAAG,oBAAoB,CAAC;AAEzD,qBAAa,sBAAuB,YAAW,eAAe;IAE1D,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,eAAe;gBANf,gBAAgB,EAAE,iBAAiB,EACnC,UAAU,EAAE,iBAAiB,EAC7B,WAAW,EAAE,eAAe,EAC5B,oBAAoB,EAAE,qBAAqB,EAC3C,oBAAoB,EAAE,oBAAoB,EAC1C,YAAY,EAAE,aAAa,EAC3B,eAAe,EAAE,gBAAgB;IAG9C,WAAW,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IA6F5E,mBAAmB,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAShD,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;YASrB,UAAU;IAKxB,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,KAAK;IAYb,OAAO,CAAC,uBAAuB;IAa/B,OAAO,CAAC,eAAe;CAoBxB"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ProcessManagerEventEmitter } from "../../../daemons/ProcessManagerEventEmitter.js";
|
|
1
2
|
import { GoalStatus } from "../../../../domain/goals/Constants.js";
|
|
2
3
|
const CODIFIER_EVENT_SOURCE = "codifier";
|
|
3
4
|
const CODIFIER_EVENT_TEXT_FIELD_MAX_LENGTH = 2048;
|
|
@@ -39,23 +40,24 @@ export class CodifierProcessManager {
|
|
|
39
40
|
}
|
|
40
41
|
async processNext(options) {
|
|
41
42
|
const startedAt = process.hrtime.bigint();
|
|
43
|
+
const events = new ProcessManagerEventEmitter(CODIFIER_EVENT_SOURCE, options, startedAt);
|
|
44
|
+
events.emit("processing", "polling", "polling for approved goals", { phase: "polling" });
|
|
42
45
|
const goals = await this.selectEligibleGoals();
|
|
43
46
|
if (goals.length === 0) {
|
|
44
|
-
|
|
45
|
-
daemon: CODIFIER_EVENT_SOURCE,
|
|
46
|
-
status: "idle",
|
|
47
|
-
source: CODIFIER_EVENT_SOURCE,
|
|
48
|
-
...CODIFIER_EVENT_COPY.noWork,
|
|
49
|
-
});
|
|
47
|
+
events.emit("idle", CODIFIER_EVENT_COPY.noWork.category, CODIFIER_EVENT_COPY.noWork.message, { phase: "idle" });
|
|
50
48
|
this.track("codifier_process_completed", startedAt, { status: "idle", attempts: 0 });
|
|
51
49
|
return { status: "idle", attempts: 0 };
|
|
52
50
|
}
|
|
53
51
|
const goal = goals[0];
|
|
52
|
+
events.emit("processing", "selection", "selected goal for codification", {
|
|
53
|
+
phase: "selection",
|
|
54
|
+
goalId: goal.goalId,
|
|
55
|
+
});
|
|
54
56
|
try {
|
|
55
57
|
await this.codifyGoalController.handle({ goalId: goal.goalId });
|
|
56
58
|
}
|
|
57
59
|
catch (error) {
|
|
58
|
-
this.emitFailure(
|
|
60
|
+
this.emitFailure(events, goal.goalId, error);
|
|
59
61
|
this.track("codifier_process_completed", startedAt, {
|
|
60
62
|
status: "failed",
|
|
61
63
|
attempts: 0,
|
|
@@ -65,29 +67,33 @@ export class CodifierProcessManager {
|
|
|
65
67
|
return { status: "failed", goalId: goal.goalId, attempts: 0 };
|
|
66
68
|
}
|
|
67
69
|
for (let attempt = 1; attempt <= options.maxRetries; attempt++) {
|
|
68
|
-
|
|
69
|
-
daemon: CODIFIER_EVENT_SOURCE,
|
|
70
|
-
status: "processing",
|
|
71
|
-
source: CODIFIER_EVENT_SOURCE,
|
|
70
|
+
const attemptContext = {
|
|
72
71
|
goalId: goal.goalId,
|
|
73
72
|
attempt,
|
|
74
73
|
maxRetries: options.maxRetries,
|
|
75
|
-
|
|
74
|
+
};
|
|
75
|
+
events.emit("processing", CODIFIER_EVENT_COPY.workStarted.category, CODIFIER_EVENT_COPY.workStarted.message, {
|
|
76
|
+
phase: "working",
|
|
77
|
+
...attemptContext,
|
|
76
78
|
});
|
|
77
|
-
|
|
79
|
+
let sawAgentActivity = false;
|
|
80
|
+
const invocation = {
|
|
78
81
|
agentId: options.agentId,
|
|
79
82
|
prompt: this.buildPrompt(goal.goalId),
|
|
80
|
-
|
|
83
|
+
onActivity: (activity) => {
|
|
84
|
+
sawAgentActivity = true;
|
|
85
|
+
events.emitAgentActivity(activity.stream, activity.text, attemptContext);
|
|
86
|
+
},
|
|
87
|
+
};
|
|
88
|
+
const result = await this.agentGateway.invoke(invocation);
|
|
89
|
+
if (!sawAgentActivity) {
|
|
90
|
+
this.emitReturnedAgentOutput(events, result, attemptContext);
|
|
91
|
+
}
|
|
81
92
|
if (await this.isGoalDone(goal.goalId)) {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
source: CODIFIER_EVENT_SOURCE,
|
|
86
|
-
goalId: goal.goalId,
|
|
87
|
-
attempt,
|
|
88
|
-
maxRetries: options.maxRetries,
|
|
93
|
+
events.emit("completed", CODIFIER_EVENT_COPY.completed.category, CODIFIER_EVENT_COPY.completed.message, {
|
|
94
|
+
phase: "completed",
|
|
95
|
+
...attemptContext,
|
|
89
96
|
exitCode: result.exitCode,
|
|
90
|
-
...CODIFIER_EVENT_COPY.completed,
|
|
91
97
|
});
|
|
92
98
|
this.track("codifier_process_completed", startedAt, {
|
|
93
99
|
status: "completed",
|
|
@@ -98,16 +104,17 @@ export class CodifierProcessManager {
|
|
|
98
104
|
return { status: "completed", goalId: goal.goalId, attempts: attempt };
|
|
99
105
|
}
|
|
100
106
|
const retryExhausted = attempt === options.maxRetries;
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
source: CODIFIER_EVENT_SOURCE,
|
|
105
|
-
goalId: goal.goalId,
|
|
106
|
-
attempt,
|
|
107
|
-
maxRetries: options.maxRetries,
|
|
107
|
+
events.emit(retryExhausted ? "exhausted" : "skipped", retryExhausted ? CODIFIER_EVENT_COPY.exhausted.category : CODIFIER_EVENT_COPY.skipped.category, retryExhausted ? CODIFIER_EVENT_COPY.exhausted.message : CODIFIER_EVENT_COPY.skipped.message, {
|
|
108
|
+
phase: retryExhausted ? "exhausted" : "retry",
|
|
109
|
+
...attemptContext,
|
|
108
110
|
exitCode: result.exitCode,
|
|
109
|
-
...(retryExhausted ? CODIFIER_EVENT_COPY.exhausted : CODIFIER_EVENT_COPY.skipped),
|
|
110
111
|
});
|
|
112
|
+
if (!retryExhausted) {
|
|
113
|
+
events.emit("processing", "retry", "retrying codification", {
|
|
114
|
+
phase: "retry",
|
|
115
|
+
...attemptContext,
|
|
116
|
+
});
|
|
117
|
+
}
|
|
111
118
|
}
|
|
112
119
|
this.track("codifier_process_completed", startedAt, {
|
|
113
120
|
status: "exhausted",
|
|
@@ -135,16 +142,10 @@ export class CodifierProcessManager {
|
|
|
135
142
|
const goal = await this.goalReader.findById(goalId);
|
|
136
143
|
return goal?.status === GoalStatus.DONE;
|
|
137
144
|
}
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
emitFailure(options, goalId, error) {
|
|
142
|
-
this.emit(options, {
|
|
143
|
-
daemon: CODIFIER_EVENT_SOURCE,
|
|
144
|
-
status: "failed",
|
|
145
|
-
source: CODIFIER_EVENT_SOURCE,
|
|
145
|
+
emitFailure(events, goalId, error) {
|
|
146
|
+
events.emit("failed", CODIFIER_EVENT_COPY.failed.category, CODIFIER_EVENT_COPY.failed.message, {
|
|
147
|
+
phase: "failed",
|
|
146
148
|
goalId,
|
|
147
|
-
...CODIFIER_EVENT_COPY.failed,
|
|
148
149
|
...this.errorProperties(error),
|
|
149
150
|
});
|
|
150
151
|
}
|
|
@@ -155,6 +156,14 @@ export class CodifierProcessManager {
|
|
|
155
156
|
...properties,
|
|
156
157
|
});
|
|
157
158
|
}
|
|
159
|
+
emitReturnedAgentOutput(events, result, context) {
|
|
160
|
+
if (result.stdout !== undefined) {
|
|
161
|
+
events.emitAgentActivity("stdout", result.stdout, context);
|
|
162
|
+
}
|
|
163
|
+
if (result.stderr !== undefined) {
|
|
164
|
+
events.emitAgentActivity("stderr", result.stderr, context);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
158
167
|
errorProperties(error) {
|
|
159
168
|
if (error instanceof Error) {
|
|
160
169
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CodifierProcessManager.js","sourceRoot":"","sources":["../../../../../src/application/context/goals/codify/CodifierProcessManager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CodifierProcessManager.js","sourceRoot":"","sources":["../../../../../src/application/context/goals/codify/CodifierProcessManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,8 +20,8 @@ export declare class RefinerProcessManager implements IProcessManager {
|
|
|
20
20
|
selectEligibleGoals(): Promise<GoalView[]>;
|
|
21
21
|
buildPrompt(goalId: string): string;
|
|
22
22
|
private isGoalRefined;
|
|
23
|
-
private emit;
|
|
24
23
|
private track;
|
|
24
|
+
private emitReturnedAgentOutput;
|
|
25
25
|
private errorProperties;
|
|
26
26
|
private agentFailureProperties;
|
|
27
27
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RefinerProcessManager.d.ts","sourceRoot":"","sources":["../../../../../src/application/context/goals/refine/RefinerProcessManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"RefinerProcessManager.d.ts","sourceRoot":"","sources":["../../../../../src/application/context/goals/refine/RefinerProcessManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAEnH,OAAO,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AACvF,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAE1E,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AA+B3D,qBAAa,qBAAsB,YAAW,eAAe;IAEzD,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,eAAe;gBANf,gBAAgB,EAAE,iBAAiB,EACnC,UAAU,EAAE,iBAAiB,EAC7B,WAAW,EAAE,eAAe,EAC5B,oBAAoB,EAAE,qBAAqB,EAC3C,oBAAoB,EAAE,oBAAoB,EAC1C,YAAY,EAAE,aAAa,EAC3B,eAAe,EAAE,gBAAgB;IAG9C,WAAW,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAoF1E,mBAAmB,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAQhD,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;YAQrB,aAAa;IAK3B,OAAO,CAAC,KAAK;IAQb,OAAO,CAAC,uBAAuB;IAa/B,OAAO,CAAC,eAAe;IAgBvB,OAAO,CAAC,sBAAsB;CAS/B"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ProcessManagerEventEmitter } from "../../../daemons/ProcessManagerEventEmitter.js";
|
|
1
2
|
import { GoalStatus } from "../../../../domain/goals/Constants.js";
|
|
2
3
|
const REFINER_EVENT_SOURCE = "refiner";
|
|
3
4
|
const REFINER_EVENT_TEXT_FIELD_MAX_LENGTH = 2048;
|
|
@@ -39,71 +40,77 @@ export class RefinerProcessManager {
|
|
|
39
40
|
}
|
|
40
41
|
async processNext(options) {
|
|
41
42
|
const startedAt = process.hrtime.bigint();
|
|
43
|
+
const events = new ProcessManagerEventEmitter(REFINER_EVENT_SOURCE, options, startedAt);
|
|
44
|
+
events.emit("processing", "polling", "polling for defined goals", { phase: "polling" });
|
|
42
45
|
const goals = await this.selectEligibleGoals();
|
|
43
46
|
if (goals.length === 0) {
|
|
44
|
-
|
|
45
|
-
daemon: REFINER_EVENT_SOURCE,
|
|
46
|
-
status: "idle",
|
|
47
|
-
source: REFINER_EVENT_SOURCE,
|
|
48
|
-
...REFINER_EVENT_COPY.noWork,
|
|
49
|
-
});
|
|
47
|
+
events.emit("idle", REFINER_EVENT_COPY.noWork.category, REFINER_EVENT_COPY.noWork.message, { phase: "idle" });
|
|
50
48
|
this.track(startedAt, { status: "idle", attempts: 0 });
|
|
51
49
|
return { status: "idle", attempts: 0 };
|
|
52
50
|
}
|
|
53
51
|
const goal = goals[0];
|
|
52
|
+
events.emit("processing", "selection", "selected goal for refinement", {
|
|
53
|
+
phase: "selection",
|
|
54
|
+
goalId: goal.goalId,
|
|
55
|
+
});
|
|
54
56
|
try {
|
|
55
57
|
await this.refineGoalController.handle({ goalId: goal.goalId });
|
|
56
58
|
}
|
|
57
59
|
catch (error) {
|
|
58
60
|
const errorProperties = this.errorProperties(error);
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
status: "failed",
|
|
62
|
-
source: REFINER_EVENT_SOURCE,
|
|
61
|
+
events.emit("failed", REFINER_EVENT_COPY.failed.category, REFINER_EVENT_COPY.failed.message, {
|
|
62
|
+
phase: "failed",
|
|
63
63
|
goalId: goal.goalId,
|
|
64
|
-
...REFINER_EVENT_COPY.failed,
|
|
65
64
|
...errorProperties,
|
|
66
65
|
});
|
|
67
66
|
this.track(startedAt, { status: "failed", attempts: 0, goalId: goal.goalId, ...errorProperties });
|
|
68
67
|
return { status: "failed", goalId: goal.goalId, attempts: 0 };
|
|
69
68
|
}
|
|
70
69
|
for (let attempt = 1; attempt <= options.maxRetries; attempt++) {
|
|
71
|
-
|
|
72
|
-
daemon: REFINER_EVENT_SOURCE,
|
|
73
|
-
status: "processing",
|
|
74
|
-
source: REFINER_EVENT_SOURCE,
|
|
70
|
+
const attemptContext = {
|
|
75
71
|
goalId: goal.goalId,
|
|
76
72
|
attempt,
|
|
77
73
|
maxRetries: options.maxRetries,
|
|
78
|
-
|
|
74
|
+
};
|
|
75
|
+
events.emit("processing", REFINER_EVENT_COPY.workStarted.category, REFINER_EVENT_COPY.workStarted.message, {
|
|
76
|
+
phase: "working",
|
|
77
|
+
...attemptContext,
|
|
79
78
|
});
|
|
80
|
-
|
|
79
|
+
let sawAgentActivity = false;
|
|
80
|
+
const invocation = {
|
|
81
|
+
agentId: options.agentId,
|
|
82
|
+
prompt: this.buildPrompt(goal.goalId),
|
|
83
|
+
onActivity: (activity) => {
|
|
84
|
+
sawAgentActivity = true;
|
|
85
|
+
events.emitAgentActivity(activity.stream, activity.text, attemptContext);
|
|
86
|
+
},
|
|
87
|
+
};
|
|
88
|
+
const result = await this.agentGateway.invoke(invocation);
|
|
89
|
+
if (!sawAgentActivity) {
|
|
90
|
+
this.emitReturnedAgentOutput(events, result, attemptContext);
|
|
91
|
+
}
|
|
81
92
|
if (await this.isGoalRefined(goal.goalId)) {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
source: REFINER_EVENT_SOURCE,
|
|
86
|
-
goalId: goal.goalId,
|
|
87
|
-
attempt,
|
|
88
|
-
maxRetries: options.maxRetries,
|
|
93
|
+
events.emit("completed", REFINER_EVENT_COPY.completed.category, REFINER_EVENT_COPY.completed.message, {
|
|
94
|
+
phase: "completed",
|
|
95
|
+
...attemptContext,
|
|
89
96
|
exitCode: result.exitCode,
|
|
90
|
-
...REFINER_EVENT_COPY.completed,
|
|
91
97
|
});
|
|
92
98
|
this.track(startedAt, { status: "completed", attempts: attempt, goalId: goal.goalId, agentExitCode: result.exitCode });
|
|
93
99
|
return { status: "completed", goalId: goal.goalId, attempts: attempt };
|
|
94
100
|
}
|
|
95
101
|
const retryExhausted = attempt === options.maxRetries;
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
source: REFINER_EVENT_SOURCE,
|
|
100
|
-
goalId: goal.goalId,
|
|
101
|
-
attempt,
|
|
102
|
-
maxRetries: options.maxRetries,
|
|
102
|
+
events.emit(retryExhausted ? "exhausted" : "skipped", retryExhausted ? REFINER_EVENT_COPY.exhausted.category : REFINER_EVENT_COPY.skipped.category, retryExhausted ? REFINER_EVENT_COPY.exhausted.message : REFINER_EVENT_COPY.skipped.message, {
|
|
103
|
+
phase: retryExhausted ? "exhausted" : "retry",
|
|
104
|
+
...attemptContext,
|
|
103
105
|
exitCode: result.exitCode,
|
|
104
|
-
...(retryExhausted ? REFINER_EVENT_COPY.exhausted : REFINER_EVENT_COPY.skipped),
|
|
105
106
|
...this.agentFailureProperties(result),
|
|
106
107
|
});
|
|
108
|
+
if (!retryExhausted) {
|
|
109
|
+
events.emit("processing", "retry", "retrying refinement", {
|
|
110
|
+
phase: "retry",
|
|
111
|
+
...attemptContext,
|
|
112
|
+
});
|
|
113
|
+
}
|
|
107
114
|
}
|
|
108
115
|
this.track(startedAt, { status: "exhausted", attempts: options.maxRetries, goalId: goal.goalId });
|
|
109
116
|
return { status: "exhausted", goalId: goal.goalId, attempts: options.maxRetries };
|
|
@@ -116,15 +123,16 @@ export class RefinerProcessManager {
|
|
|
116
123
|
.sort((a, b) => new Date(a.createdAt).getTime() - new Date(b.createdAt).getTime());
|
|
117
124
|
}
|
|
118
125
|
buildPrompt(goalId) {
|
|
119
|
-
return
|
|
126
|
+
return [
|
|
127
|
+
`Continue the Jumbo refinement workflow for goal ${goalId}.`,
|
|
128
|
+
"The daemon has already moved the goal into refinement.",
|
|
129
|
+
`Update the goal context as needed, then complete refinement with: jumbo goal commit --id ${goalId}`,
|
|
130
|
+
].join(" ");
|
|
120
131
|
}
|
|
121
132
|
async isGoalRefined(goalId) {
|
|
122
133
|
const goal = await this.goalReader.findById(goalId);
|
|
123
134
|
return goal?.status === GoalStatus.REFINED;
|
|
124
135
|
}
|
|
125
|
-
emit(options, event) {
|
|
126
|
-
options.emit?.(event);
|
|
127
|
-
}
|
|
128
136
|
track(startedAt, properties) {
|
|
129
137
|
this.telemetryClient.track("refiner_process_completed", {
|
|
130
138
|
daemon: "refiner",
|
|
@@ -132,6 +140,14 @@ export class RefinerProcessManager {
|
|
|
132
140
|
...properties,
|
|
133
141
|
});
|
|
134
142
|
}
|
|
143
|
+
emitReturnedAgentOutput(events, result, context) {
|
|
144
|
+
if (result.stdout !== undefined) {
|
|
145
|
+
events.emitAgentActivity("stdout", result.stdout, context);
|
|
146
|
+
}
|
|
147
|
+
if (result.stderr !== undefined) {
|
|
148
|
+
events.emitAgentActivity("stderr", result.stderr, context);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
135
151
|
errorProperties(error) {
|
|
136
152
|
if (error instanceof Error) {
|
|
137
153
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RefinerProcessManager.js","sourceRoot":"","sources":["../../../../../src/application/context/goals/refine/RefinerProcessManager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RefinerProcessManager.js","sourceRoot":"","sources":["../../../../../src/application/context/goals/refine/RefinerProcessManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,9 +20,8 @@ export declare class ReviewerProcessManager implements IProcessManager {
|
|
|
20
20
|
selectEligibleGoals(): Promise<GoalView[]>;
|
|
21
21
|
buildPrompt(goalId: string): string;
|
|
22
22
|
private isReviewComplete;
|
|
23
|
-
private emit;
|
|
24
|
-
private emitModelOutput;
|
|
25
23
|
private track;
|
|
24
|
+
private emitReturnedAgentOutput;
|
|
26
25
|
private errorProperties;
|
|
27
26
|
}
|
|
28
27
|
//# sourceMappingURL=ReviewerProcessManager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReviewerProcessManager.d.ts","sourceRoot":"","sources":["../../../../../src/application/context/goals/review/ReviewerProcessManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"ReviewerProcessManager.d.ts","sourceRoot":"","sources":["../../../../../src/application/context/goals/review/ReviewerProcessManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAEnH,OAAO,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AACvF,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAE1E,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAgC7E,qBAAa,sBAAuB,YAAW,eAAe;IAE1D,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,eAAe;gBANf,gBAAgB,EAAE,iBAAiB,EACnC,UAAU,EAAE,0BAA0B,EACtC,WAAW,EAAE,eAAe,EAC5B,oBAAoB,EAAE,qBAAqB,EAC3C,oBAAoB,EAAE,oBAAoB,EAC1C,YAAY,EAAE,aAAa,EAC3B,eAAe,EAAE,gBAAgB;IAG9C,WAAW,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAmF1E,mBAAmB,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAQhD,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;YASrB,gBAAgB;IAK9B,OAAO,CAAC,KAAK;IAQb,OAAO,CAAC,uBAAuB;IAa/B,OAAO,CAAC,eAAe;CAexB"}
|