@claudioabierto/agentkit 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.
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/dist/index.js ADDED
@@ -0,0 +1,177 @@
1
+ #!/usr/bin/env node
2
+ import fs from "node:fs/promises";
3
+ import path from "node:path";
4
+ import { Command } from "commander";
5
+ import { collectCapabilities, collectPackages, findRecipeByQuery, loadAllRecipes, searchRecipes } from "@claudioabierto/agentkit-core";
6
+ function asJsonEnabled(localFlag, globalFlag) {
7
+ return Boolean(localFlag || globalFlag);
8
+ }
9
+ function printOutput(value, asJson) {
10
+ if (asJson) {
11
+ console.log(JSON.stringify(value, null, 2));
12
+ return;
13
+ }
14
+ if (typeof value === "string") {
15
+ console.log(value);
16
+ return;
17
+ }
18
+ console.log(JSON.stringify(value, null, 2));
19
+ }
20
+ function toSummary(item) {
21
+ return {
22
+ id: item.recipe.id,
23
+ name: item.recipe.name,
24
+ description: item.recipe.description,
25
+ aliases: item.recipe.aliases,
26
+ capabilities: item.recipe.capabilities,
27
+ package: item.recipe.package,
28
+ sourceId: item.sourceId
29
+ };
30
+ }
31
+ function printRecipeSummaries(recipes) {
32
+ for (const item of recipes) {
33
+ console.log(`${item.id} - ${item.name}`);
34
+ }
35
+ }
36
+ async function recordInstalledRecipe(id) {
37
+ const outputDir = path.resolve(process.cwd(), ".agentkit");
38
+ const outputPath = path.join(outputDir, "installed-recipes.json");
39
+ await fs.mkdir(outputDir, { recursive: true });
40
+ let current = { installed: [] };
41
+ try {
42
+ const raw = await fs.readFile(outputPath, "utf-8");
43
+ current = JSON.parse(raw);
44
+ }
45
+ catch (error) {
46
+ if (error.code !== "ENOENT") {
47
+ throw error;
48
+ }
49
+ }
50
+ current.installed.push({
51
+ id,
52
+ addedAt: new Date().toISOString()
53
+ });
54
+ // TODO: Replace this append-only tracking with lockfile + idempotency checks.
55
+ await fs.writeFile(outputPath, `${JSON.stringify(current, null, 2)}\n`, "utf-8");
56
+ }
57
+ async function withRecipes(handler) {
58
+ const recipes = await loadAllRecipes(process.cwd());
59
+ return handler(recipes);
60
+ }
61
+ const program = new Command();
62
+ program
63
+ .name("agentkit")
64
+ .description("AgentKit CLI")
65
+ .option("--json", "Output JSON");
66
+ program
67
+ .command("search")
68
+ .argument("[query]", "text query")
69
+ .option("--json", "Output JSON")
70
+ .action(async (query, options) => {
71
+ await withRecipes(async (recipes) => {
72
+ const result = searchRecipes(recipes, query ?? "").map(toSummary);
73
+ if (asJsonEnabled(options.json, program.opts().json)) {
74
+ printOutput(result, true);
75
+ return;
76
+ }
77
+ if (result.length === 0) {
78
+ printOutput("No recipes found.", false);
79
+ return;
80
+ }
81
+ printRecipeSummaries(result);
82
+ });
83
+ });
84
+ program
85
+ .command("inspect")
86
+ .argument("<idOrAlias>", "recipe id or alias")
87
+ .option("--json", "Output JSON")
88
+ .action(async (idOrAlias, options) => {
89
+ await withRecipes(async (recipes) => {
90
+ const found = findRecipeByQuery(recipes, idOrAlias);
91
+ if (!found) {
92
+ throw new Error(`Recipe not found: ${idOrAlias}`);
93
+ }
94
+ const payload = {
95
+ ...toSummary(found),
96
+ steps: found.recipe.steps,
97
+ reference: found.reference
98
+ };
99
+ printOutput(payload, asJsonEnabled(options.json, program.opts().json));
100
+ });
101
+ });
102
+ program
103
+ .command("add")
104
+ .argument("<idOrAlias>", "recipe id or alias")
105
+ .option("--dry-run", "Show what would be added without writing files")
106
+ .option("--json", "Output JSON")
107
+ .action(async (idOrAlias, options) => {
108
+ await withRecipes(async (recipes) => {
109
+ const found = findRecipeByQuery(recipes, idOrAlias);
110
+ if (!found) {
111
+ throw new Error(`Recipe not found: ${idOrAlias}`);
112
+ }
113
+ const plan = {
114
+ recipe: toSummary(found),
115
+ dryRun: Boolean(options.dryRun),
116
+ steps: found.recipe.steps.map((step, index) => ({
117
+ order: index + 1,
118
+ ...step
119
+ }))
120
+ };
121
+ if (!options.dryRun) {
122
+ await recordInstalledRecipe(found.recipe.id);
123
+ }
124
+ // TODO: Execute step runners for install/run/copy types in v2.
125
+ printOutput(plan, asJsonEnabled(options.json, program.opts().json) || !options.dryRun);
126
+ });
127
+ });
128
+ const list = program.command("list").description("List registry metadata");
129
+ list
130
+ .command("recipes")
131
+ .option("--json", "Output JSON")
132
+ .action(async (options) => {
133
+ await withRecipes(async (recipes) => {
134
+ const summaries = recipes.map(toSummary);
135
+ if (asJsonEnabled(options.json, program.opts().json)) {
136
+ printOutput(summaries, true);
137
+ return;
138
+ }
139
+ printRecipeSummaries(summaries);
140
+ });
141
+ });
142
+ list
143
+ .command("packages")
144
+ .option("--json", "Output JSON")
145
+ .action(async (options) => {
146
+ await withRecipes(async (recipes) => {
147
+ const packages = collectPackages(recipes);
148
+ if (asJsonEnabled(options.json, program.opts().json)) {
149
+ printOutput(packages, true);
150
+ return;
151
+ }
152
+ console.log(packages.join("\n"));
153
+ });
154
+ });
155
+ list
156
+ .command("capabilities")
157
+ .option("--json", "Output JSON")
158
+ .action(async (options) => {
159
+ await withRecipes(async (recipes) => {
160
+ const capabilities = collectCapabilities(recipes);
161
+ if (asJsonEnabled(options.json, program.opts().json)) {
162
+ printOutput(capabilities, true);
163
+ return;
164
+ }
165
+ console.log(capabilities.join("\n"));
166
+ });
167
+ });
168
+ (async () => {
169
+ try {
170
+ await program.parseAsync(process.argv);
171
+ }
172
+ catch (error) {
173
+ console.error(error.message);
174
+ process.exitCode = 1;
175
+ }
176
+ })();
177
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,26 @@
1
+ {
2
+ "name": "@claudioabierto/agentkit",
3
+ "version": "0.1.1",
4
+ "type": "module",
5
+ "main": "./dist/index.js",
6
+ "types": "./dist/index.d.ts",
7
+ "bin": {
8
+ "agentkit": "./dist/index.js"
9
+ },
10
+ "files": [
11
+ "dist"
12
+ ],
13
+ "publishConfig": {
14
+ "access": "public"
15
+ },
16
+ "scripts": {
17
+ "build": "tsc -p tsconfig.json",
18
+ "typecheck": "tsc -p tsconfig.json --noEmit",
19
+ "clean": "rm -rf dist",
20
+ "agentkit": "node ./dist/index.js"
21
+ },
22
+ "dependencies": {
23
+ "@claudioabierto/agentkit-core": "workspace:*",
24
+ "commander": "^14.0.1"
25
+ }
26
+ }