@x12i/pagenti-cli 0.1.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.
Files changed (41) hide show
  1. package/dist/commands/config.d.ts +3 -0
  2. package/dist/commands/config.d.ts.map +1 -0
  3. package/dist/commands/config.js +56 -0
  4. package/dist/commands/config.js.map +1 -0
  5. package/dist/commands/install.d.ts +3 -0
  6. package/dist/commands/install.d.ts.map +1 -0
  7. package/dist/commands/install.js +53 -0
  8. package/dist/commands/install.js.map +1 -0
  9. package/dist/commands/ls.d.ts +3 -0
  10. package/dist/commands/ls.d.ts.map +1 -0
  11. package/dist/commands/ls.js +31 -0
  12. package/dist/commands/ls.js.map +1 -0
  13. package/dist/commands/query.d.ts +3 -0
  14. package/dist/commands/query.d.ts.map +1 -0
  15. package/dist/commands/query.js +27 -0
  16. package/dist/commands/query.js.map +1 -0
  17. package/dist/commands/search.d.ts +3 -0
  18. package/dist/commands/search.d.ts.map +1 -0
  19. package/dist/commands/search.js +27 -0
  20. package/dist/commands/search.js.map +1 -0
  21. package/dist/commands/uninstall.d.ts +3 -0
  22. package/dist/commands/uninstall.d.ts.map +1 -0
  23. package/dist/commands/uninstall.js +36 -0
  24. package/dist/commands/uninstall.js.map +1 -0
  25. package/dist/commands/view.d.ts +3 -0
  26. package/dist/commands/view.d.ts.map +1 -0
  27. package/dist/commands/view.js +44 -0
  28. package/dist/commands/view.js.map +1 -0
  29. package/dist/index.d.ts +3 -0
  30. package/dist/index.d.ts.map +1 -0
  31. package/dist/index.js +110 -0
  32. package/dist/index.js.map +1 -0
  33. package/dist/load-env.d.ts +6 -0
  34. package/dist/load-env.d.ts.map +1 -0
  35. package/dist/load-env.js +30 -0
  36. package/dist/load-env.js.map +1 -0
  37. package/dist/utils.d.ts +17 -0
  38. package/dist/utils.d.ts.map +1 -0
  39. package/dist/utils.js +28 -0
  40. package/dist/utils.js.map +1 -0
  41. package/package.json +46 -0
@@ -0,0 +1,3 @@
1
+ import type { Command } from "commander";
2
+ export declare function registerConfigCommand(program: Command): void;
3
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAazC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuD5D"}
@@ -0,0 +1,56 @@
1
+ import { deletePagentircValue, getPagentircValue, readPagentircFile, setPagentircValue, } from "@x12i/pagenti-core";
2
+ import { printJson } from "../utils.js";
3
+ export function registerConfigCommand(program) {
4
+ const config = program
5
+ .command("config")
6
+ .description("Manage .pagentirc install target settings");
7
+ config
8
+ .command("list")
9
+ .description("List .pagentirc settings")
10
+ .alias("ls")
11
+ .option("--json", "Print machine-readable output")
12
+ .action(async (opts) => {
13
+ const values = await readPagentircFile(process.cwd());
14
+ if (opts.json) {
15
+ printJson(values);
16
+ return;
17
+ }
18
+ for (const [key, value] of Object.entries(values)) {
19
+ console.log(`${key}=${value}`);
20
+ }
21
+ });
22
+ config
23
+ .command("get")
24
+ .description("Get a .pagentirc key")
25
+ .argument("<key>", "Setting key e.g. app, agent, domain, store")
26
+ .action(async (key) => {
27
+ const value = await getPagentircValue(key);
28
+ if (value != null)
29
+ console.log(value);
30
+ });
31
+ config
32
+ .command("set")
33
+ .description("Set a .pagentirc key")
34
+ .argument("<key>", "Setting key")
35
+ .argument("<value>", "Setting value")
36
+ .action(async (key, value) => {
37
+ await setPagentircValue(key, value);
38
+ });
39
+ config
40
+ .command("delete")
41
+ .description("Delete a .pagentirc key")
42
+ .argument("<key>", "Setting key")
43
+ .action(async (key) => {
44
+ await deletePagentircValue(key);
45
+ });
46
+ program
47
+ .command("get")
48
+ .description("Get a .pagentirc key (alias of config get)")
49
+ .argument("<key>", "Setting key")
50
+ .action(async (key) => {
51
+ const value = await getPagentircValue(key);
52
+ if (value != null)
53
+ console.log(value);
54
+ });
55
+ }
56
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AACA,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAMxC,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,MAAM,MAAM,GAAG,OAAO;SACnB,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,2CAA2C,CAAC,CAAC;IAE5D,MAAM;SACH,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,0BAA0B,CAAC;SACvC,KAAK,CAAC,IAAI,CAAC;SACX,MAAM,CAAC,QAAQ,EAAE,+BAA+B,CAAC;SACjD,MAAM,CAAC,KAAK,EAAE,IAAuB,EAAE,EAAE;QACxC,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACtD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,SAAS,CAAC,MAAM,CAAC,CAAC;YAClB,OAAO;QACT,CAAC;QACD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAClD,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC;QACjC,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,MAAM;SACH,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,sBAAsB,CAAC;SACnC,QAAQ,CAAC,OAAO,EAAE,4CAA4C,CAAC;SAC/D,MAAM,CAAC,KAAK,EAAE,GAAW,EAAE,EAAE;QAC5B,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAC3C,IAAI,KAAK,IAAI,IAAI;YAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEL,MAAM;SACH,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,sBAAsB,CAAC;SACnC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;SAChC,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;SACpC,MAAM,CAAC,KAAK,EAAE,GAAW,EAAE,KAAa,EAAE,EAAE;QAC3C,MAAM,iBAAiB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEL,MAAM;SACH,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,yBAAyB,CAAC;SACtC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;SAChC,MAAM,CAAC,KAAK,EAAE,GAAW,EAAE,EAAE;QAC5B,MAAM,oBAAoB,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,4CAA4C,CAAC;SACzD,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;SAChC,MAAM,CAAC,KAAK,EAAE,GAAW,EAAE,EAAE;QAC5B,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAC3C,IAAI,KAAK,IAAI,IAAI;YAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from "commander";
2
+ export declare function registerInstallCommand(program: Command): void;
3
+ //# sourceMappingURL=install.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuBzC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0D7D"}
@@ -0,0 +1,53 @@
1
+ import { createPagentiCatalox, installDependencies, } from "@x12i/pagenti-catalox";
2
+ import { assertInstallTarget, collect, printHuman, printJson, resolveInstallTarget, } from "../utils.js";
3
+ export function registerInstallCommand(program) {
4
+ program
5
+ .command("install")
6
+ .description("Install dependencies from pagenti.json, or add and install package(s)")
7
+ .alias("add")
8
+ .alias("i")
9
+ .argument("[package-spec...]", "Optional package specs e.g. @scope/pkg@^1.0.0")
10
+ .option("--version <version>", "Pin version when adding a single package")
11
+ .option("--save", "Save dependency to pagenti.json", true)
12
+ .option("--no-save", "Do not write pagenti.json when adding packages")
13
+ .option("--app <appId>", "Target app (overrides .pagentirc)")
14
+ .option("--agent <agentId>", "Target agent (overrides .pagentirc)")
15
+ .option("--domain <domain>", "Target domain (repeatable, overrides .pagentirc)", collect, [])
16
+ .option("--store <storeId>", "Target store (overrides .pagentirc)")
17
+ .option("--json", "Print machine-readable output")
18
+ .action(async (packageSpecs, opts) => {
19
+ const cwd = process.cwd();
20
+ const { target } = await resolveInstallTarget(cwd, opts);
21
+ assertInstallTarget(target);
22
+ const specs = packageSpecs.length > 0
23
+ ? normalizePackageSpecs(packageSpecs, opts.version)
24
+ : undefined;
25
+ const { catalox, context } = createPagentiCatalox({ superAdmin: true });
26
+ const result = await installDependencies(catalox, context, {
27
+ packageDir: cwd,
28
+ target,
29
+ packageSpecs: specs,
30
+ save: specs ? opts.save : false,
31
+ installedBy: process.env.USER,
32
+ });
33
+ if (opts.json) {
34
+ printJson(result);
35
+ return;
36
+ }
37
+ if (result.installed.length === 0) {
38
+ printHuman(["up to date"]);
39
+ return;
40
+ }
41
+ printHuman(result.installed.map((entry) => `+ ${entry.packageName}@${entry.installedVersion}`));
42
+ });
43
+ }
44
+ function normalizePackageSpecs(packageSpecs, version) {
45
+ if (packageSpecs.length === 1 && version) {
46
+ const spec = packageSpecs[0];
47
+ if (!spec.includes("@", 1)) {
48
+ return [`${spec}@${version}`];
49
+ }
50
+ }
51
+ return packageSpecs;
52
+ }
53
+ //# sourceMappingURL=install.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from "commander";
2
+ export declare function registerLsCommand(program: Command): void;
3
+ //# sourceMappingURL=ls.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ls.d.ts","sourceRoot":"","sources":["../../src/commands/ls.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoBzC,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA+BxD"}
@@ -0,0 +1,31 @@
1
+ import { createPagentiCatalox, findInstalledPackageNames, } from "@x12i/pagenti-catalox";
2
+ import { assertInstallTarget, printHuman, printJson, resolveInstallTarget, } from "../utils.js";
3
+ export function registerLsCommand(program) {
4
+ program
5
+ .command("ls")
6
+ .description("List packages installed on the configured target")
7
+ .alias("list")
8
+ .alias("ll")
9
+ .option("--app <appId>", "Target app (overrides .pagentirc)")
10
+ .option("--agent <agentId>", "Target agent (overrides .pagentirc)")
11
+ .option("--domain <domain>", "Target domain (overrides .pagentirc)")
12
+ .option("--store <storeId>", "Target store (overrides .pagentirc)")
13
+ .option("--json", "Print machine-readable output")
14
+ .action(async (opts) => {
15
+ const cwd = process.cwd();
16
+ const { target } = await resolveInstallTarget(cwd, opts);
17
+ assertInstallTarget(target);
18
+ const { catalox, context } = createPagentiCatalox({ superAdmin: true });
19
+ const packages = await findInstalledPackageNames(catalox, context, target);
20
+ if (opts.json) {
21
+ printJson({ target, packages });
22
+ return;
23
+ }
24
+ if (packages.length === 0) {
25
+ printHuman(["(empty)"]);
26
+ return;
27
+ }
28
+ printHuman(packages);
29
+ });
30
+ }
31
+ //# sourceMappingURL=ls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ls.js","sourceRoot":"","sources":["../../src/commands/ls.ts"],"names":[],"mappings":"AACA,OAAO,EACL,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,mBAAmB,EACnB,UAAU,EACV,SAAS,EACT,oBAAoB,GACrB,MAAM,aAAa,CAAC;AAUrB,MAAM,UAAU,iBAAiB,CAAC,OAAgB;IAChD,OAAO;SACJ,OAAO,CAAC,IAAI,CAAC;SACb,WAAW,CAAC,kDAAkD,CAAC;SAC/D,KAAK,CAAC,MAAM,CAAC;SACb,KAAK,CAAC,IAAI,CAAC;SACX,MAAM,CAAC,eAAe,EAAE,mCAAmC,CAAC;SAC5D,MAAM,CAAC,mBAAmB,EAAE,qCAAqC,CAAC;SAClE,MAAM,CAAC,mBAAmB,EAAE,sCAAsC,CAAC;SACnE,MAAM,CAAC,mBAAmB,EAAE,qCAAqC,CAAC;SAClE,MAAM,CAAC,QAAQ,EAAE,+BAA+B,CAAC;SACjD,MAAM,CAAC,KAAK,EAAE,IAAsB,EAAE,EAAE;QACvC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC1B,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,oBAAoB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACzD,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAE5B,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,oBAAoB,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;QACxE,MAAM,QAAQ,GAAG,MAAM,yBAAyB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAE3E,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;YAChC,OAAO;QACT,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;YACxB,OAAO;QACT,CAAC;QAED,UAAU,CAAC,QAAQ,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from "commander";
2
+ export declare function registerQueryCommand(program: Command): void;
3
+ //# sourceMappingURL=query.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/commands/query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiBzC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2B3D"}
@@ -0,0 +1,27 @@
1
+ import { createPagentiCatalox, findExecution, findKnowledge, } from "@x12i/pagenti-catalox";
2
+ import { printJson } from "../utils.js";
3
+ export function registerQueryCommand(program) {
4
+ program
5
+ .command("query")
6
+ .description("Query knowledge or execution (instructions, prompts, rules) by smart properties")
7
+ .requiredOption("--type <type>", "knowledge | execution")
8
+ .option("--skill-code <code>", "SME skill code filter")
9
+ .option("--role <role>", "Role filter")
10
+ .option("--domain <domain>", "Domain filter")
11
+ .option("--use-case <useCase>", "Use case filter")
12
+ .option("--json", "Print machine-readable output", true)
13
+ .action(async (opts) => {
14
+ const { catalox, context } = createPagentiCatalox({ superAdmin: true });
15
+ const query = {
16
+ skillCode: opts.skillCode,
17
+ role: opts.role,
18
+ domain: opts.domain,
19
+ useCase: opts.useCase,
20
+ };
21
+ const items = opts.type === "execution"
22
+ ? await findExecution(catalox, context, query)
23
+ : await findKnowledge(catalox, context, query);
24
+ printJson(items);
25
+ });
26
+ }
27
+ //# sourceMappingURL=query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/commands/query.ts"],"names":[],"mappings":"AACA,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,aAAa,GACd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAWxC,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACnD,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CACV,iFAAiF,CAClF;SACA,cAAc,CAAC,eAAe,EAAE,uBAAuB,CAAC;SACxD,MAAM,CAAC,qBAAqB,EAAE,uBAAuB,CAAC;SACtD,MAAM,CAAC,eAAe,EAAE,aAAa,CAAC;SACtC,MAAM,CAAC,mBAAmB,EAAE,eAAe,CAAC;SAC5C,MAAM,CAAC,sBAAsB,EAAE,iBAAiB,CAAC;SACjD,MAAM,CAAC,QAAQ,EAAE,+BAA+B,EAAE,IAAI,CAAC;SACvD,MAAM,CAAC,KAAK,EAAE,IAAyB,EAAE,EAAE;QAC1C,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,oBAAoB,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;QACxE,MAAM,KAAK,GAAG;YACZ,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC;QACF,MAAM,KAAK,GACT,IAAI,CAAC,IAAI,KAAK,WAAW;YACvB,CAAC,CAAC,MAAM,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC;YAC9C,CAAC,CAAC,MAAM,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QAEnD,SAAS,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from "commander";
2
+ export declare function registerSearchCommand(program: Command): void;
3
+ //# sourceMappingURL=search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/commands/search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA4B5D"}
@@ -0,0 +1,27 @@
1
+ import { createPagentiCatalox, searchPackages } from "@x12i/pagenti-catalox";
2
+ import { printHuman, printJson } from "../utils.js";
3
+ export function registerSearchCommand(program) {
4
+ program
5
+ .command("search")
6
+ .description("Search the Pagenti package registry")
7
+ .argument("[terms...]", "Search terms matched against name, title, description, keywords")
8
+ .option("--json", "Print machine-readable output")
9
+ .action(async (terms, opts) => {
10
+ const { catalox, context } = createPagentiCatalox({ superAdmin: true });
11
+ const results = await searchPackages(catalox, context, terms);
12
+ if (opts.json) {
13
+ printJson(results);
14
+ return;
15
+ }
16
+ if (results.length === 0) {
17
+ printHuman(["No matches found"]);
18
+ return;
19
+ }
20
+ printHuman(results.map((pkg) => {
21
+ const version = pkg.latestVersion ? `@${pkg.latestVersion}` : "";
22
+ const title = pkg.title ? ` — ${pkg.title}` : "";
23
+ return `${pkg.packageName}${version}${title}`;
24
+ }));
25
+ });
26
+ }
27
+ //# sourceMappingURL=search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/commands/search.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAMpD,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,qCAAqC,CAAC;SAClD,QAAQ,CAAC,YAAY,EAAE,iEAAiE,CAAC;SACzF,MAAM,CAAC,QAAQ,EAAE,+BAA+B,CAAC;SACjD,MAAM,CAAC,KAAK,EAAE,KAAe,EAAE,IAA0B,EAAE,EAAE;QAC5D,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,oBAAoB,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;QACxE,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QAE9D,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,SAAS,CAAC,OAAO,CAAC,CAAC;YACnB,OAAO;QACT,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,UAAU,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;YACjC,OAAO;QACT,CAAC;QAED,UAAU,CACR,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YAClB,MAAM,OAAO,GAAG,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjE,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjD,OAAO,GAAG,GAAG,CAAC,WAAW,GAAG,OAAO,GAAG,KAAK,EAAE,CAAC;QAChD,CAAC,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from "commander";
2
+ export declare function registerUninstallCommand(program: Command): void;
3
+ //# sourceMappingURL=uninstall.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uninstall.d.ts","sourceRoot":"","sources":["../../src/commands/uninstall.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsBzC,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAwC/D"}
@@ -0,0 +1,36 @@
1
+ import { createPagentiCatalox, uninstallDependencies, } from "@x12i/pagenti-catalox";
2
+ import { assertInstallTarget, collect, printHuman, printJson, resolveInstallTarget, } from "../utils.js";
3
+ export function registerUninstallCommand(program) {
4
+ program
5
+ .command("uninstall")
6
+ .description("Remove installed package(s) from the install target")
7
+ .alias("remove")
8
+ .alias("rm")
9
+ .alias("un")
10
+ .argument("<package-spec...>", "Package names or specs to remove")
11
+ .option("--save", "Remove dependency from pagenti.json", true)
12
+ .option("--no-save", "Do not modify pagenti.json")
13
+ .option("--app <appId>", "Target app (overrides .pagentirc)")
14
+ .option("--agent <agentId>", "Target agent (overrides .pagentirc)")
15
+ .option("--domain <domain>", "Target domain (repeatable, overrides .pagentirc)", collect, [])
16
+ .option("--store <storeId>", "Target store (overrides .pagentirc)")
17
+ .option("--json", "Print machine-readable output")
18
+ .action(async (packageSpecs, opts) => {
19
+ const cwd = process.cwd();
20
+ const { target } = await resolveInstallTarget(cwd, opts);
21
+ assertInstallTarget(target);
22
+ const { catalox, context } = createPagentiCatalox({ superAdmin: true });
23
+ const result = await uninstallDependencies(catalox, context, {
24
+ packageDir: cwd,
25
+ target,
26
+ packageSpecs,
27
+ save: opts.save,
28
+ });
29
+ if (opts.json) {
30
+ printJson(result);
31
+ return;
32
+ }
33
+ printHuman(result.removed.map((name) => `- ${name}`));
34
+ });
35
+ }
36
+ //# sourceMappingURL=uninstall.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../src/commands/uninstall.ts"],"names":[],"mappings":"AACA,OAAO,EACL,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,mBAAmB,EACnB,OAAO,EACP,UAAU,EACV,SAAS,EACT,oBAAoB,GACrB,MAAM,aAAa,CAAC;AAWrB,MAAM,UAAU,wBAAwB,CAAC,OAAgB;IACvD,OAAO;SACJ,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,qDAAqD,CAAC;SAClE,KAAK,CAAC,QAAQ,CAAC;SACf,KAAK,CAAC,IAAI,CAAC;SACX,KAAK,CAAC,IAAI,CAAC;SACX,QAAQ,CAAC,mBAAmB,EAAE,kCAAkC,CAAC;SACjE,MAAM,CAAC,QAAQ,EAAE,qCAAqC,EAAE,IAAI,CAAC;SAC7D,MAAM,CAAC,WAAW,EAAE,4BAA4B,CAAC;SACjD,MAAM,CAAC,eAAe,EAAE,mCAAmC,CAAC;SAC5D,MAAM,CAAC,mBAAmB,EAAE,qCAAqC,CAAC;SAClE,MAAM,CACL,mBAAmB,EACnB,kDAAkD,EAClD,OAAO,EACP,EAAc,CACf;SACA,MAAM,CAAC,mBAAmB,EAAE,qCAAqC,CAAC;SAClE,MAAM,CAAC,QAAQ,EAAE,+BAA+B,CAAC;SACjD,MAAM,CAAC,KAAK,EAAE,YAAsB,EAAE,IAA6B,EAAE,EAAE;QACtE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC1B,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,oBAAoB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACzD,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAE5B,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,oBAAoB,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;QACxE,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE;YAC3D,UAAU,EAAE,GAAG;YACf,MAAM;YACN,YAAY;YACZ,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,SAAS,CAAC,MAAM,CAAC,CAAC;YAClB,OAAO;QACT,CAAC;QAED,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from "commander";
2
+ export declare function registerViewCommand(program: Command): void;
3
+ //# sourceMappingURL=view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../src/commands/view.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAazC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA6C1D"}
@@ -0,0 +1,44 @@
1
+ import { createPagentiCatalox, viewPackage } from "@x12i/pagenti-catalox";
2
+ import { parsePackageSpec, readManifest, normalizeManifest, } from "@x12i/pagenti-core";
3
+ import { printJson } from "../utils.js";
4
+ export function registerViewCommand(program) {
5
+ program
6
+ .command("view")
7
+ .description("View registry metadata for a package")
8
+ .alias("info")
9
+ .alias("show")
10
+ .alias("v")
11
+ .argument("[package-spec]", "Package name or name@version", ".")
12
+ .option("--json", "Print machine-readable output")
13
+ .action(async (packageSpec, opts) => {
14
+ const { catalox, context } = createPagentiCatalox({ superAdmin: true });
15
+ if (packageSpec === ".") {
16
+ const { manifest: raw } = await readManifest(process.cwd());
17
+ const manifest = normalizeManifest(raw);
18
+ if (opts.json) {
19
+ printJson(manifest);
20
+ return;
21
+ }
22
+ console.log(`${manifest.name}@${manifest.version}`);
23
+ console.log(manifest.title);
24
+ if (manifest.description)
25
+ console.log(manifest.description);
26
+ return;
27
+ }
28
+ const parsed = parsePackageSpec(packageSpec);
29
+ const view = await viewPackage(catalox, context, parsed.packageName, parsed.version ?? parsed.range ?? parsed.tag);
30
+ if (opts.json) {
31
+ printJson(view);
32
+ return;
33
+ }
34
+ console.log(`${parsed.packageName}@${view.version ?? view.latestVersion ?? "?"}`);
35
+ if (view.title)
36
+ console.log(String(view.title));
37
+ if (view.description)
38
+ console.log(String(view.description));
39
+ if (Array.isArray(view.versions)) {
40
+ console.log(`versions: ${view.versions.join(", ")}`);
41
+ }
42
+ });
43
+ }
44
+ //# sourceMappingURL=view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view.js","sourceRoot":"","sources":["../../src/commands/view.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAMxC,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAClD,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,sCAAsC,CAAC;SACnD,KAAK,CAAC,MAAM,CAAC;SACb,KAAK,CAAC,MAAM,CAAC;SACb,KAAK,CAAC,GAAG,CAAC;SACV,QAAQ,CAAC,gBAAgB,EAAE,8BAA8B,EAAE,GAAG,CAAC;SAC/D,MAAM,CAAC,QAAQ,EAAE,+BAA+B,CAAC;SACjD,MAAM,CAAC,KAAK,EAAE,WAAmB,EAAE,IAAwB,EAAE,EAAE;QAC9D,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,oBAAoB,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;QAExE,IAAI,WAAW,KAAK,GAAG,EAAE,CAAC;YACxB,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;YAC5D,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;YACxC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,SAAS,CAAC,QAAQ,CAAC,CAAC;gBACpB,OAAO;YACT,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC5B,IAAI,QAAQ,CAAC,WAAW;gBAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAC5D,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAC7C,MAAM,IAAI,GAAG,MAAM,WAAW,CAC5B,OAAO,EACP,OAAO,EACP,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,GAAG,CAC7C,CAAC;QAEF,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,SAAS,CAAC,IAAI,CAAC,CAAC;YAChB,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,aAAa,IAAI,GAAG,EAAE,CAAC,CAAC;QAClF,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAChD,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QAC5D,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvD,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -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,110 @@
1
+ #!/usr/bin/env node
2
+ import { loadPagentiEnv } from "./load-env.js";
3
+ import { Command } from "commander";
4
+ import { writeFile, mkdir } from "node:fs/promises";
5
+ import { join } from "node:path";
6
+ import { createPagentiCatalox, publishPackage, seedPagentiCatalogs, } from "@x12i/pagenti-catalox";
7
+ import { readManifest, normalizeManifest, validateManifest, packPackage, MANIFEST_FILENAME, } from "@x12i/pagenti-core";
8
+ import { PAGENTI_MANIFEST_SCHEMA } from "@x12i/pagenti-types";
9
+ import { registerConfigCommand } from "./commands/config.js";
10
+ import { registerInstallCommand } from "./commands/install.js";
11
+ import { registerLsCommand } from "./commands/ls.js";
12
+ import { registerQueryCommand } from "./commands/query.js";
13
+ import { registerSearchCommand } from "./commands/search.js";
14
+ import { registerUninstallCommand } from "./commands/uninstall.js";
15
+ import { registerViewCommand } from "./commands/view.js";
16
+ import { printJson } from "./utils.js";
17
+ loadPagentiEnv();
18
+ const program = new Command();
19
+ program
20
+ .name("pagenti")
21
+ .description("npm-like package manager for agent knowledge, instructions, prompts, and playbooks on Catalox 5.1.0")
22
+ .version("0.1.0")
23
+ .option("--json", "Print machine-readable output for supported commands");
24
+ program
25
+ .command("seed")
26
+ .description("Seed Pagenti catalogs, descriptors, and SME skills in Catalox")
27
+ .option("--app <appId>", "Catalox app id", "pagenti")
28
+ .option("--no-skills", "Skip seeding 20 SME skill codes")
29
+ .action(async (opts) => {
30
+ const { catalox } = createPagentiCatalox({
31
+ appId: opts.app,
32
+ superAdmin: true,
33
+ });
34
+ const result = await seedPagentiCatalogs(catalox, {
35
+ appId: opts.app,
36
+ seedSkills: opts.skills,
37
+ });
38
+ printJson(result);
39
+ });
40
+ program
41
+ .command("init")
42
+ .description("Create a starter pagenti.json and folders for knowledge and execution content")
43
+ .argument("[dir]", "Package directory", ".")
44
+ .action(async (dir) => {
45
+ const base = join(process.cwd(), dir);
46
+ await mkdir(join(base, "content"), { recursive: true });
47
+ await mkdir(join(base, "execution"), { recursive: true });
48
+ await mkdir(join(base, "schemas"), { recursive: true });
49
+ await mkdir(join(base, "assets"), { recursive: true });
50
+ const manifest = {
51
+ schemaVersion: PAGENTI_MANIFEST_SCHEMA,
52
+ name: "@scope/my-package",
53
+ version: "0.1.0",
54
+ title: "My Package",
55
+ description: "Knowledge, instructions, prompts, and execution playbooks.",
56
+ visibility: "private",
57
+ knowledge: [],
58
+ execution: [],
59
+ exports: {},
60
+ dependencies: {},
61
+ };
62
+ await writeFile(join(base, MANIFEST_FILENAME), `${JSON.stringify(manifest, null, 2)}\n`);
63
+ console.log(`Initialized ${join(base, MANIFEST_FILENAME)}`);
64
+ });
65
+ program
66
+ .command("pack")
67
+ .description("Build local package artifact (.tgz)")
68
+ .argument("[dir]", "Package directory", ".")
69
+ .option("--dry-run", "Validate the package without writing an artifact")
70
+ .action(async (dir, opts) => {
71
+ const packageDir = join(process.cwd(), dir);
72
+ const { manifest: raw } = await readManifest(packageDir);
73
+ const manifest = normalizeManifest(raw);
74
+ const validation = validateManifest(manifest, packageDir);
75
+ if (!validation.valid) {
76
+ for (const issue of validation.issues) {
77
+ console.error(`${issue.path}: ${issue.message}`);
78
+ }
79
+ process.exit(1);
80
+ }
81
+ if (opts.dryRun) {
82
+ console.log("OK");
83
+ return;
84
+ }
85
+ const result = await packPackage(packageDir, manifest);
86
+ printJson(result);
87
+ });
88
+ program
89
+ .command("publish")
90
+ .description("Publish package to Catalox registry (requires Firestore)")
91
+ .argument("[dir]", "Package directory", ".")
92
+ .option("--bucket <bucket>", "GCS bucket for tarball artifact")
93
+ .action(async (dir, opts) => {
94
+ const packageDir = join(process.cwd(), dir);
95
+ const { catalox, context } = createPagentiCatalox({ superAdmin: true });
96
+ const result = await publishPackage(catalox, context, {
97
+ packageDir,
98
+ gcsBucket: opts.bucket,
99
+ });
100
+ printJson(result);
101
+ });
102
+ registerInstallCommand(program);
103
+ registerUninstallCommand(program);
104
+ registerSearchCommand(program);
105
+ registerQueryCommand(program);
106
+ registerViewCommand(program);
107
+ registerLsCommand(program);
108
+ registerConfigCommand(program);
109
+ program.parse();
110
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Load `.env` from cwd, parents, and the CLI package directory.
3
+ * Existing shell env wins.
4
+ */
5
+ export declare function loadPagentiEnv(cwd?: string): void;
6
+ //# sourceMappingURL=load-env.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-env.d.ts","sourceRoot":"","sources":["../src/load-env.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,SAAgB,GAAG,IAAI,CAqBxD"}
@@ -0,0 +1,30 @@
1
+ import { existsSync } from "node:fs";
2
+ import { dirname, join, resolve } from "node:path";
3
+ import { fileURLToPath } from "node:url";
4
+ import { loadDotenv } from "@x12i/env";
5
+ /**
6
+ * Load `.env` from cwd, parents, and the CLI package directory.
7
+ * Existing shell env wins.
8
+ */
9
+ export function loadPagentiEnv(cwd = process.cwd()) {
10
+ const paths = [];
11
+ const seen = new Set();
12
+ let dir = resolve(cwd);
13
+ for (let depth = 0; depth < 12; depth++) {
14
+ paths.push(join(dir, ".env"));
15
+ const parent = dirname(dir);
16
+ if (parent === dir)
17
+ break;
18
+ dir = parent;
19
+ }
20
+ const cliPackageRoot = dirname(dirname(fileURLToPath(import.meta.url)));
21
+ paths.push(join(cliPackageRoot, ".env"));
22
+ for (const envPath of paths) {
23
+ const resolved = resolve(envPath);
24
+ if (seen.has(resolved) || !existsSync(resolved))
25
+ continue;
26
+ seen.add(resolved);
27
+ loadDotenv(resolved);
28
+ }
29
+ }
30
+ //# sourceMappingURL=load-env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-env.js","sourceRoot":"","sources":["../src/load-env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE;IAChD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/B,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACvB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC;QACxC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;QAC9B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,MAAM,KAAK,GAAG;YAAE,MAAM;QAC1B,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;IAED,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACxE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;IAEzC,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QAClC,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,SAAS;QAC1D,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACnB,UAAU,CAAC,QAAQ,CAAC,CAAC;IACvB,CAAC;AACH,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { InstallTarget } from "@x12i/pagenti-types";
2
+ import { type PagentiConfig } from "@x12i/pagenti-core";
3
+ export type TargetCliOptions = {
4
+ app?: string;
5
+ agent?: string;
6
+ domain?: string[];
7
+ store?: string;
8
+ };
9
+ export declare function resolveInstallTarget(cwd: string, overrides: TargetCliOptions): Promise<{
10
+ target: InstallTarget;
11
+ config: PagentiConfig;
12
+ }>;
13
+ export declare function assertInstallTarget(target: InstallTarget): void;
14
+ export declare function collect(value: string, previous: string[]): string[];
15
+ export declare function printJson(value: unknown): void;
16
+ export declare function printHuman(lines: string[]): void;
17
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,gBAAgB,GAC1B,OAAO,CAAC;IAAE,MAAM,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,aAAa,CAAA;CAAE,CAAC,CAU3D;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAM/D;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAEnE;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAE9C;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAIhD"}
package/dist/utils.js ADDED
@@ -0,0 +1,28 @@
1
+ import { mergeInstallTarget, readPagentiConfig, } from "@x12i/pagenti-core";
2
+ export async function resolveInstallTarget(cwd, overrides) {
3
+ const config = await readPagentiConfig(cwd);
4
+ const target = mergeInstallTarget(config, {
5
+ appId: overrides.app,
6
+ agentId: overrides.agent,
7
+ storeId: overrides.store,
8
+ domainIds: overrides.domain?.length ? overrides.domain : undefined,
9
+ });
10
+ return { target, config };
11
+ }
12
+ export function assertInstallTarget(target) {
13
+ if (!target.appId && !target.agentId && !target.storeId) {
14
+ throw new Error("Install target required. Set app/agent/store in .pagentirc or pass --app/--agent/--store.");
15
+ }
16
+ }
17
+ export function collect(value, previous) {
18
+ return previous.concat([value]);
19
+ }
20
+ export function printJson(value) {
21
+ console.log(JSON.stringify(value, null, 2));
22
+ }
23
+ export function printHuman(lines) {
24
+ for (const line of lines) {
25
+ console.log(line);
26
+ }
27
+ }
28
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AACA,OAAO,EACL,kBAAkB,EAClB,iBAAiB,GAElB,MAAM,oBAAoB,CAAC;AAS5B,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,GAAW,EACX,SAA2B;IAE3B,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,EAAE;QACxC,KAAK,EAAE,SAAS,CAAC,GAAG;QACpB,OAAO,EAAE,SAAS,CAAC,KAAK;QACxB,OAAO,EAAE,SAAS,CAAC,KAAK;QACxB,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;KACnE,CAAC,CAAC;IAEH,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,MAAqB;IACvD,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CACb,2FAA2F,CAC5F,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,KAAa,EAAE,QAAkB;IACvD,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAe;IACxC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;AACH,CAAC"}
package/package.json ADDED
@@ -0,0 +1,46 @@
1
+ {
2
+ "name": "@x12i/pagenti-cli",
3
+ "version": "0.1.0",
4
+ "description": "CLI for Pagenti — package manager for agent knowledge, instructions, prompts, and playbooks",
5
+ "license": "MIT",
6
+ "type": "module",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/x12i/pagenti.git",
10
+ "directory": "packages/cli"
11
+ },
12
+ "publishConfig": {
13
+ "access": "public"
14
+ },
15
+ "engines": {
16
+ "node": ">=20"
17
+ },
18
+ "bin": {
19
+ "pagenti": "./dist/index.js"
20
+ },
21
+ "exports": {
22
+ ".": {
23
+ "types": "./dist/index.d.ts",
24
+ "default": "./dist/index.js"
25
+ }
26
+ },
27
+ "files": [
28
+ "dist"
29
+ ],
30
+ "scripts": {
31
+ "clean": "node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"",
32
+ "build": "npm run clean && tsc -p tsconfig.json",
33
+ "typecheck": "tsc -p tsconfig.json --noEmit",
34
+ "prepublishOnly": "npm run build"
35
+ },
36
+ "dependencies": {
37
+ "@x12i/env": "^4.0.1",
38
+ "@x12i/pagenti-catalox": "^0.1.0",
39
+ "@x12i/pagenti-core": "^0.1.0",
40
+ "@x12i/pagenti-types": "^0.1.0",
41
+ "commander": "^14.0.0"
42
+ },
43
+ "peerDependencies": {
44
+ "@x12i/catalox": "5.1.0"
45
+ }
46
+ }