@enactprotocol/cli 2.0.0 → 2.0.2

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 (119) hide show
  1. package/dist/commands/auth/index.d.ts +12 -0
  2. package/dist/commands/auth/index.d.ts.map +1 -0
  3. package/dist/commands/auth/index.js +743 -0
  4. package/dist/commands/auth/index.js.map +1 -0
  5. package/dist/commands/cache/index.d.ts +11 -0
  6. package/dist/commands/cache/index.d.ts.map +1 -0
  7. package/dist/commands/cache/index.js +304 -0
  8. package/dist/commands/cache/index.js.map +1 -0
  9. package/dist/commands/config/index.d.ts +11 -0
  10. package/dist/commands/config/index.d.ts.map +1 -0
  11. package/dist/commands/config/index.js +138 -0
  12. package/dist/commands/config/index.js.map +1 -0
  13. package/dist/commands/env/index.d.ts +11 -0
  14. package/dist/commands/env/index.d.ts.map +1 -0
  15. package/dist/commands/env/index.js +303 -0
  16. package/dist/commands/env/index.js.map +1 -0
  17. package/dist/commands/exec/index.d.ts +12 -0
  18. package/dist/commands/exec/index.d.ts.map +1 -0
  19. package/dist/commands/exec/index.js +154 -0
  20. package/dist/commands/exec/index.js.map +1 -0
  21. package/dist/commands/get/index.d.ts +11 -0
  22. package/dist/commands/get/index.d.ts.map +1 -0
  23. package/dist/commands/get/index.js +151 -0
  24. package/dist/commands/get/index.js.map +1 -0
  25. package/dist/commands/index.d.ts +25 -0
  26. package/dist/commands/index.d.ts.map +1 -0
  27. package/dist/commands/index.js +28 -0
  28. package/dist/commands/index.js.map +1 -0
  29. package/dist/commands/init/index.d.ts +11 -0
  30. package/dist/commands/init/index.d.ts.map +1 -0
  31. package/dist/commands/init/index.js +192 -0
  32. package/dist/commands/init/index.js.map +1 -0
  33. package/dist/commands/inspect/index.d.ts +13 -0
  34. package/dist/commands/inspect/index.d.ts.map +1 -0
  35. package/dist/commands/inspect/index.js +199 -0
  36. package/dist/commands/inspect/index.js.map +1 -0
  37. package/dist/commands/install/index.d.ts +16 -0
  38. package/dist/commands/install/index.d.ts.map +1 -0
  39. package/dist/commands/install/index.js +520 -0
  40. package/dist/commands/install/index.js.map +1 -0
  41. package/dist/commands/list/index.d.ts +15 -0
  42. package/dist/commands/list/index.d.ts.map +1 -0
  43. package/dist/commands/list/index.js +103 -0
  44. package/dist/commands/list/index.js.map +1 -0
  45. package/dist/commands/publish/index.d.ts +11 -0
  46. package/dist/commands/publish/index.d.ts.map +1 -0
  47. package/dist/commands/publish/index.js +274 -0
  48. package/dist/commands/publish/index.js.map +1 -0
  49. package/dist/commands/report/index.d.ts +12 -0
  50. package/dist/commands/report/index.d.ts.map +1 -0
  51. package/dist/commands/report/index.js +279 -0
  52. package/dist/commands/report/index.js.map +1 -0
  53. package/dist/commands/run/index.d.ts +16 -0
  54. package/dist/commands/run/index.d.ts.map +1 -0
  55. package/dist/commands/run/index.js +525 -0
  56. package/dist/commands/run/index.js.map +1 -0
  57. package/dist/commands/search/index.d.ts +12 -0
  58. package/dist/commands/search/index.d.ts.map +1 -0
  59. package/dist/commands/search/index.js +275 -0
  60. package/dist/commands/search/index.js.map +1 -0
  61. package/dist/commands/setup/index.d.ts +11 -0
  62. package/dist/commands/setup/index.d.ts.map +1 -0
  63. package/dist/commands/setup/index.js +241 -0
  64. package/dist/commands/setup/index.js.map +1 -0
  65. package/dist/commands/sign/index.d.ts +17 -0
  66. package/dist/commands/sign/index.d.ts.map +1 -0
  67. package/dist/commands/sign/index.js +507 -0
  68. package/dist/commands/sign/index.js.map +1 -0
  69. package/dist/commands/trust/index.d.ts +13 -0
  70. package/dist/commands/trust/index.d.ts.map +1 -0
  71. package/dist/commands/trust/index.js +366 -0
  72. package/dist/commands/trust/index.js.map +1 -0
  73. package/dist/commands/unyank/index.d.ts +11 -0
  74. package/dist/commands/unyank/index.d.ts.map +1 -0
  75. package/dist/commands/unyank/index.js +87 -0
  76. package/dist/commands/unyank/index.js.map +1 -0
  77. package/dist/commands/yank/index.d.ts +13 -0
  78. package/dist/commands/yank/index.d.ts.map +1 -0
  79. package/dist/commands/yank/index.js +109 -0
  80. package/dist/commands/yank/index.js.map +1 -0
  81. package/dist/index.d.ts +10 -0
  82. package/dist/index.d.ts.map +1 -0
  83. package/dist/index.js +68 -0
  84. package/dist/index.js.map +1 -0
  85. package/dist/types.d.ts +69 -0
  86. package/dist/types.d.ts.map +1 -0
  87. package/dist/types.js +15 -0
  88. package/dist/types.js.map +1 -0
  89. package/dist/utils/errors.d.ts +159 -0
  90. package/dist/utils/errors.d.ts.map +1 -0
  91. package/dist/utils/errors.js +321 -0
  92. package/dist/utils/errors.js.map +1 -0
  93. package/dist/utils/exit-codes.d.ts +83 -0
  94. package/dist/utils/exit-codes.d.ts.map +1 -0
  95. package/dist/utils/exit-codes.js +126 -0
  96. package/dist/utils/exit-codes.js.map +1 -0
  97. package/dist/utils/ignore.d.ts +25 -0
  98. package/dist/utils/ignore.d.ts.map +1 -0
  99. package/dist/utils/ignore.js +123 -0
  100. package/dist/utils/ignore.js.map +1 -0
  101. package/dist/utils/index.d.ts +8 -0
  102. package/dist/utils/index.d.ts.map +1 -0
  103. package/dist/utils/index.js +12 -0
  104. package/dist/utils/index.js.map +1 -0
  105. package/dist/utils/output.d.ts +103 -0
  106. package/dist/utils/output.d.ts.map +1 -0
  107. package/dist/utils/output.js +201 -0
  108. package/dist/utils/output.js.map +1 -0
  109. package/dist/utils/spinner.d.ts +83 -0
  110. package/dist/utils/spinner.d.ts.map +1 -0
  111. package/dist/utils/spinner.js +162 -0
  112. package/dist/utils/spinner.js.map +1 -0
  113. package/package.json +5 -5
  114. package/src/commands/index.ts +1 -0
  115. package/src/commands/init/index.ts +231 -0
  116. package/src/index.ts +7 -1
  117. package/tests/index.test.ts +1 -1
  118. package/tsconfig.json +1 -0
  119. package/tsconfig.tsbuildinfo +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/get/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * CLI Commands Index
3
+ *
4
+ * Exports all command configuration functions.
5
+ */
6
+ export { configureSetupCommand } from "./setup";
7
+ export { configureInitCommand } from "./init";
8
+ export { configureRunCommand } from "./run";
9
+ export { configureExecCommand } from "./exec";
10
+ export { configureInstallCommand } from "./install";
11
+ export { configureListCommand } from "./list";
12
+ export { configureEnvCommand } from "./env";
13
+ export { configureTrustCommand } from "./trust";
14
+ export { configureConfigCommand } from "./config";
15
+ export { configureSearchCommand } from "./search";
16
+ export { configureGetCommand } from "./get";
17
+ export { configurePublishCommand } from "./publish";
18
+ export { configureAuthCommand } from "./auth";
19
+ export { configureCacheCommand } from "./cache";
20
+ export { configureSignCommand } from "./sign";
21
+ export { configureReportCommand } from "./report";
22
+ export { configureInspectCommand } from "./inspect";
23
+ export { configureYankCommand } from "./yank";
24
+ export { configureUnyankCommand } from "./unyank";
25
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAGlD,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAGhD,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAGpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * CLI Commands Index
3
+ *
4
+ * Exports all command configuration functions.
5
+ */
6
+ export { configureSetupCommand } from "./setup";
7
+ export { configureInitCommand } from "./init";
8
+ export { configureRunCommand } from "./run";
9
+ export { configureExecCommand } from "./exec";
10
+ export { configureInstallCommand } from "./install";
11
+ export { configureListCommand } from "./list";
12
+ export { configureEnvCommand } from "./env";
13
+ export { configureTrustCommand } from "./trust";
14
+ export { configureConfigCommand } from "./config";
15
+ // Registry commands (Phase 8)
16
+ export { configureSearchCommand } from "./search";
17
+ export { configureGetCommand } from "./get";
18
+ export { configurePublishCommand } from "./publish";
19
+ export { configureAuthCommand } from "./auth";
20
+ export { configureCacheCommand } from "./cache";
21
+ // CLI solidification commands (Phase 9)
22
+ export { configureSignCommand } from "./sign";
23
+ export { configureReportCommand } from "./report";
24
+ export { configureInspectCommand } from "./inspect";
25
+ // API v2 migration commands
26
+ export { configureYankCommand } from "./yank";
27
+ export { configureUnyankCommand } from "./unyank";
28
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAElD,8BAA8B;AAC9B,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAEhD,wCAAwC;AACxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAEpD,4BAA4B;AAC5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * enact init command
3
+ *
4
+ * Create a basic tool template in the current directory.
5
+ */
6
+ import type { Command } from "commander";
7
+ /**
8
+ * Configure the init command
9
+ */
10
+ export declare function configureInitCommand(program: Command): void;
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/init/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoMzC;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAsB3D"}
@@ -0,0 +1,192 @@
1
+ /**
2
+ * enact init command
3
+ *
4
+ * Create a basic tool template in the current directory.
5
+ */
6
+ import { existsSync, mkdirSync, writeFileSync } from "node:fs";
7
+ import { join } from "node:path";
8
+ import { getSecret } from "@enactprotocol/secrets";
9
+ import { error, formatError, info, success, warning } from "../../utils";
10
+ /** Namespace for stored auth tokens */
11
+ const AUTH_NAMESPACE = "enact:auth";
12
+ const ACCESS_TOKEN_KEY = "access_token";
13
+ const AUTH_METHOD_KEY = "auth_method";
14
+ /** Supabase configuration */
15
+ const SUPABASE_URL = process.env.SUPABASE_URL || "https://siikwkfgsmouioodghho.supabase.co";
16
+ const SUPABASE_ANON_KEY = process.env.SUPABASE_ANON_KEY ??
17
+ "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InNpaWt3a2Znc21vdWlvb2RnaGhvIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NjQ2MTkzMzksImV4cCI6MjA4MDE5NTMzOX0.kxnx6-IPFhmGx6rzNx36vbyhFMFZKP_jFqaDbKnJ_E0";
18
+ /**
19
+ * Get the current logged-in username
20
+ */
21
+ async function getCurrentUsername() {
22
+ const accessToken = await getSecret(AUTH_NAMESPACE, ACCESS_TOKEN_KEY);
23
+ if (!accessToken) {
24
+ return null;
25
+ }
26
+ const authMethod = await getSecret(AUTH_NAMESPACE, AUTH_METHOD_KEY);
27
+ if (authMethod === "supabase") {
28
+ // Get user from Supabase
29
+ try {
30
+ const userResponse = await fetch(`${SUPABASE_URL}/auth/v1/user`, {
31
+ headers: {
32
+ Authorization: `Bearer ${accessToken}`,
33
+ apikey: SUPABASE_ANON_KEY,
34
+ },
35
+ });
36
+ if (!userResponse.ok) {
37
+ return null;
38
+ }
39
+ const user = (await userResponse.json());
40
+ // Try to get profile username from database
41
+ const profileResponse = await fetch(`${SUPABASE_URL}/rest/v1/profiles?id=eq.${user.id}&select=username`, {
42
+ headers: {
43
+ Authorization: `Bearer ${accessToken}`,
44
+ apikey: SUPABASE_ANON_KEY,
45
+ },
46
+ });
47
+ if (profileResponse.ok) {
48
+ const profiles = (await profileResponse.json());
49
+ if (profiles[0]?.username) {
50
+ return profiles[0].username;
51
+ }
52
+ }
53
+ // Fall back to user_metadata
54
+ return (user.user_metadata?.username ||
55
+ user.user_metadata?.user_name ||
56
+ user.user_metadata?.full_name ||
57
+ user.email?.split("@")[0] ||
58
+ null);
59
+ }
60
+ catch {
61
+ return null;
62
+ }
63
+ }
64
+ // Legacy API auth - use the API client
65
+ try {
66
+ const { createApiClient, getCurrentUser } = await import("@enactprotocol/api");
67
+ const client = createApiClient();
68
+ client.setAuthToken(accessToken);
69
+ const user = await getCurrentUser(client);
70
+ return user.username;
71
+ }
72
+ catch {
73
+ return null;
74
+ }
75
+ }
76
+ /**
77
+ * Generate the tool template content
78
+ */
79
+ function generateToolTemplate(toolName) {
80
+ return `---
81
+ name: ${toolName}
82
+ description: A simple tool that echoes a greeting
83
+ version: 0.1.0
84
+ enact: "2.0"
85
+
86
+ from: alpine:latest
87
+
88
+ inputSchema:
89
+ type: object
90
+ properties:
91
+ name:
92
+ type: string
93
+ description: Name to greet
94
+ default: World
95
+ required: []
96
+
97
+ command: |
98
+ echo "Hello, \${name}!"
99
+ ---
100
+
101
+ # ${toolName}
102
+
103
+ A simple greeting tool created with \`enact init\`.
104
+
105
+ ## Usage
106
+
107
+ \`\`\`bash
108
+ enact run ./ --args '{"name": "Alice"}'
109
+ \`\`\`
110
+
111
+ ## Customization
112
+
113
+ Edit this file to create your own tool:
114
+
115
+ 1. Update the \`name\` and \`description\` in the frontmatter
116
+ 2. Modify the \`inputSchema\` to define your tool's inputs
117
+ 3. Change the \`command\` to run your desired shell commands
118
+ 4. Update this documentation section
119
+
120
+ ## Learn More
121
+
122
+ - [Enact Documentation](https://enact.dev/docs)
123
+ - [Tool Manifest Reference](https://enact.dev/docs/manifest)
124
+ `;
125
+ }
126
+ /**
127
+ * Init command handler
128
+ */
129
+ async function initHandler(options, ctx) {
130
+ const targetDir = ctx.cwd;
131
+ const manifestPath = join(targetDir, "enact.md");
132
+ // Check if manifest already exists
133
+ if (existsSync(manifestPath) && !options.force) {
134
+ warning(`Tool manifest already exists at: ${manifestPath}`);
135
+ info("Use --force to overwrite");
136
+ return;
137
+ }
138
+ // Get username for the tool name
139
+ let toolName = options.name;
140
+ if (!toolName) {
141
+ const username = await getCurrentUsername();
142
+ if (username) {
143
+ toolName = `${username}/my-tool`;
144
+ info(`Using logged-in username: ${username}`);
145
+ }
146
+ else {
147
+ toolName = "my-tool";
148
+ info("Not logged in - using generic tool name");
149
+ info("Run 'enact auth login' to use your username in tool names");
150
+ }
151
+ }
152
+ // Generate and write the template
153
+ const content = generateToolTemplate(toolName);
154
+ // Ensure directory exists
155
+ if (!existsSync(targetDir)) {
156
+ mkdirSync(targetDir, { recursive: true });
157
+ }
158
+ writeFileSync(manifestPath, content, "utf-8");
159
+ success(`Created tool template: ${manifestPath}`);
160
+ info("");
161
+ info("Next steps:");
162
+ info(" 1. Edit enact.md to customize your tool");
163
+ info(" 2. Run 'enact run ./' to test your tool");
164
+ info(" 3. Run 'enact publish' to share your tool");
165
+ }
166
+ /**
167
+ * Configure the init command
168
+ */
169
+ export function configureInitCommand(program) {
170
+ program
171
+ .command("init")
172
+ .description("Create a new tool template in the current directory")
173
+ .option("-n, --name <name>", "Tool name (default: username/my-tool or my-tool)")
174
+ .option("-f, --force", "Overwrite existing enact.md file")
175
+ .option("-v, --verbose", "Show detailed output")
176
+ .action(async (options) => {
177
+ const ctx = {
178
+ cwd: process.cwd(),
179
+ options,
180
+ isCI: Boolean(process.env.CI),
181
+ isInteractive: process.stdout.isTTY ?? false,
182
+ };
183
+ try {
184
+ await initHandler(options, ctx);
185
+ }
186
+ catch (err) {
187
+ error(formatError(err));
188
+ process.exit(1);
189
+ }
190
+ });
191
+ }
192
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/init/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * enact inspect command
3
+ *
4
+ * Open a tool's page in the browser for inspection/review.
5
+ * Use --download to download locally for deeper code review.
6
+ * This allows reviewers to examine tool code before trusting it.
7
+ */
8
+ import type { Command } from "commander";
9
+ /**
10
+ * Configure the inspect command
11
+ */
12
+ export declare function configureInspectCommand(program: Command): void;
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/inspect/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA8NzC;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0B9D"}
@@ -0,0 +1,199 @@
1
+ /**
2
+ * enact inspect command
3
+ *
4
+ * Open a tool's page in the browser for inspection/review.
5
+ * Use --download to download locally for deeper code review.
6
+ * This allows reviewers to examine tool code before trusting it.
7
+ */
8
+ import { mkdirSync, rmSync, unlinkSync, writeFileSync } from "node:fs";
9
+ import { dirname, join, resolve } from "node:path";
10
+ import { createApiClient, downloadBundle, getToolInfo } from "@enactprotocol/api";
11
+ import { getCacheDir, loadConfig, pathExists } from "@enactprotocol/shared";
12
+ import { EXIT_FAILURE, RegistryError, colors, confirm, dim, error, formatError, handleError, info, json, keyValue, newline, success, symbols, withSpinner, } from "../../utils";
13
+ /**
14
+ * Parse tool@version syntax
15
+ */
16
+ function parseToolSpec(spec) {
17
+ const match = spec.match(/^(@[^@/]+\/[^@]+|[^@]+)(?:@(.+))?$/);
18
+ if (match?.[1]) {
19
+ return {
20
+ name: match[1],
21
+ version: match[2],
22
+ };
23
+ }
24
+ return { name: spec, version: undefined };
25
+ }
26
+ /**
27
+ * Format bytes to human-readable string
28
+ */
29
+ function formatBytes(bytes) {
30
+ if (bytes === 0)
31
+ return "0 B";
32
+ const k = 1024;
33
+ const sizes = ["B", "KB", "MB", "GB"];
34
+ const i = Math.floor(Math.log(bytes) / Math.log(k));
35
+ return `${(bytes / k ** i).toFixed(1)} ${sizes[i]}`;
36
+ }
37
+ /**
38
+ * Extract a tar.gz bundle to a directory
39
+ */
40
+ async function extractBundle(bundleData, destPath) {
41
+ const tempFile = join(getCacheDir(), `inspect-${Date.now()}.tar.gz`);
42
+ mkdirSync(dirname(tempFile), { recursive: true });
43
+ writeFileSync(tempFile, Buffer.from(bundleData));
44
+ mkdirSync(destPath, { recursive: true });
45
+ const proc = Bun.spawn(["tar", "-xzf", tempFile, "-C", destPath], {
46
+ stdout: "pipe",
47
+ stderr: "pipe",
48
+ });
49
+ const exitCode = await proc.exited;
50
+ try {
51
+ unlinkSync(tempFile);
52
+ }
53
+ catch {
54
+ // Ignore cleanup errors
55
+ }
56
+ if (exitCode !== 0) {
57
+ const stderr = await new Response(proc.stderr).text();
58
+ throw new Error(`Failed to extract bundle: ${stderr}`);
59
+ }
60
+ }
61
+ /**
62
+ * Inspect command handler
63
+ */
64
+ async function inspectHandler(toolSpec, options, ctx) {
65
+ const { name: toolName, version } = parseToolSpec(toolSpec);
66
+ const config = loadConfig();
67
+ const registryUrl = config.registry?.url ?? "https://registry.enact.tools";
68
+ // Default behavior: open in browser
69
+ // Use --download to download locally instead
70
+ if (!options.download) {
71
+ const toolUrl = version
72
+ ? `${registryUrl}/tools/${toolName}/v/${version}`
73
+ : `${registryUrl}/tools/${toolName}`;
74
+ info(`Opening ${toolName} in browser...`);
75
+ // Open URL in default browser
76
+ const openCmd = process.platform === "darwin" ? "open" : process.platform === "win32" ? "start" : "xdg-open";
77
+ const proc = Bun.spawn([openCmd, toolUrl], {
78
+ stdout: "ignore",
79
+ stderr: "ignore",
80
+ });
81
+ await proc.exited;
82
+ if (options.json) {
83
+ json({ opened: true, url: toolUrl });
84
+ }
85
+ else {
86
+ success(`Opened: ${toolUrl}`);
87
+ }
88
+ return;
89
+ }
90
+ const client = createApiClient({
91
+ baseUrl: registryUrl,
92
+ authToken: config.registry?.authToken,
93
+ });
94
+ // Determine target version
95
+ let targetVersion = version;
96
+ try {
97
+ if (!targetVersion) {
98
+ const metadata = await withSpinner(`Fetching ${toolName} info...`, async () => getToolInfo(client, toolName), `${symbols.success} Found ${toolName}`);
99
+ targetVersion = metadata.latestVersion;
100
+ }
101
+ }
102
+ catch (err) {
103
+ throw new RegistryError(`Failed to fetch tool info: ${formatError(err)}`);
104
+ }
105
+ // Determine output directory
106
+ const outputDir = options.output
107
+ ? resolve(ctx.cwd, options.output)
108
+ : resolve(ctx.cwd, toolName.split("/").pop() ?? toolName);
109
+ // Check if output already exists
110
+ if (pathExists(outputDir) && !options.force) {
111
+ if (ctx.isInteractive) {
112
+ const shouldOverwrite = await confirm(`Directory ${outputDir} already exists. Overwrite?`);
113
+ if (!shouldOverwrite) {
114
+ info("Inspection cancelled.");
115
+ return;
116
+ }
117
+ rmSync(outputDir, { recursive: true, force: true });
118
+ }
119
+ else {
120
+ error(`Directory ${outputDir} already exists. Use --force to overwrite.`);
121
+ process.exit(EXIT_FAILURE);
122
+ }
123
+ }
124
+ // Download bundle (no trust verification - this is for inspection)
125
+ let bundleResult;
126
+ try {
127
+ bundleResult = await withSpinner(`Downloading ${toolName}@${targetVersion}...`, async () => downloadBundle(client, {
128
+ name: toolName,
129
+ version: targetVersion,
130
+ verify: true,
131
+ }), `${symbols.success} Downloaded`);
132
+ }
133
+ catch (err) {
134
+ throw new RegistryError(`Failed to download bundle: ${formatError(err)}`);
135
+ }
136
+ // Extract to output directory
137
+ try {
138
+ await withSpinner("Extracting...", async () => extractBundle(bundleResult.data, outputDir), `${symbols.success} Extracted`);
139
+ }
140
+ catch (err) {
141
+ throw new RegistryError(`Failed to extract bundle: ${formatError(err)}`);
142
+ }
143
+ // Output result
144
+ if (options.json) {
145
+ json({
146
+ inspected: true,
147
+ tool: toolName,
148
+ version: targetVersion,
149
+ location: outputDir,
150
+ hash: bundleResult.hash,
151
+ size: bundleResult.size,
152
+ });
153
+ return;
154
+ }
155
+ newline();
156
+ keyValue("Tool", toolName);
157
+ keyValue("Version", targetVersion ?? "unknown");
158
+ keyValue("Location", outputDir);
159
+ keyValue("Size", formatBytes(bundleResult.size));
160
+ keyValue("Hash", `${bundleResult.hash.substring(0, 20)}...`);
161
+ newline();
162
+ success(`Downloaded ${colors.bold(toolName)}@${targetVersion} for inspection`);
163
+ newline();
164
+ info("Next steps:");
165
+ dim(` cd ${outputDir}`);
166
+ dim(" # Review the code, run security scans, test it");
167
+ dim(" # If it passes review, sign it:");
168
+ dim(" enact sign .");
169
+ dim(" # Or report issues:");
170
+ dim(` enact report ${toolName}@${targetVersion} --reason "description"`);
171
+ }
172
+ /**
173
+ * Configure the inspect command
174
+ */
175
+ export function configureInspectCommand(program) {
176
+ program
177
+ .command("inspect <tool[@version]>")
178
+ .description("Open a tool's page in browser for inspection (use --download to save locally)")
179
+ .option("-d, --download", "Download tool locally instead of opening in browser")
180
+ .option("-o, --output <path>", "Output directory for download (default: tool name in current directory)")
181
+ .option("-f, --force", "Overwrite existing directory when downloading")
182
+ .option("-v, --verbose", "Show detailed output")
183
+ .option("--json", "Output result as JSON")
184
+ .action(async (toolSpec, options) => {
185
+ const ctx = {
186
+ cwd: process.cwd(),
187
+ options,
188
+ isCI: Boolean(process.env.CI),
189
+ isInteractive: process.stdout.isTTY ?? false,
190
+ };
191
+ try {
192
+ await inspectHandler(toolSpec, options, ctx);
193
+ }
194
+ catch (err) {
195
+ handleError(err, options.verbose ? { verbose: true } : undefined);
196
+ }
197
+ });
198
+ }
199
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/inspect/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * enact install command
3
+ *
4
+ * Install a tool to the project or globally.
5
+ * All tools are extracted to ~/.enact/cache/{tool}/{version}/
6
+ * - Project install: Adds entry to .enact/tools.json
7
+ * - Global install: Adds entry to ~/.enact/tools.json
8
+ *
9
+ * Supports local paths and registry tools with verification.
10
+ */
11
+ import type { Command } from "commander";
12
+ /**
13
+ * Configure the install command
14
+ */
15
+ export declare function configureInstallCommand(program: Command): void;
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/install/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AA4BH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwmBzC;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyB9D"}