@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.
- package/dist/commands/auth/index.d.ts +12 -0
- package/dist/commands/auth/index.d.ts.map +1 -0
- package/dist/commands/auth/index.js +743 -0
- package/dist/commands/auth/index.js.map +1 -0
- package/dist/commands/cache/index.d.ts +11 -0
- package/dist/commands/cache/index.d.ts.map +1 -0
- package/dist/commands/cache/index.js +304 -0
- package/dist/commands/cache/index.js.map +1 -0
- package/dist/commands/config/index.d.ts +11 -0
- package/dist/commands/config/index.d.ts.map +1 -0
- package/dist/commands/config/index.js +138 -0
- package/dist/commands/config/index.js.map +1 -0
- package/dist/commands/env/index.d.ts +11 -0
- package/dist/commands/env/index.d.ts.map +1 -0
- package/dist/commands/env/index.js +303 -0
- package/dist/commands/env/index.js.map +1 -0
- package/dist/commands/exec/index.d.ts +12 -0
- package/dist/commands/exec/index.d.ts.map +1 -0
- package/dist/commands/exec/index.js +154 -0
- package/dist/commands/exec/index.js.map +1 -0
- package/dist/commands/get/index.d.ts +11 -0
- package/dist/commands/get/index.d.ts.map +1 -0
- package/dist/commands/get/index.js +151 -0
- package/dist/commands/get/index.js.map +1 -0
- package/dist/commands/index.d.ts +25 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +28 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/init/index.d.ts +11 -0
- package/dist/commands/init/index.d.ts.map +1 -0
- package/dist/commands/init/index.js +192 -0
- package/dist/commands/init/index.js.map +1 -0
- package/dist/commands/inspect/index.d.ts +13 -0
- package/dist/commands/inspect/index.d.ts.map +1 -0
- package/dist/commands/inspect/index.js +199 -0
- package/dist/commands/inspect/index.js.map +1 -0
- package/dist/commands/install/index.d.ts +16 -0
- package/dist/commands/install/index.d.ts.map +1 -0
- package/dist/commands/install/index.js +520 -0
- package/dist/commands/install/index.js.map +1 -0
- package/dist/commands/list/index.d.ts +15 -0
- package/dist/commands/list/index.d.ts.map +1 -0
- package/dist/commands/list/index.js +103 -0
- package/dist/commands/list/index.js.map +1 -0
- package/dist/commands/publish/index.d.ts +11 -0
- package/dist/commands/publish/index.d.ts.map +1 -0
- package/dist/commands/publish/index.js +274 -0
- package/dist/commands/publish/index.js.map +1 -0
- package/dist/commands/report/index.d.ts +12 -0
- package/dist/commands/report/index.d.ts.map +1 -0
- package/dist/commands/report/index.js +279 -0
- package/dist/commands/report/index.js.map +1 -0
- package/dist/commands/run/index.d.ts +16 -0
- package/dist/commands/run/index.d.ts.map +1 -0
- package/dist/commands/run/index.js +525 -0
- package/dist/commands/run/index.js.map +1 -0
- package/dist/commands/search/index.d.ts +12 -0
- package/dist/commands/search/index.d.ts.map +1 -0
- package/dist/commands/search/index.js +275 -0
- package/dist/commands/search/index.js.map +1 -0
- package/dist/commands/setup/index.d.ts +11 -0
- package/dist/commands/setup/index.d.ts.map +1 -0
- package/dist/commands/setup/index.js +241 -0
- package/dist/commands/setup/index.js.map +1 -0
- package/dist/commands/sign/index.d.ts +17 -0
- package/dist/commands/sign/index.d.ts.map +1 -0
- package/dist/commands/sign/index.js +507 -0
- package/dist/commands/sign/index.js.map +1 -0
- package/dist/commands/trust/index.d.ts +13 -0
- package/dist/commands/trust/index.d.ts.map +1 -0
- package/dist/commands/trust/index.js +366 -0
- package/dist/commands/trust/index.js.map +1 -0
- package/dist/commands/unyank/index.d.ts +11 -0
- package/dist/commands/unyank/index.d.ts.map +1 -0
- package/dist/commands/unyank/index.js +87 -0
- package/dist/commands/unyank/index.js.map +1 -0
- package/dist/commands/yank/index.d.ts +13 -0
- package/dist/commands/yank/index.d.ts.map +1 -0
- package/dist/commands/yank/index.js +109 -0
- package/dist/commands/yank/index.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +68 -0
- package/dist/index.js.map +1 -0
- package/dist/types.d.ts +69 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +15 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/errors.d.ts +159 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +321 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/exit-codes.d.ts +83 -0
- package/dist/utils/exit-codes.d.ts.map +1 -0
- package/dist/utils/exit-codes.js +126 -0
- package/dist/utils/exit-codes.js.map +1 -0
- package/dist/utils/ignore.d.ts +25 -0
- package/dist/utils/ignore.d.ts.map +1 -0
- package/dist/utils/ignore.js +123 -0
- package/dist/utils/ignore.js.map +1 -0
- package/dist/utils/index.d.ts +8 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +12 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/output.d.ts +103 -0
- package/dist/utils/output.d.ts.map +1 -0
- package/dist/utils/output.js +201 -0
- package/dist/utils/output.js.map +1 -0
- package/dist/utils/spinner.d.ts +83 -0
- package/dist/utils/spinner.d.ts.map +1 -0
- package/dist/utils/spinner.js +162 -0
- package/dist/utils/spinner.js.map +1 -0
- package/package.json +5 -5
- package/src/commands/index.ts +1 -0
- package/src/commands/init/index.ts +231 -0
- package/src/index.ts +7 -1
- package/tests/index.test.ts +1 -1
- package/tsconfig.json +1 -0
- 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"}
|