@enactprotocol/enact 2.1.30 → 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.
Files changed (2) hide show
  1. package/README.md +321 -0
  2. 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.30",
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.30",
16
- "@enactprotocol/enact-darwin-x64": "2.1.30",
17
- "@enactprotocol/enact-linux-arm64": "2.1.30",
18
- "@enactprotocol/enact-linux-x64": "2.1.30",
19
- "@enactprotocol/enact-win32-x64": "2.1.30"
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"