@orcalang/orca-lang 0.1.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/LICENSE +176 -0
- package/README.md +128 -0
- package/dist/auth/index.d.ts +6 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +6 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/lock.d.ts +2 -0
- package/dist/auth/lock.d.ts.map +1 -0
- package/dist/auth/lock.js +59 -0
- package/dist/auth/lock.js.map +1 -0
- package/dist/auth/providers/anthropic.d.ts +14 -0
- package/dist/auth/providers/anthropic.d.ts.map +1 -0
- package/dist/auth/providers/anthropic.js +145 -0
- package/dist/auth/providers/anthropic.js.map +1 -0
- package/dist/auth/providers/index.d.ts +3 -0
- package/dist/auth/providers/index.d.ts.map +1 -0
- package/dist/auth/providers/index.js +3 -0
- package/dist/auth/providers/index.js.map +1 -0
- package/dist/auth/providers/minimax.d.ts +6 -0
- package/dist/auth/providers/minimax.d.ts.map +1 -0
- package/dist/auth/providers/minimax.js +65 -0
- package/dist/auth/providers/minimax.js.map +1 -0
- package/dist/auth/refresh.d.ts +8 -0
- package/dist/auth/refresh.d.ts.map +1 -0
- package/dist/auth/refresh.js +104 -0
- package/dist/auth/refresh.js.map +1 -0
- package/dist/auth/store.d.ts +11 -0
- package/dist/auth/store.d.ts.map +1 -0
- package/dist/auth/store.js +63 -0
- package/dist/auth/store.js.map +1 -0
- package/dist/auth/types.d.ts +51 -0
- package/dist/auth/types.d.ts.map +1 -0
- package/dist/auth/types.js +2 -0
- package/dist/auth/types.js.map +1 -0
- package/dist/compiler/mermaid.d.ts +3 -0
- package/dist/compiler/mermaid.d.ts.map +1 -0
- package/dist/compiler/mermaid.js +86 -0
- package/dist/compiler/mermaid.js.map +1 -0
- package/dist/compiler/xstate.d.ts +15 -0
- package/dist/compiler/xstate.d.ts.map +1 -0
- package/dist/compiler/xstate.js +542 -0
- package/dist/compiler/xstate.js.map +1 -0
- package/dist/config/index.d.ts +3 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +3 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/loader.d.ts +4 -0
- package/dist/config/loader.d.ts.map +1 -0
- package/dist/config/loader.js +109 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/config/types.d.ts +13 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +8 -0
- package/dist/config/types.js.map +1 -0
- package/dist/generators/index.d.ts +5 -0
- package/dist/generators/index.d.ts.map +1 -0
- package/dist/generators/index.js +5 -0
- package/dist/generators/index.js.map +1 -0
- package/dist/generators/registry.d.ts +12 -0
- package/dist/generators/registry.d.ts.map +1 -0
- package/dist/generators/registry.js +15 -0
- package/dist/generators/registry.js.map +1 -0
- package/dist/generators/typescript.d.ts +9 -0
- package/dist/generators/typescript.d.ts.map +1 -0
- package/dist/generators/typescript.js +55 -0
- package/dist/generators/typescript.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +630 -0
- package/dist/index.js.map +1 -0
- package/dist/llm/anthropic.d.ts +14 -0
- package/dist/llm/anthropic.d.ts.map +1 -0
- package/dist/llm/anthropic.js +87 -0
- package/dist/llm/anthropic.js.map +1 -0
- package/dist/llm/grok.d.ts +13 -0
- package/dist/llm/grok.d.ts.map +1 -0
- package/dist/llm/grok.js +60 -0
- package/dist/llm/grok.js.map +1 -0
- package/dist/llm/index.d.ts +11 -0
- package/dist/llm/index.d.ts.map +1 -0
- package/dist/llm/index.js +23 -0
- package/dist/llm/index.js.map +1 -0
- package/dist/llm/ollama.d.ts +11 -0
- package/dist/llm/ollama.d.ts.map +1 -0
- package/dist/llm/ollama.js +51 -0
- package/dist/llm/ollama.js.map +1 -0
- package/dist/llm/openai.d.ts +13 -0
- package/dist/llm/openai.d.ts.map +1 -0
- package/dist/llm/openai.js +61 -0
- package/dist/llm/openai.js.map +1 -0
- package/dist/llm/provider.d.ts +32 -0
- package/dist/llm/provider.d.ts.map +1 -0
- package/dist/llm/provider.js +2 -0
- package/dist/llm/provider.js.map +1 -0
- package/dist/parser/ast-to-markdown.d.ts +3 -0
- package/dist/parser/ast-to-markdown.d.ts.map +1 -0
- package/dist/parser/ast-to-markdown.js +209 -0
- package/dist/parser/ast-to-markdown.js.map +1 -0
- package/dist/parser/ast.d.ts +183 -0
- package/dist/parser/ast.d.ts.map +1 -0
- package/dist/parser/ast.js +3 -0
- package/dist/parser/ast.js.map +1 -0
- package/dist/parser/markdown-parser.d.ts +8 -0
- package/dist/parser/markdown-parser.d.ts.map +1 -0
- package/dist/parser/markdown-parser.js +838 -0
- package/dist/parser/markdown-parser.js.map +1 -0
- package/dist/runtime/effects.d.ts +17 -0
- package/dist/runtime/effects.d.ts.map +1 -0
- package/dist/runtime/effects.js +28 -0
- package/dist/runtime/effects.js.map +1 -0
- package/dist/runtime/machine.d.ts +8 -0
- package/dist/runtime/machine.d.ts.map +1 -0
- package/dist/runtime/machine.js +158 -0
- package/dist/runtime/machine.js.map +1 -0
- package/dist/runtime/types.d.ts +37 -0
- package/dist/runtime/types.d.ts.map +1 -0
- package/dist/runtime/types.js +3 -0
- package/dist/runtime/types.js.map +1 -0
- package/dist/skills.d.ts +114 -0
- package/dist/skills.d.ts.map +1 -0
- package/dist/skills.js +1103 -0
- package/dist/skills.js.map +1 -0
- package/dist/tools.d.ts +18 -0
- package/dist/tools.d.ts.map +1 -0
- package/dist/tools.js +124 -0
- package/dist/tools.js.map +1 -0
- package/dist/verifier/completeness.d.ts +4 -0
- package/dist/verifier/completeness.d.ts.map +1 -0
- package/dist/verifier/completeness.js +82 -0
- package/dist/verifier/completeness.js.map +1 -0
- package/dist/verifier/determinism.d.ts +17 -0
- package/dist/verifier/determinism.d.ts.map +1 -0
- package/dist/verifier/determinism.js +301 -0
- package/dist/verifier/determinism.js.map +1 -0
- package/dist/verifier/properties.d.ts +6 -0
- package/dist/verifier/properties.d.ts.map +1 -0
- package/dist/verifier/properties.js +404 -0
- package/dist/verifier/properties.js.map +1 -0
- package/dist/verifier/structural.d.ts +50 -0
- package/dist/verifier/structural.d.ts.map +1 -0
- package/dist/verifier/structural.js +692 -0
- package/dist/verifier/structural.js.map +1 -0
- package/dist/verifier/types.d.ts +40 -0
- package/dist/verifier/types.d.ts.map +1 -0
- package/dist/verifier/types.js +2 -0
- package/dist/verifier/types.js.map +1 -0
- package/package.json +49 -0
- package/src/auth/index.ts +5 -0
- package/src/auth/lock.ts +71 -0
- package/src/auth/providers/anthropic.ts +192 -0
- package/src/auth/providers/index.ts +17 -0
- package/src/auth/providers/minimax.ts +100 -0
- package/src/auth/refresh.ts +138 -0
- package/src/auth/store.ts +75 -0
- package/src/auth/types.ts +62 -0
- package/src/compiler/mermaid.ts +109 -0
- package/src/compiler/xstate.ts +615 -0
- package/src/config/index.ts +2 -0
- package/src/config/loader.ts +122 -0
- package/src/config/types.ts +21 -0
- package/src/generators/index.ts +6 -0
- package/src/generators/registry.ts +27 -0
- package/src/generators/typescript.ts +67 -0
- package/src/index.ts +671 -0
- package/src/llm/anthropic.ts +102 -0
- package/src/llm/grok.ts +73 -0
- package/src/llm/index.ts +29 -0
- package/src/llm/ollama.ts +62 -0
- package/src/llm/openai.ts +74 -0
- package/src/llm/provider.ts +35 -0
- package/src/parser/ast-to-markdown.ts +220 -0
- package/src/parser/ast.ts +236 -0
- package/src/parser/markdown-parser.ts +844 -0
- package/src/runtime/effects.ts +48 -0
- package/src/runtime/machine.ts +201 -0
- package/src/runtime/types.ts +44 -0
- package/src/skills.ts +1339 -0
- package/src/tools.ts +144 -0
- package/src/verifier/completeness.ts +89 -0
- package/src/verifier/determinism.ts +328 -0
- package/src/verifier/properties.ts +507 -0
- package/src/verifier/structural.ts +803 -0
- package/src/verifier/types.ts +45 -0
|
@@ -0,0 +1,542 @@
|
|
|
1
|
+
import { assign } from 'xstate';
|
|
2
|
+
// Helper to find a state with a specific action (searches nested states)
|
|
3
|
+
function findStateByAction(machine, actionName) {
|
|
4
|
+
for (const state of machine.states) {
|
|
5
|
+
const found = findStateRecursively(state, actionName);
|
|
6
|
+
if (found)
|
|
7
|
+
return found;
|
|
8
|
+
}
|
|
9
|
+
return undefined;
|
|
10
|
+
}
|
|
11
|
+
function findStateRecursively(state, actionName) {
|
|
12
|
+
if (state.onEntry === actionName || state.onExit === actionName) {
|
|
13
|
+
return state;
|
|
14
|
+
}
|
|
15
|
+
if (state.contains) {
|
|
16
|
+
for (const child of state.contains) {
|
|
17
|
+
const found = findStateRecursively(child, actionName);
|
|
18
|
+
if (found)
|
|
19
|
+
return found;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
if (state.parallel) {
|
|
23
|
+
for (const region of state.parallel.regions) {
|
|
24
|
+
for (const child of region.states) {
|
|
25
|
+
const found = findStateRecursively(child, actionName);
|
|
26
|
+
if (found)
|
|
27
|
+
return found;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return undefined;
|
|
32
|
+
}
|
|
33
|
+
export function compileToXStateMachine(machine) {
|
|
34
|
+
const effectMeta = {
|
|
35
|
+
effectfulActions: findEffectfulActions(machine),
|
|
36
|
+
};
|
|
37
|
+
const config = {
|
|
38
|
+
id: machine.name,
|
|
39
|
+
types: {
|
|
40
|
+
context: {},
|
|
41
|
+
events: {},
|
|
42
|
+
},
|
|
43
|
+
context: buildContext(machine),
|
|
44
|
+
initial: getInitialState(machine),
|
|
45
|
+
states: buildStates(machine),
|
|
46
|
+
};
|
|
47
|
+
return { config, effectMeta };
|
|
48
|
+
}
|
|
49
|
+
function findEffectfulActions(machine) {
|
|
50
|
+
const effectful = [];
|
|
51
|
+
for (const action of machine.actions) {
|
|
52
|
+
if (action.hasEffect && action.effectType) {
|
|
53
|
+
// Find which state uses this action (search all states including nested)
|
|
54
|
+
const stateWithAction = findStateByAction(machine, action.name);
|
|
55
|
+
if (stateWithAction) {
|
|
56
|
+
effectful.push({ name: action.name, effectType: action.effectType, state: stateWithAction.name });
|
|
57
|
+
}
|
|
58
|
+
// Find transitions using this action
|
|
59
|
+
for (const t of machine.transitions) {
|
|
60
|
+
if (t.action === action.name) {
|
|
61
|
+
effectful.push({ name: action.name, effectType: action.effectType, state: t.source, transition: t.target });
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return effectful;
|
|
67
|
+
}
|
|
68
|
+
function buildContext(machine) {
|
|
69
|
+
const ctx = {};
|
|
70
|
+
for (const field of machine.context) {
|
|
71
|
+
ctx[field.name] = field.defaultValue !== undefined
|
|
72
|
+
? field.defaultValue
|
|
73
|
+
: getDefaultForType(field);
|
|
74
|
+
}
|
|
75
|
+
return ctx;
|
|
76
|
+
}
|
|
77
|
+
function buildStates(machine) {
|
|
78
|
+
const states = {};
|
|
79
|
+
for (const state of machine.states) {
|
|
80
|
+
states[state.name] = buildStateConfig(state, machine, machine.states);
|
|
81
|
+
}
|
|
82
|
+
return states;
|
|
83
|
+
}
|
|
84
|
+
function buildStateConfig(state, machine, allStates) {
|
|
85
|
+
const config = {};
|
|
86
|
+
if (state.description) {
|
|
87
|
+
config.description = state.description;
|
|
88
|
+
}
|
|
89
|
+
// Check if this is a compound state (has nested states)
|
|
90
|
+
if (state.contains && state.contains.length > 0) {
|
|
91
|
+
// Compound state with nested states
|
|
92
|
+
const initialChild = state.contains.find(s => s.isInitial) || state.contains[0];
|
|
93
|
+
config.initial = initialChild.name;
|
|
94
|
+
config.states = {};
|
|
95
|
+
// Handle transitions for compound states (BEFORE recursive calls)
|
|
96
|
+
// These transitions fire from any child state via XState event bubbling
|
|
97
|
+
const thisStateTransitions = machine.transitions.filter(t => t.source === state.name);
|
|
98
|
+
if (thisStateTransitions.length > 0) {
|
|
99
|
+
config.on = buildTransitions(thisStateTransitions, machine);
|
|
100
|
+
}
|
|
101
|
+
for (const child of state.contains) {
|
|
102
|
+
config.states[child.name] = buildStateConfig(child, machine, state.contains);
|
|
103
|
+
}
|
|
104
|
+
// Compound states don't use type: 'initial' or 'final' - they use initial + nested states
|
|
105
|
+
return config;
|
|
106
|
+
}
|
|
107
|
+
// Check if this is a parallel state (has parallel regions)
|
|
108
|
+
if (state.parallel) {
|
|
109
|
+
config.type = 'parallel';
|
|
110
|
+
config.states = {};
|
|
111
|
+
for (const region of state.parallel.regions) {
|
|
112
|
+
const regionConfig = {};
|
|
113
|
+
const initialChild = region.states.find(s => s.isInitial) || region.states[0];
|
|
114
|
+
regionConfig.initial = initialChild.name;
|
|
115
|
+
regionConfig.states = {};
|
|
116
|
+
for (const child of region.states) {
|
|
117
|
+
regionConfig.states[child.name] = buildStateConfig(child, machine, region.states);
|
|
118
|
+
}
|
|
119
|
+
config.states[region.name] = regionConfig;
|
|
120
|
+
}
|
|
121
|
+
// onDone for synchronization (all-final is the XState default)
|
|
122
|
+
if (state.onDone) {
|
|
123
|
+
config.onDone = { target: state.onDone };
|
|
124
|
+
}
|
|
125
|
+
// Parent-level transitions (event bubbling to all regions)
|
|
126
|
+
const thisStateTransitions = machine.transitions.filter(t => t.source === state.name);
|
|
127
|
+
if (thisStateTransitions.length > 0) {
|
|
128
|
+
config.on = buildTransitions(thisStateTransitions, machine);
|
|
129
|
+
}
|
|
130
|
+
return config;
|
|
131
|
+
}
|
|
132
|
+
// Leaf state configuration
|
|
133
|
+
// Note: initial state is designated by the parent's `initial` property, not by type
|
|
134
|
+
if (state.isFinal) {
|
|
135
|
+
config.type = 'final';
|
|
136
|
+
}
|
|
137
|
+
if (state.onEntry) {
|
|
138
|
+
const action = machine.actions.find(a => a.name === state.onEntry);
|
|
139
|
+
if (action?.hasEffect) {
|
|
140
|
+
// Effectful action - use invoke at state level to run the effect
|
|
141
|
+
// Don't set entry - the invoke replaces the entry action
|
|
142
|
+
config.invoke = buildEffectInvoke(state.onEntry, action, machine);
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
config.entry = state.onEntry;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
if (state.onExit) {
|
|
149
|
+
config.exit = state.onExit;
|
|
150
|
+
}
|
|
151
|
+
// Handle machine invocation
|
|
152
|
+
if (state.invoke) {
|
|
153
|
+
config.invoke = buildMachineInvoke(state.invoke);
|
|
154
|
+
}
|
|
155
|
+
// Handle transitions - only use this state's transitions
|
|
156
|
+
// (transitions on compound states fire from any child via XState's event bubbling)
|
|
157
|
+
const thisStateTransitions = machine.transitions.filter(t => t.source === state.name);
|
|
158
|
+
if (thisStateTransitions.length > 0) {
|
|
159
|
+
config.on = buildTransitions(thisStateTransitions, machine);
|
|
160
|
+
}
|
|
161
|
+
// Handle timeout
|
|
162
|
+
if (state.timeout) {
|
|
163
|
+
config.after = {
|
|
164
|
+
[state.timeout.duration]: { target: state.timeout.target },
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
return config;
|
|
168
|
+
}
|
|
169
|
+
// Get transitions from parent compound states (these fire from any child state)
|
|
170
|
+
function getParentTransitions(state, machine, allStates) {
|
|
171
|
+
if (!state.parent)
|
|
172
|
+
return [];
|
|
173
|
+
// Find parent state
|
|
174
|
+
const parent = findStateByName(allStates, state.parent);
|
|
175
|
+
if (!parent)
|
|
176
|
+
return [];
|
|
177
|
+
// Get parent's transitions
|
|
178
|
+
const parentTransitions = machine.transitions.filter(t => t.source === parent.name);
|
|
179
|
+
// Recursively get grandparent transitions
|
|
180
|
+
const grandparentTransitions = getParentTransitions(parent, machine, allStates);
|
|
181
|
+
return [...parentTransitions, ...grandparentTransitions];
|
|
182
|
+
}
|
|
183
|
+
// Find a state by name in a flat list of states (including nested and parallel regions)
|
|
184
|
+
function findStateByName(states, name) {
|
|
185
|
+
for (const state of states) {
|
|
186
|
+
if (state.name === name)
|
|
187
|
+
return state;
|
|
188
|
+
if (state.contains) {
|
|
189
|
+
const found = findStateByName(state.contains, name);
|
|
190
|
+
if (found)
|
|
191
|
+
return found;
|
|
192
|
+
}
|
|
193
|
+
if (state.parallel) {
|
|
194
|
+
for (const region of state.parallel.regions) {
|
|
195
|
+
const found = findStateByName(region.states, name);
|
|
196
|
+
if (found)
|
|
197
|
+
return found;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
return undefined;
|
|
202
|
+
}
|
|
203
|
+
function buildEffectInvoke(actionName, action, machine) {
|
|
204
|
+
// Find the state that has this action as entry or exit
|
|
205
|
+
// Search all states including nested ones
|
|
206
|
+
const stateWithAction = findStateByAction(machine, actionName);
|
|
207
|
+
const stateName = stateWithAction?.name;
|
|
208
|
+
let doneTarget;
|
|
209
|
+
// Find transitions from this state to determine the completion target.
|
|
210
|
+
// When an effect is invoked, the machine waits for the effect to complete.
|
|
211
|
+
// The completion event is derived from transitions that exit this state.
|
|
212
|
+
if (stateName) {
|
|
213
|
+
// Look for transitions that exit this state (these handle effect completion)
|
|
214
|
+
const exitTransitions = machine.transitions.filter(t => t.source === stateName);
|
|
215
|
+
if (exitTransitions.length > 0) {
|
|
216
|
+
// Use the first exit transition's target as the done target.
|
|
217
|
+
// This assumes effects have a simple completion path.
|
|
218
|
+
doneTarget = exitTransitions[0].target;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
const effectType = action.effectType || 'Effect';
|
|
222
|
+
// Build the input expression - it will be used in the fromPromise
|
|
223
|
+
const inputExpr = ({ context, event }) => ({ context, event, action: actionName });
|
|
224
|
+
// Find an error/failed state if one exists
|
|
225
|
+
const errorState = machine.states.find(s => s.name === 'error')
|
|
226
|
+
|| machine.states.find(s => s.name === 'failed');
|
|
227
|
+
const errorTarget = errorState?.name;
|
|
228
|
+
// Return the invoke config directly, not wrapped in another object.
|
|
229
|
+
const invokeConfig = {
|
|
230
|
+
src: `__effect__:${effectType}`,
|
|
231
|
+
input: inputExpr,
|
|
232
|
+
onDone: doneTarget ? {
|
|
233
|
+
target: doneTarget,
|
|
234
|
+
actions: assign({
|
|
235
|
+
_effectResult: ({ event }) => event.output,
|
|
236
|
+
}),
|
|
237
|
+
} : {
|
|
238
|
+
actions: assign({
|
|
239
|
+
_effectResult: ({ event }) => event.output,
|
|
240
|
+
}),
|
|
241
|
+
},
|
|
242
|
+
onError: {
|
|
243
|
+
actions: assign({
|
|
244
|
+
_effectError: ({ event }) => event.error?.message,
|
|
245
|
+
}),
|
|
246
|
+
},
|
|
247
|
+
};
|
|
248
|
+
if (errorTarget) {
|
|
249
|
+
invokeConfig.onError.target = errorTarget;
|
|
250
|
+
}
|
|
251
|
+
return invokeConfig;
|
|
252
|
+
}
|
|
253
|
+
function buildMachineInvoke(invokeDef) {
|
|
254
|
+
// Build input expression from input mapping
|
|
255
|
+
// input is like { id: "ctx.order_id" } -> { id: context.order_id }
|
|
256
|
+
const inputExpr = ({ context, event }) => {
|
|
257
|
+
const input = {};
|
|
258
|
+
if (invokeDef.input) {
|
|
259
|
+
for (const [key, value] of Object.entries(invokeDef.input)) {
|
|
260
|
+
// value is like "ctx.order_id" - extract the field name
|
|
261
|
+
const fieldName = value.replace(/^ctx\./, '');
|
|
262
|
+
input[key] = context[fieldName];
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
return input;
|
|
266
|
+
};
|
|
267
|
+
const invokeConfig = {
|
|
268
|
+
src: `__machine__:${invokeDef.machine}`,
|
|
269
|
+
input: inputExpr,
|
|
270
|
+
};
|
|
271
|
+
if (invokeDef.onDone) {
|
|
272
|
+
invokeConfig.onDone = { target: invokeDef.onDone };
|
|
273
|
+
}
|
|
274
|
+
if (invokeDef.onError) {
|
|
275
|
+
invokeConfig.onError = { target: invokeDef.onError };
|
|
276
|
+
}
|
|
277
|
+
return invokeConfig;
|
|
278
|
+
}
|
|
279
|
+
function buildTransitions(transitions, machine) {
|
|
280
|
+
const on = {};
|
|
281
|
+
const eventGroups = groupByEvent(transitions);
|
|
282
|
+
for (const [eventName, trans] of Object.entries(eventGroups)) {
|
|
283
|
+
if (trans.length === 1 && !trans[0].guard) {
|
|
284
|
+
// Single unguarded transition
|
|
285
|
+
const t = trans[0];
|
|
286
|
+
const action = machine.actions.find(a => a.name === t.action);
|
|
287
|
+
if (action?.hasEffect) {
|
|
288
|
+
// Effectful transition
|
|
289
|
+
on[eventName] = {
|
|
290
|
+
target: t.target,
|
|
291
|
+
actions: {
|
|
292
|
+
type: 'effectful',
|
|
293
|
+
name: t.action,
|
|
294
|
+
effectType: action.effectType,
|
|
295
|
+
},
|
|
296
|
+
};
|
|
297
|
+
}
|
|
298
|
+
else {
|
|
299
|
+
on[eventName] = {
|
|
300
|
+
target: t.target,
|
|
301
|
+
actions: t.action || undefined,
|
|
302
|
+
};
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
else {
|
|
306
|
+
// Multiple transitions or guarded - use array format
|
|
307
|
+
on[eventName] = trans.map(t => {
|
|
308
|
+
const action = machine.actions.find(a => a.name === t.action);
|
|
309
|
+
const target = t.target;
|
|
310
|
+
const transition = { target };
|
|
311
|
+
if (t.guard) {
|
|
312
|
+
const guardName = t.guard.negated ? `!${t.guard.name}` : t.guard.name;
|
|
313
|
+
transition.guard = { type: guardName };
|
|
314
|
+
}
|
|
315
|
+
if (t.action) {
|
|
316
|
+
transition.actions = t.action;
|
|
317
|
+
}
|
|
318
|
+
return transition;
|
|
319
|
+
});
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
return on;
|
|
323
|
+
}
|
|
324
|
+
export function compileToXState(machine) {
|
|
325
|
+
const lines = [];
|
|
326
|
+
lines.push(`import { createMachine, assign } from 'xstate';`);
|
|
327
|
+
lines.push(``);
|
|
328
|
+
lines.push(`export const ${machine.name}Machine = createMachine({`);
|
|
329
|
+
lines.push(` id: '${machine.name}',`);
|
|
330
|
+
lines.push(` types: {} as {`);
|
|
331
|
+
lines.push(` context: {`);
|
|
332
|
+
for (const field of machine.context) {
|
|
333
|
+
lines.push(` ${field.name}: ${typeToTs(field)},`);
|
|
334
|
+
}
|
|
335
|
+
lines.push(` },`);
|
|
336
|
+
lines.push(` events: |`);
|
|
337
|
+
for (let i = 0; i < machine.events.length; i++) {
|
|
338
|
+
const event = machine.events[i];
|
|
339
|
+
lines.push(` | { type: '${event.name}' }${i < machine.events.length - 1 ? '' : ''}`);
|
|
340
|
+
}
|
|
341
|
+
lines.push(` },`);
|
|
342
|
+
lines.push(` context: {`);
|
|
343
|
+
for (const field of machine.context) {
|
|
344
|
+
const defaultVal = field.defaultValue || getDefaultForType(field);
|
|
345
|
+
lines.push(` ${field.name}: ${defaultVal},`);
|
|
346
|
+
}
|
|
347
|
+
lines.push(` },`);
|
|
348
|
+
lines.push(` initial: '${getInitialState(machine)}',`);
|
|
349
|
+
lines.push(` states: {`);
|
|
350
|
+
for (let i = 0; i < machine.states.length; i++) {
|
|
351
|
+
const state = machine.states[i];
|
|
352
|
+
lines.push(` ${state.name}: {`);
|
|
353
|
+
if (state.description) {
|
|
354
|
+
lines.push(` description: '${escapeString(state.description)}',`);
|
|
355
|
+
}
|
|
356
|
+
// Check if this is a compound state (has nested states)
|
|
357
|
+
if (state.contains && state.contains.length > 0) {
|
|
358
|
+
// Compound state with nested states
|
|
359
|
+
const initialChild = state.contains.find(s => s.isInitial) || state.contains[0];
|
|
360
|
+
lines.push(` initial: '${initialChild.name}',`);
|
|
361
|
+
lines.push(` states: {`);
|
|
362
|
+
for (let j = 0; j < state.contains.length; j++) {
|
|
363
|
+
const child = state.contains[j];
|
|
364
|
+
lines.push(` ${child.name}: {`);
|
|
365
|
+
if (child.description) {
|
|
366
|
+
lines.push(` description: '${escapeString(child.description)}',`);
|
|
367
|
+
}
|
|
368
|
+
if (child.isFinal) {
|
|
369
|
+
lines.push(` type: 'final',`);
|
|
370
|
+
}
|
|
371
|
+
lines.push(` }${j < state.contains.length - 1 ? ',' : ''}`);
|
|
372
|
+
}
|
|
373
|
+
lines.push(` },`);
|
|
374
|
+
lines.push(` }${i < machine.states.length - 1 ? ',' : ''}`);
|
|
375
|
+
continue;
|
|
376
|
+
}
|
|
377
|
+
// Check if this is a parallel state
|
|
378
|
+
if (state.parallel) {
|
|
379
|
+
lines.push(` type: 'parallel',`);
|
|
380
|
+
lines.push(` states: {`);
|
|
381
|
+
for (let r = 0; r < state.parallel.regions.length; r++) {
|
|
382
|
+
const region = state.parallel.regions[r];
|
|
383
|
+
const initialChild = region.states.find(s => s.isInitial) || region.states[0];
|
|
384
|
+
lines.push(` ${region.name}: {`);
|
|
385
|
+
lines.push(` initial: '${initialChild.name}',`);
|
|
386
|
+
lines.push(` states: {`);
|
|
387
|
+
for (let j = 0; j < region.states.length; j++) {
|
|
388
|
+
const child = region.states[j];
|
|
389
|
+
lines.push(` ${child.name}: {`);
|
|
390
|
+
if (child.description) {
|
|
391
|
+
lines.push(` description: '${escapeString(child.description)}',`);
|
|
392
|
+
}
|
|
393
|
+
if (child.isFinal) {
|
|
394
|
+
lines.push(` type: 'final',`);
|
|
395
|
+
}
|
|
396
|
+
if (child.onEntry) {
|
|
397
|
+
lines.push(` entry: '${child.onEntry}',`);
|
|
398
|
+
}
|
|
399
|
+
if (child.onExit) {
|
|
400
|
+
lines.push(` exit: '${child.onExit}',`);
|
|
401
|
+
}
|
|
402
|
+
lines.push(` }${j < region.states.length - 1 ? ',' : ''}`);
|
|
403
|
+
}
|
|
404
|
+
lines.push(` },`);
|
|
405
|
+
lines.push(` }${r < state.parallel.regions.length - 1 ? ',' : ''}`);
|
|
406
|
+
}
|
|
407
|
+
lines.push(` },`);
|
|
408
|
+
if (state.onDone) {
|
|
409
|
+
lines.push(` onDone: { target: '${state.onDone}' },`);
|
|
410
|
+
}
|
|
411
|
+
lines.push(` }${i < machine.states.length - 1 ? ',' : ''}`);
|
|
412
|
+
continue;
|
|
413
|
+
}
|
|
414
|
+
// Leaf state configuration
|
|
415
|
+
if (state.isFinal) {
|
|
416
|
+
lines.push(` type: 'final',`);
|
|
417
|
+
}
|
|
418
|
+
if (state.onEntry) {
|
|
419
|
+
lines.push(` entry: '${state.onEntry}',`);
|
|
420
|
+
}
|
|
421
|
+
if (state.onExit) {
|
|
422
|
+
lines.push(` exit: '${state.onExit}',`);
|
|
423
|
+
}
|
|
424
|
+
// Handle machine invocation
|
|
425
|
+
if (state.invoke) {
|
|
426
|
+
lines.push(` invoke: {`);
|
|
427
|
+
lines.push(` src: '__machine__:${state.invoke.machine}',`);
|
|
428
|
+
if (state.invoke.input) {
|
|
429
|
+
// Build input mapping expression
|
|
430
|
+
const inputPairs = [];
|
|
431
|
+
for (const [key, value] of Object.entries(state.invoke.input)) {
|
|
432
|
+
const fieldName = value.replace(/^ctx\./, '');
|
|
433
|
+
inputPairs.push(`${key}: context.${fieldName}`);
|
|
434
|
+
}
|
|
435
|
+
lines.push(` input: ({ context }) => ({ ${inputPairs.join(', ')} }),`);
|
|
436
|
+
}
|
|
437
|
+
if (state.invoke.onDone) {
|
|
438
|
+
lines.push(` onDone: { target: '${state.invoke.onDone}' },`);
|
|
439
|
+
}
|
|
440
|
+
if (state.invoke.onError) {
|
|
441
|
+
lines.push(` onError: { target: '${state.invoke.onError}' },`);
|
|
442
|
+
}
|
|
443
|
+
lines.push(` },`);
|
|
444
|
+
}
|
|
445
|
+
// Collect transitions for this state
|
|
446
|
+
const stateTransitions = machine.transitions.filter(t => t.source === state.name);
|
|
447
|
+
if (stateTransitions.length > 0) {
|
|
448
|
+
lines.push(` on: {`);
|
|
449
|
+
const eventGroups = groupByEvent(stateTransitions);
|
|
450
|
+
const eventEntries = Object.entries(eventGroups);
|
|
451
|
+
for (let ei = 0; ei < eventEntries.length; ei++) {
|
|
452
|
+
const [eventName, trans] = eventEntries[ei];
|
|
453
|
+
const isArrayFormat = trans.length > 1 || trans.some(t => t.guard);
|
|
454
|
+
if (isArrayFormat) {
|
|
455
|
+
// Multiple transitions or guarded transitions - use array format
|
|
456
|
+
lines.push(` ${eventName}: [`);
|
|
457
|
+
for (const t of trans) {
|
|
458
|
+
lines.push(` {`);
|
|
459
|
+
const target = t.target;
|
|
460
|
+
lines.push(` target: '${target}',`);
|
|
461
|
+
if (t.guard) {
|
|
462
|
+
const guardName = t.guard.negated ? `!${t.guard.name}` : t.guard.name;
|
|
463
|
+
lines.push(` guard: '${guardName}',`);
|
|
464
|
+
}
|
|
465
|
+
if (t.action) {
|
|
466
|
+
lines.push(` actions: '${t.action}',`);
|
|
467
|
+
}
|
|
468
|
+
lines.push(` },`);
|
|
469
|
+
}
|
|
470
|
+
lines.push(` ],`);
|
|
471
|
+
}
|
|
472
|
+
else {
|
|
473
|
+
// Single unguarded transition - use object format
|
|
474
|
+
const t = trans[0];
|
|
475
|
+
lines.push(` ${eventName}: {`);
|
|
476
|
+
lines.push(` target: '${t.target}',`);
|
|
477
|
+
if (t.action) {
|
|
478
|
+
lines.push(` actions: '${t.action}',`);
|
|
479
|
+
}
|
|
480
|
+
lines.push(` },`);
|
|
481
|
+
}
|
|
482
|
+
}
|
|
483
|
+
lines.push(` },`);
|
|
484
|
+
}
|
|
485
|
+
lines.push(` }${i < machine.states.length - 1 ? ',' : ''}`);
|
|
486
|
+
}
|
|
487
|
+
lines.push(` },`);
|
|
488
|
+
lines.push(`});`);
|
|
489
|
+
return lines.join('\n');
|
|
490
|
+
}
|
|
491
|
+
function typeToTs(field) {
|
|
492
|
+
const t = field.type;
|
|
493
|
+
switch (t.kind) {
|
|
494
|
+
case 'string': return 'string';
|
|
495
|
+
case 'int': return 'number';
|
|
496
|
+
case 'decimal': return 'number';
|
|
497
|
+
case 'bool': return 'boolean';
|
|
498
|
+
case 'array': return `${t.elementType}[]`;
|
|
499
|
+
case 'optional': return `${t.innerType} | null`;
|
|
500
|
+
case 'map': return `Record<${t.keyType || 'string'}, ${t.valueType || 'any'}>`;
|
|
501
|
+
case 'custom': return t.name || 'any';
|
|
502
|
+
default: return 'any';
|
|
503
|
+
}
|
|
504
|
+
}
|
|
505
|
+
function getDefaultForType(field) {
|
|
506
|
+
switch (field.type.kind) {
|
|
507
|
+
case 'string': return "''";
|
|
508
|
+
case 'int':
|
|
509
|
+
case 'decimal': return '0';
|
|
510
|
+
case 'bool': return 'false';
|
|
511
|
+
case 'array': return '[]';
|
|
512
|
+
case 'map': return '{}';
|
|
513
|
+
case 'optional': return 'null';
|
|
514
|
+
default: return 'undefined';
|
|
515
|
+
}
|
|
516
|
+
}
|
|
517
|
+
function getInitialState(machine) {
|
|
518
|
+
// Find top-level initial state (not nested)
|
|
519
|
+
const initial = machine.states.find(s => s.isInitial);
|
|
520
|
+
if (initial) {
|
|
521
|
+
// If initial is compound, return its initial child
|
|
522
|
+
if (initial.contains && initial.contains.length > 0) {
|
|
523
|
+
const initialChild = initial.contains.find(s => s.isInitial) || initial.contains[0];
|
|
524
|
+
return initial.name; // XState will enter the compound state and use its initial
|
|
525
|
+
}
|
|
526
|
+
return initial.name;
|
|
527
|
+
}
|
|
528
|
+
return machine.states[0]?.name || 'unknown';
|
|
529
|
+
}
|
|
530
|
+
function groupByEvent(transitions) {
|
|
531
|
+
const groups = {};
|
|
532
|
+
for (const t of transitions) {
|
|
533
|
+
if (!groups[t.event])
|
|
534
|
+
groups[t.event] = [];
|
|
535
|
+
groups[t.event].push(t);
|
|
536
|
+
}
|
|
537
|
+
return groups;
|
|
538
|
+
}
|
|
539
|
+
function escapeString(s) {
|
|
540
|
+
return s.replace(/'/g, "\\'");
|
|
541
|
+
}
|
|
542
|
+
//# sourceMappingURL=xstate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xstate.js","sourceRoot":"","sources":["../../src/compiler/xstate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAkB,MAAM,YAAY,CAAC;AAkExD,wBAAgB,UAAU,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,UAAU,CA2B1D;AAmBD,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,GAC7B,UAAU,CAEZ"}
|