@indigoai-us/hq-cloud 6.14.0 → 6.14.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/bin/sync-runner-company.d.ts +4 -0
- package/dist/bin/sync-runner-company.d.ts.map +1 -1
- package/dist/bin/sync-runner-company.js +50 -1
- package/dist/bin/sync-runner-company.js.map +1 -1
- package/dist/bin/sync-runner-watch-loop.d.ts +3 -2
- package/dist/bin/sync-runner-watch-loop.d.ts.map +1 -1
- package/dist/bin/sync-runner-watch-loop.js +21 -7
- package/dist/bin/sync-runner-watch-loop.js.map +1 -1
- package/dist/bin/sync-runner.d.ts +6 -2
- package/dist/bin/sync-runner.d.ts.map +1 -1
- package/dist/bin/sync-runner.js +162 -11
- package/dist/bin/sync-runner.js.map +1 -1
- package/dist/bin/sync-runner.test.js +155 -17
- package/dist/bin/sync-runner.test.js.map +1 -1
- package/dist/cli/accept.d.ts.map +1 -1
- package/dist/cli/accept.js +29 -0
- package/dist/cli/accept.js.map +1 -1
- package/dist/cli/invite.d.ts.map +1 -1
- package/dist/cli/invite.js +33 -0
- package/dist/cli/invite.js.map +1 -1
- package/dist/cli/promote.d.ts.map +1 -1
- package/dist/cli/promote.js +33 -0
- package/dist/cli/promote.js.map +1 -1
- package/dist/cli/reindex.d.ts +23 -11
- package/dist/cli/reindex.d.ts.map +1 -1
- package/dist/cli/reindex.js +39 -10
- package/dist/cli/reindex.js.map +1 -1
- package/dist/cli/reindex.test.js +40 -13
- package/dist/cli/reindex.test.js.map +1 -1
- package/dist/cli/share.js +47 -4
- package/dist/cli/share.js.map +1 -1
- package/dist/cli/share.test.js +123 -2
- package/dist/cli/share.test.js.map +1 -1
- package/dist/cli/sync-scope.test.js +84 -0
- package/dist/cli/sync-scope.test.js.map +1 -1
- package/dist/cli/sync.d.ts +44 -3
- package/dist/cli/sync.d.ts.map +1 -1
- package/dist/cli/sync.js +156 -7
- package/dist/cli/sync.js.map +1 -1
- package/dist/cli/sync.test.js +133 -0
- package/dist/cli/sync.test.js.map +1 -1
- package/dist/company-resolver.d.ts +21 -0
- package/dist/company-resolver.d.ts.map +1 -1
- package/dist/company-resolver.js +31 -6
- package/dist/company-resolver.js.map +1 -1
- package/dist/company-resolver.test.js +44 -1
- package/dist/company-resolver.test.js.map +1 -1
- package/dist/ignore.d.ts +10 -0
- package/dist/ignore.d.ts.map +1 -1
- package/dist/ignore.js +23 -2
- package/dist/ignore.js.map +1 -1
- package/dist/ignore.test.js +13 -1
- package/dist/ignore.test.js.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/journal.d.ts +12 -0
- package/dist/journal.d.ts.map +1 -1
- package/dist/journal.js +12 -0
- package/dist/journal.js.map +1 -1
- package/dist/lib/exit-codes.d.ts +25 -0
- package/dist/lib/exit-codes.d.ts.map +1 -0
- package/dist/lib/exit-codes.js +25 -0
- package/dist/lib/exit-codes.js.map +1 -0
- package/dist/object-io.d.ts.map +1 -1
- package/dist/object-io.js +45 -14
- package/dist/object-io.js.map +1 -1
- package/dist/object-io.test.js +61 -1
- package/dist/object-io.test.js.map +1 -1
- package/dist/operation-lock.d.ts +36 -6
- package/dist/operation-lock.d.ts.map +1 -1
- package/dist/operation-lock.js +34 -11
- package/dist/operation-lock.js.map +1 -1
- package/dist/operation-lock.test.js +30 -0
- package/dist/operation-lock.test.js.map +1 -1
- package/dist/s3.d.ts +1 -0
- package/dist/s3.d.ts.map +1 -1
- package/dist/s3.js +75 -2
- package/dist/s3.js.map +1 -1
- package/dist/s3.test.js +56 -1
- package/dist/s3.test.js.map +1 -1
- package/dist/scope-shrink.d.ts +12 -0
- package/dist/scope-shrink.d.ts.map +1 -1
- package/dist/scope-shrink.js +12 -0
- package/dist/scope-shrink.js.map +1 -1
- package/dist/scope-shrink.test.js +31 -0
- package/dist/scope-shrink.test.js.map +1 -1
- package/dist/skill-telemetry.d.ts +41 -0
- package/dist/skill-telemetry.d.ts.map +1 -1
- package/dist/skill-telemetry.js +111 -7
- package/dist/skill-telemetry.js.map +1 -1
- package/dist/skill-telemetry.test.js +187 -5
- package/dist/skill-telemetry.test.js.map +1 -1
- package/dist/sync/event-sync.d.ts +3 -0
- package/dist/sync/event-sync.d.ts.map +1 -1
- package/dist/sync/event-sync.js +23 -0
- package/dist/sync/event-sync.js.map +1 -1
- package/dist/sync/pull-scope.d.ts +21 -0
- package/dist/sync/pull-scope.d.ts.map +1 -1
- package/dist/sync/pull-scope.js +46 -13
- package/dist/sync/pull-scope.js.map +1 -1
- package/dist/telemetry-events.d.ts +31 -0
- package/dist/telemetry-events.d.ts.map +1 -0
- package/dist/telemetry-events.js +140 -0
- package/dist/telemetry-events.js.map +1 -0
- package/dist/telemetry-events.test.d.ts +2 -0
- package/dist/telemetry-events.test.d.ts.map +1 -0
- package/dist/telemetry-events.test.js +73 -0
- package/dist/telemetry-events.test.js.map +1 -0
- package/dist/telemetry.js +1 -1
- package/dist/telemetry.js.map +1 -1
- package/dist/vault-client.d.ts +38 -5
- package/dist/vault-client.d.ts.map +1 -1
- package/dist/vault-client.js +69 -6
- package/dist/vault-client.js.map +1 -1
- package/dist/vault-client.test.js +31 -1
- package/dist/vault-client.test.js.map +1 -1
- package/dist/watcher.d.ts +7 -0
- package/dist/watcher.d.ts.map +1 -1
- package/dist/watcher.js +53 -1
- package/dist/watcher.js.map +1 -1
- package/dist/watcher.test.js +57 -0
- package/dist/watcher.test.js.map +1 -1
- package/package.json +1 -1
- package/pnpm-workspace.yaml +2 -0
- package/scripts/presign-transport-e2e.mjs +2 -2
- package/src/bin/sync-runner-company.ts +65 -1
- package/src/bin/sync-runner-watch-loop.ts +24 -8
- package/src/bin/sync-runner.test.ts +194 -16
- package/src/bin/sync-runner.ts +209 -11
- package/src/cli/accept.ts +27 -0
- package/src/cli/invite.ts +31 -0
- package/src/cli/promote.ts +31 -0
- package/src/cli/reindex.test.ts +44 -13
- package/src/cli/reindex.ts +74 -21
- package/src/cli/share.test.ts +139 -2
- package/src/cli/share.ts +48 -2
- package/src/cli/sync-scope.test.ts +90 -0
- package/src/cli/sync.test.ts +154 -0
- package/src/cli/sync.ts +224 -5
- package/src/company-resolver.test.ts +51 -0
- package/src/company-resolver.ts +40 -5
- package/src/ignore.test.ts +18 -1
- package/src/ignore.ts +24 -2
- package/src/index.ts +22 -1
- package/src/journal.ts +12 -0
- package/src/lib/exit-codes.ts +24 -0
- package/src/object-io.test.ts +66 -1
- package/src/object-io.ts +51 -14
- package/src/operation-lock.test.ts +33 -0
- package/src/operation-lock.ts +46 -11
- package/src/s3.test.ts +87 -0
- package/src/s3.ts +93 -2
- package/src/scope-shrink.test.ts +32 -0
- package/src/scope-shrink.ts +12 -0
- package/src/skill-telemetry.test.ts +247 -4
- package/src/skill-telemetry.ts +134 -6
- package/src/sync/event-sync.ts +37 -0
- package/src/sync/pull-scope.ts +62 -13
- package/src/telemetry-events.test.ts +88 -0
- package/src/telemetry-events.ts +205 -0
- package/src/telemetry.ts +1 -1
- package/src/vault-client.test.ts +39 -1
- package/src/vault-client.ts +115 -14
- package/src/watcher.test.ts +82 -0
- package/src/watcher.ts +69 -0
package/dist/skill-telemetry.js
CHANGED
|
@@ -54,10 +54,11 @@
|
|
|
54
54
|
* resolved server-side from the JWT (never the body), and all errors are
|
|
55
55
|
* swallowed so telemetry never aborts or delays a sync.
|
|
56
56
|
*/
|
|
57
|
+
import { createHash } from "node:crypto";
|
|
57
58
|
import { promises as fs } from "node:fs";
|
|
58
59
|
import * as os from "node:os";
|
|
59
60
|
import * as path from "node:path";
|
|
60
|
-
import { buildRepoCompanyMap, resolveCompanyForCwd, } from "./company-resolver.js";
|
|
61
|
+
import { buildRepoCompanyMap, resolveCompanyForCwd, resolveCompanyForSkill, } from "./company-resolver.js";
|
|
61
62
|
// Privacy switch — keep false (see file header). When false, raw argument text
|
|
62
63
|
// never leaves the machine; only the `hasArgs` boolean is emitted.
|
|
63
64
|
const INCLUDE_ARGS_PREVIEW = false;
|
|
@@ -258,6 +259,23 @@ export function extractCodexSkillEvents(row, ctx) {
|
|
|
258
259
|
* boundaries are unambiguous and non-matching `skills/...` paths cannot
|
|
259
260
|
* catastrophically backtrack. */
|
|
260
261
|
const CODEX_SKILL_FILE = /(?:^|\/)skills\/(?:[^/\s'"]+\/)*?([^/\s'"]+)\/SKILL\.md\b/;
|
|
262
|
+
/** A company skill read via its REAL path `companies/<slug>/skills/<name>/
|
|
263
|
+
* SKILL.md`. Codex loads a skill by *reading* its file, and a company skill's
|
|
264
|
+
* real file lives under `companies/<slug>/skills/` — so, unlike the namespaced
|
|
265
|
+
* `.claude/skills/<slug>:<name>/` symlink (whose captured directory already
|
|
266
|
+
* carries the `<slug>:` prefix), this path names the owning company in a
|
|
267
|
+
* SEPARATE `<slug>` segment that {@link CODEX_SKILL_FILE} discards, leaving a
|
|
268
|
+
* bare `<name>` that no prefix-based attribution can place (the company view
|
|
269
|
+
* then misses the run). Group 1 = `<slug>`, group 2 = `<name>`: we rebuild the
|
|
270
|
+
* canonical `<slug>:<name>` invocation token from them so the event flows
|
|
271
|
+
* through the SAME attribution as every other runtime — the client
|
|
272
|
+
* `resolveCompanyForSkill` and the server rollup both key off that `<slug>:`
|
|
273
|
+
* prefix — and shares one `skill_uid` with the Claude/typed forms. The slug
|
|
274
|
+
* segment excludes `:` (a real company slug has none); skill discovery is one
|
|
275
|
+
* level deep, so `<name>` is a single segment. The leading boundary admits a
|
|
276
|
+
* RELATIVE `companies/…` path too (preceded by whitespace/quote/start, not just
|
|
277
|
+
* `/`), since Codex often reads it relative to the run cwd. */
|
|
278
|
+
const CODEX_COMPANY_SKILL_FILE = /(?:^|[\s/'"])companies\/([^/\s'":]+)\/skills\/([^/\s'"]+)\/SKILL\.md\b/;
|
|
261
279
|
/** Pull the shell command string out of a Codex `exec_command_end` `command`,
|
|
262
280
|
* which is `["/bin/zsh", "-lc", "<cmd>"]` (array) on the runtimes we see, but
|
|
263
281
|
* tolerate a bare string too. */
|
|
@@ -412,7 +430,13 @@ export function extractCodexSkillToolEvents(row, ctx, seen) {
|
|
|
412
430
|
return [];
|
|
413
431
|
if (cls === "unknown" && !CODEX_READ_VERB.test(cmd))
|
|
414
432
|
return [];
|
|
415
|
-
|
|
433
|
+
// Prefer the canonical `<slug>:<name>` token when the read is of a company
|
|
434
|
+
// skill's real file (`companies/<slug>/skills/<name>/SKILL.md`) — the slug is
|
|
435
|
+
// in the path but dropped by CODEX_SKILL_FILE, so reconstruct it here to keep
|
|
436
|
+
// the run attributable. Otherwise keep the last-segment name (core/personal/
|
|
437
|
+
// namespaced skills already carry their prefix in the captured directory).
|
|
438
|
+
const co = CODEX_COMPANY_SKILL_FILE.exec(cmd);
|
|
439
|
+
const skill = co ? `${co[1]}:${co[2]}` : m[1].trim();
|
|
416
440
|
if (!skill)
|
|
417
441
|
return [];
|
|
418
442
|
const sessionId = ctx.sessionId;
|
|
@@ -449,6 +473,53 @@ export function extractCodexSkillToolEvents(row, ctx, seen) {
|
|
|
449
473
|
},
|
|
450
474
|
];
|
|
451
475
|
}
|
|
476
|
+
/**
|
|
477
|
+
* Resolve a skill's content-version marker ("skillVersion", skills-first-class
|
|
478
|
+
* US-015) — the sha256 of its SKILL.md as `sha256:<hex>` (the canonical
|
|
479
|
+
* content-hash shape used across hq-cloud, e.g. `watcher.ts`). This is the
|
|
480
|
+
* version half of the analytics-v2 usage join key (`skill_uid` + `skillVersion`),
|
|
481
|
+
* so a captured run maps to the exact version that produced it.
|
|
482
|
+
*
|
|
483
|
+
* Resolution is best-effort against `<hqRoot>/.claude/skills/<skill>/SKILL.md` —
|
|
484
|
+
* the canonical single-source skills location, which holds an entry (a real dir
|
|
485
|
+
* or a symlink) for every skill by its FULL invocation name incl. namespace
|
|
486
|
+
* (`indigo:hello-world`, `personal:worktree`, `deploy`, …). A `.agents/skills/`
|
|
487
|
+
* fallback covers the Codex bridge layout. `readFile` follows symlinks, so a
|
|
488
|
+
* company/personal skill surfaced into `.claude/skills/` resolves transparently.
|
|
489
|
+
* Returns undefined when `hqRoot` is absent or the file can't be located/read,
|
|
490
|
+
* so the wire field is simply OMITTED — additive + backwards-compatible, exactly
|
|
491
|
+
* like the optional `companyUid` attribution.
|
|
492
|
+
*
|
|
493
|
+
* "At invocation time" is approximated by the SKILL.md's content AT CAPTURE TIME:
|
|
494
|
+
* the collector scans historical session logs during sync, so the file's current
|
|
495
|
+
* bytes are the closest available proxy for the version that ran. A skill edited
|
|
496
|
+
* between run and sync can differ — acceptable for a usage-rollup join key (the
|
|
497
|
+
* overwhelming majority of runs sync before any edit to the skill).
|
|
498
|
+
*/
|
|
499
|
+
export async function computeSkillVersion(hqRoot, skill) {
|
|
500
|
+
if (!hqRoot || !skill)
|
|
501
|
+
return undefined;
|
|
502
|
+
// A skill token maps to exactly one directory name here; reject anything that
|
|
503
|
+
// could escape the skills dir (path traversal / separators). Namespaced names
|
|
504
|
+
// use `:` (not a separator) and pass.
|
|
505
|
+
if (skill.includes("/") || skill.includes("\\") || skill.includes("..")) {
|
|
506
|
+
return undefined;
|
|
507
|
+
}
|
|
508
|
+
const candidates = [
|
|
509
|
+
path.join(hqRoot, ".claude", "skills", skill, "SKILL.md"),
|
|
510
|
+
path.join(hqRoot, ".agents", "skills", skill, "SKILL.md"),
|
|
511
|
+
];
|
|
512
|
+
for (const candidate of candidates) {
|
|
513
|
+
try {
|
|
514
|
+
const bytes = await fs.readFile(candidate);
|
|
515
|
+
return `sha256:${createHash("sha256").update(bytes).digest("hex")}`;
|
|
516
|
+
}
|
|
517
|
+
catch {
|
|
518
|
+
// Not at this candidate — try the next.
|
|
519
|
+
}
|
|
520
|
+
}
|
|
521
|
+
return undefined;
|
|
522
|
+
}
|
|
452
523
|
/** Shape the event for the wire. Drops raw args unless explicitly enabled.
|
|
453
524
|
*
|
|
454
525
|
* `companyUid` (US-002): the caller resolves the event's `cwd` → owning company
|
|
@@ -456,7 +527,11 @@ export function extractCodexSkillToolEvents(row, ctx, seen) {
|
|
|
456
527
|
* server's KEEP allowlist (`apps/hq-pro/src/vault-service/handlers/
|
|
457
528
|
* skill-invocations.ts`). When undefined (cwd maps to no company repo) the
|
|
458
529
|
* field is OMITTED — the server treats absence as unattributed/personal. The
|
|
459
|
-
* reserved value `unattributed` is never produced.
|
|
530
|
+
* reserved value `unattributed` is never produced.
|
|
531
|
+
*
|
|
532
|
+
* `skillVersion` (US-015): the caller stamps `ev.skillVersion` from
|
|
533
|
+
* `computeSkillVersion` before shaping; a `sha256:<hex>` marker (or omitted when
|
|
534
|
+
* unresolved). Also on the server KEEP allowlist; additive + backwards-compatible. */
|
|
460
535
|
function toWireRow(ev, companyUid) {
|
|
461
536
|
const row = {
|
|
462
537
|
skill: ev.skill,
|
|
@@ -471,6 +546,8 @@ function toWireRow(ev, companyUid) {
|
|
|
471
546
|
row.uuid = ev.uuid;
|
|
472
547
|
if (ev.cwd !== undefined)
|
|
473
548
|
row.cwd = ev.cwd;
|
|
549
|
+
if (ev.skillVersion !== undefined)
|
|
550
|
+
row.skillVersion = ev.skillVersion;
|
|
474
551
|
if (companyUid !== undefined)
|
|
475
552
|
row.companyUid = companyUid;
|
|
476
553
|
// INCLUDE_ARGS_PREVIEW is intentionally a compile-time constant `false`;
|
|
@@ -635,7 +712,27 @@ export async function collectAndSendSkillTelemetry(opts) {
|
|
|
635
712
|
// When `hqRoot` is omitted the map is empty → every event stays unattributed.
|
|
636
713
|
const repoCompanyMap = opts.hqRoot
|
|
637
714
|
? await buildRepoCompanyMap(opts.hqRoot)
|
|
638
|
-
: { entries: [] };
|
|
715
|
+
: { entries: [], bySlug: new Map() };
|
|
716
|
+
// skillVersion resolution (US-015): resolve each skill's SKILL.md content hash
|
|
717
|
+
// ONCE per run (skills repeat across a session) and stamp it onto every event.
|
|
718
|
+
// Injectable for tests; defaults to hashing under hqRoot. Errors degrade to
|
|
719
|
+
// undefined so a resolver failure never blocks telemetry (additive field).
|
|
720
|
+
const resolveSkillVersion = opts.resolveSkillVersion ??
|
|
721
|
+
((skill) => computeSkillVersion(opts.hqRoot, skill));
|
|
722
|
+
const skillVersionCache = new Map();
|
|
723
|
+
const skillVersionFor = async (skill) => {
|
|
724
|
+
if (skillVersionCache.has(skill))
|
|
725
|
+
return skillVersionCache.get(skill);
|
|
726
|
+
let version;
|
|
727
|
+
try {
|
|
728
|
+
version = await resolveSkillVersion(skill);
|
|
729
|
+
}
|
|
730
|
+
catch {
|
|
731
|
+
version = undefined;
|
|
732
|
+
}
|
|
733
|
+
skillVersionCache.set(skill, version);
|
|
734
|
+
return version;
|
|
735
|
+
};
|
|
639
736
|
// 1. Opt-in check — reuse the same gate as token telemetry.
|
|
640
737
|
let enabled;
|
|
641
738
|
let optInSource;
|
|
@@ -763,9 +860,16 @@ export async function collectAndSendSkillTelemetry(opts) {
|
|
|
763
860
|
continue;
|
|
764
861
|
}
|
|
765
862
|
}
|
|
766
|
-
//
|
|
767
|
-
//
|
|
768
|
-
|
|
863
|
+
// Attribute the event to a company (cmp_* uid) from the per-run map.
|
|
864
|
+
// A company SKILL (`<slug>:<skill>`) belongs to ITS company regardless of
|
|
865
|
+
// the cwd it ran in, so skill-based resolution takes precedence; a core
|
|
866
|
+
// skill falls back to the cwd's owning company. Unresolved by both →
|
|
867
|
+
// undefined → companyUid omitted (unattributed/personal).
|
|
868
|
+
const companyUid = resolveCompanyForSkill(ev.skill, repoCompanyMap) ??
|
|
869
|
+
resolveCompanyForCwd(ev.cwd, repoCompanyMap);
|
|
870
|
+
// Stamp the skill's content-version marker (US-015). Unresolved → the
|
|
871
|
+
// field is omitted from the wire row (additive).
|
|
872
|
+
ev.skillVersion = await skillVersionFor(ev.skill);
|
|
769
873
|
const wireRow = toWireRow(ev, companyUid);
|
|
770
874
|
const wasOversized = jsonBytes(wireRow) > maxRowBytes;
|
|
771
875
|
const bounded = boundRowForPost(wireRow, maxRowBytes);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-telemetry.js","sourceRoot":"","sources":["../src/skill-telemetry.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"skill-telemetry.js","sourceRoot":"","sources":["../src/skill-telemetry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,GAEvB,MAAM,uBAAuB,CAAC;AAiF/B,+EAA+E;AAC/E,mEAAmE;AACnE,MAAM,oBAAoB,GAAG,KAAK,CAAC;AAcnC,KAAK,UAAU,UAAU,CAAC,UAAkB;IAC1C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAyB,CAAC;QACvD,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC7F,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,KAAoC,EAAE,CAAC;QAChG,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,uCAAuC;IACzC,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AACrC,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,UAAkB,EAAE,MAAmB;IAC/D,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9D,MAAM,GAAG,GAAG,GAAG,UAAU,MAAM,CAAC;IAChC,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAClE,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;AACnC,CAAC;AAED,KAAK,UAAU,yBAAyB,CAAC,WAAmB;IAC1D,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAmC,CAAC;QACjE,OAAO,MAAM,CAAC,gBAAgB,KAAK,IAAI,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,+EAA+E;AAE/E,MAAM,QAAQ,GAAG,iDAAiD,CAAC;AACnE,MAAM,QAAQ,GAAG,0CAA0C,CAAC;AAE5D,SAAS,OAAO,CAAC,OAAgB;IAC/B,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC;IAChD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,OAAO,OAAO;aACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAQ,CAA6B,CAAC,IAAI,KAAK,QAAQ;YAChG,CAAC,CAAG,CAA6B,CAAC,IAAe;YACjD,CAAC,CAAC,EAAE,CAAC,CAAC;aACP,IAAI,CAAC,GAAG,CAAC,CAAC;IACf,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAY;IAC7C,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IACrE,MAAM,GAAG,GAAG,GAA8B,CAAC;IAC3C,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IACtB,MAAM,GAAG,GACP,GAAG,CAAC,OAAO,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;QAC3E,CAAC,CAAE,GAAG,CAAC,OAAmC;QAC1C,CAAC,CAAC,SAAS,CAAC;IAChB,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IAEpB,MAAM,SAAS,GAAG,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IAChF,MAAM,SAAS,GAAG,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IAChF,MAAM,GAAG,GAAG,OAAO,GAAG,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9D,MAAM,OAAO,GAAG,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IAEpE,qCAAqC;IACrC,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAClC,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,CAAC;YAAE,OAAO,EAAE,CAAC;QAClB,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9B,OAAO;YACL;gBACE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;gBAClB,MAAM,EAAE,OAAO;gBACf,SAAS;gBACT,SAAS;gBACT,GAAG;gBACH,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACnC;SACF,CAAC;IACJ,CAAC;IAED,yCAAyC;IACzC,IAAI,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QACvD,MAAM,GAAG,GAAiB,EAAE,CAAC;QAC7B,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,OAAoB,EAAE,CAAC;YAC3C,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;gBAAE,SAAS;YAC9C,MAAM,CAAC,GAAG,GAA8B,CAAC;YACzC,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO;gBAAE,SAAS;YAC1D,MAAM,KAAK,GACT,CAAC,CAAC,KAAK,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;gBAC/D,CAAC,CAAE,CAAC,CAAC,KAAiC;gBACtC,CAAC,CAAC,EAAE,CAAC;YACT,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACjE,IAAI,CAAC,KAAK;gBAAE,SAAS;YACrB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;YACxB,GAAG,CAAC,IAAI,CAAC;gBACP,KAAK;gBACL,MAAM,EAAE,OAAO;gBACf,SAAS;gBACT,SAAS;gBACT,GAAG;gBACH,oEAAoE;gBACpE,IAAI,EAAE,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO;gBAC/C,OAAO,EAAE,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;aAC3E,CAAC,CAAC;QACL,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,iFAAiF;AAEjF;;8EAE8E;AAC9E,MAAM,SAAS,GAAG,gCAAgC,CAAC;AAEnD;+BAC+B;AAC/B,MAAM,UAAU,qBAAqB,CACnC,GAAY;IAEZ,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACvE,MAAM,GAAG,GAAG,GAA8B,CAAC;IAC3C,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc;QAAE,OAAO,IAAI,CAAC;IAC7C,MAAM,OAAO,GACX,GAAG,CAAC,OAAO,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;QAC3E,CAAC,CAAE,GAAG,CAAC,OAAmC;QAC1C,CAAC,CAAC,EAAE,CAAC;IACT,MAAM,SAAS,GAAG,OAAO,OAAO,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1E,MAAM,GAAG,GAAG,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;IACtE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;AAC5B,CAAC;AAED;;;+CAG+C;AAC/C,MAAM,UAAU,cAAc,CAAC,GAAY;IACzC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAC5E,MAAM,OAAO,GAAI,GAA+B,CAAC,OAAO,CAAC;IACzD,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,SAAS,CAAC;IACxF,MAAM,CAAC,GAAI,OAAmC,CAAC,OAAO,CAAC;IACvD,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CACrC,GAAY,EACZ,GAAyC;IAEzC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IACrE,MAAM,GAAG,GAAG,GAA8B,CAAC;IAC3C,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW;QAAE,OAAO,EAAE,CAAC;IACxC,MAAM,OAAO,GACX,GAAG,CAAC,OAAO,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;QAC3E,CAAC,CAAE,GAAG,CAAC,OAAmC;QAC1C,CAAC,CAAC,SAAS,CAAC;IAChB,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,cAAc;QAAE,OAAO,EAAE,CAAC;IAC3D,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3E,MAAM,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACzC,IAAI,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IAClB,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1B,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,MAAM,SAAS,GAAG,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IAChF,8EAA8E;IAC9E,qEAAqE;IACrE,wEAAwE;IACxE,MAAM,IAAI,GACR,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS;QACpD,CAAC,CAAC,SAAS,GAAG,CAAC,SAAS,IAAI,SAAS,IAAI,KAAK,EAAE;QAChD,CAAC,CAAC,SAAS,CAAC;IAChB,OAAO;QACL;YACE,KAAK;YACL,MAAM,EAAE,OAAO;YACf,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,SAAS;YACT,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,IAAI;YACJ,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACtC;KACF,CAAC;AACJ,CAAC;AAED;;;;;;kCAMkC;AAClC,MAAM,gBAAgB,GACpB,2DAA2D,CAAC;AAE9D;;;;;;;;;;;;;;;gEAegE;AAChE,MAAM,wBAAwB,GAC5B,wEAAwE,CAAC;AAE3E;;kCAEkC;AAClC,SAAS,kBAAkB,CAAC,OAAgB;IAC1C,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC;IAChD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,2EAA2E;QAC3E,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7C,IAAI,OAAO,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ;gBAAE,OAAO,OAAO,CAAC,CAAC,CAAW,CAAC;QAClE,CAAC;IACH,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;;;GAMG;AACH,SAAS,iBAAiB,CAAC,SAAkB;IAC3C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC;IAChD,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;QAC9B,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,SAAS;QAClD,MAAM,CAAC,GAAI,KAAiC,CAAC,IAAI,CAAC;QAClD,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,SAAS;QACpC,IAAI,CAAC,KAAK,MAAM;YAAE,OAAO,SAAS,CAAC;QACnC,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IACD,OAAO,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AACtC,CAAC;AAED,2EAA2E;AAC3E,2EAA2E;AAC3E,gFAAgF;AAChF,oBAAoB;AACpB,MAAM,eAAe,GACnB,0GAA0G,CAAC;AAC7G,gFAAgF;AAChF,MAAM,oBAAoB,GAAG,oCAAoC,CAAC;AAElE;mFACmF;AACnF,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC;IAC/B,cAAc;IACd,OAAO;IACP,aAAa;IACb,kBAAkB;IAClB,MAAM;IACN,gBAAgB;CACjB,CAAC,CAAC;AAEH;;;;;;;;;;;GAWG;AACH,SAAS,eAAe,CACtB,GAA4B,EAC5B,OAAgC,EAChC,GAAsC;IAEtC,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,IAAI,OAAO,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;QACpE,MAAM,GAAG,GAAG,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAChD,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QACtB,OAAO;YACL,GAAG;YACH,MAAM,EAAE,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM;YAC1E,GAAG,EAAE,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG;YAC5D,SAAS,EAAE,OAAO,CAAC,UAAU;SAC9B,CAAC;IACJ,CAAC;IACD,IAAI,GAAG,CAAC,IAAI,KAAK,eAAe,IAAI,OAAO,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;QACrE,MAAM,IAAI,GAAG,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAClE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QAC7C,IAAI,IAAI,GAA4B,EAAE,CAAC;QACvC,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC;QAC9B,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC/B,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;oBACnE,IAAI,GAAG,MAAiC,CAAC;gBAC3C,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;aAAM,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACjE,IAAI,GAAG,GAA8B,CAAC;QACxC,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC;QACxC,MAAM,GAAG,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC7E,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QACtB,OAAO;YACL,GAAG;YACH,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,GAAG,EAAE,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG;YAC9D,SAAS,EAAE,SAAS;SACrB,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,2BAA2B,CACzC,GAAY,EACZ,GAA0D,EAC1D,IAAkB;IAElB,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IACrE,MAAM,GAAG,GAAG,GAA8B,CAAC;IAC3C,MAAM,OAAO,GACX,GAAG,CAAC,OAAO,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;QAC3E,CAAC,CAAE,GAAG,CAAC,OAAmC;QAC1C,CAAC,CAAC,SAAS,CAAC;IAChB,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IAExB,MAAM,IAAI,GAAG,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;IAChD,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IACrB,6EAA6E;IAC7E,IAAI,GAAG,CAAC,MAAM,GAAG,OAAO;QAAE,OAAO,EAAE,CAAC;IACpC,MAAM,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IAClB,+EAA+E;IAC/E,6EAA6E;IAC7E,IAAI,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IAC9C,MAAM,GAAG,GAAG,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9C,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACjC,IAAI,GAAG,KAAK,SAAS,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IAE/D,2EAA2E;IAC3E,8EAA8E;IAC9E,8EAA8E;IAC9E,6EAA6E;IAC7E,2EAA2E;IAC3E,MAAM,EAAE,GAAG,wBAAwB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACrD,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IAEtB,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;IAChC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC3B,MAAM,SAAS,GAAG,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IAChF,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;IAErB,yEAAyE;IACzE,4EAA4E;IAC5E,2EAA2E;IAC3E,MAAM,QAAQ,GAAG,GAAG,SAAS,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,KAAK,EAAE,CAAC;IAC/D,IAAI,IAAI,EAAE,CAAC;QACT,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,OAAO,EAAE,CAAC;QAClC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACrB,CAAC;IAED,qEAAqE;IACrE,6EAA6E;IAC7E,6EAA6E;IAC7E,6BAA6B;IAC7B,MAAM,IAAI,GACR,SAAS,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS;QAC7C,CAAC,CAAC,eAAe,SAAS,IAAI,MAAM,IAAI,KAAK,EAAE;QAC/C,CAAC,CAAC,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS;YAClD,CAAC,CAAC,eAAe,SAAS,IAAI,SAAS,IAAI,KAAK,EAAE;YAClD,CAAC,CAAC,SAAS,CAAC;IAElB,OAAO;QACL;YACE,KAAK;YACL,MAAM,EAAE,OAAO;YACf,SAAS;YACT,SAAS;YACT,GAAG;YACH,IAAI;YACJ,OAAO,EAAE,KAAK;SACf;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,MAA0B,EAC1B,KAAa;IAEb,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IACxC,8EAA8E;IAC9E,8EAA8E;IAC9E,sCAAsC;IACtC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACxE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,UAAU,GAAG;QACjB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC;QACzD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC;KAC1D,CAAC;IACF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAC3C,OAAO,UAAU,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QACtE,CAAC;QAAC,MAAM,CAAC;YACP,wCAAwC;QAC1C,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;;;;uFAWuF;AACvF,SAAS,SAAS,CAAC,EAAc,EAAE,UAAmB;IACpD,MAAM,GAAG,GAA4B;QACnC,KAAK,EAAE,EAAE,CAAC,KAAK;QACf,MAAM,EAAE,EAAE,CAAC,MAAM;QACjB,OAAO,EAAE,EAAE,CAAC,OAAO;KACpB,CAAC;IACF,IAAI,EAAE,CAAC,SAAS,KAAK,SAAS;QAAE,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;IAC7D,IAAI,EAAE,CAAC,SAAS,KAAK,SAAS;QAAE,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;IAC7D,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS;QAAE,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;IAC9C,IAAI,EAAE,CAAC,GAAG,KAAK,SAAS;QAAE,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;IAC3C,IAAI,EAAE,CAAC,YAAY,KAAK,SAAS;QAAE,GAAG,CAAC,YAAY,GAAG,EAAE,CAAC,YAAY,CAAC;IACtE,IAAI,UAAU,KAAK,SAAS;QAAE,GAAG,CAAC,UAAU,GAAG,UAAU,CAAC;IAC1D,yEAAyE;IACzE,qEAAqE;IACrE,IAAI,oBAAoB,EAAE,CAAC;QACzB,wEAAwE;IAC1E,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,iFAAiF;AAEjF,KAAK,UAAU,cAAc,CAAC,IAAY;IACxC,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,UAAU,IAAI,CAAC,GAAW;QAC7B,IAAI,OAAO,CAAC;QACZ,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3D,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;QACT,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YACtC,IAAI,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC;gBACtB,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,CAAC;iBAAM,IAAI,GAAG,CAAC,MAAM,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACvD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjB,CAAC;QACH,CAAC;IACH,CAAC;IACD,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC;IACjB,OAAO,GAAG,CAAC;AACb,CAAC;AAED,8EAA8E;AAC9E,4EAA4E;AAC5E,2DAA2D;AAC3D,MAAM,uBAAuB,GAAG,EAAE,GAAG,IAAI,CAAC;AAE1C;;;;;;;;GAQG;AACH,MAAM,uBAAuB,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC;AAYlD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,EAAsB,EACtB,GAAW,EACX,QAAgB,EAChB,MAAc,EACd,aAAqB,uBAAuB;IAE5C,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,OAAO,MAAM,GAAG,MAAM,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;QACpD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC,CAAC;QAC3E,IAAI,SAAS,KAAK,CAAC;YAAE,MAAM,CAAC,6CAA6C;QACzE,MAAM,IAAI,SAAS,CAAC;IACtB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;4BAG4B;AAC5B,KAAK,UAAU,uBAAuB,CACpC,QAAgB;IAEhB,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACxC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;YAClD,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,uBAAuB,CAAC,CAAC;YAC5E,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;YAChF,IAAI,CAAC,SAAS;gBAAE,OAAO,EAAE,CAAC;YAC1B,OAAO,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5D,CAAC;gBAAS,CAAC;YACT,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAC7B,MAAM,eAAe,GAAG,GAAG,GAAG,IAAI,CAAC;AACnC,MAAM,qBAAqB,GAAG,gBAAgB,CAAC;AAE/C,SAAS,SAAS,CAAC,KAAc;IAC/B,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,0BAA0B,CAAC,GAA4B;IAC9D,IAAI,UAA8B,CAAC;IACnC,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAC9D,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAChD,IAAI,KAAK,GAAG,YAAY,EAAE,CAAC;YACzB,YAAY,GAAG,KAAK,CAAC;YACrB,UAAU,GAAG,GAAG,CAAC;QACnB,CAAC;IACH,CAAC;IACD,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAE3C,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,CAAW,CAAC;IACxC,MAAM,SAAS,GACb,KAAK,CAAC,MAAM,GAAG,qBAAqB,CAAC,MAAM;QACzC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,qBAAqB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC,CAAC;IACR,MAAM,IAAI,GACR,SAAS,GAAG,CAAC;QACX,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,qBAAqB,EAAE;QACxD,CAAC,CAAC,EAAE,CAAC;IACT,IAAI,IAAI,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IACjC,GAAG,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;IACvB,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,eAAe,CACtB,GAA4B,EAC5B,WAAmB;IAEnB,IAAI,WAAW,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACjC,MAAM,OAAO,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC;IAC3B,OAAO,SAAS,CAAC,OAAO,CAAC,GAAG,WAAW,EAAE,CAAC;QACxC,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC;YAAE,OAAO,IAAI,CAAC;IACxD,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,iFAAiF;AAEjF;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,IAAkC;IAElC,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;IAC1B,MAAM,kBAAkB,GACtB,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;IACpE,MAAM,iBAAiB,GACrB,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IAClE,MAAM,UAAU,GACd,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,6BAA6B,CAAC,CAAC;IAC3E,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;IAC/E,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAEnC,6EAA6E;IAC7E,MAAM,aAAa,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxF,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAEpF,8EAA8E;IAC9E,8EAA8E;IAC9E,8EAA8E;IAC9E,MAAM,cAAc,GAAmB,IAAI,CAAC,MAAM;QAChD,CAAC,CAAC,MAAM,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC;QACxC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;IAEvC,+EAA+E;IAC/E,+EAA+E;IAC/E,4EAA4E;IAC5E,2EAA2E;IAC3E,MAAM,mBAAmB,GACvB,IAAI,CAAC,mBAAmB;QACxB,CAAC,CAAC,KAAa,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;IAC/D,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAA8B,CAAC;IAChE,MAAM,eAAe,GAAG,KAAK,EAAE,KAAa,EAA+B,EAAE;QAC3E,IAAI,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,OAAO,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACtE,IAAI,OAA2B,CAAC;QAChC,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC7C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,GAAG,SAAS,CAAC;QACtB,CAAC;QACD,iBAAiB,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACtC,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;IAEF,4DAA4D;IAC5D,IAAI,OAAgB,CAAC;IACrB,IAAI,WAAuD,CAAC;IAC5D,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;QACnD,OAAO,GAAG,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC;QAChC,WAAW,GAAG,QAAQ,CAAC;IACzB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,0CAA2C,GAAa,CAAC,OAAO,IAAI,GAAG,wCAAwC,CAAC,CAAC;QACrH,OAAO,GAAG,MAAM,yBAAyB,CAAC,WAAW,CAAC,CAAC;QACvD,WAAW,GAAG,kBAAkB,CAAC;IACnC,CAAC;IAED,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;IACzF,CAAC;IAED,yEAAyE;IACzE,4EAA4E;IAC5E,yEAAyE;IACzE,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC;IAC5C,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,kBAAkB,CAAC,CAAC;IAC7D,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,iBAAiB,CAAC,CAAC;IAC3D,MAAM,KAAK,GAAqD;QAC9D,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,QAAiB,EAAE,CAAC,CAAC;QACrE,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,OAAgB,EAAE,CAAC,CAAC;KACpE,CAAC;IAeF,MAAM,SAAS,GAA6B,EAAE,CAAC;IAC/C,MAAM,cAAc,GAAgC,EAAE,CAAC;IACvD,MAAM,OAAO,GAAc,EAAE,CAAC;IAC9B,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,CACrC,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,EAClG,OAAO,CACR,CAAC;IACF,MAAM,WAAW,GAAG,eAAe,GAAG,aAAa,CAAC;IAEpD,KAAK,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,KAAK,EAAE,CAAC;QACvC,IAAI,IAAI,CAAC;QACT,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC;QAC9B,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;QAErD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QACjE,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAE3B,gDAAgD;QAChD,MAAM,OAAO,GACX,WAAW,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,IAAI,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5E,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,GAAG,CAAC,CAAC;YACX,cAAc,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;QAChE,CAAC;QAED,0EAA0E;QAC1E,0EAA0E;QAC1E,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;QAE/E,IAAI,MAAM,IAAI,WAAW,IAAI,CAAC,OAAO;YAAE,SAAS;QAEhD,IAAI,OAAe,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YACxC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC,CAAC;gBACjD,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACjC,qEAAqE;gBACrE,oEAAoE;gBACpE,0DAA0D;gBAC1D,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;gBAChE,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;YAChD,CAAC;oBAAS,CAAC;gBACT,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;YACnB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,oEAAoE;YACpE,OAAO,SAAS,CAAC,QAAQ,CAAC,CAAC;YAC3B,SAAS;QACX,CAAC;QAED,4EAA4E;QAC5E,4EAA4E;QAC5E,MAAM,QAAQ,GACZ,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,uBAAuB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACzE,uEAAuE;QACvE,2EAA2E;QAC3E,yEAAyE;QACzE,MAAM,SAAS,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,EAAU,CAAC,CAAC,CAAC,SAAS,CAAC;QACnE,uEAAuE;QACvE,4EAA4E;QAC5E,kEAAkE;QAClE,IAAI,WAA+B,CAAC;QAEpC,wEAAwE;QACxE,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,UAAU,GAAG,MAAM,CAAC;QACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YACtD,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC;gBAAE,UAAU,IAAI,CAAC,CAAC,CAAC,yBAAyB;YACvE,MAAM,SAAS,GAAG,UAAU,CAAC;YAE7B,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACnC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YACnC,IAAI,MAAe,CAAC;YACpB,IAAI,CAAC;gBACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC/B,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;YACD,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;gBACrB,MAAM,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;gBACjC,IAAI,CAAC,KAAK,SAAS;oBAAE,WAAW,GAAG,CAAC,CAAC;YACvC,CAAC;YACD,MAAM,MAAM,GACV,IAAI,KAAK,OAAO;gBACd,CAAC,CAAC;oBACE,GAAG,uBAAuB,CAAC,MAAM,EAAE,QAAQ,IAAI,EAAE,CAAC;oBAClD,GAAG,2BAA2B,CAC5B,MAAM,EACN,EAAE,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,EAC5C,SAAS,CACV;iBACF;gBACH,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;YACjC,KAAK,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;gBACxB,qEAAqE;gBACrE,yEAAyE;gBACzE,uEAAuE;gBACvE,oEAAoE;gBACpE,2BAA2B;gBAC3B,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;oBAC3B,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACnE,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC;wBACzE,SAAS;oBACX,CAAC;gBACH,CAAC;gBACD,qEAAqE;gBACrE,0EAA0E;gBAC1E,wEAAwE;gBACxE,qEAAqE;gBACrE,0DAA0D;gBAC1D,MAAM,UAAU,GACd,sBAAsB,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,CAAC;oBAChD,oBAAoB,CAAC,EAAE,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;gBAC/C,sEAAsE;gBACtE,iDAAiD;gBACjD,EAAE,CAAC,YAAY,GAAG,MAAM,eAAe,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;gBAClD,MAAM,OAAO,GAAG,SAAS,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;gBAC1C,MAAM,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,WAAW,CAAC;gBACtD,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;gBACtD,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,GAAG,CACD,wDAAwD,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,CAC7E,CAAC;oBACF,SAAS;gBACX,CAAC;gBACD,IAAI,YAAY,EAAE,CAAC;oBACjB,GAAG,CACD,0DAA0D,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,CAC/E,CAAC;gBACJ,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;gBACpD,SAAS,CAAC,QAAQ,CAAC,CAAC,UAAU,EAAE,CAAC;YACnC,CAAC;QACH,CAAC;IACH,CAAC;IAED,6EAA6E;IAC7E,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,WAAW,GAAG,CAAC,CAAC;IAEpB,2EAA2E;IAC3E,MAAM,SAAS,GAA2B,EAAE,CAAC;IAC7C,MAAM,eAAe,GAA2B,EAAE,CAAC;IAEnD,IAAI,KAAK,GAAc,EAAE,CAAC;IAC1B,IAAI,UAAU,GAAG,aAAa,CAAC;IAE/B,MAAM,KAAK,GAAG,KAAK,IAAsB,EAAE;QACzC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACpC,MAAM,MAAM,GAAG,KAAK,CAAC;QACrB,KAAK,GAAG,EAAE,CAAC;QACX,UAAU,GAAG,aAAa,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC;gBACrC,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;gBACvC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;aACjC,CAAC,CAAC;YACH,WAAW,EAAE,CAAC;YACd,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC;YAC5B,uEAAuE;YACvE,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;gBACvB,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBACzD,MAAM,IAAI,GAAG,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAC9C,IAAI,CAAC,CAAC,SAAS,GAAG,IAAI;oBAAE,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC;YACpE,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,kDAAmD,GAAa,CAAC,OAAO,IAAI,GAAG,kCAAkC,CAAC,CAAC;YACvH,4EAA4E;YAC5E,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC,CAAC;IAEF,IAAI,mBAAmB,GAAG,KAAK,CAAC;IAChC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;QACnE,MAAM,OAAO,GAAG,QAAQ,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtD,IACE,KAAK,CAAC,MAAM,GAAG,CAAC;YAChB,CAAC,KAAK,CAAC,MAAM,IAAI,gBAAgB,IAAI,UAAU,GAAG,OAAO,GAAG,eAAe,CAAC,EAC5E,CAAC;YACD,IAAI,CAAC,CAAC,MAAM,KAAK,EAAE,CAAC,EAAE,CAAC;gBACrB,mBAAmB,GAAG,IAAI,CAAC;gBAC3B,MAAM;YACR,CAAC;YACD,UAAU,GAAG,aAAa,GAAG,QAAQ,CAAC;QACxC,CAAC;aAAM,CAAC;YACN,UAAU,IAAI,OAAO,CAAC;QACxB,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChB,CAAC;IACD,IAAI,CAAC,mBAAmB;QAAE,MAAM,KAAK,EAAE,CAAC;IAExC,sEAAsE;IACtE,4EAA4E;IAC5E,0EAA0E;IAC1E,sEAAsE;IACtE,MAAM,UAAU,GAAgC,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;IACpE,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC;QAAE,UAAU,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;IACjF,KAAK,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACnD,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAC5C,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;QAC3D,CAAC;aAAM,IAAI,EAAE,IAAI,eAAe,EAAE,CAAC;YACjC,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;QACtE,CAAC;QACD,wEAAwE;IAC1E,CAAC;IACD,MAAM,UAAU,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;IAElE,OAAO;QACL,OAAO,EAAE,IAAI;QACb,WAAW;QACX,YAAY,EAAE,KAAK,CAAC,MAAM;QAC1B,UAAU;QACV,WAAW;KACZ,CAAC;AACJ,CAAC"}
|
|
@@ -2,7 +2,8 @@ import { describe, it, expect, vi } from "vitest";
|
|
|
2
2
|
import { promises as fs } from "node:fs";
|
|
3
3
|
import * as os from "node:os";
|
|
4
4
|
import * as path from "node:path";
|
|
5
|
-
import {
|
|
5
|
+
import { createHash } from "node:crypto";
|
|
6
|
+
import { extractSkillEvents, extractCodexSkillEvents, extractCodexSkillToolEvents, codexRowTurnId, parseCodexSessionMeta, collectAndSendSkillTelemetry, computeSkillVersion, readFileRegion, } from "./skill-telemetry.js";
|
|
6
7
|
describe("extractSkillEvents", () => {
|
|
7
8
|
it("extracts a user-typed slash command with args", () => {
|
|
8
9
|
const row = {
|
|
@@ -180,6 +181,31 @@ describe("extractCodexSkillToolEvents (Codex model-driven SKILL.md reads)", () =
|
|
|
180
181
|
expect(ev.skill).toBe("indigo:hello-world");
|
|
181
182
|
expect(ev.source).toBe("model");
|
|
182
183
|
});
|
|
184
|
+
it("reconstructs <slug>:<name> when reading a company skill's real path", () => {
|
|
185
|
+
// Codex loads a company skill by reading companies/<slug>/skills/<name>/
|
|
186
|
+
// SKILL.md; the slug must be recovered so the run attributes to the company
|
|
187
|
+
// rather than being dropped to a bare, unattributed name.
|
|
188
|
+
const ev = extractCodexSkillToolEvents(execEnd("sed -n '1,240p' companies/indigo/skills/signals/SKILL.md"), ctx)[0];
|
|
189
|
+
expect(ev.skill).toBe("indigo:signals");
|
|
190
|
+
expect(ev.source).toBe("model");
|
|
191
|
+
// The dedup/idempotency uuid keys off the reconstructed token.
|
|
192
|
+
expect(ev.uuid).toBe("codex:skill:sess-x:turn-A:indigo:signals");
|
|
193
|
+
});
|
|
194
|
+
it("reconstructs the slug for any company and absolute path", () => {
|
|
195
|
+
expect(extractCodexSkillToolEvents(execEnd("cat /home/ec2-user/hq/companies/beta/skills/support/SKILL.md"), ctx)[0].skill).toBe("beta:support");
|
|
196
|
+
// Hyphenated slug + hyphenated skill name both survive.
|
|
197
|
+
expect(extractCodexSkillToolEvents(execEnd("rg -n x companies/indigo-auto/skills/call-prep-brief/SKILL.md"), ctx)[0].skill).toBe("indigo-auto:call-prep-brief");
|
|
198
|
+
});
|
|
199
|
+
it("leaves an already-namespaced symlink read untouched (no double prefix)", () => {
|
|
200
|
+
// Reading via the .claude/skills/<slug>:<name>/ symlink already carries the
|
|
201
|
+
// prefix in the captured directory — it must NOT get a second one.
|
|
202
|
+
expect(extractCodexSkillToolEvents(execEnd("cat .claude/skills/indigo:signals/SKILL.md"), ctx)[0].skill).toBe("indigo:signals");
|
|
203
|
+
});
|
|
204
|
+
it("does not fabricate a company prefix for a non-company skill", () => {
|
|
205
|
+
// A core skill read from its bare directory stays bare — the reconstruction
|
|
206
|
+
// only triggers on the companies/<slug>/skills/ shape.
|
|
207
|
+
expect(extractCodexSkillToolEvents(execEnd("cat .claude/skills/deploy/SKILL.md"), ctx)[0].skill).toBe("deploy");
|
|
208
|
+
});
|
|
183
209
|
it("matches normal Codex skill paths without backtracking ambiguity", () => {
|
|
184
210
|
expect(extractCodexSkillToolEvents(execEnd("cat /home/u/.claude/skills/hq/land/SKILL.md"), ctx)[0].skill).toBe("land");
|
|
185
211
|
expect(extractCodexSkillToolEvents(execEnd("cat /home/u/.claude/skills/a/b/c/SKILL.md"), ctx)[0].skill).toBe("c");
|
|
@@ -784,10 +810,13 @@ describe("collectAndSendSkillTelemetry — companyUid attribution", () => {
|
|
|
784
810
|
const inRepo = path.join(hqRoot, "repos/private/hq-cloud");
|
|
785
811
|
const atRoot = hqRoot; // inside scope, but not inside any mapped repo
|
|
786
812
|
await fs.writeFile(path.join(dir, "s.jsonl"), [
|
|
787
|
-
// cwd inside the company repo → attributed.
|
|
813
|
+
// Core skill, cwd inside the company repo → attributed by cwd.
|
|
788
814
|
row({ type: "user", sessionId: "s1", timestamp: "2026-06-10T10:00:00Z", cwd: inRepo, uuid: "u1", message: { role: "user", content: "<command-name>/deploy</command-name>" } }),
|
|
789
|
-
//
|
|
815
|
+
// Company skill `indigo:hello-world` run at hqRoot (maps to no repo) →
|
|
816
|
+
// attributed by SKILL NAMESPACE to the indigo company, regardless of cwd.
|
|
790
817
|
row({ type: "assistant", sessionId: "s1", timestamp: "2026-06-10T10:01:00Z", cwd: atRoot, message: { role: "assistant", content: [{ type: "tool_use", id: "t1", name: "Skill", input: { skill: "indigo:hello-world" } }] } }),
|
|
818
|
+
// Core skill at hqRoot (no company repo, no namespace) → unattributed.
|
|
819
|
+
row({ type: "user", sessionId: "s1", timestamp: "2026-06-10T10:02:00Z", cwd: atRoot, uuid: "u3", message: { role: "user", content: "<command-name>/handoff</command-name>" } }),
|
|
791
820
|
].join("\n") + "\n", "utf-8");
|
|
792
821
|
const captured = [];
|
|
793
822
|
const result = await collectAndSendSkillTelemetry({
|
|
@@ -799,11 +828,15 @@ describe("collectAndSendSkillTelemetry — companyUid attribution", () => {
|
|
|
799
828
|
codexSessionsRoot: path.join(tmp, "codex"),
|
|
800
829
|
cursorPath: path.join(tmp, "cursor.json"),
|
|
801
830
|
});
|
|
802
|
-
expect(result.eventsSent).toBe(
|
|
831
|
+
expect(result.eventsSent).toBe(3);
|
|
803
832
|
const events = captured.flatMap((b) => b.events);
|
|
804
833
|
const bySkill = new Map(events.map((e) => [e.skill, e]));
|
|
834
|
+
// Core skill attributed by its cwd (inside the company repo).
|
|
805
835
|
expect(bySkill.get("deploy").companyUid).toBe(COMPANY_UID);
|
|
806
|
-
|
|
836
|
+
// Company skill attributed by its namespace, even though cwd maps to no repo.
|
|
837
|
+
expect(bySkill.get("indigo:hello-world").companyUid).toBe(COMPANY_UID);
|
|
838
|
+
// Core skill at hqRoot with no owning repo → stays unattributed.
|
|
839
|
+
expect("companyUid" in bySkill.get("handoff")).toBe(false);
|
|
807
840
|
// Never the reserved sentinel.
|
|
808
841
|
for (const e of events)
|
|
809
842
|
expect(e.companyUid).not.toBe("unattributed");
|
|
@@ -926,4 +959,153 @@ describe("readFileRegion — HQ-SYNC-WEB-15 (SIGABRT on >2GiB single read)", ()
|
|
|
926
959
|
expect(got).toBe(30);
|
|
927
960
|
});
|
|
928
961
|
});
|
|
962
|
+
describe("computeSkillVersion (US-015)", () => {
|
|
963
|
+
function sha256(bytes) {
|
|
964
|
+
return `sha256:${createHash("sha256").update(bytes).digest("hex")}`;
|
|
965
|
+
}
|
|
966
|
+
it("hashes .claude/skills/<skill>/SKILL.md to a sha256:<hex> marker", async () => {
|
|
967
|
+
const tmp = await fs.mkdtemp(path.join(os.tmpdir(), "skill-ver-"));
|
|
968
|
+
const body = "---\nname: deploy\n---\nDeploy things.\n";
|
|
969
|
+
const dir = path.join(tmp, ".claude", "skills", "deploy");
|
|
970
|
+
await fs.mkdir(dir, { recursive: true });
|
|
971
|
+
await fs.writeFile(path.join(dir, "SKILL.md"), body, "utf-8");
|
|
972
|
+
expect(await computeSkillVersion(tmp, "deploy")).toBe(sha256(body));
|
|
973
|
+
await fs.rm(tmp, { recursive: true, force: true });
|
|
974
|
+
});
|
|
975
|
+
it("resolves a namespaced skill by its full invocation name (colon in dir name)", async () => {
|
|
976
|
+
const tmp = await fs.mkdtemp(path.join(os.tmpdir(), "skill-ver-"));
|
|
977
|
+
const body = "hello world skill\n";
|
|
978
|
+
const dir = path.join(tmp, ".claude", "skills", "indigo:hello-world");
|
|
979
|
+
await fs.mkdir(dir, { recursive: true });
|
|
980
|
+
await fs.writeFile(path.join(dir, "SKILL.md"), body, "utf-8");
|
|
981
|
+
expect(await computeSkillVersion(tmp, "indigo:hello-world")).toBe(sha256(body));
|
|
982
|
+
await fs.rm(tmp, { recursive: true, force: true });
|
|
983
|
+
});
|
|
984
|
+
it("falls back to .agents/skills/ (Codex bridge layout)", async () => {
|
|
985
|
+
const tmp = await fs.mkdtemp(path.join(os.tmpdir(), "skill-ver-"));
|
|
986
|
+
const body = "codex-bridged skill\n";
|
|
987
|
+
const dir = path.join(tmp, ".agents", "skills", "learn");
|
|
988
|
+
await fs.mkdir(dir, { recursive: true });
|
|
989
|
+
await fs.writeFile(path.join(dir, "SKILL.md"), body, "utf-8");
|
|
990
|
+
expect(await computeSkillVersion(tmp, "learn")).toBe(sha256(body));
|
|
991
|
+
await fs.rm(tmp, { recursive: true, force: true });
|
|
992
|
+
});
|
|
993
|
+
it("returns undefined for a missing hqRoot, a missing file, or a traversal attempt", async () => {
|
|
994
|
+
const tmp = await fs.mkdtemp(path.join(os.tmpdir(), "skill-ver-"));
|
|
995
|
+
expect(await computeSkillVersion(undefined, "deploy")).toBeUndefined();
|
|
996
|
+
expect(await computeSkillVersion(tmp, "does-not-exist")).toBeUndefined();
|
|
997
|
+
// Path-traversal / separator-bearing names never map to a SKILL.md here.
|
|
998
|
+
expect(await computeSkillVersion(tmp, "../../etc/passwd")).toBeUndefined();
|
|
999
|
+
expect(await computeSkillVersion(tmp, "a/b")).toBeUndefined();
|
|
1000
|
+
await fs.rm(tmp, { recursive: true, force: true });
|
|
1001
|
+
});
|
|
1002
|
+
});
|
|
1003
|
+
describe("collectAndSendSkillTelemetry — skillVersion emission (US-015)", () => {
|
|
1004
|
+
function stubClient(captured) {
|
|
1005
|
+
return {
|
|
1006
|
+
async getTelemetryOptIn() {
|
|
1007
|
+
return { enabled: true, updatedAt: null };
|
|
1008
|
+
},
|
|
1009
|
+
async postSkillInvocations(batch) {
|
|
1010
|
+
captured.push(batch);
|
|
1011
|
+
return { ok: true, written: batch.events.length, skipped: [] };
|
|
1012
|
+
},
|
|
1013
|
+
};
|
|
1014
|
+
}
|
|
1015
|
+
function row(obj) {
|
|
1016
|
+
return JSON.stringify(obj);
|
|
1017
|
+
}
|
|
1018
|
+
it("stamps the SKILL.md content hash onto the shipped event", async () => {
|
|
1019
|
+
const tmp = await fs.mkdtemp(path.join(os.tmpdir(), "skill-ver-emit-"));
|
|
1020
|
+
// hqRoot IS the session cwd, so the invocation passes the scope filter and
|
|
1021
|
+
// the resolver can find the skill under hqRoot/.claude/skills.
|
|
1022
|
+
const hqRoot = path.join(tmp, "hq");
|
|
1023
|
+
const skillBody = "---\nname: deploy\n---\nDeploy.\n";
|
|
1024
|
+
const skillDir = path.join(hqRoot, ".claude", "skills", "deploy");
|
|
1025
|
+
await fs.mkdir(skillDir, { recursive: true });
|
|
1026
|
+
await fs.writeFile(path.join(skillDir, "SKILL.md"), skillBody, "utf-8");
|
|
1027
|
+
const projects = path.join(tmp, "projects");
|
|
1028
|
+
const dir = path.join(projects, "-hq");
|
|
1029
|
+
await fs.mkdir(dir, { recursive: true });
|
|
1030
|
+
await fs.writeFile(path.join(dir, "s.jsonl"), row({
|
|
1031
|
+
type: "user",
|
|
1032
|
+
sessionId: "s1",
|
|
1033
|
+
timestamp: "2026-07-09T09:00:00Z",
|
|
1034
|
+
cwd: hqRoot,
|
|
1035
|
+
uuid: "u1",
|
|
1036
|
+
message: { role: "user", content: "<command-name>/deploy</command-name>" },
|
|
1037
|
+
}) + "\n", "utf-8");
|
|
1038
|
+
const captured = [];
|
|
1039
|
+
const result = await collectAndSendSkillTelemetry({
|
|
1040
|
+
client: stubClient(captured),
|
|
1041
|
+
machineId: "m",
|
|
1042
|
+
installerVersion: "t",
|
|
1043
|
+
hqRoot,
|
|
1044
|
+
claudeProjectsRoot: projects,
|
|
1045
|
+
codexSessionsRoot: path.join(tmp, "codex"),
|
|
1046
|
+
cursorPath: path.join(tmp, "cursor.json"),
|
|
1047
|
+
});
|
|
1048
|
+
expect(result.eventsSent).toBe(1);
|
|
1049
|
+
const ev = captured[0].events[0];
|
|
1050
|
+
expect(ev.skill).toBe("deploy");
|
|
1051
|
+
expect(ev.skillVersion).toBe(`sha256:${createHash("sha256").update(skillBody).digest("hex")}`);
|
|
1052
|
+
await fs.rm(tmp, { recursive: true, force: true });
|
|
1053
|
+
});
|
|
1054
|
+
it("emits the injected resolver's marker (wiring is decoupled from disk)", async () => {
|
|
1055
|
+
const tmp = await fs.mkdtemp(path.join(os.tmpdir(), "skill-ver-inj-"));
|
|
1056
|
+
const projects = path.join(tmp, "projects");
|
|
1057
|
+
const dir = path.join(projects, "-p");
|
|
1058
|
+
await fs.mkdir(dir, { recursive: true });
|
|
1059
|
+
await fs.writeFile(path.join(dir, "s.jsonl"), row({
|
|
1060
|
+
type: "assistant",
|
|
1061
|
+
sessionId: "s2",
|
|
1062
|
+
timestamp: "2026-07-09T10:00:00Z",
|
|
1063
|
+
cwd: "/x",
|
|
1064
|
+
message: {
|
|
1065
|
+
role: "assistant",
|
|
1066
|
+
content: [{ type: "tool_use", id: "t1", name: "Skill", input: { skill: "code-review" } }],
|
|
1067
|
+
},
|
|
1068
|
+
}) + "\n", "utf-8");
|
|
1069
|
+
const captured = [];
|
|
1070
|
+
const result = await collectAndSendSkillTelemetry({
|
|
1071
|
+
client: stubClient(captured),
|
|
1072
|
+
machineId: "m",
|
|
1073
|
+
installerVersion: "t",
|
|
1074
|
+
claudeProjectsRoot: projects,
|
|
1075
|
+
codexSessionsRoot: path.join(tmp, "codex"),
|
|
1076
|
+
cursorPath: path.join(tmp, "cursor.json"),
|
|
1077
|
+
resolveSkillVersion: (skill) => `sha256:stub-for-${skill}`,
|
|
1078
|
+
});
|
|
1079
|
+
expect(result.eventsSent).toBe(1);
|
|
1080
|
+
expect(captured[0].events[0].skillVersion).toBe("sha256:stub-for-code-review");
|
|
1081
|
+
await fs.rm(tmp, { recursive: true, force: true });
|
|
1082
|
+
});
|
|
1083
|
+
it("omits skillVersion when the SKILL.md can't be resolved (additive/back-compat)", async () => {
|
|
1084
|
+
const tmp = await fs.mkdtemp(path.join(os.tmpdir(), "skill-ver-none-"));
|
|
1085
|
+
const projects = path.join(tmp, "projects");
|
|
1086
|
+
const dir = path.join(projects, "-p");
|
|
1087
|
+
await fs.mkdir(dir, { recursive: true });
|
|
1088
|
+
await fs.writeFile(path.join(dir, "s.jsonl"), row({
|
|
1089
|
+
type: "user",
|
|
1090
|
+
sessionId: "s3",
|
|
1091
|
+
timestamp: "2026-07-09T11:00:00Z",
|
|
1092
|
+
cwd: "/x",
|
|
1093
|
+
uuid: "u3",
|
|
1094
|
+
message: { role: "user", content: "<command-name>/unknown-skill</command-name>" },
|
|
1095
|
+
}) + "\n", "utf-8");
|
|
1096
|
+
// No hqRoot → the default resolver can't locate any SKILL.md → field omitted.
|
|
1097
|
+
const captured = [];
|
|
1098
|
+
const result = await collectAndSendSkillTelemetry({
|
|
1099
|
+
client: stubClient(captured),
|
|
1100
|
+
machineId: "m",
|
|
1101
|
+
installerVersion: "t",
|
|
1102
|
+
claudeProjectsRoot: projects,
|
|
1103
|
+
codexSessionsRoot: path.join(tmp, "codex"),
|
|
1104
|
+
cursorPath: path.join(tmp, "cursor.json"),
|
|
1105
|
+
});
|
|
1106
|
+
expect(result.eventsSent).toBe(1);
|
|
1107
|
+
expect("skillVersion" in captured[0].events[0]).toBe(false);
|
|
1108
|
+
await fs.rm(tmp, { recursive: true, force: true });
|
|
1109
|
+
});
|
|
1110
|
+
});
|
|
929
1111
|
//# sourceMappingURL=skill-telemetry.test.js.map
|