@aipm-registry/cli 0.1.0 → 0.1.1

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aipm-registry/cli",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "Command line tool for installing AIPM AI skills into supported editors and assistants.",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -14,7 +14,7 @@
14
14
  "url": "https://github.com/abhisri2090/aipm/issues"
15
15
  },
16
16
  "bin": {
17
- "aipm": "./dist/bin.js"
17
+ "aipm": "./dist/bin.cjs"
18
18
  },
19
19
  "files": [
20
20
  "dist",
@@ -27,14 +27,10 @@
27
27
  "publishConfig": {
28
28
  "access": "public"
29
29
  },
30
- "dependencies": {
31
- "commander": "^12.1.0",
32
- "@aipm-registry/schemas": "0.1.0",
33
- "@aipm-registry/engine": "0.1.0"
34
- },
30
+ "dependencies": {},
35
31
  "scripts": {
36
- "build": "tsc -p tsconfig.json",
37
- "dev": "node dist/bin.js",
32
+ "build": "rm -rf dist && esbuild src/bin.ts --bundle --platform=node --format=cjs --target=node20 --outfile=dist/bin.cjs --sourcemap",
33
+ "dev": "node dist/bin.cjs",
38
34
  "typecheck": "tsc -p tsconfig.json --noEmit",
39
35
  "lint": "eslint src",
40
36
  "clean": "rm -rf dist"
package/dist/bin.d.ts DELETED
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env node
2
- export {};
3
- //# sourceMappingURL=bin.d.ts.map
package/dist/bin.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"bin.d.ts","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":""}
package/dist/bin.js DELETED
@@ -1,136 +0,0 @@
1
- #!/usr/bin/env node
2
- import { Command } from "commander";
3
- import { readFile } from "node:fs/promises";
4
- import { join, resolve } from "node:path";
5
- import { cwd, env } from "node:process";
6
- import { PackageManifestSchema, isValidScopeName } from "@aipm-registry/schemas";
7
- import { detectToolsInProject } from "@aipm-registry/engine";
8
- import { packDirectory } from "./pack.js";
9
- import { publishPackage } from "./registry-client.js";
10
- import { installOnePackage } from "./install-one.js";
11
- import { parseTargetFlag, readProjectPackageJson, resolveRegistryUrl, writeProjectPackageJson, } from "./project-files.js";
12
- import { promptForTool } from "./prompt.js";
13
- const program = new Command();
14
- const DEFAULT_REGISTRY = "https://aipm-registry.com";
15
- program.name("aipm").description("AI package manager").version("0.1.0");
16
- program
17
- .command("init")
18
- .description("Create aipm.package.json in the current project")
19
- .option("--registry <url>", "Default registry URL")
20
- .action(async (opts) => {
21
- const root = cwd();
22
- const existing = await readProjectPackageJson(root);
23
- if (existing) {
24
- console.log("aipm.package.json already exists.");
25
- return;
26
- }
27
- const detected = await detectToolsInProject(root);
28
- let preferredTools = detected;
29
- if (detected.length === 0) {
30
- const choice = await promptForTool();
31
- preferredTools = [choice];
32
- }
33
- const registry = opts.registry ??
34
- process.env.AIPM_REGISTRY ??
35
- DEFAULT_REGISTRY;
36
- await writeProjectPackageJson(root, {
37
- schemaVersion: "0.1",
38
- registry,
39
- preferredTools: preferredTools.length ? preferredTools : undefined,
40
- packages: {},
41
- });
42
- console.log(`Created aipm.package.json (registry: ${registry})`);
43
- });
44
- program
45
- .command("add <package>")
46
- .description("Add and install a package @scope/name[@version]")
47
- .option("--registry <url>", "Registry base URL")
48
- .option("--target <tool>", "cursor or claude")
49
- .option("--ci", "Non-interactive; fail if prompt needed")
50
- .action(async (pkgArg, opts) => {
51
- const match = pkgArg.match(/^(@[^@]+)(?:@(.+))?$/);
52
- if (!match)
53
- throw new Error("Package must be @scope/name or @scope/name@version");
54
- const name = match[1];
55
- if (!isValidScopeName(name))
56
- throw new Error("Invalid @scope/name");
57
- const root = cwd();
58
- let project = await readProjectPackageJson(root);
59
- if (!project)
60
- throw new Error("Run aipm init first");
61
- const version = match[2] ?? project.packages[name];
62
- if (!version)
63
- throw new Error("Specify version: aipm add @scope/pkg@1.0.0");
64
- project = {
65
- ...project,
66
- packages: { ...project.packages, [name]: version.replace(/^\^/, "") },
67
- };
68
- await writeProjectPackageJson(root, project);
69
- const registry = resolveRegistryUrl(project, opts.registry);
70
- await installOnePackage({
71
- projectRoot: root,
72
- registry,
73
- name,
74
- version: version.replace(/^\^/, ""),
75
- project,
76
- explicitTarget: parseTargetFlag(opts.target),
77
- ci: opts.ci,
78
- });
79
- });
80
- program
81
- .command("install")
82
- .description("Install all packages from aipm.package.json")
83
- .option("--registry <url>", "Registry base URL")
84
- .option("--target <tool>", "cursor or claude")
85
- .option("--ci", "Non-interactive")
86
- .action(async (opts) => {
87
- const root = cwd();
88
- const project = await readProjectPackageJson(root);
89
- if (!project)
90
- throw new Error("Run aipm init first");
91
- const registry = resolveRegistryUrl(project, opts.registry);
92
- const target = parseTargetFlag(opts.target);
93
- for (const [name, version] of Object.entries(project.packages)) {
94
- await installOnePackage({
95
- projectRoot: root,
96
- registry,
97
- name,
98
- version: version.replace(/^\^/, ""),
99
- project,
100
- explicitTarget: target,
101
- ci: opts.ci,
102
- });
103
- }
104
- });
105
- program
106
- .command("publish <dir>")
107
- .description("Publish a skill folder to the registry")
108
- .requiredOption("--registry <url>", "Registry base URL")
109
- .option("--token <token>", "Publish token")
110
- .action(async (dir, opts) => {
111
- const abs = resolve(dir);
112
- const manifestRaw = await readFile(join(abs, "aipm.manifest.json"), "utf8");
113
- const manifest = PackageManifestSchema.parse(JSON.parse(manifestRaw));
114
- const tarball = await packDirectory(abs);
115
- const result = await publishPackage(opts.registry, manifest.name, tarball, opts.token ?? env.AIPM_TOKEN);
116
- console.log(`Published ${manifest.name}@${result.version}`);
117
- });
118
- program
119
- .command("list")
120
- .description("List packages from aipm-lock.json")
121
- .action(async () => {
122
- const { readLockfile } = await import("./project-files.js");
123
- const lock = await readLockfile(cwd());
124
- if (!lock || Object.keys(lock.packages).length === 0) {
125
- console.log("No packages installed.");
126
- return;
127
- }
128
- for (const [name, entry] of Object.entries(lock.packages)) {
129
- console.log(`${name}@${entry.version} [${entry.resolvedTools.join(", ")}]`);
130
- }
131
- });
132
- program.parseAsync(process.argv).catch((err) => {
133
- console.error(err.message);
134
- process.exit(1);
135
- });
136
- //# sourceMappingURL=bin.js.map
package/dist/bin.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- import type { AiTool } from "@aipm-registry/schemas";
2
- import { type ProjectPackageJson } from "./project-files.js";
3
- export interface InstallOneOptions {
4
- projectRoot: string;
5
- registry: string;
6
- name: string;
7
- version: string;
8
- project: ProjectPackageJson;
9
- explicitTarget?: AiTool;
10
- ci?: boolean;
11
- }
12
- export declare function installOnePackage(options: InstallOneOptions): Promise<void>;
13
- //# sourceMappingURL=install-one.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"install-one.d.ts","sourceRoot":"","sources":["../src/install-one.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAkC,MAAM,wBAAwB,CAAC;AAOrF,OAAO,EAIL,KAAK,kBAAkB,EACxB,MAAM,oBAAoB,CAAC;AAG5B,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,kBAAkB,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,EAAE,CAAC,EAAE,OAAO,CAAC;CACd;AAED,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0EjF"}
@@ -1,60 +0,0 @@
1
- import { installSkillPackage } from "@aipm-registry/engine";
2
- import { unpackTarballToBuffer } from "./pack.js";
3
- import { assertRegistryReachable, fetchPackageMetadata, fetchPackageTarball, } from "./registry-client.js";
4
- import { readLockfile, upsertLockEntry, writeLockfile, } from "./project-files.js";
5
- import { promptForTool } from "./prompt.js";
6
- export async function installOnePackage(options) {
7
- await assertRegistryReachable(options.registry);
8
- const { manifest, integrity: remoteIntegrity } = await fetchPackageMetadata(options.registry, options.name, options.version);
9
- let explicitTarget = options.explicitTarget;
10
- let preferredTools = options.project.preferredTools;
11
- const { resolveInstallTools } = await import("@aipm-registry/engine");
12
- let tools = await resolveInstallTools({
13
- projectRoot: options.projectRoot,
14
- manifest,
15
- preferredTools,
16
- explicitTarget,
17
- });
18
- if (tools.length === 0) {
19
- if (options.ci) {
20
- throw new Error("No tool detected. Use --target cursor|claude in CI mode.");
21
- }
22
- const choice = await promptForTool();
23
- explicitTarget = choice;
24
- preferredTools = [choice];
25
- tools = await resolveInstallTools({
26
- projectRoot: options.projectRoot,
27
- manifest,
28
- preferredTools,
29
- explicitTarget,
30
- });
31
- }
32
- const tarball = await fetchPackageTarball(options.registry, options.name, options.version);
33
- const skillMarkdown = await unpackTarballToBuffer(tarball, manifest.entry);
34
- const result = await installSkillPackage({
35
- projectRoot: options.projectRoot,
36
- manifest,
37
- skillMarkdown,
38
- preferredTools,
39
- explicitTarget,
40
- });
41
- const lock = (await readLockfile(options.projectRoot)) ?? {
42
- schemaVersion: "0.1",
43
- packages: {},
44
- };
45
- const installed = {};
46
- for (const tool of result.resolvedTools) {
47
- const paths = result.installed[tool];
48
- if (paths)
49
- installed[tool] = paths;
50
- }
51
- await writeLockfile(options.projectRoot, upsertLockEntry(lock, options.name, {
52
- version: options.version,
53
- integrity: remoteIntegrity,
54
- registry: options.registry,
55
- resolvedTools: result.resolvedTools,
56
- installed,
57
- }));
58
- console.log(`Installed ${options.name}@${options.version} → ${result.resolvedTools.join(", ")}`);
59
- }
60
- //# sourceMappingURL=install-one.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"install-one.js","sourceRoot":"","sources":["../src/install-one.ts"],"names":[],"mappings":"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"}
package/dist/pack.d.ts DELETED
@@ -1,3 +0,0 @@
1
- export declare function packDirectory(dir: string): Promise<Buffer>;
2
- export declare function unpackTarballToBuffer(tarball: Buffer, entry: string): Promise<string>;
3
- //# sourceMappingURL=pack.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pack.d.ts","sourceRoot":"","sources":["../src/pack.ts"],"names":[],"mappings":"AAMA,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAMhE;AAED,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAa3F"}
package/dist/pack.js DELETED
@@ -1,27 +0,0 @@
1
- import { execFile } from "node:child_process";
2
- import { readFile } from "node:fs/promises";
3
- import { promisify } from "node:util";
4
- const execFileAsync = promisify(execFile);
5
- export async function packDirectory(dir) {
6
- const { stdout } = await execFileAsync("tar", ["-czf", "-", "-C", dir, "."], {
7
- maxBuffer: 50 * 1024 * 1024,
8
- encoding: "buffer",
9
- });
10
- return Buffer.isBuffer(stdout) ? stdout : Buffer.from(stdout);
11
- }
12
- export async function unpackTarballToBuffer(tarball, entry) {
13
- const { mkdtemp, rm, writeFile } = await import("node:fs/promises");
14
- const { join } = await import("node:path");
15
- const { tmpdir } = await import("node:os");
16
- const tempDir = await mkdtemp(join(tmpdir(), "aipm-install-"));
17
- const tgzPath = join(tempDir, "pkg.tgz");
18
- try {
19
- await writeFile(tgzPath, tarball);
20
- await execFileAsync("tar", ["-xzf", tgzPath, "-C", tempDir]);
21
- return readFile(join(tempDir, entry), "utf8");
22
- }
23
- finally {
24
- await rm(tempDir, { recursive: true, force: true });
25
- }
26
- }
27
- //# sourceMappingURL=pack.js.map
package/dist/pack.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"pack.js","sourceRoot":"","sources":["../src/pack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAE1C,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,GAAW;IAC7C,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE;QAC3E,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;QAC3B,QAAQ,EAAE,QAAQ;KACnB,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,OAAe,EAAE,KAAa;IACxE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;IACpE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;IAC3C,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACzC,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAClC,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;QAC7D,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;IAChD,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC;AACH,CAAC"}
@@ -1,10 +0,0 @@
1
- import { type AiTool, type Lockfile, type LockfilePackageEntry, type ProjectPackageJson } from "@aipm-registry/schemas";
2
- export type { ProjectPackageJson };
3
- export declare function readProjectPackageJson(projectRoot: string): Promise<ProjectPackageJson | null>;
4
- export declare function writeProjectPackageJson(projectRoot: string, data: ProjectPackageJson): Promise<void>;
5
- export declare function readLockfile(projectRoot: string): Promise<Lockfile | null>;
6
- export declare function writeLockfile(projectRoot: string, data: Lockfile): Promise<void>;
7
- export declare function upsertLockEntry(lock: Lockfile, name: string, entry: LockfilePackageEntry): Lockfile;
8
- export declare function resolveRegistryUrl(project: ProjectPackageJson | null, flag?: string): string;
9
- export declare function parseTargetFlag(target?: string): AiTool | undefined;
10
- //# sourceMappingURL=project-files.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"project-files.d.ts","sourceRoot":"","sources":["../src/project-files.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,MAAM,EACX,KAAK,QAAQ,EACb,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACxB,MAAM,wBAAwB,CAAC;AAEhC,YAAY,EAAE,kBAAkB,EAAE,CAAC;AAKnC,wBAAsB,sBAAsB,CAC1C,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAOpC;AAED,wBAAsB,uBAAuB,CAC3C,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,kBAAkB,GACvB,OAAO,CAAC,IAAI,CAAC,CAMf;AAED,wBAAsB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAOhF;AAED,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAEtF;AAED,wBAAgB,eAAe,CAC7B,IAAI,EAAE,QAAQ,EACd,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,oBAAoB,GAC1B,QAAQ,CAKV;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,kBAAkB,GAAG,IAAI,EAClC,IAAI,CAAC,EAAE,MAAM,GACZ,MAAM,CAMR;AAED,wBAAgB,eAAe,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAInE"}
@@ -1,53 +0,0 @@
1
- import { readFile, writeFile } from "node:fs/promises";
2
- import { join } from "node:path";
3
- import { LockfileSchema, ProjectPackageJsonSchema, } from "@aipm-registry/schemas";
4
- const PACKAGE_JSON = "aipm.package.json";
5
- const LOCKFILE = "aipm-lock.json";
6
- export async function readProjectPackageJson(projectRoot) {
7
- try {
8
- const raw = await readFile(join(projectRoot, PACKAGE_JSON), "utf8");
9
- return ProjectPackageJsonSchema.parse(JSON.parse(raw));
10
- }
11
- catch {
12
- return null;
13
- }
14
- }
15
- export async function writeProjectPackageJson(projectRoot, data) {
16
- await writeFile(join(projectRoot, PACKAGE_JSON), JSON.stringify(data, null, 2) + "\n", "utf8");
17
- }
18
- export async function readLockfile(projectRoot) {
19
- try {
20
- const raw = await readFile(join(projectRoot, LOCKFILE), "utf8");
21
- return LockfileSchema.parse(JSON.parse(raw));
22
- }
23
- catch {
24
- return null;
25
- }
26
- }
27
- export async function writeLockfile(projectRoot, data) {
28
- await writeFile(join(projectRoot, LOCKFILE), JSON.stringify(data, null, 2) + "\n", "utf8");
29
- }
30
- export function upsertLockEntry(lock, name, entry) {
31
- return {
32
- ...lock,
33
- packages: { ...lock.packages, [name]: entry },
34
- };
35
- }
36
- export function resolveRegistryUrl(project, flag) {
37
- const fromEnv = process.env.AIPM_REGISTRY;
38
- if (flag)
39
- return flag.replace(/\/$/, "");
40
- if (project?.registry)
41
- return project.registry.replace(/\/$/, "");
42
- if (fromEnv)
43
- return fromEnv.replace(/\/$/, "");
44
- throw new Error("Registry URL required: set registry in aipm.package.json or AIPM_REGISTRY");
45
- }
46
- export function parseTargetFlag(target) {
47
- if (!target)
48
- return undefined;
49
- if (target === "cursor" || target === "claude")
50
- return target;
51
- throw new Error('--target must be "cursor" or "claude"');
52
- }
53
- //# sourceMappingURL=project-files.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"project-files.js","sourceRoot":"","sources":["../src/project-files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EACL,cAAc,EACd,wBAAwB,GAKzB,MAAM,wBAAwB,CAAC;AAIhC,MAAM,YAAY,GAAG,mBAAmB,CAAC;AACzC,MAAM,QAAQ,GAAG,gBAAgB,CAAC;AAElC,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,WAAmB;IAEnB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE,MAAM,CAAC,CAAC;QACpE,OAAO,wBAAwB,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IACzD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,WAAmB,EACnB,IAAwB;IAExB,MAAM,SAAS,CACb,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,EAC/B,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EACpC,MAAM,CACP,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,WAAmB;IACpD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;QAChE,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,WAAmB,EAAE,IAAc;IACrE,MAAM,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC;AAC7F,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,IAAc,EACd,IAAY,EACZ,KAA2B;IAE3B,OAAO;QACL,GAAG,IAAI;QACP,QAAQ,EAAE,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE;KAC9C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,OAAkC,EAClC,IAAa;IAEb,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IAC1C,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACzC,IAAI,OAAO,EAAE,QAAQ;QAAE,OAAO,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAClE,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC/C,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;AAC/F,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAe;IAC7C,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAC9B,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC;IAC9D,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;AAC3D,CAAC"}
package/dist/prompt.d.ts DELETED
@@ -1,3 +0,0 @@
1
- import type { AiTool } from "@aipm-registry/schemas";
2
- export declare function promptForTool(): Promise<AiTool>;
3
- //# sourceMappingURL=prompt.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAErD,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAgBrD"}
package/dist/prompt.js DELETED
@@ -1,19 +0,0 @@
1
- import * as readline from "node:readline/promises";
2
- import { stdin as input, stdout as output } from "node:process";
3
- export async function promptForTool() {
4
- const rl = readline.createInterface({ input, output });
5
- try {
6
- while (true) {
7
- const answer = await rl.question("Which AI tool should this skill be installed for? (cursor/claude): ");
8
- const normalized = answer.trim().toLowerCase();
9
- if (normalized === "cursor" || normalized === "claude") {
10
- return normalized;
11
- }
12
- console.log('Please enter "cursor" or "claude".');
13
- }
14
- }
15
- finally {
16
- rl.close();
17
- }
18
- }
19
- //# sourceMappingURL=prompt.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,KAAK,IAAI,KAAK,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,cAAc,CAAC;AAGhE,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IACvD,IAAI,CAAC;QACH,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAC9B,qEAAqE,CACtE,CAAC;YACF,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAC/C,IAAI,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;gBACvD,OAAO,UAAU,CAAC;YACpB,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC"}
@@ -1,14 +0,0 @@
1
- import type { PackageManifest } from "@aipm-registry/schemas";
2
- export declare function encodePackageName(name: string): string;
3
- /** Fail fast before install/publish if the registry API is not listening. */
4
- export declare function assertRegistryReachable(registry: string): Promise<void>;
5
- export declare function publishPackage(registry: string, name: string, tarball: Buffer, token?: string): Promise<{
6
- version: string;
7
- integrity: string;
8
- }>;
9
- export declare function fetchPackageMetadata(registry: string, name: string, version: string): Promise<{
10
- manifest: PackageManifest;
11
- integrity: string;
12
- }>;
13
- export declare function fetchPackageTarball(registry: string, name: string, version: string): Promise<Buffer>;
14
- //# sourceMappingURL=registry-client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"registry-client.d.ts","sourceRoot":"","sources":["../src/registry-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEtD;AAoBD,6EAA6E;AAC7E,wBAAsB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAM7E;AAED,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAajD;AAED,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;IAAE,QAAQ,EAAE,eAAe,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAU3D;AAED,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,CAOjB"}
@@ -1,58 +0,0 @@
1
- export function encodePackageName(name) {
2
- return encodeURIComponent(name);
3
- }
4
- function registryFetchError(registry, cause) {
5
- const msg = cause instanceof Error ? cause.message : String(cause);
6
- if (msg === "fetch failed" || msg.includes("ECONNREFUSED") || msg.includes("ENOTFOUND")) {
7
- return new Error(`Cannot reach registry at ${registry}. Check your connection or pass --registry <url>.`);
8
- }
9
- return new Error(`Registry request failed (${registry}): ${msg}`);
10
- }
11
- async function registryFetch(url, registry, init) {
12
- try {
13
- return await fetch(url, init);
14
- }
15
- catch (e) {
16
- throw registryFetchError(registry, e);
17
- }
18
- }
19
- /** Fail fast before install/publish if the registry API is not listening. */
20
- export async function assertRegistryReachable(registry) {
21
- const base = registry.replace(/\/$/, "");
22
- const res = await registryFetch(`${base}/health`, base);
23
- if (!res.ok) {
24
- throw new Error(`Registry at ${base} returned ${res.status} on /health`);
25
- }
26
- }
27
- export async function publishPackage(registry, name, tarball, token) {
28
- const base = registry.replace(/\/$/, "");
29
- const url = `${base}/v1/packages/${encodePackageName(name)}/versions`;
30
- const form = new FormData();
31
- form.append("tarball", new Blob([tarball]), "package.tgz");
32
- const headers = token ? { Authorization: `Bearer ${token}` } : undefined;
33
- const res = await registryFetch(url, base, { method: "POST", body: form, headers });
34
- if (!res.ok) {
35
- const err = (await res.json().catch(() => ({})));
36
- throw new Error(err.error ?? `Publish failed: ${res.status}`);
37
- }
38
- return res.json();
39
- }
40
- export async function fetchPackageMetadata(registry, name, version) {
41
- const base = registry.replace(/\/$/, "");
42
- const url = `${base}/v1/packages/${encodePackageName(name)}/versions/${version}`;
43
- const res = await registryFetch(url, base);
44
- if (!res.ok)
45
- throw new Error(`Package not found: ${name}@${version} (${res.status})`);
46
- const data = (await res.json());
47
- return { manifest: data.manifest, integrity: data.integrity };
48
- }
49
- export async function fetchPackageTarball(registry, name, version) {
50
- const base = registry.replace(/\/$/, "");
51
- const url = `${base}/v1/packages/${encodePackageName(name)}/versions/${version}/tarball`;
52
- const res = await registryFetch(url, base);
53
- if (!res.ok)
54
- throw new Error(`Tarball not found: ${name}@${version} (${res.status})`);
55
- const ab = await res.arrayBuffer();
56
- return Buffer.from(ab);
57
- }
58
- //# sourceMappingURL=registry-client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"registry-client.js","sourceRoot":"","sources":["../src/registry-client.ts"],"names":[],"mappings":"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"}