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.
- package/dist/commands/build-plugin.d.ts +8 -0
- package/dist/commands/build-plugin.d.ts.map +1 -0
- package/dist/commands/build-plugin.js +48 -0
- package/dist/commands/build-plugin.js.map +1 -0
- package/dist/commands/doctor-checks.d.ts +9 -0
- package/dist/commands/doctor-checks.d.ts.map +1 -1
- package/dist/commands/doctor-checks.js +42 -0
- package/dist/commands/doctor-checks.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +2 -1
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/index-command.d.ts.map +1 -1
- package/dist/commands/index-command.js +2 -1
- package/dist/commands/index-command.js.map +1 -1
- package/dist/commands/validate.d.ts +3 -1
- package/dist/commands/validate.d.ts.map +1 -1
- package/dist/commands/validate.js +9 -0
- package/dist/commands/validate.js.map +1 -1
- package/dist/core/check-plugin-manifests.d.ts +10 -0
- package/dist/core/check-plugin-manifests.d.ts.map +1 -0
- package/dist/core/check-plugin-manifests.js +150 -0
- package/dist/core/check-plugin-manifests.js.map +1 -0
- package/dist/core/derived-index.d.ts +5 -3
- package/dist/core/derived-index.d.ts.map +1 -1
- package/dist/core/derived-index.js +35 -10
- package/dist/core/derived-index.js.map +1 -1
- package/dist/core/index.d.ts +5 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +5 -0
- package/dist/core/index.js.map +1 -1
- package/dist/core/plugin-agent-refs.d.ts +22 -0
- package/dist/core/plugin-agent-refs.d.ts.map +1 -0
- package/dist/core/plugin-agent-refs.js +87 -0
- package/dist/core/plugin-agent-refs.js.map +1 -0
- package/dist/core/plugin-hooks.d.ts +15 -0
- package/dist/core/plugin-hooks.d.ts.map +1 -0
- package/dist/core/plugin-hooks.js +58 -0
- package/dist/core/plugin-hooks.js.map +1 -0
- package/dist/core/plugin-manifest.d.ts +289 -0
- package/dist/core/plugin-manifest.d.ts.map +1 -0
- package/dist/core/plugin-manifest.js +125 -0
- package/dist/core/plugin-manifest.js.map +1 -0
- package/dist/core/plugin-payload.d.ts +26 -0
- package/dist/core/plugin-payload.d.ts.map +1 -0
- package/dist/core/plugin-payload.js +138 -0
- package/dist/core/plugin-payload.js.map +1 -0
- package/dist/index.js +17 -0
- package/dist/index.js.map +1 -1
- package/dist/wiki/application/ports.d.ts +111 -0
- package/dist/wiki/application/ports.d.ts.map +1 -0
- package/dist/wiki/application/ports.js +33 -0
- package/dist/wiki/application/ports.js.map +1 -0
- package/dist/wiki/application/queries.d.ts +5 -0
- package/dist/wiki/application/queries.d.ts.map +1 -0
- package/dist/wiki/application/queries.js +10 -0
- package/dist/wiki/application/queries.js.map +1 -0
- package/dist/wiki/application/research.d.ts +16 -0
- package/dist/wiki/application/research.d.ts.map +1 -0
- package/dist/wiki/application/research.js +48 -0
- package/dist/wiki/application/research.js.map +1 -0
- package/dist/wiki/application/service.d.ts +27 -0
- package/dist/wiki/application/service.d.ts.map +1 -0
- package/dist/wiki/application/service.js +153 -0
- package/dist/wiki/application/service.js.map +1 -0
- package/dist/wiki/domain/index.d.ts +5 -0
- package/dist/wiki/domain/index.d.ts.map +1 -0
- package/dist/wiki/domain/index.js +6 -0
- package/dist/wiki/domain/index.js.map +1 -0
- package/dist/wiki/domain/invariants.d.ts +28 -0
- package/dist/wiki/domain/invariants.d.ts.map +1 -0
- package/dist/wiki/domain/invariants.js +84 -0
- package/dist/wiki/domain/invariants.js.map +1 -0
- package/dist/wiki/domain/salience.d.ts +11 -0
- package/dist/wiki/domain/salience.d.ts.map +1 -0
- package/dist/wiki/domain/salience.js +40 -0
- package/dist/wiki/domain/salience.js.map +1 -0
- package/dist/wiki/domain/types.d.ts +151 -0
- package/dist/wiki/domain/types.d.ts.map +1 -0
- package/dist/wiki/domain/types.js +27 -0
- package/dist/wiki/domain/types.js.map +1 -0
- package/dist/wiki/domain/write-decision.d.ts +25 -0
- package/dist/wiki/domain/write-decision.d.ts.map +1 -0
- package/dist/wiki/domain/write-decision.js +71 -0
- package/dist/wiki/domain/write-decision.js.map +1 -0
- package/dist/wiki/infrastructure/fetcher-adapter.d.ts +45 -0
- package/dist/wiki/infrastructure/fetcher-adapter.d.ts.map +1 -0
- package/dist/wiki/infrastructure/fetcher-adapter.js +99 -0
- package/dist/wiki/infrastructure/fetcher-adapter.js.map +1 -0
- package/dist/wiki/infrastructure/inventory-adapter.d.ts +13 -0
- package/dist/wiki/infrastructure/inventory-adapter.d.ts.map +1 -0
- package/dist/wiki/infrastructure/inventory-adapter.js +46 -0
- package/dist/wiki/infrastructure/inventory-adapter.js.map +1 -0
- package/dist/wiki/infrastructure/markdown-repository.d.ts +23 -0
- package/dist/wiki/infrastructure/markdown-repository.d.ts.map +1 -0
- package/dist/wiki/infrastructure/markdown-repository.js +168 -0
- package/dist/wiki/infrastructure/markdown-repository.js.map +1 -0
- package/dist/wiki/infrastructure/scan-patterns.d.ts +20 -0
- package/dist/wiki/infrastructure/scan-patterns.d.ts.map +1 -0
- package/dist/wiki/infrastructure/scan-patterns.js +106 -0
- package/dist/wiki/infrastructure/scan-patterns.js.map +1 -0
- package/dist/wiki/infrastructure/scanner-adapter.d.ts +10 -0
- package/dist/wiki/infrastructure/scanner-adapter.d.ts.map +1 -0
- package/dist/wiki/infrastructure/scanner-adapter.js +147 -0
- package/dist/wiki/infrastructure/scanner-adapter.js.map +1 -0
- package/dist/wiki/infrastructure/sqlite-index.d.ts +9 -0
- package/dist/wiki/infrastructure/sqlite-index.d.ts.map +1 -0
- package/dist/wiki/infrastructure/sqlite-index.js +36 -0
- package/dist/wiki/infrastructure/sqlite-index.js.map +1 -0
- package/dist/wiki/infrastructure/trace-adapter.d.ts +7 -0
- package/dist/wiki/infrastructure/trace-adapter.d.ts.map +1 -0
- package/dist/wiki/infrastructure/trace-adapter.js +42 -0
- package/dist/wiki/infrastructure/trace-adapter.js.map +1 -0
- package/dist/wiki/infrastructure/wiki-ingest.d.ts +14 -0
- package/dist/wiki/infrastructure/wiki-ingest.d.ts.map +1 -0
- package/dist/wiki/infrastructure/wiki-ingest.js +138 -0
- package/dist/wiki/infrastructure/wiki-ingest.js.map +1 -0
- package/dist/wiki/infrastructure/wiki-query.d.ts +15 -0
- package/dist/wiki/infrastructure/wiki-query.d.ts.map +1 -0
- package/dist/wiki/infrastructure/wiki-query.js +46 -0
- package/dist/wiki/infrastructure/wiki-query.js.map +1 -0
- package/dist/wiki/infrastructure/wiki-schema.d.ts +3 -0
- package/dist/wiki/infrastructure/wiki-schema.d.ts.map +1 -0
- package/dist/wiki/infrastructure/wiki-schema.js +43 -0
- package/dist/wiki/infrastructure/wiki-schema.js.map +1 -0
- package/dist/wiki/interface/cli.d.ts +7 -0
- package/dist/wiki/interface/cli.d.ts.map +1 -0
- package/dist/wiki/interface/cli.js +160 -0
- package/dist/wiki/interface/cli.js.map +1 -0
- package/dist/wiki/render.d.ts +3 -0
- package/dist/wiki/render.d.ts.map +1 -0
- package/dist/wiki/render.js +58 -0
- package/dist/wiki/render.js.map +1 -0
- 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
|
-
|
|
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 =
|
|
10
|
-
* rebuild-able. Creates the DB (WAL) if absent. Never mutates the
|
|
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":"
|
|
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
|
-
|
|
6
|
-
|
|
7
|
-
//
|
|
8
|
-
// (
|
|
9
|
-
//
|
|
10
|
-
|
|
11
|
-
|
|
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
|
-
/**
|
|
94
|
-
*
|
|
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
|
-
|
|
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;
|
|
1
|
+
{"version":3,"file":"derived-index.js","sourceRoot":"","sources":["../../src/core/derived-index.ts"],"names":[],"mappings":"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"}
|
package/dist/core/index.d.ts
CHANGED
|
@@ -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
|
package/dist/core/index.d.ts.map
CHANGED
|
@@ -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"}
|
package/dist/core/index.js
CHANGED
|
@@ -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
|
package/dist/core/index.js.map
CHANGED
|
@@ -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"}
|