@enterprise-skills/orchestrator 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/__tests__/advisor.test.d.ts +2 -0
- package/dist/__tests__/advisor.test.d.ts.map +1 -0
- package/dist/__tests__/advisor.test.js +92 -0
- package/dist/__tests__/advisor.test.js.map +1 -0
- package/dist/__tests__/audit-logger.test.d.ts +2 -0
- package/dist/__tests__/audit-logger.test.d.ts.map +1 -0
- package/dist/__tests__/audit-logger.test.js +115 -0
- package/dist/__tests__/audit-logger.test.js.map +1 -0
- package/dist/__tests__/dag-resolver.test.d.ts +2 -0
- package/dist/__tests__/dag-resolver.test.d.ts.map +1 -0
- package/dist/__tests__/dag-resolver.test.js +297 -0
- package/dist/__tests__/dag-resolver.test.js.map +1 -0
- package/dist/__tests__/orchestrator.test.d.ts +2 -0
- package/dist/__tests__/orchestrator.test.d.ts.map +1 -0
- package/dist/__tests__/orchestrator.test.js +152 -0
- package/dist/__tests__/orchestrator.test.js.map +1 -0
- package/dist/__tests__/policy-enforcer.test.d.ts +2 -0
- package/dist/__tests__/policy-enforcer.test.d.ts.map +1 -0
- package/dist/__tests__/policy-enforcer.test.js +113 -0
- package/dist/__tests__/policy-enforcer.test.js.map +1 -0
- package/dist/__tests__/signal-router.test.d.ts +2 -0
- package/dist/__tests__/signal-router.test.d.ts.map +1 -0
- package/dist/__tests__/signal-router.test.js +96 -0
- package/dist/__tests__/signal-router.test.js.map +1 -0
- package/dist/__tests__/state-machine.test.d.ts +2 -0
- package/dist/__tests__/state-machine.test.d.ts.map +1 -0
- package/dist/__tests__/state-machine.test.js +278 -0
- package/dist/__tests__/state-machine.test.js.map +1 -0
- package/dist/advisor.d.ts +41 -0
- package/dist/advisor.d.ts.map +1 -0
- package/dist/advisor.js +268 -0
- package/dist/advisor.js.map +1 -0
- package/dist/api/handlers.d.ts +28 -0
- package/dist/api/handlers.d.ts.map +1 -0
- package/dist/api/handlers.js +305 -0
- package/dist/api/handlers.js.map +1 -0
- package/dist/api/index.d.ts +5 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +20 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/routes/complete.d.ts +9 -0
- package/dist/api/routes/complete.d.ts.map +1 -0
- package/dist/api/routes/complete.js +34 -0
- package/dist/api/routes/complete.js.map +1 -0
- package/dist/api/routes/dashboard.d.ts +9 -0
- package/dist/api/routes/dashboard.d.ts.map +1 -0
- package/dist/api/routes/dashboard.js +29 -0
- package/dist/api/routes/dashboard.js.map +1 -0
- package/dist/api/routes/execute.d.ts +10 -0
- package/dist/api/routes/execute.d.ts.map +1 -0
- package/dist/api/routes/execute.js +35 -0
- package/dist/api/routes/execute.js.map +1 -0
- package/dist/api/routes/gate.d.ts +9 -0
- package/dist/api/routes/gate.d.ts.map +1 -0
- package/dist/api/routes/gate.js +34 -0
- package/dist/api/routes/gate.js.map +1 -0
- package/dist/api/routes/index.d.ts +7 -0
- package/dist/api/routes/index.d.ts.map +1 -0
- package/dist/api/routes/index.js +19 -0
- package/dist/api/routes/index.js.map +1 -0
- package/dist/api/routes/middleware.d.ts +13 -0
- package/dist/api/routes/middleware.d.ts.map +1 -0
- package/dist/api/routes/middleware.js +55 -0
- package/dist/api/routes/middleware.js.map +1 -0
- package/dist/api/routes/signal.d.ts +9 -0
- package/dist/api/routes/signal.d.ts.map +1 -0
- package/dist/api/routes/signal.js +34 -0
- package/dist/api/routes/signal.js.map +1 -0
- package/dist/api/types.d.ts +87 -0
- package/dist/api/types.d.ts.map +1 -0
- package/dist/api/types.js +3 -0
- package/dist/api/types.js.map +1 -0
- package/dist/audit-logger.d.ts +20 -0
- package/dist/audit-logger.d.ts.map +1 -0
- package/dist/audit-logger.js +125 -0
- package/dist/audit-logger.js.map +1 -0
- package/dist/builtin-triggers.d.ts +3 -0
- package/dist/builtin-triggers.d.ts.map +1 -0
- package/dist/builtin-triggers.js +235 -0
- package/dist/builtin-triggers.js.map +1 -0
- package/dist/dag-resolver.d.ts +22 -0
- package/dist/dag-resolver.d.ts.map +1 -0
- package/dist/dag-resolver.js +250 -0
- package/dist/dag-resolver.js.map +1 -0
- package/dist/hardening-sensors.d.ts +22 -0
- package/dist/hardening-sensors.d.ts.map +1 -0
- package/dist/hardening-sensors.js +135 -0
- package/dist/hardening-sensors.js.map +1 -0
- package/dist/index.d.ts +87 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +269 -0
- package/dist/index.js.map +1 -0
- package/dist/policy-enforcer.d.ts +27 -0
- package/dist/policy-enforcer.d.ts.map +1 -0
- package/dist/policy-enforcer.js +185 -0
- package/dist/policy-enforcer.js.map +1 -0
- package/dist/signal-router.d.ts +19 -0
- package/dist/signal-router.d.ts.map +1 -0
- package/dist/signal-router.js +206 -0
- package/dist/signal-router.js.map +1 -0
- package/dist/state-machine.d.ts +45 -0
- package/dist/state-machine.d.ts.map +1 -0
- package/dist/state-machine.js +300 -0
- package/dist/state-machine.js.map +1 -0
- package/dist/task-contract.d.ts +46 -0
- package/dist/task-contract.d.ts.map +1 -0
- package/dist/task-contract.js +71 -0
- package/dist/task-contract.js.map +1 -0
- package/dist/types.d.ts +167 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/package.json +29 -0
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
const vitest_1 = require("vitest");
|
|
37
|
+
const fs = __importStar(require("fs"));
|
|
38
|
+
const path = __importStar(require("path"));
|
|
39
|
+
const os = __importStar(require("os"));
|
|
40
|
+
const yaml = __importStar(require("js-yaml"));
|
|
41
|
+
const state_machine_1 = require("../state-machine");
|
|
42
|
+
(0, vitest_1.describe)('StateMachine', () => {
|
|
43
|
+
let tmpDir;
|
|
44
|
+
let config;
|
|
45
|
+
let sm;
|
|
46
|
+
(0, vitest_1.beforeEach)(() => {
|
|
47
|
+
tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'sm-test-'));
|
|
48
|
+
config = {
|
|
49
|
+
project_root: tmpDir,
|
|
50
|
+
state_dir: path.join(tmpDir, '.project-ai'),
|
|
51
|
+
audit_log_path: path.join(tmpDir, '.project-ai', 'audit.jsonl'),
|
|
52
|
+
session_id: 'test-session-001',
|
|
53
|
+
};
|
|
54
|
+
sm = new state_machine_1.StateMachine(config);
|
|
55
|
+
});
|
|
56
|
+
(0, vitest_1.afterEach)(() => {
|
|
57
|
+
fs.rmSync(tmpDir, { recursive: true, force: true });
|
|
58
|
+
});
|
|
59
|
+
(0, vitest_1.it)('initializes a session with correct fields', () => {
|
|
60
|
+
const ctx = sm.initSession('my-project', 'main');
|
|
61
|
+
(0, vitest_1.expect)(ctx.session_id).toBe('test-session-001');
|
|
62
|
+
(0, vitest_1.expect)(ctx.project).toBe('my-project');
|
|
63
|
+
(0, vitest_1.expect)(ctx.branch).toBe('main');
|
|
64
|
+
(0, vitest_1.expect)(ctx.skills_executed).toHaveLength(0);
|
|
65
|
+
(0, vitest_1.expect)(ctx.workflow_active).toBeNull();
|
|
66
|
+
(0, vitest_1.expect)(ctx.pending_signals).toHaveLength(0);
|
|
67
|
+
});
|
|
68
|
+
(0, vitest_1.it)('persists session context to YAML', () => {
|
|
69
|
+
sm.initSession('proj', 'dev');
|
|
70
|
+
const loaded = sm.getSessionContext();
|
|
71
|
+
(0, vitest_1.expect)(loaded).not.toBeNull();
|
|
72
|
+
(0, vitest_1.expect)(loaded.project).toBe('proj');
|
|
73
|
+
});
|
|
74
|
+
(0, vitest_1.it)('records skill completion and downstream signals', () => {
|
|
75
|
+
sm.initSession('proj', 'main');
|
|
76
|
+
const output = {
|
|
77
|
+
skill_id: 'security-audit',
|
|
78
|
+
executed_at: new Date().toISOString(),
|
|
79
|
+
status: 'completed',
|
|
80
|
+
duration_seconds: 12,
|
|
81
|
+
summary: '3 findings',
|
|
82
|
+
grade: 'B',
|
|
83
|
+
findings: [
|
|
84
|
+
{ id: 'SEC-001', severity: 'high', type: 'auth_gap', description: 'missing auth', resolved: false },
|
|
85
|
+
],
|
|
86
|
+
metrics: { files_scanned: 50, issues_found: 3 },
|
|
87
|
+
downstream_signals: [
|
|
88
|
+
{ target_skill: 'incident-response', signal: 'suggest', condition: 'High severity finding' },
|
|
89
|
+
],
|
|
90
|
+
};
|
|
91
|
+
const ctx = sm.recordSkillComplete(output);
|
|
92
|
+
(0, vitest_1.expect)(ctx.skills_executed).toHaveLength(1);
|
|
93
|
+
(0, vitest_1.expect)(ctx.skills_executed[0].skill_id).toBe('security-audit');
|
|
94
|
+
(0, vitest_1.expect)(ctx.pending_signals).toHaveLength(1);
|
|
95
|
+
(0, vitest_1.expect)(ctx.pending_signals[0].to).toBe('incident-response');
|
|
96
|
+
});
|
|
97
|
+
(0, vitest_1.it)('appends each completion to EXECUTION_LOG.yaml in the state dir', () => {
|
|
98
|
+
sm.initSession('proj', 'main');
|
|
99
|
+
const makeOutput = (skillId, status) => ({
|
|
100
|
+
skill_id: skillId,
|
|
101
|
+
executed_at: '2026-01-02T00:00:00Z',
|
|
102
|
+
status,
|
|
103
|
+
duration_seconds: 5,
|
|
104
|
+
summary: `${skillId} ran`,
|
|
105
|
+
findings: [],
|
|
106
|
+
metrics: {},
|
|
107
|
+
downstream_signals: skillId === 'bug-hunter'
|
|
108
|
+
? [{ target_skill: 'agent-post-mortem', signal: 'suggest', condition: 'bug found' }]
|
|
109
|
+
: [],
|
|
110
|
+
});
|
|
111
|
+
sm.recordSkillComplete(makeOutput('bug-hunter', 'completed'));
|
|
112
|
+
sm.recordSkillComplete(makeOutput('code-review', 'failed'));
|
|
113
|
+
const logPath = path.join(config.state_dir, 'EXECUTION_LOG.yaml');
|
|
114
|
+
(0, vitest_1.expect)(fs.existsSync(logPath)).toBe(true);
|
|
115
|
+
const doc = yaml.load(fs.readFileSync(logPath, 'utf-8'));
|
|
116
|
+
(0, vitest_1.expect)(doc.schema_version).toBe('1.0');
|
|
117
|
+
(0, vitest_1.expect)(doc.entries).toHaveLength(2);
|
|
118
|
+
(0, vitest_1.expect)(doc.entries[0].skill_id).toBe('bug-hunter');
|
|
119
|
+
(0, vitest_1.expect)(doc.entries[0].result).toBe('success');
|
|
120
|
+
(0, vitest_1.expect)(doc.entries[0].session_id).toBe('test-session-001');
|
|
121
|
+
(0, vitest_1.expect)(doc.entries[0].delegated_to).toEqual(['agent-post-mortem']);
|
|
122
|
+
(0, vitest_1.expect)(doc.entries[1].result).toBe('failure');
|
|
123
|
+
});
|
|
124
|
+
(0, vitest_1.it)('reads/writes skill output YAML', () => {
|
|
125
|
+
sm.initSession('proj', 'main');
|
|
126
|
+
const output = {
|
|
127
|
+
skill_id: 'code-review',
|
|
128
|
+
executed_at: '2026-01-01T00:00:00Z',
|
|
129
|
+
status: 'completed',
|
|
130
|
+
duration_seconds: 5,
|
|
131
|
+
summary: 'ok',
|
|
132
|
+
findings: [],
|
|
133
|
+
metrics: {},
|
|
134
|
+
downstream_signals: [],
|
|
135
|
+
};
|
|
136
|
+
sm.writeSkillOutput(output);
|
|
137
|
+
const loaded = sm.readSkillOutput('code-review');
|
|
138
|
+
(0, vitest_1.expect)(loaded).not.toBeNull();
|
|
139
|
+
(0, vitest_1.expect)(loaded.skill_id).toBe('code-review');
|
|
140
|
+
});
|
|
141
|
+
(0, vitest_1.it)('consumes pending signals', () => {
|
|
142
|
+
sm.initSession('proj', 'main');
|
|
143
|
+
const output = {
|
|
144
|
+
skill_id: 'a',
|
|
145
|
+
executed_at: new Date().toISOString(),
|
|
146
|
+
status: 'completed',
|
|
147
|
+
duration_seconds: 1,
|
|
148
|
+
summary: '',
|
|
149
|
+
findings: [],
|
|
150
|
+
metrics: {},
|
|
151
|
+
downstream_signals: [
|
|
152
|
+
{ target_skill: 'b', signal: 'suggest', condition: 'test' },
|
|
153
|
+
{ target_skill: 'c', signal: 'require', condition: 'test2' },
|
|
154
|
+
],
|
|
155
|
+
};
|
|
156
|
+
sm.recordSkillComplete(output);
|
|
157
|
+
(0, vitest_1.expect)(sm.getPendingSignals()).toHaveLength(2);
|
|
158
|
+
(0, vitest_1.expect)(sm.getPendingSignals('b')).toHaveLength(1);
|
|
159
|
+
const consumed = sm.consumeSignal('a', 'b');
|
|
160
|
+
(0, vitest_1.expect)(consumed).not.toBeNull();
|
|
161
|
+
(0, vitest_1.expect)(consumed.signal).toBe('suggest');
|
|
162
|
+
(0, vitest_1.expect)(sm.getPendingSignals()).toHaveLength(1);
|
|
163
|
+
});
|
|
164
|
+
(0, vitest_1.it)('returns blocking signals', () => {
|
|
165
|
+
sm.initSession('proj', 'main');
|
|
166
|
+
const output = {
|
|
167
|
+
skill_id: 'x',
|
|
168
|
+
executed_at: new Date().toISOString(),
|
|
169
|
+
status: 'completed',
|
|
170
|
+
duration_seconds: 1,
|
|
171
|
+
summary: '',
|
|
172
|
+
findings: [],
|
|
173
|
+
metrics: {},
|
|
174
|
+
downstream_signals: [
|
|
175
|
+
{ target_skill: 'y', signal: 'block', condition: 'blocked' },
|
|
176
|
+
{ target_skill: 'z', signal: 'suggest', condition: 'optional' },
|
|
177
|
+
],
|
|
178
|
+
};
|
|
179
|
+
sm.recordSkillComplete(output);
|
|
180
|
+
const blocking = sm.getBlockingSignals();
|
|
181
|
+
(0, vitest_1.expect)(blocking).toHaveLength(1);
|
|
182
|
+
(0, vitest_1.expect)(blocking[0].signal).toBe('block');
|
|
183
|
+
});
|
|
184
|
+
(0, vitest_1.it)('clears session state', () => {
|
|
185
|
+
sm.initSession('proj', 'main');
|
|
186
|
+
sm.clearSession();
|
|
187
|
+
(0, vitest_1.expect)(sm.getSessionContext()).toBeNull();
|
|
188
|
+
});
|
|
189
|
+
(0, vitest_1.describe)('telemetry queue append (shared format with cli/src/telemetry.ts)', () => {
|
|
190
|
+
let tmpHome;
|
|
191
|
+
const savedEnv = {};
|
|
192
|
+
const queueFile = () => path.join(tmpHome, '.enterprise-skills', '.telemetry-queue.json');
|
|
193
|
+
const readQueue = () => JSON.parse(fs.readFileSync(queueFile(), 'utf-8'));
|
|
194
|
+
const makeOutput = (skillId, status) => ({
|
|
195
|
+
skill_id: skillId,
|
|
196
|
+
executed_at: '2026-01-02T00:00:00Z',
|
|
197
|
+
status,
|
|
198
|
+
duration_seconds: 5,
|
|
199
|
+
summary: `${skillId} ran`,
|
|
200
|
+
findings: [],
|
|
201
|
+
metrics: {},
|
|
202
|
+
downstream_signals: [],
|
|
203
|
+
});
|
|
204
|
+
(0, vitest_1.beforeEach)(() => {
|
|
205
|
+
tmpHome = fs.mkdtempSync(path.join(os.tmpdir(), 'sm-telemetry-home-'));
|
|
206
|
+
for (const key of ['USERPROFILE', 'HOME', 'ENTERPRISE_SKILLS_TELEMETRY']) {
|
|
207
|
+
savedEnv[key] = process.env[key];
|
|
208
|
+
delete process.env[key];
|
|
209
|
+
}
|
|
210
|
+
process.env.USERPROFILE = tmpHome;
|
|
211
|
+
process.env.HOME = tmpHome;
|
|
212
|
+
sm.initSession('proj', 'main');
|
|
213
|
+
});
|
|
214
|
+
(0, vitest_1.afterEach)(() => {
|
|
215
|
+
for (const [key, value] of Object.entries(savedEnv)) {
|
|
216
|
+
if (value === undefined)
|
|
217
|
+
delete process.env[key];
|
|
218
|
+
else
|
|
219
|
+
process.env[key] = value;
|
|
220
|
+
}
|
|
221
|
+
fs.rmSync(tmpHome, { recursive: true, force: true });
|
|
222
|
+
});
|
|
223
|
+
(0, vitest_1.it)('appends a skill_completed event on completion', () => {
|
|
224
|
+
sm.recordSkillComplete(makeOutput('security-audit', 'completed'));
|
|
225
|
+
const queue = readQueue();
|
|
226
|
+
(0, vitest_1.expect)(queue).toHaveLength(1);
|
|
227
|
+
(0, vitest_1.expect)(queue[0]).toEqual({
|
|
228
|
+
event_type: 'skill_completed',
|
|
229
|
+
skill_id: 'security-audit',
|
|
230
|
+
duration_ms: 5000,
|
|
231
|
+
success: true,
|
|
232
|
+
session_id: 'test-session-001',
|
|
233
|
+
});
|
|
234
|
+
});
|
|
235
|
+
(0, vitest_1.it)('maps failed to skill_failed and other statuses to skill_executed', () => {
|
|
236
|
+
sm.recordSkillComplete(makeOutput('a', 'failed'));
|
|
237
|
+
sm.recordSkillComplete(makeOutput('b', 'partial'));
|
|
238
|
+
sm.recordSkillComplete(makeOutput('c', 'skipped'));
|
|
239
|
+
const queue = readQueue();
|
|
240
|
+
(0, vitest_1.expect)(queue.map((e) => e.event_type)).toEqual([
|
|
241
|
+
'skill_failed',
|
|
242
|
+
'skill_executed',
|
|
243
|
+
'skill_executed',
|
|
244
|
+
]);
|
|
245
|
+
(0, vitest_1.expect)(queue[0].success).toBe(false);
|
|
246
|
+
(0, vitest_1.expect)(queue[1].success).toBe(false);
|
|
247
|
+
});
|
|
248
|
+
(0, vitest_1.it)('appends to an existing queue and caps it at 200', () => {
|
|
249
|
+
fs.mkdirSync(path.dirname(queueFile()), { recursive: true });
|
|
250
|
+
const existing = Array.from({ length: 199 }, (_, i) => ({
|
|
251
|
+
event_type: 'session_started',
|
|
252
|
+
skill_id: 'cli',
|
|
253
|
+
metadata: { i },
|
|
254
|
+
}));
|
|
255
|
+
fs.writeFileSync(queueFile(), JSON.stringify(existing));
|
|
256
|
+
sm.recordSkillComplete(makeOutput('x', 'completed'));
|
|
257
|
+
sm.recordSkillComplete(makeOutput('y', 'completed'));
|
|
258
|
+
const queue = readQueue();
|
|
259
|
+
(0, vitest_1.expect)(queue).toHaveLength(200);
|
|
260
|
+
(0, vitest_1.expect)(queue[queue.length - 1].skill_id).toBe('y');
|
|
261
|
+
// Oldest entry dropped once past the cap.
|
|
262
|
+
(0, vitest_1.expect)(queue[0].metadata?.i).toBe(1);
|
|
263
|
+
});
|
|
264
|
+
(0, vitest_1.it)('respects the ENTERPRISE_SKILLS_TELEMETRY=off opt-out', () => {
|
|
265
|
+
process.env.ENTERPRISE_SKILLS_TELEMETRY = 'off';
|
|
266
|
+
sm.recordSkillComplete(makeOutput('quiet', 'completed'));
|
|
267
|
+
(0, vitest_1.expect)(fs.existsSync(queueFile())).toBe(false);
|
|
268
|
+
});
|
|
269
|
+
(0, vitest_1.it)('never fails the execution on a corrupt queue file', () => {
|
|
270
|
+
fs.mkdirSync(path.dirname(queueFile()), { recursive: true });
|
|
271
|
+
fs.writeFileSync(queueFile(), '{corrupt');
|
|
272
|
+
const ctx = sm.recordSkillComplete(makeOutput('resilient', 'completed'));
|
|
273
|
+
(0, vitest_1.expect)(ctx.skills_executed).toHaveLength(1);
|
|
274
|
+
(0, vitest_1.expect)(readQueue()).toHaveLength(1);
|
|
275
|
+
});
|
|
276
|
+
});
|
|
277
|
+
});
|
|
278
|
+
//# sourceMappingURL=state-machine.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-machine.test.js","sourceRoot":"","sources":["../../src/__tests__/state-machine.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { type HardeningFinding } from './hardening-sensors';
|
|
2
|
+
import { type StructuredTaskContract, type SubscriptionTier, type TaskDecision, type TaskRiskLevel } from './task-contract';
|
|
3
|
+
export interface SkillCatalogEntry {
|
|
4
|
+
skill_id: string;
|
|
5
|
+
display_name?: string;
|
|
6
|
+
description?: string;
|
|
7
|
+
category?: string;
|
|
8
|
+
trigger_phrases?: string[];
|
|
9
|
+
aliases?: string[];
|
|
10
|
+
}
|
|
11
|
+
export interface AdvisorInput {
|
|
12
|
+
request: string;
|
|
13
|
+
tier?: SubscriptionTier;
|
|
14
|
+
projectType?: string;
|
|
15
|
+
hasActiveSession: boolean;
|
|
16
|
+
hasAuthorityPack: boolean;
|
|
17
|
+
pendingSignals?: Array<{
|
|
18
|
+
signal: string;
|
|
19
|
+
condition: string;
|
|
20
|
+
}>;
|
|
21
|
+
}
|
|
22
|
+
export interface AdvisorDecision {
|
|
23
|
+
request: string;
|
|
24
|
+
intent: string;
|
|
25
|
+
risk_level: TaskRiskLevel;
|
|
26
|
+
tier: SubscriptionTier;
|
|
27
|
+
decision: TaskDecision;
|
|
28
|
+
recommended_skills: string[];
|
|
29
|
+
required_skills: string[];
|
|
30
|
+
blocked_by: string[];
|
|
31
|
+
reasoning: string[];
|
|
32
|
+
sensors: HardeningFinding[];
|
|
33
|
+
task_contract: StructuredTaskContract;
|
|
34
|
+
}
|
|
35
|
+
export declare class OrchestrationAdvisor {
|
|
36
|
+
private catalog;
|
|
37
|
+
constructor(catalog?: SkillCatalogEntry[]);
|
|
38
|
+
static fromRegistry(registryPath?: string): OrchestrationAdvisor;
|
|
39
|
+
advise(input: AdvisorInput): AdvisorDecision;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=advisor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"advisor.d.ts","sourceRoot":"","sources":["../src/advisor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAuB,KAAK,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,EAEL,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,aAAa,EACnB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,cAAc,CAAC,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC/D;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,aAAa,CAAC;IAC1B,IAAI,EAAE,gBAAgB,CAAC;IACvB,QAAQ,EAAE,YAAY,CAAC;IACvB,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,aAAa,EAAE,sBAAsB,CAAC;CACvC;AAiJD,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,OAAO,CAAsB;gBAEzB,OAAO,GAAE,iBAAiB,EAAoB;IAI1D,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,oBAAoB;IAMhE,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,eAAe;CAqE7C"}
|
package/dist/advisor.js
ADDED
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.OrchestrationAdvisor = void 0;
|
|
37
|
+
const fs = __importStar(require("fs"));
|
|
38
|
+
const yaml = __importStar(require("js-yaml"));
|
|
39
|
+
const hardening_sensors_1 = require("./hardening-sensors");
|
|
40
|
+
const task_contract_1 = require("./task-contract");
|
|
41
|
+
const DEFAULT_CATALOG = [
|
|
42
|
+
{
|
|
43
|
+
skill_id: 'session-start',
|
|
44
|
+
category: 'lifecycle',
|
|
45
|
+
trigger_phrases: ['start session', 'load context', 'begin session'],
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
skill_id: 'governance-enforcement',
|
|
49
|
+
category: 'governance',
|
|
50
|
+
trigger_phrases: ['governance', 'pre-code', 'policy', 'authority'],
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
skill_id: 'feature-builder',
|
|
54
|
+
category: 'agentic',
|
|
55
|
+
trigger_phrases: ['build feature', 'add feature', 'implement feature', 'new feature'],
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
skill_id: 'bug-hunter',
|
|
59
|
+
category: 'agentic',
|
|
60
|
+
trigger_phrases: ['bug', 'broken', 'debug', 'not working', 'fix issue'],
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
skill_id: 'refactor-agent',
|
|
64
|
+
category: 'agentic',
|
|
65
|
+
trigger_phrases: ['refactor', 'clean up', 'restructure', 'simplify'],
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
skill_id: 'code-review',
|
|
69
|
+
category: 'audit',
|
|
70
|
+
trigger_phrases: ['review', 'code review', 'check changes'],
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
skill_id: 'security-audit',
|
|
74
|
+
category: 'audit',
|
|
75
|
+
trigger_phrases: ['security', 'secret', 'auth', 'vulnerability', 'credential'],
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
skill_id: 'test-orchestrator',
|
|
79
|
+
category: 'agentic',
|
|
80
|
+
trigger_phrases: ['test', 'tests', 'coverage', 'test suite'],
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
skill_id: 'pre-deploy-check',
|
|
84
|
+
category: 'audit',
|
|
85
|
+
trigger_phrases: ['deploy', 'release', 'ship', 'production', 'publish'],
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
skill_id: 'anti-hallucination-agent',
|
|
89
|
+
category: 'audit',
|
|
90
|
+
trigger_phrases: ['verify', 'grounding', 'citations', 'hallucination', 'claims'],
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
skill_id: 'report-verifier',
|
|
94
|
+
category: 'governance',
|
|
95
|
+
trigger_phrases: ['report', 'statistics', 'numbers', 'audit result'],
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
skill_id: 'rollback-manager',
|
|
99
|
+
category: 'agentic',
|
|
100
|
+
trigger_phrases: ['rollback', 'revert', 'undo', 'restore'],
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
skill_id: 'project-manager',
|
|
104
|
+
category: 'agentic',
|
|
105
|
+
trigger_phrases: [
|
|
106
|
+
'project status',
|
|
107
|
+
'project manager',
|
|
108
|
+
'what should I work on',
|
|
109
|
+
'project health',
|
|
110
|
+
'skill dashboard',
|
|
111
|
+
'project overview',
|
|
112
|
+
'health check',
|
|
113
|
+
],
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
skill_id: 'project-initiator',
|
|
117
|
+
category: 'lifecycle',
|
|
118
|
+
trigger_phrases: [
|
|
119
|
+
'new project',
|
|
120
|
+
'start new project',
|
|
121
|
+
'project initiator',
|
|
122
|
+
'greenfield',
|
|
123
|
+
'what am I building',
|
|
124
|
+
'initiator',
|
|
125
|
+
],
|
|
126
|
+
},
|
|
127
|
+
];
|
|
128
|
+
function unique(values) {
|
|
129
|
+
return Array.from(new Set(values.filter(Boolean)));
|
|
130
|
+
}
|
|
131
|
+
function scoreSkill(skill, request) {
|
|
132
|
+
const text = request.toLowerCase();
|
|
133
|
+
const haystack = [
|
|
134
|
+
skill.skill_id,
|
|
135
|
+
skill.display_name ?? '',
|
|
136
|
+
skill.description ?? '',
|
|
137
|
+
...(skill.trigger_phrases ?? []),
|
|
138
|
+
...(skill.aliases ?? []),
|
|
139
|
+
].join(' ').toLowerCase();
|
|
140
|
+
let score = 0;
|
|
141
|
+
for (const token of text.split(/[^a-z0-9-]+/).filter(t => t.length > 2)) {
|
|
142
|
+
if (haystack.includes(token))
|
|
143
|
+
score += 1;
|
|
144
|
+
}
|
|
145
|
+
for (const trigger of skill.trigger_phrases ?? []) {
|
|
146
|
+
if (text.includes(trigger.toLowerCase()))
|
|
147
|
+
score += 5;
|
|
148
|
+
}
|
|
149
|
+
return score;
|
|
150
|
+
}
|
|
151
|
+
function deriveIntent(request) {
|
|
152
|
+
const text = request.toLowerCase();
|
|
153
|
+
if (/(bug|broken|debug|not working|error|failed)/.test(text))
|
|
154
|
+
return 'bugfix';
|
|
155
|
+
if (/(build|add|implement|create|feature)/.test(text))
|
|
156
|
+
return 'feature_build';
|
|
157
|
+
if (/(refactor|clean up|restructure|simplify)/.test(text))
|
|
158
|
+
return 'refactor';
|
|
159
|
+
if (/(deploy|release|ship|publish|production)/.test(text))
|
|
160
|
+
return 'release';
|
|
161
|
+
if (/(security|auth|secret|credential|vulnerability)/.test(text))
|
|
162
|
+
return 'security';
|
|
163
|
+
if (/(test|coverage|qa|verify)/.test(text))
|
|
164
|
+
return 'verification';
|
|
165
|
+
if (/(strategy|architecture|schema|design)/.test(text))
|
|
166
|
+
return 'architecture_or_strategy';
|
|
167
|
+
return 'general_engineering';
|
|
168
|
+
}
|
|
169
|
+
function deriveRisk(request, sensors) {
|
|
170
|
+
if (sensors.some(sensor => sensor.severity === 'critical'))
|
|
171
|
+
return 'critical';
|
|
172
|
+
if (/(deploy|release|production|auth|payment|secret|schema|migration)/i.test(request))
|
|
173
|
+
return 'high';
|
|
174
|
+
if (/(refactor|test|verify|security|review)/i.test(request))
|
|
175
|
+
return 'medium';
|
|
176
|
+
return 'low';
|
|
177
|
+
}
|
|
178
|
+
function decisionFromRiskAndSensors(tier, risk, sensors) {
|
|
179
|
+
if (sensors.some(sensor => sensor.action === 'block'))
|
|
180
|
+
return 'block';
|
|
181
|
+
if (tier === 'enterprise' && (risk === 'high' || risk === 'critical'))
|
|
182
|
+
return 'needs_approval';
|
|
183
|
+
if (sensors.some(sensor => sensor.action === 'require'))
|
|
184
|
+
return 'require';
|
|
185
|
+
if (tier === 'team' && risk === 'high')
|
|
186
|
+
return 'require';
|
|
187
|
+
return risk === 'low' ? 'suggest' : 'require';
|
|
188
|
+
}
|
|
189
|
+
class OrchestrationAdvisor {
|
|
190
|
+
catalog;
|
|
191
|
+
constructor(catalog = DEFAULT_CATALOG) {
|
|
192
|
+
this.catalog = catalog.length > 0 ? catalog : DEFAULT_CATALOG;
|
|
193
|
+
}
|
|
194
|
+
static fromRegistry(registryPath) {
|
|
195
|
+
if (!registryPath || !fs.existsSync(registryPath))
|
|
196
|
+
return new OrchestrationAdvisor();
|
|
197
|
+
const parsed = yaml.load(fs.readFileSync(registryPath, 'utf-8'));
|
|
198
|
+
return new OrchestrationAdvisor(parsed.skills ?? DEFAULT_CATALOG);
|
|
199
|
+
}
|
|
200
|
+
advise(input) {
|
|
201
|
+
const tier = input.tier ?? 'community';
|
|
202
|
+
const sensors = (0, hardening_sensors_1.runHardeningSensors)({
|
|
203
|
+
request: input.request,
|
|
204
|
+
hasActiveSession: input.hasActiveSession,
|
|
205
|
+
hasAuthorityPack: input.hasAuthorityPack,
|
|
206
|
+
recentSignals: input.pendingSignals,
|
|
207
|
+
});
|
|
208
|
+
const intent = deriveIntent(input.request);
|
|
209
|
+
const riskLevel = deriveRisk(input.request, sensors);
|
|
210
|
+
const ranked = this.catalog
|
|
211
|
+
.map(skill => ({ skill, score: scoreSkill(skill, input.request) }))
|
|
212
|
+
.filter(item => item.score > 0)
|
|
213
|
+
.sort((a, b) => b.score - a.score)
|
|
214
|
+
.map(item => item.skill.skill_id);
|
|
215
|
+
const sensorSkills = sensors.map(sensor => sensor.recommended_skill ?? '');
|
|
216
|
+
const requiredSkills = unique([
|
|
217
|
+
...sensors.filter(sensor => sensor.action === 'require' || sensor.action === 'block').map(sensor => sensor.recommended_skill ?? ''),
|
|
218
|
+
riskLevel === 'high' || riskLevel === 'critical' ? 'governance-enforcement' : '',
|
|
219
|
+
]);
|
|
220
|
+
const recommendedSkills = unique([
|
|
221
|
+
...requiredSkills,
|
|
222
|
+
...sensorSkills,
|
|
223
|
+
...ranked.slice(0, 5),
|
|
224
|
+
intent === 'feature_build' ? 'feature-builder' : '',
|
|
225
|
+
intent === 'bugfix' ? 'bug-hunter' : '',
|
|
226
|
+
intent === 'refactor' ? 'refactor-agent' : '',
|
|
227
|
+
intent === 'release' ? 'pre-deploy-check' : '',
|
|
228
|
+
intent === 'security' ? 'security-audit' : '',
|
|
229
|
+
intent === 'verification' ? 'test-orchestrator' : '',
|
|
230
|
+
]);
|
|
231
|
+
const decision = decisionFromRiskAndSensors(tier, riskLevel, sensors);
|
|
232
|
+
const blockedBy = sensors.filter(sensor => sensor.action === 'block').map(sensor => sensor.message);
|
|
233
|
+
const reasoning = [
|
|
234
|
+
`Intent classified as ${intent}.`,
|
|
235
|
+
`Risk classified as ${riskLevel}.`,
|
|
236
|
+
`Tier policy evaluated as ${tier}.`,
|
|
237
|
+
`${sensors.length} hardening sensor(s) fired.`,
|
|
238
|
+
recommendedSkills.length > 0
|
|
239
|
+
? `Recommended harness modules: ${recommendedSkills.join(', ')}.`
|
|
240
|
+
: 'No direct skill match found; default to governance-enforcement and session-start.',
|
|
241
|
+
];
|
|
242
|
+
const taskContract = (0, task_contract_1.buildStructuredTaskContract)({
|
|
243
|
+
request: input.request,
|
|
244
|
+
intent,
|
|
245
|
+
riskLevel,
|
|
246
|
+
tier,
|
|
247
|
+
decision,
|
|
248
|
+
recommendedSkills: recommendedSkills.length > 0 ? recommendedSkills : ['governance-enforcement', 'session-start'],
|
|
249
|
+
requiredSkills,
|
|
250
|
+
sensors,
|
|
251
|
+
});
|
|
252
|
+
return {
|
|
253
|
+
request: input.request,
|
|
254
|
+
intent,
|
|
255
|
+
risk_level: riskLevel,
|
|
256
|
+
tier,
|
|
257
|
+
decision,
|
|
258
|
+
recommended_skills: taskContract.recommended_skills,
|
|
259
|
+
required_skills: taskContract.required_skills,
|
|
260
|
+
blocked_by: blockedBy,
|
|
261
|
+
reasoning,
|
|
262
|
+
sensors,
|
|
263
|
+
task_contract: taskContract,
|
|
264
|
+
};
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
exports.OrchestrationAdvisor = OrchestrationAdvisor;
|
|
268
|
+
//# sourceMappingURL=advisor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"advisor.js","sourceRoot":"","sources":["../src/advisor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { ApiResponse, ExecuteRequest, CompleteRequest, GateRequest, SignalRequest, DashboardResponse } from './types';
|
|
2
|
+
export interface SupabaseClient {
|
|
3
|
+
from(table: string): SupabaseQuery;
|
|
4
|
+
}
|
|
5
|
+
interface SupabaseQuery {
|
|
6
|
+
insert(data: Record<string, unknown> | Record<string, unknown>[]): SupabaseQuery;
|
|
7
|
+
select(columns?: string): SupabaseQuery;
|
|
8
|
+
update(data: Record<string, unknown>): SupabaseQuery;
|
|
9
|
+
eq(column: string, value: unknown): SupabaseQuery;
|
|
10
|
+
in(column: string, values: unknown[]): SupabaseQuery;
|
|
11
|
+
order(column: string, options?: {
|
|
12
|
+
ascending?: boolean;
|
|
13
|
+
}): SupabaseQuery;
|
|
14
|
+
limit(count: number): SupabaseQuery;
|
|
15
|
+
gte(column: string, value: unknown): SupabaseQuery;
|
|
16
|
+
single(): SupabaseQuery;
|
|
17
|
+
then(resolve: (result: {
|
|
18
|
+
data: unknown;
|
|
19
|
+
error: unknown;
|
|
20
|
+
}) => void): void;
|
|
21
|
+
}
|
|
22
|
+
export declare function handleExecute(supabase: SupabaseClient, licenseKey: string, body: ExecuteRequest): Promise<ApiResponse>;
|
|
23
|
+
export declare function handleComplete(supabase: SupabaseClient, licenseKey: string, body: CompleteRequest): Promise<ApiResponse>;
|
|
24
|
+
export declare function handleGate(supabase: SupabaseClient, licenseKey: string, body: GateRequest): Promise<ApiResponse>;
|
|
25
|
+
export declare function handleSignal(supabase: SupabaseClient, licenseKey: string, body: SignalRequest): Promise<ApiResponse>;
|
|
26
|
+
export declare function handleDashboard(supabase: SupabaseClient, licenseKey: string, sessionId?: string): Promise<ApiResponse<DashboardResponse>>;
|
|
27
|
+
export {};
|
|
28
|
+
//# sourceMappingURL=handlers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/api/handlers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EACX,cAAc,EACd,eAAe,EACf,WAAW,EACX,aAAa,EACb,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CAAC;CACpC;AAED,UAAU,aAAa;IACrB,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,aAAa,CAAC;IACjF,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC;IACxC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,aAAa,CAAC;IACrD,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,aAAa,CAAC;IAClD,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,aAAa,CAAC;IACrD,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,aAAa,CAAC;IACxE,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CAAC;IACpC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,aAAa,CAAC;IACnD,MAAM,IAAI,aAAa,CAAC;IACxB,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,GAAG,IAAI,CAAC;CAC1E;AAgBD,wBAAsB,aAAa,CACjC,QAAQ,EAAE,cAAc,EACxB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,WAAW,CAAC,CA4CtB;AAED,wBAAsB,cAAc,CAClC,QAAQ,EAAE,cAAc,EACxB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,eAAe,GACpB,OAAO,CAAC,WAAW,CAAC,CA+EtB;AAED,wBAAsB,UAAU,CAC9B,QAAQ,EAAE,cAAc,EACxB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC,WAAW,CAAC,CA+DtB;AAED,wBAAsB,YAAY,CAChC,QAAQ,EAAE,cAAc,EACxB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,WAAW,CAAC,CAiDtB;AAED,wBAAsB,eAAe,CACnC,QAAQ,EAAE,cAAc,EACxB,UAAU,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CA6DzC"}
|