opencode-telos 1.0.0 → 1.0.2
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/code-intelligence/ast/cache.d.ts.map +1 -1
- package/dist/code-intelligence/ast/cache.js +8 -5
- package/dist/code-intelligence/ast/cache.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/opencode/hooks.d.ts +1 -1
- package/dist/opencode/hooks.d.ts.map +1 -1
- package/dist/opencode/hooks.js +34 -40
- package/dist/opencode/hooks.js.map +1 -1
- package/dist/opencode/tools.d.ts.map +1 -1
- package/dist/opencode/tools.js +9 -8
- package/dist/opencode/tools.js.map +1 -1
- package/dist/sdd/cache/atomic.d.ts +3 -0
- package/dist/sdd/cache/atomic.d.ts.map +1 -0
- package/dist/sdd/cache/atomic.js +35 -0
- package/dist/sdd/cache/atomic.js.map +1 -0
- package/dist/sdd/cache/fingerprint.d.ts +18 -0
- package/dist/sdd/cache/fingerprint.d.ts.map +1 -0
- package/dist/sdd/cache/fingerprint.js +99 -0
- package/dist/sdd/cache/fingerprint.js.map +1 -0
- package/dist/sdd/cache/manager.d.ts +24 -10
- package/dist/sdd/cache/manager.d.ts.map +1 -1
- package/dist/sdd/cache/manager.js +184 -33
- package/dist/sdd/cache/manager.js.map +1 -1
- package/dist/sdd/cache/snapshot-store.d.ts +2 -1
- package/dist/sdd/cache/snapshot-store.d.ts.map +1 -1
- package/dist/sdd/cache/snapshot-store.js +13 -6
- package/dist/sdd/cache/snapshot-store.js.map +1 -1
- package/dist/sdd/persistence/sqlite.d.ts.map +1 -1
- package/dist/sdd/persistence/sqlite.js +66 -41
- package/dist/sdd/persistence/sqlite.js.map +1 -1
- package/dist/sdd/persistence/yaml.d.ts.map +1 -1
- package/dist/sdd/persistence/yaml.js +33 -25
- package/dist/sdd/persistence/yaml.js.map +1 -1
- package/package.json +1 -1
- package/src/code-intelligence/ast/cache.ts +11 -6
- package/src/index.ts +4 -1
- package/src/opencode/hooks.ts +34 -39
- package/src/opencode/tools.ts +9 -8
- package/src/sdd/cache/atomic.ts +30 -0
- package/src/sdd/cache/fingerprint.ts +98 -0
- package/src/sdd/cache/manager.ts +182 -39
- package/src/sdd/cache/snapshot-store.ts +14 -7
- package/src/sdd/persistence/sqlite.ts +50 -24
- package/src/sdd/persistence/yaml.ts +40 -26
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../src/code-intelligence/ast/cache.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../src/code-intelligence/ast/cache.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAGzC,UAAU,UAAU;IAClB,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,cAAc,EAAE,MAAM,CAAA;IACtB,MAAM,EAAE,UAAU,CAAA;CACnB;AAOD,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;IAChC,KAAK,EAAE,OAAO,CAAA;CACf;AAMD,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,QAAQ,CAezD;AAED,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,UAAU,CAYjH;AAED,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,IAAI,CAMtE"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { existsSync, mkdirSync, readFileSync
|
|
1
|
+
import { existsSync, mkdirSync, readFileSync } from "fs";
|
|
2
2
|
import { join, relative } from "path";
|
|
3
3
|
import { contentHash } from "./common.js";
|
|
4
4
|
import { getLanguageParser } from "./registry.js";
|
|
5
|
+
import { atomicWriteFile } from "../../sdd/cache/atomic.js";
|
|
5
6
|
function cachePath(projectDir) {
|
|
6
7
|
return join(projectDir, ".sdd", "ast-cache.json");
|
|
7
8
|
}
|
|
@@ -11,7 +12,11 @@ export function loadAstCache(projectDir) {
|
|
|
11
12
|
return { entries: new Map(), dirty: false };
|
|
12
13
|
try {
|
|
13
14
|
const document = JSON.parse(readFileSync(path, "utf-8"));
|
|
14
|
-
|
|
15
|
+
if (document.version !== 2 || !document.entries || typeof document.entries !== "object") {
|
|
16
|
+
return { entries: new Map(), dirty: false };
|
|
17
|
+
}
|
|
18
|
+
const entries = Object.entries(document.entries).filter(([, entry]) => Boolean(entry && entry.content_hash && entry.parser && entry.parser_version && entry.parsed));
|
|
19
|
+
return { entries: new Map(entries), dirty: false };
|
|
15
20
|
}
|
|
16
21
|
catch {
|
|
17
22
|
return { entries: new Map(), dirty: false };
|
|
@@ -37,8 +42,6 @@ export function saveAstCache(projectDir, cache) {
|
|
|
37
42
|
if (!existsSync(directory))
|
|
38
43
|
mkdirSync(directory, { recursive: true });
|
|
39
44
|
const entries = Object.fromEntries(cache.entries);
|
|
40
|
-
|
|
41
|
-
writeFileSync(temporary, JSON.stringify({ version: 1, entries }), "utf-8");
|
|
42
|
-
renameSync(temporary, cachePath(projectDir));
|
|
45
|
+
atomicWriteFile(cachePath(projectDir), JSON.stringify({ version: 2, entries }));
|
|
43
46
|
}
|
|
44
47
|
//# sourceMappingURL=cache.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../src/code-intelligence/ast/cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../src/code-intelligence/ast/cache.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;;;;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;;;;;AAiBjD,wBAGC;AAED,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -2,7 +2,10 @@ import { createSddTools } from "./opencode/tools.js";
|
|
|
2
2
|
import { createSddHooks } from "./opencode/hooks.js";
|
|
3
3
|
const SddPlugin = async (_ctx) => {
|
|
4
4
|
const tools = createSddTools();
|
|
5
|
-
|
|
5
|
+
// OpenCode can load npm plugins while its process cwd is unrelated to the
|
|
6
|
+
// active workspace. Always bind hook state to the project directory supplied
|
|
7
|
+
// by the plugin runtime so .sdd stays inside the project.
|
|
8
|
+
const hooks = createSddHooks(_ctx.directory);
|
|
6
9
|
return {
|
|
7
10
|
tool: tools,
|
|
8
11
|
...hooks,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEpD,MAAM,SAAS,GAAW,KAAK,EAAE,IAAI,EAAE,EAAE;IACvC,MAAM,KAAK,GAAG,cAAc,EAAE,CAAA;IAC9B,MAAM,KAAK,GAAG,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEpD,MAAM,SAAS,GAAW,KAAK,EAAE,IAAI,EAAE,EAAE;IACvC,MAAM,KAAK,GAAG,cAAc,EAAE,CAAA;IAC9B,0EAA0E;IAC1E,6EAA6E;IAC7E,0DAA0D;IAC1D,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAE5C,OAAO;QACL,IAAI,EAAE,KAAK;QACX,GAAG,KAAK;KACT,CAAA;AACH,CAAC,CAAA;AAED,eAAe;IACb,EAAE,EAAE,gBAAgB;IACpB,MAAM,EAAE,SAAS;CAClB,CAAA;AAED,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA"}
|
package/dist/opencode/hooks.d.ts
CHANGED
|
@@ -5,5 +5,5 @@ import type { Hooks } from "@opencode-ai/plugin";
|
|
|
5
5
|
* Exported for testing.
|
|
6
6
|
*/
|
|
7
7
|
export declare function detectShellFileWrites(command: string): string[];
|
|
8
|
-
export declare function createSddHooks(): Hooks;
|
|
8
|
+
export declare function createSddHooks(projectDir: string): Hooks;
|
|
9
9
|
//# sourceMappingURL=hooks.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/opencode/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AA8GhD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAwD/D;AAED,wBAAgB,cAAc,
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/opencode/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AA8GhD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAwD/D;AAED,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,KAAK,CAqiBxD"}
|
package/dist/opencode/hooks.js
CHANGED
|
@@ -158,18 +158,18 @@ export function detectShellFileWrites(command) {
|
|
|
158
158
|
}
|
|
159
159
|
return [...new Set(files)];
|
|
160
160
|
}
|
|
161
|
-
export function createSddHooks() {
|
|
161
|
+
export function createSddHooks(projectDir) {
|
|
162
162
|
let systemInjected = false;
|
|
163
163
|
return {
|
|
164
164
|
"experimental.chat.system.transform": async (_input, output) => {
|
|
165
165
|
if (systemInjected)
|
|
166
166
|
return;
|
|
167
|
-
if (!isSddEnabled(
|
|
167
|
+
if (!isSddEnabled(projectDir))
|
|
168
168
|
return;
|
|
169
169
|
// Run pending migrations on first load
|
|
170
|
-
if (hasPendingMigrations(
|
|
170
|
+
if (hasPendingMigrations(projectDir)) {
|
|
171
171
|
try {
|
|
172
|
-
const migrationResults = runMigrations(
|
|
172
|
+
const migrationResults = runMigrations(projectDir);
|
|
173
173
|
const successful = migrationResults.filter(r => r.success);
|
|
174
174
|
if (successful.length > 0) {
|
|
175
175
|
output.system.push(`## 🔄 opencode-telos Migrations: ${successful.length} fix(es) applied`);
|
|
@@ -180,16 +180,16 @@ export function createSddHooks() {
|
|
|
180
180
|
console.error("[opencode-telos] Migration error:", err);
|
|
181
181
|
}
|
|
182
182
|
}
|
|
183
|
-
const repo = createRepository(
|
|
183
|
+
const repo = createRepository(projectDir);
|
|
184
184
|
if (repo.isInitialized()) {
|
|
185
185
|
// Restore persistent cache from disk (cross-session)
|
|
186
|
-
const cacheMgr = getCacheManager(
|
|
186
|
+
const cacheMgr = getCacheManager(projectDir);
|
|
187
187
|
cacheMgr.restoreFromPersistentCache();
|
|
188
188
|
output.system.push(SDD_CORE_SYSTEM_PROMPT);
|
|
189
189
|
// Tool Registry: injeta tools relevantes para o estado atual do grafo
|
|
190
190
|
try {
|
|
191
191
|
const { getGraphSnapshot } = await import("./router/graph-state-snapshot.js");
|
|
192
|
-
const snapshot = getGraphSnapshot(
|
|
192
|
+
const snapshot = getGraphSnapshot(projectDir);
|
|
193
193
|
const { formatGraphState } = await import("./router/graph-state-snapshot.js");
|
|
194
194
|
output.system.push(formatGraphState(snapshot));
|
|
195
195
|
}
|
|
@@ -217,19 +217,13 @@ export function createSddHooks() {
|
|
|
217
217
|
if (pending.length > 0) {
|
|
218
218
|
output.system.push(`## Pending Changes: ${pending.length} change(s) awaiting action`);
|
|
219
219
|
}
|
|
220
|
-
// G: Save graph snapshot to disk for fast cross-session restore
|
|
221
|
-
try {
|
|
222
|
-
const cacheMgrForSnapshot = getCacheManager(process.cwd());
|
|
223
|
-
cacheMgrForSnapshot.saveGraphSnapshot(graph);
|
|
224
|
-
}
|
|
225
|
-
catch { }
|
|
226
220
|
}
|
|
227
221
|
catch {
|
|
228
222
|
// Handoff is optional, don't fail if it can't be generated
|
|
229
223
|
}
|
|
230
224
|
// Persist cache to disk for cross-session reuse
|
|
231
225
|
try {
|
|
232
|
-
const cacheMgr = getCacheManager(
|
|
226
|
+
const cacheMgr = getCacheManager(projectDir);
|
|
233
227
|
cacheMgr.persistToDisk();
|
|
234
228
|
}
|
|
235
229
|
catch { }
|
|
@@ -245,27 +239,27 @@ export function createSddHooks() {
|
|
|
245
239
|
const text = part.text.trim();
|
|
246
240
|
// Detect /sdd commands
|
|
247
241
|
if (text === "/sdd on") {
|
|
248
|
-
const state = setToggleState(
|
|
242
|
+
const state = setToggleState(projectDir, true);
|
|
249
243
|
systemInjected = false;
|
|
250
244
|
part.text = `✅ SDD enforcement **enabled** at ${state.changed_at}.\n\nSpec-Driven Development is now active. All code changes will go through the SDD workflow.`;
|
|
251
245
|
return;
|
|
252
246
|
}
|
|
253
247
|
if (text === "/sdd off") {
|
|
254
|
-
const state = setToggleState(
|
|
248
|
+
const state = setToggleState(projectDir, false);
|
|
255
249
|
systemInjected = false;
|
|
256
250
|
resetWorkflowState();
|
|
257
251
|
part.text = `⏸️ SDD enforcement **disabled** at ${state.changed_at}.\n\nYou can now make code changes freely without SDD workflow. Use \`/sdd on\` to re-enable.`;
|
|
258
252
|
return;
|
|
259
253
|
}
|
|
260
254
|
if (text === "/sdd status") {
|
|
261
|
-
const state = getToggleState(
|
|
255
|
+
const state = getToggleState(projectDir);
|
|
262
256
|
const status = state.enabled ? "🟢 ON" : "🔴 OFF";
|
|
263
257
|
part.text = `SDD Status: ${status}\nLast changed: ${state.changed_at}\n\nCommands: \`/sdd on\`, \`/sdd off\`, \`/sdd status\`, \`/sdd cache reset\``;
|
|
264
258
|
return;
|
|
265
259
|
}
|
|
266
260
|
// H: /sdd cache reset — full cache reset without killing the process
|
|
267
261
|
if (text === "/sdd cache reset") {
|
|
268
|
-
const cacheMgr = getCacheManager(
|
|
262
|
+
const cacheMgr = getCacheManager(projectDir);
|
|
269
263
|
const result = cacheMgr.fullReset();
|
|
270
264
|
const lines = ["## 🧹 Cache Reset Complete"];
|
|
271
265
|
lines.push(`- Memory cache: ${result.cleared.memory ? "✅ cleared" : "⏭️ skipped"}`);
|
|
@@ -278,7 +272,7 @@ export function createSddHooks() {
|
|
|
278
272
|
return;
|
|
279
273
|
}
|
|
280
274
|
// Semantic nudge — replaces regex-based pattern detection
|
|
281
|
-
if (isSddEnabled(
|
|
275
|
+
if (isSddEnabled(projectDir)) {
|
|
282
276
|
const nudge = formatNudgeInput(text);
|
|
283
277
|
if (nudge) {
|
|
284
278
|
part.text += `\n\n${nudge}`;
|
|
@@ -288,13 +282,13 @@ export function createSddHooks() {
|
|
|
288
282
|
},
|
|
289
283
|
"tool.execute.before": async (input, output) => {
|
|
290
284
|
// Skip enforcement if SDD is disabled
|
|
291
|
-
if (!isSddEnabled(
|
|
285
|
+
if (!isSddEnabled(projectDir))
|
|
292
286
|
return;
|
|
293
287
|
// Enforce workflow context for SDD graph mutation tools
|
|
294
288
|
if (input.tool.startsWith("sdd.")) {
|
|
295
289
|
const access = checkToolAccess(input.tool);
|
|
296
290
|
if (!access.allowed) {
|
|
297
|
-
addAuditEntry(
|
|
291
|
+
addAuditEntry(projectDir, process.env.USER || "current", input.tool, "graph", "denied", access.reason || "Workflow not active");
|
|
298
292
|
throw new Error(access.reason);
|
|
299
293
|
}
|
|
300
294
|
}
|
|
@@ -304,7 +298,7 @@ export function createSddHooks() {
|
|
|
304
298
|
if (typeof command === "string" && command.length > 0) {
|
|
305
299
|
// ENFORCEMENT: Block shell writes to .sdd/ directory
|
|
306
300
|
if (command.includes(".sdd/") && (/[>]|writeFile|open\(['"].*['"],\s*['"]w/.test(command))) {
|
|
307
|
-
addAuditEntry(
|
|
301
|
+
addAuditEntry(projectDir, process.env.USER || "current", "shell_command", ".sdd/", "denied", "Shell command writes to .sdd/ directory");
|
|
308
302
|
throw new Error([
|
|
309
303
|
`[SDD BLOCKED] Shell command detected that writes to .sdd/ directory.`,
|
|
310
304
|
` Command: ${command.slice(0, 200)}`,
|
|
@@ -315,7 +309,7 @@ export function createSddHooks() {
|
|
|
315
309
|
}
|
|
316
310
|
const detectedFiles = detectShellFileWrites(command);
|
|
317
311
|
if (detectedFiles.length > 0) {
|
|
318
|
-
const repo = createRepository(
|
|
312
|
+
const repo = createRepository(projectDir);
|
|
319
313
|
if (!repo.isInitialized())
|
|
320
314
|
return;
|
|
321
315
|
const graph = repo.loadGraph();
|
|
@@ -323,7 +317,7 @@ export function createSddHooks() {
|
|
|
323
317
|
const specNodeTypes = ["feature", "entity", "requirement", "architecture_component", "module"];
|
|
324
318
|
const hasSpecNodes = graph.nodes.some(n => specNodeTypes.includes(n.type));
|
|
325
319
|
if (!hasSpecNodes && graph.nodes.length > 0) {
|
|
326
|
-
addAuditEntry(
|
|
320
|
+
addAuditEntry(projectDir, process.env.USER || "current", "shell_command", detectedFiles.join(", "), "denied", "Shell command writes source files without spec nodes");
|
|
327
321
|
throw new Error([
|
|
328
322
|
`[SDD BLOCKED] Shell command detected that writes source files:`,
|
|
329
323
|
` Files: ${detectedFiles.join(", ")}`,
|
|
@@ -346,7 +340,7 @@ export function createSddHooks() {
|
|
|
346
340
|
return detectedFiles.some((f) => affectedFiles.some((af) => f.includes(af) || af.includes(f)));
|
|
347
341
|
});
|
|
348
342
|
if (approvedChanges.length === 0) {
|
|
349
|
-
addAuditEntry(
|
|
343
|
+
addAuditEntry(projectDir, process.env.USER || "current", "shell_command", detectedFiles.join(", "), "denied", "No approved Change node for shell-written files");
|
|
350
344
|
throw new Error([
|
|
351
345
|
`[SDD BLOCKED] Shell command detected that writes source files without SDD approval:`,
|
|
352
346
|
` Command: ${command.slice(0, 200)}`,
|
|
@@ -366,7 +360,7 @@ export function createSddHooks() {
|
|
|
366
360
|
// ENFORCEMENT: Require spec update before shell write
|
|
367
361
|
const shellWorkflow = getWorkflowState();
|
|
368
362
|
if (shellWorkflow.enforced && !shellWorkflow.specUpdated) {
|
|
369
|
-
addAuditEntry(
|
|
363
|
+
addAuditEntry(projectDir, process.env.USER || "current", "shell_command", detectedFiles.join(", "), "denied", "SDD spec not updated after enforce");
|
|
370
364
|
throw new Error([
|
|
371
365
|
`[SDD BLOCKED] Cannot write code before updating the specification.`,
|
|
372
366
|
` Files: ${detectedFiles.join(", ")}`,
|
|
@@ -384,9 +378,9 @@ export function createSddHooks() {
|
|
|
384
378
|
}
|
|
385
379
|
// Approved — create snapshots
|
|
386
380
|
for (const change of approvedChanges) {
|
|
387
|
-
createSnapshot(graph, change.id,
|
|
381
|
+
createSnapshot(graph, change.id, projectDir);
|
|
388
382
|
}
|
|
389
|
-
addAuditEntry(
|
|
383
|
+
addAuditEntry(projectDir, process.env.USER || "current", "shell_command", detectedFiles.join(", "), "allowed", `Approved changes: ${approvedChanges.map((c) => c.id).join(", ")}`);
|
|
390
384
|
return;
|
|
391
385
|
}
|
|
392
386
|
}
|
|
@@ -397,7 +391,7 @@ export function createSddHooks() {
|
|
|
397
391
|
// ENFORCEMENT: Block direct writes to .sdd/ directory
|
|
398
392
|
// The SDD graph can ONLY be modified through sdd.* tools
|
|
399
393
|
if (filePath.includes(".sdd/")) {
|
|
400
|
-
addAuditEntry(
|
|
394
|
+
addAuditEntry(projectDir, process.env.USER || "current", input.tool, filePath, "denied", "Direct .sdd/ modification blocked");
|
|
401
395
|
throw new Error([
|
|
402
396
|
`[SDD BLOCKED] Cannot write directly to .sdd/ directory.`,
|
|
403
397
|
` File: ${filePath}`,
|
|
@@ -416,7 +410,7 @@ export function createSddHooks() {
|
|
|
416
410
|
if (!isSourceFile)
|
|
417
411
|
return;
|
|
418
412
|
// Check if SDD is initialized
|
|
419
|
-
const repo = createRepository(
|
|
413
|
+
const repo = createRepository(projectDir);
|
|
420
414
|
if (!repo.isInitialized())
|
|
421
415
|
return;
|
|
422
416
|
const graph = repo.loadGraph();
|
|
@@ -424,7 +418,7 @@ export function createSddHooks() {
|
|
|
424
418
|
const specNodeTypes = ["feature", "entity", "requirement", "architecture_component", "module"];
|
|
425
419
|
const hasSpecNodes = graph.nodes.some(n => specNodeTypes.includes(n.type));
|
|
426
420
|
if (!hasSpecNodes && graph.nodes.length > 0) {
|
|
427
|
-
addAuditEntry(
|
|
421
|
+
addAuditEntry(projectDir, process.env.USER || "current", "write_file", filePath, "denied", "No spec nodes in graph");
|
|
428
422
|
throw new Error([
|
|
429
423
|
`[SDD BLOCKED] Cannot create code without specification.`,
|
|
430
424
|
"",
|
|
@@ -439,10 +433,10 @@ export function createSddHooks() {
|
|
|
439
433
|
].join("\n"));
|
|
440
434
|
}
|
|
441
435
|
// Check permissions before allowing changes
|
|
442
|
-
const userRole = getUserRoleWithAuth(
|
|
443
|
-
const hasPermission = checkPermission(userRole, "create_change",
|
|
436
|
+
const userRole = getUserRoleWithAuth(projectDir, process.env.USER || "current");
|
|
437
|
+
const hasPermission = checkPermission(userRole, "create_change", projectDir);
|
|
444
438
|
if (!hasPermission) {
|
|
445
|
-
addAuditEntry(
|
|
439
|
+
addAuditEntry(projectDir, process.env.USER || "current", "write_file", filePath, "denied", "Insufficient permissions");
|
|
446
440
|
throw new Error([
|
|
447
441
|
`[SDD PERMISSION DENIED] Cannot modify ${filePath}.`,
|
|
448
442
|
"",
|
|
@@ -461,7 +455,7 @@ export function createSddHooks() {
|
|
|
461
455
|
// ENFORCEMENT: Require spec update before code write
|
|
462
456
|
const workflow = getWorkflowState();
|
|
463
457
|
if (workflow.enforced && !workflow.specUpdated) {
|
|
464
|
-
addAuditEntry(
|
|
458
|
+
addAuditEntry(projectDir, process.env.USER || "current", "write_file", filePath, "denied", "SDD spec not updated after enforce");
|
|
465
459
|
throw new Error([
|
|
466
460
|
`[SDD BLOCKED] Cannot write code before updating the specification.`,
|
|
467
461
|
` File: ${filePath}`,
|
|
@@ -479,13 +473,13 @@ export function createSddHooks() {
|
|
|
479
473
|
}
|
|
480
474
|
// Create snapshot before approving change
|
|
481
475
|
for (const change of approvedChanges) {
|
|
482
|
-
createSnapshot(graph, change.id,
|
|
476
|
+
createSnapshot(graph, change.id, projectDir);
|
|
483
477
|
}
|
|
484
|
-
addAuditEntry(
|
|
478
|
+
addAuditEntry(projectDir, process.env.USER || "current", "write_file", filePath, "allowed", `Approved changes: ${approvedChanges.map((c) => c.id).join(", ")}`);
|
|
485
479
|
return;
|
|
486
480
|
}
|
|
487
481
|
// File not covered by any approved Change → BLOCK the write
|
|
488
|
-
addAuditEntry(
|
|
482
|
+
addAuditEntry(projectDir, process.env.USER || "current", "write_file", filePath, "denied", "No approved Change node");
|
|
489
483
|
throw new Error([
|
|
490
484
|
`[SDD BLOCKED] Cannot modify ${filePath}.`,
|
|
491
485
|
"",
|
|
@@ -543,7 +537,7 @@ export function createSddHooks() {
|
|
|
543
537
|
}
|
|
544
538
|
},
|
|
545
539
|
"tool.definition": async (input, output) => {
|
|
546
|
-
if (!isSddEnabled(
|
|
540
|
+
if (!isSddEnabled(projectDir))
|
|
547
541
|
return;
|
|
548
542
|
// Inject SDD enforcement warning into run_terminal_command description
|
|
549
543
|
if (input.toolID === "run_terminal_command") {
|
|
@@ -572,7 +566,7 @@ export function createSddHooks() {
|
|
|
572
566
|
dispose: async () => {
|
|
573
567
|
// E: Persist cache and release resources on session end
|
|
574
568
|
try {
|
|
575
|
-
const cacheMgr = getCacheManager(
|
|
569
|
+
const cacheMgr = getCacheManager(projectDir);
|
|
576
570
|
cacheMgr.persistToDisk();
|
|
577
571
|
cacheMgr.releaseWriteLock();
|
|
578
572
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/opencode/hooks.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/opencode/hooks.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AACnE,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAEhF,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAErF,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAClG,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAG3D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAA;AAC/H,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAE7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAA;AAC1E,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AAEhF,MAAM,iBAAiB,GAAG;IACxB,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,OAAO;IACP,OAAO;IACP,OAAO;IACP,SAAS;IACT,OAAO;IACP,QAAQ;IACR,WAAW;CACZ,CAAA;AAED,MAAM,qBAAqB,GAAG;IAC5B,cAAc;IACd,SAAS;IACT,QAAQ;IACR,SAAS;IACT,SAAS;IACT,cAAc;IACd,eAAe;IACf,gBAAgB;IAChB,OAAO;CACR,CAAA;AAED;;;GAGG;AACH,MAAM,OAAO,GAAG,kFAAkF,CAAA;AAClG,MAAM,QAAQ,GAAG,2FAA2F,CAAA;AAE5G,MAAM,oBAAoB,GAAiF;IACzG,qFAAqF;IACrF;QACE,OAAO,EAAE,yBAAyB;QAClC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACzB;IACD,yCAAyC;IACzC;QACE,OAAO,EAAE,uEAAuE;QAChF,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACzB;IACD,oCAAoC;IACpC;QACE,OAAO,EAAE,oBAAoB;QAC7B,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACzB;IACD,0DAA0D;IAC1D;QACE,OAAO,EAAE,yCAAyC;QAClD,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACzB;IACD,uBAAuB;IACvB;QACE,OAAO,EAAE,qBAAqB;QAC9B,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACzB;IACD,qDAAqD;IACrD;QACE,OAAO,EAAE,oCAAoC;QAC7C,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACzB;IACD,8DAA8D;IAC9D;QACE,OAAO,EAAE,gBAAgB;QACzB,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACzB;IACD,yBAAyB;IACzB;QACE,OAAO,EAAE,wDAAwD;QACjE,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACzB;IACD,2BAA2B;IAC3B;QACE,OAAO,EAAE,uBAAuB;QAChC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACzB;IACD,0CAA0C;IAC1C;QACE,OAAO,EAAE,uBAAuB;QAChC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACzB;IACD,cAAc;IACd;QACE,OAAO,EAAE,4BAA4B;QACrC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACzB;CACF,CAAA;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAe;IACnD,MAAM,KAAK,GAAa,EAAE,CAAA;IAE1B,KAAK,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,oBAAoB,EAAE,CAAC;QAC1D,sCAAsC;QACtC,OAAO,CAAC,SAAS,GAAG,CAAC,CAAA;QAErB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,IAAI,KAA8B,CAAA;YAClC,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBAChD,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,CAAA;gBAC9B,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;oBAAW,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;wBACrD,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;wBACpD,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;oBACf,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YACpC,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,CAAA;gBAC9B,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;oBACtB,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;wBACpB,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;wBACpD,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;oBACf,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,oFAAoF;IACpF,yEAAyE;IACzE,IAAI,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1E,sDAAsD;QACtD,MAAM,WAAW,GAAG,yBAAyB,CAAA;QAC7C,IAAI,KAA8B,CAAA;QAClC,OAAO,CAAC,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACpD,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;YAClB,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;gBACpB,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;oBAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACvC,CAAC;QACH,CAAC;QAED,MAAM,YAAY,GAAG,6CAA6C,CAAA;QAClE,OAAO,CAAC,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACrD,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;YAClB,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;gBACpB,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;oBAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACvC,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;AAC5B,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,UAAkB;IAC/C,IAAI,cAAc,GAAG,KAAK,CAAA;IAE1B,OAAO;QACL,oCAAoC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;YAC7D,IAAI,cAAc;gBAAE,OAAM;YAC1B,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;gBAAE,OAAM;YAErC,uCAAuC;YACvC,IAAI,oBAAoB,CAAC,UAAU,CAAC,EAAE,CAAC;gBACrC,IAAI,CAAC;oBACH,MAAM,gBAAgB,GAAG,aAAa,CAAC,UAAU,CAAC,CAAA;oBAClD,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;oBAC1D,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC1B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,oCAAoC,UAAU,CAAC,MAAM,kBAAkB,CAAC,CAAA;oBAC7F,CAAC;gBACH,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,8CAA8C;oBAC9C,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,GAAG,CAAC,CAAA;gBACzD,CAAC;YACH,CAAC;YAED,MAAM,IAAI,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAA;YACzC,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;gBACzB,qDAAqD;gBACrD,MAAM,QAAQ,GAAG,eAAe,CAAC,UAAU,CAAC,CAAA;gBAC5C,QAAQ,CAAC,0BAA0B,EAAE,CAAA;gBAErC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;gBAE1C,sEAAsE;gBACtE,IAAI,CAAC;oBACH,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,kCAAkC,CAAC,CAAA;oBAC7E,MAAM,QAAQ,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAA;oBAC7C,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,kCAAkC,CAAC,CAAA;oBAC7E,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAA;gBAChD,CAAC;gBAAC,MAAM,CAAC,CAAA,CAAC;gBACV,IAAI,CAAC;oBACH,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;oBAE9B,4CAA4C;oBAC5C,MAAM,WAAW,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAA;oBAC9C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;oBAE/B,mEAAmE;oBACnE,kEAAkE;oBAClE,oEAAoE;oBACpE,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA;oBACvC,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACxD,MAAM,QAAQ,GAAG,CAAC,mBAAmB,CAAC,CAAA;wBACtC,QAAQ,CAAC,IAAI,CAAC,cAAc,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAA;wBAC3D,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;4BAAE,QAAQ,CAAC,IAAI,CAAC,eAAe,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAA;wBAC1F,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;4BAAE,QAAQ,CAAC,IAAI,CAAC,iBAAiB,UAAU,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAA;wBAChG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;oBACzC,CAAC;oBAED,iCAAiC;oBACjC,MAAM,OAAO,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAA;oBACxC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACvB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,OAAO,CAAC,MAAM,4BAA4B,CAAC,CAAA;oBACvF,CAAC;gBAEH,CAAC;gBAAC,MAAM,CAAC;oBACP,2DAA2D;gBAC7D,CAAC;gBACD,gDAAgD;gBAChD,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAG,eAAe,CAAC,UAAU,CAAC,CAAA;oBAC5C,QAAQ,CAAC,aAAa,EAAE,CAAA;gBAC1B,CAAC;gBAAC,MAAM,CAAC,CAAA,CAAC;gBACV,cAAc,GAAG,IAAI,CAAA;YACvB,CAAC;QACH,CAAC;QAED,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;YACvC,IAAI,CAAC,MAAM,CAAC,KAAK;gBAAE,OAAM;YAEzB,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBAChC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;oBAAE,SAAQ;gBAElC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAA;gBAE7B,uBAAuB;gBACvB,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;oBACvB,MAAM,KAAK,GAAG,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;oBAC9C,cAAc,GAAG,KAAK,CAAA;oBACtB,IAAI,CAAC,IAAI,GAAG,oCAAoC,KAAK,CAAC,UAAU,gGAAgG,CAAA;oBAChK,OAAM;gBACR,CAAC;gBAED,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;oBACxB,MAAM,KAAK,GAAG,cAAc,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;oBAC/C,cAAc,GAAG,KAAK,CAAA;oBACtB,kBAAkB,EAAE,CAAA;oBACpB,IAAI,CAAC,IAAI,GAAG,sCAAsC,KAAK,CAAC,UAAU,+FAA+F,CAAA;oBACjK,OAAM;gBACR,CAAC;gBAED,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;oBAC3B,MAAM,KAAK,GAAG,cAAc,CAAC,UAAU,CAAC,CAAA;oBACxC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAA;oBACjD,IAAI,CAAC,IAAI,GAAG,eAAe,MAAM,mBAAmB,KAAK,CAAC,UAAU,gFAAgF,CAAA;oBACpJ,OAAM;gBACR,CAAC;gBAED,qEAAqE;gBACrE,IAAI,IAAI,KAAK,kBAAkB,EAAE,CAAC;oBAChC,MAAM,QAAQ,GAAG,eAAe,CAAC,UAAU,CAAC,CAAA;oBAC5C,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAA;oBACnC,MAAM,KAAK,GAAG,CAAC,4BAA4B,CAAC,CAAA;oBAC5C,KAAK,CAAC,IAAI,CAAC,mBAAmB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAA;oBACnF,KAAK,CAAC,IAAI,CAAC,uBAAuB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAA;oBACrF,KAAK,CAAC,IAAI,CAAC,qBAAqB,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAA;oBAC3F,KAAK,CAAC,IAAI,CAAC,gBAAgB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAA;oBAC/E,KAAK,CAAC,IAAI,CAAC,2BAA2B,QAAQ,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAA;oBAC1E,KAAK,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAA;oBAChE,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;oBAC5B,OAAM;gBACR,CAAC;gBAED,0DAA0D;gBAC1D,IAAI,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC7B,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;oBACpC,IAAI,KAAK,EAAE,CAAC;wBACV,IAAI,CAAC,IAAI,IAAI,OAAO,KAAK,EAAE,CAAA;oBAC7B,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,qBAAqB,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YAC7C,sCAAsC;YACtC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;gBAAE,OAAM;YAErC,wDAAwD;YACxD,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClC,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;gBAC1C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACpB,aAAa,CACX,UAAU,EACV,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,SAAS,EAC7B,KAAK,CAAC,IAAI,EACV,OAAO,EACP,QAAQ,EACR,MAAM,CAAC,MAAM,IAAI,qBAAqB,CACvC,CAAA;oBACD,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;gBAChC,CAAC;YACH,CAAC;YAED,uEAAuE;YACvE,IAAI,KAAK,CAAC,IAAI,KAAK,sBAAsB,EAAE,CAAC;gBAC1C,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,OAAO,IAAI,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,EAAE,CAAA;gBAC9D,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACtD,qDAAqD;oBACrD,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,yCAAyC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;wBAC3F,aAAa,CACX,UAAU,EACV,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,SAAS,EAC7B,eAAe,EACf,OAAO,EACP,QAAQ,EACR,yCAAyC,CAC1C,CAAA;wBACD,MAAM,IAAI,KAAK,CACb;4BACE,sEAAsE;4BACtE,cAAc,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;4BACrC,EAAE;4BACF,6DAA6D;4BAC7D,8CAA8C;yBAC/C,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAA;oBACH,CAAC;oBAED,MAAM,aAAa,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAA;oBACpD,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC7B,MAAM,IAAI,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAA;wBACzC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;4BAAE,OAAM;wBAEjC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;wBAE9B,yBAAyB;wBACzB,MAAM,aAAa,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,wBAAwB,EAAE,QAAQ,CAAC,CAAA;wBAC9F,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;wBAE1E,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BAC5C,aAAa,CACX,UAAU,EACV,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,SAAS,EAC7B,eAAe,EACf,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EACxB,QAAQ,EACR,sDAAsD,CACvD,CAAA;4BACD,MAAM,IAAI,KAAK,CACb;gCACE,gEAAgE;gCAChE,YAAY,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gCACtC,EAAE;gCACF,8EAA8E;gCAC9E,0DAA0D;gCAC1D,EAAE;gCACF,qDAAqD;gCACrD,8DAA8D;gCAC9D,0BAA0B;gCAC1B,EAAE;gCACF,yDAAyD;6BAC1D,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAA;wBACH,CAAC;wBAED,sDAAsD;wBACtD,MAAM,eAAe,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;4BAC5D,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU;gCAAE,OAAO,KAAK,CAAA;4BACzC,MAAM,aAAa,GAAG,CAAC,CAAC,QAAQ,CAAC,cAAc,IAAI,EAAE,CAAA;4BACrD,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAC9B,aAAa,CAAC,IAAI,CAAC,CAAC,EAAU,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CACrE,CAAA;wBACH,CAAC,CAAC,CAAA;wBAEF,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;4BACjC,aAAa,CACX,UAAU,EACV,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,SAAS,EAC7B,eAAe,EACf,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EACxB,QAAQ,EACR,iDAAiD,CAClD,CAAA;4BACD,MAAM,IAAI,KAAK,CACb;gCACE,qFAAqF;gCACrF,cAAc,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;gCACrC,YAAY,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gCACtC,EAAE;gCACF,gEAAgE;gCAChE,uDAAuD;gCACvD,EAAE;gCACF,yDAAyD;gCACzD,4DAA4D;gCAC5D,iDAAiD;gCACjD,0BAA0B;gCAC1B,EAAE;gCACF,yDAAyD;6BAC1D,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAA;wBACH,CAAC;wBAED,sDAAsD;wBACtD,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAA;wBACxC,IAAI,aAAa,CAAC,QAAQ,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;4BACzD,aAAa,CACX,UAAU,EACV,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,SAAS,EAC7B,eAAe,EACf,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EACxB,QAAQ,EACR,oCAAoC,CACrC,CAAA;4BACD,MAAM,IAAI,KAAK,CACb;gCACE,oEAAoE;gCACpE,YAAY,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gCACtC,aAAa,aAAa,CAAC,QAAQ,EAAE;gCACrC,EAAE;gCACF,uEAAuE;gCACvE,EAAE;gCACF,kEAAkE;gCAClE,8DAA8D;gCAC9D,gDAAgD;gCAChD,0BAA0B;gCAC1B,EAAE;gCACF,oGAAoG;6BACrG,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAA;wBACH,CAAC;wBAED,8BAA8B;wBAC9B,KAAK,MAAM,MAAM,IAAI,eAAe,EAAE,CAAC;4BACrC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,UAAU,CAAC,CAAA;wBAC9C,CAAC;wBACD,aAAa,CACX,UAAU,EACV,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,SAAS,EAC7B,eAAe,EACf,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EACxB,SAAS,EACT,qBAAqB,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACnE,CAAA;wBACD,OAAM;oBACR,CAAC;gBACH,CAAC;YACH,CAAC;YAED,gEAAgE;YAChE,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACpD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,EAAE,QAAQ,IAAI,MAAM,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAA;gBAEjE,sDAAsD;gBACtD,yDAAyD;gBACzD,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC/B,aAAa,CACX,UAAU,EACV,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,SAAS,EAC7B,KAAK,CAAC,IAAI,EACV,QAAQ,EACR,QAAQ,EACR,mCAAmC,CACpC,CAAA;oBACD,MAAM,IAAI,KAAK,CACb;wBACE,yDAAyD;wBACzD,WAAW,QAAQ,EAAE;wBACrB,EAAE;wBACF,6DAA6D;wBAC7D,oDAAoD;wBACpD,kDAAkD;wBAClD,mCAAmC;wBACnC,EAAE;wBACF,6CAA6C;qBAC9C,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAA;gBACH,CAAC;gBAED,sCAAsC;gBACtC,MAAM,YAAY,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAClE,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;gBAEtD,IAAI,CAAC,YAAY;oBAAE,OAAM;gBAEzB,8BAA8B;gBAC9B,MAAM,IAAI,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAA;gBACzC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;oBAAE,OAAM;gBAEjC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;gBAE9B,uEAAuE;gBACvE,MAAM,aAAa,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,wBAAwB,EAAE,QAAQ,CAAC,CAAA;gBAC9F,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;gBAE1E,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC5C,aAAa,CACX,UAAU,EACV,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,SAAS,EAC7B,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,wBAAwB,CACzB,CAAA;oBACD,MAAM,IAAI,KAAK,CACb;wBACE,yDAAyD;wBACzD,EAAE;wBACF,8EAA8E;wBAC9E,0DAA0D;wBAC1D,EAAE;wBACF,qDAAqD;wBACrD,8DAA8D;wBAC9D,0BAA0B;wBAC1B,EAAE;wBACF,yDAAyD;qBAC1D,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAA;gBACH,CAAC;gBAED,4CAA4C;gBAC5C,MAAM,QAAQ,GAAG,mBAAmB,CAAC,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,SAAS,CAAC,CAAA;gBAC/E,MAAM,aAAa,GAAG,eAAe,CAAC,QAAQ,EAAE,eAAe,EAAE,UAAU,CAAC,CAAA;gBAE5E,IAAI,CAAC,aAAa,EAAE,CAAC;oBACnB,aAAa,CACX,UAAU,EACV,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,SAAS,EAC7B,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,0BAA0B,CAC3B,CAAA;oBACD,MAAM,IAAI,KAAK,CACb;wBACE,yCAAyC,QAAQ,GAAG;wBACpD,EAAE;wBACF,cAAc,QAAQ,+CAA+C;wBACrE,+DAA+D;qBAChE,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAA;gBACH,CAAC;gBAED,qDAAqD;gBACrD,MAAM,eAAe,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;oBAC5D,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU;wBAAE,OAAO,KAAK,CAAA;oBACzC,MAAM,KAAK,GAAG,CAAC,CAAC,QAAQ,CAAC,cAAc,IAAI,EAAE,CAAA;oBAC7C,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAA;gBAChF,CAAC,CAAC,CAAA;gBAEF,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC/B,qDAAqD;oBACrD,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAA;oBACnC,IAAI,QAAQ,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;wBAC/C,aAAa,CACX,UAAU,EACV,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,SAAS,EAC7B,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,oCAAoC,CACrC,CAAA;wBACD,MAAM,IAAI,KAAK,CACb;4BACE,oEAAoE;4BACpE,WAAW,QAAQ,EAAE;4BACrB,aAAa,QAAQ,CAAC,QAAQ,EAAE;4BAChC,EAAE;4BACF,uEAAuE;4BACvE,EAAE;4BACF,kEAAkE;4BAClE,8DAA8D;4BAC9D,gDAAgD;4BAChD,0BAA0B;4BAC1B,EAAE;4BACF,oGAAoG;yBACrG,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAA;oBACH,CAAC;oBAED,0CAA0C;oBAC1C,KAAK,MAAM,MAAM,IAAI,eAAe,EAAE,CAAC;wBACrC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,UAAU,CAAC,CAAA;oBAC9C,CAAC;oBACD,aAAa,CACX,UAAU,EACV,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,SAAS,EAC7B,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,qBAAqB,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACnE,CAAA;oBACD,OAAM;gBACR,CAAC;gBAED,4DAA4D;gBAC5D,aAAa,CACX,UAAU,EACV,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,SAAS,EAC7B,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,yBAAyB,CAC1B,CAAA;gBACD,MAAM,IAAI,KAAK,CACb;oBACE,+BAA+B,QAAQ,GAAG;oBAC1C,EAAE;oBACF,0DAA0D;oBAC1D,uDAAuD;oBACvD,EAAE;oBACF,yDAAyD;oBACzD,4DAA4D;oBAC5D,iDAAiD;oBACjD,0BAA0B;oBAC1B,EAAE;oBACF,yDAAyD;iBAC1D,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAA;YACH,CAAC;QACH,CAAC;QAED,oBAAoB,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YAC5C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;gBAAE,OAAM;YAE1C,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;YAC1C,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACpB,MAAM,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAA;gBAC/B,MAAM,CAAC,QAAQ,CAAC,aAAa,GAAG,SAAS,CAAA;YAC3C,CAAC;YAED,kDAAkD;YAClD,MAAM,aAAa,GAAG;gBACpB,cAAc,EAAE,iBAAiB,EAAE,iBAAiB;gBACpD,sBAAsB,EAAE,yBAAyB;gBACjD,iBAAiB,EAAE,yBAAyB;gBAC5C,aAAa,EAAE,oBAAoB,EAAE,qBAAqB;gBAC1D,mBAAmB;gBACnB,kBAAkB;gBAClB,oBAAoB,EAAE,iBAAiB;gBACvC,0BAA0B,EAAE,sBAAsB;gBAClD,qBAAqB,EAAE,uBAAuB;gBAC9C,yBAAyB;aAC1B,CAAA;YACD,IAAI,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvC,uBAAuB,EAAE,CAAA;YAC3B,CAAC;YAED,2DAA2D;YAC3D,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC;gBAChC,cAAc,EAAE,iBAAiB,EAAE,iBAAiB;gBACpD,sBAAsB,EAAE,yBAAyB;gBACjD,yBAAyB;gBACzB,iBAAiB;gBACjB,mBAAmB;gBACnB,mCAAmC;gBACnC,oBAAoB,EAAE,iBAAiB;gBACvC,0BAA0B,EAAE,sBAAsB;gBAClD,qBAAqB,EAAE,uBAAuB;gBAC9C,yBAAyB;aAC1B,CAAC,CAAA;YACF,IAAI,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtC,eAAe,EAAE,CAAA;YACnB,CAAC;QACH,CAAC;QAED,iBAAiB,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YACzC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;gBAAE,OAAM;YAErC,uEAAuE;YACvE,IAAI,KAAK,CAAC,MAAM,KAAK,sBAAsB,EAAE,CAAC;gBAC5C,MAAM,OAAO,GAAG;oBACd,EAAE;oBACF,EAAE;oBACF,mEAAmE;oBACnE,+DAA+D;oBAC/D,wEAAwE;oBACxE,EAAE;oBACF,8DAA8D;oBAC9D,4BAA4B;iBAC7B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBACZ,MAAM,CAAC,WAAW,GAAG,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,GAAG,OAAO,CAAA;YAC3D,CAAC;QACH,CAAC;QAED,gBAAgB,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YACxC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAA;YAC7B,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5D,MAAM,CAAC,MAAM,GAAG,OAAO,CAAA;YACzB,CAAC;iBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;gBACrF,MAAM,CAAC,MAAM,GAAG,OAAO,CAAA;YACzB,CAAC;QACH,CAAC;QAED,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,wDAAwD;YACxD,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,eAAe,CAAC,UAAU,CAAC,CAAA;gBAC5C,QAAQ,CAAC,aAAa,EAAE,CAAA;gBACxB,QAAQ,CAAC,gBAAgB,EAAE,CAAA;YAC7B,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QACZ,CAAC;KACF,CAAA;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/opencode/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/opencode/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAqH/D;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,QAAQ,GAAE,MAAM,EAAO,GAAG,IAAI,CAKhH;AAGD,eAAO,MAAM,eAAe,mCAA6B,CAAA;AAwBzD,wBAAgB,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CA82H/D"}
|
package/dist/opencode/tools.js
CHANGED
|
@@ -42,6 +42,7 @@ import { detectAllSignals, formatDriftSignals } from "../sdd/drift/signals.js";
|
|
|
42
42
|
import { TransactionManager } from "../sdd/transactions/manager.js";
|
|
43
43
|
import { createGraphMutationTool, createGraphQueryTool, createTraverseTool, createPermissionsTool, createSnapshotTool, createSyncTool, createGraphAdminTool, createCodeQualityTool, createEnterpriseTool, createDriftWhitelistTool, } from "./router/tools-composite.js";
|
|
44
44
|
import { createWorkflowTools } from "./workflows/tools-workflow.js";
|
|
45
|
+
import { graphFingerprint } from "../sdd/cache/fingerprint.js";
|
|
45
46
|
// ── Validation Coverage Index (singleton per session) ──────────────
|
|
46
47
|
const validationIndex = new ValidationIndex();
|
|
47
48
|
function getRepo(directory) {
|
|
@@ -64,7 +65,7 @@ function getCachedToolResponse(directory, toolName, args) {
|
|
|
64
65
|
if (!repo.isInitialized())
|
|
65
66
|
return null;
|
|
66
67
|
const graph = repo.loadGraph();
|
|
67
|
-
return cacheMgr.getToolResponse(toolName, args, graph
|
|
68
|
+
return cacheMgr.getToolResponse(toolName, args, graphFingerprint(graph));
|
|
68
69
|
}
|
|
69
70
|
catch {
|
|
70
71
|
return null;
|
|
@@ -80,7 +81,7 @@ function setCachedToolResponse(directory, toolName, args, response) {
|
|
|
80
81
|
if (!repo.isInitialized())
|
|
81
82
|
return;
|
|
82
83
|
const graph = repo.loadGraph();
|
|
83
|
-
cacheMgr.setToolResponse(toolName, args, response, graph
|
|
84
|
+
cacheMgr.setToolResponse(toolName, args, response, graphFingerprint(graph));
|
|
84
85
|
}
|
|
85
86
|
catch { }
|
|
86
87
|
}
|
|
@@ -621,7 +622,7 @@ export function createSddTools() {
|
|
|
621
622
|
const graph = repo.loadGraph();
|
|
622
623
|
// Check analysis cache
|
|
623
624
|
const cacheMgr = getCacheManager(ctx.directory);
|
|
624
|
-
const cached = cacheMgr.getAnalysisResult("validate",
|
|
625
|
+
const cached = cacheMgr.getAnalysisResult("validate", graphFingerprint(graph));
|
|
625
626
|
if (cached) {
|
|
626
627
|
recordTelemetry(ctx.directory, {
|
|
627
628
|
name: "graph_validation",
|
|
@@ -646,7 +647,7 @@ export function createSddTools() {
|
|
|
646
647
|
markValidated();
|
|
647
648
|
}
|
|
648
649
|
// Cache the result
|
|
649
|
-
cacheMgr.setAnalysisResult("validate", formatted,
|
|
650
|
+
cacheMgr.setAnalysisResult("validate", formatted, graphFingerprint(graph));
|
|
650
651
|
recordTelemetry(ctx.directory, {
|
|
651
652
|
name: "graph_validation",
|
|
652
653
|
duration_ms: Date.now() - startedAt,
|
|
@@ -667,13 +668,13 @@ export function createSddTools() {
|
|
|
667
668
|
const graph = repo.loadGraph();
|
|
668
669
|
// Check analysis cache
|
|
669
670
|
const cacheMgr = getCacheManager(ctx.directory);
|
|
670
|
-
const cached = cacheMgr.getAnalysisResult("drift",
|
|
671
|
+
const cached = cacheMgr.getAnalysisResult("drift", graphFingerprint(graph));
|
|
671
672
|
if (cached)
|
|
672
673
|
return cached;
|
|
673
674
|
const result = detectDrift(graph, ctx.directory);
|
|
674
675
|
const formatted = formatDriftReport(result);
|
|
675
676
|
// Cache the result
|
|
676
|
-
cacheMgr.setAnalysisResult("drift", formatted,
|
|
677
|
+
cacheMgr.setAnalysisResult("drift", formatted, graphFingerprint(graph));
|
|
677
678
|
return formatted;
|
|
678
679
|
},
|
|
679
680
|
}),
|
|
@@ -1682,13 +1683,13 @@ export function createSddTools() {
|
|
|
1682
1683
|
const graph = repo.loadGraph();
|
|
1683
1684
|
// Check analysis cache
|
|
1684
1685
|
const cacheMgr = getCacheManager(ctx.directory);
|
|
1685
|
-
const cached = cacheMgr.getAnalysisResult("quality",
|
|
1686
|
+
const cached = cacheMgr.getAnalysisResult("quality", graphFingerprint(graph));
|
|
1686
1687
|
if (cached)
|
|
1687
1688
|
return cached;
|
|
1688
1689
|
const report = calculateQualityScore(graph, ctx.directory);
|
|
1689
1690
|
const formatted = formatQualityReport(report);
|
|
1690
1691
|
// Cache the result
|
|
1691
|
-
cacheMgr.setAnalysisResult("quality", formatted,
|
|
1692
|
+
cacheMgr.setAnalysisResult("quality", formatted, graphFingerprint(graph));
|
|
1692
1693
|
return formatted;
|
|
1693
1694
|
},
|
|
1694
1695
|
}),
|