@enactprotocol/enact 2.1.29 → 2.1.31
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/README.md +321 -0
- package/package.json +6 -6
package/README.md
ADDED
|
@@ -0,0 +1,321 @@
|
|
|
1
|
+
# Enact
|
|
2
|
+
|
|
3
|
+
Everything you need to run your own AI tool registry. See it live: **[enact.tools](https://enact.tools)**
|
|
4
|
+
|
|
5
|
+
Enact is a verified, portable protocol for defining, discovering, and safely executing AI-ready tools — inspired by npm.
|
|
6
|
+
|
|
7
|
+
## Overview
|
|
8
|
+
|
|
9
|
+
Enact provides end-to-end infrastructure for creating, publishing, and running containerized tools designed for AI agents and automation workflows. It combines a tool registry, trust and attestation system, and secure execution engine into a unified platform.
|
|
10
|
+
|
|
11
|
+
**Key Features**
|
|
12
|
+
|
|
13
|
+
* 📦 **Tool Registry** — Discover, publish, and share executable tools
|
|
14
|
+
* 🔐 **Trust System** — Sigstore-based signing, verification, and attestations
|
|
15
|
+
* 🐳 **Containerized Execution** — Isolated and reproducible runs powered by Dagger
|
|
16
|
+
* 🌐 **Web UI** — Manage environments, secrets, and configuration
|
|
17
|
+
* 🤖 **MCP Integration** — Native Model Context Protocol support for AI agents
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Quick Start
|
|
22
|
+
|
|
23
|
+
### Installation
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
# Install globally
|
|
27
|
+
npm install -g enact-cli
|
|
28
|
+
|
|
29
|
+
# Or using bun
|
|
30
|
+
bun install -g enact-cli
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### Basic Usage
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
# Search for tools
|
|
37
|
+
enact search greeting
|
|
38
|
+
|
|
39
|
+
# Learn about a tool (view its SKILL.md documentation)
|
|
40
|
+
enact learn enact/hello-python
|
|
41
|
+
|
|
42
|
+
# Run a tool
|
|
43
|
+
enact run enact/hello-python --args '{"name": "World"}'
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### Example: What `enact learn` Shows
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
$ enact learn enact/hello-python
|
|
50
|
+
|
|
51
|
+
enact/hello-python@1.0.3
|
|
52
|
+
───────────────────────────
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
name: "enact/hello-python"
|
|
56
|
+
version: "1.0.3"
|
|
57
|
+
description: "A simple Python greeting tool"
|
|
58
|
+
from: "python:3.12-slim"
|
|
59
|
+
|
|
60
|
+
inputSchema:
|
|
61
|
+
type: object
|
|
62
|
+
properties:
|
|
63
|
+
name:
|
|
64
|
+
type: string
|
|
65
|
+
description: "Name to greet"
|
|
66
|
+
default: "World"
|
|
67
|
+
|
|
68
|
+
command: "python /workspace/hello.py ${name}"
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
# Hello Python
|
|
72
|
+
|
|
73
|
+
A simple Python tool that greets you by name.
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### Example: Running a Tool
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
$ enact run enact/hello-python --args '{"name": "Anthropic"}'
|
|
80
|
+
|
|
81
|
+
◇ ✓ Resolved: enact/hello-python
|
|
82
|
+
◐ Running enact/hello-python (python:3.12-slim)...
|
|
83
|
+
◇ ✓ Execution complete
|
|
84
|
+
|
|
85
|
+
Hello, Anthropic! 🐍
|
|
86
|
+
Generated at: 2025-12-19T15:33:38
|
|
87
|
+
Python version: 3.12.12
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### Example Tool Structure
|
|
91
|
+
|
|
92
|
+
An Enact tool is a directory with a `SKILL.md` manifest and your code:
|
|
93
|
+
|
|
94
|
+
```
|
|
95
|
+
my-tool/
|
|
96
|
+
├── SKILL.md # Tool manifest (required) - defines inputs, outputs, and execution
|
|
97
|
+
├── main.py # Your code (any language)
|
|
98
|
+
└── requirements.txt # Dependencies (optional)
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
**SKILL.md** is a Markdown file with YAML frontmatter that defines your tool:
|
|
102
|
+
|
|
103
|
+
```yaml
|
|
104
|
+
---
|
|
105
|
+
name: acme/hello-python
|
|
106
|
+
version: 1.0.0
|
|
107
|
+
description: A friendly greeting tool
|
|
108
|
+
from: python:3.12-slim
|
|
109
|
+
build: pip install -r requirements.txt
|
|
110
|
+
command: python /workspace/main.py ${name}
|
|
111
|
+
|
|
112
|
+
inputSchema:
|
|
113
|
+
type: object
|
|
114
|
+
properties:
|
|
115
|
+
name:
|
|
116
|
+
type: string
|
|
117
|
+
description: Name to greet
|
|
118
|
+
default: World
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
# Hello Python
|
|
122
|
+
|
|
123
|
+
This tool greets you by name. Pass a `name` parameter to customize the greeting.
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
Create a new tool with `enact init --tool`, test with `enact run ./`, and publish with `enact publish`.
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## Enact Registry
|
|
131
|
+
|
|
132
|
+
**[https://enact.tools](https://enact.tools)** is the official Enact registry where you can:
|
|
133
|
+
|
|
134
|
+
- **Browse tools** — Explore the catalog of published tools
|
|
135
|
+
- **Sign up** — Create an account to start publishing your own tools
|
|
136
|
+
- **Publish tools** — Push your tools to the registry with `enact publish`
|
|
137
|
+
- **Manage your profile** — Track your published tools and usage
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
# Login to the registry
|
|
141
|
+
enact login
|
|
142
|
+
|
|
143
|
+
# Publish your tool
|
|
144
|
+
enact publish
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## Architecture
|
|
150
|
+
|
|
151
|
+
This monorepo contains all core Enact components:
|
|
152
|
+
|
|
153
|
+
```
|
|
154
|
+
packages/
|
|
155
|
+
├── api # Registry API client
|
|
156
|
+
├── cli # Command-line interface
|
|
157
|
+
├── execution # Dagger-based execution engine
|
|
158
|
+
├── mcp-server # MCP server for AI integrations
|
|
159
|
+
├── secrets # Secure credential storage
|
|
160
|
+
├── server # Supabase Edge Functions (registry backend)
|
|
161
|
+
├── shared # Core utilities and business logic
|
|
162
|
+
├── trust # Sigstore integration & attestations
|
|
163
|
+
└── web # Web UI for configuration and secrets
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
---
|
|
167
|
+
|
|
168
|
+
## Documentation
|
|
169
|
+
|
|
170
|
+
* **Getting Started:** [GETTING-STARTED.md](./GETTING-STARTED.md)
|
|
171
|
+
* **Development Setup:** [DEV-SETUP.md](./DEV-SETUP.md)
|
|
172
|
+
* **Deployment Guide:** [DEPLOYMENT.md](./DEPLOYMENT.md)
|
|
173
|
+
* **API Reference:** [docs/API.md](./docs/API.md)
|
|
174
|
+
* **Trust System:** [docs/TRUST.md](./docs/TRUST.md)
|
|
175
|
+
* **Roadmap:** [ROADMAP.md](./ROADMAP.md)
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
## Developer Guide
|
|
180
|
+
|
|
181
|
+
See [DEV-SETUP.md](./DEV-SETUP.md) for full instructions.
|
|
182
|
+
|
|
183
|
+
|
|
184
|
+
**Run CLI in development mode:**
|
|
185
|
+
|
|
186
|
+
```bash
|
|
187
|
+
cd packages/cli
|
|
188
|
+
bun run dev -- search calculator
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
**Type checking & cleanup:**
|
|
192
|
+
|
|
193
|
+
```bash
|
|
194
|
+
bun run typecheck # Type checking
|
|
195
|
+
bun run clean # Remove build artifacts and node_modules
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
## Packages
|
|
201
|
+
|
|
202
|
+
### **@enactprotocol/api**
|
|
203
|
+
|
|
204
|
+
Registry API client for tool discovery and installation.
|
|
205
|
+
Features:
|
|
206
|
+
|
|
207
|
+
* Tool search and metadata retrieval
|
|
208
|
+
* Bundle download and caching
|
|
209
|
+
* Authentication support
|
|
210
|
+
* Rate limiting & error handling
|
|
211
|
+
**Status:** Core functionality complete.
|
|
212
|
+
|
|
213
|
+
### **@enactprotocol/cli**
|
|
214
|
+
|
|
215
|
+
User-facing command-line interface.
|
|
216
|
+
Commands include:
|
|
217
|
+
|
|
218
|
+
* `enact setup` — Initial configuration
|
|
219
|
+
* `enact search` — Discover tools
|
|
220
|
+
* `enact install` — Install tools
|
|
221
|
+
* `enact run` — Execute tools
|
|
222
|
+
* `enact get` / `inspect` / `list` — Metadata and installed tools
|
|
223
|
+
**Status:** Core commands implemented and stable.
|
|
224
|
+
|
|
225
|
+
### **@enactprotocol/execution**
|
|
226
|
+
|
|
227
|
+
Execution engine with sandboxing and resource isolation using Dagger.
|
|
228
|
+
**Status:** Core execution engine complete with container support.
|
|
229
|
+
|
|
230
|
+
### **@enactprotocol/mcp-server**
|
|
231
|
+
|
|
232
|
+
MCP server enabling AI agents to discover and invoke tools.
|
|
233
|
+
**Status:** Not yet started.
|
|
234
|
+
|
|
235
|
+
### **@enactprotocol/secrets**
|
|
236
|
+
|
|
237
|
+
Secure credential storage using system keyring (macOS Keychain, Windows Credential Manager, Linux Secret Service).
|
|
238
|
+
**Status:** Full implementation complete with namespace resolution.
|
|
239
|
+
|
|
240
|
+
### **@enactprotocol/server**
|
|
241
|
+
|
|
242
|
+
Supabase Edge Functions backend for the registry with PostgreSQL database and R2 storage.
|
|
243
|
+
**Status:** Production-ready with full search, publish, trust, and attestation APIs.
|
|
244
|
+
|
|
245
|
+
### **@enactprotocol/shared**
|
|
246
|
+
|
|
247
|
+
Core utilities, types, and business logic shared across all packages.
|
|
248
|
+
**Status:** Complete with manifest parsing, validation, tool resolution, and registry management.
|
|
249
|
+
|
|
250
|
+
### **@enactprotocol/trust**
|
|
251
|
+
|
|
252
|
+
Sigstore integration for signing and verifying tool attestations.
|
|
253
|
+
**Status:** Complete with certificate-based identity verification and policy evaluation.
|
|
254
|
+
|
|
255
|
+
### **@enactprotocol/web**
|
|
256
|
+
|
|
257
|
+
React-based web UI for managing environments, secrets, and configuration.
|
|
258
|
+
**Status:** Complete with Supabase authentication and environment management.
|
|
259
|
+
|
|
260
|
+
|
|
261
|
+
|
|
262
|
+
## Development
|
|
263
|
+
|
|
264
|
+
### Prerequisites
|
|
265
|
+
|
|
266
|
+
* Bun 1.0+
|
|
267
|
+
* Docker (execution engine)
|
|
268
|
+
* Supabase CLI (local registry)
|
|
269
|
+
|
|
270
|
+
### Setup
|
|
271
|
+
|
|
272
|
+
```bash
|
|
273
|
+
bun install
|
|
274
|
+
bun run build
|
|
275
|
+
bun test
|
|
276
|
+
bun run typecheck
|
|
277
|
+
bun run lint
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
**Local development workflow:**
|
|
281
|
+
|
|
282
|
+
```bash
|
|
283
|
+
# Start the local registry
|
|
284
|
+
cd packages/server
|
|
285
|
+
supabase start
|
|
286
|
+
|
|
287
|
+
# Develop CLI
|
|
288
|
+
cd packages/cli
|
|
289
|
+
bun run dev -- search calculator
|
|
290
|
+
|
|
291
|
+
# Watch tests
|
|
292
|
+
bun test --watch
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
---
|
|
296
|
+
|
|
297
|
+
## Contributing
|
|
298
|
+
|
|
299
|
+
We welcome contributions!
|
|
300
|
+
|
|
301
|
+
1. Fork the repository
|
|
302
|
+
2. Create a feature branch
|
|
303
|
+
3. Implement your changes with tests
|
|
304
|
+
4. Run `bun run lint` and `bun test`
|
|
305
|
+
5. Submit a pull request
|
|
306
|
+
|
|
307
|
+
---
|
|
308
|
+
|
|
309
|
+
## License
|
|
310
|
+
|
|
311
|
+
Apache-2.0 — see [LICENSE](./LICENSE).
|
|
312
|
+
|
|
313
|
+
---
|
|
314
|
+
|
|
315
|
+
## Community
|
|
316
|
+
|
|
317
|
+
* **Website:** [https://enact.tools](https://enact.tools)
|
|
318
|
+
* **Registry API:** [https://siikwkfgsmouioodghho.supabase.co/functions/v1](https://siikwkfgsmouioodghho.supabase.co/functions/v1)
|
|
319
|
+
* **Issues:** [https://github.com/EnactProtocol/enact-cli-2.0/issues](https://github.com/EnactProtocol/enact-cli-2.0/issues)
|
|
320
|
+
* **Discussions:** [https://github.com/EnactProtocol/enact-cli-2.0/discussions](https://github.com/EnactProtocol/enact-cli-2.0/discussions)
|
|
321
|
+
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@enactprotocol/enact",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.31",
|
|
4
4
|
"description": "Enact CLI (thin wrapper that loads the correct platform binary)",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -12,11 +12,11 @@
|
|
|
12
12
|
"enact": "./bin/enact.js"
|
|
13
13
|
},
|
|
14
14
|
"optionalDependencies": {
|
|
15
|
-
"@enactprotocol/enact-darwin-arm64": "2.1.
|
|
16
|
-
"@enactprotocol/enact-darwin-x64": "2.1.
|
|
17
|
-
"@enactprotocol/enact-linux-arm64": "2.1.
|
|
18
|
-
"@enactprotocol/enact-linux-x64": "2.1.
|
|
19
|
-
"@enactprotocol/enact-win32-x64": "2.1.
|
|
15
|
+
"@enactprotocol/enact-darwin-arm64": "2.1.31",
|
|
16
|
+
"@enactprotocol/enact-darwin-x64": "2.1.31",
|
|
17
|
+
"@enactprotocol/enact-linux-arm64": "2.1.31",
|
|
18
|
+
"@enactprotocol/enact-linux-x64": "2.1.31",
|
|
19
|
+
"@enactprotocol/enact-win32-x64": "2.1.31"
|
|
20
20
|
},
|
|
21
21
|
"engines": {
|
|
22
22
|
"node": ">=18.0.0"
|