@foothill/agent-move 1.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/.github/screenshot.png +0 -0
- package/README.md +266 -0
- package/bin/cli.js +229 -0
- package/package.json +53 -0
- package/packages/client/dist/assets/BufferResource-Ddjob236.js +185 -0
- package/packages/client/dist/assets/CanvasRenderer-B0w6SYyW.js +1 -0
- package/packages/client/dist/assets/Filter-NcMGuiK-.js +1 -0
- package/packages/client/dist/assets/RenderTargetSystem-DgAzY5_U.js +172 -0
- package/packages/client/dist/assets/WebGLRenderer-DUWXDPIX.js +156 -0
- package/packages/client/dist/assets/WebGPURenderer-C1HbrllR.js +41 -0
- package/packages/client/dist/assets/browserAll-CaF1Fl0O.js +14 -0
- package/packages/client/dist/assets/index-CMmR_RuS.css +1 -0
- package/packages/client/dist/assets/index-Dh8yWoLP.js +711 -0
- package/packages/client/dist/assets/webworkerAll-BJ6UhC7r.js +83 -0
- package/packages/client/dist/favicon.svg +27 -0
- package/packages/client/dist/index.html +167 -0
- package/packages/client/package.json +19 -0
- package/packages/server/dist/config.d.ts +12 -0
- package/packages/server/dist/config.d.ts.map +1 -0
- package/packages/server/dist/config.js +19 -0
- package/packages/server/dist/config.js.map +1 -0
- package/packages/server/dist/hooks/hook-event-manager.d.ts +39 -0
- package/packages/server/dist/hooks/hook-event-manager.d.ts.map +1 -0
- package/packages/server/dist/hooks/hook-event-manager.js +161 -0
- package/packages/server/dist/hooks/hook-event-manager.js.map +1 -0
- package/packages/server/dist/hooks/hook-installer.d.ts +14 -0
- package/packages/server/dist/hooks/hook-installer.d.ts.map +1 -0
- package/packages/server/dist/hooks/hook-installer.js +179 -0
- package/packages/server/dist/hooks/hook-installer.js.map +1 -0
- package/packages/server/dist/index.d.ts +4 -0
- package/packages/server/dist/index.d.ts.map +1 -0
- package/packages/server/dist/index.js +3544 -0
- package/packages/server/dist/index.js.map +1 -0
- package/packages/server/dist/routes/api.d.ts +4 -0
- package/packages/server/dist/routes/api.d.ts.map +1 -0
- package/packages/server/dist/routes/api.js +27 -0
- package/packages/server/dist/routes/api.js.map +1 -0
- package/packages/server/dist/state/activity-processor.d.ts +31 -0
- package/packages/server/dist/state/activity-processor.d.ts.map +1 -0
- package/packages/server/dist/state/activity-processor.js +417 -0
- package/packages/server/dist/state/activity-processor.js.map +1 -0
- package/packages/server/dist/state/agent-state-manager.d.ts +107 -0
- package/packages/server/dist/state/agent-state-manager.d.ts.map +1 -0
- package/packages/server/dist/state/agent-state-manager.js +1622 -0
- package/packages/server/dist/state/agent-state-manager.js.map +1 -0
- package/packages/server/dist/state/anomaly-detector.d.ts +23 -0
- package/packages/server/dist/state/anomaly-detector.d.ts.map +1 -0
- package/packages/server/dist/state/anomaly-detector.js +272 -0
- package/packages/server/dist/state/anomaly-detector.js.map +1 -0
- package/packages/server/dist/state/identity-manager.d.ts +31 -0
- package/packages/server/dist/state/identity-manager.d.ts.map +1 -0
- package/packages/server/dist/state/identity-manager.js +63 -0
- package/packages/server/dist/state/identity-manager.js.map +1 -0
- package/packages/server/dist/state/role-resolver.d.ts +23 -0
- package/packages/server/dist/state/role-resolver.d.ts.map +1 -0
- package/packages/server/dist/state/role-resolver.js +43 -0
- package/packages/server/dist/state/role-resolver.js.map +1 -0
- package/packages/server/dist/state/task-graph-manager.d.ts +31 -0
- package/packages/server/dist/state/task-graph-manager.d.ts.map +1 -0
- package/packages/server/dist/state/task-graph-manager.js +191 -0
- package/packages/server/dist/state/task-graph-manager.js.map +1 -0
- package/packages/server/dist/state/tool-chain-tracker.d.ts +23 -0
- package/packages/server/dist/state/tool-chain-tracker.d.ts.map +1 -0
- package/packages/server/dist/state/tool-chain-tracker.js +113 -0
- package/packages/server/dist/state/tool-chain-tracker.js.map +1 -0
- package/packages/server/dist/watcher/agent-watcher.d.ts +16 -0
- package/packages/server/dist/watcher/agent-watcher.d.ts.map +1 -0
- package/packages/server/dist/watcher/agent-watcher.js +0 -0
- package/packages/server/dist/watcher/agent-watcher.js.map +1 -0
- package/packages/server/dist/watcher/claude-paths.d.ts +32 -0
- package/packages/server/dist/watcher/claude-paths.d.ts.map +1 -0
- package/packages/server/dist/watcher/claude-paths.js +104 -0
- package/packages/server/dist/watcher/claude-paths.js.map +1 -0
- package/packages/server/dist/watcher/file-watcher.d.ts +17 -0
- package/packages/server/dist/watcher/file-watcher.d.ts.map +1 -0
- package/packages/server/dist/watcher/file-watcher.js +347 -0
- package/packages/server/dist/watcher/file-watcher.js.map +1 -0
- package/packages/server/dist/watcher/git-info.d.ts +3 -0
- package/packages/server/dist/watcher/git-info.d.ts.map +1 -0
- package/packages/server/dist/watcher/git-info.js +35 -0
- package/packages/server/dist/watcher/git-info.js.map +1 -0
- package/packages/server/dist/watcher/jsonl-parser.d.ts +21 -0
- package/packages/server/dist/watcher/jsonl-parser.d.ts.map +1 -0
- package/packages/server/dist/watcher/jsonl-parser.js +95 -0
- package/packages/server/dist/watcher/jsonl-parser.js.map +1 -0
- package/packages/server/dist/watcher/opencode/opencode-parser.d.ts +58 -0
- package/packages/server/dist/watcher/opencode/opencode-parser.d.ts.map +1 -0
- package/packages/server/dist/watcher/opencode/opencode-parser.js +256 -0
- package/packages/server/dist/watcher/opencode/opencode-parser.js.map +1 -0
- package/packages/server/dist/watcher/opencode/opencode-paths.d.ts +20 -0
- package/packages/server/dist/watcher/opencode/opencode-paths.d.ts.map +1 -0
- package/packages/server/dist/watcher/opencode/opencode-paths.js +35 -0
- package/packages/server/dist/watcher/opencode/opencode-paths.js.map +1 -0
- package/packages/server/dist/watcher/opencode/opencode-watcher.d.ts +49 -0
- package/packages/server/dist/watcher/opencode/opencode-watcher.d.ts.map +1 -0
- package/packages/server/dist/watcher/opencode/opencode-watcher.js +1292 -0
- package/packages/server/dist/watcher/opencode/opencode-watcher.js.map +1 -0
- package/packages/server/dist/watcher/session-scanner.d.ts +7 -0
- package/packages/server/dist/watcher/session-scanner.d.ts.map +1 -0
- package/packages/server/dist/watcher/session-scanner.js +69 -0
- package/packages/server/dist/watcher/session-scanner.js.map +1 -0
- package/packages/server/dist/ws/broadcaster.d.ts +18 -0
- package/packages/server/dist/ws/broadcaster.d.ts.map +1 -0
- package/packages/server/dist/ws/broadcaster.js +152 -0
- package/packages/server/dist/ws/broadcaster.js.map +1 -0
- package/packages/server/dist/ws/ws-handler.d.ts +6 -0
- package/packages/server/dist/ws/ws-handler.d.ts.map +1 -0
- package/packages/server/dist/ws/ws-handler.js +55 -0
- package/packages/server/dist/ws/ws-handler.js.map +1 -0
- package/packages/server/package.json +25 -0
- package/packages/shared/dist/constants/colors.d.ts +46 -0
- package/packages/shared/dist/constants/colors.d.ts.map +1 -0
- package/packages/shared/dist/constants/colors.js +178 -0
- package/packages/shared/dist/constants/colors.js.map +1 -0
- package/packages/shared/dist/constants/names.d.ts +6 -0
- package/packages/shared/dist/constants/names.d.ts.map +1 -0
- package/packages/shared/dist/constants/names.js +28 -0
- package/packages/shared/dist/constants/names.js.map +1 -0
- package/packages/shared/dist/constants/tools.d.ts +15 -0
- package/packages/shared/dist/constants/tools.d.ts.map +1 -0
- package/packages/shared/dist/constants/tools.js +120 -0
- package/packages/shared/dist/constants/tools.js.map +1 -0
- package/packages/shared/dist/constants/zones.d.ts +37 -0
- package/packages/shared/dist/constants/zones.d.ts.map +1 -0
- package/packages/shared/dist/constants/zones.js +128 -0
- package/packages/shared/dist/constants/zones.js.map +1 -0
- package/packages/shared/dist/index.d.ts +15 -0
- package/packages/shared/dist/index.d.ts.map +1 -0
- package/packages/shared/dist/index.js +7 -0
- package/packages/shared/dist/index.js.map +1 -0
- package/packages/shared/dist/types/agent.d.ts +85 -0
- package/packages/shared/dist/types/agent.d.ts.map +1 -0
- package/packages/shared/dist/types/agent.js +2 -0
- package/packages/shared/dist/types/agent.js.map +1 -0
- package/packages/shared/dist/types/anomaly.d.ts +18 -0
- package/packages/shared/dist/types/anomaly.d.ts.map +1 -0
- package/packages/shared/dist/types/anomaly.js +6 -0
- package/packages/shared/dist/types/anomaly.js.map +1 -0
- package/packages/shared/dist/types/hooks.d.ts +51 -0
- package/packages/shared/dist/types/hooks.d.ts.map +1 -0
- package/packages/shared/dist/types/hooks.js +2 -0
- package/packages/shared/dist/types/hooks.js.map +1 -0
- package/packages/shared/dist/types/jsonl.d.ts +62 -0
- package/packages/shared/dist/types/jsonl.d.ts.map +1 -0
- package/packages/shared/dist/types/jsonl.js +3 -0
- package/packages/shared/dist/types/jsonl.js.map +1 -0
- package/packages/shared/dist/types/task-graph.d.ts +20 -0
- package/packages/shared/dist/types/task-graph.d.ts.map +1 -0
- package/packages/shared/dist/types/task-graph.js +2 -0
- package/packages/shared/dist/types/task-graph.js.map +1 -0
- package/packages/shared/dist/types/tool-chain.d.ts +17 -0
- package/packages/shared/dist/types/tool-chain.d.ts.map +1 -0
- package/packages/shared/dist/types/tool-chain.js +2 -0
- package/packages/shared/dist/types/tool-chain.js.map +1 -0
- package/packages/shared/dist/types/websocket.d.ts +132 -0
- package/packages/shared/dist/types/websocket.d.ts.map +1 -0
- package/packages/shared/dist/types/websocket.js +2 -0
- package/packages/shared/dist/types/websocket.js.map +1 -0
- package/packages/shared/dist/types/zone.d.ts +21 -0
- package/packages/shared/dist/types/zone.d.ts.map +1 -0
- package/packages/shared/dist/types/zone.js +2 -0
- package/packages/shared/dist/types/zone.js.map +1 -0
- package/packages/shared/package.json +15 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-state-manager.js","sourceRoot":"","sources":["../../src/state/agent-state-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { EventEmitter } from 'events';
|
|
2
|
+
import type { AnomalyConfig } from '@agent-move/shared';
|
|
3
|
+
export declare class AnomalyDetector extends EventEmitter {
|
|
4
|
+
private agents;
|
|
5
|
+
private agentNames;
|
|
6
|
+
private config;
|
|
7
|
+
private stuckInterval;
|
|
8
|
+
constructor(config?: Partial<AnomalyConfig>);
|
|
9
|
+
private getState;
|
|
10
|
+
setAgentName(agentId: string, name: string): void;
|
|
11
|
+
checkToolUse(agentId: string, toolName: string): void;
|
|
12
|
+
checkTokenUsage(agentId: string, inputTokens: number, outputTokens: number): void;
|
|
13
|
+
checkStuck(agentId: string, lastActivityAt: number): void;
|
|
14
|
+
startStuckDetection(getActiveAgents: () => Array<{
|
|
15
|
+
id: string;
|
|
16
|
+
lastActivityAt: number;
|
|
17
|
+
isIdle: boolean;
|
|
18
|
+
}>): void;
|
|
19
|
+
removeAgent(agentId: string): void;
|
|
20
|
+
private alert;
|
|
21
|
+
dispose(): void;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=anomaly-detector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"anomaly-detector.d.ts","sourceRoot":"","sources":["../../src/state/anomaly-detector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EAA6B,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAenF,qBAAa,eAAgB,SAAQ,YAAY;IAC/C,OAAO,CAAC,MAAM,CAAwC;IACtD,OAAO,CAAC,UAAU,CAA6B;IAC/C,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,aAAa,CAA+C;gBAExD,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC;IAK3C,OAAO,CAAC,QAAQ;IAchB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAIjD,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAmBrD,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IA6BjF,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI;IAazD,mBAAmB,CAAC,eAAe,EAAE,MAAM,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC,GAAG,IAAI;IAWhH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAKlC,OAAO,CAAC,KAAK;IAuBb,OAAO,IAAI,IAAI;CAMhB"}
|
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
// dist/state/anomaly-detector.js
|
|
2
|
+
import { EventEmitter } from "events";
|
|
3
|
+
var DEFAULT_ANOMALY_CONFIG = {
|
|
4
|
+
tokenVelocityThreshold: 1e5,
|
|
5
|
+
retryLoopThreshold: 5,
|
|
6
|
+
stuckTimeoutSeconds: 120
|
|
7
|
+
};
|
|
8
|
+
var ZONES = [
|
|
9
|
+
// Row 0
|
|
10
|
+
{
|
|
11
|
+
id: "search",
|
|
12
|
+
label: "Search",
|
|
13
|
+
description: "Grep, WebSearch \u2014 Research & lookup",
|
|
14
|
+
icon: "\u{1F4DA}",
|
|
15
|
+
color: 15381256,
|
|
16
|
+
colStart: 0,
|
|
17
|
+
colSpan: 5,
|
|
18
|
+
rowStart: 0,
|
|
19
|
+
rowSpan: 1,
|
|
20
|
+
x: 0,
|
|
21
|
+
y: 0,
|
|
22
|
+
width: 0,
|
|
23
|
+
height: 0
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
id: "terminal",
|
|
27
|
+
label: "Terminal",
|
|
28
|
+
description: "Bash commands \u2014 Server room",
|
|
29
|
+
icon: "\u{1F4BB}",
|
|
30
|
+
color: 2278750,
|
|
31
|
+
colStart: 5,
|
|
32
|
+
colSpan: 3,
|
|
33
|
+
rowStart: 0,
|
|
34
|
+
rowSpan: 1,
|
|
35
|
+
x: 0,
|
|
36
|
+
y: 0,
|
|
37
|
+
width: 0,
|
|
38
|
+
height: 0
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
id: "web",
|
|
42
|
+
label: "Web",
|
|
43
|
+
description: "WebFetch, Browser \u2014 Network hub",
|
|
44
|
+
icon: "\u{1F310}",
|
|
45
|
+
color: 9133302,
|
|
46
|
+
colStart: 8,
|
|
47
|
+
colSpan: 4,
|
|
48
|
+
rowStart: 0,
|
|
49
|
+
rowSpan: 1,
|
|
50
|
+
x: 0,
|
|
51
|
+
y: 0,
|
|
52
|
+
width: 0,
|
|
53
|
+
height: 0
|
|
54
|
+
},
|
|
55
|
+
// Row 1
|
|
56
|
+
{
|
|
57
|
+
id: "files",
|
|
58
|
+
label: "Files",
|
|
59
|
+
description: "Read, Write, Edit, Glob \u2014 File storage",
|
|
60
|
+
icon: "\u{1F4C1}",
|
|
61
|
+
color: 3900150,
|
|
62
|
+
colStart: 0,
|
|
63
|
+
colSpan: 4,
|
|
64
|
+
rowStart: 1,
|
|
65
|
+
rowSpan: 1,
|
|
66
|
+
x: 0,
|
|
67
|
+
y: 0,
|
|
68
|
+
width: 0,
|
|
69
|
+
height: 0
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
id: "thinking",
|
|
73
|
+
label: "Thinking",
|
|
74
|
+
description: "Planning, Questions \u2014 Conference area",
|
|
75
|
+
icon: "\u{1F4AD}",
|
|
76
|
+
color: 16347926,
|
|
77
|
+
colStart: 4,
|
|
78
|
+
colSpan: 5,
|
|
79
|
+
rowStart: 1,
|
|
80
|
+
rowSpan: 1,
|
|
81
|
+
x: 0,
|
|
82
|
+
y: 0,
|
|
83
|
+
width: 0,
|
|
84
|
+
height: 0
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
id: "messaging",
|
|
88
|
+
label: "Messaging",
|
|
89
|
+
description: "SendMessage, Teams \u2014 Chat & relax",
|
|
90
|
+
icon: "\u{1F4AC}",
|
|
91
|
+
color: 15485081,
|
|
92
|
+
colStart: 9,
|
|
93
|
+
colSpan: 3,
|
|
94
|
+
rowStart: 1,
|
|
95
|
+
rowSpan: 1,
|
|
96
|
+
x: 0,
|
|
97
|
+
y: 0,
|
|
98
|
+
width: 0,
|
|
99
|
+
height: 0
|
|
100
|
+
},
|
|
101
|
+
// Row 2
|
|
102
|
+
{
|
|
103
|
+
id: "spawn",
|
|
104
|
+
label: "Spawn",
|
|
105
|
+
description: "Agent spawn/despawn \u2014 Entry portal",
|
|
106
|
+
icon: "\u{1F300}",
|
|
107
|
+
color: 11032055,
|
|
108
|
+
colStart: 0,
|
|
109
|
+
colSpan: 3,
|
|
110
|
+
rowStart: 2,
|
|
111
|
+
rowSpan: 1,
|
|
112
|
+
x: 0,
|
|
113
|
+
y: 0,
|
|
114
|
+
width: 0,
|
|
115
|
+
height: 0
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
id: "idle",
|
|
119
|
+
label: "Idle",
|
|
120
|
+
description: "Idle agents rest here \u2014 Kitchen & lounge",
|
|
121
|
+
icon: "\u2615",
|
|
122
|
+
color: 7041664,
|
|
123
|
+
colStart: 3,
|
|
124
|
+
colSpan: 5,
|
|
125
|
+
rowStart: 2,
|
|
126
|
+
rowSpan: 1,
|
|
127
|
+
x: 0,
|
|
128
|
+
y: 0,
|
|
129
|
+
width: 0,
|
|
130
|
+
height: 0
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
id: "tasks",
|
|
134
|
+
label: "Tasks",
|
|
135
|
+
description: "TaskCreate, TaskUpdate \u2014 Kanban & planning",
|
|
136
|
+
icon: "\u{1F4CB}",
|
|
137
|
+
color: 1357990,
|
|
138
|
+
colStart: 8,
|
|
139
|
+
colSpan: 4,
|
|
140
|
+
rowStart: 2,
|
|
141
|
+
rowSpan: 1,
|
|
142
|
+
x: 0,
|
|
143
|
+
y: 0,
|
|
144
|
+
width: 0,
|
|
145
|
+
height: 0
|
|
146
|
+
}
|
|
147
|
+
];
|
|
148
|
+
var ZONE_MAP = new Map(ZONES.map((z) => [z.id, z]));
|
|
149
|
+
var COOLDOWN_MS = 6e4;
|
|
150
|
+
var TOKEN_WINDOW_MS = 6e4;
|
|
151
|
+
var anomalyIdCounter = 0;
|
|
152
|
+
var AnomalyDetector = class extends EventEmitter {
|
|
153
|
+
agents = /* @__PURE__ */ new Map();
|
|
154
|
+
agentNames = /* @__PURE__ */ new Map();
|
|
155
|
+
config;
|
|
156
|
+
stuckInterval = null;
|
|
157
|
+
constructor(config) {
|
|
158
|
+
super();
|
|
159
|
+
this.config = { ...DEFAULT_ANOMALY_CONFIG, ...config };
|
|
160
|
+
}
|
|
161
|
+
getState(agentId) {
|
|
162
|
+
let state = this.agents.get(agentId);
|
|
163
|
+
if (!state) {
|
|
164
|
+
state = {
|
|
165
|
+
lastTools: [],
|
|
166
|
+
tokenSamples: [],
|
|
167
|
+
lastActivityAt: Date.now(),
|
|
168
|
+
lastAlertAt: /* @__PURE__ */ new Map()
|
|
169
|
+
};
|
|
170
|
+
this.agents.set(agentId, state);
|
|
171
|
+
}
|
|
172
|
+
return state;
|
|
173
|
+
}
|
|
174
|
+
setAgentName(agentId, name) {
|
|
175
|
+
this.agentNames.set(agentId, name);
|
|
176
|
+
}
|
|
177
|
+
checkToolUse(agentId, toolName) {
|
|
178
|
+
const state = this.getState(agentId);
|
|
179
|
+
state.lastActivityAt = Date.now();
|
|
180
|
+
state.lastTools.push(toolName);
|
|
181
|
+
if (state.lastTools.length > 20)
|
|
182
|
+
state.lastTools.shift();
|
|
183
|
+
const threshold = this.config.retryLoopThreshold;
|
|
184
|
+
if (state.lastTools.length >= threshold) {
|
|
185
|
+
const recent = state.lastTools.slice(-threshold);
|
|
186
|
+
if (recent.every((t) => t === recent[0])) {
|
|
187
|
+
this.alert(agentId, "retry-loop", `${recent[0]} called ${threshold}+ times consecutively`, "warning", {
|
|
188
|
+
tool: recent[0],
|
|
189
|
+
consecutiveCount: threshold
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
checkTokenUsage(agentId, inputTokens, outputTokens) {
|
|
195
|
+
const state = this.getState(agentId);
|
|
196
|
+
state.lastActivityAt = Date.now();
|
|
197
|
+
const now = Date.now();
|
|
198
|
+
const total = inputTokens + outputTokens;
|
|
199
|
+
state.tokenSamples.push({ ts: now, total });
|
|
200
|
+
const cutoff = now - TOKEN_WINDOW_MS;
|
|
201
|
+
while (state.tokenSamples.length > 0 && state.tokenSamples[0].ts < cutoff) {
|
|
202
|
+
state.tokenSamples.shift();
|
|
203
|
+
}
|
|
204
|
+
if (state.tokenSamples.length >= 2) {
|
|
205
|
+
const totalTokens = state.tokenSamples.reduce((sum, s) => sum + s.total, 0);
|
|
206
|
+
const elapsed = (state.tokenSamples[state.tokenSamples.length - 1].ts - state.tokenSamples[0].ts) / 6e4;
|
|
207
|
+
if (elapsed > 0.1) {
|
|
208
|
+
const velocity = totalTokens / elapsed;
|
|
209
|
+
if (velocity >= this.config.tokenVelocityThreshold) {
|
|
210
|
+
this.alert(agentId, "token-spike", `Token velocity ${Math.round(velocity)}/min exceeds threshold`, "critical", {
|
|
211
|
+
velocity: Math.round(velocity),
|
|
212
|
+
threshold: this.config.tokenVelocityThreshold
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
checkStuck(agentId, lastActivityAt) {
|
|
219
|
+
const state = this.getState(agentId);
|
|
220
|
+
const elapsed = (Date.now() - lastActivityAt) / 1e3;
|
|
221
|
+
if (elapsed >= this.config.stuckTimeoutSeconds) {
|
|
222
|
+
this.alert(agentId, "stuck-agent", `No activity for ${Math.round(elapsed)}s`, "warning", {
|
|
223
|
+
idleSeconds: Math.round(elapsed),
|
|
224
|
+
threshold: this.config.stuckTimeoutSeconds
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
state.lastActivityAt = lastActivityAt;
|
|
228
|
+
}
|
|
229
|
+
startStuckDetection(getActiveAgents) {
|
|
230
|
+
if (this.stuckInterval)
|
|
231
|
+
return;
|
|
232
|
+
this.stuckInterval = setInterval(() => {
|
|
233
|
+
for (const agent of getActiveAgents()) {
|
|
234
|
+
if (!agent.isIdle) {
|
|
235
|
+
this.checkStuck(agent.id, agent.lastActivityAt);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
}, 3e4);
|
|
239
|
+
}
|
|
240
|
+
removeAgent(agentId) {
|
|
241
|
+
this.agents.delete(agentId);
|
|
242
|
+
this.agentNames.delete(agentId);
|
|
243
|
+
}
|
|
244
|
+
alert(agentId, kind, message, severity, details) {
|
|
245
|
+
const state = this.getState(agentId);
|
|
246
|
+
const now = Date.now();
|
|
247
|
+
const lastAlert = state.lastAlertAt.get(kind) ?? 0;
|
|
248
|
+
if (now - lastAlert < COOLDOWN_MS)
|
|
249
|
+
return;
|
|
250
|
+
state.lastAlertAt.set(kind, now);
|
|
251
|
+
const anomaly = {
|
|
252
|
+
id: `anomaly-${++anomalyIdCounter}`,
|
|
253
|
+
agentId,
|
|
254
|
+
agentName: this.agentNames.get(agentId) ?? agentId.slice(0, 10),
|
|
255
|
+
kind,
|
|
256
|
+
message,
|
|
257
|
+
severity,
|
|
258
|
+
timestamp: now,
|
|
259
|
+
details
|
|
260
|
+
};
|
|
261
|
+
this.emit("anomaly", anomaly);
|
|
262
|
+
}
|
|
263
|
+
dispose() {
|
|
264
|
+
if (this.stuckInterval) {
|
|
265
|
+
clearInterval(this.stuckInterval);
|
|
266
|
+
this.stuckInterval = null;
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
};
|
|
270
|
+
export {
|
|
271
|
+
AnomalyDetector
|
|
272
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"anomaly-detector.js","sourceRoot":"","sources":["../../src/state/anomaly-detector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { AgentState, AgentEvent } from '@agent-move/shared';
|
|
2
|
+
import type { ToolChainTracker } from './tool-chain-tracker.js';
|
|
3
|
+
export interface IdentityManagerDeps {
|
|
4
|
+
agents: Map<string, AgentState>;
|
|
5
|
+
hiddenAgents: Set<string>;
|
|
6
|
+
sessionToAgent: Map<string, string>;
|
|
7
|
+
namedAgentMap: Map<string, string>;
|
|
8
|
+
identityTimers: Map<string, ReturnType<typeof setTimeout>>;
|
|
9
|
+
toolChainTracker: ToolChainTracker;
|
|
10
|
+
clearTimers: (agentId: string) => void;
|
|
11
|
+
recordTimeline: (event: AgentEvent) => void;
|
|
12
|
+
emit: (event: string, ...args: unknown[]) => void;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Resolve a sessionId to its canonical agent ID.
|
|
16
|
+
*/
|
|
17
|
+
export declare function resolveAgentId(sessionToAgent: Map<string, string>, sessionId: string): string;
|
|
18
|
+
/**
|
|
19
|
+
* Transfer token counts from source agent to target and remove the source.
|
|
20
|
+
*/
|
|
21
|
+
export declare function transferAndRemove(deps: IdentityManagerDeps, sourceId: string, target: AgentState, redirectSessionId: string): void;
|
|
22
|
+
/**
|
|
23
|
+
* Merge a hidden agent into an existing named agent.
|
|
24
|
+
* Returns the existing agent if merged, or null.
|
|
25
|
+
*/
|
|
26
|
+
export declare function mergeIntoNamed(deps: IdentityManagerDeps, hiddenId: string, agentName: string): AgentState | null;
|
|
27
|
+
/**
|
|
28
|
+
* Promote a hidden agent to visible (emit spawn event).
|
|
29
|
+
*/
|
|
30
|
+
export declare function promoteAgent(deps: IdentityManagerDeps, agentId: string): void;
|
|
31
|
+
//# sourceMappingURL=identity-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity-manager.d.ts","sourceRoot":"","sources":["../../src/state/identity-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAChC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1B,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC;IAC3D,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,cAAc,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IAC5C,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;CACnD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAE7F;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,mBAAmB,EACzB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,UAAU,EAClB,iBAAiB,EAAE,MAAM,GACxB,IAAI,CAiBN;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,mBAAmB,EACzB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB,UAAU,GAAG,IAAI,CAiBnB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAqB7E"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
// dist/state/identity-manager.js
|
|
2
|
+
function resolveAgentId(sessionToAgent, sessionId) {
|
|
3
|
+
return sessionToAgent.get(sessionId) ?? sessionId;
|
|
4
|
+
}
|
|
5
|
+
function transferAndRemove(deps, sourceId, target, redirectSessionId) {
|
|
6
|
+
const { agents, hiddenAgents, sessionToAgent, toolChainTracker, clearTimers } = deps;
|
|
7
|
+
const source = agents.get(sourceId);
|
|
8
|
+
if (source) {
|
|
9
|
+
target.totalInputTokens += source.totalInputTokens;
|
|
10
|
+
target.totalOutputTokens += source.totalOutputTokens;
|
|
11
|
+
target.cacheReadTokens += source.cacheReadTokens;
|
|
12
|
+
target.cacheCreationTokens += source.cacheCreationTokens;
|
|
13
|
+
}
|
|
14
|
+
agents.delete(sourceId);
|
|
15
|
+
hiddenAgents.delete(sourceId);
|
|
16
|
+
clearTimers(sourceId);
|
|
17
|
+
toolChainTracker.migrateAgent(sourceId, target.id);
|
|
18
|
+
sessionToAgent.set(redirectSessionId, target.id);
|
|
19
|
+
target.isIdle = false;
|
|
20
|
+
target.isDone = false;
|
|
21
|
+
target.lastActivityAt = Date.now();
|
|
22
|
+
}
|
|
23
|
+
function mergeIntoNamed(deps, hiddenId, agentName) {
|
|
24
|
+
const { agents, namedAgentMap } = deps;
|
|
25
|
+
const hidden = agents.get(hiddenId);
|
|
26
|
+
if (!hidden)
|
|
27
|
+
return null;
|
|
28
|
+
const key = `${hidden.rootSessionId}:${agentName}`;
|
|
29
|
+
const existingId = namedAgentMap.get(key);
|
|
30
|
+
if (!existingId || existingId === hiddenId)
|
|
31
|
+
return null;
|
|
32
|
+
const existing = agents.get(existingId);
|
|
33
|
+
if (!existing)
|
|
34
|
+
return null;
|
|
35
|
+
transferAndRemove(deps, hiddenId, existing, hiddenId);
|
|
36
|
+
console.log(`Merged session ${hiddenId.slice(0, 12)}\u2026 into agent "${agentName}" (${existingId.slice(0, 12)}\u2026)`);
|
|
37
|
+
return existing;
|
|
38
|
+
}
|
|
39
|
+
function promoteAgent(deps, agentId) {
|
|
40
|
+
const { agents, hiddenAgents, identityTimers, recordTimeline, emit } = deps;
|
|
41
|
+
hiddenAgents.delete(agentId);
|
|
42
|
+
const idTimer = identityTimers.get(agentId);
|
|
43
|
+
if (idTimer)
|
|
44
|
+
clearTimeout(idTimer);
|
|
45
|
+
identityTimers.delete(agentId);
|
|
46
|
+
const agent = agents.get(agentId);
|
|
47
|
+
if (!agent)
|
|
48
|
+
return;
|
|
49
|
+
console.log(`Promoting hidden agent ${agentId.slice(0, 12)}\u2026 (name: ${agent.agentName ?? "unknown"})`);
|
|
50
|
+
const now = Date.now();
|
|
51
|
+
const spawnEvent = { type: "agent:spawn", agent: { ...agent }, timestamp: now };
|
|
52
|
+
recordTimeline(spawnEvent);
|
|
53
|
+
emit("agent:spawn", spawnEvent);
|
|
54
|
+
const updateEvent = { type: "agent:update", agent: { ...agent }, timestamp: now };
|
|
55
|
+
recordTimeline(updateEvent);
|
|
56
|
+
emit("agent:update", updateEvent);
|
|
57
|
+
}
|
|
58
|
+
export {
|
|
59
|
+
mergeIntoNamed,
|
|
60
|
+
promoteAgent,
|
|
61
|
+
resolveAgentId,
|
|
62
|
+
transferAndRemove
|
|
63
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity-manager.js","sourceRoot":"","sources":["../../src/state/identity-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { AgentState } from '@agent-move/shared';
|
|
2
|
+
import type { ParsedActivity } from '../watcher/jsonl-parser.js';
|
|
3
|
+
import type { SessionInfo } from '../watcher/claude-paths.js';
|
|
4
|
+
/**
|
|
5
|
+
* Determine the role for an agent based on session info alone (unnamed agents).
|
|
6
|
+
*/
|
|
7
|
+
export declare function determineRole(_activity: ParsedActivity, sessionInfo: SessionInfo): AgentState['role'];
|
|
8
|
+
/**
|
|
9
|
+
* Determine the role for a named subagent based on team assignment.
|
|
10
|
+
* Only explicit team assignment (Agent tool's team_name parameter) makes a team-member.
|
|
11
|
+
* Sub-agents spawned by the team-lead without team_name stay as subagents.
|
|
12
|
+
*/
|
|
13
|
+
export declare function determineRoleForNamed(_parentId: string | null, pendingTeam: string | null): AgentState['role'];
|
|
14
|
+
/**
|
|
15
|
+
* Find the parent agent ID for a new subagent given its project directory.
|
|
16
|
+
* Priority: team-lead → main session → any non-leaf agent.
|
|
17
|
+
*/
|
|
18
|
+
export declare function findParentId(agents: Map<string, AgentState>, projectDir: string): string | null;
|
|
19
|
+
/**
|
|
20
|
+
* Inherit teamName from any agent in the same session hierarchy.
|
|
21
|
+
*/
|
|
22
|
+
export declare function getParentTeamName(agents: Map<string, AgentState>, rootSessionId: string): string | null;
|
|
23
|
+
//# sourceMappingURL=role-resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"role-resolver.d.ts","sourceRoot":"","sources":["../../src/state/role-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAE9D;;GAEG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,CAGrG;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,WAAW,EAAE,MAAM,GAAG,IAAI,GACzB,UAAU,CAAC,MAAM,CAAC,CAGpB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,EAC/B,UAAU,EAAE,MAAM,GACjB,MAAM,GAAG,IAAI,CAoBf;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,EAC/B,aAAa,EAAE,MAAM,GACpB,MAAM,GAAG,IAAI,CAOf"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
// dist/state/role-resolver.js
|
|
2
|
+
function determineRole(_activity, sessionInfo) {
|
|
3
|
+
if (sessionInfo.isSubagent)
|
|
4
|
+
return "subagent";
|
|
5
|
+
return "main";
|
|
6
|
+
}
|
|
7
|
+
function determineRoleForNamed(_parentId, pendingTeam) {
|
|
8
|
+
if (pendingTeam)
|
|
9
|
+
return "team-member";
|
|
10
|
+
return "subagent";
|
|
11
|
+
}
|
|
12
|
+
function findParentId(agents, projectDir) {
|
|
13
|
+
for (const [id, agent] of agents) {
|
|
14
|
+
if (agent.projectPath === projectDir && agent.role === "team-lead") {
|
|
15
|
+
return id;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
for (const [id, agent] of agents) {
|
|
19
|
+
if (agent.projectPath === projectDir && agent.role === "main") {
|
|
20
|
+
return id;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
for (const [id, agent] of agents) {
|
|
24
|
+
if (agent.projectPath === projectDir && agent.role !== "subagent" && agent.role !== "team-member") {
|
|
25
|
+
return id;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
function getParentTeamName(agents, rootSessionId) {
|
|
31
|
+
for (const agent of agents.values()) {
|
|
32
|
+
if (agent.rootSessionId === rootSessionId && agent.teamName) {
|
|
33
|
+
return agent.teamName;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
export {
|
|
39
|
+
determineRole,
|
|
40
|
+
determineRoleForNamed,
|
|
41
|
+
findParentId,
|
|
42
|
+
getParentTeamName
|
|
43
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"role-resolver.js","sourceRoot":"","sources":["../../src/state/role-resolver.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,SAAyB,EAAE,WAAwB;IAC/E,IAAI,WAAW,CAAC,UAAU;QAAE,OAAO,UAAU,CAAC;IAC9C,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CACnC,SAAwB,EACxB,WAA0B;IAE1B,IAAI,WAAW;QAAE,OAAO,aAAa,CAAC;IACtC,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAC1B,MAA+B,EAC/B,UAAkB;IAElB,yEAAyE;IACzE,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;QACjC,IAAI,KAAK,CAAC,WAAW,KAAK,UAAU,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YACnE,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IACD,2BAA2B;IAC3B,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;QACjC,IAAI,KAAK,CAAC,WAAW,KAAK,UAAU,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC9D,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IACD,4CAA4C;IAC5C,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;QACjC,IAAI,KAAK,CAAC,WAAW,KAAK,UAAU,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YAClG,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAA+B,EAC/B,aAAqB;IAErB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QACpC,IAAI,KAAK,CAAC,aAAa,KAAK,aAAa,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC5D,OAAO,KAAK,CAAC,QAAQ,CAAC;QACxB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { TaskGraphData } from '@agent-move/shared';
|
|
2
|
+
export declare class TaskGraphManager {
|
|
3
|
+
private tasks;
|
|
4
|
+
/** Per-agent-root counters to match Claude's sequential task IDs per team */
|
|
5
|
+
private counters;
|
|
6
|
+
/**
|
|
7
|
+
* Build a scoped key from rootSessionId + short task ID.
|
|
8
|
+
* This prevents cross-team ID collisions in the global map.
|
|
9
|
+
*/
|
|
10
|
+
private scopedKey;
|
|
11
|
+
/**
|
|
12
|
+
* Process a tool use that may affect the task graph.
|
|
13
|
+
* Returns true if the graph changed.
|
|
14
|
+
*/
|
|
15
|
+
processToolUse(agentId: string, agentName: string, toolName: string, toolInput: unknown, projectName?: string, rootSessionId?: string): boolean;
|
|
16
|
+
private handleCreate;
|
|
17
|
+
private handleUpdate;
|
|
18
|
+
/**
|
|
19
|
+
* Mark a task as completed (hook-sourced — TaskCompleted event).
|
|
20
|
+
* Returns true if the status actually changed.
|
|
21
|
+
*/
|
|
22
|
+
processTaskCompleted(taskId: string, root: string): boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Remove all tasks created by a given agent.
|
|
25
|
+
* Cleans up dependency references from remaining tasks.
|
|
26
|
+
* Returns true if any tasks were removed.
|
|
27
|
+
*/
|
|
28
|
+
removeAgentTasks(agentId: string): boolean;
|
|
29
|
+
getSnapshot(): TaskGraphData;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=task-graph-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-graph-manager.d.ts","sourceRoot":"","sources":["../../src/state/task-graph-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAY,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAElE,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,KAAK,CAA+B;IAC5C,6EAA6E;IAC7E,OAAO,CAAC,QAAQ,CAA6B;IAE7C;;;OAGG;IACH,OAAO,CAAC,SAAS;IAIjB;;;OAGG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO;IAW/I,OAAO,CAAC,YAAY;IA8BpB,OAAO,CAAC,YAAY;IAwFpB;;;OAGG;IACH,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAQ3D;;;;OAIG;IACH,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAyB1C,WAAW,IAAI,aAAa;CAwB7B"}
|