@ariaflowagents/builder 0.4.8 → 0.5.0
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 +15 -0
- package/dist/builder.d.ts.map +1 -1
- package/dist/builder.js +35 -13
- package/dist/builder.js.map +1 -1
- package/dist/converters/index.d.ts +12 -1
- package/dist/converters/index.d.ts.map +1 -1
- package/dist/converters/index.js +466 -4
- package/dist/converters/index.js.map +1 -1
- package/dist/generators/entry-points.d.ts +2 -2
- package/dist/generators/entry-points.d.ts.map +1 -1
- package/dist/generators/entry-points.js +66 -38
- package/dist/generators/entry-points.js.map +1 -1
- package/dist/generators/package.d.ts.map +1 -1
- package/dist/generators/package.js +33 -19
- package/dist/generators/package.js.map +1 -1
- package/dist/loader.d.ts.map +1 -1
- package/dist/loader.js +16 -2
- package/dist/loader.js.map +1 -1
- package/dist/types.d.ts +3 -17
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -11,6 +11,21 @@ npm install -g @ariaflowagents/builder
|
|
|
11
11
|
ariaflow build-pack <input-dir> [output-dir] --runtime hono|cf|docker
|
|
12
12
|
```
|
|
13
13
|
|
|
14
|
+
## Runtimes
|
|
15
|
+
|
|
16
|
+
### Hono (Node)
|
|
17
|
+
- Uses Node-compatible runtime with filesystem access.
|
|
18
|
+
- Good for local dev and container deployments.
|
|
19
|
+
|
|
20
|
+
### Cloudflare Workers (cf)
|
|
21
|
+
- Bundles tools, prompts, skills, and flows at build time (no runtime filesystem reads).
|
|
22
|
+
- Supports tool types: `module`, `http`, and `skill-loader`.
|
|
23
|
+
- Generates `src/runtime/tools.ts` to build the tool registry and hydrate flow tools.
|
|
24
|
+
- Output includes `worker.ts` and `wrangler.jsonc` for deployment.
|
|
25
|
+
|
|
26
|
+
### Docker
|
|
27
|
+
- Produces a Node server suitable for container deployments.
|
|
28
|
+
|
|
14
29
|
## Documentation
|
|
15
30
|
|
|
16
31
|
See [guide/README.md](./guide/README.md) for complete documentation.
|
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":"AAiBA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAiB,MAAM,YAAY,CAAC;AAa1E,wBAAsB,SAAS,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CAmL/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
|
@@ -2,8 +2,8 @@ import * as fs from 'fs';
|
|
|
2
2
|
import * as path from 'path';
|
|
3
3
|
import { fileURLToPath } from 'url';
|
|
4
4
|
import { loadPackStructure } from './loader.js';
|
|
5
|
-
import { convertConfigToTypeScript, convertConfigToRuntime, convertPromptsToTypeScript } from './converters/index.js';
|
|
6
|
-
import { generateHonoServer, generateCFWorker,
|
|
5
|
+
import { convertConfigToTypeScript, convertConfigToTypeScriptForCF, convertConfigToRuntime, convertConfigToRuntimeCF, convertPromptsToTypeScript, convertSkillsToTypeScript, convertToolsToTypeScriptForCF, } from './converters/index.js';
|
|
6
|
+
import { generateHonoServer, generateCFWorker, generateWranglerConfig, generateDockerfile, generateTsConfig, generateEnvExample } from './generators/entry-points.js';
|
|
7
7
|
import { generatePackageJson } from './generators/package.js';
|
|
8
8
|
const __filename = fileURLToPath(import.meta.url);
|
|
9
9
|
const __dirname = path.dirname(__filename);
|
|
@@ -79,28 +79,50 @@ export async function buildPack(options) {
|
|
|
79
79
|
}
|
|
80
80
|
filesGenerated.push('.ariaflow/');
|
|
81
81
|
}
|
|
82
|
-
|
|
82
|
+
let configTs;
|
|
83
|
+
if (options.runtime === 'cf') {
|
|
84
|
+
// For CF, use inline prompts and skills instead of file references
|
|
85
|
+
configTs = convertConfigToTypeScriptForCF(packStructure.config, packStructure.prompts, packStructure.skills);
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
configTs = convertConfigToTypeScript(packStructure.config);
|
|
89
|
+
}
|
|
83
90
|
fs.writeFileSync(path.join(outputDir, 'src', 'runtime', 'config.ts'), configTs);
|
|
84
91
|
filesGenerated.push('src/runtime/config.ts');
|
|
85
92
|
const promptsTs = convertPromptsToTypeScript(packStructure.prompts);
|
|
86
93
|
fs.writeFileSync(path.join(outputDir, 'src', 'runtime', 'prompts.ts'), promptsTs);
|
|
87
94
|
filesGenerated.push('src/runtime/prompts.ts');
|
|
88
|
-
|
|
95
|
+
// Generate skills.ts for all runtimes
|
|
96
|
+
const skillsTs = convertSkillsToTypeScript(packStructure.skills);
|
|
97
|
+
fs.writeFileSync(path.join(outputDir, 'src', 'runtime', 'skills.ts'), skillsTs);
|
|
98
|
+
filesGenerated.push('src/runtime/skills.ts');
|
|
99
|
+
if (options.runtime === 'cf') {
|
|
100
|
+
const toolsTs = convertToolsToTypeScriptForCF(packStructure.tools);
|
|
101
|
+
fs.writeFileSync(path.join(outputDir, 'src', 'runtime', 'tools.ts'), toolsTs);
|
|
102
|
+
filesGenerated.push('src/runtime/tools.ts');
|
|
103
|
+
}
|
|
104
|
+
const runtimeTs = options.runtime === 'cf'
|
|
105
|
+
? convertConfigToRuntimeCF()
|
|
106
|
+
: convertConfigToRuntime();
|
|
89
107
|
fs.writeFileSync(path.join(outputDir, 'src', 'runtime', 'index.ts'), runtimeTs);
|
|
90
108
|
filesGenerated.push('src/runtime/index.ts');
|
|
91
|
-
|
|
109
|
+
// Extract name from ARIA_DEPLOYMENT_ID env var, input directory, or option
|
|
110
|
+
// Always prefix with ariaflow-agent- for CF deployments
|
|
111
|
+
const inputDirName = path.basename(inputDir);
|
|
112
|
+
const baseName = process.env.ARIA_DEPLOYMENT_ID || options.name || inputDirName || 'agent';
|
|
113
|
+
const name = options.runtime === 'cf' ? `ariaflow-agent-${baseName}` : baseName;
|
|
92
114
|
if (options.runtime === 'hono' || options.runtime === 'docker') {
|
|
93
115
|
const serverTs = generateHonoServer(name);
|
|
94
116
|
fs.writeFileSync(path.join(outputDir, 'server.ts'), serverTs);
|
|
95
117
|
filesGenerated.push('server.ts');
|
|
96
118
|
}
|
|
97
119
|
if (options.runtime === 'cf') {
|
|
98
|
-
const workerTs = generateCFWorker(
|
|
120
|
+
const workerTs = generateCFWorker(baseName);
|
|
99
121
|
fs.writeFileSync(path.join(outputDir, 'worker.ts'), workerTs);
|
|
100
122
|
filesGenerated.push('worker.ts');
|
|
101
|
-
const
|
|
102
|
-
fs.writeFileSync(path.join(outputDir, 'wrangler.
|
|
103
|
-
filesGenerated.push('wrangler.
|
|
123
|
+
const wranglerConfig = generateWranglerConfig(name, baseName);
|
|
124
|
+
fs.writeFileSync(path.join(outputDir, 'wrangler.jsonc'), wranglerConfig);
|
|
125
|
+
filesGenerated.push('wrangler.jsonc');
|
|
104
126
|
}
|
|
105
127
|
if (options.runtime === 'docker') {
|
|
106
128
|
const dockerfile = generateDockerfile();
|
|
@@ -133,14 +155,14 @@ export async function buildPack(options) {
|
|
|
133
155
|
if (!envCopied) {
|
|
134
156
|
warnings.push('No .env file found. Copy .env.example to .env and add your API keys.');
|
|
135
157
|
}
|
|
136
|
-
if (packStructure.config.providers && Object.keys(packStructure.config.providers).length > 0) {
|
|
137
|
-
const providerNames = Object.keys(packStructure.config.providers);
|
|
138
|
-
warnings.push(`Found providers: ${providerNames.join(', ')}. Make sure to set API keys in environment variables.`);
|
|
139
|
-
}
|
|
140
158
|
if (packStructure.tools.size > 0) {
|
|
141
159
|
const toolNames = Array.from(packStructure.tools.keys());
|
|
142
160
|
warnings.push(`Found ${toolNames.length} tools: ${toolNames.join(', ')}. Dependencies will be installed from .ariaflow/package.json if present.`);
|
|
143
161
|
}
|
|
162
|
+
if (packStructure.skills.size > 0) {
|
|
163
|
+
const skillNames = Array.from(packStructure.skills.keys());
|
|
164
|
+
warnings.push(`Found ${skillNames.length} skills: ${skillNames.join(', ')}. Skills have been bundled for deployment.`);
|
|
165
|
+
}
|
|
144
166
|
return {
|
|
145
167
|
success: true,
|
|
146
168
|
outputPath: outputDir,
|
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;AAEpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,
|
|
1
|
+
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,17 @@
|
|
|
1
|
-
import { AriaflowConfig } from '
|
|
1
|
+
import type { AriaflowConfig } from '@ariaflowagents/config';
|
|
2
|
+
export declare function convertSkillsToTypeScript(skills: Map<string, string>): string;
|
|
3
|
+
export declare function convertConfigToTypeScriptForCF(config: AriaflowConfig, prompts: Map<string, string>, skills: Map<string, string>): string;
|
|
4
|
+
export declare function convertToolsToTypeScriptForCF(tools: Map<string, {
|
|
5
|
+
definition: {
|
|
6
|
+
name: string;
|
|
7
|
+
description: string;
|
|
8
|
+
parameters: Record<string, unknown>;
|
|
9
|
+
};
|
|
10
|
+
source: string;
|
|
11
|
+
}>): string;
|
|
2
12
|
export declare function convertConfigToTypeScript(config: AriaflowConfig): string;
|
|
3
13
|
export declare function convertConfigToRuntime(): string;
|
|
14
|
+
export declare function convertConfigToRuntimeCF(): string;
|
|
4
15
|
export declare function sanitizeForTemplateLiteral(str: string): string;
|
|
5
16
|
export declare function convertPromptsToTypeScript(prompts: Map<string, string>): string;
|
|
6
17
|
export declare function convertToolsToTypeScript(tools: Map<string, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/converters/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/converters/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAG7D,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CA0C7E;AAsHD,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAC1B,MAAM,CAyFR;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,GAAG,CACR,MAAM,EACN;IAAE,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAC3G,GACA,MAAM,CAgOR;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAOxE;AAED,wBAAgB,sBAAsB,IAAI,MAAM,CAQ/C;AAGD,wBAAgB,wBAAwB,IAAI,MAAM,CAWjD;AAED,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAK9D;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAe/E;AAED,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE;IAAE,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,GAC7H,MAAM,CAkBR"}
|
package/dist/converters/index.js
CHANGED
|
@@ -1,3 +1,454 @@
|
|
|
1
|
+
// Convert skills map to TypeScript exports (similar to prompts)
|
|
2
|
+
export function convertSkillsToTypeScript(skills) {
|
|
3
|
+
if (skills.size === 0) {
|
|
4
|
+
return `export const skills = {} as const;
|
|
5
|
+
export const skillDefinitions = [] as const;
|
|
6
|
+
export type SkillDefinition = typeof skillDefinitions[number];
|
|
7
|
+
export type SkillName = keyof typeof skills;
|
|
8
|
+
`;
|
|
9
|
+
}
|
|
10
|
+
const parsedSkills = Array.from(skills.entries()).map(([name, raw]) => parseSkillContent(name, raw));
|
|
11
|
+
const skillEntries = parsedSkills
|
|
12
|
+
.map(skill => {
|
|
13
|
+
const sanitized = sanitizeForTemplateLiteral(skill.content);
|
|
14
|
+
return ` ${JSON.stringify(skill.name)}: \`${sanitized}\``;
|
|
15
|
+
})
|
|
16
|
+
.join(',\n');
|
|
17
|
+
const definitionEntries = parsedSkills
|
|
18
|
+
.map(skill => {
|
|
19
|
+
const nameJson = JSON.stringify(skill.name);
|
|
20
|
+
const descriptionJson = JSON.stringify(skill.description);
|
|
21
|
+
const licenseJson = skill.license ? JSON.stringify(skill.license) : 'undefined';
|
|
22
|
+
const metadataJson = skill.metadata ? JSON.stringify(skill.metadata, null, 2) : 'undefined';
|
|
23
|
+
const content = sanitizeForTemplateLiteral(skill.content);
|
|
24
|
+
return ` {\n name: ${nameJson},\n description: ${descriptionJson},\n license: ${licenseJson},\n metadata: ${metadataJson},\n content: \`${content}\`\n }`;
|
|
25
|
+
})
|
|
26
|
+
.join(',\n');
|
|
27
|
+
return `export const skills = {
|
|
28
|
+
${skillEntries}
|
|
29
|
+
} as const;
|
|
30
|
+
|
|
31
|
+
export const skillDefinitions = [
|
|
32
|
+
${definitionEntries}
|
|
33
|
+
] as const;
|
|
34
|
+
|
|
35
|
+
export type SkillDefinition = typeof skillDefinitions[number];
|
|
36
|
+
export type SkillName = keyof typeof skills;
|
|
37
|
+
`;
|
|
38
|
+
}
|
|
39
|
+
function parseSkillContent(name, raw) {
|
|
40
|
+
const trimmed = raw.trim();
|
|
41
|
+
if (!trimmed.startsWith('---')) {
|
|
42
|
+
return {
|
|
43
|
+
name,
|
|
44
|
+
description: 'No description',
|
|
45
|
+
license: undefined,
|
|
46
|
+
metadata: undefined,
|
|
47
|
+
content: trimmed,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
const lines = raw.split(/\r?\n/);
|
|
51
|
+
if (lines[0].trim() !== '---') {
|
|
52
|
+
return {
|
|
53
|
+
name,
|
|
54
|
+
description: 'No description',
|
|
55
|
+
license: undefined,
|
|
56
|
+
metadata: undefined,
|
|
57
|
+
content: trimmed,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
let endIndex = -1;
|
|
61
|
+
for (let i = 1; i < lines.length; i += 1) {
|
|
62
|
+
if (lines[i].trim() === '---') {
|
|
63
|
+
endIndex = i;
|
|
64
|
+
break;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
if (endIndex === -1) {
|
|
68
|
+
return {
|
|
69
|
+
name,
|
|
70
|
+
description: 'No description',
|
|
71
|
+
license: undefined,
|
|
72
|
+
metadata: undefined,
|
|
73
|
+
content: trimmed,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
const frontmatterLines = lines.slice(1, endIndex);
|
|
77
|
+
const body = lines.slice(endIndex + 1).join('\n').trim();
|
|
78
|
+
const data = {};
|
|
79
|
+
let currentParent = null;
|
|
80
|
+
for (const line of frontmatterLines) {
|
|
81
|
+
if (!line.trim()) {
|
|
82
|
+
continue;
|
|
83
|
+
}
|
|
84
|
+
const indent = line.match(/^\s*/)?.[0]?.length ?? 0;
|
|
85
|
+
if (indent === 0) {
|
|
86
|
+
const [keyPart, ...rest] = line.split(':');
|
|
87
|
+
const key = keyPart.trim();
|
|
88
|
+
const value = rest.join(':').trim();
|
|
89
|
+
if (!key) {
|
|
90
|
+
continue;
|
|
91
|
+
}
|
|
92
|
+
if (!value) {
|
|
93
|
+
data[key] = {};
|
|
94
|
+
currentParent = key;
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
data[key] = parseScalar(value);
|
|
98
|
+
currentParent = null;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
else if (currentParent) {
|
|
102
|
+
const trimmedLine = line.trim();
|
|
103
|
+
const [keyPart, ...rest] = trimmedLine.split(':');
|
|
104
|
+
const key = keyPart.trim();
|
|
105
|
+
const value = rest.join(':').trim();
|
|
106
|
+
if (!key || !value) {
|
|
107
|
+
continue;
|
|
108
|
+
}
|
|
109
|
+
const parent = data[currentParent];
|
|
110
|
+
if (parent && typeof parent === 'object') {
|
|
111
|
+
parent[key] = parseScalar(value);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
const skillName = typeof data.name === 'string' ? data.name : name;
|
|
116
|
+
const description = typeof data.description === 'string' ? data.description : 'No description';
|
|
117
|
+
const license = typeof data.license === 'string' ? data.license : undefined;
|
|
118
|
+
const metadata = typeof data.metadata === 'object' && data.metadata !== null
|
|
119
|
+
? data.metadata
|
|
120
|
+
: undefined;
|
|
121
|
+
return {
|
|
122
|
+
name: skillName,
|
|
123
|
+
description,
|
|
124
|
+
license,
|
|
125
|
+
metadata,
|
|
126
|
+
content: body,
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
function parseScalar(value) {
|
|
130
|
+
const trimmed = value.trim();
|
|
131
|
+
if ((trimmed.startsWith('"') && trimmed.endsWith('"')) || (trimmed.startsWith("'") && trimmed.endsWith("'"))) {
|
|
132
|
+
return trimmed.slice(1, -1);
|
|
133
|
+
}
|
|
134
|
+
if (trimmed === 'true')
|
|
135
|
+
return true;
|
|
136
|
+
if (trimmed === 'false')
|
|
137
|
+
return false;
|
|
138
|
+
const asNumber = Number(trimmed);
|
|
139
|
+
if (!Number.isNaN(asNumber))
|
|
140
|
+
return asNumber;
|
|
141
|
+
return trimmed;
|
|
142
|
+
}
|
|
143
|
+
// Convert config for CF runtime - inline prompts and skills instead of file references
|
|
144
|
+
export function convertConfigToTypeScriptForCF(config, prompts, skills) {
|
|
145
|
+
// Deep clone config to modify it
|
|
146
|
+
const configForCF = JSON.parse(JSON.stringify(config));
|
|
147
|
+
// Replace file-based prompts with inline content
|
|
148
|
+
if (configForCF.agents) {
|
|
149
|
+
for (const [agentId, agent] of Object.entries(configForCF.agents)) {
|
|
150
|
+
const agentConfig = agent;
|
|
151
|
+
if (agentConfig.prompt && typeof agentConfig.prompt === 'object') {
|
|
152
|
+
const prompt = agentConfig.prompt;
|
|
153
|
+
if (prompt.file) {
|
|
154
|
+
// Extract filename from path like "./.ariaflow/prompts/support.md"
|
|
155
|
+
const promptName = prompt.file.split('/').pop()?.replace('.md', '') || '';
|
|
156
|
+
const promptContent = prompts.get(promptName);
|
|
157
|
+
if (promptContent) {
|
|
158
|
+
agentConfig.prompt = { inline: promptContent };
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
// Replace skill-loader paths with inline skills
|
|
165
|
+
if (configForCF.tools) {
|
|
166
|
+
for (const [toolId, tool] of Object.entries(configForCF.tools)) {
|
|
167
|
+
const toolConfig = tool;
|
|
168
|
+
if (toolConfig && typeof toolConfig === 'object' && 'type' in toolConfig && toolConfig.type === 'skill-loader') {
|
|
169
|
+
// Convert to inline skills object
|
|
170
|
+
const skillsObj = {};
|
|
171
|
+
for (const [skillName, skillContent] of skills.entries()) {
|
|
172
|
+
skillsObj[skillName] = skillContent;
|
|
173
|
+
}
|
|
174
|
+
toolConfig.skills = skillsObj;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
const configJson = JSON.stringify(configForCF, null, 2);
|
|
179
|
+
// For CF, export both ariaConfig and allAgents array
|
|
180
|
+
// allAgents is transformed to AgentConfig format (prompt.inline -> systemPrompt)
|
|
181
|
+
return `import { applyConfigTools, createToolRegistry, resolveAgentTools, hydrateFlowTools } from './tools.js';
|
|
182
|
+
|
|
183
|
+
export const ariaConfig = ${configJson};
|
|
184
|
+
|
|
185
|
+
const toolRegistry = applyConfigTools(createToolRegistry(), (ariaConfig as any).tools);
|
|
186
|
+
|
|
187
|
+
export const allAgents = ariaConfig.agents ? Object.entries(ariaConfig.agents).map(([id, agent]: [string, any]) => {
|
|
188
|
+
// Convert prompt.inline to systemPrompt
|
|
189
|
+
let systemPrompt = '';
|
|
190
|
+
if (typeof agent.prompt === 'string') {
|
|
191
|
+
systemPrompt = agent.prompt;
|
|
192
|
+
} else if (agent.prompt && typeof agent.prompt === 'object') {
|
|
193
|
+
if (agent.prompt.inline) {
|
|
194
|
+
systemPrompt = agent.prompt.inline;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
const tools = resolveAgentTools(toolRegistry, agent.tools);
|
|
199
|
+
let flow = agent.flow;
|
|
200
|
+
if (!flow && agent.flowRef && (ariaConfig as any).flows && (ariaConfig as any).flows[agent.flowRef]) {
|
|
201
|
+
const flowConfig = (ariaConfig as any).flows[agent.flowRef];
|
|
202
|
+
flow = {
|
|
203
|
+
nodes: flowConfig.nodes,
|
|
204
|
+
transitions: flowConfig.transitions,
|
|
205
|
+
defaultRolePrompt: flowConfig.defaultRolePrompt,
|
|
206
|
+
contextStrategy: flowConfig.contextStrategy,
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
flow = agent.type === 'flow' && flow ? hydrateFlowTools(toolRegistry, flow) : flow;
|
|
210
|
+
|
|
211
|
+
return {
|
|
212
|
+
id,
|
|
213
|
+
name: agent.name || id,
|
|
214
|
+
description: agent.description,
|
|
215
|
+
systemPrompt,
|
|
216
|
+
tools,
|
|
217
|
+
canHandoffTo: agent.canHandoffTo,
|
|
218
|
+
maxTurns: agent.maxTurns,
|
|
219
|
+
maxSteps: agent.maxSteps,
|
|
220
|
+
type: agent.type,
|
|
221
|
+
flow,
|
|
222
|
+
initialNode: agent.initialNode,
|
|
223
|
+
routes: agent.routes,
|
|
224
|
+
defaultAgent: agent.defaultAgent,
|
|
225
|
+
triageMode: agent.triageMode
|
|
226
|
+
};
|
|
227
|
+
}) : [];
|
|
228
|
+
`;
|
|
229
|
+
}
|
|
230
|
+
export function convertToolsToTypeScriptForCF(tools) {
|
|
231
|
+
const toolImports = [];
|
|
232
|
+
for (const [name] of tools.entries()) {
|
|
233
|
+
const local = `tool_${name.replace(/[^a-zA-Z0-9_]/g, '_').replace(/^(\d)/, '_$1')}`;
|
|
234
|
+
toolImports.push({ name, local });
|
|
235
|
+
}
|
|
236
|
+
const importLines = toolImports
|
|
237
|
+
.map(tool => `import * as ${tool.local}Module from '../../.ariaflow/tools/${tool.name}/index.js';`)
|
|
238
|
+
.join('\n');
|
|
239
|
+
const registryLines = toolImports
|
|
240
|
+
.map(tool => ` ${JSON.stringify(tool.name)}: normalizeToolExport(${tool.local}Module, ${JSON.stringify(tool.name)}),`)
|
|
241
|
+
.join('\n');
|
|
242
|
+
return `import { tool as aiTool, type Tool as AiTool } from 'ai';
|
|
243
|
+
import { z } from 'zod';
|
|
244
|
+
import { createHttpTool } from '@ariaflowagents/core';
|
|
245
|
+
import { skillDefinitions } from './skills.js';
|
|
246
|
+
${importLines}
|
|
247
|
+
|
|
248
|
+
type ToolRegistry = Record<string, AiTool>;
|
|
249
|
+
|
|
250
|
+
function normalizeToolExport(module: Record<string, unknown>, name: string): AiTool {
|
|
251
|
+
const candidate = (module.tool ?? module.default ?? module) as Record<string, unknown>;
|
|
252
|
+
if (!candidate || typeof candidate !== 'object') {
|
|
253
|
+
throw new Error(\`Tool module for \${name} did not export a tool\`);
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
if ('execute' in candidate && 'inputSchema' in candidate) {
|
|
257
|
+
const execute = candidate.execute as (input: unknown) => unknown;
|
|
258
|
+
const inputSchema = candidate.inputSchema as z.ZodTypeAny;
|
|
259
|
+
const description = (candidate.description as string) ?? \`Tool \${name}\`;
|
|
260
|
+
return aiTool({ description, inputSchema, execute });
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
if ('execute' in candidate && 'parameters' in candidate) {
|
|
264
|
+
return candidate as AiTool;
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
throw new Error(\`Tool module for \${name} is missing execute/inputSchema or parameters\`);
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
function createSkillTool(skills: Array<{ name: string; description: string; license?: string; metadata?: unknown; content: string }>): AiTool {
|
|
271
|
+
if (skills.length === 0) {
|
|
272
|
+
return aiTool({
|
|
273
|
+
description: 'No skills available.',
|
|
274
|
+
inputSchema: z.object({}),
|
|
275
|
+
execute: async () => ({ error: 'No skills available' }),
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
const names = skills.map(skill => skill.name) as [string, ...string[]];
|
|
280
|
+
const descriptions = skills
|
|
281
|
+
.map(skill => \`- **\${skill.name}**: \${skill.description}\`)
|
|
282
|
+
.join('\\n');
|
|
283
|
+
|
|
284
|
+
return aiTool({
|
|
285
|
+
description: \`Load a reusable skill by name.\\n\\nAvailable skills:\\n\${descriptions}\`,
|
|
286
|
+
inputSchema: z.object({
|
|
287
|
+
name: z.enum(names),
|
|
288
|
+
}),
|
|
289
|
+
execute: async ({ name }) => {
|
|
290
|
+
const skill = skills.find(item => item.name === name);
|
|
291
|
+
if (!skill) {
|
|
292
|
+
return { error: \`Skill not found: \${name}\` };
|
|
293
|
+
}
|
|
294
|
+
return {
|
|
295
|
+
name: skill.name,
|
|
296
|
+
description: skill.description,
|
|
297
|
+
license: skill.license,
|
|
298
|
+
metadata: skill.metadata,
|
|
299
|
+
content: skill.content,
|
|
300
|
+
};
|
|
301
|
+
},
|
|
302
|
+
});
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
export function createToolRegistry(): ToolRegistry {
|
|
306
|
+
return {
|
|
307
|
+
${registryLines}
|
|
308
|
+
};
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
export function applyConfigTools(baseRegistry: ToolRegistry, configTools: unknown): ToolRegistry {
|
|
312
|
+
const toolRegistry: ToolRegistry = { ...baseRegistry };
|
|
313
|
+
const toolsConfig = (configTools ?? {}) as Record<string, unknown>;
|
|
314
|
+
|
|
315
|
+
for (const [name, value] of Object.entries(toolsConfig)) {
|
|
316
|
+
if (value === false) {
|
|
317
|
+
delete toolRegistry[name];
|
|
318
|
+
continue;
|
|
319
|
+
}
|
|
320
|
+
if (value === true) {
|
|
321
|
+
continue;
|
|
322
|
+
}
|
|
323
|
+
if (!value || typeof value !== 'object') {
|
|
324
|
+
continue;
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
const config = value as Record<string, unknown>;
|
|
328
|
+
if (config.type === 'skill-loader') {
|
|
329
|
+
toolRegistry[name] = createSkillTool(skillDefinitions as any);
|
|
330
|
+
continue;
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
if (config.type === 'http') {
|
|
334
|
+
if (!config.url || !config.method) {
|
|
335
|
+
throw new Error(\`Tool "\${name}" is missing url or method\`);
|
|
336
|
+
}
|
|
337
|
+
toolRegistry[name] = createHttpTool({
|
|
338
|
+
name,
|
|
339
|
+
description: (config.description as string) || \`HTTP \${String(config.method)} tool\`,
|
|
340
|
+
method: config.method as any,
|
|
341
|
+
url: config.url as string,
|
|
342
|
+
pathParams: (config.pathParams as any[] | undefined)?.map(p => ({
|
|
343
|
+
name: p.name,
|
|
344
|
+
type: p.type,
|
|
345
|
+
description: p.description,
|
|
346
|
+
required: p.required,
|
|
347
|
+
})) || [],
|
|
348
|
+
queryParams: (config.queryParams as any[] | undefined)?.map(p => ({
|
|
349
|
+
name: p.name,
|
|
350
|
+
type: p.type,
|
|
351
|
+
description: p.description,
|
|
352
|
+
required: p.required,
|
|
353
|
+
})) || [],
|
|
354
|
+
bodyParams: (config.bodyParams as any[] | undefined)?.map(p => ({
|
|
355
|
+
name: p.name,
|
|
356
|
+
type: p.type,
|
|
357
|
+
description: p.description,
|
|
358
|
+
required: p.required,
|
|
359
|
+
})) || [],
|
|
360
|
+
headers: (config.headers as Record<string, string>) || {},
|
|
361
|
+
auth: (config.auth as any) || undefined,
|
|
362
|
+
timeoutMs: (config.timeoutMs as number | undefined) || undefined,
|
|
363
|
+
});
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
return toolRegistry;
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
function buildToolSet(registry: ToolRegistry, selection?: string[]): ToolRegistry | undefined {
|
|
371
|
+
if (!selection || selection.length === 0) {
|
|
372
|
+
return undefined;
|
|
373
|
+
}
|
|
374
|
+
const tools: ToolRegistry = {};
|
|
375
|
+
for (const name of selection) {
|
|
376
|
+
const toolInstance = registry[name];
|
|
377
|
+
if (toolInstance) {
|
|
378
|
+
tools[name] = toolInstance;
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
return Object.keys(tools).length > 0 ? tools : undefined;
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
export function resolveAgentTools(toolRegistry: ToolRegistry, value: unknown): ToolRegistry | undefined {
|
|
385
|
+
if (!value) {
|
|
386
|
+
return undefined;
|
|
387
|
+
}
|
|
388
|
+
|
|
389
|
+
if (Array.isArray(value)) {
|
|
390
|
+
const names = value.filter(item => typeof item === 'string') as string[];
|
|
391
|
+
return buildToolSet(toolRegistry, names);
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
if (typeof value === 'object') {
|
|
395
|
+
const entries = Object.entries(value as Record<string, unknown>);
|
|
396
|
+
const hasToolShape = entries.some(([, toolValue]) => {
|
|
397
|
+
if (!toolValue || typeof toolValue !== 'object') {
|
|
398
|
+
return false;
|
|
399
|
+
}
|
|
400
|
+
return 'execute' in (toolValue as Record<string, unknown>) || 'parameters' in (toolValue as Record<string, unknown>);
|
|
401
|
+
});
|
|
402
|
+
|
|
403
|
+
if (hasToolShape) {
|
|
404
|
+
return value as ToolRegistry;
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
const enabledNames = entries
|
|
408
|
+
.filter(([, enabled]) => Boolean(enabled))
|
|
409
|
+
.map(([name]) => name);
|
|
410
|
+
return buildToolSet(toolRegistry, enabledNames);
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
return undefined;
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
export function resolveFlowNodeTools(toolRegistry: ToolRegistry, value: unknown): ToolRegistry | undefined {
|
|
417
|
+
if (!value) {
|
|
418
|
+
return undefined;
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
if (Array.isArray(value)) {
|
|
422
|
+
const names = value.filter(item => typeof item === 'string') as string[];
|
|
423
|
+
return buildToolSet(toolRegistry, names);
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
if (typeof value === 'object') {
|
|
427
|
+
const entries = Object.entries(value as Record<string, unknown>);
|
|
428
|
+
const enabledNames = entries
|
|
429
|
+
.filter(([, enabled]) => Boolean(enabled))
|
|
430
|
+
.map(([name]) => name);
|
|
431
|
+
return buildToolSet(toolRegistry, enabledNames);
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
return undefined;
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
export function hydrateFlowTools(toolRegistry: ToolRegistry, flow: any): any {
|
|
438
|
+
if (!flow || !Array.isArray(flow.nodes)) {
|
|
439
|
+
return flow;
|
|
440
|
+
}
|
|
441
|
+
|
|
442
|
+
return {
|
|
443
|
+
...flow,
|
|
444
|
+
nodes: flow.nodes.map((node: any) => ({
|
|
445
|
+
...node,
|
|
446
|
+
tools: resolveFlowNodeTools(toolRegistry, node.tools),
|
|
447
|
+
})),
|
|
448
|
+
};
|
|
449
|
+
}
|
|
450
|
+
`;
|
|
451
|
+
}
|
|
1
452
|
export function convertConfigToTypeScript(config) {
|
|
2
453
|
const configJson = JSON.stringify(config, null, 2);
|
|
3
454
|
return `import { AriaFlowConfig } from '@ariaflowagents/config';
|
|
@@ -6,14 +457,25 @@ export const ariaConfig: AriaFlowConfig = ${configJson} as AriaFlowConfig;
|
|
|
6
457
|
`;
|
|
7
458
|
}
|
|
8
459
|
export function convertConfigToRuntime() {
|
|
9
|
-
return `import {
|
|
460
|
+
return `import { createRuntimeFromConfig } from '@ariaflowagents/config';
|
|
10
461
|
import { ariaConfig } from './config.js';
|
|
11
462
|
|
|
12
|
-
// Re-export the raw config for reference
|
|
13
463
|
export { ariaConfig } from './config.js';
|
|
14
464
|
|
|
15
|
-
|
|
16
|
-
|
|
465
|
+
export const chatRuntime = createRuntimeFromConfig(ariaConfig);
|
|
466
|
+
`;
|
|
467
|
+
}
|
|
468
|
+
// For CF runtime, use core directly to avoid Node.js dependencies
|
|
469
|
+
export function convertConfigToRuntimeCF() {
|
|
470
|
+
return `import { Runtime } from '@ariaflowagents/core';
|
|
471
|
+
import { ariaConfig, allAgents } from './config.js';
|
|
472
|
+
|
|
473
|
+
export { ariaConfig, allAgents } from './config.js';
|
|
474
|
+
|
|
475
|
+
export const chatRuntime = new Runtime({
|
|
476
|
+
agents: allAgents,
|
|
477
|
+
defaultAgentId: (ariaConfig as any).runtime?.defaultAgent || 'agent',
|
|
478
|
+
});
|
|
17
479
|
`;
|
|
18
480
|
}
|
|
19
481
|
export function sanitizeForTemplateLiteral(str) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/converters/index.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,yBAAyB,CAAC,MAAsB;IAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAEnD,OAAO;;4CAEmC,UAAU;CACrD,CAAC;AACF,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,OAAO
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/converters/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export declare function generateHonoServer(name: string): string;
|
|
2
|
-
export declare function generateCFWorker(
|
|
3
|
-
export declare function
|
|
2
|
+
export declare function generateCFWorker(baseName: string): string;
|
|
3
|
+
export declare function generateWranglerConfig(workerName: string, baseName: string): string;
|
|
4
4
|
export declare function generateDockerfile(): string;
|
|
5
5
|
export declare function generateTsConfig(): string;
|
|
6
6
|
export declare function generateEnvExample(): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry-points.d.ts","sourceRoot":"","sources":["../../src/generators/entry-points.ts"],"names":[],"mappings":"AAAA,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA+DvD;
|
|
1
|
+
{"version":3,"file":"entry-points.d.ts","sourceRoot":"","sources":["../../src/generators/entry-points.ts"],"names":[],"mappings":"AAAA,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA+DvD;AAcD,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAwCzD;AAED,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CA+BnF;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAgB3C;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAmBzC;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAgB3C"}
|
|
@@ -62,57 +62,85 @@ injectWebSocket(server);
|
|
|
62
62
|
console.log(\`\\n🚀 \${${JSON.stringify(name)}} running at http://localhost:\${port}\\n\`);
|
|
63
63
|
`;
|
|
64
64
|
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
65
|
+
// Capitalize first letter for class names
|
|
66
|
+
function capitalize(str) {
|
|
67
|
+
return str.charAt(0).toUpperCase() + str.slice(1);
|
|
68
|
+
}
|
|
69
|
+
// Sanitize name for use in JavaScript class names (remove hyphens, spaces, etc.)
|
|
70
|
+
function sanitizeForClassName(str) {
|
|
71
|
+
return str
|
|
72
|
+
.replace(/[^a-zA-Z0-9]/g, '') // Remove non-alphanumeric chars
|
|
73
|
+
.replace(/^(\d)/, '_$1'); // Prefix numbers with underscore
|
|
74
|
+
}
|
|
75
|
+
export function generateCFWorker(baseName) {
|
|
76
|
+
const sanitizedBaseName = sanitizeForClassName(baseName);
|
|
77
|
+
const className = `AriaFlow${capitalize(sanitizedBaseName)}`;
|
|
78
|
+
return `/// <reference types="@cloudflare/workers-types" />
|
|
79
|
+
import { openai } from '@ai-sdk/openai';
|
|
68
80
|
import { AriaFlowChatAgent } from '@ariaflowagents/cf-agent';
|
|
81
|
+
import { routeAgentRequest } from 'agents';
|
|
82
|
+
import { allAgents, ariaConfig } from './src/runtime/config.js';
|
|
69
83
|
|
|
70
84
|
interface Env {
|
|
71
|
-
|
|
72
|
-
OPENAI_API_KEY?: string;
|
|
73
|
-
ANTHROPIC_API_KEY?: string;
|
|
85
|
+
${className}: DurableObjectNamespace;
|
|
74
86
|
}
|
|
75
87
|
|
|
76
|
-
|
|
77
|
-
'Access-Control-Allow-Origin': '*',
|
|
78
|
-
'Access-Control-Allow-Methods': 'GET, POST, OPTIONS',
|
|
79
|
-
'Access-Control-Allow-Headers': 'Content-Type',
|
|
80
|
-
};
|
|
81
|
-
|
|
82
|
-
export class Chat extends AriaFlowChatAgent<Env> {
|
|
88
|
+
export class ${className} extends AriaFlowChatAgent<Env> {
|
|
83
89
|
async createRuntimeConfig() {
|
|
84
|
-
|
|
90
|
+
// With nodejs_compat, openai() reads process.env.OPENAI_API_KEY automatically
|
|
91
|
+
const model = openai('gpt-4o-mini') as any;
|
|
92
|
+
|
|
93
|
+
// Add model to each agent that doesn't have one
|
|
94
|
+
const agentsWithModel = allAgents.map((agent: any) => ({
|
|
95
|
+
...agent,
|
|
96
|
+
model: agent.model || model
|
|
97
|
+
}));
|
|
98
|
+
|
|
99
|
+
return {
|
|
100
|
+
agents: agentsWithModel,
|
|
101
|
+
defaultAgentId: (ariaConfig as any).runtime?.defaultAgent || 'support',
|
|
102
|
+
defaultModel: model
|
|
103
|
+
};
|
|
85
104
|
}
|
|
86
105
|
}
|
|
87
106
|
|
|
88
107
|
export default {
|
|
89
|
-
async fetch(request: Request, env: Env,
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
}
|
|
93
|
-
return routeAgentRequest(request, env, { cors: true }) ||
|
|
94
|
-
new Response('Not found', { status: 404 });
|
|
108
|
+
async fetch(request: Request, env: Env, _ctx: ExecutionContext): Promise<Response> {
|
|
109
|
+
return (await routeAgentRequest(request, env, {
|
|
110
|
+
cors: true
|
|
111
|
+
})) || new Response("Not found", { status: 404 });
|
|
95
112
|
}
|
|
96
|
-
}
|
|
113
|
+
};
|
|
97
114
|
`;
|
|
98
115
|
}
|
|
99
|
-
export function
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
+
export function generateWranglerConfig(workerName, baseName) {
|
|
117
|
+
const sanitizedBaseName = sanitizeForClassName(baseName);
|
|
118
|
+
const className = `AriaFlow${capitalize(sanitizedBaseName)}`;
|
|
119
|
+
const accountId = process.env.CLOUDFLARE_ACCOUNT_ID;
|
|
120
|
+
const today = new Date().toISOString().split('T')[0];
|
|
121
|
+
const config = {
|
|
122
|
+
name: workerName,
|
|
123
|
+
main: "worker.ts",
|
|
124
|
+
compatibility_date: today,
|
|
125
|
+
compatibility_flags: ["nodejs_compat"],
|
|
126
|
+
durable_objects: {
|
|
127
|
+
bindings: [{
|
|
128
|
+
name: className,
|
|
129
|
+
class_name: className
|
|
130
|
+
}]
|
|
131
|
+
},
|
|
132
|
+
migrations: [{
|
|
133
|
+
tag: "v1",
|
|
134
|
+
new_sqlite_classes: [className]
|
|
135
|
+
}],
|
|
136
|
+
observability: {
|
|
137
|
+
enabled: true
|
|
138
|
+
}
|
|
139
|
+
};
|
|
140
|
+
if (accountId) {
|
|
141
|
+
config.account_id = accountId;
|
|
142
|
+
}
|
|
143
|
+
return JSON.stringify(config, null, 2);
|
|
116
144
|
}
|
|
117
145
|
export function generateDockerfile() {
|
|
118
146
|
return `FROM node:20-alpine AS builder
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry-points.js","sourceRoot":"","sources":["../../src/generators/entry-points.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBA4DgB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;CAC5C,CAAC;AACF,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,
|
|
1
|
+
{"version":3,"file":"entry-points.js","sourceRoot":"","sources":["../../src/generators/entry-points.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBA4DgB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;CAC5C,CAAC;AACF,CAAC;AAED,0CAA0C;AAC1C,SAAS,UAAU,CAAC,GAAW;IAC7B,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC;AAED,iFAAiF;AACjF,SAAS,oBAAoB,CAAC,GAAW;IACvC,OAAO,GAAG;SACP,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,gCAAgC;SAC7D,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,iCAAiC;AAC/D,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,QAAgB;IAC/C,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IACzD,MAAM,SAAS,GAAG,WAAW,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;IAC7D,OAAO;;;;;;;IAOL,SAAS;;;eAGE,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;CA0BvB,CAAC;AACF,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,UAAkB,EAAE,QAAgB;IACzE,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IACzD,MAAM,SAAS,GAAG,WAAW,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;IAC7D,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;IACpD,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAErD,MAAM,MAAM,GAA4B;QACtC,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,WAAW;QACjB,kBAAkB,EAAE,KAAK;QACzB,mBAAmB,EAAE,CAAC,eAAe,CAAC;QACtC,eAAe,EAAE;YACf,QAAQ,EAAE,CAAC;oBACT,IAAI,EAAE,SAAS;oBACf,UAAU,EAAE,SAAS;iBACtB,CAAC;SACH;QACD,UAAU,EAAE,CAAC;gBACX,GAAG,EAAE,IAAI;gBACT,kBAAkB,EAAE,CAAC,SAAS,CAAC;aAChC,CAAC;QACF,aAAa,EAAE;YACb,OAAO,EAAE,IAAI;SACd;KACF,CAAC;IAEF,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,CAAC,UAAU,GAAG,SAAS,CAAC;IAChC,CAAC;IAED,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,OAAO;;;;;;;;;;;;;;CAcR,CAAC;AACF,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO;;;;;;;;;;;;;;;;;CAiBR,CAAC;AACF,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,OAAO;;;;;;;;;;;;;;CAcR,CAAC;AACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package.d.ts","sourceRoot":"","sources":["../../src/generators/package.ts"],"names":[],"mappings":"AAAA,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,QAAQ,EACjC,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACzC,MAAM,
|
|
1
|
+
{"version":3,"file":"package.d.ts","sourceRoot":"","sources":["../../src/generators/package.ts"],"names":[],"mappings":"AAAA,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,QAAQ,EACjC,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACzC,MAAM,CAyGR"}
|
|
@@ -1,35 +1,43 @@
|
|
|
1
1
|
export function generatePackageJson(name, runtime, toolDependencies) {
|
|
2
|
-
// Use
|
|
2
|
+
// Use specific versions for stability - always use published npm versions
|
|
3
|
+
// Note: CF builds don't use @ariaflowagents/config (no Node.js deps)
|
|
3
4
|
const baseDependencies = {
|
|
4
|
-
'@ariaflowagents/core': '
|
|
5
|
-
'
|
|
6
|
-
'
|
|
7
|
-
'
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
5
|
+
'@ariaflowagents/core': '^0.4.7',
|
|
6
|
+
'ai': '^6.0.0',
|
|
7
|
+
'zod': '^3.23.0',
|
|
8
|
+
'chrono-node': '^2.6.0', // Required by @ariaflowagents/core but not listed as dependency
|
|
9
|
+
};
|
|
10
|
+
// @ariaflowagents/config is only for Hono/Docker runtimes (has Node.js deps)
|
|
11
|
+
const configPackage = {
|
|
12
|
+
'@ariaflowagents/config': '^0.4.6',
|
|
11
13
|
};
|
|
12
14
|
const honoDependencies = {
|
|
13
|
-
'hono': '
|
|
14
|
-
'
|
|
15
|
-
'@hono/node-
|
|
16
|
-
'@
|
|
17
|
-
'
|
|
15
|
+
'@ariaflowagents/hono-server': '^0.4.6',
|
|
16
|
+
'hono': '^4.0.0',
|
|
17
|
+
'@hono/node-server': '^1.12.0',
|
|
18
|
+
'@hono/node-ws': '^1.0.0',
|
|
19
|
+
'@ai-sdk/openai': '^1.0.0',
|
|
20
|
+
'dotenv': '^16.4.0',
|
|
18
21
|
};
|
|
19
22
|
const cfDependencies = {
|
|
20
|
-
'
|
|
21
|
-
'
|
|
22
|
-
'
|
|
23
|
+
'@ariaflowagents/cf-agent': '^0.4.6',
|
|
24
|
+
'@ai-sdk/openai': '^3.0.0',
|
|
25
|
+
'wrangler': '^4.0.0',
|
|
26
|
+
'agents': '^0.3.5',
|
|
23
27
|
};
|
|
24
28
|
const dockerDependencies = {
|
|
25
29
|
...honoDependencies,
|
|
26
30
|
};
|
|
27
31
|
const allDependencies = { ...baseDependencies };
|
|
32
|
+
const allDevDependencies = {};
|
|
28
33
|
if (runtime === 'hono' || runtime === 'docker') {
|
|
34
|
+
Object.assign(allDependencies, configPackage); // Only add config package for Hono/Docker
|
|
29
35
|
Object.assign(allDependencies, honoDependencies);
|
|
30
36
|
}
|
|
31
37
|
if (runtime === 'cf') {
|
|
32
38
|
Object.assign(allDependencies, cfDependencies);
|
|
39
|
+
// Add dev dependencies for CF builds
|
|
40
|
+
allDevDependencies['@cloudflare/workers-types'] = '^4.20241127.0';
|
|
33
41
|
}
|
|
34
42
|
if (runtime === 'docker') {
|
|
35
43
|
Object.assign(allDependencies, dockerDependencies);
|
|
@@ -41,6 +49,9 @@ export function generatePackageJson(name, runtime, toolDependencies) {
|
|
|
41
49
|
const depsJson = Object.entries(allDependencies)
|
|
42
50
|
.map(([pkg, version]) => ` "${pkg}": "${version}"`)
|
|
43
51
|
.join(',\n');
|
|
52
|
+
const devDepsJson = Object.entries(allDevDependencies)
|
|
53
|
+
.map(([pkg, version]) => ` "${pkg}": "${version}"`)
|
|
54
|
+
.join(',\n');
|
|
44
55
|
const scripts = {
|
|
45
56
|
'build': 'tsc',
|
|
46
57
|
'type-check': 'tsc --noEmit',
|
|
@@ -56,12 +67,15 @@ export function generatePackageJson(name, runtime, toolDependencies) {
|
|
|
56
67
|
if (runtime === 'docker') {
|
|
57
68
|
scripts['dev'] = 'tsx server.ts';
|
|
58
69
|
scripts['start'] = 'node dist/server.js';
|
|
59
|
-
scripts['docker:build'] =
|
|
60
|
-
scripts['docker:run'] =
|
|
70
|
+
scripts['docker:build'] = `docker build -t ${name} .`;
|
|
71
|
+
scripts['docker:run'] = `docker run -p 3000:3000 ${name}`;
|
|
61
72
|
}
|
|
62
73
|
const scriptsJson = Object.entries(scripts)
|
|
63
74
|
.map(([script, cmd]) => ` "${script}": "${cmd}"`)
|
|
64
75
|
.join(',\n');
|
|
76
|
+
const devDependenciesSection = Object.keys(allDevDependencies).length > 0
|
|
77
|
+
? `,\n "devDependencies": {\n${devDepsJson}\n }`
|
|
78
|
+
: '';
|
|
65
79
|
return `{
|
|
66
80
|
"name": "${name}",
|
|
67
81
|
"version": "0.1.0",
|
|
@@ -72,7 +86,7 @@ ${scriptsJson}
|
|
|
72
86
|
},
|
|
73
87
|
"dependencies": {
|
|
74
88
|
${depsJson}
|
|
75
|
-
}
|
|
89
|
+
}${devDependenciesSection}
|
|
76
90
|
}
|
|
77
91
|
`;
|
|
78
92
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package.js","sourceRoot":"","sources":["../../src/generators/package.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,mBAAmB,CACjC,IAAY,EACZ,OAAiC,EACjC,gBAA0C;IAE1C,
|
|
1
|
+
{"version":3,"file":"package.js","sourceRoot":"","sources":["../../src/generators/package.ts"],"names":[],"mappings":"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"}
|
package/dist/loader.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3D,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAWlF;AAED,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3D,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAWlF;AAED,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAiEhF"}
|
package/dist/loader.js
CHANGED
|
@@ -14,9 +14,10 @@ export async function loadPackStructure(inputDir) {
|
|
|
14
14
|
const structure = {
|
|
15
15
|
config: await loadAriaflowConfig(inputDir),
|
|
16
16
|
prompts: new Map(),
|
|
17
|
+
skills: new Map(),
|
|
17
18
|
tools: new Map(),
|
|
18
19
|
};
|
|
19
|
-
const promptsDir = path.join(inputDir, 'prompts');
|
|
20
|
+
const promptsDir = path.join(inputDir, '.ariaflow', 'prompts');
|
|
20
21
|
if (fs.existsSync(promptsDir) && fs.statSync(promptsDir).isDirectory()) {
|
|
21
22
|
for (const file of fs.readdirSync(promptsDir)) {
|
|
22
23
|
if (file.endsWith('.md')) {
|
|
@@ -27,7 +28,20 @@ export async function loadPackStructure(inputDir) {
|
|
|
27
28
|
}
|
|
28
29
|
}
|
|
29
30
|
}
|
|
30
|
-
const
|
|
31
|
+
const skillsDir = path.join(inputDir, '.ariaflow', 'skill');
|
|
32
|
+
if (fs.existsSync(skillsDir) && fs.statSync(skillsDir).isDirectory()) {
|
|
33
|
+
for (const skillDir of fs.readdirSync(skillsDir)) {
|
|
34
|
+
const skillPath = path.join(skillsDir, skillDir);
|
|
35
|
+
if (!fs.statSync(skillPath).isDirectory())
|
|
36
|
+
continue;
|
|
37
|
+
const skillFilePath = path.join(skillPath, 'SKILL.md');
|
|
38
|
+
if (fs.existsSync(skillFilePath)) {
|
|
39
|
+
const content = fs.readFileSync(skillFilePath, 'utf-8');
|
|
40
|
+
structure.skills.set(skillDir, content);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
const toolsDir = path.join(inputDir, '.ariaflow', 'tools');
|
|
31
45
|
if (fs.existsSync(toolsDir) && fs.statSync(toolsDir).isDirectory()) {
|
|
32
46
|
for (const toolDir of fs.readdirSync(toolsDir)) {
|
|
33
47
|
const toolPath = path.join(toolsDir, toolDir);
|
package/dist/loader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAGrC,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,QAAgB;IACvD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;IAEzD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,0BAA0B,UAAU,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAmB,CAAC;IAEhD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,QAAgB;IACtD,MAAM,SAAS,GAAkB;QAC/B,MAAM,EAAE,MAAM,kBAAkB,CAAC,QAAQ,CAAC;QAC1C,OAAO,EAAE,IAAI,GAAG,EAAE;QAClB,KAAK,EAAE,IAAI,GAAG,EAAE;KACjB,CAAC;IAEF,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { AriaflowConfig } from '@ariaflowagents/config';
|
|
1
2
|
export interface BuilderOptions {
|
|
2
3
|
input: string;
|
|
3
4
|
output: string;
|
|
@@ -13,23 +14,7 @@ export interface BuilderResult {
|
|
|
13
14
|
warnings: string[];
|
|
14
15
|
errors: string[];
|
|
15
16
|
}
|
|
16
|
-
export
|
|
17
|
-
name: string;
|
|
18
|
-
version: string;
|
|
19
|
-
agents?: Record<string, {
|
|
20
|
-
model: string;
|
|
21
|
-
provider?: string;
|
|
22
|
-
system?: string;
|
|
23
|
-
instructions?: string;
|
|
24
|
-
tools?: string[];
|
|
25
|
-
}>;
|
|
26
|
-
defaultAgent?: string;
|
|
27
|
-
providers?: Record<string, {
|
|
28
|
-
apiKey: string;
|
|
29
|
-
baseUrl?: string;
|
|
30
|
-
id: string;
|
|
31
|
-
}>;
|
|
32
|
-
}
|
|
17
|
+
export type { AriaflowConfig };
|
|
33
18
|
export interface ToolDefinition {
|
|
34
19
|
name: string;
|
|
35
20
|
description: string;
|
|
@@ -39,6 +24,7 @@ export interface ToolDefinition {
|
|
|
39
24
|
export interface PackStructure {
|
|
40
25
|
config: AriaflowConfig;
|
|
41
26
|
prompts: Map<string, string>;
|
|
27
|
+
skills: Map<string, string>;
|
|
42
28
|
tools: Map<string, {
|
|
43
29
|
definition: ToolDefinition;
|
|
44
30
|
source: string;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,QAAQ,CAAC;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7D,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,QAAQ,CAAC;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAGD,YAAY,EAAE,cAAc,EAAE,CAAC;AAE/B,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,UAAU,EAAE,cAAc,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnE,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ariaflowagents/builder",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "CLI tool to convert .ariaflow/ configurations into deployable projects",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -35,6 +35,7 @@
|
|
|
35
35
|
"typescript": "^5.3.0"
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
|
+
"@ariaflowagents/config": "^0.5.0",
|
|
38
39
|
"commander": "^12.0.0",
|
|
39
40
|
"esbuild": "^0.20.0",
|
|
40
41
|
"jsonc-parser": "^3.2.0",
|