@enactprotocol/cli 2.1.7 → 2.1.10
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.js +1 -1
- package/dist/commands/auth/index.js.map +1 -1
- package/dist/commands/index.d.ts +1 -1
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +1 -1
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/info/index.d.ts +11 -0
- package/dist/commands/info/index.d.ts.map +1 -0
- package/dist/commands/info/index.js +232 -0
- package/dist/commands/info/index.js.map +1 -0
- package/dist/commands/init/index.d.ts.map +1 -1
- package/dist/commands/init/index.js +17 -14
- package/dist/commands/init/index.js.map +1 -1
- package/dist/commands/learn/index.d.ts +4 -0
- package/dist/commands/learn/index.d.ts.map +1 -1
- package/dist/commands/learn/index.js +159 -5
- package/dist/commands/learn/index.js.map +1 -1
- package/dist/commands/mcp/index.d.ts +20 -0
- package/dist/commands/mcp/index.d.ts.map +1 -0
- package/dist/commands/mcp/index.js +460 -0
- package/dist/commands/mcp/index.js.map +1 -0
- package/dist/commands/publish/index.d.ts.map +1 -1
- package/dist/commands/publish/index.js +14 -7
- package/dist/commands/publish/index.js.map +1 -1
- package/dist/commands/sign/index.d.ts +2 -1
- package/dist/commands/sign/index.d.ts.map +1 -1
- package/dist/commands/sign/index.js +75 -17
- package/dist/commands/sign/index.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/package.json +5 -5
- package/src/commands/auth/index.ts +1 -1
- package/src/commands/index.ts +1 -1
- package/src/commands/{get → info}/index.ts +103 -16
- package/src/commands/init/index.ts +17 -14
- package/src/commands/learn/index.ts +228 -5
- package/src/commands/publish/index.ts +14 -7
- package/src/commands/sign/index.ts +93 -18
- package/src/index.ts +3 -3
- package/tests/commands/{get.test.ts → info.test.ts} +35 -33
- package/tests/commands/init.test.ts +6 -6
- package/tests/commands/learn.test.ts +2 -2
- package/tests/e2e.test.ts +1 -1
- package/tsconfig.tsbuildinfo +1 -1
- /package/tests/fixtures/echo-tool/{enact.md → SKILL.md} +0 -0
|
@@ -3,19 +3,74 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Display the documentation (enact.md) for a tool.
|
|
5
5
|
* Fetches and displays the raw manifest content for easy reading.
|
|
6
|
+
*
|
|
7
|
+
* Security: For tools fetched from the registry, attestation checks are
|
|
8
|
+
* performed according to the trust policy. This prevents potentially
|
|
9
|
+
* malicious documentation from being displayed to LLMs or users.
|
|
6
10
|
*/
|
|
7
|
-
import { createApiClient, getToolInfo, getToolVersion } from "@enactprotocol/api";
|
|
8
|
-
import { loadConfig } from "@enactprotocol/shared";
|
|
9
|
-
import { dim, error, formatError, header, json, newline } from "../../utils";
|
|
11
|
+
import { createApiClient, getAttestationList, getToolInfo, getToolVersion, verifyAllAttestations, } from "@enactprotocol/api";
|
|
12
|
+
import { getMinimumAttestations, getTrustPolicy, getTrustedAuditors, loadConfig, tryResolveTool, } from "@enactprotocol/shared";
|
|
13
|
+
import { TrustError, confirm, dim, error, formatError, header, info, json, newline, success, symbols, } from "../../utils";
|
|
10
14
|
/**
|
|
11
15
|
* Learn command handler
|
|
12
16
|
*/
|
|
13
|
-
async function learnHandler(toolName, options,
|
|
17
|
+
async function learnHandler(toolName, options, ctx) {
|
|
18
|
+
// First, try to resolve locally (project → user → cache)
|
|
19
|
+
// If the tool is already installed/cached, we trust it
|
|
20
|
+
const resolution = tryResolveTool(toolName, { startDir: ctx.cwd });
|
|
21
|
+
if (resolution) {
|
|
22
|
+
// Tool is installed locally - read documentation from the manifest file
|
|
23
|
+
if (resolution.manifestPath.endsWith(".md")) {
|
|
24
|
+
const { readFileSync } = await import("node:fs");
|
|
25
|
+
const content = readFileSync(resolution.manifestPath, "utf-8");
|
|
26
|
+
if (options.json) {
|
|
27
|
+
json({
|
|
28
|
+
name: toolName,
|
|
29
|
+
version: resolution.manifest.version,
|
|
30
|
+
documentation: content,
|
|
31
|
+
source: "local",
|
|
32
|
+
});
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
header(`${toolName}@${resolution.manifest.version ?? "local"}`);
|
|
36
|
+
dim("(installed locally)");
|
|
37
|
+
newline();
|
|
38
|
+
console.log(content);
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
// Fallback for non-.md manifests
|
|
42
|
+
if (options.json) {
|
|
43
|
+
json({
|
|
44
|
+
name: toolName,
|
|
45
|
+
version: resolution.manifest.version,
|
|
46
|
+
documentation: resolution.manifest.doc ?? resolution.manifest.description ?? null,
|
|
47
|
+
source: "local",
|
|
48
|
+
});
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
header(`${toolName}@${resolution.manifest.version ?? "local"}`);
|
|
52
|
+
dim("(installed locally)");
|
|
53
|
+
newline();
|
|
54
|
+
console.log(resolution.manifest.doc ?? resolution.manifest.description ?? "No documentation available.");
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
// If --local flag is set, don't fetch from registry
|
|
58
|
+
if (options.local) {
|
|
59
|
+
error(`Tool not found locally: ${toolName}`);
|
|
60
|
+
dim("The tool is not installed. Remove --local to fetch from registry.");
|
|
61
|
+
process.exit(1);
|
|
62
|
+
}
|
|
63
|
+
// Tool not installed - fetch from registry with attestation checks
|
|
14
64
|
const config = loadConfig();
|
|
15
65
|
const registryUrl = process.env.ENACT_REGISTRY_URL ??
|
|
16
66
|
config.registry?.url ??
|
|
17
67
|
"https://siikwkfgsmouioodghho.supabase.co/functions/v1";
|
|
18
|
-
|
|
68
|
+
// Get auth token - use user token if available, otherwise use anon key for public access
|
|
69
|
+
let authToken = config.registry?.authToken ?? process.env.ENACT_AUTH_TOKEN;
|
|
70
|
+
if (!authToken && registryUrl.includes("siikwkfgsmouioodghho.supabase.co")) {
|
|
71
|
+
authToken =
|
|
72
|
+
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InNpaWt3a2Znc21vdWlvb2RnaGhvIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NjQ2MTkzMzksImV4cCI6MjA4MDE5NTMzOX0.kxnx6-IPFhmGx6rzNx36vbyhFMFZKP_jFqaDbKnJ_E0";
|
|
73
|
+
}
|
|
19
74
|
const client = createApiClient({
|
|
20
75
|
baseUrl: registryUrl,
|
|
21
76
|
authToken: authToken,
|
|
@@ -27,13 +82,106 @@ async function learnHandler(toolName, options, _ctx) {
|
|
|
27
82
|
const toolInfo = await getToolInfo(client, toolName);
|
|
28
83
|
version = toolInfo.latestVersion;
|
|
29
84
|
}
|
|
85
|
+
if (!version) {
|
|
86
|
+
error(`No published versions for ${toolName}`);
|
|
87
|
+
process.exit(1);
|
|
88
|
+
}
|
|
30
89
|
// Get the version info which includes rawManifest
|
|
31
90
|
const versionInfo = await getToolVersion(client, toolName, version);
|
|
91
|
+
// ========================================
|
|
92
|
+
// TRUST VERIFICATION - same as run command
|
|
93
|
+
// ========================================
|
|
94
|
+
const trustPolicy = getTrustPolicy();
|
|
95
|
+
const minimumAttestations = getMinimumAttestations();
|
|
96
|
+
const trustedAuditors = getTrustedAuditors();
|
|
97
|
+
// Fetch attestations from registry
|
|
98
|
+
const attestationsResponse = await getAttestationList(client, toolName, version);
|
|
99
|
+
const attestations = attestationsResponse.attestations;
|
|
100
|
+
if (attestations.length === 0) {
|
|
101
|
+
// No attestations found
|
|
102
|
+
info(`${symbols.warning} Tool ${toolName}@${version} has no attestations.`);
|
|
103
|
+
if (trustPolicy === "require_attestation") {
|
|
104
|
+
throw new TrustError("Trust policy requires attestations. Cannot display documentation from unverified tools.");
|
|
105
|
+
}
|
|
106
|
+
if (ctx.isInteractive && trustPolicy === "prompt") {
|
|
107
|
+
dim("Documentation from unverified tools may contain malicious content.");
|
|
108
|
+
const proceed = await confirm("View documentation from unverified tool?");
|
|
109
|
+
if (!proceed) {
|
|
110
|
+
info("Cancelled.");
|
|
111
|
+
process.exit(0);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
else if (!ctx.isInteractive && trustPolicy === "prompt") {
|
|
115
|
+
throw new TrustError("Cannot display documentation from unverified tools in non-interactive mode.");
|
|
116
|
+
}
|
|
117
|
+
// trustPolicy === "allow" - continue without prompting
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
// Verify attestations locally (never trust registry's verification status)
|
|
121
|
+
const verifiedAuditors = await verifyAllAttestations(client, toolName, version, versionInfo.bundle.hash ?? "");
|
|
122
|
+
// Check verified auditors against trust config using provider:identity format
|
|
123
|
+
const trustedVerifiedAuditors = verifiedAuditors
|
|
124
|
+
.filter((auditor) => trustedAuditors.includes(auditor.providerIdentity))
|
|
125
|
+
.map((auditor) => auditor.providerIdentity);
|
|
126
|
+
if (trustedVerifiedAuditors.length > 0) {
|
|
127
|
+
// Check if we meet minimum attestations threshold
|
|
128
|
+
if (trustedVerifiedAuditors.length < minimumAttestations) {
|
|
129
|
+
info(`${symbols.warning} Tool ${toolName}@${version} has ${trustedVerifiedAuditors.length} trusted attestation(s), but ${minimumAttestations} required.`);
|
|
130
|
+
dim(`Trusted attestations: ${trustedVerifiedAuditors.join(", ")}`);
|
|
131
|
+
if (trustPolicy === "require_attestation") {
|
|
132
|
+
throw new TrustError(`Trust policy requires at least ${minimumAttestations} attestation(s) from trusted identities.`);
|
|
133
|
+
}
|
|
134
|
+
if (ctx.isInteractive && trustPolicy === "prompt") {
|
|
135
|
+
const proceed = await confirm("View documentation with fewer attestations than required?");
|
|
136
|
+
if (!proceed) {
|
|
137
|
+
info("Cancelled.");
|
|
138
|
+
process.exit(0);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
else if (!ctx.isInteractive && trustPolicy === "prompt") {
|
|
142
|
+
throw new TrustError("Cannot display documentation without meeting minimum attestation requirement in non-interactive mode.");
|
|
143
|
+
}
|
|
144
|
+
// trustPolicy === "allow" - continue without prompting
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
// Tool meets or exceeds minimum attestations
|
|
148
|
+
if (options.verbose) {
|
|
149
|
+
success(`Tool verified by ${trustedVerifiedAuditors.length} trusted identity(ies): ${trustedVerifiedAuditors.join(", ")}`);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
// Has attestations but none from trusted auditors
|
|
155
|
+
info(`${symbols.warning} Tool ${toolName}@${version} has ${verifiedAuditors.length} attestation(s), but none from trusted auditors.`);
|
|
156
|
+
if (trustPolicy === "require_attestation") {
|
|
157
|
+
dim(`Your trusted auditors: ${trustedAuditors.join(", ")}`);
|
|
158
|
+
dim(`Tool attested by: ${verifiedAuditors.map((a) => a.providerIdentity).join(", ")}`);
|
|
159
|
+
throw new TrustError("Trust policy requires attestations from trusted identities. Cannot display documentation.");
|
|
160
|
+
}
|
|
161
|
+
if (ctx.isInteractive && trustPolicy === "prompt") {
|
|
162
|
+
dim(`Attested by: ${verifiedAuditors.map((a) => a.providerIdentity).join(", ")}`);
|
|
163
|
+
dim(`Your trusted auditors: ${trustedAuditors.join(", ")}`);
|
|
164
|
+
const proceed = await confirm("View documentation anyway?");
|
|
165
|
+
if (!proceed) {
|
|
166
|
+
info("Cancelled.");
|
|
167
|
+
process.exit(0);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
else if (!ctx.isInteractive && trustPolicy === "prompt") {
|
|
171
|
+
throw new TrustError("Cannot display documentation without trusted attestations in non-interactive mode.");
|
|
172
|
+
}
|
|
173
|
+
// trustPolicy === "allow" - continue without prompting
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
// ========================================
|
|
177
|
+
// Display documentation (trust verified)
|
|
178
|
+
// ========================================
|
|
32
179
|
if (options.json) {
|
|
33
180
|
json({
|
|
34
181
|
name: toolName,
|
|
35
182
|
version: versionInfo.version,
|
|
36
183
|
documentation: versionInfo.rawManifest ?? null,
|
|
184
|
+
source: "registry",
|
|
37
185
|
});
|
|
38
186
|
return;
|
|
39
187
|
}
|
|
@@ -48,6 +196,10 @@ async function learnHandler(toolName, options, _ctx) {
|
|
|
48
196
|
console.log(versionInfo.rawManifest);
|
|
49
197
|
}
|
|
50
198
|
catch (err) {
|
|
199
|
+
if (err instanceof TrustError) {
|
|
200
|
+
error(err.message);
|
|
201
|
+
process.exit(1);
|
|
202
|
+
}
|
|
51
203
|
if (err instanceof Error) {
|
|
52
204
|
if (err.message.includes("not_found") || err.message.includes("404")) {
|
|
53
205
|
error(`Tool not found: ${toolName}`);
|
|
@@ -70,7 +222,9 @@ export function configureLearnCommand(program) {
|
|
|
70
222
|
.command("learn <tool>")
|
|
71
223
|
.description("Display documentation (enact.md) for a tool")
|
|
72
224
|
.option("--ver <version>", "Show documentation for a specific version")
|
|
225
|
+
.option("--local", "Only show documentation for locally installed tools")
|
|
73
226
|
.option("--json", "Output as JSON")
|
|
227
|
+
.option("-v, --verbose", "Show detailed output")
|
|
74
228
|
.action(async (toolName, options) => {
|
|
75
229
|
const ctx = {
|
|
76
230
|
cwd: process.cwd(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/learn/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/learn/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* enact mcp command
|
|
3
|
+
*
|
|
4
|
+
* Manage MCP-exposed tools and toolsets.
|
|
5
|
+
*
|
|
6
|
+
* Subcommands:
|
|
7
|
+
* - install: Show configuration for MCP clients (Claude Code, etc.)
|
|
8
|
+
* - list: List tools exposed to MCP
|
|
9
|
+
* - add: Add a tool to MCP (from global installs)
|
|
10
|
+
* - remove: Remove a tool from MCP
|
|
11
|
+
* - toolsets: List available toolsets
|
|
12
|
+
* - use: Switch active toolset
|
|
13
|
+
* - toolset: Manage toolsets (create, delete, add, remove)
|
|
14
|
+
*/
|
|
15
|
+
import type { Command } from "commander";
|
|
16
|
+
/**
|
|
17
|
+
* Configure the mcp command
|
|
18
|
+
*/
|
|
19
|
+
export declare function configureMcpCommand(program: Command): void;
|
|
20
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/mcp/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAiBH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiZzC;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8H1D"}
|