agentpacks 1.7.6 → 1.7.8
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/README.md +69 -742
- package/dist/api.d.ts +15 -15
- package/dist/api.js +2706 -2706
- package/dist/cli/export-cmd.js +364 -364
- package/dist/cli/generate.js +1409 -1409
- package/dist/cli/import-cmd.js +249 -249
- package/dist/cli/info.js +31 -31
- package/dist/cli/init.js +6 -6
- package/dist/cli/install.js +141 -141
- package/dist/cli/login.js +31 -31
- package/dist/cli/models-explain.js +514 -514
- package/dist/cli/pack/create.js +6 -6
- package/dist/cli/pack/enable.js +2 -2
- package/dist/cli/pack/list.js +362 -362
- package/dist/cli/pack/validate.js +119 -119
- package/dist/cli/publish.js +42 -42
- package/dist/cli/search.js +31 -31
- package/dist/core/config.js +3 -3
- package/dist/core/feature-merger.d.ts +5 -5
- package/dist/core/feature-merger.js +4 -4
- package/dist/core/index.d.ts +4 -4
- package/dist/core/index.js +633 -633
- package/dist/core/lockfile.js +1 -1
- package/dist/core/metarepo.js +3 -3
- package/dist/core/pack-loader.d.ts +6 -6
- package/dist/core/pack-loader.js +362 -362
- package/dist/core/profile-resolver.d.ts +1 -1
- package/dist/exporters/cursor-plugin.d.ts +12 -0
- package/dist/exporters/cursor-plugin.js +46 -46
- package/dist/exporters/index.d.ts +1 -1
- package/dist/exporters/index.js +46 -46
- package/dist/features/agents.js +4 -4
- package/dist/features/commands.js +4 -4
- package/dist/features/hooks.js +4 -4
- package/dist/features/index.d.ts +8 -8
- package/dist/features/index.js +350 -350
- package/dist/features/mcp.js +4 -4
- package/dist/features/models.js +4 -4
- package/dist/features/plugins.js +5 -5
- package/dist/features/rules.js +4 -4
- package/dist/features/skills.js +5 -5
- package/dist/importers/claude-code.js +6 -6
- package/dist/importers/cursor.js +7 -7
- package/dist/importers/opencode.js +7 -7
- package/dist/importers/rulesync.js +7 -7
- package/dist/index.js +2674 -2674
- package/dist/node/api.js +2706 -2706
- package/dist/node/cli/export-cmd.js +364 -364
- package/dist/node/cli/generate.js +1409 -1409
- package/dist/node/cli/import-cmd.js +249 -249
- package/dist/node/cli/info.js +31 -31
- package/dist/node/cli/init.js +6 -6
- package/dist/node/cli/install.js +141 -141
- package/dist/node/cli/login.js +31 -31
- package/dist/node/cli/models-explain.js +514 -514
- package/dist/node/cli/pack/create.js +6 -6
- package/dist/node/cli/pack/enable.js +2 -2
- package/dist/node/cli/pack/list.js +362 -362
- package/dist/node/cli/pack/validate.js +119 -119
- package/dist/node/cli/publish.js +42 -42
- package/dist/node/cli/search.js +31 -31
- package/dist/node/core/config.js +3 -3
- package/dist/node/core/feature-merger.js +4 -4
- package/dist/node/core/index.js +633 -633
- package/dist/node/core/lockfile.js +1 -1
- package/dist/node/core/metarepo.js +3 -3
- package/dist/node/core/pack-loader.js +362 -362
- package/dist/node/exporters/cursor-plugin.js +46 -46
- package/dist/node/exporters/index.js +46 -46
- package/dist/node/features/agents.js +4 -4
- package/dist/node/features/commands.js +4 -4
- package/dist/node/features/hooks.js +4 -4
- package/dist/node/features/index.js +350 -350
- package/dist/node/features/mcp.js +4 -4
- package/dist/node/features/models.js +4 -4
- package/dist/node/features/plugins.js +5 -5
- package/dist/node/features/rules.js +4 -4
- package/dist/node/features/skills.js +5 -5
- package/dist/node/importers/claude-code.js +6 -6
- package/dist/node/importers/cursor.js +7 -7
- package/dist/node/importers/opencode.js +7 -7
- package/dist/node/importers/rulesync.js +7 -7
- package/dist/node/index.js +2674 -2674
- package/dist/node/sources/git.js +2 -2
- package/dist/node/sources/index.js +138 -138
- package/dist/node/sources/local.js +1 -1
- package/dist/node/sources/npm.js +3 -3
- package/dist/node/sources/registry.js +35 -35
- package/dist/node/targets/additional-targets.js +43 -43
- package/dist/node/targets/agents-md.js +4 -4
- package/dist/node/targets/claude-code.js +86 -86
- package/dist/node/targets/codex-cli.js +6 -6
- package/dist/node/targets/copilot.js +46 -46
- package/dist/node/targets/cursor.js +68 -68
- package/dist/node/targets/gemini-cli.js +25 -25
- package/dist/node/targets/generic-md-target.js +43 -43
- package/dist/node/targets/index.js +911 -911
- package/dist/node/targets/mistral-vibe.js +46 -46
- package/dist/node/targets/opencode.js +68 -68
- package/dist/node/targets/registry.js +911 -911
- package/dist/node/utils/credentials.js +2 -2
- package/dist/node/utils/filesystem.js +4 -4
- package/dist/node/utils/global.js +1 -1
- package/dist/node/utils/tarball.js +2 -2
- package/dist/sources/git.js +2 -2
- package/dist/sources/index.d.ts +6 -6
- package/dist/sources/index.js +138 -138
- package/dist/sources/local.js +1 -1
- package/dist/sources/npm.d.ts +3 -0
- package/dist/sources/npm.js +3 -3
- package/dist/sources/registry.js +35 -35
- package/dist/targets/additional-targets.js +43 -43
- package/dist/targets/agents-md.js +4 -4
- package/dist/targets/claude-code.js +86 -86
- package/dist/targets/codex-cli.js +6 -6
- package/dist/targets/copilot.js +46 -46
- package/dist/targets/cursor.js +68 -68
- package/dist/targets/gemini-cli.js +25 -25
- package/dist/targets/generic-md-target.js +43 -43
- package/dist/targets/index.d.ts +6 -6
- package/dist/targets/index.js +911 -911
- package/dist/targets/mistral-vibe.js +46 -46
- package/dist/targets/opencode.js +68 -68
- package/dist/targets/registry.js +911 -911
- package/dist/utils/credentials.js +2 -2
- package/dist/utils/filesystem.js +4 -4
- package/dist/utils/global.d.ts +3 -0
- package/dist/utils/global.js +1 -1
- package/dist/utils/tarball.js +2 -2
- package/package.json +5 -5
- package/templates/pack/models.json +36 -36
- package/templates/pack/pack.json +8 -8
- package/templates/workspace/agentpacks.jsonc +24 -24
|
@@ -5,13 +5,13 @@ var __require = /* @__PURE__ */ createRequire(import.meta.url);
|
|
|
5
5
|
import {
|
|
6
6
|
existsSync,
|
|
7
7
|
mkdirSync,
|
|
8
|
-
readFileSync,
|
|
9
|
-
writeFileSync,
|
|
10
8
|
readdirSync,
|
|
9
|
+
readFileSync,
|
|
11
10
|
rmSync,
|
|
12
|
-
statSync
|
|
11
|
+
statSync,
|
|
12
|
+
writeFileSync
|
|
13
13
|
} from "fs";
|
|
14
|
-
import { dirname,
|
|
14
|
+
import { dirname, join, relative } from "path";
|
|
15
15
|
var GENERATED_HEADER_MD = "<!-- Generated by agentpacks. DO NOT EDIT. -->";
|
|
16
16
|
var GENERATED_HEADER_JSON = "// Generated by agentpacks. DO NOT EDIT.";
|
|
17
17
|
var GENERATED_HEADER_JS = "// Generated by agentpacks. DO NOT EDIT.";
|
|
@@ -129,16 +129,54 @@ function serializeFrontmatter(data, content) {
|
|
|
129
129
|
return matter.stringify(content, filtered);
|
|
130
130
|
}
|
|
131
131
|
|
|
132
|
+
// src/features/hooks.ts
|
|
133
|
+
import { join as join2 } from "path";
|
|
134
|
+
var TARGET_OVERRIDE_KEYS = ["cursor", "claudecode", "opencode"];
|
|
135
|
+
function parseHooks(packDir, packName) {
|
|
136
|
+
const hooksPath = join2(packDir, "hooks", "hooks.json");
|
|
137
|
+
const raw = readJsonOrNull(hooksPath);
|
|
138
|
+
if (!raw)
|
|
139
|
+
return null;
|
|
140
|
+
const shared = raw.hooks ?? {};
|
|
141
|
+
const targetOverrides = {};
|
|
142
|
+
for (const key of TARGET_OVERRIDE_KEYS) {
|
|
143
|
+
const override = raw[key];
|
|
144
|
+
if (override && typeof override === "object" && "hooks" in override && override.hooks) {
|
|
145
|
+
targetOverrides[key] = override.hooks;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
return {
|
|
149
|
+
packName,
|
|
150
|
+
sourcePath: hooksPath,
|
|
151
|
+
version: raw.version,
|
|
152
|
+
shared,
|
|
153
|
+
targetOverrides
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
function resolveHooksForTarget(hooks, targetId) {
|
|
157
|
+
const merged = {};
|
|
158
|
+
for (const [event, entries] of Object.entries(hooks.shared)) {
|
|
159
|
+
merged[event] = [...entries];
|
|
160
|
+
}
|
|
161
|
+
const overrides = hooks.targetOverrides[targetId];
|
|
162
|
+
if (overrides) {
|
|
163
|
+
for (const [event, entries] of Object.entries(overrides)) {
|
|
164
|
+
merged[event] = [...merged[event] ?? [], ...entries];
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
return merged;
|
|
168
|
+
}
|
|
169
|
+
|
|
132
170
|
// src/features/skills.ts
|
|
133
|
-
import {
|
|
134
|
-
import { basename, join as
|
|
171
|
+
import { existsSync as existsSync2, readFileSync as readFileSync2 } from "fs";
|
|
172
|
+
import { basename, join as join3 } from "path";
|
|
135
173
|
var SKILL_NAME_PATTERN = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;
|
|
136
174
|
var SKILL_NAME_MAX_LENGTH = 64;
|
|
137
175
|
function parseSkills(skillsDir, packName) {
|
|
138
176
|
const dirs = listDirs(skillsDir);
|
|
139
177
|
const skills = [];
|
|
140
178
|
for (const dir of dirs) {
|
|
141
|
-
const skillMd =
|
|
179
|
+
const skillMd = join3(dir, "SKILL.md");
|
|
142
180
|
if (existsSync2(skillMd)) {
|
|
143
181
|
skills.push(parseSkillFile(skillMd, dir, packName));
|
|
144
182
|
}
|
|
@@ -219,47 +257,9 @@ function skillMatchesTarget(skill, targetId) {
|
|
|
219
257
|
return Array.isArray(targets) && targets.includes(targetId);
|
|
220
258
|
}
|
|
221
259
|
|
|
222
|
-
// src/features/hooks.ts
|
|
223
|
-
import { join as join3 } from "path";
|
|
224
|
-
var TARGET_OVERRIDE_KEYS = ["cursor", "claudecode", "opencode"];
|
|
225
|
-
function parseHooks(packDir, packName) {
|
|
226
|
-
const hooksPath = join3(packDir, "hooks", "hooks.json");
|
|
227
|
-
const raw = readJsonOrNull(hooksPath);
|
|
228
|
-
if (!raw)
|
|
229
|
-
return null;
|
|
230
|
-
const shared = raw.hooks ?? {};
|
|
231
|
-
const targetOverrides = {};
|
|
232
|
-
for (const key of TARGET_OVERRIDE_KEYS) {
|
|
233
|
-
const override = raw[key];
|
|
234
|
-
if (override && typeof override === "object" && "hooks" in override && override.hooks) {
|
|
235
|
-
targetOverrides[key] = override.hooks;
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
return {
|
|
239
|
-
packName,
|
|
240
|
-
sourcePath: hooksPath,
|
|
241
|
-
version: raw.version,
|
|
242
|
-
shared,
|
|
243
|
-
targetOverrides
|
|
244
|
-
};
|
|
245
|
-
}
|
|
246
|
-
function resolveHooksForTarget(hooks, targetId) {
|
|
247
|
-
const merged = {};
|
|
248
|
-
for (const [event, entries] of Object.entries(hooks.shared)) {
|
|
249
|
-
merged[event] = [...entries];
|
|
250
|
-
}
|
|
251
|
-
const overrides = hooks.targetOverrides[targetId];
|
|
252
|
-
if (overrides) {
|
|
253
|
-
for (const [event, entries] of Object.entries(overrides)) {
|
|
254
|
-
merged[event] = [...merged[event] ?? [], ...entries];
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
return merged;
|
|
258
|
-
}
|
|
259
|
-
|
|
260
260
|
// src/exporters/cursor-plugin.ts
|
|
261
|
-
import { resolve, join as join4 } from "path";
|
|
262
261
|
import { mkdirSync as mkdirSync2, writeFileSync as writeFileSync2 } from "fs";
|
|
262
|
+
import { join as join4, resolve } from "path";
|
|
263
263
|
function exportCursorPlugin(pack, outputDir) {
|
|
264
264
|
const filesWritten = [];
|
|
265
265
|
const pluginName = normalizeCursorPluginName(pack.manifest.name);
|
|
@@ -5,13 +5,13 @@ var __require = /* @__PURE__ */ createRequire(import.meta.url);
|
|
|
5
5
|
import {
|
|
6
6
|
existsSync,
|
|
7
7
|
mkdirSync,
|
|
8
|
-
readFileSync,
|
|
9
|
-
writeFileSync,
|
|
10
8
|
readdirSync,
|
|
9
|
+
readFileSync,
|
|
11
10
|
rmSync,
|
|
12
|
-
statSync
|
|
11
|
+
statSync,
|
|
12
|
+
writeFileSync
|
|
13
13
|
} from "fs";
|
|
14
|
-
import { dirname,
|
|
14
|
+
import { dirname, join, relative } from "path";
|
|
15
15
|
var GENERATED_HEADER_MD = "<!-- Generated by agentpacks. DO NOT EDIT. -->";
|
|
16
16
|
var GENERATED_HEADER_JSON = "// Generated by agentpacks. DO NOT EDIT.";
|
|
17
17
|
var GENERATED_HEADER_JS = "// Generated by agentpacks. DO NOT EDIT.";
|
|
@@ -129,16 +129,54 @@ function serializeFrontmatter(data, content) {
|
|
|
129
129
|
return matter.stringify(content, filtered);
|
|
130
130
|
}
|
|
131
131
|
|
|
132
|
+
// src/features/hooks.ts
|
|
133
|
+
import { join as join2 } from "path";
|
|
134
|
+
var TARGET_OVERRIDE_KEYS = ["cursor", "claudecode", "opencode"];
|
|
135
|
+
function parseHooks(packDir, packName) {
|
|
136
|
+
const hooksPath = join2(packDir, "hooks", "hooks.json");
|
|
137
|
+
const raw = readJsonOrNull(hooksPath);
|
|
138
|
+
if (!raw)
|
|
139
|
+
return null;
|
|
140
|
+
const shared = raw.hooks ?? {};
|
|
141
|
+
const targetOverrides = {};
|
|
142
|
+
for (const key of TARGET_OVERRIDE_KEYS) {
|
|
143
|
+
const override = raw[key];
|
|
144
|
+
if (override && typeof override === "object" && "hooks" in override && override.hooks) {
|
|
145
|
+
targetOverrides[key] = override.hooks;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
return {
|
|
149
|
+
packName,
|
|
150
|
+
sourcePath: hooksPath,
|
|
151
|
+
version: raw.version,
|
|
152
|
+
shared,
|
|
153
|
+
targetOverrides
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
function resolveHooksForTarget(hooks, targetId) {
|
|
157
|
+
const merged = {};
|
|
158
|
+
for (const [event, entries] of Object.entries(hooks.shared)) {
|
|
159
|
+
merged[event] = [...entries];
|
|
160
|
+
}
|
|
161
|
+
const overrides = hooks.targetOverrides[targetId];
|
|
162
|
+
if (overrides) {
|
|
163
|
+
for (const [event, entries] of Object.entries(overrides)) {
|
|
164
|
+
merged[event] = [...merged[event] ?? [], ...entries];
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
return merged;
|
|
168
|
+
}
|
|
169
|
+
|
|
132
170
|
// src/features/skills.ts
|
|
133
|
-
import {
|
|
134
|
-
import { basename, join as
|
|
171
|
+
import { existsSync as existsSync2, readFileSync as readFileSync2 } from "fs";
|
|
172
|
+
import { basename, join as join3 } from "path";
|
|
135
173
|
var SKILL_NAME_PATTERN = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;
|
|
136
174
|
var SKILL_NAME_MAX_LENGTH = 64;
|
|
137
175
|
function parseSkills(skillsDir, packName) {
|
|
138
176
|
const dirs = listDirs(skillsDir);
|
|
139
177
|
const skills = [];
|
|
140
178
|
for (const dir of dirs) {
|
|
141
|
-
const skillMd =
|
|
179
|
+
const skillMd = join3(dir, "SKILL.md");
|
|
142
180
|
if (existsSync2(skillMd)) {
|
|
143
181
|
skills.push(parseSkillFile(skillMd, dir, packName));
|
|
144
182
|
}
|
|
@@ -219,47 +257,9 @@ function skillMatchesTarget(skill, targetId) {
|
|
|
219
257
|
return Array.isArray(targets) && targets.includes(targetId);
|
|
220
258
|
}
|
|
221
259
|
|
|
222
|
-
// src/features/hooks.ts
|
|
223
|
-
import { join as join3 } from "path";
|
|
224
|
-
var TARGET_OVERRIDE_KEYS = ["cursor", "claudecode", "opencode"];
|
|
225
|
-
function parseHooks(packDir, packName) {
|
|
226
|
-
const hooksPath = join3(packDir, "hooks", "hooks.json");
|
|
227
|
-
const raw = readJsonOrNull(hooksPath);
|
|
228
|
-
if (!raw)
|
|
229
|
-
return null;
|
|
230
|
-
const shared = raw.hooks ?? {};
|
|
231
|
-
const targetOverrides = {};
|
|
232
|
-
for (const key of TARGET_OVERRIDE_KEYS) {
|
|
233
|
-
const override = raw[key];
|
|
234
|
-
if (override && typeof override === "object" && "hooks" in override && override.hooks) {
|
|
235
|
-
targetOverrides[key] = override.hooks;
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
return {
|
|
239
|
-
packName,
|
|
240
|
-
sourcePath: hooksPath,
|
|
241
|
-
version: raw.version,
|
|
242
|
-
shared,
|
|
243
|
-
targetOverrides
|
|
244
|
-
};
|
|
245
|
-
}
|
|
246
|
-
function resolveHooksForTarget(hooks, targetId) {
|
|
247
|
-
const merged = {};
|
|
248
|
-
for (const [event, entries] of Object.entries(hooks.shared)) {
|
|
249
|
-
merged[event] = [...entries];
|
|
250
|
-
}
|
|
251
|
-
const overrides = hooks.targetOverrides[targetId];
|
|
252
|
-
if (overrides) {
|
|
253
|
-
for (const [event, entries] of Object.entries(overrides)) {
|
|
254
|
-
merged[event] = [...merged[event] ?? [], ...entries];
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
return merged;
|
|
258
|
-
}
|
|
259
|
-
|
|
260
260
|
// src/exporters/cursor-plugin.ts
|
|
261
|
-
import { resolve, join as join4 } from "path";
|
|
262
261
|
import { mkdirSync as mkdirSync2, writeFileSync as writeFileSync2 } from "fs";
|
|
262
|
+
import { join as join4, resolve } from "path";
|
|
263
263
|
function exportCursorPlugin(pack, outputDir) {
|
|
264
264
|
const filesWritten = [];
|
|
265
265
|
const pluginName = normalizeCursorPluginName(pack.manifest.name);
|
|
@@ -5,13 +5,13 @@ var __require = /* @__PURE__ */ createRequire(import.meta.url);
|
|
|
5
5
|
import {
|
|
6
6
|
existsSync,
|
|
7
7
|
mkdirSync,
|
|
8
|
-
readFileSync,
|
|
9
|
-
writeFileSync,
|
|
10
8
|
readdirSync,
|
|
9
|
+
readFileSync,
|
|
11
10
|
rmSync,
|
|
12
|
-
statSync
|
|
11
|
+
statSync,
|
|
12
|
+
writeFileSync
|
|
13
13
|
} from "fs";
|
|
14
|
-
import { dirname,
|
|
14
|
+
import { dirname, join, relative } from "path";
|
|
15
15
|
var GENERATED_HEADER_MD = "<!-- Generated by agentpacks. DO NOT EDIT. -->";
|
|
16
16
|
var GENERATED_HEADER_JSON = "// Generated by agentpacks. DO NOT EDIT.";
|
|
17
17
|
var GENERATED_HEADER_JS = "// Generated by agentpacks. DO NOT EDIT.";
|
|
@@ -5,13 +5,13 @@ var __require = /* @__PURE__ */ createRequire(import.meta.url);
|
|
|
5
5
|
import {
|
|
6
6
|
existsSync,
|
|
7
7
|
mkdirSync,
|
|
8
|
-
readFileSync,
|
|
9
|
-
writeFileSync,
|
|
10
8
|
readdirSync,
|
|
9
|
+
readFileSync,
|
|
11
10
|
rmSync,
|
|
12
|
-
statSync
|
|
11
|
+
statSync,
|
|
12
|
+
writeFileSync
|
|
13
13
|
} from "fs";
|
|
14
|
-
import { dirname,
|
|
14
|
+
import { dirname, join, relative } from "path";
|
|
15
15
|
var GENERATED_HEADER_MD = "<!-- Generated by agentpacks. DO NOT EDIT. -->";
|
|
16
16
|
var GENERATED_HEADER_JSON = "// Generated by agentpacks. DO NOT EDIT.";
|
|
17
17
|
var GENERATED_HEADER_JS = "// Generated by agentpacks. DO NOT EDIT.";
|
|
@@ -5,13 +5,13 @@ var __require = /* @__PURE__ */ createRequire(import.meta.url);
|
|
|
5
5
|
import {
|
|
6
6
|
existsSync,
|
|
7
7
|
mkdirSync,
|
|
8
|
-
readFileSync,
|
|
9
|
-
writeFileSync,
|
|
10
8
|
readdirSync,
|
|
9
|
+
readFileSync,
|
|
11
10
|
rmSync,
|
|
12
|
-
statSync
|
|
11
|
+
statSync,
|
|
12
|
+
writeFileSync
|
|
13
13
|
} from "fs";
|
|
14
|
-
import { dirname,
|
|
14
|
+
import { dirname, join, relative } from "path";
|
|
15
15
|
var GENERATED_HEADER_MD = "<!-- Generated by agentpacks. DO NOT EDIT. -->";
|
|
16
16
|
var GENERATED_HEADER_JSON = "// Generated by agentpacks. DO NOT EDIT.";
|
|
17
17
|
var GENERATED_HEADER_JS = "// Generated by agentpacks. DO NOT EDIT.";
|