@cluesmith/codev 2.0.2 → 2.0.6
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/dashboard/dist/assets/index-B-s8BA2l.js +135 -0
- package/dashboard/dist/assets/index-B-s8BA2l.js.map +1 -0
- package/dashboard/dist/assets/index-DB2AxRP7.css +32 -0
- package/dashboard/dist/index.html +2 -2
- package/dist/agent-farm/cli.d.ts.map +1 -1
- package/dist/agent-farm/cli.js +32 -14
- package/dist/agent-farm/cli.js.map +1 -1
- package/dist/agent-farm/commands/architect.d.ts +1 -1
- package/dist/agent-farm/commands/architect.js +3 -3
- package/dist/agent-farm/commands/architect.js.map +1 -1
- package/dist/agent-farm/commands/attach.d.ts +19 -0
- package/dist/agent-farm/commands/attach.d.ts.map +1 -1
- package/dist/agent-farm/commands/attach.js +172 -12
- package/dist/agent-farm/commands/attach.js.map +1 -1
- package/dist/agent-farm/commands/cleanup.js +6 -6
- package/dist/agent-farm/commands/cleanup.js.map +1 -1
- package/dist/agent-farm/commands/open.js +5 -5
- package/dist/agent-farm/commands/open.js.map +1 -1
- package/dist/agent-farm/commands/send.d.ts +22 -2
- package/dist/agent-farm/commands/send.d.ts.map +1 -1
- package/dist/agent-farm/commands/send.js +100 -181
- package/dist/agent-farm/commands/send.js.map +1 -1
- package/dist/agent-farm/commands/shell.js +5 -5
- package/dist/agent-farm/commands/shell.js.map +1 -1
- package/dist/agent-farm/commands/spawn-roles.d.ts +3 -9
- package/dist/agent-farm/commands/spawn-roles.d.ts.map +1 -1
- package/dist/agent-farm/commands/spawn-roles.js +14 -53
- package/dist/agent-farm/commands/spawn-roles.js.map +1 -1
- package/dist/agent-farm/commands/spawn-worktree.d.ts +11 -17
- package/dist/agent-farm/commands/spawn-worktree.d.ts.map +1 -1
- package/dist/agent-farm/commands/spawn-worktree.js +32 -13
- package/dist/agent-farm/commands/spawn-worktree.js.map +1 -1
- package/dist/agent-farm/commands/spawn.d.ts +8 -6
- package/dist/agent-farm/commands/spawn.d.ts.map +1 -1
- package/dist/agent-farm/commands/spawn.js +183 -69
- package/dist/agent-farm/commands/spawn.js.map +1 -1
- package/dist/agent-farm/commands/start.d.ts +4 -4
- package/dist/agent-farm/commands/start.js +16 -16
- package/dist/agent-farm/commands/start.js.map +1 -1
- package/dist/agent-farm/commands/status.d.ts +1 -1
- package/dist/agent-farm/commands/status.d.ts.map +1 -1
- package/dist/agent-farm/commands/status.js +15 -26
- package/dist/agent-farm/commands/status.js.map +1 -1
- package/dist/agent-farm/commands/stop.d.ts +4 -4
- package/dist/agent-farm/commands/stop.js +9 -9
- package/dist/agent-farm/commands/stop.js.map +1 -1
- package/dist/agent-farm/db/index.d.ts.map +1 -1
- package/dist/agent-farm/db/index.js +82 -7
- package/dist/agent-farm/db/index.js.map +1 -1
- package/dist/agent-farm/db/schema.d.ts +2 -2
- package/dist/agent-farm/db/schema.d.ts.map +1 -1
- package/dist/agent-farm/db/schema.js +21 -4
- package/dist/agent-farm/db/schema.js.map +1 -1
- package/dist/agent-farm/lib/tower-client.d.ts +36 -26
- package/dist/agent-farm/lib/tower-client.d.ts.map +1 -1
- package/dist/agent-farm/lib/tower-client.js +50 -25
- package/dist/agent-farm/lib/tower-client.js.map +1 -1
- package/dist/agent-farm/lib/tunnel-client.d.ts +12 -2
- package/dist/agent-farm/lib/tunnel-client.d.ts.map +1 -1
- package/dist/agent-farm/lib/tunnel-client.js +59 -1
- package/dist/agent-farm/lib/tunnel-client.js.map +1 -1
- package/dist/agent-farm/servers/overview.d.ts +111 -0
- package/dist/agent-farm/servers/overview.d.ts.map +1 -0
- package/dist/agent-farm/servers/overview.js +385 -0
- package/dist/agent-farm/servers/overview.js.map +1 -0
- package/dist/agent-farm/servers/tower-instances.d.ts +18 -20
- package/dist/agent-farm/servers/tower-instances.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-instances.js +97 -100
- package/dist/agent-farm/servers/tower-instances.js.map +1 -1
- package/dist/agent-farm/servers/tower-messages.d.ts +87 -0
- package/dist/agent-farm/servers/tower-messages.d.ts.map +1 -0
- package/dist/agent-farm/servers/tower-messages.js +202 -0
- package/dist/agent-farm/servers/tower-messages.js.map +1 -0
- package/dist/agent-farm/servers/tower-routes.d.ts +1 -1
- package/dist/agent-farm/servers/tower-routes.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-routes.js +343 -174
- package/dist/agent-farm/servers/tower-routes.js.map +1 -1
- package/dist/agent-farm/servers/tower-server.js +50 -21
- package/dist/agent-farm/servers/tower-server.js.map +1 -1
- package/dist/agent-farm/servers/tower-terminals.d.ts +35 -31
- package/dist/agent-farm/servers/tower-terminals.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-terminals.js +208 -184
- package/dist/agent-farm/servers/tower-terminals.js.map +1 -1
- package/dist/agent-farm/servers/tower-tunnel.d.ts +2 -2
- package/dist/agent-farm/servers/tower-tunnel.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-tunnel.js +12 -12
- package/dist/agent-farm/servers/tower-tunnel.js.map +1 -1
- package/dist/agent-farm/servers/tower-types.d.ts +8 -12
- package/dist/agent-farm/servers/tower-types.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-utils.d.ts +9 -9
- package/dist/agent-farm/servers/tower-utils.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-utils.js +18 -18
- package/dist/agent-farm/servers/tower-utils.js.map +1 -1
- package/dist/agent-farm/servers/tower-websocket.d.ts +2 -2
- package/dist/agent-farm/servers/tower-websocket.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-websocket.js +39 -18
- package/dist/agent-farm/servers/tower-websocket.js.map +1 -1
- package/dist/agent-farm/types.d.ts +5 -6
- package/dist/agent-farm/types.d.ts.map +1 -1
- package/dist/agent-farm/utils/agent-names.d.ts +85 -0
- package/dist/agent-farm/utils/agent-names.d.ts.map +1 -0
- package/dist/agent-farm/utils/agent-names.js +140 -0
- package/dist/agent-farm/utils/agent-names.js.map +1 -0
- package/dist/agent-farm/utils/config.d.ts +1 -1
- package/dist/agent-farm/utils/config.d.ts.map +1 -1
- package/dist/agent-farm/utils/config.js +16 -16
- package/dist/agent-farm/utils/config.js.map +1 -1
- package/dist/agent-farm/utils/file-tabs.d.ts +3 -3
- package/dist/agent-farm/utils/file-tabs.d.ts.map +1 -1
- package/dist/agent-farm/utils/file-tabs.js +9 -9
- package/dist/agent-farm/utils/file-tabs.js.map +1 -1
- package/dist/agent-farm/utils/index.d.ts +0 -1
- package/dist/agent-farm/utils/index.d.ts.map +1 -1
- package/dist/agent-farm/utils/index.js +0 -1
- package/dist/agent-farm/utils/index.js.map +1 -1
- package/dist/agent-farm/utils/message-format.d.ts +17 -0
- package/dist/agent-farm/utils/message-format.d.ts.map +1 -0
- package/dist/agent-farm/utils/message-format.js +41 -0
- package/dist/agent-farm/utils/message-format.js.map +1 -0
- package/dist/agent-farm/utils/notifications.d.ts +4 -4
- package/dist/agent-farm/utils/notifications.d.ts.map +1 -1
- package/dist/agent-farm/utils/notifications.js +18 -18
- package/dist/agent-farm/utils/notifications.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +26 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/adopt.d.ts +2 -2
- package/dist/commands/adopt.d.ts.map +1 -1
- package/dist/commands/adopt.js +13 -15
- package/dist/commands/adopt.js.map +1 -1
- package/dist/commands/consult/index.d.ts +26 -2
- package/dist/commands/consult/index.d.ts.map +1 -1
- package/dist/commands/consult/index.js +296 -83
- package/dist/commands/consult/index.js.map +1 -1
- package/dist/commands/consult/metrics.d.ts +90 -0
- package/dist/commands/consult/metrics.d.ts.map +1 -0
- package/dist/commands/consult/metrics.js +203 -0
- package/dist/commands/consult/metrics.js.map +1 -0
- package/dist/commands/consult/stats.d.ts +18 -0
- package/dist/commands/consult/stats.d.ts.map +1 -0
- package/dist/commands/consult/stats.js +150 -0
- package/dist/commands/consult/stats.js.map +1 -0
- package/dist/commands/consult/usage-extractor.d.ts +38 -0
- package/dist/commands/consult/usage-extractor.d.ts.map +1 -0
- package/dist/commands/consult/usage-extractor.js +99 -0
- package/dist/commands/consult/usage-extractor.js.map +1 -0
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +11 -9
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/import.js +4 -4
- package/dist/commands/import.js.map +1 -1
- package/dist/commands/init.d.ts +2 -2
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +13 -15
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/porch/index.d.ts +6 -6
- package/dist/commands/porch/index.d.ts.map +1 -1
- package/dist/commands/porch/index.js +37 -37
- package/dist/commands/porch/index.js.map +1 -1
- package/dist/commands/porch/next.d.ts +1 -1
- package/dist/commands/porch/next.d.ts.map +1 -1
- package/dist/commands/porch/next.js +86 -92
- package/dist/commands/porch/next.js.map +1 -1
- package/dist/commands/porch/notify.d.ts +11 -0
- package/dist/commands/porch/notify.d.ts.map +1 -0
- package/dist/commands/porch/notify.js +30 -0
- package/dist/commands/porch/notify.js.map +1 -0
- package/dist/commands/porch/plan.d.ts +1 -1
- package/dist/commands/porch/plan.d.ts.map +1 -1
- package/dist/commands/porch/plan.js +3 -3
- package/dist/commands/porch/plan.js.map +1 -1
- package/dist/commands/porch/prompts.d.ts +10 -1
- package/dist/commands/porch/prompts.d.ts.map +1 -1
- package/dist/commands/porch/prompts.js +59 -35
- package/dist/commands/porch/prompts.js.map +1 -1
- package/dist/commands/porch/protocol.d.ts +1 -1
- package/dist/commands/porch/protocol.d.ts.map +1 -1
- package/dist/commands/porch/protocol.js +8 -8
- package/dist/commands/porch/protocol.js.map +1 -1
- package/dist/commands/porch/state.d.ts +6 -6
- package/dist/commands/porch/state.d.ts.map +1 -1
- package/dist/commands/porch/state.js +14 -12
- package/dist/commands/porch/state.js.map +1 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +10 -11
- package/dist/commands/update.js.map +1 -1
- package/dist/lib/github.d.ts +81 -0
- package/dist/lib/github.d.ts.map +1 -0
- package/dist/lib/github.js +141 -0
- package/dist/lib/github.js.map +1 -0
- package/dist/lib/scaffold.d.ts +13 -21
- package/dist/lib/scaffold.d.ts.map +1 -1
- package/dist/lib/scaffold.js +34 -57
- package/dist/lib/scaffold.js.map +1 -1
- package/dist/lib/skeleton.d.ts +7 -7
- package/dist/lib/skeleton.d.ts.map +1 -1
- package/dist/lib/skeleton.js +10 -10
- package/dist/lib/skeleton.js.map +1 -1
- package/dist/terminal/index.d.ts +14 -0
- package/dist/terminal/index.d.ts.map +1 -1
- package/dist/terminal/index.js +12 -0
- package/dist/terminal/index.js.map +1 -1
- package/dist/terminal/pty-manager.d.ts +1 -1
- package/dist/terminal/pty-manager.d.ts.map +1 -1
- package/dist/terminal/pty-manager.js +10 -7
- package/dist/terminal/pty-manager.js.map +1 -1
- package/dist/terminal/pty-session.js +3 -3
- package/dist/terminal/pty-session.js.map +1 -1
- package/dist/terminal/session-manager.d.ts +64 -0
- package/dist/terminal/session-manager.d.ts.map +1 -1
- package/dist/terminal/session-manager.js +299 -10
- package/dist/terminal/session-manager.js.map +1 -1
- package/dist/terminal/shellper-client.d.ts +2 -1
- package/dist/terminal/shellper-client.d.ts.map +1 -1
- package/dist/terminal/shellper-client.js +4 -2
- package/dist/terminal/shellper-client.js.map +1 -1
- package/dist/terminal/shellper-main.js +33 -4
- package/dist/terminal/shellper-main.js.map +1 -1
- package/dist/terminal/shellper-process.d.ts +24 -7
- package/dist/terminal/shellper-process.d.ts.map +1 -1
- package/dist/terminal/shellper-process.js +139 -36
- package/dist/terminal/shellper-process.js.map +1 -1
- package/dist/terminal/shellper-protocol.d.ts +1 -0
- package/dist/terminal/shellper-protocol.d.ts.map +1 -1
- package/dist/terminal/shellper-protocol.js.map +1 -1
- package/package.json +4 -1
- package/skeleton/.claude/skills/af/SKILL.md +7 -7
- package/skeleton/.claude/skills/consult/SKILL.md +1 -1
- package/skeleton/builders.md +2 -2
- package/skeleton/maintain/.gitkeep +1 -1
- package/skeleton/porch/prompts/specify.md +1 -1
- package/skeleton/protocols/bugfix/prompts/pr.md +15 -4
- package/skeleton/protocols/experiment/protocol.md +17 -17
- package/skeleton/protocols/maintain/prompts/audit.md +2 -2
- package/skeleton/protocols/maintain/prompts/sync.md +1 -1
- package/skeleton/protocols/maintain/prompts/verify.md +1 -1
- package/skeleton/protocols/maintain/protocol.md +8 -9
- package/skeleton/protocols/maintain/templates/maintenance-run.md +2 -2
- package/skeleton/protocols/spir/protocol.json +5 -5
- package/skeleton/protocols/spir/protocol.md +8 -8
- package/skeleton/protocols/tick/protocol.md +31 -31
- package/skeleton/resources/commands/agent-farm.md +14 -14
- package/skeleton/resources/commands/codev.md +0 -1
- package/skeleton/resources/commands/consult.md +3 -3
- package/skeleton/resources/spikes.md +3 -3
- package/skeleton/resources/workflow-reference.md +14 -14
- package/skeleton/roles/architect.md +25 -25
- package/skeleton/roles/builder.md +1 -1
- package/skeleton/roles/consultant.md +6 -0
- package/skeleton/templates/AGENTS.md +5 -5
- package/skeleton/templates/CLAUDE.md +5 -5
- package/skeleton/templates/lifecycle.md +9 -9
- package/templates/open.html +19 -16
- package/templates/tower.html +54 -94
- package/templates/vendor/marked.min.js +6 -0
- package/templates/vendor/prism-bash.min.js +1 -0
- package/templates/vendor/prism-css.min.js +1 -0
- package/templates/vendor/prism-javascript.min.js +1 -0
- package/templates/vendor/prism-json.min.js +1 -0
- package/templates/vendor/prism-markdown.min.js +1 -0
- package/templates/vendor/prism-markup.min.js +1 -0
- package/templates/vendor/prism-python.min.js +1 -0
- package/templates/vendor/prism-tomorrow.min.css +1 -0
- package/templates/vendor/prism-typescript.min.js +1 -0
- package/templates/vendor/prism-yaml.min.js +1 -0
- package/templates/vendor/prism.min.js +1 -0
- package/templates/vendor/purify.min.js +3 -0
- package/dashboard/dist/assets/index-4n9zpWLY.css +0 -32
- package/dashboard/dist/assets/index-b38SaXk5.js +0 -136
- package/dashboard/dist/assets/index-b38SaXk5.js.map +0 -1
- package/dist/agent-farm/hq-connector.d.ts +0 -19
- package/dist/agent-farm/hq-connector.d.ts.map +0 -1
- package/dist/agent-farm/hq-connector.js +0 -351
- package/dist/agent-farm/hq-connector.js.map +0 -1
- package/dist/agent-farm/utils/deps.d.ts +0 -51
- package/dist/agent-farm/utils/deps.d.ts.map +0 -1
- package/dist/agent-farm/utils/deps.js +0 -162
- package/dist/agent-farm/utils/deps.js.map +0 -1
- package/dist/agent-farm/utils/gate-status.d.ts +0 -16
- package/dist/agent-farm/utils/gate-status.d.ts.map +0 -1
- package/dist/agent-farm/utils/gate-status.js +0 -79
- package/dist/agent-farm/utils/gate-status.js.map +0 -1
- package/dist/agent-farm/utils/gate-watcher.d.ts +0 -38
- package/dist/agent-farm/utils/gate-watcher.d.ts.map +0 -1
- package/dist/agent-farm/utils/gate-watcher.js +0 -122
- package/dist/agent-farm/utils/gate-watcher.js.map +0 -1
- package/dist/agent-farm/utils/session.d.ts +0 -32
- package/dist/agent-farm/utils/session.d.ts.map +0 -1
- package/dist/agent-farm/utils/session.js +0 -57
- package/dist/agent-farm/utils/session.js.map +0 -1
- package/dist/lib/projectlist-parser.d.ts +0 -70
- package/dist/lib/projectlist-parser.d.ts.map +0 -1
- package/dist/lib/projectlist-parser.js +0 -200
- package/dist/lib/projectlist-parser.js.map +0 -1
- package/skeleton/templates/projectlist-archive.md +0 -21
- package/skeleton/templates/projectlist.md +0 -147
- package/templates/dashboard/css/dialogs.css +0 -149
- package/templates/dashboard/css/files.css +0 -558
- package/templates/dashboard/css/layout.css +0 -133
- package/templates/dashboard/css/projects.css +0 -501
- package/templates/dashboard/css/statusbar.css +0 -23
- package/templates/dashboard/css/tabs.css +0 -314
- package/templates/dashboard/css/utilities.css +0 -50
- package/templates/dashboard/css/variables.css +0 -45
- package/templates/dashboard/index.html +0 -149
- package/templates/dashboard/js/dialogs.js +0 -368
- package/templates/dashboard/js/files.js +0 -448
- package/templates/dashboard/js/main.js +0 -476
- package/templates/dashboard/js/projects.js +0 -544
- package/templates/dashboard/js/state.js +0 -91
- package/templates/dashboard/js/tabs.js +0 -518
- package/templates/dashboard/js/utils.js +0 -191
|
@@ -0,0 +1,385 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Overview endpoint for Tower dashboard Work view.
|
|
3
|
+
* Spec 0126: Project Management Rework — Phase 4
|
|
4
|
+
*
|
|
5
|
+
* Aggregates builder state, cached PR list, and cached issue backlog
|
|
6
|
+
* into a single JSON response for the dashboard. Supports degraded
|
|
7
|
+
* mode when the `gh` CLI is unavailable.
|
|
8
|
+
*/
|
|
9
|
+
import fs from 'node:fs';
|
|
10
|
+
import path from 'node:path';
|
|
11
|
+
import { fetchPRList, fetchIssueList, parseLinkedIssue, parseLabelDefaults, } from '../../lib/github.js';
|
|
12
|
+
/**
|
|
13
|
+
* Parse a porch status.yaml file into structured data.
|
|
14
|
+
* Uses line-based parsing (same pattern as gate-status.ts).
|
|
15
|
+
*/
|
|
16
|
+
export function parseStatusYaml(content) {
|
|
17
|
+
const result = {
|
|
18
|
+
id: '',
|
|
19
|
+
title: '',
|
|
20
|
+
protocol: '',
|
|
21
|
+
phase: '',
|
|
22
|
+
currentPlanPhase: '',
|
|
23
|
+
gates: {},
|
|
24
|
+
};
|
|
25
|
+
const lines = content.split('\n');
|
|
26
|
+
let inGates = false;
|
|
27
|
+
let currentGate = '';
|
|
28
|
+
for (const line of lines) {
|
|
29
|
+
// Top-level scalar fields
|
|
30
|
+
const idMatch = line.match(/^id:\s*'?(\S+?)'?\s*$/);
|
|
31
|
+
if (idMatch) {
|
|
32
|
+
result.id = idMatch[1];
|
|
33
|
+
continue;
|
|
34
|
+
}
|
|
35
|
+
const titleMatch = line.match(/^title:\s*(\S.*?)\s*$/);
|
|
36
|
+
if (titleMatch) {
|
|
37
|
+
result.title = titleMatch[1];
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
40
|
+
const protocolMatch = line.match(/^protocol:\s*(\S+)/);
|
|
41
|
+
if (protocolMatch) {
|
|
42
|
+
result.protocol = protocolMatch[1];
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
const phaseMatch = line.match(/^phase:\s*(\S+)/);
|
|
46
|
+
if (phaseMatch) {
|
|
47
|
+
result.phase = phaseMatch[1];
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
const planPhaseMatch = line.match(/^current_plan_phase:\s*(\S+)/);
|
|
51
|
+
if (planPhaseMatch) {
|
|
52
|
+
result.currentPlanPhase = planPhaseMatch[1];
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
// Gates section
|
|
56
|
+
if (/^gates:\s*$/.test(line)) {
|
|
57
|
+
inGates = true;
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
// Stop gates section at next top-level key
|
|
61
|
+
if (inGates && /^\S/.test(line) && line.trim() !== '') {
|
|
62
|
+
inGates = false;
|
|
63
|
+
}
|
|
64
|
+
if (inGates) {
|
|
65
|
+
const gateNameMatch = line.match(/^\s{2}(\S+):\s*$/);
|
|
66
|
+
if (gateNameMatch) {
|
|
67
|
+
currentGate = gateNameMatch[1];
|
|
68
|
+
continue;
|
|
69
|
+
}
|
|
70
|
+
const statusMatch = line.match(/^\s{4}status:\s*(\S+)/);
|
|
71
|
+
if (statusMatch && currentGate) {
|
|
72
|
+
result.gates[currentGate] = statusMatch[1];
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return result;
|
|
77
|
+
}
|
|
78
|
+
// =============================================================================
|
|
79
|
+
// Builder discovery
|
|
80
|
+
// =============================================================================
|
|
81
|
+
/**
|
|
82
|
+
* Map a worktree directory name to its expected terminal role_id.
|
|
83
|
+
* Must match what buildAgentName() produces during spawn so we can
|
|
84
|
+
* cross-reference worktrees against active terminal sessions.
|
|
85
|
+
*
|
|
86
|
+
* All values are lowercased to match buildAgentName() convention.
|
|
87
|
+
*
|
|
88
|
+
* Examples:
|
|
89
|
+
* spir-126-slug → "builder-spir-126"
|
|
90
|
+
* tick-130-slug → "builder-tick-130"
|
|
91
|
+
* bugfix-296-slug → "builder-bugfix-296"
|
|
92
|
+
* task-NAvW → "builder-task-navw"
|
|
93
|
+
* worktree-foIg → "worktree-foig"
|
|
94
|
+
* 0110-legacy → "builder-spir-110"
|
|
95
|
+
* experiment-AbCd → "builder-experiment-abcd"
|
|
96
|
+
*/
|
|
97
|
+
export function worktreeNameToRoleId(dirName) {
|
|
98
|
+
const lower = dirName.toLowerCase();
|
|
99
|
+
// SPIR: spir-126-slug → builder-spir-126
|
|
100
|
+
const spirMatch = lower.match(/^spir-(\d+)/);
|
|
101
|
+
if (spirMatch)
|
|
102
|
+
return `builder-spir-${Number(spirMatch[1])}`;
|
|
103
|
+
// TICK: tick-130-slug → builder-tick-130
|
|
104
|
+
const tickMatch = lower.match(/^tick-(\d+)/);
|
|
105
|
+
if (tickMatch)
|
|
106
|
+
return `builder-tick-${Number(tickMatch[1])}`;
|
|
107
|
+
// Bugfix: bugfix-296-slug → builder-bugfix-296
|
|
108
|
+
const bugfixMatch = lower.match(/^bugfix-(\d+)/);
|
|
109
|
+
if (bugfixMatch)
|
|
110
|
+
return `builder-bugfix-${Number(bugfixMatch[1])}`;
|
|
111
|
+
// Task: task-NAvW → builder-task-navw
|
|
112
|
+
const taskMatch = lower.match(/^task-([a-z0-9]+)/);
|
|
113
|
+
if (taskMatch)
|
|
114
|
+
return `builder-task-${taskMatch[1]}`;
|
|
115
|
+
// Worktree: worktree-foIg → worktree-foig (no builder- prefix)
|
|
116
|
+
const worktreeMatch = lower.match(/^worktree-([a-z0-9]+)/);
|
|
117
|
+
if (worktreeMatch)
|
|
118
|
+
return `worktree-${worktreeMatch[1]}`;
|
|
119
|
+
// Legacy numeric: 0110-slug → builder-spir-110 (assume spir)
|
|
120
|
+
const numericMatch = lower.match(/^(\d+)(?:-|$)/);
|
|
121
|
+
if (numericMatch)
|
|
122
|
+
return `builder-spir-${Number(numericMatch[1])}`;
|
|
123
|
+
// Generic protocol: experiment-AbCd → builder-experiment-abcd
|
|
124
|
+
const genericMatch = lower.match(/^([a-z]+)-([a-z0-9]+)/);
|
|
125
|
+
if (genericMatch)
|
|
126
|
+
return `builder-${genericMatch[1]}-${genericMatch[2]}`;
|
|
127
|
+
return null;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Extract project ID from a worktree directory name.
|
|
131
|
+
* Used to match worktrees to their correct codev/projects/{ID}-* directory.
|
|
132
|
+
*
|
|
133
|
+
* Returns the project dir prefix (to match `{ID}-*`) or null for soft-mode builders.
|
|
134
|
+
*/
|
|
135
|
+
export function extractProjectIdFromWorktreeName(dirName) {
|
|
136
|
+
// SPIR: spir-126-slug → "0126" (zero-padded)
|
|
137
|
+
const spirMatch = dirName.match(/^spir-(\d+)/);
|
|
138
|
+
if (spirMatch)
|
|
139
|
+
return spirMatch[1].padStart(4, '0');
|
|
140
|
+
// TICK: tick-130-slug → "0130" (zero-padded)
|
|
141
|
+
const tickMatch = dirName.match(/^tick-(\d+)/);
|
|
142
|
+
if (tickMatch)
|
|
143
|
+
return tickMatch[1].padStart(4, '0');
|
|
144
|
+
// Bugfix: bugfix-296-slug → "builder-bugfix-296"
|
|
145
|
+
// Porch project dirs are created via buildAgentName('bugfix', N) → "builder-bugfix-N"
|
|
146
|
+
const bugfixMatch = dirName.match(/^bugfix-(\d+)/);
|
|
147
|
+
if (bugfixMatch)
|
|
148
|
+
return `builder-bugfix-${bugfixMatch[1]}`;
|
|
149
|
+
// Legacy numeric: 0110 or 0110-slug → "0110"
|
|
150
|
+
const numericMatch = dirName.match(/^(\d+)(?:-|$)/);
|
|
151
|
+
if (numericMatch)
|
|
152
|
+
return numericMatch[1].padStart(4, '0');
|
|
153
|
+
// task-NAvW, worktree-foIg → null (soft mode)
|
|
154
|
+
return null;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Discover builders by scanning .builders/ directory and reading status.yaml.
|
|
158
|
+
*/
|
|
159
|
+
export function discoverBuilders(workspaceRoot) {
|
|
160
|
+
const buildersDir = path.join(workspaceRoot, '.builders');
|
|
161
|
+
if (!fs.existsSync(buildersDir))
|
|
162
|
+
return [];
|
|
163
|
+
const builders = [];
|
|
164
|
+
let entries;
|
|
165
|
+
try {
|
|
166
|
+
entries = fs.readdirSync(buildersDir, { withFileTypes: true });
|
|
167
|
+
}
|
|
168
|
+
catch {
|
|
169
|
+
return [];
|
|
170
|
+
}
|
|
171
|
+
for (const entry of entries) {
|
|
172
|
+
if (!entry.isDirectory())
|
|
173
|
+
continue;
|
|
174
|
+
const worktreePath = path.join(buildersDir, entry.name);
|
|
175
|
+
const projectId = extractProjectIdFromWorktreeName(entry.name);
|
|
176
|
+
if (!projectId) {
|
|
177
|
+
// No ID extracted (task-*, worktree-*) → soft mode
|
|
178
|
+
builders.push({
|
|
179
|
+
id: entry.name,
|
|
180
|
+
issueNumber: null,
|
|
181
|
+
issueTitle: null,
|
|
182
|
+
phase: '',
|
|
183
|
+
mode: 'soft',
|
|
184
|
+
gates: {},
|
|
185
|
+
worktreePath,
|
|
186
|
+
});
|
|
187
|
+
continue;
|
|
188
|
+
}
|
|
189
|
+
const projectsDir = path.join(worktreePath, 'codev', 'projects');
|
|
190
|
+
// Try to find matching status.yaml by project ID prefix
|
|
191
|
+
let found = false;
|
|
192
|
+
if (fs.existsSync(projectsDir)) {
|
|
193
|
+
try {
|
|
194
|
+
const projectEntries = fs.readdirSync(projectsDir, { withFileTypes: true });
|
|
195
|
+
for (const projEntry of projectEntries) {
|
|
196
|
+
if (!projEntry.isDirectory())
|
|
197
|
+
continue;
|
|
198
|
+
if (!projEntry.name.startsWith(`${projectId}-`))
|
|
199
|
+
continue;
|
|
200
|
+
const statusFile = path.join(projectsDir, projEntry.name, 'status.yaml');
|
|
201
|
+
if (!fs.existsSync(statusFile))
|
|
202
|
+
continue;
|
|
203
|
+
const content = fs.readFileSync(statusFile, 'utf-8');
|
|
204
|
+
const parsed = parseStatusYaml(content);
|
|
205
|
+
let issueNumber = parsed.id ? parseInt(parsed.id, 10) : null;
|
|
206
|
+
if (issueNumber !== null && Number.isNaN(issueNumber)) {
|
|
207
|
+
// Bugfix-style IDs like "builder-bugfix-315" — extract trailing number
|
|
208
|
+
const trailingNum = parsed.id.match(/(\d+)$/);
|
|
209
|
+
issueNumber = trailingNum ? parseInt(trailingNum[1], 10) : null;
|
|
210
|
+
}
|
|
211
|
+
builders.push({
|
|
212
|
+
id: parsed.id || entry.name,
|
|
213
|
+
issueNumber: Number.isNaN(issueNumber) ? null : issueNumber,
|
|
214
|
+
issueTitle: parsed.title || null,
|
|
215
|
+
phase: parsed.currentPlanPhase || parsed.phase,
|
|
216
|
+
mode: 'strict',
|
|
217
|
+
gates: parsed.gates,
|
|
218
|
+
worktreePath,
|
|
219
|
+
});
|
|
220
|
+
found = true;
|
|
221
|
+
break;
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
catch {
|
|
225
|
+
// Skip unreadable project dirs
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
if (!found) {
|
|
229
|
+
// No matching project dir → soft mode, but extract issue number from dir name
|
|
230
|
+
const numMatch = projectId.match(/(\d+)$/);
|
|
231
|
+
const issueNumber = numMatch ? parseInt(numMatch[1], 10) : null;
|
|
232
|
+
builders.push({
|
|
233
|
+
id: entry.name,
|
|
234
|
+
issueNumber: Number.isNaN(issueNumber) ? null : issueNumber,
|
|
235
|
+
issueTitle: null,
|
|
236
|
+
phase: '',
|
|
237
|
+
mode: 'soft',
|
|
238
|
+
gates: {},
|
|
239
|
+
worktreePath,
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
return builders;
|
|
244
|
+
}
|
|
245
|
+
// =============================================================================
|
|
246
|
+
// Backlog derivation
|
|
247
|
+
// =============================================================================
|
|
248
|
+
/**
|
|
249
|
+
* Derive backlog from open GitHub issues cross-referenced with specs and builders.
|
|
250
|
+
*/
|
|
251
|
+
export function deriveBacklog(issues, workspaceRoot, activeBuilderIssues, prLinkedIssues) {
|
|
252
|
+
const specsDir = path.join(workspaceRoot, 'codev', 'specs');
|
|
253
|
+
const specNumbers = new Set();
|
|
254
|
+
if (fs.existsSync(specsDir)) {
|
|
255
|
+
try {
|
|
256
|
+
const files = fs.readdirSync(specsDir);
|
|
257
|
+
for (const file of files) {
|
|
258
|
+
if (!file.endsWith('.md'))
|
|
259
|
+
continue;
|
|
260
|
+
const numStr = file.split('-')[0];
|
|
261
|
+
const num = parseInt(numStr, 10);
|
|
262
|
+
if (!Number.isNaN(num))
|
|
263
|
+
specNumbers.add(num);
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
catch {
|
|
267
|
+
// Silently continue
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
return issues
|
|
271
|
+
.filter(issue => !prLinkedIssues.has(issue.number))
|
|
272
|
+
.map(issue => {
|
|
273
|
+
const { type, priority } = parseLabelDefaults(issue.labels);
|
|
274
|
+
return {
|
|
275
|
+
number: issue.number,
|
|
276
|
+
title: issue.title,
|
|
277
|
+
type,
|
|
278
|
+
priority,
|
|
279
|
+
hasSpec: specNumbers.has(issue.number),
|
|
280
|
+
hasBuilder: activeBuilderIssues.has(issue.number),
|
|
281
|
+
createdAt: issue.createdAt,
|
|
282
|
+
};
|
|
283
|
+
});
|
|
284
|
+
}
|
|
285
|
+
// =============================================================================
|
|
286
|
+
// OverviewCache
|
|
287
|
+
// =============================================================================
|
|
288
|
+
export class OverviewCache {
|
|
289
|
+
prCache = null;
|
|
290
|
+
issueCache = null;
|
|
291
|
+
lastWorkspaceRoot = null;
|
|
292
|
+
TTL = 60_000;
|
|
293
|
+
/**
|
|
294
|
+
* Build the overview response. Aggregates builder state, PRs, and backlog.
|
|
295
|
+
*
|
|
296
|
+
* @param activeBuilderRoleIds - Set of lowercased role_ids for builders with
|
|
297
|
+
* live terminal sessions. When provided, only worktrees matching an active
|
|
298
|
+
* session are included. When omitted, all discovered worktrees are returned
|
|
299
|
+
* (backward-compatible / unit-test friendly).
|
|
300
|
+
*/
|
|
301
|
+
async getOverview(workspaceRoot, activeBuilderRoleIds) {
|
|
302
|
+
// Invalidate cache when workspace changes (prevents cross-workspace stale data)
|
|
303
|
+
if (this.lastWorkspaceRoot !== null && this.lastWorkspaceRoot !== workspaceRoot) {
|
|
304
|
+
this.invalidate();
|
|
305
|
+
}
|
|
306
|
+
this.lastWorkspaceRoot = workspaceRoot;
|
|
307
|
+
const errors = {};
|
|
308
|
+
// 1. Discover builders from .builders/ directory, then filter to live sessions
|
|
309
|
+
let builders = discoverBuilders(workspaceRoot);
|
|
310
|
+
if (activeBuilderRoleIds) {
|
|
311
|
+
builders = builders.filter(b => {
|
|
312
|
+
const roleId = worktreeNameToRoleId(path.basename(b.worktreePath));
|
|
313
|
+
return roleId !== null && activeBuilderRoleIds.has(roleId);
|
|
314
|
+
});
|
|
315
|
+
}
|
|
316
|
+
const activeBuilderIssues = new Set(builders
|
|
317
|
+
.map(b => b.issueNumber)
|
|
318
|
+
.filter((n) => n !== null));
|
|
319
|
+
// 2. Fetch PRs (cached, scoped to workspace)
|
|
320
|
+
let pendingPRs = [];
|
|
321
|
+
const prs = await this.fetchPRsCached(workspaceRoot);
|
|
322
|
+
if (prs === null) {
|
|
323
|
+
errors.prs = 'GitHub CLI unavailable — could not fetch PRs';
|
|
324
|
+
}
|
|
325
|
+
else {
|
|
326
|
+
pendingPRs = prs.map(pr => ({
|
|
327
|
+
number: pr.number,
|
|
328
|
+
title: pr.title,
|
|
329
|
+
reviewStatus: pr.reviewDecision || 'REVIEW_REQUIRED',
|
|
330
|
+
linkedIssue: parseLinkedIssue(pr.body || '', pr.title),
|
|
331
|
+
createdAt: pr.createdAt,
|
|
332
|
+
}));
|
|
333
|
+
}
|
|
334
|
+
const prLinkedIssues = new Set(pendingPRs
|
|
335
|
+
.map(pr => pr.linkedIssue)
|
|
336
|
+
.filter((n) => n !== null));
|
|
337
|
+
// 3. Fetch issues and derive backlog (cached, scoped to workspace)
|
|
338
|
+
let backlog = [];
|
|
339
|
+
const issues = await this.fetchIssuesCached(workspaceRoot);
|
|
340
|
+
if (issues === null) {
|
|
341
|
+
errors.issues = 'GitHub CLI unavailable — could not fetch issues';
|
|
342
|
+
}
|
|
343
|
+
else {
|
|
344
|
+
backlog = deriveBacklog(issues, workspaceRoot, activeBuilderIssues, prLinkedIssues);
|
|
345
|
+
}
|
|
346
|
+
const result = { builders, pendingPRs, backlog };
|
|
347
|
+
if (Object.keys(errors).length > 0) {
|
|
348
|
+
result.errors = errors;
|
|
349
|
+
}
|
|
350
|
+
return result;
|
|
351
|
+
}
|
|
352
|
+
/**
|
|
353
|
+
* Invalidate all cached data.
|
|
354
|
+
*/
|
|
355
|
+
invalidate() {
|
|
356
|
+
this.prCache = null;
|
|
357
|
+
this.issueCache = null;
|
|
358
|
+
}
|
|
359
|
+
// ===========================================================================
|
|
360
|
+
// Private cache helpers
|
|
361
|
+
// ===========================================================================
|
|
362
|
+
async fetchPRsCached(cwd) {
|
|
363
|
+
const now = Date.now();
|
|
364
|
+
if (this.prCache && (now - this.prCache.fetchedAt) < this.TTL) {
|
|
365
|
+
return this.prCache.data;
|
|
366
|
+
}
|
|
367
|
+
const data = await fetchPRList(cwd);
|
|
368
|
+
if (data !== null) {
|
|
369
|
+
this.prCache = { data, fetchedAt: now };
|
|
370
|
+
}
|
|
371
|
+
return data;
|
|
372
|
+
}
|
|
373
|
+
async fetchIssuesCached(cwd) {
|
|
374
|
+
const now = Date.now();
|
|
375
|
+
if (this.issueCache && (now - this.issueCache.fetchedAt) < this.TTL) {
|
|
376
|
+
return this.issueCache.data;
|
|
377
|
+
}
|
|
378
|
+
const data = await fetchIssueList(cwd);
|
|
379
|
+
if (data !== null) {
|
|
380
|
+
this.issueCache = { data, fetchedAt: now };
|
|
381
|
+
}
|
|
382
|
+
return data;
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
//# sourceMappingURL=overview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"overview.js","sourceRoot":"","sources":["../../../src/agent-farm/servers/overview.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,32 +1,30 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Workspace instance lifecycle for tower server.
|
|
3
3
|
* Spec 0105: Tower Server Decomposition — Phase 3
|
|
4
4
|
*
|
|
5
5
|
* Contains: instance discovery (getInstances), launch/stop lifecycle,
|
|
6
|
-
* known
|
|
6
|
+
* known workspace registration, and directory suggestion autocomplete.
|
|
7
7
|
*/
|
|
8
|
-
import type { GateStatus } from '../utils/gate-status.js';
|
|
9
8
|
import type { TerminalManager } from '../../terminal/pty-manager.js';
|
|
10
9
|
import type { SessionManager } from '../../terminal/session-manager.js';
|
|
11
|
-
import type {
|
|
10
|
+
import type { WorkspaceTerminals, TerminalEntry, InstanceStatus } from './tower-types.js';
|
|
12
11
|
/** Dependencies injected by the orchestrator (tower-server.ts) */
|
|
13
12
|
export interface InstanceDeps {
|
|
14
13
|
log: (level: 'INFO' | 'ERROR' | 'WARN', msg: string) => void;
|
|
15
|
-
|
|
14
|
+
workspaceTerminals: Map<string, WorkspaceTerminals>;
|
|
16
15
|
getTerminalManager: () => TerminalManager;
|
|
17
16
|
shellperManager: SessionManager | null;
|
|
18
|
-
/** Get or create a
|
|
19
|
-
|
|
17
|
+
/** Get or create a workspace's terminal registry entry */
|
|
18
|
+
getWorkspaceTerminalsEntry: (workspacePath: string) => WorkspaceTerminals;
|
|
20
19
|
/** Persist a terminal session row to SQLite */
|
|
21
|
-
saveTerminalSession: (id: string,
|
|
20
|
+
saveTerminalSession: (id: string, workspacePath: string, type: 'architect' | 'builder' | 'shell', roleId: string | null, pid: number | null, shellperSocket?: string | null, shellperPid?: number | null, shellperStartTime?: number | null) => void;
|
|
22
21
|
/** Delete a terminal session row from SQLite */
|
|
23
22
|
deleteTerminalSession: (id: string) => void;
|
|
24
|
-
/** Delete all terminal session rows for a
|
|
25
|
-
|
|
26
|
-
/** Get terminal list
|
|
27
|
-
|
|
23
|
+
/** Delete all terminal session rows for a workspace */
|
|
24
|
+
deleteWorkspaceTerminalSessions: (workspacePath: string) => void;
|
|
25
|
+
/** Get terminal list for a workspace */
|
|
26
|
+
getTerminalsForWorkspace: (workspacePath: string, proxyUrl: string) => Promise<{
|
|
28
27
|
terminals: TerminalEntry[];
|
|
29
|
-
gateStatus: GateStatus;
|
|
30
28
|
}>;
|
|
31
29
|
}
|
|
32
30
|
/** Initialize the instances module with dependencies. */
|
|
@@ -34,14 +32,14 @@ export declare function initInstances(deps: InstanceDeps): void;
|
|
|
34
32
|
/** Tear down the instances module. */
|
|
35
33
|
export declare function shutdownInstances(): void;
|
|
36
34
|
/**
|
|
37
|
-
* Register a
|
|
35
|
+
* Register a workspace in the known_workspaces table so it persists across restarts
|
|
38
36
|
* even when all terminal sessions are gone.
|
|
39
37
|
*/
|
|
40
|
-
export declare function
|
|
38
|
+
export declare function registerKnownWorkspace(workspacePath: string): void;
|
|
41
39
|
/**
|
|
42
|
-
* Get all known
|
|
40
|
+
* Get all known workspace paths from known_workspaces, terminal_sessions, and in-memory cache.
|
|
43
41
|
*/
|
|
44
|
-
export declare function
|
|
42
|
+
export declare function getKnownWorkspacePaths(): string[];
|
|
45
43
|
/**
|
|
46
44
|
* Get all instances with their status.
|
|
47
45
|
*/
|
|
@@ -51,14 +49,14 @@ export declare function getInstances(): Promise<InstanceStatus[]>;
|
|
|
51
49
|
*/
|
|
52
50
|
export declare function getDirectorySuggestions(inputPath: string): Promise<{
|
|
53
51
|
path: string;
|
|
54
|
-
|
|
52
|
+
isWorkspace: boolean;
|
|
55
53
|
}[]>;
|
|
56
54
|
/**
|
|
57
55
|
* Launch a new agent-farm instance.
|
|
58
56
|
* Phase 4 (Spec 0090): Tower manages terminals directly, no dashboard-server.
|
|
59
57
|
* Auto-adopts non-codev directories and creates architect terminal.
|
|
60
58
|
*/
|
|
61
|
-
export declare function launchInstance(
|
|
59
|
+
export declare function launchInstance(workspacePath: string): Promise<{
|
|
62
60
|
success: boolean;
|
|
63
61
|
error?: string;
|
|
64
62
|
adopted?: boolean;
|
|
@@ -74,7 +72,7 @@ export declare function killTerminalWithShellper(manager: TerminalManager, termi
|
|
|
74
72
|
* Stop an agent-farm instance by killing all its terminals.
|
|
75
73
|
* Phase 4 (Spec 0090): Tower manages terminals directly.
|
|
76
74
|
*/
|
|
77
|
-
export declare function stopInstance(
|
|
75
|
+
export declare function stopInstance(workspacePath: string): Promise<{
|
|
78
76
|
success: boolean;
|
|
79
77
|
error?: string;
|
|
80
78
|
stopped: number[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tower-instances.d.ts","sourceRoot":"","sources":["../../../src/agent-farm/servers/tower-instances.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"tower-instances.d.ts","sourceRoot":"","sources":["../../../src/agent-farm/servers/tower-instances.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAWH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAExE,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAY1F,kEAAkE;AAClE,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7D,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IACpD,kBAAkB,EAAE,MAAM,eAAe,CAAC;IAC1C,eAAe,EAAE,cAAc,GAAG,IAAI,CAAC;IACvC,0DAA0D;IAC1D,0BAA0B,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,kBAAkB,CAAC;IAC1E,+CAA+C;IAC/C,mBAAmB,EAAE,CACnB,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,SAAS,GAAG,OAAO,EAC1E,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,EACzC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,KAC3F,IAAI,CAAC;IACV,gDAAgD;IAChD,qBAAqB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,uDAAuD;IACvD,+BAA+B,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC;IACjE,wCAAwC;IACxC,wBAAwB,EAAE,CACxB,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KACpC,OAAO,CAAC;QAAE,SAAS,EAAE,aAAa,EAAE,CAAA;KAAE,CAAC,CAAC;CAC9C;AAYD,yDAAyD;AACzD,wBAAgB,aAAa,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,CAEtD;AAED,sCAAsC;AACtC,wBAAgB,iBAAiB,IAAI,IAAI,CAExC;AAMD;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAWlE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,EAAE,CAiCjD;AAMD;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAiE9D;AAMD;;GAEG;AACH,wBAAsB,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAE,EAAE,CAAC,CAqElH;AAMD;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAmK5H;AAED;;;;;GAKG;AACH,wBAAsB,wBAAwB,CAAC,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAY7G;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CA+D1H"}
|