@enactprotocol/cli 2.1.28 → 2.1.29
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/index.d.ts +1 -0
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +2 -0
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/init/templates/claude.d.ts +1 -1
- package/dist/commands/init/templates/claude.d.ts.map +1 -1
- package/dist/commands/init/templates/claude.js +267 -27
- package/dist/commands/init/templates/claude.js.map +1 -1
- package/dist/commands/init/templates/tool-agents.d.ts +1 -1
- package/dist/commands/init/templates/tool-agents.d.ts.map +1 -1
- package/dist/commands/init/templates/tool-agents.js +82 -7
- package/dist/commands/init/templates/tool-agents.js.map +1 -1
- package/dist/commands/learn/index.d.ts.map +1 -1
- package/dist/commands/learn/index.js +4 -11
- package/dist/commands/learn/index.js.map +1 -1
- package/dist/commands/run/index.d.ts.map +1 -1
- package/dist/commands/run/index.js +86 -5
- package/dist/commands/run/index.js.map +1 -1
- package/dist/commands/validate/index.d.ts +11 -0
- package/dist/commands/validate/index.d.ts.map +1 -0
- package/dist/commands/validate/index.js +299 -0
- package/dist/commands/validate/index.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +5 -5
- package/src/commands/index.ts +3 -0
- package/src/commands/init/templates/claude.ts +267 -27
- package/src/commands/init/templates/tool-agents.ts +82 -7
- package/src/commands/run/README.md +17 -0
- package/src/commands/run/index.ts +105 -5
- package/src/commands/validate/index.ts +344 -0
- package/src/index.ts +5 -1
- package/src/types.ts +2 -0
- package/tests/commands/init.test.ts +1 -1
- package/tests/commands/validate.test.ts +81 -0
- package/tsconfig.tsbuildinfo +1 -1
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;GAKG;AA+BH,eAAO,MAAM,OAAO,WAAW,CAAC;AAGhC,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -7,9 +7,9 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import { ensureGlobalSetup } from "@enactprotocol/shared";
|
|
9
9
|
import { Command } from "commander";
|
|
10
|
-
import { configureAuthCommand, configureCacheCommand, configureConfigCommand, configureEnvCommand, configureExecCommand, configureInfoCommand, configureInitCommand, configureInspectCommand, configureInstallCommand, configureLearnCommand, configureListCommand, configureMcpCommand, configurePublishCommand, configureReportCommand, configureRunCommand, configureSearchCommand, configureSetupCommand, configureSignCommand, configureTrustCommand, configureUnyankCommand, configureVisibilityCommand, configureYankCommand, } from "./commands";
|
|
10
|
+
import { configureAuthCommand, configureCacheCommand, configureConfigCommand, configureEnvCommand, configureExecCommand, configureInfoCommand, configureInitCommand, configureInspectCommand, configureInstallCommand, configureLearnCommand, configureListCommand, configureMcpCommand, configurePublishCommand, configureReportCommand, configureRunCommand, configureSearchCommand, configureSetupCommand, configureSignCommand, configureTrustCommand, configureUnyankCommand, configureValidateCommand, configureVisibilityCommand, configureYankCommand, } from "./commands";
|
|
11
11
|
import { error, formatError } from "./utils";
|
|
12
|
-
export const version = "2.1.
|
|
12
|
+
export const version = "2.1.29";
|
|
13
13
|
// Main CLI entry point
|
|
14
14
|
async function main() {
|
|
15
15
|
// Ensure global setup is complete on first run
|
|
@@ -47,6 +47,8 @@ async function main() {
|
|
|
47
47
|
configureVisibilityCommand(program);
|
|
48
48
|
// MCP integration commands
|
|
49
49
|
configureMcpCommand(program);
|
|
50
|
+
// Validation command
|
|
51
|
+
configureValidateCommand(program);
|
|
50
52
|
// Global error handler - handle Commander's help/version exits gracefully
|
|
51
53
|
program.exitOverride((err) => {
|
|
52
54
|
// Commander throws errors for help, version, and other "exit" scenarios
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -14,6 +14,8 @@ export interface GlobalOptions {
|
|
|
14
14
|
quiet?: boolean;
|
|
15
15
|
/** Run without making changes (preview mode) */
|
|
16
16
|
dryRun?: boolean;
|
|
17
|
+
/** Enable debug mode - show detailed parameter and environment information */
|
|
18
|
+
debug?: boolean;
|
|
17
19
|
}
|
|
18
20
|
/**
|
|
19
21
|
* Context passed to command handlers
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,4BAA4B;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,qBAAqB;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,wCAAwC;IACxC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,gDAAgD;IAChD,MAAM,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,4BAA4B;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,qBAAqB;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,wCAAwC;IACxC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,gDAAgD;IAChD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,8EAA8E;IAC9E,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,gCAAgC;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,qBAAqB;IACrB,OAAO,EAAE,aAAa,CAAC;IACvB,wCAAwC;IACxC,IAAI,EAAE,OAAO,CAAC;IACd,0CAA0C;IAC1C,aAAa,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CACxD,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,cAAc,KACpB,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,0BAA0B;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,sBAAsB;IACtB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,kEAAkE;IAClE,SAAS,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,eAAO,MAAM,QAAQ;;;;;;;CAOX,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,OAAO,QAAQ,CAAC,CAAC;AAGhE,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC"}
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAiEH;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,OAAO,EAAE,CAAC;IACV,KAAK,EAAE,CAAC;IACR,WAAW,EAAE,CAAC;IACd,QAAQ,EAAE,CAAC;IACX,gBAAgB,EAAE,CAAC;IACnB,SAAS,EAAE,GAAG,EAAE,sBAAsB;CAC9B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@enactprotocol/cli",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.29",
|
|
4
4
|
"description": "Command-line interface for Enact - the npm for AI tools",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -34,10 +34,10 @@
|
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
36
|
"@clack/prompts": "^0.11.0",
|
|
37
|
-
"@enactprotocol/api": "2.1.
|
|
38
|
-
"@enactprotocol/execution": "2.1.
|
|
39
|
-
"@enactprotocol/secrets": "2.1.
|
|
40
|
-
"@enactprotocol/shared": "2.1.
|
|
37
|
+
"@enactprotocol/api": "2.1.29",
|
|
38
|
+
"@enactprotocol/execution": "2.1.29",
|
|
39
|
+
"@enactprotocol/secrets": "2.1.29",
|
|
40
|
+
"@enactprotocol/shared": "2.1.29",
|
|
41
41
|
"commander": "^12.1.0",
|
|
42
42
|
"picocolors": "^1.1.1"
|
|
43
43
|
},
|
package/src/commands/index.ts
CHANGED
|
@@ -35,3 +35,6 @@ export { configureUnyankCommand } from "./unyank";
|
|
|
35
35
|
export { configureVisibilityCommand } from "./visibility";
|
|
36
36
|
// MCP integration commands
|
|
37
37
|
export { configureMcpCommand } from "./mcp";
|
|
38
|
+
|
|
39
|
+
// Validation command
|
|
40
|
+
export { configureValidateCommand } from "./validate";
|
|
@@ -3,18 +3,24 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const claudeTemplate = `# CLAUDE.md
|
|
5
5
|
|
|
6
|
-
This project uses Enact tools — containerized, signed executables you can run via CLI.
|
|
6
|
+
This project uses Enact tools — containerized, cryptographically-signed executables you can run via CLI.
|
|
7
7
|
|
|
8
8
|
## Quick Reference
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
enact
|
|
13
|
-
enact
|
|
14
|
-
enact
|
|
15
|
-
|
|
9
|
+
|
|
10
|
+
| Task | Command |
|
|
11
|
+
|------|---------|
|
|
12
|
+
| Run with JSON | \`enact run <tool> --args '{"key": "value"}'\` |
|
|
13
|
+
| Run from file | \`enact run <tool> --input-file inputs.json\` |
|
|
14
|
+
| Dry run | \`enact run <tool> --args '{}' --dry-run\` |
|
|
15
|
+
| Debug params | \`enact run <tool> --args '{}' --debug\` |
|
|
16
|
+
| Search tools | \`enact search "keyword"\` |
|
|
17
|
+
| View docs | \`enact learn author/tool\` |
|
|
18
|
+
| Install tool | \`enact install author/tool\` |
|
|
19
|
+
| List installed | \`enact list\` |
|
|
20
|
+
| Sign & publish | \`enact sign ./ && enact publish ./\` |
|
|
16
21
|
|
|
17
22
|
## Running Tools
|
|
23
|
+
|
|
18
24
|
Tools take JSON input and return JSON output:
|
|
19
25
|
\`\`\`bash
|
|
20
26
|
# Run and capture output
|
|
@@ -24,47 +30,281 @@ result=$(enact run author/utils/formatter --args '{"code": "const x=1"}')
|
|
|
24
30
|
enact run tool --args '{}' | jq '.data'
|
|
25
31
|
\`\`\`
|
|
26
32
|
|
|
27
|
-
##
|
|
28
|
-
|
|
33
|
+
## SKILL.md Structure
|
|
34
|
+
|
|
35
|
+
Each tool is defined by a \`SKILL.md\` file (YAML frontmatter + Markdown docs):
|
|
36
|
+
|
|
29
37
|
\`\`\`yaml
|
|
30
38
|
---
|
|
31
39
|
name: namespace/category/tool
|
|
32
|
-
description:
|
|
40
|
+
description: What the tool does
|
|
33
41
|
version: 1.0.0
|
|
34
|
-
|
|
35
|
-
|
|
42
|
+
enact: "2.0.0"
|
|
43
|
+
|
|
44
|
+
from: python:3.12-slim # Docker image (pin versions, not :latest)
|
|
45
|
+
build: pip install requests # Build steps (cached by Dagger)
|
|
36
46
|
command: python /workspace/main.py \${input}
|
|
47
|
+
timeout: 30s
|
|
48
|
+
|
|
37
49
|
inputSchema:
|
|
38
50
|
type: object
|
|
39
51
|
properties:
|
|
40
|
-
input:
|
|
52
|
+
input:
|
|
53
|
+
type: string
|
|
54
|
+
description: "Input to process"
|
|
41
55
|
required: [input]
|
|
56
|
+
|
|
57
|
+
outputSchema:
|
|
58
|
+
type: object
|
|
59
|
+
properties:
|
|
60
|
+
result:
|
|
61
|
+
type: string
|
|
62
|
+
|
|
63
|
+
env:
|
|
64
|
+
API_KEY:
|
|
65
|
+
description: "External API key"
|
|
66
|
+
secret: true # Set via: enact env set API_KEY --secret
|
|
42
67
|
---
|
|
43
68
|
# Tool Name
|
|
44
|
-
|
|
69
|
+
Documentation here.
|
|
70
|
+
\`\`\`
|
|
71
|
+
|
|
72
|
+
## Field Reference
|
|
73
|
+
|
|
74
|
+
| Field | Description |
|
|
75
|
+
|-------|-------------|
|
|
76
|
+
| \`name\` | Hierarchical ID: \`org/category/tool\` |
|
|
77
|
+
| \`description\` | What the tool does |
|
|
78
|
+
| \`version\` | Semver version |
|
|
79
|
+
| \`from\` | Docker image |
|
|
80
|
+
| \`build\` | Build commands (string or array, cached) |
|
|
81
|
+
| \`command\` | Shell command with \`\${param}\` substitution |
|
|
82
|
+
| \`timeout\` | Max execution time (e.g., "30s", "5m") |
|
|
83
|
+
| \`inputSchema\` | JSON Schema for inputs |
|
|
84
|
+
| \`outputSchema\` | JSON Schema for outputs |
|
|
85
|
+
| \`env\` | Environment variables and secrets |
|
|
86
|
+
|
|
87
|
+
## Parameter Substitution
|
|
88
|
+
|
|
89
|
+
Enact auto-quotes parameters. **Never manually quote:**
|
|
90
|
+
|
|
91
|
+
\`\`\`yaml
|
|
92
|
+
# WRONG - causes double-quoting
|
|
93
|
+
command: python /workspace/main.py "\${input}"
|
|
94
|
+
|
|
95
|
+
# RIGHT - Enact handles quoting
|
|
96
|
+
command: python /workspace/main.py \${input}
|
|
97
|
+
\`\`\`
|
|
98
|
+
|
|
99
|
+
**Optional vs Required Parameters:**
|
|
100
|
+
|
|
101
|
+
Parameters listed in the \`required\` array must be provided. All other properties are optional.
|
|
102
|
+
|
|
103
|
+
\`\`\`yaml
|
|
104
|
+
inputSchema:
|
|
105
|
+
type: object
|
|
106
|
+
properties:
|
|
107
|
+
url: # Required (in required array)
|
|
108
|
+
type: string
|
|
109
|
+
user_agent: # Optional (not in required array)
|
|
110
|
+
type: string
|
|
111
|
+
default: "Mozilla/5.0" # Provide default for optional params
|
|
112
|
+
timeout:
|
|
113
|
+
type: number
|
|
114
|
+
default: 30
|
|
115
|
+
required: [url] # Only url is required
|
|
116
|
+
\`\`\`
|
|
117
|
+
|
|
118
|
+
**Best practices for optional parameters:**
|
|
119
|
+
1. Always provide a \`default\` value in the schema when possible
|
|
120
|
+
2. Optional params without defaults become empty strings in commands
|
|
121
|
+
3. Use \`--debug\` to see how parameters are resolved: \`enact run ./ --debug\`
|
|
122
|
+
|
|
123
|
+
Handle optional params in shell commands:
|
|
124
|
+
\`\`\`yaml
|
|
125
|
+
command: "curl \${url} -A '\${user_agent:-Mozilla/5.0}' --max-time \${timeout:-30}"
|
|
126
|
+
\`\`\`
|
|
127
|
+
|
|
128
|
+
Modifiers:
|
|
129
|
+
- \`\${param}\` — auto-quoted (handles spaces, JSON, special chars)
|
|
130
|
+
- \`\${param:raw}\` — raw, no quoting (use carefully)
|
|
131
|
+
|
|
132
|
+
## Output
|
|
133
|
+
|
|
134
|
+
Output valid JSON to stdout when \`outputSchema\` is defined:
|
|
135
|
+
|
|
136
|
+
\`\`\`python
|
|
137
|
+
import json, sys
|
|
138
|
+
|
|
139
|
+
try:
|
|
140
|
+
result = do_work()
|
|
141
|
+
print(json.dumps({"status": "success", "result": result}))
|
|
142
|
+
except Exception as e:
|
|
143
|
+
print(json.dumps({"status": "error", "message": str(e)}))
|
|
144
|
+
sys.exit(1) # non-zero = error
|
|
145
|
+
\`\`\`
|
|
146
|
+
|
|
147
|
+
## Build Steps by Language
|
|
148
|
+
|
|
149
|
+
**Python:**
|
|
150
|
+
\`\`\`yaml
|
|
151
|
+
from: python:3.12-slim
|
|
152
|
+
build: pip install requests pandas
|
|
153
|
+
\`\`\`
|
|
154
|
+
|
|
155
|
+
**Node.js:**
|
|
156
|
+
\`\`\`yaml
|
|
157
|
+
from: node:20-alpine
|
|
158
|
+
build:
|
|
159
|
+
- npm install
|
|
160
|
+
- npm run build
|
|
45
161
|
\`\`\`
|
|
46
162
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
163
|
+
**Rust:**
|
|
164
|
+
\`\`\`yaml
|
|
165
|
+
from: rust:1.83-slim
|
|
166
|
+
build: rustc /workspace/main.rs -o /workspace/tool
|
|
167
|
+
command: /workspace/tool \${input}
|
|
168
|
+
\`\`\`
|
|
169
|
+
|
|
170
|
+
**Go:**
|
|
171
|
+
\`\`\`yaml
|
|
172
|
+
from: golang:1.22-alpine
|
|
173
|
+
build: cd /workspace && go build -o tool main.go
|
|
174
|
+
command: /workspace/tool \${input}
|
|
175
|
+
\`\`\`
|
|
176
|
+
|
|
177
|
+
**System packages:**
|
|
178
|
+
\`\`\`yaml
|
|
179
|
+
build: apt-get update && apt-get install -y libfoo-dev
|
|
180
|
+
\`\`\`
|
|
181
|
+
|
|
182
|
+
Build steps are cached — first run slow, subsequent runs instant.
|
|
183
|
+
|
|
184
|
+
## Base Image Requirements
|
|
185
|
+
|
|
186
|
+
Not all Docker images work as Enact base images. Requirements:
|
|
187
|
+
|
|
188
|
+
**Must have:**
|
|
189
|
+
- \`/bin/sh\` (POSIX shell) - Enact wraps commands with \`sh -c\`
|
|
190
|
+
- Standard filesystem layout
|
|
53
191
|
|
|
54
|
-
|
|
192
|
+
**Recommended base images:**
|
|
193
|
+
| Language | Image | Notes |
|
|
194
|
+
|----------|-------|-------|
|
|
195
|
+
| Python | \`python:3.12-slim\` | Best balance of size/features |
|
|
196
|
+
| Node.js | \`node:20-alpine\` | Smallest, may need build tools |
|
|
197
|
+
| Ruby | \`ruby:3.2-slim\` | For Ruby tools |
|
|
198
|
+
| Go | \`golang:1.22-alpine\` | Compile in build step |
|
|
199
|
+
| Rust | \`rust:1.83-slim\` | Compile in build step |
|
|
200
|
+
| General | \`alpine:3.18\` | Minimal, use apk for packages |
|
|
201
|
+
| Debian | \`debian:bookworm-slim\` | More packages, larger |
|
|
202
|
+
|
|
203
|
+
**Images that may NOT work:**
|
|
204
|
+
- Distroless images (no shell)
|
|
205
|
+
- Scratch images (no shell)
|
|
206
|
+
- Some specialized images with custom entrypoints
|
|
207
|
+
|
|
208
|
+
**Debugging image issues:**
|
|
55
209
|
\`\`\`bash
|
|
56
|
-
|
|
57
|
-
enact
|
|
58
|
-
enact
|
|
210
|
+
# Test if an image works with Enact
|
|
211
|
+
enact exec . "echo test" # Run simple command in tool's container
|
|
212
|
+
enact run ./ --verbose # See detailed container output
|
|
59
213
|
\`\`\`
|
|
60
214
|
|
|
215
|
+
## File Access
|
|
216
|
+
|
|
217
|
+
Tools run in a container with \`/workspace\` as the working directory. All source files are copied there.
|
|
218
|
+
|
|
61
219
|
## Secrets
|
|
62
|
-
|
|
220
|
+
|
|
221
|
+
Declare in \`SKILL.md\`:
|
|
63
222
|
\`\`\`yaml
|
|
64
223
|
env:
|
|
65
|
-
API_KEY:
|
|
224
|
+
API_KEY:
|
|
225
|
+
description: "API key for service"
|
|
226
|
+
secret: true
|
|
66
227
|
\`\`\`
|
|
228
|
+
|
|
229
|
+
Set before running:
|
|
67
230
|
\`\`\`bash
|
|
68
231
|
enact env set API_KEY --secret --namespace author/tool
|
|
69
232
|
\`\`\`
|
|
233
|
+
|
|
234
|
+
Access in code:
|
|
235
|
+
\`\`\`python
|
|
236
|
+
import os
|
|
237
|
+
api_key = os.environ.get('API_KEY')
|
|
238
|
+
\`\`\`
|
|
239
|
+
|
|
240
|
+
## LLM Instruction Tools
|
|
241
|
+
|
|
242
|
+
Tools without a \`command\` field are interpreted by LLMs:
|
|
243
|
+
|
|
244
|
+
\`\`\`yaml
|
|
245
|
+
---
|
|
246
|
+
name: myorg/ai/reviewer
|
|
247
|
+
description: AI-powered code review
|
|
248
|
+
inputSchema:
|
|
249
|
+
type: object
|
|
250
|
+
properties:
|
|
251
|
+
code: { type: string }
|
|
252
|
+
required: [code]
|
|
253
|
+
outputSchema:
|
|
254
|
+
type: object
|
|
255
|
+
properties:
|
|
256
|
+
issues: { type: array }
|
|
257
|
+
score: { type: number }
|
|
258
|
+
---
|
|
259
|
+
# Code Reviewer
|
|
260
|
+
|
|
261
|
+
You are a senior engineer. Review the code for bugs, style, and security.
|
|
262
|
+
Return JSON: {"issues": [...], "score": 75}
|
|
263
|
+
\`\`\`
|
|
264
|
+
|
|
265
|
+
## Publishing Checklist
|
|
266
|
+
|
|
267
|
+
- [ ] \`name\` follows \`namespace/category/tool\` pattern
|
|
268
|
+
- [ ] \`version\` set (semver)
|
|
269
|
+
- [ ] \`description\` is clear and searchable
|
|
270
|
+
- [ ] \`inputSchema\` / \`outputSchema\` defined
|
|
271
|
+
- [ ] \`from\` uses pinned image version
|
|
272
|
+
- [ ] \`timeout\` set appropriately
|
|
273
|
+
- [ ] Tool tested locally with \`enact run ./\`
|
|
274
|
+
|
|
275
|
+
## Troubleshooting
|
|
276
|
+
|
|
277
|
+
\`\`\`bash
|
|
278
|
+
enact run ./ --args '{"x": "y"}' --verbose # Verbose output
|
|
279
|
+
enact run ./ --args '{}' --dry-run # Preview command without running
|
|
280
|
+
enact run ./ --args '{}' --debug # Show parameter resolution details
|
|
281
|
+
enact list # List installed tools
|
|
282
|
+
\`\`\`
|
|
283
|
+
|
|
284
|
+
**Common issues:**
|
|
285
|
+
|
|
286
|
+
| Issue | Solution |
|
|
287
|
+
|-------|----------|
|
|
288
|
+
| "Missing required parameter" | Check your \`required\` array in inputSchema |
|
|
289
|
+
| Parameters not substituting | Use \`--debug\` to see what values are being passed |
|
|
290
|
+
| Optional params failing | Add \`default\` values or handle empty strings |
|
|
291
|
+
| Build step fails | Use \`--verbose\` to see build output |
|
|
292
|
+
| Base image not working | Use recommended images (see Base Image Requirements) |
|
|
293
|
+
| Command exit code 2 | Check if command exists in the container |
|
|
294
|
+
|
|
295
|
+
**Debugging build failures:**
|
|
296
|
+
\`\`\`bash
|
|
297
|
+
enact run ./ --args '{}' --verbose # See build output
|
|
298
|
+
enact exec . "which python" # Check if command exists
|
|
299
|
+
enact exec . "ls /workspace" # Check file mounts
|
|
300
|
+
enact validate ./ # Validate SKILL.md structure
|
|
301
|
+
\`\`\`
|
|
302
|
+
|
|
303
|
+
**Multi-step builds:** Use YAML array syntax for clearer error reporting:
|
|
304
|
+
\`\`\`yaml
|
|
305
|
+
build:
|
|
306
|
+
- apk add --no-cache ruby ruby-dev
|
|
307
|
+
- gem install bundler
|
|
308
|
+
- bundle install
|
|
309
|
+
\`\`\`
|
|
70
310
|
`;
|
|
@@ -12,6 +12,7 @@ Enact tools are containerized, cryptographically-signed executables. Each tool i
|
|
|
12
12
|
| Run with JSON | \`enact run ./ --args '{"key": "value"}'\` |
|
|
13
13
|
| Run from file | \`enact run ./ --input-file inputs.json\` |
|
|
14
14
|
| Dry run | \`enact run ./ --args '{}' --dry-run\` |
|
|
15
|
+
| Debug params | \`enact run ./ --args '{}' --debug\` |
|
|
15
16
|
| Sign & publish | \`enact sign ./ && enact publish ./\` |
|
|
16
17
|
|
|
17
18
|
## SKILL.md Structure
|
|
@@ -78,18 +79,33 @@ command: python /workspace/main.py "\${input}"
|
|
|
78
79
|
command: python /workspace/main.py \${input}
|
|
79
80
|
\`\`\`
|
|
80
81
|
|
|
81
|
-
**Optional
|
|
82
|
+
**Optional vs Required Parameters:**
|
|
83
|
+
|
|
84
|
+
Parameters listed in the \`required\` array must be provided. All other properties are optional.
|
|
85
|
+
|
|
82
86
|
\`\`\`yaml
|
|
83
87
|
inputSchema:
|
|
88
|
+
type: object
|
|
84
89
|
properties:
|
|
85
|
-
|
|
90
|
+
url: # Required (in required array)
|
|
86
91
|
type: string
|
|
87
|
-
|
|
92
|
+
user_agent: # Optional (not in required array)
|
|
93
|
+
type: string
|
|
94
|
+
default: "Mozilla/5.0" # Provide default for optional params
|
|
95
|
+
timeout:
|
|
96
|
+
type: number
|
|
97
|
+
default: 30
|
|
98
|
+
required: [url] # Only url is required
|
|
88
99
|
\`\`\`
|
|
89
100
|
|
|
90
|
-
|
|
101
|
+
**Best practices for optional parameters:**
|
|
102
|
+
1. Always provide a \`default\` value in the schema when possible
|
|
103
|
+
2. Optional params without defaults become empty strings in commands
|
|
104
|
+
3. Use \`--debug\` to see how parameters are resolved: \`enact run ./ --debug\`
|
|
105
|
+
|
|
106
|
+
Handle optional params in shell commands:
|
|
91
107
|
\`\`\`yaml
|
|
92
|
-
command: "
|
|
108
|
+
command: "curl \${url} -A '\${user_agent:-Mozilla/5.0}' --max-time \${timeout:-30}"
|
|
93
109
|
\`\`\`
|
|
94
110
|
|
|
95
111
|
Modifiers:
|
|
@@ -148,6 +164,37 @@ build: apt-get update && apt-get install -y libfoo-dev
|
|
|
148
164
|
|
|
149
165
|
Build steps are cached — first run slow, subsequent runs instant.
|
|
150
166
|
|
|
167
|
+
## Base Image Requirements
|
|
168
|
+
|
|
169
|
+
Not all Docker images work as Enact base images. Requirements:
|
|
170
|
+
|
|
171
|
+
**Must have:**
|
|
172
|
+
- \`/bin/sh\` (POSIX shell) - Enact wraps commands with \`sh -c\`
|
|
173
|
+
- Standard filesystem layout
|
|
174
|
+
|
|
175
|
+
**Recommended base images:**
|
|
176
|
+
| Language | Image | Notes |
|
|
177
|
+
|----------|-------|-------|
|
|
178
|
+
| Python | \`python:3.12-slim\` | Best balance of size/features |
|
|
179
|
+
| Node.js | \`node:20-alpine\` | Smallest, may need build tools |
|
|
180
|
+
| Ruby | \`ruby:3.2-slim\` | For Ruby tools |
|
|
181
|
+
| Go | \`golang:1.22-alpine\` | Compile in build step |
|
|
182
|
+
| Rust | \`rust:1.83-slim\` | Compile in build step |
|
|
183
|
+
| General | \`alpine:3.18\` | Minimal, use apk for packages |
|
|
184
|
+
| Debian | \`debian:bookworm-slim\` | More packages, larger |
|
|
185
|
+
|
|
186
|
+
**Images that may NOT work:**
|
|
187
|
+
- Distroless images (no shell)
|
|
188
|
+
- Scratch images (no shell)
|
|
189
|
+
- Some specialized images with custom entrypoints
|
|
190
|
+
|
|
191
|
+
**Debugging image issues:**
|
|
192
|
+
\`\`\`bash
|
|
193
|
+
# Test if an image works with Enact
|
|
194
|
+
enact exec . "echo test" # Run simple command in tool's container
|
|
195
|
+
enact run ./ --verbose # See detailed container output
|
|
196
|
+
\`\`\`
|
|
197
|
+
|
|
151
198
|
## File Access
|
|
152
199
|
|
|
153
200
|
Tools run in a container with \`/workspace\` as the working directory. All source files are copied there.
|
|
@@ -212,7 +259,35 @@ Return JSON: {"issues": [...], "score": 75}
|
|
|
212
259
|
|
|
213
260
|
\`\`\`bash
|
|
214
261
|
enact run ./ --args '{"x": "y"}' --verbose # Verbose output
|
|
215
|
-
enact run ./ --args '{}' --dry-run
|
|
216
|
-
enact
|
|
262
|
+
enact run ./ --args '{}' --dry-run # Preview command without running
|
|
263
|
+
enact run ./ --args '{}' --debug # Show parameter resolution details
|
|
264
|
+
enact list # List installed tools
|
|
265
|
+
\`\`\`
|
|
266
|
+
|
|
267
|
+
**Common issues:**
|
|
268
|
+
|
|
269
|
+
| Issue | Solution |
|
|
270
|
+
|-------|----------|
|
|
271
|
+
| "Missing required parameter" | Check your \`required\` array in inputSchema |
|
|
272
|
+
| Parameters not substituting | Use \`--debug\` to see what values are being passed |
|
|
273
|
+
| Optional params failing | Add \`default\` values or handle empty strings |
|
|
274
|
+
| Build step fails | Use \`--verbose\` to see build output |
|
|
275
|
+
| Base image not working | Use recommended images (see Base Image Requirements) |
|
|
276
|
+
| Command exit code 2 | Check if command exists in the container |
|
|
277
|
+
|
|
278
|
+
**Debugging build failures:**
|
|
279
|
+
\`\`\`bash
|
|
280
|
+
enact run ./ --args '{}' --verbose # See build output
|
|
281
|
+
enact exec . "which python" # Check if command exists
|
|
282
|
+
enact exec . "ls /workspace" # Check file mounts
|
|
283
|
+
enact validate ./ # Validate SKILL.md structure
|
|
284
|
+
\`\`\`
|
|
285
|
+
|
|
286
|
+
**Multi-step builds:** Use YAML array syntax for clearer error reporting:
|
|
287
|
+
\`\`\`yaml
|
|
288
|
+
build:
|
|
289
|
+
- apk add --no-cache ruby ruby-dev
|
|
290
|
+
- gem install bundler
|
|
291
|
+
- bundle install
|
|
217
292
|
\`\`\`
|
|
218
293
|
`;
|
|
@@ -35,6 +35,7 @@ The `run` command executes a tool using the command defined in its manifest (`en
|
|
|
35
35
|
| `--no-cache` | Disable container caching |
|
|
36
36
|
| `--local` | Only resolve from local sources |
|
|
37
37
|
| `--dry-run` | Show what would be executed without running |
|
|
38
|
+
| `--debug` | Show detailed parameter and environment resolution |
|
|
38
39
|
| `-v, --verbose` | Show detailed output including stderr and timing |
|
|
39
40
|
| `--json` | Output result as JSON |
|
|
40
41
|
|
|
@@ -67,6 +68,9 @@ enact run alice/utils/greeter --args '{"name":"World"}' --json
|
|
|
67
68
|
|
|
68
69
|
# Verbose mode for debugging
|
|
69
70
|
enact run alice/utils/greeter --args '{"name":"World"}' --verbose
|
|
71
|
+
|
|
72
|
+
# Debug parameter resolution
|
|
73
|
+
enact run alice/utils/greeter --args '{"name":"World"}' --debug
|
|
70
74
|
```
|
|
71
75
|
|
|
72
76
|
### Multiple inputs
|
|
@@ -158,6 +162,19 @@ When using `--dry-run`, the command shows:
|
|
|
158
162
|
- Environment variables (secrets masked as `***`)
|
|
159
163
|
- The interpolated command
|
|
160
164
|
|
|
165
|
+
## Debug Output
|
|
166
|
+
|
|
167
|
+
When using `--debug`, the command shows detailed parameter resolution:
|
|
168
|
+
|
|
169
|
+
- Schema properties with types and required/optional status
|
|
170
|
+
- Raw inputs (exactly what was provided)
|
|
171
|
+
- Inputs after defaults were applied
|
|
172
|
+
- Final inputs after validation and type coercion
|
|
173
|
+
- Environment variables (sensitive values masked)
|
|
174
|
+
- The final interpolated command
|
|
175
|
+
|
|
176
|
+
This is useful for troubleshooting parameter issues and understanding how optional parameters are handled.
|
|
177
|
+
|
|
161
178
|
## Exit Codes
|
|
162
179
|
|
|
163
180
|
| Code | Description |
|