mewkit 1.11.1 → 1.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. package/dist/commands/build-plugin.d.ts +8 -0
  2. package/dist/commands/build-plugin.d.ts.map +1 -0
  3. package/dist/commands/build-plugin.js +48 -0
  4. package/dist/commands/build-plugin.js.map +1 -0
  5. package/dist/commands/doctor-checks.d.ts +9 -0
  6. package/dist/commands/doctor-checks.d.ts.map +1 -1
  7. package/dist/commands/doctor-checks.js +42 -0
  8. package/dist/commands/doctor-checks.js.map +1 -1
  9. package/dist/commands/doctor.d.ts.map +1 -1
  10. package/dist/commands/doctor.js +2 -1
  11. package/dist/commands/doctor.js.map +1 -1
  12. package/dist/commands/index-command.d.ts.map +1 -1
  13. package/dist/commands/index-command.js +2 -1
  14. package/dist/commands/index-command.js.map +1 -1
  15. package/dist/commands/validate.d.ts +3 -1
  16. package/dist/commands/validate.d.ts.map +1 -1
  17. package/dist/commands/validate.js +9 -0
  18. package/dist/commands/validate.js.map +1 -1
  19. package/dist/core/check-plugin-manifests.d.ts +10 -0
  20. package/dist/core/check-plugin-manifests.d.ts.map +1 -0
  21. package/dist/core/check-plugin-manifests.js +150 -0
  22. package/dist/core/check-plugin-manifests.js.map +1 -0
  23. package/dist/core/derived-index.d.ts +5 -3
  24. package/dist/core/derived-index.d.ts.map +1 -1
  25. package/dist/core/derived-index.js +35 -10
  26. package/dist/core/derived-index.js.map +1 -1
  27. package/dist/core/index.d.ts +5 -0
  28. package/dist/core/index.d.ts.map +1 -1
  29. package/dist/core/index.js +5 -0
  30. package/dist/core/index.js.map +1 -1
  31. package/dist/core/plugin-agent-refs.d.ts +22 -0
  32. package/dist/core/plugin-agent-refs.d.ts.map +1 -0
  33. package/dist/core/plugin-agent-refs.js +87 -0
  34. package/dist/core/plugin-agent-refs.js.map +1 -0
  35. package/dist/core/plugin-hooks.d.ts +15 -0
  36. package/dist/core/plugin-hooks.d.ts.map +1 -0
  37. package/dist/core/plugin-hooks.js +58 -0
  38. package/dist/core/plugin-hooks.js.map +1 -0
  39. package/dist/core/plugin-manifest.d.ts +289 -0
  40. package/dist/core/plugin-manifest.d.ts.map +1 -0
  41. package/dist/core/plugin-manifest.js +125 -0
  42. package/dist/core/plugin-manifest.js.map +1 -0
  43. package/dist/core/plugin-payload.d.ts +26 -0
  44. package/dist/core/plugin-payload.d.ts.map +1 -0
  45. package/dist/core/plugin-payload.js +138 -0
  46. package/dist/core/plugin-payload.js.map +1 -0
  47. package/dist/index.js +17 -0
  48. package/dist/index.js.map +1 -1
  49. package/dist/wiki/application/ports.d.ts +111 -0
  50. package/dist/wiki/application/ports.d.ts.map +1 -0
  51. package/dist/wiki/application/ports.js +33 -0
  52. package/dist/wiki/application/ports.js.map +1 -0
  53. package/dist/wiki/application/queries.d.ts +5 -0
  54. package/dist/wiki/application/queries.d.ts.map +1 -0
  55. package/dist/wiki/application/queries.js +10 -0
  56. package/dist/wiki/application/queries.js.map +1 -0
  57. package/dist/wiki/application/research.d.ts +16 -0
  58. package/dist/wiki/application/research.d.ts.map +1 -0
  59. package/dist/wiki/application/research.js +48 -0
  60. package/dist/wiki/application/research.js.map +1 -0
  61. package/dist/wiki/application/service.d.ts +27 -0
  62. package/dist/wiki/application/service.d.ts.map +1 -0
  63. package/dist/wiki/application/service.js +153 -0
  64. package/dist/wiki/application/service.js.map +1 -0
  65. package/dist/wiki/domain/index.d.ts +5 -0
  66. package/dist/wiki/domain/index.d.ts.map +1 -0
  67. package/dist/wiki/domain/index.js +6 -0
  68. package/dist/wiki/domain/index.js.map +1 -0
  69. package/dist/wiki/domain/invariants.d.ts +28 -0
  70. package/dist/wiki/domain/invariants.d.ts.map +1 -0
  71. package/dist/wiki/domain/invariants.js +84 -0
  72. package/dist/wiki/domain/invariants.js.map +1 -0
  73. package/dist/wiki/domain/salience.d.ts +11 -0
  74. package/dist/wiki/domain/salience.d.ts.map +1 -0
  75. package/dist/wiki/domain/salience.js +40 -0
  76. package/dist/wiki/domain/salience.js.map +1 -0
  77. package/dist/wiki/domain/types.d.ts +151 -0
  78. package/dist/wiki/domain/types.d.ts.map +1 -0
  79. package/dist/wiki/domain/types.js +27 -0
  80. package/dist/wiki/domain/types.js.map +1 -0
  81. package/dist/wiki/domain/write-decision.d.ts +25 -0
  82. package/dist/wiki/domain/write-decision.d.ts.map +1 -0
  83. package/dist/wiki/domain/write-decision.js +71 -0
  84. package/dist/wiki/domain/write-decision.js.map +1 -0
  85. package/dist/wiki/infrastructure/fetcher-adapter.d.ts +45 -0
  86. package/dist/wiki/infrastructure/fetcher-adapter.d.ts.map +1 -0
  87. package/dist/wiki/infrastructure/fetcher-adapter.js +99 -0
  88. package/dist/wiki/infrastructure/fetcher-adapter.js.map +1 -0
  89. package/dist/wiki/infrastructure/inventory-adapter.d.ts +13 -0
  90. package/dist/wiki/infrastructure/inventory-adapter.d.ts.map +1 -0
  91. package/dist/wiki/infrastructure/inventory-adapter.js +46 -0
  92. package/dist/wiki/infrastructure/inventory-adapter.js.map +1 -0
  93. package/dist/wiki/infrastructure/markdown-repository.d.ts +23 -0
  94. package/dist/wiki/infrastructure/markdown-repository.d.ts.map +1 -0
  95. package/dist/wiki/infrastructure/markdown-repository.js +168 -0
  96. package/dist/wiki/infrastructure/markdown-repository.js.map +1 -0
  97. package/dist/wiki/infrastructure/scan-patterns.d.ts +20 -0
  98. package/dist/wiki/infrastructure/scan-patterns.d.ts.map +1 -0
  99. package/dist/wiki/infrastructure/scan-patterns.js +106 -0
  100. package/dist/wiki/infrastructure/scan-patterns.js.map +1 -0
  101. package/dist/wiki/infrastructure/scanner-adapter.d.ts +10 -0
  102. package/dist/wiki/infrastructure/scanner-adapter.d.ts.map +1 -0
  103. package/dist/wiki/infrastructure/scanner-adapter.js +147 -0
  104. package/dist/wiki/infrastructure/scanner-adapter.js.map +1 -0
  105. package/dist/wiki/infrastructure/sqlite-index.d.ts +9 -0
  106. package/dist/wiki/infrastructure/sqlite-index.d.ts.map +1 -0
  107. package/dist/wiki/infrastructure/sqlite-index.js +36 -0
  108. package/dist/wiki/infrastructure/sqlite-index.js.map +1 -0
  109. package/dist/wiki/infrastructure/trace-adapter.d.ts +7 -0
  110. package/dist/wiki/infrastructure/trace-adapter.d.ts.map +1 -0
  111. package/dist/wiki/infrastructure/trace-adapter.js +42 -0
  112. package/dist/wiki/infrastructure/trace-adapter.js.map +1 -0
  113. package/dist/wiki/infrastructure/wiki-ingest.d.ts +14 -0
  114. package/dist/wiki/infrastructure/wiki-ingest.d.ts.map +1 -0
  115. package/dist/wiki/infrastructure/wiki-ingest.js +138 -0
  116. package/dist/wiki/infrastructure/wiki-ingest.js.map +1 -0
  117. package/dist/wiki/infrastructure/wiki-query.d.ts +15 -0
  118. package/dist/wiki/infrastructure/wiki-query.d.ts.map +1 -0
  119. package/dist/wiki/infrastructure/wiki-query.js +46 -0
  120. package/dist/wiki/infrastructure/wiki-query.js.map +1 -0
  121. package/dist/wiki/infrastructure/wiki-schema.d.ts +3 -0
  122. package/dist/wiki/infrastructure/wiki-schema.d.ts.map +1 -0
  123. package/dist/wiki/infrastructure/wiki-schema.js +43 -0
  124. package/dist/wiki/infrastructure/wiki-schema.js.map +1 -0
  125. package/dist/wiki/interface/cli.d.ts +7 -0
  126. package/dist/wiki/interface/cli.d.ts.map +1 -0
  127. package/dist/wiki/interface/cli.js +160 -0
  128. package/dist/wiki/interface/cli.js.map +1 -0
  129. package/dist/wiki/render.d.ts +3 -0
  130. package/dist/wiki/render.d.ts.map +1 -0
  131. package/dist/wiki/render.js +58 -0
  132. package/dist/wiki/render.js.map +1 -0
  133. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-plugin-manifests.js","sourceRoot":"","sources":["../../src/core/check-plugin-manifests.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,15 @@
1
- export declare const SCHEMA_VERSION = 1;
1
+ import { type WikiIngestCounts } from "../wiki/infrastructure/wiki-ingest.js";
2
+ export declare const SCHEMA_VERSION = 2;
2
3
  export declare function dbPath(claudeDir: string): string;
3
4
  export interface IndexResult {
4
5
  dbPath: string;
5
6
  schemaVersion: number;
6
7
  traceRows: number;
7
8
  costRows: number;
9
+ wiki: WikiIngestCounts;
8
10
  }
9
- /** Build/refresh the derived index from the canonical logs. Full re-ingest = deterministic and
10
- * rebuild-able. Creates the DB (WAL) if absent. Never mutates the source logs. */
11
+ /** Build/refresh the derived index from the canonical logs + wiki tree. Full re-ingest =
12
+ * deterministic and rebuild-able. Creates the DB (WAL) if absent. Never mutates the sources. */
11
13
  export declare function buildIndex(claudeDir: string): IndexResult;
12
14
  export interface QueryResult {
13
15
  schemaVersion: number;
@@ -1 +1 @@
1
- {"version":3,"file":"derived-index.d.ts","sourceRoot":"","sources":["../../src/core/derived-index.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,cAAc,IAAI,CAAC;AAuBhC,wBAAgB,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEhD;AA0ED,MAAM,WAAW,WAAW;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED;mFACmF;AACnF,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,CAezD;AAED,MAAM,WAAW,WAAW;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC7C,UAAU,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACjD,wBAAwB,EAAE;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAClE,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAClE;AAED,yFAAyF;AACzF,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,CAyBzD"}
1
+ {"version":3,"file":"derived-index.d.ts","sourceRoot":"","sources":["../../src/core/derived-index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAc,KAAK,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAS1F,eAAO,MAAM,cAAc,IAAI,CAAC;AA0BhC,wBAAgB,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEhD;AA0ED,MAAM,WAAW,WAAW;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,gBAAgB,CAAC;CACvB;AAmBD;iGACiG;AACjG,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,CAkBzD;AAED,MAAM,WAAW,WAAW;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC7C,UAAU,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACjD,wBAAwB,EAAE;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAClE,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAClE;AAED,yFAAyF;AACzF,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,CAyBzD"}
@@ -2,13 +2,18 @@ import fs from "node:fs";
2
2
  import path from "node:path";
3
3
  import { DatabaseSync } from "node:sqlite";
4
4
  import { parseTraceLog } from "./trace-analysis.js";
5
- // A DERIVED, disposable SQLite index over the append logs. The JSONL/JSON logs stay the
6
- // canonical write-of-record; this DB is a rebuild-able read index (delete → reindex → identical).
7
- // Opt-in: nothing builds it automatically and no hook writes to it. All inserts are parameterized
8
- // (prepared statements); queries are static aggregates with no user-supplied SQL no injection
9
- // surface. The DB lives under .claude/memory/ (already git-ignored, machine-local).
10
- export const SCHEMA_VERSION = 1;
11
- const DB_REL = path.join("memory", "index.db");
5
+ import { WIKI_MIGRATION_SQL } from "../wiki/infrastructure/wiki-schema.js";
6
+ import { ingestWiki } from "../wiki/infrastructure/wiki-ingest.js";
7
+ // The consolidated DERIVED, disposable SQLite index. Canonical data stays in the append
8
+ // logs (.claude/memory/*) and the wiki tree (tasks/wikis/<slug>/); this DB is a rebuild-able
9
+ // read index (delete reindex → identical). Opt-in: nothing builds it automatically and no
10
+ // hook writes to it. All inserts are parameterized (prepared statements); queries are static
11
+ // aggregates with no user-supplied SQL — no injection surface. v2 folds in the wiki tables +
12
+ // FTS5 (was a separate index.db, now unified as wiki-index.db per the consolidation decision).
13
+ export const SCHEMA_VERSION = 2;
14
+ const DB_REL = path.join("memory", "wiki-index.db");
15
+ /** The pre-consolidation DB, removed once on the first unified build. */
16
+ const LEGACY_DB_REL = path.join("memory", "index.db");
12
17
  /** Forward migrations, applied in order when the DB's PRAGMA user_version is behind. */
13
18
  const MIGRATIONS = [
14
19
  {
@@ -27,6 +32,7 @@ const MIGRATIONS = [
27
32
  tokens INTEGER, task TEXT, raw TEXT
28
33
  );`,
29
34
  },
35
+ { version: 2, sql: WIKI_MIGRATION_SQL },
30
36
  ];
31
37
  export function dbPath(claudeDir) {
32
38
  return path.join(claudeDir, DB_REL);
@@ -90,10 +96,28 @@ function ingestCost(db, claudeDir) {
90
96
  }
91
97
  return arr.length;
92
98
  }
93
- /** Build/refresh the derived index from the canonical logs. Full re-ingest = deterministic and
94
- * rebuild-able. Creates the DB (WAL) if absent. Never mutates the source logs. */
99
+ /** Remove the pre-consolidation index.db (and its WAL/SHM sidecars) once. The new
100
+ * unified wiki-index.db supersedes it; the logs remain canonical so nothing is lost. */
101
+ function removeLegacyDb(claudeDir) {
102
+ const legacy = path.join(claudeDir, LEGACY_DB_REL);
103
+ let removed = false;
104
+ for (const suffix of ["", "-wal", "-shm"]) {
105
+ const f = legacy + suffix;
106
+ if (fs.existsSync(f)) {
107
+ fs.rmSync(f);
108
+ removed = true;
109
+ }
110
+ }
111
+ if (removed) {
112
+ console.error(`[mewkit] removed legacy ${LEGACY_DB_REL} — superseded by ${DB_REL}`);
113
+ }
114
+ }
115
+ /** Build/refresh the derived index from the canonical logs + wiki tree. Full re-ingest =
116
+ * deterministic and rebuild-able. Creates the DB (WAL) if absent. Never mutates the sources. */
95
117
  export function buildIndex(claudeDir) {
118
+ removeLegacyDb(claudeDir);
96
119
  const target = dbPath(claudeDir);
120
+ const projectRoot = path.dirname(claudeDir);
97
121
  fs.mkdirSync(path.dirname(target), { recursive: true });
98
122
  const db = new DatabaseSync(target);
99
123
  try {
@@ -103,7 +127,8 @@ export function buildIndex(claudeDir) {
103
127
  db.exec("DELETE FROM cost_entries");
104
128
  const traceRows = ingestTrace(db, claudeDir);
105
129
  const costRows = ingestCost(db, claudeDir);
106
- return { dbPath: target, schemaVersion: userVersion(db), traceRows, costRows };
130
+ const wiki = ingestWiki(db, projectRoot);
131
+ return { dbPath: target, schemaVersion: userVersion(db), traceRows, costRows, wiki };
107
132
  }
108
133
  finally {
109
134
  db.close();
@@ -1 +1 @@
1
- {"version":3,"file":"derived-index.js","sourceRoot":"","sources":["../../src/core/derived-index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,wFAAwF;AACxF,kGAAkG;AAClG,kGAAkG;AAClG,gGAAgG;AAChG,oFAAoF;AAEpF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC;AAChC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AAE/C,wFAAwF;AACxF,MAAM,UAAU,GAAuC;IACtD;QACC,OAAO,EAAE,CAAC;QACV,GAAG,EAAE;;;;;;;;;;;;KAYF;KACH;CACD,CAAC;AAEF,MAAM,UAAU,MAAM,CAAC,SAAiB;IACvC,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,WAAW,CAAC,EAAgB;IACpC,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,GAAG,EAAE,CAAC;IACpD,MAAM,CAAC,GAAG,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC;IAChC,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtC,CAAC;AAED,yEAAyE;AACzE,SAAS,OAAO,CAAC,EAAgB;IAChC,IAAI,OAAO,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;IAC9B,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC5B,IAAI,CAAC,CAAC,OAAO,GAAG,OAAO,EAAE,CAAC;YACzB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACf,EAAE,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,oCAAoC;YACnF,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;QACrB,CAAC;IACF,CAAC;AACF,CAAC;AAED,SAAS,QAAQ,CAAC,CAAU;IAC3B,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAC/C,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,QAAQ,CAAC,CAAU;IAC3B,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/D,CAAC;AAED,mEAAmE;AACnE,SAAS,WAAW,CAAC,EAAgB,EAAE,SAAiB;IACvD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC;IAClE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,aAAa,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IACjE,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CACtB,iHAAiH,CACjH,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAE,IAAI,CAAC,gBAAgB,CAAY,CAAC,CAAC,CAAC,IAAI,CAAC;QACpG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/H,CAAC;IACD,OAAO,OAAO,CAAC,MAAM,CAAC;AACvB,CAAC;AAED,oGAAoG;AACpG,SAAS,UAAU,CAAC,EAAgB,EAAE,SAAiB;IACtD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;IAChE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,CAAC,CAAC;IACtC,IAAI,GAAY,CAAC;IACjB,IAAI,CAAC;QACJ,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IACrD,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,CAAC,CAAC;IACV,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CACtB,uGAAuG,CACvG,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAA4B,CAAC;QAC3E,IAAI,CAAC,GAAG,CACP,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAC9B,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EACtB,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EACnB,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EACpB,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EACrB,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EACnB,QAAQ,CAAC,CAAC,CAAC,CACX,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC,MAAM,CAAC;AACnB,CAAC;AASD;mFACmF;AACnF,MAAM,UAAU,UAAU,CAAC,SAAiB;IAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;IACjC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,MAAM,EAAE,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;IACpC,IAAI,CAAC;QACJ,EAAE,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QACrC,OAAO,CAAC,EAAE,CAAC,CAAC;QACZ,EAAE,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACpC,EAAE,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACpC,MAAM,SAAS,GAAG,WAAW,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QAC7C,MAAM,QAAQ,GAAG,UAAU,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;IAChF,CAAC;YAAS,CAAC;QACV,EAAE,CAAC,KAAK,EAAE,CAAC;IACZ,CAAC;AACF,CAAC;AAUD,yFAAyF;AACzF,MAAM,UAAU,UAAU,CAAC,SAAiB;IAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACnF,MAAM,EAAE,GAAG,IAAI,YAAY,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,IAAI,CAAC;QACJ,MAAM,YAAY,GAAG,EAAE;aACrB,OAAO,CAAC,qFAAqF,CAAC;aAC9F,GAAG,EAAoC,CAAC;QAC1C,MAAM,UAAU,GAAG,EAAE;aACnB,OAAO,CAAC,qHAAqH,CAAC;aAC9H,GAAG,EAA0C,CAAC;QAChD,MAAM,wBAAwB,GAAG,EAAE;aACjC,OAAO,CACP,wKAAwK,CACxK;aACA,GAAG,EAA6C,CAAC;QACnD,MAAM,WAAW,GAAG,EAAE;aACpB,OAAO,CACP,yJAAyJ,CACzJ;aACA,GAAG,EAA0D,CAAC;QAChE,OAAO,EAAE,aAAa,EAAE,WAAW,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,UAAU,EAAE,wBAAwB,EAAE,WAAW,EAAE,CAAC;IAC5G,CAAC;YAAS,CAAC;QACV,EAAE,CAAC,KAAK,EAAE,CAAC;IACZ,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"derived-index.js","sourceRoot":"","sources":["../../src/core/derived-index.ts"],"names":[],"mappings":"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"}
@@ -16,4 +16,9 @@ export * from "./skills-dependencies.js";
16
16
  export * from "./dependency-installer.js";
17
17
  export * from "./pack-manifest.js";
18
18
  export * from "./pack-resolver.js";
19
+ export * from "./plugin-manifest.js";
20
+ export * from "./plugin-agent-refs.js";
21
+ export * from "./plugin-hooks.js";
22
+ export * from "./plugin-payload.js";
23
+ export * from "./check-plugin-manifests.js";
19
24
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC"}
@@ -16,4 +16,9 @@ export * from "./skills-dependencies.js";
16
16
  export * from "./dependency-installer.js";
17
17
  export * from "./pack-manifest.js";
18
18
  export * from "./pack-resolver.js";
19
+ export * from "./plugin-manifest.js";
20
+ export * from "./plugin-agent-refs.js";
21
+ export * from "./plugin-hooks.js";
22
+ export * from "./plugin-payload.js";
23
+ export * from "./check-plugin-manifests.js";
19
24
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Built-in agent types the host runtime provides. References to these are left
3
+ * bare in the plugin payload — they are not kit agents and are never prefixed.
4
+ */
5
+ export declare const BUILTIN_AGENT_TYPES: Set<string>;
6
+ /** Read the bare `name:` frontmatter value from each agent file in a dir. */
7
+ export declare function collectAgentNames(agentsDir: string): Set<string>;
8
+ export interface RewriteResult {
9
+ content: string;
10
+ /** Number of references rewritten. */
11
+ count: number;
12
+ }
13
+ /**
14
+ * Rewrite bare `subagent_type` references to kit agents into the namespaced
15
+ * `<plugin>:<agent>` form. Only values that exactly match a name in `agentNames`
16
+ * are touched; built-ins, template placeholders (`[type]`), and already-prefixed
17
+ * values are left untouched. The match anchors immediately after the
18
+ * `subagent_type` assignment, so `subagent_type="mk:developer"` is never
19
+ * double-prefixed.
20
+ */
21
+ export declare function rewriteAgentRefs(content: string, agentNames: Set<string>, pluginName?: string): RewriteResult;
22
+ //# sourceMappingURL=plugin-agent-refs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-agent-refs.d.ts","sourceRoot":"","sources":["../../src/core/plugin-agent-refs.ts"],"names":[],"mappings":"AAcA;;;GAGG;AACH,eAAO,MAAM,mBAAmB,aAK9B,CAAC;AAEH,6EAA6E;AAC7E,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAchE;AAmBD,MAAM,WAAW,aAAa;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC/B,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,EACvB,UAAU,SAAO,GACf,aAAa,CAwBf"}
@@ -0,0 +1,87 @@
1
+ // Agent-reference rewriting for the generated plugin payload.
2
+ //
3
+ // Why this exists: the flat-copy install resolves an agent by its `name:`
4
+ // frontmatter verbatim, so the shipped source keeps BARE agent names and BARE
5
+ // `subagent_type` references (e.g. `developer`). A Claude Code / Codex plugin,
6
+ // however, auto-prefixes the plugin name onto each agent's bare `name:` — a bare
7
+ // `subagent_type` is then rejected and only `<plugin>:<agent>` resolves
8
+ // (verified against the live `claude plugin` registry). To support BOTH installs
9
+ // from one source tree, the plugin payload is generated: agent `name:` stays
10
+ // bare (the runtime adds the prefix) and every reference to a kit agent is
11
+ // rewritten to `<plugin>:<agent>` here.
12
+ import { readdirSync, readFileSync } from "node:fs";
13
+ import { join } from "node:path";
14
+ /**
15
+ * Built-in agent types the host runtime provides. References to these are left
16
+ * bare in the plugin payload — they are not kit agents and are never prefixed.
17
+ */
18
+ export const BUILTIN_AGENT_TYPES = new Set([
19
+ "Explore",
20
+ "Bash",
21
+ "general-purpose",
22
+ "Plan",
23
+ ]);
24
+ /** Read the bare `name:` frontmatter value from each agent file in a dir. */
25
+ export function collectAgentNames(agentsDir) {
26
+ const names = new Set();
27
+ let entries;
28
+ try {
29
+ entries = readdirSync(agentsDir);
30
+ }
31
+ catch {
32
+ return names;
33
+ }
34
+ for (const entry of entries) {
35
+ if (!entry.endsWith(".md"))
36
+ continue;
37
+ const name = readFrontmatterName(join(agentsDir, entry));
38
+ if (name)
39
+ names.add(name);
40
+ }
41
+ return names;
42
+ }
43
+ /** First `name:` value in a markdown file's YAML frontmatter, or null. */
44
+ function readFrontmatterName(filePath) {
45
+ let text;
46
+ try {
47
+ text = readFileSync(filePath, "utf-8");
48
+ }
49
+ catch {
50
+ return null;
51
+ }
52
+ const match = text.match(/^name:\s*["']?([^"'\r\n]+)["']?\s*$/m);
53
+ return match ? match[1].trim() : null;
54
+ }
55
+ /** Escape a string for safe inclusion in a RegExp. */
56
+ function escapeRegExp(value) {
57
+ return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
58
+ }
59
+ /**
60
+ * Rewrite bare `subagent_type` references to kit agents into the namespaced
61
+ * `<plugin>:<agent>` form. Only values that exactly match a name in `agentNames`
62
+ * are touched; built-ins, template placeholders (`[type]`), and already-prefixed
63
+ * values are left untouched. The match anchors immediately after the
64
+ * `subagent_type` assignment, so `subagent_type="mk:developer"` is never
65
+ * double-prefixed.
66
+ */
67
+ export function rewriteAgentRefs(content, agentNames, pluginName = "mk") {
68
+ const targets = [...agentNames].filter((n) => !BUILTIN_AGENT_TYPES.has(n));
69
+ if (targets.length === 0)
70
+ return { content, count: 0 };
71
+ // Longest names first so e.g. `jira-evaluator` wins over `evaluator`.
72
+ const alternation = targets
73
+ .sort((a, b) => b.length - a.length)
74
+ .map(escapeRegExp)
75
+ .join("|");
76
+ // group1: the `subagent_type` assignment up to an optional opening quote.
77
+ // group2: the bare agent name, bounded by a quote/space/comma/paren/EOL so
78
+ // it cannot be a fragment of a longer identifier.
79
+ const re = new RegExp(`(subagent_type\\s*[:=]\\s*["']?)(${alternation})(?=["'\\s),]|$)`, "g");
80
+ let count = 0;
81
+ const rewritten = content.replace(re, (_match, prefix, name) => {
82
+ count += 1;
83
+ return `${prefix}${pluginName}:${name}`;
84
+ });
85
+ return { content: rewritten, count };
86
+ }
87
+ //# sourceMappingURL=plugin-agent-refs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-agent-refs.js","sourceRoot":"","sources":["../../src/core/plugin-agent-refs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /** Rewrite one hook command string from flat-copy roots to plugin roots. */
2
+ export declare function rewriteHookCommand(command: string): string;
3
+ /** The `hooks` object from a parsed settings.json (event → matcher groups). */
4
+ export type HookConfig = Record<string, unknown>;
5
+ /** Read the `hooks` object from a settings.json file, or null if absent. */
6
+ export declare function readSettingsHooks(settingsPath: string): HookConfig | null;
7
+ /**
8
+ * Build the plugin `hooks/hooks.json` payload from a settings.json hooks object.
9
+ * Deep-clones the structure and rewrites every `command` string to plugin roots,
10
+ * preserving matchers, timeouts, and status messages.
11
+ */
12
+ export declare function buildPluginHooks(settingsHooks: HookConfig): {
13
+ hooks: HookConfig;
14
+ };
15
+ //# sourceMappingURL=plugin-hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-hooks.d.ts","sourceRoot":"","sources":["../../src/core/plugin-hooks.ts"],"names":[],"mappings":"AAgBA,4EAA4E;AAC5E,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,+EAA+E;AAC/E,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEjD,4EAA4E;AAC5E,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CASzE;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,UAAU,GAAG;IAAE,KAAK,EAAE,UAAU,CAAA;CAAE,CAIjF"}
@@ -0,0 +1,58 @@
1
+ // Translate the kit's flat-copy hook wiring into a plugin `hooks/hooks.json`.
2
+ //
3
+ // Flat-copy installs read hooks from `.claude/settings.json`, whose command
4
+ // paths are rooted at `$CLAUDE_PROJECT_DIR/.claude/`. A plugin install reads
5
+ // `hooks/hooks.json` from the plugin root and exposes that root as
6
+ // `${CLAUDE_PLUGIN_ROOT}`. Because the plugin payload is a copy of `.claude` at
7
+ // its root, the only transform needed is the command-path prefix swap — the hook
8
+ // scripts, the `handlers.json` dispatch manifest, and its relative handler paths
9
+ // all travel unchanged inside `hooks/`.
10
+ import { existsSync, readFileSync } from "node:fs";
11
+ /** Path prefix used by flat-copy hook commands (both quoted and bare forms). */
12
+ const SOURCE_PREFIX = "$CLAUDE_PROJECT_DIR/.claude/";
13
+ /** Plugin-root env var the host sets when running plugin hooks. */
14
+ const PLUGIN_PREFIX = "${CLAUDE_PLUGIN_ROOT}/";
15
+ /** Rewrite one hook command string from flat-copy roots to plugin roots. */
16
+ export function rewriteHookCommand(command) {
17
+ return command.split(SOURCE_PREFIX).join(PLUGIN_PREFIX);
18
+ }
19
+ /** Read the `hooks` object from a settings.json file, or null if absent. */
20
+ export function readSettingsHooks(settingsPath) {
21
+ if (!existsSync(settingsPath))
22
+ return null;
23
+ let parsed;
24
+ try {
25
+ parsed = JSON.parse(readFileSync(settingsPath, "utf-8"));
26
+ }
27
+ catch {
28
+ return null;
29
+ }
30
+ return parsed.hooks ?? null;
31
+ }
32
+ /**
33
+ * Build the plugin `hooks/hooks.json` payload from a settings.json hooks object.
34
+ * Deep-clones the structure and rewrites every `command` string to plugin roots,
35
+ * preserving matchers, timeouts, and status messages.
36
+ */
37
+ export function buildPluginHooks(settingsHooks) {
38
+ const cloned = JSON.parse(JSON.stringify(settingsHooks));
39
+ rewriteCommands(cloned);
40
+ return { hooks: cloned };
41
+ }
42
+ /** Recursively rewrite every `command` field found in the structure. */
43
+ function rewriteCommands(node) {
44
+ if (Array.isArray(node)) {
45
+ for (const item of node)
46
+ rewriteCommands(item);
47
+ return;
48
+ }
49
+ if (node && typeof node === "object") {
50
+ const record = node;
51
+ if (typeof record.command === "string") {
52
+ record.command = rewriteHookCommand(record.command);
53
+ }
54
+ for (const value of Object.values(record))
55
+ rewriteCommands(value);
56
+ }
57
+ }
58
+ //# sourceMappingURL=plugin-hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-hooks.js","sourceRoot":"","sources":["../../src/core/plugin-hooks.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,EAAE;AACF,4EAA4E;AAC5E,6EAA6E;AAC7E,mEAAmE;AACnE,gFAAgF;AAChF,iFAAiF;AACjF,iFAAiF;AACjF,wCAAwC;AACxC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEnD,gFAAgF;AAChF,MAAM,aAAa,GAAG,8BAA8B,CAAC;AACrD,mEAAmE;AACnE,MAAM,aAAa,GAAG,wBAAwB,CAAC;AAE/C,4EAA4E;AAC5E,MAAM,UAAU,kBAAkB,CAAC,OAAe;IACjD,OAAO,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACzD,CAAC;AAKD,4EAA4E;AAC5E,MAAM,UAAU,iBAAiB,CAAC,YAAoB;IACrD,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3C,IAAI,MAA8B,CAAC;IACnC,IAAI,CAAC;QACJ,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;IAC1D,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC;AAC7B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,aAAyB;IACzD,MAAM,MAAM,GAAe,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC;IACrE,eAAe,CAAC,MAAM,CAAC,CAAC;IACxB,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC1B,CAAC;AAED,wEAAwE;AACxE,SAAS,eAAe,CAAC,IAAa;IACrC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,KAAK,MAAM,IAAI,IAAI,IAAI;YAAE,eAAe,CAAC,IAAI,CAAC,CAAC;QAC/C,OAAO;IACR,CAAC;IACD,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,IAA+B,CAAC;QAC/C,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACxC,MAAM,CAAC,OAAO,GAAG,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACrD,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;YAAE,eAAe,CAAC,KAAK,CAAC,CAAC;IACnE,CAAC;AACF,CAAC"}