@ariaflowagents/builder 0.1.1 → 0.1.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/README.md +24 -0
- package/dist/builder.d.ts.map +1 -1
- package/dist/builder.js +9 -17
- package/dist/builder.js.map +1 -1
- package/guide/README.md +327 -0
- package/package.json +2 -1
package/README.md
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# @ariaflowagents/builder
|
|
2
|
+
|
|
3
|
+
CLI tool to convert `.ariaflow/` configuration folders into deployable projects.
|
|
4
|
+
|
|
5
|
+
## Quick Start
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install -g @ariaflowagents/builder
|
|
9
|
+
|
|
10
|
+
# Build a pack
|
|
11
|
+
ariaflow build-pack <input-dir> [output-dir] --runtime hono|cf|docker
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Documentation
|
|
15
|
+
|
|
16
|
+
See [guide/README.md](./guide/README.md) for complete documentation.
|
|
17
|
+
|
|
18
|
+
## Publishing
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
npm run build
|
|
22
|
+
npm version patch|minor|major
|
|
23
|
+
npm publish --access public
|
|
24
|
+
```
|
package/dist/builder.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAiB,MAAM,YAAY,CAAC;AAa1E,wBAAsB,SAAS,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CA4J/E;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAiB/E"}
|
package/dist/builder.js
CHANGED
|
@@ -7,6 +7,11 @@ import { generateHonoServer, generateCFWorker, generateWranglerToml, generateDoc
|
|
|
7
7
|
import { generatePackageJson } from './generators/package.js';
|
|
8
8
|
const __filename = fileURLToPath(import.meta.url);
|
|
9
9
|
const __dirname = path.dirname(__filename);
|
|
10
|
+
function normalizeAriaflowPaths(content) {
|
|
11
|
+
let result = content;
|
|
12
|
+
result = result.replace(/"\.\/\.ariaflow\//g, '"./');
|
|
13
|
+
return result;
|
|
14
|
+
}
|
|
10
15
|
export async function buildPack(options) {
|
|
11
16
|
const filesGenerated = [];
|
|
12
17
|
const warnings = [];
|
|
@@ -40,7 +45,10 @@ export async function buildPack(options) {
|
|
|
40
45
|
if (options.copySource !== false) {
|
|
41
46
|
const ariaflowDest = path.join(outputDir, '.ariaflow');
|
|
42
47
|
fs.mkdirSync(ariaflowDest, { recursive: true });
|
|
43
|
-
|
|
48
|
+
const configPath = path.join(inputDir, 'ariaflow.jsonc');
|
|
49
|
+
const configContent = fs.readFileSync(configPath, 'utf-8');
|
|
50
|
+
const normalizedConfig = normalizeAriaflowPaths(configContent);
|
|
51
|
+
fs.writeFileSync(path.join(ariaflowDest, 'ariaflow.jsonc'), normalizedConfig);
|
|
44
52
|
const ariaflowSrc = path.join(inputDir, '.ariaflow');
|
|
45
53
|
if (fs.existsSync(ariaflowSrc)) {
|
|
46
54
|
for (const entry of fs.readdirSync(ariaflowSrc, { withFileTypes: true })) {
|
|
@@ -141,22 +149,6 @@ export async function buildPack(options) {
|
|
|
141
149
|
errors,
|
|
142
150
|
};
|
|
143
151
|
}
|
|
144
|
-
function copyDirectory(src, dest) {
|
|
145
|
-
if (!fs.existsSync(src))
|
|
146
|
-
return;
|
|
147
|
-
const entries = fs.readdirSync(src, { withFileTypes: true });
|
|
148
|
-
for (const entry of entries) {
|
|
149
|
-
const srcPath = path.join(src, entry.name);
|
|
150
|
-
const destPath = path.join(dest, entry.name);
|
|
151
|
-
if (entry.isDirectory()) {
|
|
152
|
-
fs.mkdirSync(destPath, { recursive: true });
|
|
153
|
-
copyDirectory(srcPath, destPath);
|
|
154
|
-
}
|
|
155
|
-
else {
|
|
156
|
-
fs.copyFileSync(srcPath, destPath);
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
152
|
export function validateInput(input) {
|
|
161
153
|
const inputPath = path.resolve(input);
|
|
162
154
|
if (!fs.existsSync(inputPath)) {
|
package/dist/builder.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"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"}
|
package/guide/README.md
ADDED
|
@@ -0,0 +1,327 @@
|
|
|
1
|
+
# AriaFlow Builder Guide
|
|
2
|
+
|
|
3
|
+
The AriaFlow Builder is a CLI tool that converts `.ariaflow/` configuration folders into deployable projects for multiple runtime targets.
|
|
4
|
+
|
|
5
|
+
## Getting Started
|
|
6
|
+
|
|
7
|
+
The easiest way to get started is to copy one of the **starter packs** from `@ariaflowagents/starter` and build it:
|
|
8
|
+
|
|
9
|
+
### Step 1: Copy a Starter Pack
|
|
10
|
+
|
|
11
|
+
Copy a starter from `packages/ariaflow-starters/starters` to your project:
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
# Copy the basic starter (simple support agent)
|
|
15
|
+
cp -r packages/ariaflow-starters/starters/basic my-agent
|
|
16
|
+
|
|
17
|
+
# Or try one of these starters:
|
|
18
|
+
# - support: Customer support with ticketing
|
|
19
|
+
# - sales: Sales agent with product catalog
|
|
20
|
+
# - bank-hybrid: Banking flow with multiple agents
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### Step 2: Build the Pack
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
cd packages/ariaflow-builder
|
|
27
|
+
npm install
|
|
28
|
+
npm run build
|
|
29
|
+
|
|
30
|
+
# Build your agent for Hono server (default)
|
|
31
|
+
node dist/cli.js build-pack ../my-agent ./my-agent-deploy
|
|
32
|
+
|
|
33
|
+
# Build for Cloudflare Workers
|
|
34
|
+
node dist/cli.js build-pack ../my-agent ./my-agent-deploy --runtime cf
|
|
35
|
+
|
|
36
|
+
# Build for Docker
|
|
37
|
+
node dist/cli.js build-pack ../my-agent ./my-agent-deploy --runtime docker
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### Step 3: Run the Generated Project
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
cd my-agent-deploy
|
|
44
|
+
npm install --legacy-peer-deps
|
|
45
|
+
npm run dev
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Your agent will be running at `http://localhost:3000`. Test it:
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
curl -X POST http://localhost:3000/api/chat \
|
|
52
|
+
-H "Content-Type: application/json" \
|
|
53
|
+
-d '{"message": "Hello!"}'
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## Available Starter Packs
|
|
59
|
+
|
|
60
|
+
| Starter | Description | Runtime |
|
|
61
|
+
|---------|-------------|---------|
|
|
62
|
+
| `basic` | Simple support agent with echo tool | Hono |
|
|
63
|
+
| `support` | Customer support with create_ticket tool | Cloudflare |
|
|
64
|
+
| `sales` | Sales agent with product catalog | Docker |
|
|
65
|
+
| `bank-hybrid` | Banking flow with 3 agents, 6 tools | Hono |
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## Quick Start
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
# Install dependencies
|
|
73
|
+
cd packages/ariaflow-builder
|
|
74
|
+
npm install
|
|
75
|
+
npm run build
|
|
76
|
+
|
|
77
|
+
# Build a pack
|
|
78
|
+
node dist/cli.js build-pack <input-dir> [output-dir] --runtime hono|cf|docker
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## Usage
|
|
82
|
+
|
|
83
|
+
### Basic Build
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
# Build from .ariaflow folder
|
|
87
|
+
node dist/cli.js build-pack .ariaflow ./deploy
|
|
88
|
+
|
|
89
|
+
# Build from any input directory
|
|
90
|
+
node dist/cli.js build-pack /path/to/my-agent ./output
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### Runtime Targets
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
# Hono server (default)
|
|
97
|
+
node dist/cli.js build-pack .ariaflow ./deploy --runtime hono
|
|
98
|
+
|
|
99
|
+
# Cloudflare Workers
|
|
100
|
+
node dist/cli.js build-pack .ariaflow ./deploy --runtime cf
|
|
101
|
+
|
|
102
|
+
# Docker container
|
|
103
|
+
node dist/cli.js build-pack .ariaflow ./deploy --runtime docker
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### Options
|
|
107
|
+
|
|
108
|
+
| Option | Description |
|
|
109
|
+
|--------|-------------|
|
|
110
|
+
| `--runtime <type>` | Target runtime: `hono`, `cf`, or `docker` (default: `hono`) |
|
|
111
|
+
| `--name <name>` | Project name (default: from config or `ariaflow-agent`) |
|
|
112
|
+
| `--no-copy-source` | Skip copying `.ariaflow/` to output directory |
|
|
113
|
+
|
|
114
|
+
## Input Structure
|
|
115
|
+
|
|
116
|
+
The input directory should contain:
|
|
117
|
+
|
|
118
|
+
```
|
|
119
|
+
my-agent/
|
|
120
|
+
├── ariaflow.jsonc # Required: Main configuration
|
|
121
|
+
├── .ariaflow/ # Optional: Configuration files
|
|
122
|
+
│ ├── prompts/ # Prompt files (.md)
|
|
123
|
+
│ ├── tools/ # Tool definitions
|
|
124
|
+
│ │ └── my-tool/
|
|
125
|
+
│ │ ├── index.ts
|
|
126
|
+
│ │ └── tool.json
|
|
127
|
+
│ └── skill/ # Skill definitions
|
|
128
|
+
└── package.json # Optional: Tool dependencies
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
## Output Structure
|
|
132
|
+
|
|
133
|
+
The builder generates a complete deployable project:
|
|
134
|
+
|
|
135
|
+
```
|
|
136
|
+
deploy/
|
|
137
|
+
├── .ariaflow/ # Copied source for verification
|
|
138
|
+
│ ├── ariaflow.jsonc
|
|
139
|
+
│ ├── prompts/
|
|
140
|
+
│ └── tools/
|
|
141
|
+
├── src/runtime/ # Generated runtime code
|
|
142
|
+
│ ├── config.ts # TypeScript config
|
|
143
|
+
│ ├── prompts.ts # TypeScript prompts
|
|
144
|
+
│ └── index.ts # Runtime exports
|
|
145
|
+
├── server.ts # Hono entry point (hono/docker)
|
|
146
|
+
├── worker.ts # CF Worker entry point (cf)
|
|
147
|
+
├── wrangler.toml # CF deployment config (cf)
|
|
148
|
+
├── Dockerfile # Container config (docker)
|
|
149
|
+
├── package.json # Dependencies
|
|
150
|
+
├── tsconfig.json # TypeScript config
|
|
151
|
+
├── .env # Copied from project root
|
|
152
|
+
└── .env.example # Environment template
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
## Generated Files by Runtime
|
|
156
|
+
|
|
157
|
+
| File | hono | cf | docker |
|
|
158
|
+
|------|------|----|----|
|
|
159
|
+
| `server.ts` | ✓ | | ✓ |
|
|
160
|
+
| `worker.ts` | | ✓ | |
|
|
161
|
+
| `wrangler.toml` | | ✓ | |
|
|
162
|
+
| `Dockerfile` | | | ✓ |
|
|
163
|
+
|
|
164
|
+
## Running the Generated Project
|
|
165
|
+
|
|
166
|
+
### Hono Server
|
|
167
|
+
|
|
168
|
+
```bash
|
|
169
|
+
cd deploy
|
|
170
|
+
npm install --legacy-peer-deps
|
|
171
|
+
npm run dev # Development mode
|
|
172
|
+
npm run build # Production build
|
|
173
|
+
npm start # Run production server
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
### Cloudflare Workers
|
|
177
|
+
|
|
178
|
+
```bash
|
|
179
|
+
cd deploy
|
|
180
|
+
npm install
|
|
181
|
+
npm run dev # Local development
|
|
182
|
+
npm run deploy # Deploy to Cloudflare
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
### Docker
|
|
186
|
+
|
|
187
|
+
```bash
|
|
188
|
+
cd deploy
|
|
189
|
+
npm install --legacy-peer-deps
|
|
190
|
+
npm run build
|
|
191
|
+
docker build -t my-agent .
|
|
192
|
+
docker run -p 3000:3000 my-agent
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
## Using Starter Packs
|
|
196
|
+
|
|
197
|
+
Copy a starter from `packages/ariaflow-starters/starters` and build it:
|
|
198
|
+
|
|
199
|
+
```bash
|
|
200
|
+
# Copy a starter to your project
|
|
201
|
+
cp -r packages/ariaflow-starters/starters/basic my-agent
|
|
202
|
+
|
|
203
|
+
# Build it
|
|
204
|
+
node dist/cli.js build-pack ../my-agent ./my-agent-deploy
|
|
205
|
+
|
|
206
|
+
# Or try other starters:
|
|
207
|
+
# - support: Customer support with ticketing (--runtime cf)
|
|
208
|
+
# - sales: Sales agent with product catalog (--runtime docker)
|
|
209
|
+
# - bank-hybrid: Banking flow with multiple agents
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
## Environment Variables
|
|
213
|
+
|
|
214
|
+
The builder automatically copies `.env` from:
|
|
215
|
+
1. Project root (`ariaflow/.env`)
|
|
216
|
+
2. Input directory (if exists)
|
|
217
|
+
|
|
218
|
+
Make sure to set your API keys:
|
|
219
|
+
|
|
220
|
+
```bash
|
|
221
|
+
OPENAI_API_KEY=sk-...
|
|
222
|
+
ANTHROPIC_API_KEY=sk-...
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
## Tool Dependencies
|
|
226
|
+
|
|
227
|
+
If your tools require external packages, add them to `.ariaflow/package.json`:
|
|
228
|
+
|
|
229
|
+
```json
|
|
230
|
+
{
|
|
231
|
+
"dependencies": {
|
|
232
|
+
"axios": "^1.6.0",
|
|
233
|
+
"lodash": "^4.17.21"
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
These dependencies will be included in the generated `package.json`.
|
|
239
|
+
|
|
240
|
+
## Examples
|
|
241
|
+
|
|
242
|
+
### Simple Agent
|
|
243
|
+
|
|
244
|
+
```bash
|
|
245
|
+
# Create a simple agent
|
|
246
|
+
mkdir -p my-agent/.ariaflow/prompts
|
|
247
|
+
mkdir -p my-agent/.ariaflow/tools/hello
|
|
248
|
+
|
|
249
|
+
# Create ariaflow.jsonc
|
|
250
|
+
cat > my-agent/ariaflow.jsonc << 'EOF'
|
|
251
|
+
{
|
|
252
|
+
"name": "hello-agent",
|
|
253
|
+
"runtime": { "defaultAgent": "chat" },
|
|
254
|
+
"models": { "default": "openai:gpt-4o-mini" },
|
|
255
|
+
"agents": {
|
|
256
|
+
"chat": {
|
|
257
|
+
"type": "llm",
|
|
258
|
+
"description": "A helpful assistant",
|
|
259
|
+
"prompt": { "inline": "You are a friendly assistant." }
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
EOF
|
|
264
|
+
|
|
265
|
+
# Build and run
|
|
266
|
+
node dist/cli.js build-pack my-agent ./hello-deploy
|
|
267
|
+
cd ./hello-deploy
|
|
268
|
+
npm install --legacy-peer-deps
|
|
269
|
+
npm run dev
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
## Troubleshooting
|
|
273
|
+
|
|
274
|
+
### "Cannot find module '@hono/node-server'"
|
|
275
|
+
|
|
276
|
+
Install with legacy peer deps:
|
|
277
|
+
```bash
|
|
278
|
+
npm install --legacy-peer-deps
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
### "Unsupported model version" error
|
|
282
|
+
|
|
283
|
+
The builder uses `@ai-sdk/openai@^3.0.0` which supports v2 model specification. If you see version errors, make sure your model string is compatible with AI SDK 6.
|
|
284
|
+
|
|
285
|
+
### Nested `.ariaflow/.ariaflow` folders
|
|
286
|
+
|
|
287
|
+
This is caused by incorrect prompt paths in your config. Use `./prompts/...` instead of `./.ariaflow/prompts/...`.
|
|
288
|
+
|
|
289
|
+
## Architecture
|
|
290
|
+
|
|
291
|
+
```
|
|
292
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
293
|
+
│ AriaFlow Builder │
|
|
294
|
+
├─────────────────────────────────────────────────────────────┤
|
|
295
|
+
│ Input: .ariaflow/ folder │
|
|
296
|
+
│ ├── ariaflow.jsonc (config) │
|
|
297
|
+
│ ├── prompts/*.md │
|
|
298
|
+
│ ├── tools/*/index.ts + tool.json │
|
|
299
|
+
│ └── package.json (optional deps) │
|
|
300
|
+
└────────────────┬────────────────────┬───────────────────────┘
|
|
301
|
+
│ │
|
|
302
|
+
▼ ▼
|
|
303
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
304
|
+
│ Converters │
|
|
305
|
+
│ ├── Config Converter (JSONC → TypeScript) │
|
|
306
|
+
│ ├── Prompt Converter (Markdown → TypeScript) │
|
|
307
|
+
│ └── Tool Converter (TS → Compiled) │
|
|
308
|
+
└────────────────┬────────────────────┬───────────────────────┘
|
|
309
|
+
│ │
|
|
310
|
+
▼ ▼
|
|
311
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
312
|
+
│ Generators │
|
|
313
|
+
│ ├── Hono Server (server.ts) │
|
|
314
|
+
│ ├── CF Worker (worker.ts + wrangler.toml) │
|
|
315
|
+
│ └── Docker (Dockerfile) │
|
|
316
|
+
└────────────────┬────────────────────┬───────────────────────┘
|
|
317
|
+
│ │
|
|
318
|
+
▼ ▼
|
|
319
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
320
|
+
│ Output │
|
|
321
|
+
│ Deployable project with: │
|
|
322
|
+
│ ├── server.ts / worker.ts │
|
|
323
|
+
│ ├── package.json + node_modules │
|
|
324
|
+
│ ├── .env (copied from root) │
|
|
325
|
+
│ └── .ariaflow/ (source copy) │
|
|
326
|
+
└─────────────────────────────────────────────────────────────┘
|
|
327
|
+
```
|
package/package.json
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ariaflowagents/builder",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "CLI tool to convert .ariaflow/ configurations into deployable projects",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|
|
8
8
|
"files": [
|
|
9
9
|
"dist",
|
|
10
|
+
"guide",
|
|
10
11
|
"README.md"
|
|
11
12
|
],
|
|
12
13
|
"type": "module",
|