autohand-cli 0.6.4 → 0.6.7
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/SkillsRegistry-LXDK73BL.cjs +9 -0
- package/dist/SkillsRegistry-SP5MX7OA.js +9 -0
- package/dist/agents-FH47ZMOI.cjs +10 -0
- package/dist/{agents-OJWYZN6X.js → agents-NB5VQN6H.js} +2 -2
- package/dist/{agents-new-WQLJOXSS.js → agents-new-M325HGWT.js} +3 -2
- package/dist/agents-new-XLEU26YI.cjs +11 -0
- package/dist/{chunk-DD2YPHP5.cjs → chunk-2OBNJCG6.cjs} +15 -13
- package/dist/{chunk-NWXYG5PQ.js → chunk-37NUB5KX.js} +1 -1
- package/dist/{chunk-AL4Z4WKG.cjs → chunk-3DPDLZYY.cjs} +9 -7
- package/dist/chunk-3HPUOQJN.cjs +23 -0
- package/dist/{chunk-G7SYGATA.cjs → chunk-3ZUWWML7.cjs} +2 -2
- package/dist/{chunk-3Y6G5DUX.cjs → chunk-53YDUYNS.cjs} +10 -4
- package/dist/{chunk-PRZTK2FX.js → chunk-5WKR4HIB.js} +7 -5
- package/dist/{chunk-ZTA2ASFW.cjs → chunk-6ZGNSZRG.cjs} +1 -1
- package/dist/chunk-7BYSXAKS.js +23 -0
- package/dist/{chunk-6FEZ6JAQ.js → chunk-7HB7GSQF.js} +1 -1
- package/dist/{chunk-UBGEAEKS.js → chunk-AY2XV7TH.js} +1 -1
- package/dist/{chunk-7RRX7H2X.cjs → chunk-B5N5UAMO.cjs} +20 -12
- package/dist/{chunk-KZ2UXXLH.js → chunk-BAHUKJJR.js} +7 -5
- package/dist/{chunk-KT55HW6V.js → chunk-CHQMK2ZG.js} +1 -1
- package/dist/chunk-CVYEUA3D.cjs +528 -0
- package/dist/{chunk-MRQV5HMC.js → chunk-DE7YC5MB.js} +8 -6
- package/dist/{chunk-AD4O67ZA.cjs → chunk-EJ77L3KT.cjs} +10 -10
- package/dist/{chunk-737A24RB.js → chunk-FUEL6BK7.js} +9 -1
- package/dist/{chunk-6MCXWSR3.js → chunk-H4RPZD6H.js} +1 -1
- package/dist/chunk-JHGIWNHL.cjs +46 -0
- package/dist/{chunk-27JNK5TE.cjs → chunk-LUKMRIKJ.cjs} +40 -61
- package/dist/{chunk-4H3B46YX.js → chunk-MWLAHCU7.js} +9 -3
- package/dist/{chunk-QCMC2WOC.cjs → chunk-N6ZOJI2M.cjs} +4 -4
- package/dist/{chunk-2TPGTNNY.js → chunk-NGSLABLS.js} +37 -58
- package/dist/chunk-QHPFA6OE.js +46 -0
- package/dist/{chunk-M4LKQQHU.cjs → chunk-REPKBECD.cjs} +2 -2
- package/dist/chunk-SKU4M27Z.js +528 -0
- package/dist/chunk-W4XTDUGT.js +267 -0
- package/dist/{chunk-RDEROLKA.cjs → chunk-XAM7SFVB.cjs} +8 -6
- package/dist/chunk-XF4EQ3IV.cjs +267 -0
- package/dist/{chunk-IHJDYAYJ.cjs → chunk-XTHHDIBG.cjs} +9 -1
- package/dist/{chunk-5N3QP5LJ.js → chunk-YDH2BMEN.js} +19 -11
- package/dist/constants-ICQLSGZN.cjs +19 -0
- package/dist/constants-N3I2FHCM.js +19 -0
- package/dist/feedback-TOGESBX7.cjs +11 -0
- package/dist/{feedback-3THCLEBE.js → feedback-YGSYBQEW.js} +3 -2
- package/dist/index.cjs +1463 -1146
- package/dist/index.js +987 -670
- package/dist/login-QVBS7KBK.cjs +13 -0
- package/dist/login-XUVEFKCR.js +13 -0
- package/dist/logout-75YLPOBK.js +13 -0
- package/dist/logout-FYYR5KCP.cjs +13 -0
- package/dist/{permissions-CYW62ZK3.js → permissions-3GS4ZWVA.js} +2 -1
- package/dist/permissions-E3MTIE7D.cjs +10 -0
- package/dist/{skills-HF4SAF5O.js → skills-3M26KASS.js} +3 -1
- package/dist/skills-BOFY5RQN.cjs +13 -0
- package/dist/skills-install-WJ2LDRQG.js +680 -0
- package/dist/skills-install-Z3W5PQWQ.cjs +680 -0
- package/dist/skills-new-KIBUN63X.js +12 -0
- package/dist/skills-new-XDYS24XW.cjs +12 -0
- package/dist/{status-SLYYTKXD.js → status-6FY6RKIS.js} +1 -1
- package/dist/status-DJHDT6QH.cjs +9 -0
- package/dist/theme-2UK74UWR.cjs +13 -0
- package/dist/{theme-THMQ5AIN.js → theme-XNZ2X6HE.js} +3 -3
- package/package.json +1 -1
- package/dist/agents-EHLYBJLK.cjs +0 -10
- package/dist/agents-new-7VPASCBV.cjs +0 -10
- package/dist/chunk-NEAJ2UWG.js +0 -191
- package/dist/chunk-Z6SGIQWH.cjs +0 -191
- package/dist/feedback-PATTKRH5.cjs +0 -10
- package/dist/login-QJROML5I.js +0 -12
- package/dist/login-X66DSV75.cjs +0 -12
- package/dist/logout-3Z7R3F7J.cjs +0 -12
- package/dist/logout-RJ5OAXRI.js +0 -12
- package/dist/permissions-NOC5DMOH.cjs +0 -9
- package/dist/skills-U6J6DFLK.cjs +0 -11
- package/dist/skills-new-QDTNEG3R.js +0 -10
- package/dist/skills-new-UPVBHIF2.cjs +0 -10
- package/dist/status-GR73LEEN.cjs +0 -9
- package/dist/theme-YDANJLZR.cjs +0 -13
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
var _chunk6ZGNSZRGcjs = require('./chunk-6ZGNSZRG.cjs');
|
|
5
|
+
require('./chunk-N254NRHT.cjs');
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
exports.metadata = _chunk6ZGNSZRGcjs.metadata; exports.status = _chunk6ZGNSZRGcjs.status;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
var _chunkEJ77L3KTcjs = require('./chunk-EJ77L3KT.cjs');
|
|
6
|
+
require('./chunk-N6ZOJI2M.cjs');
|
|
7
|
+
require('./chunk-XTHHDIBG.cjs');
|
|
8
|
+
require('./chunk-N254NRHT.cjs');
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
exports.metadata = _chunkEJ77L3KTcjs.metadata; exports.theme = _chunkEJ77L3KTcjs.theme; exports.themeInfo = _chunkEJ77L3KTcjs.themeInfo;
|
|
@@ -2,9 +2,9 @@ import {
|
|
|
2
2
|
metadata,
|
|
3
3
|
theme,
|
|
4
4
|
themeInfo
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-37NUB5KX.js";
|
|
6
|
+
import "./chunk-AY2XV7TH.js";
|
|
7
|
+
import "./chunk-FUEL6BK7.js";
|
|
8
8
|
import "./chunk-JSBRDJBE.js";
|
|
9
9
|
export {
|
|
10
10
|
metadata,
|
package/package.json
CHANGED
package/dist/agents-EHLYBJLK.cjs
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var _chunkG7SYGATAcjs = require('./chunk-G7SYGATA.cjs');
|
|
5
|
-
require('./chunk-IHJDYAYJ.cjs');
|
|
6
|
-
require('./chunk-N254NRHT.cjs');
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
exports.handler = _chunkG7SYGATAcjs.handler; exports.metadata = _chunkG7SYGATAcjs.metadata;
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var _chunk3Y6G5DUXcjs = require('./chunk-3Y6G5DUX.cjs');
|
|
5
|
-
require('./chunk-IHJDYAYJ.cjs');
|
|
6
|
-
require('./chunk-N254NRHT.cjs');
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
exports.createAgent = _chunk3Y6G5DUXcjs.createAgent; exports.metadata = _chunk3Y6G5DUXcjs.metadata;
|
package/dist/chunk-NEAJ2UWG.js
DELETED
|
@@ -1,191 +0,0 @@
|
|
|
1
|
-
// src/commands/skills.ts
|
|
2
|
-
import chalk from "chalk";
|
|
3
|
-
async function skills(ctx, args = []) {
|
|
4
|
-
const { skillsRegistry } = ctx;
|
|
5
|
-
if (!skillsRegistry) {
|
|
6
|
-
console.log(chalk.red("Skills registry not available."));
|
|
7
|
-
return null;
|
|
8
|
-
}
|
|
9
|
-
const subcommand = args[0]?.toLowerCase();
|
|
10
|
-
const skillName = args.slice(1).join(" ").trim() || args[1];
|
|
11
|
-
switch (subcommand) {
|
|
12
|
-
case "use":
|
|
13
|
-
case "activate":
|
|
14
|
-
return activateSkill(skillsRegistry, skillName);
|
|
15
|
-
case "deactivate":
|
|
16
|
-
case "off":
|
|
17
|
-
return deactivateSkill(skillsRegistry, skillName);
|
|
18
|
-
case "info":
|
|
19
|
-
case "show":
|
|
20
|
-
return showSkillInfo(skillsRegistry, skillName);
|
|
21
|
-
default:
|
|
22
|
-
return listSkills(skillsRegistry);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
function listSkills(registry) {
|
|
26
|
-
const allSkills = registry.listSkills();
|
|
27
|
-
const activeSkills = registry.getActiveSkills();
|
|
28
|
-
console.log();
|
|
29
|
-
console.log(chalk.bold.cyan("Available Skills"));
|
|
30
|
-
console.log(chalk.gray("\u2500".repeat(50)));
|
|
31
|
-
if (allSkills.length === 0) {
|
|
32
|
-
console.log(chalk.gray("No skills found."));
|
|
33
|
-
console.log();
|
|
34
|
-
console.log(chalk.gray("Tip: Skills can be added in:"));
|
|
35
|
-
console.log(chalk.gray(" - ~/.autohand/skills/<skill-name>/SKILL.md"));
|
|
36
|
-
console.log(chalk.gray(" - <project>/.autohand/skills/<skill-name>/SKILL.md"));
|
|
37
|
-
return null;
|
|
38
|
-
}
|
|
39
|
-
const bySource = /* @__PURE__ */ new Map();
|
|
40
|
-
for (const skill of allSkills) {
|
|
41
|
-
const existing = bySource.get(skill.source) ?? [];
|
|
42
|
-
existing.push(skill);
|
|
43
|
-
bySource.set(skill.source, existing);
|
|
44
|
-
}
|
|
45
|
-
const sourceLabels = {
|
|
46
|
-
"codex-user": "Codex User Skills (~/.codex/skills/)",
|
|
47
|
-
"claude-user": "Claude User Skills (~/.claude/skills/)",
|
|
48
|
-
"claude-project": "Claude Project Skills (.claude/skills/)",
|
|
49
|
-
"autohand-user": "Autohand User Skills (~/.autohand/skills/)",
|
|
50
|
-
"autohand-project": "Autohand Project Skills (.autohand/skills/)"
|
|
51
|
-
};
|
|
52
|
-
for (const [source, skills2] of bySource) {
|
|
53
|
-
console.log();
|
|
54
|
-
console.log(chalk.bold.yellow(sourceLabels[source] || source));
|
|
55
|
-
console.log();
|
|
56
|
-
for (const skill of skills2) {
|
|
57
|
-
const isActive = skill.isActive;
|
|
58
|
-
const statusIcon = isActive ? chalk.green("\u25CF") : chalk.gray("\u25CB");
|
|
59
|
-
const nameColor = isActive ? chalk.green : chalk.white;
|
|
60
|
-
console.log(` ${statusIcon} ${nameColor(skill.name)}`);
|
|
61
|
-
console.log(chalk.gray(` ${skill.description}`));
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
console.log();
|
|
65
|
-
console.log(chalk.gray("\u2500".repeat(50)));
|
|
66
|
-
console.log(chalk.gray(`Total: ${allSkills.length} skills, ${activeSkills.length} active`));
|
|
67
|
-
console.log();
|
|
68
|
-
console.log(chalk.gray("Commands:"));
|
|
69
|
-
console.log(chalk.gray(" /skills use <name> Activate a skill"));
|
|
70
|
-
console.log(chalk.gray(" /skills deactivate <name> Deactivate a skill"));
|
|
71
|
-
console.log(chalk.gray(" /skills info <name> Show skill details"));
|
|
72
|
-
console.log(chalk.gray(" /skills new Create a new skill"));
|
|
73
|
-
return null;
|
|
74
|
-
}
|
|
75
|
-
function activateSkill(registry, name) {
|
|
76
|
-
if (!name) {
|
|
77
|
-
console.log(chalk.red("Usage: /skills use <skill-name>"));
|
|
78
|
-
return null;
|
|
79
|
-
}
|
|
80
|
-
const skill = registry.getSkill(name);
|
|
81
|
-
if (!skill) {
|
|
82
|
-
console.log(chalk.red(`Skill not found: ${name}`));
|
|
83
|
-
const similar = registry.findSimilar(name, 0.2);
|
|
84
|
-
if (similar.length > 0) {
|
|
85
|
-
console.log(chalk.gray("Did you mean:"));
|
|
86
|
-
for (const match of similar.slice(0, 3)) {
|
|
87
|
-
console.log(chalk.gray(` - ${match.skill.name}`));
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
return null;
|
|
91
|
-
}
|
|
92
|
-
if (skill.isActive) {
|
|
93
|
-
console.log(chalk.yellow(`Skill "${name}" is already active.`));
|
|
94
|
-
return null;
|
|
95
|
-
}
|
|
96
|
-
const success = registry.activateSkill(name);
|
|
97
|
-
if (success) {
|
|
98
|
-
console.log(chalk.green(`\u2713 Activated skill: ${name}`));
|
|
99
|
-
console.log(chalk.gray(` ${skill.description}`));
|
|
100
|
-
return `Skill "${name}" is now active.`;
|
|
101
|
-
} else {
|
|
102
|
-
console.log(chalk.red(`Failed to activate skill: ${name}`));
|
|
103
|
-
return null;
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
function deactivateSkill(registry, name) {
|
|
107
|
-
if (!name) {
|
|
108
|
-
console.log(chalk.red("Usage: /skills deactivate <skill-name>"));
|
|
109
|
-
return null;
|
|
110
|
-
}
|
|
111
|
-
const skill = registry.getSkill(name);
|
|
112
|
-
if (!skill) {
|
|
113
|
-
console.log(chalk.red(`Skill not found: ${name}`));
|
|
114
|
-
return null;
|
|
115
|
-
}
|
|
116
|
-
if (!skill.isActive) {
|
|
117
|
-
console.log(chalk.yellow(`Skill "${name}" is not active.`));
|
|
118
|
-
return null;
|
|
119
|
-
}
|
|
120
|
-
const success = registry.deactivateSkill(name);
|
|
121
|
-
if (success) {
|
|
122
|
-
console.log(chalk.green(`\u2713 Deactivated skill: ${name}`));
|
|
123
|
-
return `Skill "${name}" is now inactive.`;
|
|
124
|
-
} else {
|
|
125
|
-
console.log(chalk.red(`Failed to deactivate skill: ${name}`));
|
|
126
|
-
return null;
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
function showSkillInfo(registry, name) {
|
|
130
|
-
if (!name) {
|
|
131
|
-
console.log(chalk.red("Usage: /skills info <skill-name>"));
|
|
132
|
-
return null;
|
|
133
|
-
}
|
|
134
|
-
const skill = registry.getSkill(name);
|
|
135
|
-
if (!skill) {
|
|
136
|
-
console.log(chalk.red(`Skill not found: ${name}`));
|
|
137
|
-
return null;
|
|
138
|
-
}
|
|
139
|
-
console.log();
|
|
140
|
-
console.log(chalk.bold.cyan(`Skill: ${skill.name}`));
|
|
141
|
-
console.log(chalk.gray("\u2500".repeat(50)));
|
|
142
|
-
console.log();
|
|
143
|
-
console.log(chalk.white("Description: ") + skill.description);
|
|
144
|
-
console.log(chalk.white("Status: ") + (skill.isActive ? chalk.green("Active") : chalk.gray("Inactive")));
|
|
145
|
-
console.log(chalk.white("Source: ") + skill.source);
|
|
146
|
-
console.log(chalk.white("Path: ") + chalk.gray(skill.path));
|
|
147
|
-
if (skill.license) {
|
|
148
|
-
console.log(chalk.white("License: ") + skill.license);
|
|
149
|
-
}
|
|
150
|
-
if (skill.compatibility) {
|
|
151
|
-
console.log(chalk.white("Compatibility: ") + skill.compatibility);
|
|
152
|
-
}
|
|
153
|
-
if (skill["allowed-tools"]) {
|
|
154
|
-
console.log(chalk.white("Allowed Tools: ") + skill["allowed-tools"]);
|
|
155
|
-
}
|
|
156
|
-
if (skill.metadata && Object.keys(skill.metadata).length > 0) {
|
|
157
|
-
console.log(chalk.white("Metadata:"));
|
|
158
|
-
for (const [key, value] of Object.entries(skill.metadata)) {
|
|
159
|
-
console.log(chalk.gray(` ${key}: ${value}`));
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
console.log();
|
|
163
|
-
console.log(chalk.bold("Content:"));
|
|
164
|
-
console.log(chalk.gray("\u2500".repeat(50)));
|
|
165
|
-
const bodyPreview = skill.body.length > 500 ? skill.body.slice(0, 500) + chalk.gray("\n... (truncated)") : skill.body;
|
|
166
|
-
console.log(bodyPreview || chalk.gray("(no body content)"));
|
|
167
|
-
return null;
|
|
168
|
-
}
|
|
169
|
-
var metadata = {
|
|
170
|
-
command: "/skills",
|
|
171
|
-
description: "list and manage available skills",
|
|
172
|
-
implemented: true
|
|
173
|
-
};
|
|
174
|
-
var useMetadata = {
|
|
175
|
-
command: "/skills use",
|
|
176
|
-
description: "activate a skill",
|
|
177
|
-
implemented: true
|
|
178
|
-
};
|
|
179
|
-
|
|
180
|
-
export {
|
|
181
|
-
skills,
|
|
182
|
-
metadata,
|
|
183
|
-
useMetadata
|
|
184
|
-
};
|
|
185
|
-
/**
|
|
186
|
-
* @license
|
|
187
|
-
* Copyright 2025 Autohand AI LLC
|
|
188
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
189
|
-
*
|
|
190
|
-
* Skills command - List and manage available skills
|
|
191
|
-
*/
|
package/dist/chunk-Z6SGIQWH.cjs
DELETED
|
@@ -1,191 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }// src/commands/skills.ts
|
|
2
|
-
var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
|
|
3
|
-
async function skills(ctx, args = []) {
|
|
4
|
-
const { skillsRegistry } = ctx;
|
|
5
|
-
if (!skillsRegistry) {
|
|
6
|
-
console.log(_chalk2.default.red("Skills registry not available."));
|
|
7
|
-
return null;
|
|
8
|
-
}
|
|
9
|
-
const subcommand = _optionalChain([args, 'access', _ => _[0], 'optionalAccess', _2 => _2.toLowerCase, 'call', _3 => _3()]);
|
|
10
|
-
const skillName = args.slice(1).join(" ").trim() || args[1];
|
|
11
|
-
switch (subcommand) {
|
|
12
|
-
case "use":
|
|
13
|
-
case "activate":
|
|
14
|
-
return activateSkill(skillsRegistry, skillName);
|
|
15
|
-
case "deactivate":
|
|
16
|
-
case "off":
|
|
17
|
-
return deactivateSkill(skillsRegistry, skillName);
|
|
18
|
-
case "info":
|
|
19
|
-
case "show":
|
|
20
|
-
return showSkillInfo(skillsRegistry, skillName);
|
|
21
|
-
default:
|
|
22
|
-
return listSkills(skillsRegistry);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
function listSkills(registry) {
|
|
26
|
-
const allSkills = registry.listSkills();
|
|
27
|
-
const activeSkills = registry.getActiveSkills();
|
|
28
|
-
console.log();
|
|
29
|
-
console.log(_chalk2.default.bold.cyan("Available Skills"));
|
|
30
|
-
console.log(_chalk2.default.gray("\u2500".repeat(50)));
|
|
31
|
-
if (allSkills.length === 0) {
|
|
32
|
-
console.log(_chalk2.default.gray("No skills found."));
|
|
33
|
-
console.log();
|
|
34
|
-
console.log(_chalk2.default.gray("Tip: Skills can be added in:"));
|
|
35
|
-
console.log(_chalk2.default.gray(" - ~/.autohand/skills/<skill-name>/SKILL.md"));
|
|
36
|
-
console.log(_chalk2.default.gray(" - <project>/.autohand/skills/<skill-name>/SKILL.md"));
|
|
37
|
-
return null;
|
|
38
|
-
}
|
|
39
|
-
const bySource = /* @__PURE__ */ new Map();
|
|
40
|
-
for (const skill of allSkills) {
|
|
41
|
-
const existing = _nullishCoalesce(bySource.get(skill.source), () => ( []));
|
|
42
|
-
existing.push(skill);
|
|
43
|
-
bySource.set(skill.source, existing);
|
|
44
|
-
}
|
|
45
|
-
const sourceLabels = {
|
|
46
|
-
"codex-user": "Codex User Skills (~/.codex/skills/)",
|
|
47
|
-
"claude-user": "Claude User Skills (~/.claude/skills/)",
|
|
48
|
-
"claude-project": "Claude Project Skills (.claude/skills/)",
|
|
49
|
-
"autohand-user": "Autohand User Skills (~/.autohand/skills/)",
|
|
50
|
-
"autohand-project": "Autohand Project Skills (.autohand/skills/)"
|
|
51
|
-
};
|
|
52
|
-
for (const [source, skills2] of bySource) {
|
|
53
|
-
console.log();
|
|
54
|
-
console.log(_chalk2.default.bold.yellow(sourceLabels[source] || source));
|
|
55
|
-
console.log();
|
|
56
|
-
for (const skill of skills2) {
|
|
57
|
-
const isActive = skill.isActive;
|
|
58
|
-
const statusIcon = isActive ? _chalk2.default.green("\u25CF") : _chalk2.default.gray("\u25CB");
|
|
59
|
-
const nameColor = isActive ? _chalk2.default.green : _chalk2.default.white;
|
|
60
|
-
console.log(` ${statusIcon} ${nameColor(skill.name)}`);
|
|
61
|
-
console.log(_chalk2.default.gray(` ${skill.description}`));
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
console.log();
|
|
65
|
-
console.log(_chalk2.default.gray("\u2500".repeat(50)));
|
|
66
|
-
console.log(_chalk2.default.gray(`Total: ${allSkills.length} skills, ${activeSkills.length} active`));
|
|
67
|
-
console.log();
|
|
68
|
-
console.log(_chalk2.default.gray("Commands:"));
|
|
69
|
-
console.log(_chalk2.default.gray(" /skills use <name> Activate a skill"));
|
|
70
|
-
console.log(_chalk2.default.gray(" /skills deactivate <name> Deactivate a skill"));
|
|
71
|
-
console.log(_chalk2.default.gray(" /skills info <name> Show skill details"));
|
|
72
|
-
console.log(_chalk2.default.gray(" /skills new Create a new skill"));
|
|
73
|
-
return null;
|
|
74
|
-
}
|
|
75
|
-
function activateSkill(registry, name) {
|
|
76
|
-
if (!name) {
|
|
77
|
-
console.log(_chalk2.default.red("Usage: /skills use <skill-name>"));
|
|
78
|
-
return null;
|
|
79
|
-
}
|
|
80
|
-
const skill = registry.getSkill(name);
|
|
81
|
-
if (!skill) {
|
|
82
|
-
console.log(_chalk2.default.red(`Skill not found: ${name}`));
|
|
83
|
-
const similar = registry.findSimilar(name, 0.2);
|
|
84
|
-
if (similar.length > 0) {
|
|
85
|
-
console.log(_chalk2.default.gray("Did you mean:"));
|
|
86
|
-
for (const match of similar.slice(0, 3)) {
|
|
87
|
-
console.log(_chalk2.default.gray(` - ${match.skill.name}`));
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
return null;
|
|
91
|
-
}
|
|
92
|
-
if (skill.isActive) {
|
|
93
|
-
console.log(_chalk2.default.yellow(`Skill "${name}" is already active.`));
|
|
94
|
-
return null;
|
|
95
|
-
}
|
|
96
|
-
const success = registry.activateSkill(name);
|
|
97
|
-
if (success) {
|
|
98
|
-
console.log(_chalk2.default.green(`\u2713 Activated skill: ${name}`));
|
|
99
|
-
console.log(_chalk2.default.gray(` ${skill.description}`));
|
|
100
|
-
return `Skill "${name}" is now active.`;
|
|
101
|
-
} else {
|
|
102
|
-
console.log(_chalk2.default.red(`Failed to activate skill: ${name}`));
|
|
103
|
-
return null;
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
function deactivateSkill(registry, name) {
|
|
107
|
-
if (!name) {
|
|
108
|
-
console.log(_chalk2.default.red("Usage: /skills deactivate <skill-name>"));
|
|
109
|
-
return null;
|
|
110
|
-
}
|
|
111
|
-
const skill = registry.getSkill(name);
|
|
112
|
-
if (!skill) {
|
|
113
|
-
console.log(_chalk2.default.red(`Skill not found: ${name}`));
|
|
114
|
-
return null;
|
|
115
|
-
}
|
|
116
|
-
if (!skill.isActive) {
|
|
117
|
-
console.log(_chalk2.default.yellow(`Skill "${name}" is not active.`));
|
|
118
|
-
return null;
|
|
119
|
-
}
|
|
120
|
-
const success = registry.deactivateSkill(name);
|
|
121
|
-
if (success) {
|
|
122
|
-
console.log(_chalk2.default.green(`\u2713 Deactivated skill: ${name}`));
|
|
123
|
-
return `Skill "${name}" is now inactive.`;
|
|
124
|
-
} else {
|
|
125
|
-
console.log(_chalk2.default.red(`Failed to deactivate skill: ${name}`));
|
|
126
|
-
return null;
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
function showSkillInfo(registry, name) {
|
|
130
|
-
if (!name) {
|
|
131
|
-
console.log(_chalk2.default.red("Usage: /skills info <skill-name>"));
|
|
132
|
-
return null;
|
|
133
|
-
}
|
|
134
|
-
const skill = registry.getSkill(name);
|
|
135
|
-
if (!skill) {
|
|
136
|
-
console.log(_chalk2.default.red(`Skill not found: ${name}`));
|
|
137
|
-
return null;
|
|
138
|
-
}
|
|
139
|
-
console.log();
|
|
140
|
-
console.log(_chalk2.default.bold.cyan(`Skill: ${skill.name}`));
|
|
141
|
-
console.log(_chalk2.default.gray("\u2500".repeat(50)));
|
|
142
|
-
console.log();
|
|
143
|
-
console.log(_chalk2.default.white("Description: ") + skill.description);
|
|
144
|
-
console.log(_chalk2.default.white("Status: ") + (skill.isActive ? _chalk2.default.green("Active") : _chalk2.default.gray("Inactive")));
|
|
145
|
-
console.log(_chalk2.default.white("Source: ") + skill.source);
|
|
146
|
-
console.log(_chalk2.default.white("Path: ") + _chalk2.default.gray(skill.path));
|
|
147
|
-
if (skill.license) {
|
|
148
|
-
console.log(_chalk2.default.white("License: ") + skill.license);
|
|
149
|
-
}
|
|
150
|
-
if (skill.compatibility) {
|
|
151
|
-
console.log(_chalk2.default.white("Compatibility: ") + skill.compatibility);
|
|
152
|
-
}
|
|
153
|
-
if (skill["allowed-tools"]) {
|
|
154
|
-
console.log(_chalk2.default.white("Allowed Tools: ") + skill["allowed-tools"]);
|
|
155
|
-
}
|
|
156
|
-
if (skill.metadata && Object.keys(skill.metadata).length > 0) {
|
|
157
|
-
console.log(_chalk2.default.white("Metadata:"));
|
|
158
|
-
for (const [key, value] of Object.entries(skill.metadata)) {
|
|
159
|
-
console.log(_chalk2.default.gray(` ${key}: ${value}`));
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
console.log();
|
|
163
|
-
console.log(_chalk2.default.bold("Content:"));
|
|
164
|
-
console.log(_chalk2.default.gray("\u2500".repeat(50)));
|
|
165
|
-
const bodyPreview = skill.body.length > 500 ? skill.body.slice(0, 500) + _chalk2.default.gray("\n... (truncated)") : skill.body;
|
|
166
|
-
console.log(bodyPreview || _chalk2.default.gray("(no body content)"));
|
|
167
|
-
return null;
|
|
168
|
-
}
|
|
169
|
-
var metadata = {
|
|
170
|
-
command: "/skills",
|
|
171
|
-
description: "list and manage available skills",
|
|
172
|
-
implemented: true
|
|
173
|
-
};
|
|
174
|
-
var useMetadata = {
|
|
175
|
-
command: "/skills use",
|
|
176
|
-
description: "activate a skill",
|
|
177
|
-
implemented: true
|
|
178
|
-
};
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
exports.skills = skills; exports.metadata = metadata; exports.useMetadata = useMetadata;
|
|
185
|
-
/**
|
|
186
|
-
* @license
|
|
187
|
-
* Copyright 2025 Autohand AI LLC
|
|
188
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
189
|
-
*
|
|
190
|
-
* Skills command - List and manage available skills
|
|
191
|
-
*/
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var _chunkRDEROLKAcjs = require('./chunk-RDEROLKA.cjs');
|
|
5
|
-
require('./chunk-IHJDYAYJ.cjs');
|
|
6
|
-
require('./chunk-N254NRHT.cjs');
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
exports.feedback = _chunkRDEROLKAcjs.feedback; exports.metadata = _chunkRDEROLKAcjs.metadata;
|
package/dist/login-QJROML5I.js
DELETED
package/dist/login-X66DSV75.cjs
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var _chunkDD2YPHP5cjs = require('./chunk-DD2YPHP5.cjs');
|
|
5
|
-
require('./chunk-M4LKQQHU.cjs');
|
|
6
|
-
require('./chunk-QCMC2WOC.cjs');
|
|
7
|
-
require('./chunk-IHJDYAYJ.cjs');
|
|
8
|
-
require('./chunk-N254NRHT.cjs');
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
exports.login = _chunkDD2YPHP5cjs.login; exports.metadata = _chunkDD2YPHP5cjs.metadata;
|
package/dist/logout-3Z7R3F7J.cjs
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var _chunkAL4Z4WKGcjs = require('./chunk-AL4Z4WKG.cjs');
|
|
5
|
-
require('./chunk-M4LKQQHU.cjs');
|
|
6
|
-
require('./chunk-QCMC2WOC.cjs');
|
|
7
|
-
require('./chunk-IHJDYAYJ.cjs');
|
|
8
|
-
require('./chunk-N254NRHT.cjs');
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
exports.logout = _chunkAL4Z4WKGcjs.logout; exports.metadata = _chunkAL4Z4WKGcjs.metadata;
|
package/dist/logout-RJ5OAXRI.js
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var _chunk7RRX7H2Xcjs = require('./chunk-7RRX7H2X.cjs');
|
|
5
|
-
require('./chunk-N254NRHT.cjs');
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
exports.metadata = _chunk7RRX7H2Xcjs.metadata; exports.permissions = _chunk7RRX7H2Xcjs.permissions;
|
package/dist/skills-U6J6DFLK.cjs
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
var _chunkZ6SGIQWHcjs = require('./chunk-Z6SGIQWH.cjs');
|
|
6
|
-
require('./chunk-N254NRHT.cjs');
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
exports.metadata = _chunkZ6SGIQWHcjs.metadata; exports.skills = _chunkZ6SGIQWHcjs.skills; exports.useMetadata = _chunkZ6SGIQWHcjs.useMetadata;
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var _chunk27JNK5TEcjs = require('./chunk-27JNK5TE.cjs');
|
|
5
|
-
require('./chunk-IHJDYAYJ.cjs');
|
|
6
|
-
require('./chunk-N254NRHT.cjs');
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
exports.createSkill = _chunk27JNK5TEcjs.createSkill; exports.metadata = _chunk27JNK5TEcjs.metadata;
|
package/dist/status-GR73LEEN.cjs
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var _chunkZTA2ASFWcjs = require('./chunk-ZTA2ASFW.cjs');
|
|
5
|
-
require('./chunk-N254NRHT.cjs');
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
exports.metadata = _chunkZTA2ASFWcjs.metadata; exports.status = _chunkZTA2ASFWcjs.status;
|
package/dist/theme-YDANJLZR.cjs
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
var _chunkAD4O67ZAcjs = require('./chunk-AD4O67ZA.cjs');
|
|
6
|
-
require('./chunk-QCMC2WOC.cjs');
|
|
7
|
-
require('./chunk-IHJDYAYJ.cjs');
|
|
8
|
-
require('./chunk-N254NRHT.cjs');
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
exports.metadata = _chunkAD4O67ZAcjs.metadata; exports.theme = _chunkAD4O67ZAcjs.theme; exports.themeInfo = _chunkAD4O67ZAcjs.themeInfo;
|