@agentuity/migrate 3.0.0-alpha.0 → 3.0.0-alpha.1
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/bin/migrate.ts +93 -10
- package/dist/detect-v3.d.ts +92 -0
- package/dist/detect-v3.d.ts.map +1 -0
- package/dist/detect-v3.js +675 -0
- package/dist/detect-v3.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/migrate-v3.d.ts +38 -0
- package/dist/migrate-v3.d.ts.map +1 -0
- package/dist/migrate-v3.js +448 -0
- package/dist/migrate-v3.js.map +1 -0
- package/dist/report.d.ts +3 -0
- package/dist/report.d.ts.map +1 -1
- package/dist/report.js +64 -0
- package/dist/report.js.map +1 -1
- package/dist/transforms/v3/agents.d.ts +33 -0
- package/dist/transforms/v3/agents.d.ts.map +1 -0
- package/dist/transforms/v3/agents.js +335 -0
- package/dist/transforms/v3/agents.js.map +1 -0
- package/dist/transforms/v3/dev-setup.d.ts +27 -0
- package/dist/transforms/v3/dev-setup.d.ts.map +1 -0
- package/dist/transforms/v3/dev-setup.js +103 -0
- package/dist/transforms/v3/dev-setup.js.map +1 -0
- package/dist/transforms/v3/entry-point.d.ts +23 -0
- package/dist/transforms/v3/entry-point.d.ts.map +1 -0
- package/dist/transforms/v3/entry-point.js +67 -0
- package/dist/transforms/v3/entry-point.js.map +1 -0
- package/dist/transforms/v3/package-json.d.ts +28 -0
- package/dist/transforms/v3/package-json.d.ts.map +1 -0
- package/dist/transforms/v3/package-json.js +151 -0
- package/dist/transforms/v3/package-json.js.map +1 -0
- package/dist/transforms/v3/routes.d.ts +37 -0
- package/dist/transforms/v3/routes.d.ts.map +1 -0
- package/dist/transforms/v3/routes.js +146 -0
- package/dist/transforms/v3/routes.js.map +1 -0
- package/dist/transforms/v3/services.d.ts +19 -0
- package/dist/transforms/v3/services.d.ts.map +1 -0
- package/dist/transforms/v3/services.js +61 -0
- package/dist/transforms/v3/services.js.map +1 -0
- package/package.json +4 -4
- package/src/detect-v3.ts +867 -0
- package/src/index.ts +13 -0
- package/src/migrate-v3.ts +539 -0
- package/src/report.ts +86 -0
- package/src/transforms/v3/agents.ts +434 -0
- package/src/transforms/v3/dev-setup.ts +137 -0
- package/src/transforms/v3/entry-point.ts +90 -0
- package/src/transforms/v3/package-json.ts +183 -0
- package/src/transforms/v3/routes.ts +185 -0
- package/src/transforms/v3/services.ts +76 -0
package/dist/report.js
CHANGED
|
@@ -156,4 +156,68 @@ export function printChangeSummary(allChanges) {
|
|
|
156
156
|
}
|
|
157
157
|
console.log();
|
|
158
158
|
}
|
|
159
|
+
// ---------------------------------------------------------------------------
|
|
160
|
+
// V3 report functions
|
|
161
|
+
// ---------------------------------------------------------------------------
|
|
162
|
+
function renderV3Finding(f, index) {
|
|
163
|
+
const label = SEVERITY_LABEL[f.severity];
|
|
164
|
+
const icon = SEVERITY_ICON[f.severity];
|
|
165
|
+
const num = dim(`${String(index + 1).padStart(2, ' ')}.`);
|
|
166
|
+
const file = f.file ? dim(` [${f.file}]`) : '';
|
|
167
|
+
const hint = f.hint ? `\n ${dim('↳ ' + f.hint.replace(/\n/g, '\n '))}` : '';
|
|
168
|
+
return ` ${num} [${label}] ${icon} ${f.message}${file}${hint}`;
|
|
169
|
+
}
|
|
170
|
+
export function printV3Report(detection) {
|
|
171
|
+
const { findings } = detection;
|
|
172
|
+
const autoFindings = findings.filter((f) => f.severity === 'auto');
|
|
173
|
+
const guidedFindings = findings.filter((f) => f.severity === 'guided');
|
|
174
|
+
const manualFindings = findings.filter((f) => f.severity === 'manual');
|
|
175
|
+
console.log(`\n${bold('━━━ Agentuity v2 → v3 Migration Report ━━━')}`);
|
|
176
|
+
console.log(dim(`Project: ${detection.projectDir}`));
|
|
177
|
+
if (findings.length === 0) {
|
|
178
|
+
console.log(`\n${green('✓')} ${bold('No v2 patterns detected!')} ` +
|
|
179
|
+
`This project may already be on v3.\n`);
|
|
180
|
+
return;
|
|
181
|
+
}
|
|
182
|
+
// Summary counts
|
|
183
|
+
console.log(`\n${bold('Summary:')} ` +
|
|
184
|
+
`${green(String(autoFindings.length))} auto-fixable, ` +
|
|
185
|
+
`${yellow(String(guidedFindings.length))} guided, ` +
|
|
186
|
+
`${red(String(manualFindings.length))} manual`);
|
|
187
|
+
// Info about v3
|
|
188
|
+
console.log(`\n${dim('v3 is framework-agnostic: bring your own framework, use @agentuity/hono')}\n` +
|
|
189
|
+
`${dim('middleware for services, and dedicated packages for each service.')}`);
|
|
190
|
+
if (autoFindings.length > 0) {
|
|
191
|
+
console.log(heading('Auto-fixable (will be applied automatically)'));
|
|
192
|
+
autoFindings.forEach((f, i) => console.log(renderV3Finding(f, i)));
|
|
193
|
+
}
|
|
194
|
+
if (guidedFindings.length > 0) {
|
|
195
|
+
console.log(heading('Guided (applied with your review)'));
|
|
196
|
+
guidedFindings.forEach((f, i) => console.log(renderV3Finding(f, i)));
|
|
197
|
+
}
|
|
198
|
+
if (manualFindings.length > 0) {
|
|
199
|
+
console.log(heading('Manual (requires human action — tool will not touch these)'));
|
|
200
|
+
manualFindings.forEach((f, i) => console.log(renderV3Finding(f, i)));
|
|
201
|
+
}
|
|
202
|
+
console.log(`\n${hr()}`);
|
|
203
|
+
console.log(`${dim('Legend:')} ` +
|
|
204
|
+
`[${green(' auto ')}] fully automated ` +
|
|
205
|
+
`[${yellow(' guided ')}] applied + verify ` +
|
|
206
|
+
`[${red(' manual ')}] instructions only`);
|
|
207
|
+
console.log();
|
|
208
|
+
}
|
|
209
|
+
export function printManualSummaryV3(detection) {
|
|
210
|
+
const manualFindings = detection.findings.filter((f) => f.severity === 'manual');
|
|
211
|
+
if (manualFindings.length === 0)
|
|
212
|
+
return;
|
|
213
|
+
console.log(`\n${bold('━━━ Remaining Manual Steps ━━━')}\n`);
|
|
214
|
+
manualFindings.forEach((f, i) => {
|
|
215
|
+
console.log(` ${dim(`${i + 1}.`)} ${red('✗')} ${f.message}`);
|
|
216
|
+
if (f.file)
|
|
217
|
+
console.log(` ${dim(`File: ${f.file}`)}`);
|
|
218
|
+
if (f.hint) {
|
|
219
|
+
console.log(`\n ${f.hint.split('\n').join('\n ')}\n`);
|
|
220
|
+
}
|
|
221
|
+
});
|
|
222
|
+
}
|
|
159
223
|
//# sourceMappingURL=report.js.map
|
package/dist/report.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report.js","sourceRoot":"","sources":["../src/report.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"report.js","sourceRoot":"","sources":["../src/report.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Transform: createAgent() → plain exported functions
|
|
3
|
+
*
|
|
4
|
+
* For "simple" agents (handler + optional schema only), we:
|
|
5
|
+
* 1. Remove the createAgent() wrapper
|
|
6
|
+
* 2. Extract the handler as a named exported async function
|
|
7
|
+
* 3. Preserve schema validation if present
|
|
8
|
+
* 4. Replace ctx.* service access with imports from services module
|
|
9
|
+
*
|
|
10
|
+
* For "complex" agents, we add a prominent migration comment and leave
|
|
11
|
+
* the code untouched for manual review.
|
|
12
|
+
*
|
|
13
|
+
* We use a combination of regex and AST analysis — regex for the mechanical
|
|
14
|
+
* transforms (preserving formatting), AST for detection (already done in detect-v3).
|
|
15
|
+
*/
|
|
16
|
+
import type { AgentFile } from '../../detect-v3';
|
|
17
|
+
export interface AgentTransformResult {
|
|
18
|
+
/** The transformed source, or null if skipped */
|
|
19
|
+
source: string | null;
|
|
20
|
+
/** What was changed */
|
|
21
|
+
changes: string[];
|
|
22
|
+
/** If the agent is too complex for auto-migration */
|
|
23
|
+
manualRequired?: boolean;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Service access patterns to rewrite.
|
|
27
|
+
* Maps ctx.serviceName → serviceName (import from services module).
|
|
28
|
+
*/
|
|
29
|
+
/**
|
|
30
|
+
* Transform a simple agent file into a plain exported function.
|
|
31
|
+
*/
|
|
32
|
+
export declare function transformAgentFile(source: string, agentInfo: AgentFile, servicesRelativePath: string): AgentTransformResult;
|
|
33
|
+
//# sourceMappingURL=agents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../../src/transforms/v3/agents.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,WAAW,oBAAoB;IACpC,iDAAiD;IACjD,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,uBAAuB;IACvB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,qDAAqD;IACrD,cAAc,CAAC,EAAE,OAAO,CAAC;CACzB;AAOD;;;GAGG;AAEH;;GAEG;AACH,wBAAgB,kBAAkB,CACjC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,oBAAoB,EAAE,MAAM,GAC1B,oBAAoB,CAuEtB"}
|
|
@@ -0,0 +1,335 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Transform: createAgent() → plain exported functions
|
|
3
|
+
*
|
|
4
|
+
* For "simple" agents (handler + optional schema only), we:
|
|
5
|
+
* 1. Remove the createAgent() wrapper
|
|
6
|
+
* 2. Extract the handler as a named exported async function
|
|
7
|
+
* 3. Preserve schema validation if present
|
|
8
|
+
* 4. Replace ctx.* service access with imports from services module
|
|
9
|
+
*
|
|
10
|
+
* For "complex" agents, we add a prominent migration comment and leave
|
|
11
|
+
* the code untouched for manual review.
|
|
12
|
+
*
|
|
13
|
+
* We use a combination of regex and AST analysis — regex for the mechanical
|
|
14
|
+
* transforms (preserving formatting), AST for detection (already done in detect-v3).
|
|
15
|
+
*/
|
|
16
|
+
import ts from 'typescript';
|
|
17
|
+
/**
|
|
18
|
+
* Names we use for the context parameter that should be removed.
|
|
19
|
+
*/
|
|
20
|
+
const CTX_PARAM_NAMES = ['ctx', 'context', 'c', '_ctx', '_context', '_c'];
|
|
21
|
+
/**
|
|
22
|
+
* Service access patterns to rewrite.
|
|
23
|
+
* Maps ctx.serviceName → serviceName (import from services module).
|
|
24
|
+
*/
|
|
25
|
+
/**
|
|
26
|
+
* Transform a simple agent file into a plain exported function.
|
|
27
|
+
*/
|
|
28
|
+
export function transformAgentFile(source, agentInfo, servicesRelativePath) {
|
|
29
|
+
if (agentInfo.complexity === 'complex') {
|
|
30
|
+
return addManualMigrationComment(source, agentInfo);
|
|
31
|
+
}
|
|
32
|
+
const changes = [];
|
|
33
|
+
const sourceFile = ts.createSourceFile(agentInfo.path, source, ts.ScriptTarget.ESNext, true);
|
|
34
|
+
// Find the createAgent() call and extract the handler
|
|
35
|
+
const extracted = extractHandlerFromCreateAgent(sourceFile, source);
|
|
36
|
+
if (!extracted) {
|
|
37
|
+
return {
|
|
38
|
+
source: null,
|
|
39
|
+
changes: ['Could not extract handler from createAgent() — manual review needed'],
|
|
40
|
+
manualRequired: true,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
let output = source;
|
|
44
|
+
// Step 1: Remove the createAgent import
|
|
45
|
+
output = removeCreateAgentImport(output);
|
|
46
|
+
changes.push('Removed createAgent import from @agentuity/runtime');
|
|
47
|
+
// Step 2: Add services import if needed
|
|
48
|
+
if (agentInfo.ctxServices.length > 0) {
|
|
49
|
+
const serviceImports = agentInfo.ctxServices.filter((s) => s !== 'logger');
|
|
50
|
+
const needsLogger = agentInfo.ctxServices.includes('logger');
|
|
51
|
+
const importLines = [];
|
|
52
|
+
if (serviceImports.length > 0) {
|
|
53
|
+
importLines.push(`import { ${serviceImports.join(', ')} } from '${servicesRelativePath}';`);
|
|
54
|
+
}
|
|
55
|
+
if (needsLogger) {
|
|
56
|
+
importLines.push(`import { ${serviceImports.length > 0 ? '' : ''}logger } from '${servicesRelativePath}';`);
|
|
57
|
+
}
|
|
58
|
+
// Consolidate into one import if both
|
|
59
|
+
if (serviceImports.length > 0 || needsLogger) {
|
|
60
|
+
const allImports = [...agentInfo.ctxServices];
|
|
61
|
+
const importLine = `import { ${allImports.join(', ')} } from '${servicesRelativePath}';`;
|
|
62
|
+
// Insert after last import line
|
|
63
|
+
output = insertAfterImports(output, importLine);
|
|
64
|
+
changes.push(`Added services import: ${allImports.join(', ')}`);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
// Step 3: Replace the entire createAgent() export with a plain function
|
|
68
|
+
output = replaceCreateAgentWithFunction(output, agentInfo, extracted);
|
|
69
|
+
changes.push(`Converted agent "${agentInfo.name}" to plain exported async function`);
|
|
70
|
+
// Step 4: Replace ctx.service with direct service references
|
|
71
|
+
for (const service of agentInfo.ctxServices) {
|
|
72
|
+
for (const ctxName of CTX_PARAM_NAMES) {
|
|
73
|
+
const pattern = new RegExp(`${ctxName}\\.${service}\\b`, 'g');
|
|
74
|
+
if (pattern.test(output)) {
|
|
75
|
+
output = output.replace(pattern, service);
|
|
76
|
+
changes.push(`Replaced ${ctxName}.${service} → ${service}`);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
// Step 5: Clean up — remove ctx/context parameter references that are now unused
|
|
81
|
+
// (Don't do this automatically — leave for the user to clean up)
|
|
82
|
+
return { source: output, changes };
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* For complex agents, add a migration comment block.
|
|
86
|
+
*/
|
|
87
|
+
function addManualMigrationComment(source, agentInfo) {
|
|
88
|
+
const comment = `// ⚠️ MIGRATION REQUIRED — createAgent() removed in v3\n` +
|
|
89
|
+
`//\n` +
|
|
90
|
+
`// This agent ("${agentInfo.name}") requires manual migration because:\n` +
|
|
91
|
+
`// ${agentInfo.complexityReason}\n` +
|
|
92
|
+
`//\n` +
|
|
93
|
+
`// To migrate:\n` +
|
|
94
|
+
`// 1. Extract the handler into a plain exported async function\n` +
|
|
95
|
+
`// 2. Move setup() logic to module-level initialization\n` +
|
|
96
|
+
`// 3. Replace ctx.kv/ctx.vector/etc. with imports from '../services'\n` +
|
|
97
|
+
`// 4. Replace ctx.config with direct configuration\n` +
|
|
98
|
+
`// 5. Remove event listeners (use your own event patterns)\n` +
|
|
99
|
+
`// 6. Remove the createAgent() import and wrapper\n` +
|
|
100
|
+
`//\n` +
|
|
101
|
+
`// Example after migration:\n` +
|
|
102
|
+
`// import { kv } from '../services';\n` +
|
|
103
|
+
`//\n` +
|
|
104
|
+
`// export async function ${toFunctionName(agentInfo.name)}(input: YourInputType) {\n` +
|
|
105
|
+
`// const data = await kv.get('namespace', 'key');\n` +
|
|
106
|
+
`// return { result: data };\n` +
|
|
107
|
+
`// }\n`;
|
|
108
|
+
return {
|
|
109
|
+
source: comment + '\n' + source,
|
|
110
|
+
changes: [`Added migration comment for complex agent "${agentInfo.name}"`],
|
|
111
|
+
manualRequired: true,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Extract the handler function body and parameters from createAgent().
|
|
116
|
+
*/
|
|
117
|
+
function extractHandlerFromCreateAgent(sourceFile, _source) {
|
|
118
|
+
let result = null;
|
|
119
|
+
function visit(node) {
|
|
120
|
+
if (result)
|
|
121
|
+
return;
|
|
122
|
+
if (ts.isCallExpression(node) &&
|
|
123
|
+
ts.isIdentifier(node.expression) &&
|
|
124
|
+
node.expression.text === 'createAgent') {
|
|
125
|
+
const configArg = node.arguments[1];
|
|
126
|
+
if (!configArg || !ts.isObjectLiteralExpression(configArg))
|
|
127
|
+
return;
|
|
128
|
+
let handlerNode;
|
|
129
|
+
let schemaNode;
|
|
130
|
+
for (const prop of configArg.properties) {
|
|
131
|
+
if (ts.isPropertyAssignment(prop) && ts.isIdentifier(prop.name)) {
|
|
132
|
+
if (prop.name.text === 'handler') {
|
|
133
|
+
handlerNode = prop.initializer;
|
|
134
|
+
}
|
|
135
|
+
if (prop.name.text === 'schema') {
|
|
136
|
+
schemaNode = prop.initializer;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
if (ts.isMethodDeclaration(prop) && ts.isIdentifier(prop.name)) {
|
|
140
|
+
if (prop.name.text === 'handler') {
|
|
141
|
+
handlerNode = prop;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
if (!handlerNode)
|
|
146
|
+
return;
|
|
147
|
+
// Extract handler params and body
|
|
148
|
+
let params;
|
|
149
|
+
let body;
|
|
150
|
+
if (ts.isArrowFunction(handlerNode) || ts.isFunctionExpression(handlerNode)) {
|
|
151
|
+
params = handlerNode.parameters;
|
|
152
|
+
body = handlerNode.body;
|
|
153
|
+
}
|
|
154
|
+
else if (ts.isMethodDeclaration(handlerNode)) {
|
|
155
|
+
params = handlerNode.parameters;
|
|
156
|
+
body = handlerNode.body;
|
|
157
|
+
}
|
|
158
|
+
if (!body)
|
|
159
|
+
return;
|
|
160
|
+
// Get parameter text (skip ctx/context parameter, keep input)
|
|
161
|
+
const paramTexts = [];
|
|
162
|
+
if (params) {
|
|
163
|
+
for (let i = 0; i < params.length; i++) {
|
|
164
|
+
const param = params[i];
|
|
165
|
+
if (!param)
|
|
166
|
+
continue;
|
|
167
|
+
const paramName = param.name.getText(sourceFile);
|
|
168
|
+
// Skip the first param if it's ctx/context (agent context)
|
|
169
|
+
if (i === 0 && CTX_PARAM_NAMES.includes(paramName))
|
|
170
|
+
continue;
|
|
171
|
+
paramTexts.push(param.getText(sourceFile));
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
// Get body text
|
|
175
|
+
const bodyText = body.getText(sourceFile);
|
|
176
|
+
// Get schema text if present
|
|
177
|
+
const schemaText = schemaNode?.getText(sourceFile);
|
|
178
|
+
result = {
|
|
179
|
+
handlerParams: paramTexts.join(', '),
|
|
180
|
+
handlerBody: bodyText,
|
|
181
|
+
hasSchema: !!schemaNode,
|
|
182
|
+
schemaText,
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
ts.forEachChild(node, visit);
|
|
186
|
+
}
|
|
187
|
+
visit(sourceFile);
|
|
188
|
+
return result;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Remove `import { createAgent } from '@agentuity/runtime'` (and any other
|
|
192
|
+
* named imports from that module).
|
|
193
|
+
*/
|
|
194
|
+
function removeCreateAgentImport(source) {
|
|
195
|
+
// Remove the entire @agentuity/runtime import line
|
|
196
|
+
// (there shouldn't be other useful imports from runtime in v3)
|
|
197
|
+
return source.replace(/import\s*\{[^}]*\}\s*from\s*['"]@agentuity\/runtime['"]\s*;?\s*\n?/g, '');
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Insert an import line after the last existing import declaration.
|
|
201
|
+
* Uses AST to correctly handle multi-line imports.
|
|
202
|
+
*/
|
|
203
|
+
function insertAfterImports(source, importLine) {
|
|
204
|
+
const sf = ts.createSourceFile('temp.ts', source, ts.ScriptTarget.ESNext, true);
|
|
205
|
+
let lastImportEnd = -1;
|
|
206
|
+
for (const stmt of sf.statements) {
|
|
207
|
+
if (ts.isImportDeclaration(stmt)) {
|
|
208
|
+
lastImportEnd = stmt.getEnd();
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
if (lastImportEnd >= 0) {
|
|
212
|
+
return (source.substring(0, lastImportEnd) + '\n' + importLine + source.substring(lastImportEnd));
|
|
213
|
+
}
|
|
214
|
+
// No imports — add at the top
|
|
215
|
+
return importLine + '\n' + source;
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Replace the createAgent() call with a plain exported async function.
|
|
219
|
+
*
|
|
220
|
+
* Uses AST node positions for precise replacement instead of regex
|
|
221
|
+
* (which can't handle nested braces in the config object).
|
|
222
|
+
*/
|
|
223
|
+
function replaceCreateAgentWithFunction(source, agentInfo, extracted) {
|
|
224
|
+
const funcName = toFunctionName(agentInfo.name);
|
|
225
|
+
// Build the function signature
|
|
226
|
+
const funcSignature = `export async function ${funcName}(${extracted.handlerParams})`;
|
|
227
|
+
// Build the body
|
|
228
|
+
let bodyText = extracted.handlerBody;
|
|
229
|
+
// If the body is already a block { ... }, use it directly
|
|
230
|
+
// If it's a single expression (arrow function body), wrap it
|
|
231
|
+
if (!bodyText.trimStart().startsWith('{')) {
|
|
232
|
+
bodyText = `{\n\treturn ${bodyText};\n}`;
|
|
233
|
+
}
|
|
234
|
+
// Add schema validation at the top of the function body if schema was present
|
|
235
|
+
let schemaComment = '';
|
|
236
|
+
if (extracted.hasSchema && extracted.schemaText) {
|
|
237
|
+
schemaComment =
|
|
238
|
+
'\n// TODO: Schema validation was previously handled by createAgent().\n' +
|
|
239
|
+
'// The original schema definition was:\n' +
|
|
240
|
+
`// schema: ${extracted.schemaText.split('\n').join('\n// ')}\n` +
|
|
241
|
+
'// Consider using zod or @agentuity/schema for input validation.\n';
|
|
242
|
+
}
|
|
243
|
+
const replacement = schemaComment + funcSignature + ' ' + bodyText;
|
|
244
|
+
// Use AST to find the exact range of the createAgent() statement
|
|
245
|
+
const sourceFile = ts.createSourceFile(agentInfo.path, source, ts.ScriptTarget.ESNext, true);
|
|
246
|
+
let createAgentStart = -1;
|
|
247
|
+
let createAgentEnd = -1;
|
|
248
|
+
let exportDefaultVarName = null;
|
|
249
|
+
let isDirectExportDefault = false;
|
|
250
|
+
for (const stmt of sourceFile.statements) {
|
|
251
|
+
// Pattern 1: export default createAgent('name', { ... })
|
|
252
|
+
if (ts.isExportAssignment(stmt) && !stmt.isExportEquals) {
|
|
253
|
+
const expr = stmt.expression;
|
|
254
|
+
if (ts.isCallExpression(expr) &&
|
|
255
|
+
ts.isIdentifier(expr.expression) &&
|
|
256
|
+
expr.expression.text === 'createAgent') {
|
|
257
|
+
createAgentStart = stmt.getStart(sourceFile);
|
|
258
|
+
createAgentEnd = stmt.getEnd();
|
|
259
|
+
isDirectExportDefault = true;
|
|
260
|
+
break;
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
// Pattern 2: const agent = createAgent('name', { ... })
|
|
264
|
+
if (ts.isVariableStatement(stmt)) {
|
|
265
|
+
const declarations = stmt.declarationList.declarations;
|
|
266
|
+
if (declarations.length === 1) {
|
|
267
|
+
const decl = declarations[0];
|
|
268
|
+
if (decl?.initializer) {
|
|
269
|
+
let callExpr;
|
|
270
|
+
if (ts.isCallExpression(decl.initializer) &&
|
|
271
|
+
ts.isIdentifier(decl.initializer.expression) &&
|
|
272
|
+
decl.initializer.expression.text === 'createAgent') {
|
|
273
|
+
callExpr = decl.initializer;
|
|
274
|
+
}
|
|
275
|
+
else if (ts.isAwaitExpression(decl.initializer) &&
|
|
276
|
+
ts.isCallExpression(decl.initializer.expression) &&
|
|
277
|
+
ts.isIdentifier(decl.initializer.expression.expression) &&
|
|
278
|
+
decl.initializer.expression.expression.text === 'createAgent') {
|
|
279
|
+
callExpr = decl.initializer.expression;
|
|
280
|
+
}
|
|
281
|
+
if (callExpr && ts.isIdentifier(decl.name)) {
|
|
282
|
+
exportDefaultVarName = decl.name.text;
|
|
283
|
+
createAgentStart = stmt.getStart(sourceFile);
|
|
284
|
+
createAgentEnd = stmt.getEnd();
|
|
285
|
+
break;
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
if (createAgentStart === -1) {
|
|
292
|
+
// Couldn't find the createAgent statement — return source unchanged
|
|
293
|
+
return source;
|
|
294
|
+
}
|
|
295
|
+
// Replace the createAgent statement with the function
|
|
296
|
+
let result = source.substring(0, createAgentStart) + replacement + source.substring(createAgentEnd);
|
|
297
|
+
// Handle the export default
|
|
298
|
+
if (isDirectExportDefault) {
|
|
299
|
+
// The export default was part of the statement we replaced,
|
|
300
|
+
// so add a separate export default
|
|
301
|
+
result += `\n\nexport default ${funcName};\n`;
|
|
302
|
+
}
|
|
303
|
+
else if (exportDefaultVarName) {
|
|
304
|
+
// Replace `export default varName` with `export default funcName`
|
|
305
|
+
result = result.replace(new RegExp(`export\\s+default\\s+${exportDefaultVarName}\\s*;?`), `export default ${funcName};`);
|
|
306
|
+
}
|
|
307
|
+
return result;
|
|
308
|
+
}
|
|
309
|
+
/**
|
|
310
|
+
* Convert kebab-case or snake_case agent name to camelCase function name.
|
|
311
|
+
*/
|
|
312
|
+
/** Service names that could clash with function names */
|
|
313
|
+
const RESERVED_SERVICE_NAMES = new Set([
|
|
314
|
+
'kv',
|
|
315
|
+
'vector',
|
|
316
|
+
'stream',
|
|
317
|
+
'queue',
|
|
318
|
+
'email',
|
|
319
|
+
'task',
|
|
320
|
+
'schedule',
|
|
321
|
+
'sandbox',
|
|
322
|
+
'logger',
|
|
323
|
+
]);
|
|
324
|
+
/**
|
|
325
|
+
* Convert agent name to a valid, non-clashing function name.
|
|
326
|
+
* Appends 'Handler' suffix if the name would clash with a service import.
|
|
327
|
+
*/
|
|
328
|
+
function toFunctionName(name) {
|
|
329
|
+
const camel = name.replace(/[-_]([a-z])/g, (_, c) => c.toUpperCase());
|
|
330
|
+
if (RESERVED_SERVICE_NAMES.has(camel)) {
|
|
331
|
+
return camel + 'Handler';
|
|
332
|
+
}
|
|
333
|
+
return camel;
|
|
334
|
+
}
|
|
335
|
+
//# sourceMappingURL=agents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agents.js","sourceRoot":"","sources":["../../../src/transforms/v3/agents.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Transform: dev setup for Hono + SPA projects.
|
|
3
|
+
*
|
|
4
|
+
* When a project has both a Hono backend (src/index.ts) and a Vite SPA
|
|
5
|
+
* (src/web/), we need to set up a dev workflow that runs both:
|
|
6
|
+
*
|
|
7
|
+
* 1. Add a Vite proxy config so /api requests go to the Hono backend
|
|
8
|
+
* 2. Set up dev scripts to run both servers concurrently
|
|
9
|
+
*
|
|
10
|
+
* In production, the buildpack handles this (static server + Hono backend).
|
|
11
|
+
* In dev, we use Vite's built-in proxy to keep it a single-port experience.
|
|
12
|
+
*/
|
|
13
|
+
export interface DevSetupResult {
|
|
14
|
+
/** Patched vite.config.ts content, or null if no changes */
|
|
15
|
+
viteConfig: string | null;
|
|
16
|
+
/** Changes made to vite.config.ts */
|
|
17
|
+
viteChanges: string[];
|
|
18
|
+
/** dev script value for package.json */
|
|
19
|
+
devScript: string;
|
|
20
|
+
/** server:api script value for package.json */
|
|
21
|
+
serverScript: string;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Generate dev setup for a Hono + Vite SPA project.
|
|
25
|
+
*/
|
|
26
|
+
export declare function generateDevSetup(viteConfigSource: string | null): DevSetupResult;
|
|
27
|
+
//# sourceMappingURL=dev-setup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dev-setup.d.ts","sourceRoot":"","sources":["../../../src/transforms/v3/dev-setup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH,MAAM,WAAW,cAAc;IAC9B,4DAA4D;IAC5D,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,qCAAqC;IACrC,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,+CAA+C;IAC/C,YAAY,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAAG,cAAc,CAiChF"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Transform: dev setup for Hono + SPA projects.
|
|
3
|
+
*
|
|
4
|
+
* When a project has both a Hono backend (src/index.ts) and a Vite SPA
|
|
5
|
+
* (src/web/), we need to set up a dev workflow that runs both:
|
|
6
|
+
*
|
|
7
|
+
* 1. Add a Vite proxy config so /api requests go to the Hono backend
|
|
8
|
+
* 2. Set up dev scripts to run both servers concurrently
|
|
9
|
+
*
|
|
10
|
+
* In production, the buildpack handles this (static server + Hono backend).
|
|
11
|
+
* In dev, we use Vite's built-in proxy to keep it a single-port experience.
|
|
12
|
+
*/
|
|
13
|
+
import ts from 'typescript';
|
|
14
|
+
const API_PORT = 3001;
|
|
15
|
+
/**
|
|
16
|
+
* Generate dev setup for a Hono + Vite SPA project.
|
|
17
|
+
*/
|
|
18
|
+
export function generateDevSetup(viteConfigSource) {
|
|
19
|
+
const serverScript = `PORT=${API_PORT} bun --hot src/index.ts`;
|
|
20
|
+
const devScript = `bun run server:api & vite dev`;
|
|
21
|
+
if (!viteConfigSource) {
|
|
22
|
+
// No vite.config.ts — just return scripts, no vite changes
|
|
23
|
+
return {
|
|
24
|
+
viteConfig: null,
|
|
25
|
+
viteChanges: [],
|
|
26
|
+
devScript: serverScript, // No SPA, just run the server
|
|
27
|
+
serverScript,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
// Check if proxy is already configured
|
|
31
|
+
if (viteConfigSource.includes('proxy')) {
|
|
32
|
+
return {
|
|
33
|
+
viteConfig: null,
|
|
34
|
+
viteChanges: ['Vite proxy already configured — skipped'],
|
|
35
|
+
devScript,
|
|
36
|
+
serverScript,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
// Add server.proxy to vite.config.ts using AST to find the right insertion point
|
|
40
|
+
const patched = addViteProxy(viteConfigSource);
|
|
41
|
+
return {
|
|
42
|
+
viteConfig: patched.source,
|
|
43
|
+
viteChanges: patched.changes,
|
|
44
|
+
devScript,
|
|
45
|
+
serverScript,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Add server.proxy configuration to vite.config.ts.
|
|
50
|
+
*
|
|
51
|
+
* Finds the defineConfig() call and injects a `server` property with proxy config.
|
|
52
|
+
*/
|
|
53
|
+
function addViteProxy(source) {
|
|
54
|
+
const changes = [];
|
|
55
|
+
const proxyConfig = `\tserver: {\n` +
|
|
56
|
+
`\t\tproxy: {\n` +
|
|
57
|
+
`\t\t\t'/api': {\n` +
|
|
58
|
+
`\t\t\t\ttarget: 'http://localhost:${API_PORT}',\n` +
|
|
59
|
+
`\t\t\t\tchangeOrigin: true,\n` +
|
|
60
|
+
`\t\t\t},\n` +
|
|
61
|
+
`\t\t},\n` +
|
|
62
|
+
`\t},`;
|
|
63
|
+
const sf = ts.createSourceFile('vite.config.ts', source, ts.ScriptTarget.ESNext, true);
|
|
64
|
+
// Find the defineConfig() call's object literal argument
|
|
65
|
+
let configObjectEnd = -1;
|
|
66
|
+
function visit(node) {
|
|
67
|
+
if (configObjectEnd >= 0)
|
|
68
|
+
return;
|
|
69
|
+
if (ts.isCallExpression(node) &&
|
|
70
|
+
ts.isIdentifier(node.expression) &&
|
|
71
|
+
node.expression.text === 'defineConfig') {
|
|
72
|
+
const arg = node.arguments[0];
|
|
73
|
+
if (arg && ts.isObjectLiteralExpression(arg)) {
|
|
74
|
+
// Insert before the closing brace of the config object
|
|
75
|
+
configObjectEnd = arg.getEnd() - 1; // Position of `}`
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
ts.forEachChild(node, visit);
|
|
79
|
+
}
|
|
80
|
+
visit(sf);
|
|
81
|
+
if (configObjectEnd >= 0) {
|
|
82
|
+
// Insert the proxy config before the closing `}` of defineConfig({...})
|
|
83
|
+
const before = source.substring(0, configObjectEnd);
|
|
84
|
+
const after = source.substring(configObjectEnd);
|
|
85
|
+
// Check if there's already content (need a comma)
|
|
86
|
+
const trimmedBefore = before.trimEnd();
|
|
87
|
+
const needsComma = trimmedBefore.endsWith(',') || trimmedBefore.endsWith('{') ? '' : ',';
|
|
88
|
+
const result = `${before}${needsComma}\n${proxyConfig}\n${after}`;
|
|
89
|
+
changes.push(`Added server.proxy config: /api → http://localhost:${API_PORT}`);
|
|
90
|
+
return { source: result, changes };
|
|
91
|
+
}
|
|
92
|
+
// Fallback: couldn't find defineConfig — append a comment
|
|
93
|
+
const fallback = source +
|
|
94
|
+
'\n\n// TODO: Add Vite proxy for dev mode:\n' +
|
|
95
|
+
'// server: {\n' +
|
|
96
|
+
'// proxy: {\n' +
|
|
97
|
+
`// '/api': { target: 'http://localhost:${API_PORT}', changeOrigin: true },\n` +
|
|
98
|
+
'// },\n' +
|
|
99
|
+
'// },\n';
|
|
100
|
+
changes.push('Could not auto-patch vite.config.ts — added proxy config as comment');
|
|
101
|
+
return { source: fallback, changes };
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=dev-setup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dev-setup.js","sourceRoot":"","sources":["../../../src/transforms/v3/dev-setup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,MAAM,QAAQ,GAAG,IAAI,CAAC;AAatB;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,gBAA+B;IAC/D,MAAM,YAAY,GAAG,QAAQ,QAAQ,yBAAyB,CAAC;IAC/D,MAAM,SAAS,GAAG,+BAA+B,CAAC;IAElD,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACvB,2DAA2D;QAC3D,OAAO;YACN,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,EAAE;YACf,SAAS,EAAE,YAAY,EAAE,8BAA8B;YACvD,YAAY;SACZ,CAAC;IACH,CAAC;IAED,uCAAuC;IACvC,IAAI,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACxC,OAAO;YACN,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,CAAC,yCAAyC,CAAC;YACxD,SAAS;YACT,YAAY;SACZ,CAAC;IACH,CAAC;IAED,iFAAiF;IACjF,MAAM,OAAO,GAAG,YAAY,CAAC,gBAAgB,CAAC,CAAC;IAE/C,OAAO;QACN,UAAU,EAAE,OAAO,CAAC,MAAM;QAC1B,WAAW,EAAE,OAAO,CAAC,OAAO;QAC5B,SAAS;QACT,YAAY;KACZ,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,YAAY,CAAC,MAAc;IACnC,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,MAAM,WAAW,GAChB,eAAe;QACf,gBAAgB;QAChB,mBAAmB;QACnB,qCAAqC,QAAQ,MAAM;QACnD,+BAA+B;QAC/B,YAAY;QACZ,UAAU;QACV,MAAM,CAAC;IAER,MAAM,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAEvF,yDAAyD;IACzD,IAAI,eAAe,GAAG,CAAC,CAAC,CAAC;IAEzB,SAAS,KAAK,CAAC,IAAa;QAC3B,IAAI,eAAe,IAAI,CAAC;YAAE,OAAO;QAEjC,IACC,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC;YACzB,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC;YAChC,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,cAAc,EACtC,CAAC;YACF,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,GAAG,IAAI,EAAE,CAAC,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC9C,uDAAuD;gBACvD,eAAe,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,kBAAkB;YACvD,CAAC;QACF,CAAC;QAED,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,EAAE,CAAC,CAAC;IAEV,IAAI,eAAe,IAAI,CAAC,EAAE,CAAC;QAC1B,wEAAwE;QACxE,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;QACpD,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QAEhD,kDAAkD;QAClD,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;QACvC,MAAM,UAAU,GAAG,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;QAEzF,MAAM,MAAM,GAAG,GAAG,MAAM,GAAG,UAAU,KAAK,WAAW,KAAK,KAAK,EAAE,CAAC;QAClE,OAAO,CAAC,IAAI,CAAC,sDAAsD,QAAQ,EAAE,CAAC,CAAC;QAE/E,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IACpC,CAAC;IAED,0DAA0D;IAC1D,MAAM,QAAQ,GACb,MAAM;QACN,6CAA6C;QAC7C,gBAAgB;QAChB,iBAAiB;QACjB,8CAA8C,QAAQ,4BAA4B;QAClF,WAAW;QACX,SAAS,CAAC;IAEX,OAAO,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC;IACpF,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;AACtC,CAAC"}
|