@skillbase/spm 0.1.4 → 0.2.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/CHANGELOG.md +33 -0
- package/dist/cli/command.d.ts +43 -0
- package/dist/cli/command.d.ts.map +1 -0
- package/dist/cli/command.js +8 -0
- package/dist/cli/command.js.map +1 -0
- package/dist/cli/commands/add.d.ts +17 -0
- package/dist/cli/commands/add.d.ts.map +1 -0
- package/dist/cli/commands/add.js +348 -0
- package/dist/cli/commands/add.js.map +1 -0
- package/dist/cli/commands/connect.d.ts +2 -0
- package/dist/cli/commands/connect.d.ts.map +1 -1
- package/dist/cli/commands/connect.js +28 -13
- package/dist/cli/commands/connect.js.map +1 -1
- package/dist/cli/commands/convert.d.ts +2 -0
- package/dist/cli/commands/convert.d.ts.map +1 -1
- package/dist/cli/commands/convert.js +55 -39
- package/dist/cli/commands/convert.js.map +1 -1
- package/dist/cli/commands/create.d.ts +3 -3
- package/dist/cli/commands/create.d.ts.map +1 -1
- package/dist/cli/commands/create.js +15 -15
- package/dist/cli/commands/create.js.map +1 -1
- package/dist/cli/commands/info.d.ts +2 -0
- package/dist/cli/commands/info.d.ts.map +1 -1
- package/dist/cli/commands/info.js +24 -17
- package/dist/cli/commands/info.js.map +1 -1
- package/dist/cli/commands/init.d.ts +2 -0
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +13 -6
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/install.d.ts +3 -3
- package/dist/cli/commands/install.d.ts.map +1 -1
- package/dist/cli/commands/install.js +23 -240
- package/dist/cli/commands/install.js.map +1 -1
- package/dist/cli/commands/link.d.ts +4 -0
- package/dist/cli/commands/link.d.ts.map +1 -0
- package/dist/cli/commands/link.js +56 -0
- package/dist/cli/commands/link.js.map +1 -0
- package/dist/cli/commands/list.d.ts +2 -0
- package/dist/cli/commands/list.d.ts.map +1 -1
- package/dist/cli/commands/list.js +35 -12
- package/dist/cli/commands/list.js.map +1 -1
- package/dist/cli/commands/login.d.ts +2 -0
- package/dist/cli/commands/login.d.ts.map +1 -1
- package/dist/cli/commands/login.js +62 -28
- package/dist/cli/commands/login.js.map +1 -1
- package/dist/cli/commands/persona.d.ts +3 -0
- package/dist/cli/commands/persona.d.ts.map +1 -0
- package/dist/cli/commands/persona.js +253 -0
- package/dist/cli/commands/persona.js.map +1 -0
- package/dist/cli/commands/publish.d.ts +2 -0
- package/dist/cli/commands/publish.d.ts.map +1 -1
- package/dist/cli/commands/publish.js +30 -32
- package/dist/cli/commands/publish.js.map +1 -1
- package/dist/cli/commands/rate.d.ts +2 -0
- package/dist/cli/commands/rate.d.ts.map +1 -1
- package/dist/cli/commands/rate.js +15 -5
- package/dist/cli/commands/rate.js.map +1 -1
- package/dist/cli/commands/reindex.d.ts +3 -0
- package/dist/cli/commands/reindex.d.ts.map +1 -0
- package/dist/cli/commands/reindex.js +35 -0
- package/dist/cli/commands/reindex.js.map +1 -0
- package/dist/cli/commands/remove.d.ts +8 -0
- package/dist/cli/commands/remove.d.ts.map +1 -0
- package/dist/cli/commands/remove.js +126 -0
- package/dist/cli/commands/remove.js.map +1 -0
- package/dist/cli/commands/search.d.ts +2 -0
- package/dist/cli/commands/search.d.ts.map +1 -1
- package/dist/cli/commands/search.js +25 -12
- package/dist/cli/commands/search.js.map +1 -1
- package/dist/cli/commands/serve.d.ts +3 -0
- package/dist/cli/commands/serve.d.ts.map +1 -0
- package/dist/cli/commands/serve.js +17 -0
- package/dist/cli/commands/serve.js.map +1 -0
- package/dist/cli/commands/stats.d.ts +2 -0
- package/dist/cli/commands/stats.d.ts.map +1 -1
- package/dist/cli/commands/stats.js +16 -10
- package/dist/cli/commands/stats.js.map +1 -1
- package/dist/cli/commands/uninstall.d.ts +2 -0
- package/dist/cli/commands/uninstall.d.ts.map +1 -1
- package/dist/cli/commands/uninstall.js +50 -14
- package/dist/cli/commands/uninstall.js.map +1 -1
- package/dist/cli/commands/update.d.ts +2 -0
- package/dist/cli/commands/update.d.ts.map +1 -1
- package/dist/cli/commands/update.js +27 -32
- package/dist/cli/commands/update.js.map +1 -1
- package/dist/cli/commands/validate.d.ts +2 -0
- package/dist/cli/commands/validate.d.ts.map +1 -1
- package/dist/cli/commands/validate.js +16 -18
- package/dist/cli/commands/validate.js.map +1 -1
- package/dist/cli/help.d.ts +7 -0
- package/dist/cli/help.d.ts.map +1 -0
- package/dist/cli/help.js +72 -0
- package/dist/cli/help.js.map +1 -0
- package/dist/cli/index.js +5 -151
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/loader.d.ts +3 -0
- package/dist/cli/loader.d.ts.map +1 -0
- package/dist/cli/loader.js +69 -0
- package/dist/cli/loader.js.map +1 -0
- package/dist/cli/logger.d.ts +9 -0
- package/dist/cli/logger.d.ts.map +1 -0
- package/dist/cli/logger.js +13 -0
- package/dist/cli/logger.js.map +1 -0
- package/dist/cli/theme.d.ts +17 -0
- package/dist/cli/theme.d.ts.map +1 -0
- package/dist/cli/theme.js +29 -0
- package/dist/cli/theme.js.map +1 -0
- package/dist/cli/ui.d.ts +8 -0
- package/dist/cli/ui.d.ts.map +1 -0
- package/dist/cli/ui.js +17 -0
- package/dist/cli/ui.js.map +1 -0
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +4 -0
- package/dist/core/config.js.map +1 -1
- package/dist/core/paths.d.ts +2 -0
- package/dist/core/paths.d.ts.map +1 -1
- package/dist/core/paths.js +7 -0
- package/dist/core/paths.js.map +1 -1
- package/dist/core/persona.d.ts +17 -0
- package/dist/core/persona.d.ts.map +1 -0
- package/dist/core/persona.js +118 -0
- package/dist/core/persona.js.map +1 -0
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +91 -2
- package/dist/mcp/server.js.map +1 -1
- package/dist/schema/persona-schema.d.ts +6 -0
- package/dist/schema/persona-schema.d.ts.map +1 -0
- package/dist/schema/persona-schema.js +72 -0
- package/dist/schema/persona-schema.js.map +1 -0
- package/dist/types/index.d.ts +25 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +3 -2
|
@@ -1,6 +1,39 @@
|
|
|
1
1
|
import { execFile } from "node:child_process";
|
|
2
2
|
import { readConfig, writeConfig } from "../../core/config.js";
|
|
3
3
|
import { RegistryClient } from "../../core/registry-client.js";
|
|
4
|
+
import { log, spinner, note, select, isCancel, cancel, exitError } from "../ui.js";
|
|
5
|
+
export const commands = [
|
|
6
|
+
{
|
|
7
|
+
name: "login",
|
|
8
|
+
description: "Authenticate with a registry server",
|
|
9
|
+
group: "registry",
|
|
10
|
+
args: [{ name: "registry-url", required: false }],
|
|
11
|
+
options: [
|
|
12
|
+
{ flags: "--name <name>", description: "Your author name (for direct registration)" },
|
|
13
|
+
{ flags: "--github", description: "Authenticate via GitHub OAuth" },
|
|
14
|
+
],
|
|
15
|
+
handler: loginCommand,
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
name: "registry",
|
|
19
|
+
description: "Manage remote registries",
|
|
20
|
+
group: "registry",
|
|
21
|
+
subcommands: [
|
|
22
|
+
{
|
|
23
|
+
name: "add",
|
|
24
|
+
description: "Add a remote registry",
|
|
25
|
+
group: "registry",
|
|
26
|
+
args: [{ name: "url", required: true }],
|
|
27
|
+
options: [
|
|
28
|
+
{ flags: "--name <name>", description: "Registry name (auto-generated from URL if omitted)" },
|
|
29
|
+
{ flags: "--token <token>", description: "API token" },
|
|
30
|
+
{ flags: "--scope <scope>", description: "Bind a scope to this registry (e.g. @company)" },
|
|
31
|
+
],
|
|
32
|
+
handler: addRegistryCommand,
|
|
33
|
+
},
|
|
34
|
+
],
|
|
35
|
+
},
|
|
36
|
+
];
|
|
4
37
|
function resolveRegistryName(registryUrl) {
|
|
5
38
|
const urlObj = new URL(registryUrl);
|
|
6
39
|
return urlObj.hostname.replace(/\./g, "-");
|
|
@@ -26,18 +59,24 @@ async function resolveRegistryUrl(registryUrl) {
|
|
|
26
59
|
return registryUrl;
|
|
27
60
|
const config = await readConfig();
|
|
28
61
|
if (config.registries.length === 0) {
|
|
29
|
-
|
|
30
|
-
process.exit(1);
|
|
62
|
+
exitError("No registries configured. Specify a registry URL or run: skills registry add <url>");
|
|
31
63
|
}
|
|
32
64
|
if (config.registries.length === 1) {
|
|
33
65
|
return config.registries[0].url;
|
|
34
66
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
67
|
+
// Multiple registries — let user pick
|
|
68
|
+
const choice = await select({
|
|
69
|
+
message: "Select a registry:",
|
|
70
|
+
options: config.registries.map((r) => ({
|
|
71
|
+
value: r.url,
|
|
72
|
+
label: `${r.name} (${r.url})`,
|
|
73
|
+
})),
|
|
74
|
+
});
|
|
75
|
+
if (isCancel(choice)) {
|
|
76
|
+
cancel("Cancelled.");
|
|
77
|
+
process.exit(0);
|
|
78
|
+
}
|
|
79
|
+
return choice;
|
|
41
80
|
}
|
|
42
81
|
export async function loginCommand(registryUrl, options) {
|
|
43
82
|
const url = await resolveRegistryUrl(registryUrl);
|
|
@@ -50,22 +89,19 @@ export async function loginCommand(registryUrl, options) {
|
|
|
50
89
|
}
|
|
51
90
|
async function loginWithName(registryUrl, name) {
|
|
52
91
|
if (!name) {
|
|
53
|
-
|
|
54
|
-
console.error("Or use --github to authenticate via GitHub.");
|
|
55
|
-
process.exit(1);
|
|
92
|
+
exitError("--name is required for direct registration.\nOr use --github to authenticate via GitHub.");
|
|
56
93
|
}
|
|
57
94
|
const client = new RegistryClient(registryUrl);
|
|
58
95
|
try {
|
|
59
96
|
const result = await client.register(name);
|
|
60
|
-
|
|
97
|
+
log.success(`Registered as "${result.author.name}" (id: ${result.author.id})`);
|
|
61
98
|
const registryName = await saveTokenToConfig(registryUrl, result.token);
|
|
62
|
-
|
|
63
|
-
|
|
99
|
+
log.info(`Token saved to config (registry: ${registryName})`);
|
|
100
|
+
log.message("You can now publish skills with: skills publish <path>");
|
|
64
101
|
}
|
|
65
102
|
catch (err) {
|
|
66
103
|
const message = err instanceof Error ? err.message : String(err);
|
|
67
|
-
|
|
68
|
-
process.exit(1);
|
|
104
|
+
exitError(`Login failed: ${message}`);
|
|
69
105
|
}
|
|
70
106
|
}
|
|
71
107
|
function openBrowser(url) {
|
|
@@ -86,20 +122,19 @@ async function loginWithGithub(registryUrl) {
|
|
|
86
122
|
const client = new RegistryClient(registryUrl);
|
|
87
123
|
try {
|
|
88
124
|
const device = await client.startDeviceAuth();
|
|
89
|
-
|
|
90
|
-
console.log(` ${device.verification_uri}\n`);
|
|
91
|
-
console.log(`And enter the code: ${device.user_code}\n`);
|
|
125
|
+
note(`URL: ${device.verification_uri}\nCode: ${device.user_code}`, "Open in browser and enter the code");
|
|
92
126
|
openBrowser(device.verification_uri);
|
|
93
|
-
|
|
127
|
+
const s = spinner();
|
|
128
|
+
s.start("Waiting for authorization...");
|
|
94
129
|
let interval = device.interval * 1000;
|
|
95
130
|
while (true) {
|
|
96
131
|
await new Promise((resolve) => setTimeout(resolve, interval));
|
|
97
132
|
const poll = await client.pollDeviceAuth(device.session_id);
|
|
98
133
|
if (poll.status === "complete" && poll.author && poll.token) {
|
|
99
|
-
|
|
134
|
+
s.stop(`Authenticated as "${poll.author.name}" (id: ${poll.author.id})`);
|
|
100
135
|
const registryName = await saveTokenToConfig(registryUrl, poll.token);
|
|
101
|
-
|
|
102
|
-
|
|
136
|
+
log.info(`Token saved to config (registry: ${registryName})`);
|
|
137
|
+
log.message("You can now publish skills with: skills publish <path>");
|
|
103
138
|
return;
|
|
104
139
|
}
|
|
105
140
|
if (poll.interval) {
|
|
@@ -109,8 +144,7 @@ async function loginWithGithub(registryUrl) {
|
|
|
109
144
|
}
|
|
110
145
|
catch (err) {
|
|
111
146
|
const message = err instanceof Error ? err.message : String(err);
|
|
112
|
-
|
|
113
|
-
process.exit(1);
|
|
147
|
+
exitError(`GitHub login failed: ${message}`);
|
|
114
148
|
}
|
|
115
149
|
}
|
|
116
150
|
export async function addRegistryCommand(registryUrl, options) {
|
|
@@ -122,7 +156,7 @@ export async function addRegistryCommand(registryUrl, options) {
|
|
|
122
156
|
config.registries[existingIdx].url = registryUrl;
|
|
123
157
|
if (options.token)
|
|
124
158
|
config.registries[existingIdx].token = options.token;
|
|
125
|
-
|
|
159
|
+
log.success(`Updated registry "${registryName}"`);
|
|
126
160
|
}
|
|
127
161
|
else {
|
|
128
162
|
config.registries.push({
|
|
@@ -130,11 +164,11 @@ export async function addRegistryCommand(registryUrl, options) {
|
|
|
130
164
|
url: registryUrl,
|
|
131
165
|
token: options.token,
|
|
132
166
|
});
|
|
133
|
-
|
|
167
|
+
log.success(`Added registry "${registryName}" (${registryUrl})`);
|
|
134
168
|
}
|
|
135
169
|
if (options.scope) {
|
|
136
170
|
config.scopes[options.scope] = registryName;
|
|
137
|
-
|
|
171
|
+
log.info(`Scope "${options.scope}" → "${registryName}"`);
|
|
138
172
|
}
|
|
139
173
|
await writeConfig(config);
|
|
140
174
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/cli/commands/login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/cli/commands/login.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"persona.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/persona.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AA6NhD,eAAO,MAAM,OAAO,EAAE,UAqDrB,CAAC"}
|
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
import fs from "node:fs/promises";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { listPersonas, readPersona, installPersona, setActivePersona, } from "../../core/persona.js";
|
|
4
|
+
import { readConfig } from "../../core/config.js";
|
|
5
|
+
import { getClientForSkill } from "../../core/registry-client.js";
|
|
6
|
+
import { getSkillIndex, findSkill } from "../../core/registry.js";
|
|
7
|
+
import { validatePersonaManifest } from "../../schema/persona-schema.js";
|
|
8
|
+
import { installSingleFromRegistry, resolveSkillsDir } from "./add.js";
|
|
9
|
+
import { log, note, exitError } from "../ui.js";
|
|
10
|
+
function parseSkillRef(ref) {
|
|
11
|
+
const match = ref.match(/^([a-z0-9-]+)\/([a-z0-9-]+)$/);
|
|
12
|
+
if (!match)
|
|
13
|
+
return null;
|
|
14
|
+
return { author: match[1], name: match[2] };
|
|
15
|
+
}
|
|
16
|
+
function buildPersonaTemplate(name) {
|
|
17
|
+
return {
|
|
18
|
+
schema_version: 1,
|
|
19
|
+
name,
|
|
20
|
+
version: "1.0.0",
|
|
21
|
+
description: `TODO: describe ${name} persona`,
|
|
22
|
+
author: "TODO",
|
|
23
|
+
license: "MIT",
|
|
24
|
+
skills: {},
|
|
25
|
+
character: {
|
|
26
|
+
role: "TODO: describe the persona's role and expertise.",
|
|
27
|
+
tone: "TODO: e.g. professional, friendly, concise",
|
|
28
|
+
guidelines: [
|
|
29
|
+
"TODO: add behavioral guidelines",
|
|
30
|
+
],
|
|
31
|
+
},
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
// --- Handlers ---
|
|
35
|
+
async function personaCreateCommand(name) {
|
|
36
|
+
const fileName = `${name}.person.json`;
|
|
37
|
+
const filePath = path.resolve(fileName);
|
|
38
|
+
try {
|
|
39
|
+
await fs.access(filePath);
|
|
40
|
+
exitError(`File "${fileName}" already exists.`);
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
// File doesn't exist — good
|
|
44
|
+
}
|
|
45
|
+
const template = buildPersonaTemplate(name);
|
|
46
|
+
await fs.writeFile(filePath, JSON.stringify(template, null, 2) + "\n", "utf-8");
|
|
47
|
+
log.success(`Created persona scaffold: ${fileName}`);
|
|
48
|
+
note(`1. Edit ${fileName} — set character and settings\n2. spm add <author/skill> --for ${name}\n3. spm persona activate ${name}`, "Next steps");
|
|
49
|
+
}
|
|
50
|
+
async function personaListCommand() {
|
|
51
|
+
const config = await readConfig();
|
|
52
|
+
const personas = await listPersonas();
|
|
53
|
+
if (personas.length === 0) {
|
|
54
|
+
log.info("No personas installed.");
|
|
55
|
+
log.message('Use `spm persona create <name>` to create one.');
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
for (const p of personas) {
|
|
59
|
+
const active = config.active_persona === p.name ? " (active)" : "";
|
|
60
|
+
log.message(`${p.name}@${p.version}${active} — ${p.description} [${p.dependencies_count} skills]`);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
async function personaActivateCommand(name) {
|
|
64
|
+
// First try to find installed persona
|
|
65
|
+
let persona = await readPersona(name);
|
|
66
|
+
// If not installed, try to install from .person.json in cwd
|
|
67
|
+
if (!persona) {
|
|
68
|
+
const fileName = `${name}.person.json`;
|
|
69
|
+
const filePath = path.resolve(fileName);
|
|
70
|
+
try {
|
|
71
|
+
await fs.access(filePath);
|
|
72
|
+
const installed = await installPersona(filePath, { global: true });
|
|
73
|
+
persona = installed;
|
|
74
|
+
log.success(`Installed persona from ${fileName}`);
|
|
75
|
+
}
|
|
76
|
+
catch {
|
|
77
|
+
exitError(`Persona "${name}" not found. Use \`spm persona list\` or create one with \`spm persona create ${name}\`.`);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
// Auto-install missing skills
|
|
81
|
+
if (persona.skills) {
|
|
82
|
+
const skillRefs = Object.keys(persona.skills);
|
|
83
|
+
if (skillRefs.length > 0) {
|
|
84
|
+
const index = await getSkillIndex();
|
|
85
|
+
const missing = [];
|
|
86
|
+
for (const ref of skillRefs) {
|
|
87
|
+
if (!findSkill(index, ref)) {
|
|
88
|
+
missing.push(ref);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
if (missing.length > 0) {
|
|
92
|
+
log.step(`Installing ${missing.length} missing skill(s)...`);
|
|
93
|
+
const config = await readConfig();
|
|
94
|
+
const { skillsDir } = await resolveSkillsDir();
|
|
95
|
+
for (const ref of missing) {
|
|
96
|
+
const parsed = parseSkillRef(ref);
|
|
97
|
+
if (!parsed) {
|
|
98
|
+
log.warning(`Skipping invalid ref: ${ref}`);
|
|
99
|
+
continue;
|
|
100
|
+
}
|
|
101
|
+
const client = getClientForSkill(config, ref);
|
|
102
|
+
if (!client) {
|
|
103
|
+
log.warning(`No registry for ${ref}, skipping.`);
|
|
104
|
+
continue;
|
|
105
|
+
}
|
|
106
|
+
try {
|
|
107
|
+
await installSingleFromRegistry(parsed.author, parsed.name, skillsDir, client);
|
|
108
|
+
}
|
|
109
|
+
catch {
|
|
110
|
+
log.warning(`Failed to install skill "${ref}", skipping.`);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
await setActivePersona(name);
|
|
117
|
+
log.success(`Active persona set to: ${name}`);
|
|
118
|
+
log.info("Restart your MCP client to apply.");
|
|
119
|
+
}
|
|
120
|
+
async function personaDeactivateCommand() {
|
|
121
|
+
const config = await readConfig();
|
|
122
|
+
if (!config.active_persona) {
|
|
123
|
+
log.info("No active persona.");
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
const name = config.active_persona;
|
|
127
|
+
await setActivePersona(null);
|
|
128
|
+
log.success(`Deactivated persona "${name}".`);
|
|
129
|
+
log.info("Restart your MCP client to apply.");
|
|
130
|
+
}
|
|
131
|
+
async function personaRemoveCommand(name) {
|
|
132
|
+
const { removePersona } = await import("./remove.js");
|
|
133
|
+
await removePersona(name);
|
|
134
|
+
}
|
|
135
|
+
async function personaInfoCommand(name) {
|
|
136
|
+
const persona = await readPersona(name);
|
|
137
|
+
if (!persona) {
|
|
138
|
+
exitError(`Persona "${name}" not found. Use \`spm persona list\` to see available personas.`);
|
|
139
|
+
}
|
|
140
|
+
const lines = [];
|
|
141
|
+
lines.push(`description: ${persona.description}`);
|
|
142
|
+
lines.push(`author: ${persona.author}`);
|
|
143
|
+
lines.push(`license: ${persona.license}`);
|
|
144
|
+
lines.push("");
|
|
145
|
+
lines.push("character:");
|
|
146
|
+
lines.push(` role: ${persona.character.role}`);
|
|
147
|
+
if (persona.character.tone) {
|
|
148
|
+
lines.push(` tone: ${persona.character.tone}`);
|
|
149
|
+
}
|
|
150
|
+
if (persona.character.guidelines && persona.character.guidelines.length > 0) {
|
|
151
|
+
lines.push(" guidelines:");
|
|
152
|
+
for (const g of persona.character.guidelines) {
|
|
153
|
+
lines.push(` - ${g}`);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
if (persona.character.instructions) {
|
|
157
|
+
lines.push(` instructions: ${persona.character.instructions}`);
|
|
158
|
+
}
|
|
159
|
+
if (persona.settings) {
|
|
160
|
+
lines.push("");
|
|
161
|
+
lines.push("settings:");
|
|
162
|
+
for (const [key, value] of Object.entries(persona.settings)) {
|
|
163
|
+
if (value !== undefined) {
|
|
164
|
+
lines.push(` ${key}: ${value}`);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
if (persona.skills) {
|
|
169
|
+
const deps = Object.entries(persona.skills);
|
|
170
|
+
if (deps.length > 0) {
|
|
171
|
+
lines.push("");
|
|
172
|
+
lines.push("dependencies:");
|
|
173
|
+
for (const [dep, range] of deps) {
|
|
174
|
+
lines.push(` - ${dep}: ${range}`);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
note(lines.join("\n"), `${persona.name}@${persona.version}`);
|
|
179
|
+
}
|
|
180
|
+
async function personaValidateCommand(filePath) {
|
|
181
|
+
const resolved = path.resolve(filePath);
|
|
182
|
+
try {
|
|
183
|
+
const raw = await fs.readFile(resolved, "utf-8");
|
|
184
|
+
const data = JSON.parse(raw);
|
|
185
|
+
const result = validatePersonaManifest(data);
|
|
186
|
+
if (result.valid) {
|
|
187
|
+
log.success(`Valid persona manifest: ${resolved}`);
|
|
188
|
+
}
|
|
189
|
+
else {
|
|
190
|
+
exitError(`Invalid persona manifest: ${resolved}\n${result.errors.map((e) => ` ${e}`).join("\n")}`);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
catch (err) {
|
|
194
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
195
|
+
exitError(`Failed to read/parse ${resolved}: ${message}`);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
// --- Command definition ---
|
|
199
|
+
export const command = {
|
|
200
|
+
name: "persona",
|
|
201
|
+
description: "Manage AI personas",
|
|
202
|
+
group: "personas",
|
|
203
|
+
subcommands: [
|
|
204
|
+
{
|
|
205
|
+
name: "create",
|
|
206
|
+
description: "Create a new persona scaffold (.person.json)",
|
|
207
|
+
group: "personas",
|
|
208
|
+
args: [{ name: "name", required: true }],
|
|
209
|
+
handler: personaCreateCommand,
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
name: "list",
|
|
213
|
+
description: "List installed personas",
|
|
214
|
+
group: "personas",
|
|
215
|
+
handler: personaListCommand,
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
name: "activate",
|
|
219
|
+
description: "Activate persona (auto-installs missing skills)",
|
|
220
|
+
group: "personas",
|
|
221
|
+
args: [{ name: "name", required: true }],
|
|
222
|
+
handler: personaActivateCommand,
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
name: "deactivate",
|
|
226
|
+
description: "Deactivate current persona",
|
|
227
|
+
group: "personas",
|
|
228
|
+
handler: personaDeactivateCommand,
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
name: "info",
|
|
232
|
+
description: "Show detailed information about a persona",
|
|
233
|
+
group: "personas",
|
|
234
|
+
args: [{ name: "name", required: true }],
|
|
235
|
+
handler: personaInfoCommand,
|
|
236
|
+
},
|
|
237
|
+
{
|
|
238
|
+
name: "remove",
|
|
239
|
+
description: "Remove a persona from global installation",
|
|
240
|
+
group: "personas",
|
|
241
|
+
args: [{ name: "name", required: true }],
|
|
242
|
+
handler: personaRemoveCommand,
|
|
243
|
+
},
|
|
244
|
+
{
|
|
245
|
+
name: "validate",
|
|
246
|
+
description: "Validate a .person.json file",
|
|
247
|
+
group: "personas",
|
|
248
|
+
args: [{ name: "path", required: true }],
|
|
249
|
+
handler: personaValidateCommand,
|
|
250
|
+
},
|
|
251
|
+
],
|
|
252
|
+
};
|
|
253
|
+
//# sourceMappingURL=persona.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"persona.js","sourceRoot":"","sources":["../../../src/cli/commands/persona.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/publish.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/publish.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,eAAO,MAAM,OAAO,EAAE,UAWrB,CAAC;AAEF,wBAAsB,cAAc,CAClC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GACjE,OAAO,CAAC,IAAI,CAAC,CA8Gf"}
|
|
@@ -5,13 +5,19 @@ import { validateSkillManifest } from "../../schema/skill-schema.js";
|
|
|
5
5
|
import { RegistryClient } from "../../core/registry-client.js";
|
|
6
6
|
import { packSkill } from "../../core/storage/index.js";
|
|
7
7
|
import { parseGitHubUrl } from "../../core/github/client.js";
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
8
|
+
import { log, spinner, note, exitError, formatSize } from "../ui.js";
|
|
9
|
+
export const command = {
|
|
10
|
+
name: "publish",
|
|
11
|
+
description: "Publish a skill to registry",
|
|
12
|
+
group: "registry",
|
|
13
|
+
args: [{ name: "source", required: true }],
|
|
14
|
+
options: [
|
|
15
|
+
{ flags: "--registry <name>", description: "Publish to a specific registry" },
|
|
16
|
+
{ flags: "--github", description: "Source is a GitHub URL" },
|
|
17
|
+
{ flags: "--dry-run", description: "Show what would happen without executing" },
|
|
18
|
+
],
|
|
19
|
+
handler: publishCommand,
|
|
20
|
+
};
|
|
15
21
|
export async function publishCommand(source, options) {
|
|
16
22
|
const config = await readConfig();
|
|
17
23
|
let registryName = options.registry;
|
|
@@ -19,22 +25,20 @@ export async function publishCommand(source, options) {
|
|
|
19
25
|
registryName = config.scopes["*"];
|
|
20
26
|
}
|
|
21
27
|
if (!registryName) {
|
|
22
|
-
|
|
23
|
-
process.exit(1);
|
|
28
|
+
exitError("No default registry configured. Use 'skills login <url>' first.");
|
|
24
29
|
}
|
|
25
30
|
const reg = config.registries.find((r) => r.name === registryName);
|
|
26
31
|
if (!reg) {
|
|
27
|
-
|
|
28
|
-
process.exit(1);
|
|
32
|
+
exitError(`Registry "${registryName}" not found in config.`);
|
|
29
33
|
}
|
|
30
34
|
if (!reg.token) {
|
|
31
|
-
|
|
32
|
-
process.exit(1);
|
|
35
|
+
exitError(`No token for registry "${registryName}". Use 'skills login' first.`);
|
|
33
36
|
}
|
|
34
37
|
const client = new RegistryClient(reg.url, reg.token);
|
|
35
38
|
const isGitHub = options.github || source.includes("github.com") || source.startsWith("github:");
|
|
36
39
|
if (isGitHub) {
|
|
37
|
-
|
|
40
|
+
const s = spinner();
|
|
41
|
+
s.start(`Publishing from GitHub: ${source}`);
|
|
38
42
|
const ghSource = parseGitHubUrl(source);
|
|
39
43
|
const result = await client.publish({
|
|
40
44
|
manifest: {},
|
|
@@ -46,7 +50,7 @@ export async function publishCommand(source, options) {
|
|
|
46
50
|
path: ghSource.path,
|
|
47
51
|
},
|
|
48
52
|
});
|
|
49
|
-
|
|
53
|
+
s.stop(result.updated
|
|
50
54
|
? `Updated ${result.name}@${result.version}`
|
|
51
55
|
: `Published ${result.name}@${result.version}`);
|
|
52
56
|
return;
|
|
@@ -59,24 +63,18 @@ export async function publishCommand(source, options) {
|
|
|
59
63
|
const data = JSON.parse(raw);
|
|
60
64
|
const validation = validateSkillManifest(data);
|
|
61
65
|
if (!validation.valid) {
|
|
62
|
-
|
|
63
|
-
for (const error of validation.errors) {
|
|
64
|
-
console.error(` - ${error}`);
|
|
65
|
-
}
|
|
66
|
-
process.exit(1);
|
|
66
|
+
exitError(`Invalid skill.json:\n${validation.errors.map((e) => ` - ${e}`).join("\n")}`);
|
|
67
67
|
}
|
|
68
68
|
manifest = data;
|
|
69
69
|
}
|
|
70
70
|
catch (err) {
|
|
71
71
|
if (err.code === "ENOENT") {
|
|
72
|
-
|
|
73
|
-
process.exit(1);
|
|
72
|
+
exitError(`Cannot read skill.json in "${source}".`);
|
|
74
73
|
}
|
|
75
74
|
throw err;
|
|
76
75
|
}
|
|
77
76
|
if (!manifest.entry) {
|
|
78
|
-
|
|
79
|
-
process.exit(1);
|
|
77
|
+
exitError("skill.json has no 'entry' field. Bundles cannot be published — only skills with an entry point.");
|
|
80
78
|
}
|
|
81
79
|
const entryPath = path.join(skillDir, manifest.entry);
|
|
82
80
|
const content = await fs.readFile(entryPath, "utf-8");
|
|
@@ -90,20 +88,20 @@ export async function publishCommand(source, options) {
|
|
|
90
88
|
}
|
|
91
89
|
}
|
|
92
90
|
// Package skill directory into .tar.gz
|
|
93
|
-
|
|
91
|
+
const s = spinner();
|
|
92
|
+
s.start(`Packaging ${manifest.name}@${manifest.version}...`);
|
|
94
93
|
const pkg = await packSkill(skillDir);
|
|
95
94
|
if (options.dryRun) {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
console.log(` Integrity: ${pkg.integrity}`);
|
|
95
|
+
s.stop("Done (dry-run)");
|
|
96
|
+
note(`Would publish ${manifest.name}@${manifest.version} to ${reg.name}\nPackage size: ${formatSize(pkg.size)} (${pkg.filesCount} files)\nIntegrity: ${pkg.integrity}`, "Dry run");
|
|
99
97
|
return;
|
|
100
98
|
}
|
|
101
|
-
|
|
99
|
+
s.message(`Publishing ${manifest.name}@${manifest.version} to ${reg.name}...`);
|
|
102
100
|
const result = await client.publishWithArchive({ manifest, content, compact_content: compactContent }, pkg.data);
|
|
103
|
-
|
|
101
|
+
s.stop(result.updated
|
|
104
102
|
? `Updated ${result.name}@${result.version}`
|
|
105
103
|
: `Published ${result.name}@${result.version}`);
|
|
106
|
-
|
|
107
|
-
|
|
104
|
+
log.info(`Size: ${formatSize(result.size ?? pkg.size)}`);
|
|
105
|
+
log.info(`Tokens: ~${Math.ceil(content.length / 4).toLocaleString()}`);
|
|
108
106
|
}
|
|
109
107
|
//# sourceMappingURL=publish.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../../../src/cli/commands/publish.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../../../src/cli/commands/publish.ts"],"names":[],"mappings":"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"}
|