@callmeradical/augy 0.7.1 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{author-W7UKRDYO.js → author-MZWTET4S.js} +1 -1
- package/dist/{bundle-ESWO4DCZ.js → bundle-4D3RXVJZ.js} +1 -1
- package/dist/{chunk-UJBZ6OAP.js → chunk-G7WKOGAS.js} +2 -2
- package/dist/{chunk-IORULLX5.js → chunk-IBMRS66P.js} +8 -0
- package/dist/{chunk-HKE4L4SD.js → chunk-X23LB7YS.js} +1 -1
- package/dist/{chunk-DFZHSX3M.js → chunk-XUQJ2VKV.js} +1 -1
- package/dist/context-2UJB5RLD.js +34 -0
- package/dist/{diff-EAGTGQYC.js → diff-YDRQ43TJ.js} +2 -2
- package/dist/{home-TCFEQEXO.js → home-3M23O6LH.js} +32 -12
- package/dist/index.js +39 -26
- package/dist/{info-7DPMSTVU.js → info-VIYGVJD6.js} +2 -2
- package/dist/{install-4CHE2OFV.js → install-WLEVFJFD.js} +3 -3
- package/dist/{list-3RZJGXTD.js → list-MJUAPNMU.js} +1 -1
- package/dist/{registry-KMUHBN75.js → registry-RU24Z5UO.js} +5 -1
- package/dist/{rollback-AZTJTYLL.js → rollback-I5FAGN6J.js} +3 -3
- package/dist/{scan-YZ2PPABF.js → scan-JJIQ4BM7.js} +3 -3
- package/dist/{search-H2G7PH7R.js → search-AO7VHE5K.js} +2 -2
- package/dist/{set-source-5PSSVVZ2.js → set-source-CGLGCKOD.js} +1 -1
- package/dist/{sync-4EKWA3IM.js → sync-I3FTSC3I.js} +1 -1
- package/dist/{tag-DAWGOKEO.js → tag-4FCN7T62.js} +1 -1
- package/dist/{tap-KS57GF5M.js → tap-3G3U5UXL.js} +2 -2
- package/dist/{uninstall-PZ5AP4MP.js → uninstall-6R7A5HOZ.js} +2 -2
- package/dist/{update-GAPWQHVH.js → update-XHOICFKF.js} +2 -2
- package/dist/{versions-33GF7UP5.js → versions-SSRDVQ3G.js} +2 -2
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
versionArchivePath
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-IBMRS66P.js";
|
|
4
4
|
|
|
5
5
|
// src/versions.ts
|
|
6
6
|
import { cp, mkdir, rm } from "fs/promises";
|
|
@@ -32,7 +32,7 @@ Archive path: ${src}`
|
|
|
32
32
|
}
|
|
33
33
|
async function pruneVersions(skillName, keepShas = []) {
|
|
34
34
|
const { join } = await import("path");
|
|
35
|
-
const { versionArchivePath: archivePath, versionsDir } = await import("./registry-
|
|
35
|
+
const { versionArchivePath: archivePath, versionsDir } = await import("./registry-RU24Z5UO.js");
|
|
36
36
|
const skillVersionsDir = join(versionsDir(), skillName);
|
|
37
37
|
if (!existsSync(skillVersionsDir)) return;
|
|
38
38
|
const { readdir } = await import("fs/promises");
|
|
@@ -112,6 +112,12 @@ function addTap(registry, tap) {
|
|
|
112
112
|
function removeTap(registry, key) {
|
|
113
113
|
delete registry.taps[key];
|
|
114
114
|
}
|
|
115
|
+
function getMachineContext(registry) {
|
|
116
|
+
return registry.machineContext;
|
|
117
|
+
}
|
|
118
|
+
function setMachineContext(registry, context) {
|
|
119
|
+
registry.machineContext = context;
|
|
120
|
+
}
|
|
115
121
|
function skillMatchesContext(skillContexts, filter) {
|
|
116
122
|
if (!filter) return true;
|
|
117
123
|
if (!skillContexts || skillContexts.length === 0) return true;
|
|
@@ -145,6 +151,8 @@ export {
|
|
|
145
151
|
listTaps,
|
|
146
152
|
addTap,
|
|
147
153
|
removeTap,
|
|
154
|
+
getMachineContext,
|
|
155
|
+
setMachineContext,
|
|
148
156
|
skillMatchesContext,
|
|
149
157
|
getHomeConfig,
|
|
150
158
|
setHomeConfig
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import {
|
|
2
|
+
getMachineContext,
|
|
3
|
+
readRegistry,
|
|
4
|
+
setMachineContext,
|
|
5
|
+
writeRegistry
|
|
6
|
+
} from "./chunk-IBMRS66P.js";
|
|
7
|
+
|
|
8
|
+
// src/commands/context.ts
|
|
9
|
+
import chalk from "chalk";
|
|
10
|
+
async function contextSetCommand(ctx) {
|
|
11
|
+
const registry = await readRegistry();
|
|
12
|
+
setMachineContext(registry, ctx);
|
|
13
|
+
await writeRegistry(registry);
|
|
14
|
+
if (ctx) {
|
|
15
|
+
console.log(`${chalk.bold("Machine context")} set to ${chalk.cyan(ctx)}`);
|
|
16
|
+
console.log(chalk.dim(" `augy home pull` will now pre-select skills tagged " + ctx + " or universal."));
|
|
17
|
+
} else {
|
|
18
|
+
console.log(chalk.dim("Machine context cleared \u2014 `augy home pull` will pre-select all skills."));
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
async function contextShowCommand() {
|
|
22
|
+
const registry = await readRegistry();
|
|
23
|
+
const ctx = getMachineContext(registry);
|
|
24
|
+
if (ctx) {
|
|
25
|
+
console.log(`${chalk.bold("Machine context:")} ${chalk.cyan(ctx)}`);
|
|
26
|
+
} else {
|
|
27
|
+
console.log(chalk.dim("No machine context set."));
|
|
28
|
+
console.log(chalk.dim("Run `augy context set <ctx>` to set one (e.g. work, personal)."));
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
export {
|
|
32
|
+
contextSetCommand,
|
|
33
|
+
contextShowCommand
|
|
34
|
+
};
|
|
@@ -4,13 +4,13 @@ import {
|
|
|
4
4
|
} from "./chunk-2E5SVRSR.js";
|
|
5
5
|
import {
|
|
6
6
|
archiveExists
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-G7WKOGAS.js";
|
|
8
8
|
import {
|
|
9
9
|
getSkill,
|
|
10
10
|
readRegistry,
|
|
11
11
|
shortSha,
|
|
12
12
|
versionArchivePath
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-IBMRS66P.js";
|
|
14
14
|
|
|
15
15
|
// src/commands/diff.ts
|
|
16
16
|
import { cancel, intro, isCancel, outro, select, spinner } from "@clack/prompts";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
filterableMultiselect
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-XUQJ2VKV.js";
|
|
4
4
|
import {
|
|
5
5
|
AGENTS,
|
|
6
6
|
agentSkillPath,
|
|
@@ -9,13 +9,14 @@ import {
|
|
|
9
9
|
import {
|
|
10
10
|
createSkillRecord,
|
|
11
11
|
getHomeConfig,
|
|
12
|
+
getMachineContext,
|
|
12
13
|
listSkills,
|
|
13
14
|
readRegistry,
|
|
14
15
|
setHomeConfig,
|
|
15
16
|
skillMatchesContext,
|
|
16
17
|
upsertSkill,
|
|
17
18
|
writeRegistry
|
|
18
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-IBMRS66P.js";
|
|
19
20
|
|
|
20
21
|
// src/commands/home.ts
|
|
21
22
|
import { intro, isCancel, multiselect, outro, spinner } from "@clack/prompts";
|
|
@@ -116,6 +117,10 @@ async function homePushCommand() {
|
|
|
116
117
|
for (const skill of authored) {
|
|
117
118
|
bundle.skills[skill.name] = "";
|
|
118
119
|
}
|
|
120
|
+
const contextEntries = allSkills.filter((s3) => s3.contexts && s3.contexts.length > 0).map((s3) => [s3.name, s3.contexts]);
|
|
121
|
+
if (contextEntries.length) {
|
|
122
|
+
bundle.contexts = Object.fromEntries(contextEntries);
|
|
123
|
+
}
|
|
119
124
|
await writeFile(
|
|
120
125
|
join(cloneDir, home.path),
|
|
121
126
|
JSON.stringify(bundle, null, 2) + "\n",
|
|
@@ -126,12 +131,24 @@ async function homePushCommand() {
|
|
|
126
131
|
await gitAddAll(cloneDir);
|
|
127
132
|
const skillCount = allSkills.length;
|
|
128
133
|
const authoredNote = authored.length ? ` (${authored.length} authored)` : "";
|
|
129
|
-
|
|
130
|
-
|
|
134
|
+
let pushed = false;
|
|
135
|
+
try {
|
|
136
|
+
await gitCommit(cloneDir, `chore: update skills via augy \u2014 ${skillCount} skill(s)${authoredNote}`);
|
|
137
|
+
await gitPush(cloneDir);
|
|
138
|
+
pushed = true;
|
|
139
|
+
s2.stop(`${chalk.green("\u2713")} Pushed`);
|
|
140
|
+
} catch (err) {
|
|
141
|
+
const msg = String(err);
|
|
142
|
+
if (msg.includes("nothing to commit") || msg.includes("nothing added to commit")) {
|
|
143
|
+
s2.stop(chalk.dim("Nothing changed \u2014 home repo is already up to date"));
|
|
144
|
+
} else {
|
|
145
|
+
s2.stop(chalk.red("\u2717 Push failed"));
|
|
146
|
+
throw err;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
131
149
|
outro(
|
|
132
|
-
`${chalk.bold(String(skillCount))} skill(s) saved to ${chalk.cyan(home.repo)}
|
|
133
|
-
` +
|
|
134
|
-
`) : "") + chalk.dim(` Run \`augy home pull\` on a new machine to restore.`)
|
|
150
|
+
pushed ? `${chalk.bold(String(skillCount))} skill(s) saved to ${chalk.cyan(home.repo)}
|
|
151
|
+
` + chalk.dim(` Run \`augy home pull\` on a new machine to restore.`) : chalk.dim("Home repo is up to date \u2014 no changes to push.")
|
|
135
152
|
);
|
|
136
153
|
}
|
|
137
154
|
async function homePullCommand(opts = {}) {
|
|
@@ -155,10 +172,12 @@ async function homePullCommand(opts = {}) {
|
|
|
155
172
|
if (e.isDirectory()) available.push({ name: e.name, source: "", isAuthored: true });
|
|
156
173
|
}
|
|
157
174
|
}
|
|
175
|
+
let bundleContexts = {};
|
|
158
176
|
const manifestPath = join(cloneDir, home.path);
|
|
159
177
|
if (existsSync(manifestPath)) {
|
|
160
178
|
const { readFile } = await import("fs/promises");
|
|
161
179
|
const bundle = JSON.parse(await readFile(manifestPath, "utf8"));
|
|
180
|
+
bundleContexts = bundle.contexts ?? {};
|
|
162
181
|
for (const [name, source] of Object.entries(bundle.skills)) {
|
|
163
182
|
if (source && !available.find((s2) => s2.name === name)) {
|
|
164
183
|
available.push({ name, source, isAuthored: false });
|
|
@@ -170,12 +189,12 @@ async function homePullCommand(opts = {}) {
|
|
|
170
189
|
return;
|
|
171
190
|
}
|
|
172
191
|
const currentRegistry = await readRegistry();
|
|
192
|
+
const effectiveContext = opts.context ?? getMachineContext(currentRegistry);
|
|
173
193
|
const selected = await filterableMultiselect({
|
|
174
|
-
message: `Select skills to install ${chalk.dim(`(${available.length} available)`)}
|
|
194
|
+
message: `Select skills to install ${chalk.dim(`(${available.length} available)`)}` + (effectiveContext ? chalk.dim(` [context: ${effectiveContext}]`) : ""),
|
|
175
195
|
options: available.map((sk) => {
|
|
176
|
-
const
|
|
177
|
-
const
|
|
178
|
-
const matches = skillMatchesContext(contexts, opts.context);
|
|
196
|
+
const contexts = bundleContexts[sk.name] ?? currentRegistry.skills[sk.name]?.contexts ?? [];
|
|
197
|
+
const matches = skillMatchesContext(contexts, effectiveContext);
|
|
179
198
|
const ctxHint = contexts.length ? chalk.dim(contexts.join(", ")) : "";
|
|
180
199
|
const srcHint = sk.isAuthored ? chalk.dim("authored") : chalk.dim(sk.source);
|
|
181
200
|
return {
|
|
@@ -233,6 +252,7 @@ async function homePullCommand(opts = {}) {
|
|
|
233
252
|
agentIds: targetAgents.map((a) => a.id),
|
|
234
253
|
agentPaths
|
|
235
254
|
});
|
|
255
|
+
if (bundleContexts[sk.name]) record.contexts = bundleContexts[sk.name];
|
|
236
256
|
upsertSkill(registry, record);
|
|
237
257
|
}
|
|
238
258
|
if (authoredToInstall.length) await writeRegistry(registry);
|
|
@@ -246,7 +266,7 @@ async function homePullCommand(opts = {}) {
|
|
|
246
266
|
for (const sk of externalToInstall) filteredBundle.skills[sk.name] = sk.source;
|
|
247
267
|
const tmpManifest = join(td(), `augy-home-pull-manifest-${Date.now()}.json`);
|
|
248
268
|
await wf(tmpManifest, JSON.stringify(filteredBundle, null, 2) + "\n", "utf8");
|
|
249
|
-
const { syncCommand } = await import("./sync-
|
|
269
|
+
const { syncCommand } = await import("./sync-I3FTSC3I.js");
|
|
250
270
|
await syncCommand(tmpManifest, { ...opts, agent: targetAgents.map((a) => a.id) });
|
|
251
271
|
}
|
|
252
272
|
}
|
package/dist/index.js
CHANGED
|
@@ -10,66 +10,66 @@ var pkg = JSON.parse(readFileSync(join(__dirname, "..", "package.json"), "utf8")
|
|
|
10
10
|
var program = new Command();
|
|
11
11
|
program.name("augy").description("Homebrew for AI agent skills \u2014 install, version, update, rollback").version(pkg.version);
|
|
12
12
|
program.command("install [url]").description("Install skills from a GitHub URL or owner/repo[/path]").option("-a, --agent <agents...>", "Target agent(s): opencode, claude, codex").action(async (url, opts) => {
|
|
13
|
-
const { installCommand } = await import("./install-
|
|
13
|
+
const { installCommand } = await import("./install-WLEVFJFD.js");
|
|
14
14
|
await installCommand(url, opts ?? {});
|
|
15
15
|
});
|
|
16
16
|
program.command("update [skill]").description("Check for upstream changes and upgrade installed skills").action(async (skill) => {
|
|
17
|
-
const { updateCommand } = await import("./update-
|
|
17
|
+
const { updateCommand } = await import("./update-XHOICFKF.js");
|
|
18
18
|
await updateCommand(skill);
|
|
19
19
|
});
|
|
20
20
|
program.command("list").description("Show all installed skills with version + agent info").option("--json", "Output raw JSON registry").action(async (opts) => {
|
|
21
|
-
const { listCommand } = await import("./list-
|
|
21
|
+
const { listCommand } = await import("./list-MJUAPNMU.js");
|
|
22
22
|
await listCommand(opts ?? {});
|
|
23
23
|
});
|
|
24
24
|
program.command("diff <skill> [sha1] [sha2]").description(
|
|
25
25
|
"Browse file-level diffs for a skill\n augy diff <skill> installed \u2194 upstream HEAD\n augy diff <skill> <sha> installed \u2194 specific SHA (archive or GitHub)\n augy diff <skill> <sha1> <sha2> two local archives side-by-side"
|
|
26
26
|
).action(async (skill, sha1, sha2) => {
|
|
27
|
-
const { diffCommand } = await import("./diff-
|
|
27
|
+
const { diffCommand } = await import("./diff-YDRQ43TJ.js");
|
|
28
28
|
await diffCommand(skill, sha1, sha2);
|
|
29
29
|
});
|
|
30
30
|
program.command("bundle").description("Write an augy.json manifest from installed skills for team sharing").option("-o, --output <path>", "Output path (default: ./augy.json)").option("--include-untracked", "Include skills without a known source").action(async (opts) => {
|
|
31
|
-
const { bundleCommand } = await import("./bundle-
|
|
31
|
+
const { bundleCommand } = await import("./bundle-4D3RXVJZ.js");
|
|
32
32
|
await bundleCommand(opts);
|
|
33
33
|
});
|
|
34
34
|
program.command("sync [path]").description("Install/update skills from an augy.json manifest (default: ./augy.json)").option("--dry-run", "Preview changes without applying them").option("-a, --agent <agents...>", "Target agent(s) (default: all detected)").action(async (path, opts) => {
|
|
35
|
-
const { syncCommand } = await import("./sync-
|
|
35
|
+
const { syncCommand } = await import("./sync-I3FTSC3I.js");
|
|
36
36
|
await syncCommand(path, opts ?? {});
|
|
37
37
|
});
|
|
38
38
|
program.command("scan").description("Find skills installed outside augy and optionally import them into the registry").action(async () => {
|
|
39
|
-
const { scanCommand } = await import("./scan-
|
|
39
|
+
const { scanCommand } = await import("./scan-JJIQ4BM7.js");
|
|
40
40
|
await scanCommand();
|
|
41
41
|
});
|
|
42
42
|
program.command("info <skill>").description("Show full metadata, version history, and description for an installed skill").action(async (skill) => {
|
|
43
|
-
const { infoCommand } = await import("./info-
|
|
43
|
+
const { infoCommand } = await import("./info-VIYGVJD6.js");
|
|
44
44
|
await infoCommand(skill);
|
|
45
45
|
});
|
|
46
46
|
program.command("search [query]").description("Search all taps for available skills (optionally filter by name)").action(async (query) => {
|
|
47
|
-
const { searchCommand } = await import("./search-
|
|
47
|
+
const { searchCommand } = await import("./search-AO7VHE5K.js");
|
|
48
48
|
await searchCommand(query);
|
|
49
49
|
});
|
|
50
50
|
var tap = program.command("tap").description("Manage trusted repos (taps) for skill name resolution");
|
|
51
51
|
tap.command("add <repo>").description("Register a tap e.g. augy tap add owner/repo").option("--path <skills-dir>", "Subdirectory where skills live (default: skills)").option("--description <text>", "Optional description").action(async (repo, opts) => {
|
|
52
|
-
const { tapAddCommand } = await import("./tap-
|
|
52
|
+
const { tapAddCommand } = await import("./tap-3G3U5UXL.js");
|
|
53
53
|
await tapAddCommand(repo, opts);
|
|
54
54
|
});
|
|
55
55
|
tap.command("remove <repo>").description("Unregister a tap").action(async (repo) => {
|
|
56
|
-
const { tapRemoveCommand } = await import("./tap-
|
|
56
|
+
const { tapRemoveCommand } = await import("./tap-3G3U5UXL.js");
|
|
57
57
|
await tapRemoveCommand(repo);
|
|
58
58
|
});
|
|
59
59
|
tap.command("list").description("List all registered taps").action(async () => {
|
|
60
|
-
const { tapListCommand } = await import("./tap-
|
|
60
|
+
const { tapListCommand } = await import("./tap-3G3U5UXL.js");
|
|
61
61
|
await tapListCommand();
|
|
62
62
|
});
|
|
63
63
|
program.command("set-source <skill> <url>").description("Attach a GitHub source URL to a skill imported without one").action(async (skill, url) => {
|
|
64
|
-
const { setSourceCommand } = await import("./set-source-
|
|
64
|
+
const { setSourceCommand } = await import("./set-source-CGLGCKOD.js");
|
|
65
65
|
await setSourceCommand(skill, url);
|
|
66
66
|
});
|
|
67
67
|
program.command("uninstall <skill>").description("Remove a skill from all agent paths and the registry").action(async (skill) => {
|
|
68
|
-
const { uninstallCommand } = await import("./uninstall-
|
|
68
|
+
const { uninstallCommand } = await import("./uninstall-6R7A5HOZ.js");
|
|
69
69
|
await uninstallCommand(skill);
|
|
70
70
|
});
|
|
71
71
|
program.command("rollback <skill> [sha]").description("Restore a skill to a previous archived version").action(async (skill, sha) => {
|
|
72
|
-
const { rollbackCommand } = await import("./rollback-
|
|
72
|
+
const { rollbackCommand } = await import("./rollback-I5FAGN6J.js");
|
|
73
73
|
await rollbackCommand(skill, sha);
|
|
74
74
|
});
|
|
75
75
|
program.command("pin <skill>").description("Pin a skill so it is skipped during `augy update`").action(async (skill) => {
|
|
@@ -78,53 +78,66 @@ program.command("pin <skill>").description("Pin a skill so it is skipped during
|
|
|
78
78
|
program.command("unpin <skill>").description("Allow a pinned skill to receive updates again").action(async (skill) => {
|
|
79
79
|
await setPinned(skill, false);
|
|
80
80
|
});
|
|
81
|
+
var ctx = program.command("context").description("Set or show this machine's context (work / personal / custom)");
|
|
82
|
+
ctx.command("set <context>").description("Mark this machine's context e.g. augy context set work").action(async (context) => {
|
|
83
|
+
const { contextSetCommand } = await import("./context-2UJB5RLD.js");
|
|
84
|
+
await contextSetCommand(context);
|
|
85
|
+
});
|
|
86
|
+
ctx.command("show").description("Show the current machine context").action(async () => {
|
|
87
|
+
const { contextShowCommand } = await import("./context-2UJB5RLD.js");
|
|
88
|
+
await contextShowCommand();
|
|
89
|
+
});
|
|
90
|
+
ctx.command("clear").description("Remove the machine context").action(async () => {
|
|
91
|
+
const { contextSetCommand } = await import("./context-2UJB5RLD.js");
|
|
92
|
+
await contextSetCommand(void 0);
|
|
93
|
+
});
|
|
81
94
|
var tag = program.command("tag").description("Manage skill context tags (personal / work / universal / custom)");
|
|
82
95
|
tag.command("set <skill> [contexts...]").description("Set context tags on a skill e.g. augy tag set tdd work universal").action(async (skill, contexts) => {
|
|
83
|
-
const { tagSetCommand } = await import("./tag-
|
|
96
|
+
const { tagSetCommand } = await import("./tag-4FCN7T62.js");
|
|
84
97
|
await tagSetCommand(skill, contexts ?? []);
|
|
85
98
|
});
|
|
86
99
|
tag.command("show <skill>").description("Show current context tags for a skill").action(async (skill) => {
|
|
87
|
-
const { tagShowCommand } = await import("./tag-
|
|
100
|
+
const { tagShowCommand } = await import("./tag-4FCN7T62.js");
|
|
88
101
|
await tagShowCommand(skill);
|
|
89
102
|
});
|
|
90
103
|
tag.command("migrate").description("Interactively assign context tags to all untagged skills").action(async () => {
|
|
91
|
-
const { tagMigrateCommand } = await import("./tag-
|
|
104
|
+
const { tagMigrateCommand } = await import("./tag-4FCN7T62.js");
|
|
92
105
|
await tagMigrateCommand();
|
|
93
106
|
});
|
|
94
107
|
var author = program.command("author").description("Create and edit self-authored skills");
|
|
95
108
|
author.command("new <name>").description("Scaffold a new skill and open it in $EDITOR").option("--no-edit", "Skip opening the editor after creating").action(async (name, opts) => {
|
|
96
|
-
const { authorNewCommand } = await import("./author-
|
|
109
|
+
const { authorNewCommand } = await import("./author-MZWTET4S.js");
|
|
97
110
|
await authorNewCommand(name, { noEdit: !opts.edit });
|
|
98
111
|
});
|
|
99
112
|
author.command("edit <name>").description("Open an existing skill in $EDITOR").action(async (name) => {
|
|
100
|
-
const { authorEditCommand } = await import("./author-
|
|
113
|
+
const { authorEditCommand } = await import("./author-MZWTET4S.js");
|
|
101
114
|
await authorEditCommand(name);
|
|
102
115
|
});
|
|
103
116
|
var home = program.command("home").description("Manage a personal GitHub repo for backing up your skills manifest");
|
|
104
117
|
home.command("set <repo>").description("Set the home repo e.g. augy home set alice/my-skills").option("--path <file>", "Manifest path within the repo (default: augy.json)").option("--skills-path <dir>", "Dir for authored skills in the repo (default: skills)").action(async (repo, opts) => {
|
|
105
|
-
const { homeSetCommand } = await import("./home-
|
|
118
|
+
const { homeSetCommand } = await import("./home-3M23O6LH.js");
|
|
106
119
|
await homeSetCommand(repo, opts);
|
|
107
120
|
});
|
|
108
121
|
home.command("push").description("Push your installed skills manifest to the home repo").action(async () => {
|
|
109
|
-
const { homePushCommand } = await import("./home-
|
|
122
|
+
const { homePushCommand } = await import("./home-3M23O6LH.js");
|
|
110
123
|
await homePushCommand();
|
|
111
124
|
});
|
|
112
125
|
home.command("pull").description("Fetch the manifest from the home repo and sync skills").option("--dry-run", "Preview changes without applying them").option("-a, --agent <agents...>", "Target agent(s) (default: all detected)").option("--context <ctx>", "Pre-select only skills matching this context (e.g. work, personal)").action(async (opts) => {
|
|
113
|
-
const { homePullCommand } = await import("./home-
|
|
126
|
+
const { homePullCommand } = await import("./home-3M23O6LH.js");
|
|
114
127
|
await homePullCommand(opts);
|
|
115
128
|
});
|
|
116
129
|
home.command("show").description("Show the current home repo configuration").action(async () => {
|
|
117
|
-
const { homeShowCommand } = await import("./home-
|
|
130
|
+
const { homeShowCommand } = await import("./home-3M23O6LH.js");
|
|
118
131
|
await homeShowCommand();
|
|
119
132
|
});
|
|
120
133
|
program.action(async () => {
|
|
121
|
-
const { installCommand } = await import("./install-
|
|
134
|
+
const { installCommand } = await import("./install-WLEVFJFD.js");
|
|
122
135
|
await installCommand();
|
|
123
136
|
});
|
|
124
137
|
program.parse();
|
|
125
138
|
async function setPinned(skillName, pinned) {
|
|
126
139
|
const chalk = (await import("chalk")).default;
|
|
127
|
-
const { readRegistry, writeRegistry, getSkill } = await import("./registry-
|
|
140
|
+
const { readRegistry, writeRegistry, getSkill } = await import("./registry-RU24Z5UO.js");
|
|
128
141
|
const registry = await readRegistry();
|
|
129
142
|
const skill = getSkill(registry, skillName);
|
|
130
143
|
if (!skill) {
|
|
@@ -3,12 +3,12 @@ import {
|
|
|
3
3
|
} from "./chunk-V5GA2ZHU.js";
|
|
4
4
|
import {
|
|
5
5
|
archiveExists
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-G7WKOGAS.js";
|
|
7
7
|
import {
|
|
8
8
|
getSkill,
|
|
9
9
|
readRegistry,
|
|
10
10
|
shortSha
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-IBMRS66P.js";
|
|
12
12
|
|
|
13
13
|
// src/commands/info.ts
|
|
14
14
|
import chalk from "chalk";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
filterableMultiselect
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-XUQJ2VKV.js";
|
|
4
4
|
import {
|
|
5
5
|
resolveSkillFromTaps
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-X23LB7YS.js";
|
|
7
7
|
import {
|
|
8
8
|
AGENTS,
|
|
9
9
|
agentSkillPath,
|
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
readRegistry,
|
|
21
21
|
shortSha,
|
|
22
22
|
writeRegistry
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-IBMRS66P.js";
|
|
24
24
|
|
|
25
25
|
// src/commands/install.ts
|
|
26
26
|
import {
|
|
@@ -3,6 +3,7 @@ import {
|
|
|
3
3
|
augyHome,
|
|
4
4
|
createSkillRecord,
|
|
5
5
|
getHomeConfig,
|
|
6
|
+
getMachineContext,
|
|
6
7
|
getSkill,
|
|
7
8
|
getTap,
|
|
8
9
|
listSkills,
|
|
@@ -12,6 +13,7 @@ import {
|
|
|
12
13
|
removeSkill,
|
|
13
14
|
removeTap,
|
|
14
15
|
setHomeConfig,
|
|
16
|
+
setMachineContext,
|
|
15
17
|
shortSha,
|
|
16
18
|
skillMatchesContext,
|
|
17
19
|
tapKey,
|
|
@@ -19,12 +21,13 @@ import {
|
|
|
19
21
|
versionArchivePath,
|
|
20
22
|
versionsDir,
|
|
21
23
|
writeRegistry
|
|
22
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-IBMRS66P.js";
|
|
23
25
|
export {
|
|
24
26
|
addTap,
|
|
25
27
|
augyHome,
|
|
26
28
|
createSkillRecord,
|
|
27
29
|
getHomeConfig,
|
|
30
|
+
getMachineContext,
|
|
28
31
|
getSkill,
|
|
29
32
|
getTap,
|
|
30
33
|
listSkills,
|
|
@@ -34,6 +37,7 @@ export {
|
|
|
34
37
|
removeSkill,
|
|
35
38
|
removeTap,
|
|
36
39
|
setHomeConfig,
|
|
40
|
+
setMachineContext,
|
|
37
41
|
shortSha,
|
|
38
42
|
skillMatchesContext,
|
|
39
43
|
tapKey,
|
|
@@ -5,13 +5,13 @@ import {
|
|
|
5
5
|
import {
|
|
6
6
|
archiveExists,
|
|
7
7
|
restoreVersion
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-G7WKOGAS.js";
|
|
9
9
|
import {
|
|
10
10
|
getSkill,
|
|
11
11
|
readRegistry,
|
|
12
12
|
shortSha,
|
|
13
13
|
writeRegistry
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-IBMRS66P.js";
|
|
15
15
|
|
|
16
16
|
// src/commands/rollback.ts
|
|
17
17
|
import { cancel, intro, isCancel, outro, select, spinner } from "@clack/prompts";
|
|
@@ -74,7 +74,7 @@ The snapshot may have been pruned.`
|
|
|
74
74
|
try {
|
|
75
75
|
const currentDest = destPaths[0];
|
|
76
76
|
if (currentDest) {
|
|
77
|
-
const { archiveVersion } = await import("./versions-
|
|
77
|
+
const { archiveVersion } = await import("./versions-SSRDVQ3G.js");
|
|
78
78
|
await archiveVersion(currentDest, nameArg, skill.sha);
|
|
79
79
|
}
|
|
80
80
|
await restoreVersion(nameArg, targetSha, destPaths);
|
|
@@ -4,10 +4,10 @@ import {
|
|
|
4
4
|
} from "./chunk-KCQY4IDO.js";
|
|
5
5
|
import {
|
|
6
6
|
filterableMultiselect
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-XUQJ2VKV.js";
|
|
8
8
|
import {
|
|
9
9
|
resolveSkillFromTaps
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-X23LB7YS.js";
|
|
11
11
|
import {
|
|
12
12
|
AGENTS
|
|
13
13
|
} from "./chunk-V5GA2ZHU.js";
|
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
readRegistry,
|
|
23
23
|
shortSha,
|
|
24
24
|
writeRegistry
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-IBMRS66P.js";
|
|
26
26
|
|
|
27
27
|
// src/commands/scan.ts
|
|
28
28
|
import { readdir, readFile } from "fs/promises";
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
searchTaps
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-X23LB7YS.js";
|
|
4
4
|
import "./chunk-2E5SVRSR.js";
|
|
5
5
|
import {
|
|
6
6
|
listSkills,
|
|
7
7
|
readRegistry,
|
|
8
8
|
shortSha
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-IBMRS66P.js";
|
|
10
10
|
|
|
11
11
|
// src/commands/search.ts
|
|
12
12
|
import { spinner } from "@clack/prompts";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
parseTapArg,
|
|
3
3
|
tapSource
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-X23LB7YS.js";
|
|
5
5
|
import {
|
|
6
6
|
discoverSkills,
|
|
7
7
|
parseGitHubUrl
|
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
removeTap,
|
|
14
14
|
tapKey,
|
|
15
15
|
writeRegistry
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-IBMRS66P.js";
|
|
17
17
|
|
|
18
18
|
// src/commands/tap.ts
|
|
19
19
|
import { cancel, confirm, intro, isCancel, outro, spinner, text } from "@clack/prompts";
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
pruneVersions
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-G7WKOGAS.js";
|
|
4
4
|
import {
|
|
5
5
|
getSkill,
|
|
6
6
|
readRegistry,
|
|
7
7
|
removeSkill,
|
|
8
8
|
versionsDir,
|
|
9
9
|
writeRegistry
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-IBMRS66P.js";
|
|
11
11
|
|
|
12
12
|
// src/commands/uninstall.ts
|
|
13
13
|
import { cancel, confirm, intro, isCancel, outro, spinner } from "@clack/prompts";
|
|
@@ -9,13 +9,13 @@ import {
|
|
|
9
9
|
} from "./chunk-2E5SVRSR.js";
|
|
10
10
|
import {
|
|
11
11
|
archiveVersion
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-G7WKOGAS.js";
|
|
13
13
|
import {
|
|
14
14
|
listSkills,
|
|
15
15
|
readRegistry,
|
|
16
16
|
shortSha,
|
|
17
17
|
writeRegistry
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-IBMRS66P.js";
|
|
19
19
|
|
|
20
20
|
// src/commands/update.ts
|
|
21
21
|
import { cancel, confirm, intro, isCancel, multiselect, outro, spinner } from "@clack/prompts";
|