agentic-lang 0.2.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/COMMUNITY.md +220 -0
- package/CONTRIBUTING.md +194 -0
- package/FINAL_REPORT.md +398 -0
- package/FOR_OTHER_LLMS.md +286 -0
- package/IMPROVEMENTS.md +319 -0
- package/LAUNCH_GUIDE.md +388 -0
- package/LICENSE +21 -0
- package/NPM_PUBLISH.md +257 -0
- package/PROJECT_COMPLETE.md +414 -0
- package/PROJECT_OVERVIEW.md +265 -0
- package/PROJECT_TREE.txt +228 -0
- package/PUBLISHING_GUIDE.md +426 -0
- package/PUBLISH_NOW.md +337 -0
- package/QUICKSTART.md +207 -0
- package/README.md +195 -0
- package/README_ENHANCED.md +329 -0
- package/READY_TO_LAUNCH.txt +56 -0
- package/REFACTOR_PLAN.md +179 -0
- package/ROADMAP.md +201 -0
- package/SUMMARY.md +315 -0
- package/bin/agentic.js +3 -0
- package/blog/001-introducing-agentic.md +382 -0
- package/blog/002-confidence-driven-development.md +490 -0
- package/blog/003-formal-verification.md +427 -0
- package/blog/004-multi-agent-production.md +436 -0
- package/dist/cli.d.ts +7 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +151 -0
- package/dist/cli.js.map +1 -0
- package/dist/diagnostics/diagnostic.d.ts +115 -0
- package/dist/diagnostics/diagnostic.d.ts.map +1 -0
- package/dist/diagnostics/diagnostic.js +101 -0
- package/dist/diagnostics/diagnostic.js.map +1 -0
- package/dist/diagnostics/formatter.d.ts +36 -0
- package/dist/diagnostics/formatter.d.ts.map +1 -0
- package/dist/diagnostics/formatter.js +263 -0
- package/dist/diagnostics/formatter.js.map +1 -0
- package/dist/effects/effect-system.d.ts +64 -0
- package/dist/effects/effect-system.d.ts.map +1 -0
- package/dist/effects/effect-system.js +197 -0
- package/dist/effects/effect-system.js.map +1 -0
- package/dist/generator/typescript-generator.d.ts +31 -0
- package/dist/generator/typescript-generator.d.ts.map +1 -0
- package/dist/generator/typescript-generator.js +308 -0
- package/dist/generator/typescript-generator.js.map +1 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +60 -0
- package/dist/index.js.map +1 -0
- package/dist/lean4/exporter.d.ts +24 -0
- package/dist/lean4/exporter.d.ts.map +1 -0
- package/dist/lean4/exporter.js +142 -0
- package/dist/lean4/exporter.js.map +1 -0
- package/dist/lsp/server.d.ts +6 -0
- package/dist/lsp/server.d.ts.map +1 -0
- package/dist/lsp/server.js +131 -0
- package/dist/lsp/server.js.map +1 -0
- package/dist/parser/lexer.d.ts +79 -0
- package/dist/parser/lexer.d.ts.map +1 -0
- package/dist/parser/lexer.js +296 -0
- package/dist/parser/lexer.js.map +1 -0
- package/dist/parser/parser-enhanced.d.ts +12 -0
- package/dist/parser/parser-enhanced.d.ts.map +1 -0
- package/dist/parser/parser-enhanced.js +206 -0
- package/dist/parser/parser-enhanced.js.map +1 -0
- package/dist/parser/parser.d.ts +34 -0
- package/dist/parser/parser.d.ts.map +1 -0
- package/dist/parser/parser.js +507 -0
- package/dist/parser/parser.js.map +1 -0
- package/dist/property-tests/generator-enhanced.d.ts +27 -0
- package/dist/property-tests/generator-enhanced.d.ts.map +1 -0
- package/dist/property-tests/generator-enhanced.js +209 -0
- package/dist/property-tests/generator-enhanced.js.map +1 -0
- package/dist/property-tests/generator-fixed.d.ts +2 -0
- package/dist/property-tests/generator-fixed.d.ts.map +1 -0
- package/dist/property-tests/generator-fixed.js +7 -0
- package/dist/property-tests/generator-fixed.js.map +1 -0
- package/dist/property-tests/generator.d.ts +28 -0
- package/dist/property-tests/generator.d.ts.map +1 -0
- package/dist/property-tests/generator.js +284 -0
- package/dist/property-tests/generator.js.map +1 -0
- package/dist/refinements/refinement-types.d.ts +96 -0
- package/dist/refinements/refinement-types.d.ts.map +1 -0
- package/dist/refinements/refinement-types.js +234 -0
- package/dist/refinements/refinement-types.js.map +1 -0
- package/dist/repl.d.ts +21 -0
- package/dist/repl.d.ts.map +1 -0
- package/dist/repl.js +317 -0
- package/dist/repl.js.map +1 -0
- package/dist/runtime/agents.d.ts +97 -0
- package/dist/runtime/agents.d.ts.map +1 -0
- package/dist/runtime/agents.js +258 -0
- package/dist/runtime/agents.js.map +1 -0
- package/dist/runtime/index.d.ts +98 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +253 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/types-extended.d.ts +197 -0
- package/dist/types-extended.d.ts.map +1 -0
- package/dist/types-extended.js +7 -0
- package/dist/types-extended.js.map +1 -0
- package/dist/types.d.ts +129 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -0
- package/dist/verification/z3-engine.d.ts +75 -0
- package/dist/verification/z3-engine.d.ts.map +1 -0
- package/dist/verification/z3-engine.js +234 -0
- package/dist/verification/z3-engine.js.map +1 -0
- package/examples/advanced-features.agentic +98 -0
- package/examples/annotations.agentic +37 -0
- package/examples/auth.agentic +53 -0
- package/examples/enterprise-example.agentic +360 -0
- package/examples/minimal.agentic +3 -0
- package/examples/minimal.ts +7 -0
- package/examples/ml-pipeline.agentic +350 -0
- package/examples/multi-agent-example.agentic +212 -0
- package/examples/onboarding-tutorial.agentic +263 -0
- package/examples/production-api.agentic +304 -0
- package/examples/real-world-chatbot.agentic +351 -0
- package/examples/result-handling.agentic +34 -0
- package/examples/runtime.ts +24 -0
- package/examples/showcase.agentic +22 -0
- package/examples/showcase.ts +28 -0
- package/examples/simple-test.agentic +4 -0
- package/examples/simple-test.ts +7 -0
- package/examples/simple.agentic +20 -0
- package/examples/test2.agentic +4 -0
- package/examples/test2.ts +9 -0
- package/examples/test3.agentic +4 -0
- package/examples/test3.ts +9 -0
- package/package.json +70 -0
- package/playground/index.html +221 -0
- package/playground/playground.js +291 -0
- package/registry/package-registry.ts +319 -0
- package/scripts/build.js +50 -0
- package/scripts/validate-confidence-mutation.ts +112 -0
- package/stdlib/async/promise.agentic +216 -0
- package/stdlib/database/pool.agentic +235 -0
- package/stdlib/file/io.agentic +194 -0
- package/stdlib/http/client.agentic +168 -0
- package/video-scripts/001-agentic-in-100-seconds.md +175 -0
- package/vscode-extension/README.md +67 -0
- package/vscode-extension/language-configuration.json +31 -0
- package/vscode-extension/package.json +46 -0
- package/vscode-extension/syntaxes/agentic.tmLanguage.json +134 -0
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Effect System for Agentic
|
|
4
|
+
* Tracks side effects at type level (inspired by Koka, Eff, Unison)
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.effectCostTracker = exports.effectHandlers = exports.effectInference = exports.EffectCostTracker = exports.mockDatabaseHandler = exports.consoleHandler = exports.EffectHandlerRegistry = exports.EffectInferenceEngine = void 0;
|
|
8
|
+
// Effect Inference Engine
|
|
9
|
+
class EffectInferenceEngine {
|
|
10
|
+
constructor() {
|
|
11
|
+
this.functionEffects = new Map();
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Infer effects from function body
|
|
15
|
+
*/
|
|
16
|
+
inferEffects(func) {
|
|
17
|
+
const effects = new Set();
|
|
18
|
+
// Check for explicit effect annotations
|
|
19
|
+
const effectAnnotation = func.annotations.find(a => a.name === 'effects');
|
|
20
|
+
if (effectAnnotation && effectAnnotation.args.effects) {
|
|
21
|
+
const declaredEffects = effectAnnotation.args.effects;
|
|
22
|
+
declaredEffects.forEach(e => effects.add(e));
|
|
23
|
+
return { effects };
|
|
24
|
+
}
|
|
25
|
+
// Infer from function body
|
|
26
|
+
this.analyzeNode(func.body, effects);
|
|
27
|
+
// Cache for future use
|
|
28
|
+
this.functionEffects.set(func.name, { effects });
|
|
29
|
+
return { effects };
|
|
30
|
+
}
|
|
31
|
+
analyzeNode(node, effects) {
|
|
32
|
+
switch (node.type) {
|
|
33
|
+
case 'CallExpression':
|
|
34
|
+
this.analyzeCallExpression(node, effects);
|
|
35
|
+
break;
|
|
36
|
+
case 'BlockStatement':
|
|
37
|
+
const block = node;
|
|
38
|
+
block.body.forEach(stmt => this.analyzeNode(stmt, effects));
|
|
39
|
+
break;
|
|
40
|
+
case 'IfStatement':
|
|
41
|
+
const ifStmt = node;
|
|
42
|
+
this.analyzeNode(ifStmt.consequent, effects);
|
|
43
|
+
if (ifStmt.alternate) {
|
|
44
|
+
this.analyzeNode(ifStmt.alternate, effects);
|
|
45
|
+
}
|
|
46
|
+
break;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
analyzeCallExpression(call, effects) {
|
|
50
|
+
const calleeName = call.callee.name;
|
|
51
|
+
// Known effectful functions
|
|
52
|
+
const effectMap = {
|
|
53
|
+
'console.log': 'io',
|
|
54
|
+
'fetch': 'network',
|
|
55
|
+
'database.query': 'database',
|
|
56
|
+
'llm.complete': 'llm_call',
|
|
57
|
+
'Math.random': 'random',
|
|
58
|
+
'fs.readFile': 'file_system',
|
|
59
|
+
'prompt': 'human_interaction',
|
|
60
|
+
};
|
|
61
|
+
// Check if this is a known effectful operation
|
|
62
|
+
for (const [pattern, effect] of Object.entries(effectMap)) {
|
|
63
|
+
if (calleeName.includes(pattern.split('.')[0])) {
|
|
64
|
+
effects.add(effect);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
// Check for async operations (Promise, await)
|
|
68
|
+
if (calleeName.includes('async') || calleeName.includes('await')) {
|
|
69
|
+
effects.add('async');
|
|
70
|
+
}
|
|
71
|
+
// Look up callee's effects (if we've analyzed it)
|
|
72
|
+
const calleeEffects = this.functionEffects.get(calleeName);
|
|
73
|
+
if (calleeEffects) {
|
|
74
|
+
calleeEffects.effects.forEach(e => effects.add(e));
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Check if function effects are compatible with declared effects
|
|
79
|
+
*/
|
|
80
|
+
validateEffects(func, inferredEffects) {
|
|
81
|
+
const effectAnnotation = func.annotations.find(a => a.name === 'effects');
|
|
82
|
+
if (!effectAnnotation) {
|
|
83
|
+
// No declared effects, all inferred effects are violations of purity
|
|
84
|
+
if (inferredEffects.effects.size > 0) {
|
|
85
|
+
return {
|
|
86
|
+
valid: false,
|
|
87
|
+
violations: Array.from(inferredEffects.effects).map(e => `Undeclared effect: ${e}`),
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
return { valid: true, violations: [] };
|
|
91
|
+
}
|
|
92
|
+
const declaredEffects = new Set(effectAnnotation.args.effects);
|
|
93
|
+
const violations = [];
|
|
94
|
+
// Check for undeclared effects
|
|
95
|
+
for (const effect of inferredEffects.effects) {
|
|
96
|
+
if (!declaredEffects.has(effect)) {
|
|
97
|
+
violations.push(`Effect '${effect}' used but not declared`);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
return {
|
|
101
|
+
valid: violations.length === 0,
|
|
102
|
+
violations,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Combine effects from multiple functions (for composition)
|
|
107
|
+
*/
|
|
108
|
+
combineEffects(effects1, effects2) {
|
|
109
|
+
const combined = new Set([
|
|
110
|
+
...effects1.effects,
|
|
111
|
+
...effects2.effects,
|
|
112
|
+
]);
|
|
113
|
+
return { effects: combined };
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Check if function is pure (no effects)
|
|
117
|
+
*/
|
|
118
|
+
isPure(effectSet) {
|
|
119
|
+
return effectSet.effects.size === 0 ||
|
|
120
|
+
(effectSet.effects.size === 1 && effectSet.effects.has('pure'));
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
exports.EffectInferenceEngine = EffectInferenceEngine;
|
|
124
|
+
class EffectHandlerRegistry {
|
|
125
|
+
constructor() {
|
|
126
|
+
this.handlers = new Map();
|
|
127
|
+
}
|
|
128
|
+
register(handler) {
|
|
129
|
+
this.handlers.set(handler.effect, handler);
|
|
130
|
+
}
|
|
131
|
+
get(effect) {
|
|
132
|
+
return this.handlers.get(effect);
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Execute function with custom effect handlers
|
|
136
|
+
*/
|
|
137
|
+
async withHandlers(fn, handlers) {
|
|
138
|
+
// Install handlers
|
|
139
|
+
handlers.forEach(h => this.register(h));
|
|
140
|
+
try {
|
|
141
|
+
return await fn();
|
|
142
|
+
}
|
|
143
|
+
finally {
|
|
144
|
+
// Cleanup handlers
|
|
145
|
+
handlers.forEach(h => this.handlers.delete(h.effect));
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
exports.EffectHandlerRegistry = EffectHandlerRegistry;
|
|
150
|
+
// Predefined effect handlers
|
|
151
|
+
exports.consoleHandler = {
|
|
152
|
+
effect: 'io',
|
|
153
|
+
handle: (operation) => {
|
|
154
|
+
console.log('[IO]', operation);
|
|
155
|
+
},
|
|
156
|
+
};
|
|
157
|
+
exports.mockDatabaseHandler = {
|
|
158
|
+
effect: 'database',
|
|
159
|
+
handle: (operation) => {
|
|
160
|
+
// Return mock data
|
|
161
|
+
return { ok: true, value: { id: 1, name: 'Mock User' } };
|
|
162
|
+
},
|
|
163
|
+
};
|
|
164
|
+
// Cost tracking for effectful operations
|
|
165
|
+
class EffectCostTracker {
|
|
166
|
+
constructor() {
|
|
167
|
+
this.costs = {
|
|
168
|
+
pure: 0,
|
|
169
|
+
io: 0.0001,
|
|
170
|
+
state: 0.0001,
|
|
171
|
+
async: 0.0002,
|
|
172
|
+
network: 0.001,
|
|
173
|
+
database: 0.002,
|
|
174
|
+
llm_call: 0.01,
|
|
175
|
+
human_interaction: 0.05,
|
|
176
|
+
file_system: 0.0005,
|
|
177
|
+
random: 0.0001,
|
|
178
|
+
exception: 0.0001,
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
estimateCost(effectSet) {
|
|
182
|
+
let totalCost = 0;
|
|
183
|
+
for (const effect of effectSet.effects) {
|
|
184
|
+
totalCost += this.costs[effect];
|
|
185
|
+
}
|
|
186
|
+
return totalCost;
|
|
187
|
+
}
|
|
188
|
+
setCost(effect, cost) {
|
|
189
|
+
this.costs[effect] = cost;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
exports.EffectCostTracker = EffectCostTracker;
|
|
193
|
+
// Export instances
|
|
194
|
+
exports.effectInference = new EffectInferenceEngine();
|
|
195
|
+
exports.effectHandlers = new EffectHandlerRegistry();
|
|
196
|
+
exports.effectCostTracker = new EffectCostTracker();
|
|
197
|
+
//# sourceMappingURL=effect-system.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effect-system.js","sourceRoot":"","sources":["../../src/effects/effect-system.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAgCH,0BAA0B;AAC1B,MAAa,qBAAqB;IAAlC;QACU,oBAAe,GAAG,IAAI,GAAG,EAAqB,CAAC;IAuIzD,CAAC;IArIC;;OAEG;IACH,YAAY,CAAC,IAA6B;QACxC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAElC,wCAAwC;QACxC,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;QAC1E,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACtD,MAAM,eAAe,GAAG,gBAAgB,CAAC,IAAI,CAAC,OAAmB,CAAC;YAClE,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAW,CAAC,CAAC,CAAC;YACvD,OAAO,EAAE,OAAO,EAAE,CAAC;QACrB,CAAC;QAED,2BAA2B;QAC3B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAErC,uBAAuB;QACvB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QAEjD,OAAO,EAAE,OAAO,EAAE,CAAC;IACrB,CAAC;IAEO,WAAW,CAAC,IAAiB,EAAE,OAAoB;QACzD,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,gBAAgB;gBACnB,IAAI,CAAC,qBAAqB,CAAC,IAA0B,EAAE,OAAO,CAAC,CAAC;gBAChE,MAAM;YAER,KAAK,gBAAgB;gBACnB,MAAM,KAAK,GAAG,IAA0B,CAAC;gBACzC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;gBAC5D,MAAM;YAER,KAAK,aAAa;gBAChB,MAAM,MAAM,GAAG,IAAuB,CAAC;gBACvC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;gBAC7C,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;oBACrB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;gBAC9C,CAAC;gBACD,MAAM;QACV,CAAC;IACH,CAAC;IAEO,qBAAqB,CAAC,IAAwB,EAAE,OAAoB;QAC1E,MAAM,UAAU,GAAI,IAAI,CAAC,MAAyB,CAAC,IAAI,CAAC;QAExD,4BAA4B;QAC5B,MAAM,SAAS,GAA2B;YACxC,aAAa,EAAE,IAAI;YACnB,OAAO,EAAE,SAAS;YAClB,gBAAgB,EAAE,UAAU;YAC5B,cAAc,EAAE,UAAU;YAC1B,aAAa,EAAE,QAAQ;YACvB,aAAa,EAAE,aAAa;YAC5B,QAAQ,EAAE,mBAAmB;SAC9B,CAAC;QAEF,+CAA+C;QAC/C,KAAK,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1D,IAAI,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/C,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;QAED,8CAA8C;QAC9C,IAAI,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACjE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;QAED,kDAAkD;QAClD,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC3D,IAAI,aAAa,EAAE,CAAC;YAClB,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED;;OAEG;IACH,eAAe,CACb,IAA6B,EAC7B,eAA0B;QAE1B,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;QAE1E,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,qEAAqE;YACrE,IAAI,eAAe,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBACrC,OAAO;oBACL,KAAK,EAAE,KAAK;oBACZ,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,GAAG,CACjD,CAAC,CAAC,EAAE,CAAC,sBAAsB,CAAC,EAAE,CAC/B;iBACF,CAAC;YACJ,CAAC;YACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;QACzC,CAAC;QAED,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAmB,CAAC,CAAC;QAC3E,MAAM,UAAU,GAAa,EAAE,CAAC;QAEhC,+BAA+B;QAC/B,KAAK,MAAM,MAAM,IAAI,eAAe,CAAC,OAAO,EAAE,CAAC;YAC7C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBACjC,UAAU,CAAC,IAAI,CAAC,WAAW,MAAM,yBAAyB,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC;QAED,OAAO;YACL,KAAK,EAAE,UAAU,CAAC,MAAM,KAAK,CAAC;YAC9B,UAAU;SACX,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,QAAmB,EAAE,QAAmB;QACrD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAS;YAC/B,GAAG,QAAQ,CAAC,OAAO;YACnB,GAAG,QAAQ,CAAC,OAAO;SACpB,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,SAAoB;QACzB,OAAO,SAAS,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC;YAC5B,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IACzE,CAAC;CACF;AAxID,sDAwIC;AAQD,MAAa,qBAAqB;IAAlC;QACU,aAAQ,GAAG,IAAI,GAAG,EAA8B,CAAC;IA2B3D,CAAC;IAzBC,QAAQ,CAAmB,OAAyB;QAClD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,GAAG,CAAmB,MAAS;QAC7B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAChB,EAAW,EACX,QAA8B;QAE9B,mBAAmB;QACnB,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAExC,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,EAAE,CAAC;QACpB,CAAC;gBAAS,CAAC;YACT,mBAAmB;YACnB,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;CACF;AA5BD,sDA4BC;AAED,6BAA6B;AAChB,QAAA,cAAc,GAAwB;IACjD,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,CAAC,SAAS,EAAE,EAAE;QACpB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACjC,CAAC;CACF,CAAC;AAEW,QAAA,mBAAmB,GAA8B;IAC5D,MAAM,EAAE,UAAU;IAClB,MAAM,EAAE,CAAC,SAAS,EAAE,EAAE;QACpB,mBAAmB;QACnB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC;IAC3D,CAAC;CACF,CAAC;AAEF,yCAAyC;AACzC,MAAa,iBAAiB;IAA9B;QACU,UAAK,GAA2B;YACtC,IAAI,EAAE,CAAC;YACP,EAAE,EAAE,MAAM;YACV,KAAK,EAAE,MAAM;YACb,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,IAAI;YACd,iBAAiB,EAAE,IAAI;YACvB,WAAW,EAAE,MAAM;YACnB,MAAM,EAAE,MAAM;YACd,SAAS,EAAE,MAAM;SAClB,CAAC;IAaJ,CAAC;IAXC,YAAY,CAAC,SAAoB;QAC/B,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,KAAK,MAAM,MAAM,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;YACvC,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,CAAC,MAAc,EAAE,IAAY;QAClC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IAC5B,CAAC;CACF;AA1BD,8CA0BC;AAED,mBAAmB;AACN,QAAA,eAAe,GAAG,IAAI,qBAAqB,EAAE,CAAC;AAC9C,QAAA,cAAc,GAAG,IAAI,qBAAqB,EAAE,CAAC;AAC7C,QAAA,iBAAiB,GAAG,IAAI,iBAAiB,EAAE,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TypeScript code generator
|
|
3
|
+
* Converts Agentic AST to TypeScript code
|
|
4
|
+
*/
|
|
5
|
+
import * as AST from '../types';
|
|
6
|
+
export declare class TypeScriptGenerator {
|
|
7
|
+
private sourceFileName;
|
|
8
|
+
private sourceMap;
|
|
9
|
+
private generatedLine;
|
|
10
|
+
private generatedColumn;
|
|
11
|
+
private indent;
|
|
12
|
+
constructor(sourceFileName: string);
|
|
13
|
+
generate(ast: AST.ASTNode[]): string;
|
|
14
|
+
private generateRuntimeImports;
|
|
15
|
+
private generateNode;
|
|
16
|
+
private generateFunctionDeclaration;
|
|
17
|
+
private generateTypeAnnotation;
|
|
18
|
+
private generateVariableDeclaration;
|
|
19
|
+
private generateReturnStatement;
|
|
20
|
+
private generateIfStatement;
|
|
21
|
+
private generateBlockStatement;
|
|
22
|
+
private generateBinaryExpression;
|
|
23
|
+
private generateCallExpression;
|
|
24
|
+
private generateLiteral;
|
|
25
|
+
private indentation;
|
|
26
|
+
private generateMatchExpression;
|
|
27
|
+
private generateErrorRecovery;
|
|
28
|
+
getSourceMap(): string;
|
|
29
|
+
getCodeWithInlineSourceMap(code: string): string;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=typescript-generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typescript-generator.d.ts","sourceRoot":"","sources":["../../src/generator/typescript-generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAGhC,qBAAa,mBAAmB;IAMlB,OAAO,CAAC,cAAc;IALlC,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,MAAM,CAAK;gBAEC,cAAc,EAAE,MAAM;IAM1C,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,MAAM;IAgBpC,OAAO,CAAC,sBAAsB;IAO9B,OAAO,CAAC,YAAY;IA+BpB,OAAO,CAAC,2BAA2B;IAkFnC,OAAO,CAAC,sBAAsB;IAiB9B,OAAO,CAAC,2BAA2B;IAgBnC,OAAO,CAAC,uBAAuB;IAW/B,OAAO,CAAC,mBAAmB;IAiB3B,OAAO,CAAC,sBAAsB;IAoB9B,OAAO,CAAC,wBAAwB;IAUhC,OAAO,CAAC,sBAAsB;IAO9B,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,uBAAuB;IAoE/B,OAAO,CAAC,qBAAqB;IA8B7B,YAAY,IAAI,MAAM;IAItB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAIjD"}
|
|
@@ -0,0 +1,308 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* TypeScript code generator
|
|
4
|
+
* Converts Agentic AST to TypeScript code
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.TypeScriptGenerator = void 0;
|
|
8
|
+
const source_map_1 = require("source-map");
|
|
9
|
+
class TypeScriptGenerator {
|
|
10
|
+
constructor(sourceFileName) {
|
|
11
|
+
this.sourceFileName = sourceFileName;
|
|
12
|
+
this.generatedLine = 1;
|
|
13
|
+
this.generatedColumn = 0;
|
|
14
|
+
this.indent = 0;
|
|
15
|
+
this.sourceMap = new source_map_1.SourceMapGenerator({
|
|
16
|
+
file: sourceFileName.replace('.agentic', '.ts'),
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
generate(ast) {
|
|
20
|
+
let code = '';
|
|
21
|
+
// Add runtime imports
|
|
22
|
+
code += this.generateRuntimeImports();
|
|
23
|
+
// Generate each statement
|
|
24
|
+
for (const node of ast) {
|
|
25
|
+
code += this.generateNode(node);
|
|
26
|
+
code += '\n\n';
|
|
27
|
+
this.generatedLine += 2;
|
|
28
|
+
}
|
|
29
|
+
return code;
|
|
30
|
+
}
|
|
31
|
+
generateRuntimeImports() {
|
|
32
|
+
return `// Auto-generated from ${this.sourceFileName}
|
|
33
|
+
import { AgenticRuntime, Result, Ok, Err } from './runtime';
|
|
34
|
+
|
|
35
|
+
`;
|
|
36
|
+
}
|
|
37
|
+
generateNode(node) {
|
|
38
|
+
switch (node.type) {
|
|
39
|
+
case 'FunctionDeclaration':
|
|
40
|
+
return this.generateFunctionDeclaration(node);
|
|
41
|
+
case 'VariableDeclaration':
|
|
42
|
+
return this.generateVariableDeclaration(node);
|
|
43
|
+
case 'ReturnStatement':
|
|
44
|
+
return this.generateReturnStatement(node);
|
|
45
|
+
case 'IfStatement':
|
|
46
|
+
return this.generateIfStatement(node);
|
|
47
|
+
case 'BlockStatement':
|
|
48
|
+
return this.generateBlockStatement(node);
|
|
49
|
+
case 'BinaryExpression':
|
|
50
|
+
return this.generateBinaryExpression(node);
|
|
51
|
+
case 'CallExpression':
|
|
52
|
+
return this.generateCallExpression(node);
|
|
53
|
+
case 'MatchExpression':
|
|
54
|
+
return this.generateMatchExpression(node);
|
|
55
|
+
case 'ErrorRecovery':
|
|
56
|
+
return this.generateErrorRecovery(node);
|
|
57
|
+
case 'Identifier':
|
|
58
|
+
return node.name;
|
|
59
|
+
case 'Literal':
|
|
60
|
+
return this.generateLiteral(node);
|
|
61
|
+
default:
|
|
62
|
+
// Should never reach here if all cases are handled
|
|
63
|
+
const exhaustiveCheck = node;
|
|
64
|
+
return `/* Unsupported node: ${exhaustiveCheck.type} */`;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
generateFunctionDeclaration(node) {
|
|
68
|
+
let code = '';
|
|
69
|
+
// Extract annotation metadata
|
|
70
|
+
const confidenceAnnotation = node.annotations.find(a => a.name === 'confidence');
|
|
71
|
+
const stageAnnotation = node.annotations.find(a => a.name === 'stub' || a.name === 'partial' || a.name === 'complete');
|
|
72
|
+
const needsAnnotation = node.annotations.find(a => a.name === 'needs');
|
|
73
|
+
const uncertainAnnotation = node.annotations.find(a => a.name === 'uncertain');
|
|
74
|
+
// Generate annotations as comments
|
|
75
|
+
for (const annotation of node.annotations) {
|
|
76
|
+
const argsStr = Object.keys(annotation.args).length > 0
|
|
77
|
+
? `(${JSON.stringify(annotation.args)})`
|
|
78
|
+
: '';
|
|
79
|
+
code += `// @${annotation.name}${argsStr}\n`;
|
|
80
|
+
}
|
|
81
|
+
// Function signature
|
|
82
|
+
code += `function ${node.name}(`;
|
|
83
|
+
// Parameters
|
|
84
|
+
const params = node.params.map(p => {
|
|
85
|
+
const type = p.typeAnnotation ? this.generateTypeAnnotation(p.typeAnnotation) : 'any';
|
|
86
|
+
return `${p.name}: ${type}`;
|
|
87
|
+
});
|
|
88
|
+
code += params.join(', ');
|
|
89
|
+
code += ')';
|
|
90
|
+
// Return type
|
|
91
|
+
if (node.returnType) {
|
|
92
|
+
code += `: ${this.generateTypeAnnotation(node.returnType)}`;
|
|
93
|
+
}
|
|
94
|
+
code += ' {\n';
|
|
95
|
+
this.indent++;
|
|
96
|
+
// Add runtime tracking for annotations
|
|
97
|
+
if (confidenceAnnotation && confidenceAnnotation.args.arg0 !== undefined) {
|
|
98
|
+
const confidenceLevel = confidenceAnnotation.args.arg0;
|
|
99
|
+
const reason = confidenceAnnotation.args.arg1 || confidenceAnnotation.args.reason || 'No reason provided';
|
|
100
|
+
code += `${this.indentation()}AgenticRuntime.confidence.register('${node.name}', ${confidenceLevel}, '${reason}');\n`;
|
|
101
|
+
}
|
|
102
|
+
if (stageAnnotation) {
|
|
103
|
+
code += `${this.indentation()}// Stage: ${stageAnnotation.name}\n`;
|
|
104
|
+
if (stageAnnotation.name === 'stub') {
|
|
105
|
+
code += `${this.indentation()}throw new Error('Function ${node.name} is a stub - not yet implemented');\n`;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
if (needsAnnotation) {
|
|
109
|
+
const requirements = Object.values(needsAnnotation.args);
|
|
110
|
+
code += `${this.indentation()}// Required context: ${requirements.join(', ')}\n`;
|
|
111
|
+
}
|
|
112
|
+
if (uncertainAnnotation) {
|
|
113
|
+
const areas = Object.values(uncertainAnnotation.args);
|
|
114
|
+
code += `${this.indentation()}console.warn('⚠️ Uncertain areas in ${node.name}:', ${JSON.stringify(areas)});\n`;
|
|
115
|
+
}
|
|
116
|
+
// Generate the function body (but skip if it's a stub)
|
|
117
|
+
if (!stageAnnotation || stageAnnotation.name !== 'stub') {
|
|
118
|
+
for (const stmt of node.body.body) {
|
|
119
|
+
code += this.generateNode(stmt);
|
|
120
|
+
if (stmt.type !== 'IfStatement' && stmt.type !== 'BlockStatement') {
|
|
121
|
+
if (!code.trim().endsWith(';')) {
|
|
122
|
+
code += ';';
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
code += '\n';
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
this.indent--;
|
|
129
|
+
code += this.indentation() + '}';
|
|
130
|
+
return code;
|
|
131
|
+
}
|
|
132
|
+
generateTypeAnnotation(type) {
|
|
133
|
+
if (type.kind === 'primitive' || type.kind === 'custom') {
|
|
134
|
+
return type.value;
|
|
135
|
+
}
|
|
136
|
+
if (type.kind === 'union' && Array.isArray(type.value)) {
|
|
137
|
+
return type.value.map(t => this.generateTypeAnnotation(t)).join(' | ');
|
|
138
|
+
}
|
|
139
|
+
if (type.kind === 'result' && Array.isArray(type.value)) {
|
|
140
|
+
const [okType, errType] = type.value;
|
|
141
|
+
return `Result<${this.generateTypeAnnotation(okType)}, ${this.generateTypeAnnotation(errType)}>`;
|
|
142
|
+
}
|
|
143
|
+
return 'any';
|
|
144
|
+
}
|
|
145
|
+
generateVariableDeclaration(node) {
|
|
146
|
+
const keyword = 'const'; // Default to const for safety
|
|
147
|
+
let code = `${this.indentation()}${keyword} ${node.name}`;
|
|
148
|
+
if (node.typeAnnotation) {
|
|
149
|
+
code += `: ${this.generateTypeAnnotation(node.typeAnnotation)}`;
|
|
150
|
+
}
|
|
151
|
+
if (node.initializer) {
|
|
152
|
+
code += ` = ${this.generateNode(node.initializer)}`;
|
|
153
|
+
}
|
|
154
|
+
code += ';';
|
|
155
|
+
return code;
|
|
156
|
+
}
|
|
157
|
+
generateReturnStatement(node) {
|
|
158
|
+
let code = `${this.indentation()}return`;
|
|
159
|
+
if (node.argument) {
|
|
160
|
+
code += ` ${this.generateNode(node.argument)}`;
|
|
161
|
+
}
|
|
162
|
+
code += ';';
|
|
163
|
+
return code;
|
|
164
|
+
}
|
|
165
|
+
generateIfStatement(node) {
|
|
166
|
+
let code = `${this.indentation()}if (${this.generateNode(node.condition)}) `;
|
|
167
|
+
code += this.generateBlockStatement(node.consequent);
|
|
168
|
+
if (node.alternate) {
|
|
169
|
+
code += ' else ';
|
|
170
|
+
if (node.alternate.type === 'IfStatement') {
|
|
171
|
+
code += this.generateIfStatement(node.alternate).trim();
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
code += this.generateBlockStatement(node.alternate);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
return code;
|
|
178
|
+
}
|
|
179
|
+
generateBlockStatement(node) {
|
|
180
|
+
let code = '{\n';
|
|
181
|
+
this.indent++;
|
|
182
|
+
for (const stmt of node.body) {
|
|
183
|
+
code += this.generateNode(stmt);
|
|
184
|
+
if (stmt.type !== 'IfStatement' && stmt.type !== 'BlockStatement') {
|
|
185
|
+
if (!code.trim().endsWith(';')) {
|
|
186
|
+
code += ';';
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
code += '\n';
|
|
190
|
+
}
|
|
191
|
+
this.indent--;
|
|
192
|
+
code += this.indentation() + '}';
|
|
193
|
+
return code;
|
|
194
|
+
}
|
|
195
|
+
generateBinaryExpression(node) {
|
|
196
|
+
const left = this.generateNode(node.left);
|
|
197
|
+
const right = this.generateNode(node.right);
|
|
198
|
+
// Convert Agentic operators to TypeScript
|
|
199
|
+
const operator = node.operator;
|
|
200
|
+
return `${left} ${operator} ${right}`;
|
|
201
|
+
}
|
|
202
|
+
generateCallExpression(node) {
|
|
203
|
+
const callee = this.generateNode(node.callee);
|
|
204
|
+
const args = node.arguments.map(arg => this.generateNode(arg)).join(', ');
|
|
205
|
+
return `${callee}(${args})`;
|
|
206
|
+
}
|
|
207
|
+
generateLiteral(node) {
|
|
208
|
+
if (typeof node.value === 'string') {
|
|
209
|
+
return `"${node.value}"`;
|
|
210
|
+
}
|
|
211
|
+
if (node.value === null) {
|
|
212
|
+
return 'null';
|
|
213
|
+
}
|
|
214
|
+
return String(node.value);
|
|
215
|
+
}
|
|
216
|
+
indentation() {
|
|
217
|
+
return ' '.repeat(this.indent);
|
|
218
|
+
}
|
|
219
|
+
generateMatchExpression(node) {
|
|
220
|
+
// Generate: discriminant.ok ? case1 : case2
|
|
221
|
+
// Or more sophisticated pattern matching
|
|
222
|
+
const discriminant = this.generateNode(node.discriminant);
|
|
223
|
+
let code = `(() => {\n`;
|
|
224
|
+
this.indent++;
|
|
225
|
+
code += `${this.indentation()}const __match_value = ${discriminant};\n`;
|
|
226
|
+
for (let i = 0; i < node.cases.length; i++) {
|
|
227
|
+
const matchCase = node.cases[i];
|
|
228
|
+
const isLast = i === node.cases.length - 1;
|
|
229
|
+
if (matchCase.pattern === 'Ok' || matchCase.pattern === 'Err') {
|
|
230
|
+
const condition = matchCase.pattern === 'Ok' ? '__match_value.ok' : '!__match_value.ok';
|
|
231
|
+
if (i === 0) {
|
|
232
|
+
code += `${this.indentation()}if (${condition}) {\n`;
|
|
233
|
+
}
|
|
234
|
+
else {
|
|
235
|
+
code += `${this.indentation()} else if (${condition}) {\n`;
|
|
236
|
+
}
|
|
237
|
+
this.indent++;
|
|
238
|
+
// Bind the value if there's a binding
|
|
239
|
+
if (matchCase.binding) {
|
|
240
|
+
const valueAccess = matchCase.pattern === 'Ok' ? '__match_value.value' : '__match_value.error';
|
|
241
|
+
code += `${this.indentation()}const ${matchCase.binding} = ${valueAccess};\n`;
|
|
242
|
+
}
|
|
243
|
+
// Generate the body
|
|
244
|
+
if (matchCase.body.type === 'BlockStatement') {
|
|
245
|
+
const bodyCode = this.generateBlockStatement(matchCase.body);
|
|
246
|
+
// Extract just the statements from the block
|
|
247
|
+
const bodyLines = bodyCode.split('\n').slice(1, -1);
|
|
248
|
+
code += bodyLines.join('\n') + '\n';
|
|
249
|
+
}
|
|
250
|
+
else {
|
|
251
|
+
code += `${this.indentation()}return ${this.generateNode(matchCase.body)};\n`;
|
|
252
|
+
}
|
|
253
|
+
this.indent--;
|
|
254
|
+
code += `${this.indentation()}}\n`;
|
|
255
|
+
}
|
|
256
|
+
else if (matchCase.pattern === '_') {
|
|
257
|
+
// Default case
|
|
258
|
+
code += `${this.indentation()} else {\n`;
|
|
259
|
+
this.indent++;
|
|
260
|
+
if (matchCase.body.type === 'BlockStatement') {
|
|
261
|
+
const bodyCode = this.generateBlockStatement(matchCase.body);
|
|
262
|
+
const bodyLines = bodyCode.split('\n').slice(1, -1);
|
|
263
|
+
code += bodyLines.join('\n') + '\n';
|
|
264
|
+
}
|
|
265
|
+
else {
|
|
266
|
+
code += `${this.indentation()}return ${this.generateNode(matchCase.body)};\n`;
|
|
267
|
+
}
|
|
268
|
+
this.indent--;
|
|
269
|
+
code += `${this.indentation()}}\n`;
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
this.indent--;
|
|
273
|
+
code += `${this.indentation()}})()`;
|
|
274
|
+
return code;
|
|
275
|
+
}
|
|
276
|
+
generateErrorRecovery(node) {
|
|
277
|
+
// Generate try-catch with context logging
|
|
278
|
+
let code = `(() => {\n`;
|
|
279
|
+
this.indent++;
|
|
280
|
+
code += `${this.indentation()}try {\n`;
|
|
281
|
+
this.indent++;
|
|
282
|
+
code += `${this.indentation()}// Original operation would go here\n`;
|
|
283
|
+
code += `${this.indentation()}throw new Error('Operation failed');\n`;
|
|
284
|
+
this.indent--;
|
|
285
|
+
code += `${this.indentation()}} catch (${node.binding}) {\n`;
|
|
286
|
+
this.indent++;
|
|
287
|
+
// Log context if available
|
|
288
|
+
if (Object.keys(node.contextBlock).length > 0) {
|
|
289
|
+
code += `${this.indentation()}console.error('Error context:', ${JSON.stringify(node.contextBlock, null, 2)});\n`;
|
|
290
|
+
}
|
|
291
|
+
// Generate error action
|
|
292
|
+
code += `${this.indentation()}${this.generateNode(node.errorAction)}\n`;
|
|
293
|
+
this.indent--;
|
|
294
|
+
code += `${this.indentation()}}\n`;
|
|
295
|
+
this.indent--;
|
|
296
|
+
code += `${this.indentation()}})()`;
|
|
297
|
+
return code;
|
|
298
|
+
}
|
|
299
|
+
getSourceMap() {
|
|
300
|
+
return JSON.stringify(this.sourceMap.toJSON());
|
|
301
|
+
}
|
|
302
|
+
getCodeWithInlineSourceMap(code) {
|
|
303
|
+
const map = Buffer.from(this.getSourceMap()).toString('base64');
|
|
304
|
+
return `${code}\n//# sourceMappingURL=data:application/json;base64,${map}`;
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
exports.TypeScriptGenerator = TypeScriptGenerator;
|
|
308
|
+
//# sourceMappingURL=typescript-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typescript-generator.js","sourceRoot":"","sources":["../../src/generator/typescript-generator.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agentic Language - Main Entry Point
|
|
3
|
+
* Exports all public APIs
|
|
4
|
+
*/
|
|
5
|
+
export { Lexer, TokenType, type Token } from './parser/lexer';
|
|
6
|
+
export { Parser } from './parser/parser';
|
|
7
|
+
export { TypeScriptGenerator } from './generator/typescript-generator';
|
|
8
|
+
export { EnhancedPropertyTestGenerator as PropertyTestGenerator } from './property-tests/generator-enhanced';
|
|
9
|
+
export { AgenticRuntime, Result, Ok, Err, confidence, contextValidator, healthMonitor, type HealthCheck, type HealthStatus, type ConfidenceMetadata, type ContextRequirement, } from './runtime';
|
|
10
|
+
export * from './types';
|
|
11
|
+
export declare function transpile(source: string, options?: {
|
|
12
|
+
sourceMap?: boolean;
|
|
13
|
+
propertyTests?: boolean;
|
|
14
|
+
}): Promise<{
|
|
15
|
+
code: string;
|
|
16
|
+
sourceMap?: string;
|
|
17
|
+
propertyTests?: string;
|
|
18
|
+
}>;
|
|
19
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,6BAA6B,IAAI,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC7G,OAAO,EACL,cAAc,EACd,MAAM,EACN,EAAE,EACF,GAAG,EACH,UAAU,EACV,gBAAgB,EAChB,aAAa,EACb,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,GACxB,MAAM,WAAW,CAAC;AAEnB,cAAc,SAAS,CAAC;AAOxB,wBAAsB,SAAS,CAC7B,MAAM,EAAE,MAAM,EACd,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,aAAa,CAAC,EAAE,OAAO,CAAA;CAAO,GAC7D,OAAO,CAAC;IACT,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC,CAoBD"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Agentic Language - Main Entry Point
|
|
4
|
+
* Exports all public APIs
|
|
5
|
+
*/
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
18
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
19
|
+
};
|
|
20
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
exports.healthMonitor = exports.contextValidator = exports.confidence = exports.Err = exports.Ok = exports.AgenticRuntime = exports.PropertyTestGenerator = exports.TypeScriptGenerator = exports.Parser = exports.TokenType = exports.Lexer = void 0;
|
|
22
|
+
exports.transpile = transpile;
|
|
23
|
+
var lexer_1 = require("./parser/lexer");
|
|
24
|
+
Object.defineProperty(exports, "Lexer", { enumerable: true, get: function () { return lexer_1.Lexer; } });
|
|
25
|
+
Object.defineProperty(exports, "TokenType", { enumerable: true, get: function () { return lexer_1.TokenType; } });
|
|
26
|
+
var parser_1 = require("./parser/parser");
|
|
27
|
+
Object.defineProperty(exports, "Parser", { enumerable: true, get: function () { return parser_1.Parser; } });
|
|
28
|
+
var typescript_generator_1 = require("./generator/typescript-generator");
|
|
29
|
+
Object.defineProperty(exports, "TypeScriptGenerator", { enumerable: true, get: function () { return typescript_generator_1.TypeScriptGenerator; } });
|
|
30
|
+
var generator_enhanced_1 = require("./property-tests/generator-enhanced");
|
|
31
|
+
Object.defineProperty(exports, "PropertyTestGenerator", { enumerable: true, get: function () { return generator_enhanced_1.EnhancedPropertyTestGenerator; } });
|
|
32
|
+
var runtime_1 = require("./runtime");
|
|
33
|
+
Object.defineProperty(exports, "AgenticRuntime", { enumerable: true, get: function () { return runtime_1.AgenticRuntime; } });
|
|
34
|
+
Object.defineProperty(exports, "Ok", { enumerable: true, get: function () { return runtime_1.Ok; } });
|
|
35
|
+
Object.defineProperty(exports, "Err", { enumerable: true, get: function () { return runtime_1.Err; } });
|
|
36
|
+
Object.defineProperty(exports, "confidence", { enumerable: true, get: function () { return runtime_1.confidence; } });
|
|
37
|
+
Object.defineProperty(exports, "contextValidator", { enumerable: true, get: function () { return runtime_1.contextValidator; } });
|
|
38
|
+
Object.defineProperty(exports, "healthMonitor", { enumerable: true, get: function () { return runtime_1.healthMonitor; } });
|
|
39
|
+
__exportStar(require("./types"), exports);
|
|
40
|
+
// Main transpile function
|
|
41
|
+
const parser_2 = require("./parser/parser");
|
|
42
|
+
const typescript_generator_2 = require("./generator/typescript-generator");
|
|
43
|
+
const generator_enhanced_2 = require("./property-tests/generator-enhanced");
|
|
44
|
+
async function transpile(source, options = {}) {
|
|
45
|
+
const parser = new parser_2.Parser();
|
|
46
|
+
const ast = parser.parse(source);
|
|
47
|
+
const generator = new typescript_generator_2.TypeScriptGenerator('input.agentic');
|
|
48
|
+
const code = generator.generate(ast);
|
|
49
|
+
const result = { code };
|
|
50
|
+
if (options.sourceMap) {
|
|
51
|
+
result.sourceMap = generator.getSourceMap();
|
|
52
|
+
}
|
|
53
|
+
if (options.propertyTests) {
|
|
54
|
+
const testGen = new generator_enhanced_2.EnhancedPropertyTestGenerator();
|
|
55
|
+
const tests = testGen.generate(ast);
|
|
56
|
+
result.propertyTests = tests.map((t) => t.testCode).join('\n\n');
|
|
57
|
+
}
|
|
58
|
+
return result;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;AA2BH,8BA2BC;AApDD,wCAA8D;AAArD,8FAAA,KAAK,OAAA;AAAE,kGAAA,SAAS,OAAA;AACzB,0CAAyC;AAAhC,gGAAA,MAAM,OAAA;AACf,yEAAuE;AAA9D,2HAAA,mBAAmB,OAAA;AAC5B,0EAA6G;AAApG,2HAAA,6BAA6B,OAAyB;AAC/D,qCAYmB;AAXjB,yGAAA,cAAc,OAAA;AAEd,6FAAA,EAAE,OAAA;AACF,8FAAA,GAAG,OAAA;AACH,qGAAA,UAAU,OAAA;AACV,2GAAA,gBAAgB,OAAA;AAChB,wGAAA,aAAa,OAAA;AAOf,0CAAwB;AAExB,0BAA0B;AAC1B,4CAAwD;AACxD,2EAAsF;AACtF,4EAAmG;AAE5F,KAAK,UAAU,SAAS,CAC7B,MAAc,EACd,UAA4D,EAAE;IAM9D,MAAM,MAAM,GAAG,IAAI,eAAW,EAAE,CAAC;IACjC,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAEjC,MAAM,SAAS,GAAG,IAAI,0CAAW,CAAC,eAAe,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAErC,MAAM,MAAM,GAAiE,EAAE,IAAI,EAAE,CAAC;IAEtF,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACtB,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC,YAAY,EAAE,CAAC;IAC9C,CAAC;IAED,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,IAAI,kDAAW,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACpC,MAAM,CAAC,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxE,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|