@orcalang/orca-lang 0.1.3 → 0.1.6

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/dist/skills.d.ts CHANGED
@@ -109,8 +109,46 @@ export interface RefineSkillResult {
109
109
  error?: string;
110
110
  }
111
111
  export declare function refineSkill(input: SkillInput, errors: SkillError[], configPath?: string, maxIterations?: number): Promise<RefineSkillResult>;
112
- export declare const ORCA_SYNTAX_REFERENCE = "Orca State Machine Markdown Syntax Reference (.orca.md):\n\nThe machine definition uses standard markdown: headings, tables, bullet lists, and blockquotes.\n\n# machine MachineName\n\n## context\n\n| Field | Type | Default |\n|--------|---------|---------|\n| field1 | string | |\n| field2 | int | 0 |\n| field3 | string? | |\n| field4 | bool | |\n\n## events\n\n- event1\n- event2\n- event3\n\n## state idle [initial]\n> Description of this state\n- on_entry: action_name\n- on_exit: action_name\n- timeout: 5s -> target_state\n- ignore: event1, event2\n\n## state done [final]\n> Terminal state\n\n## transitions\n\n| Source | Event | Guard | Target | Action |\n|--------|--------|--------|--------|---------|\n| idle | event1 | | active | action1 |\n| active | event2 | guard1 | done | action2 |\n| active | event2 | !guard1| idle | |\n\n## guards\n\n| Name | Expression |\n|--------|---------------------------|\n| guard1 | `ctx.field2 > 10` |\n| guard2 | `ctx.status == \"active\"` |\n\nNOTE: Guards support ONLY: comparisons (< > == != <= >=), null checks (== null, != null), boolean operators (and, or, not). NO method calls like .contains(), .includes(), etc.\n\n## actions\n\n| Name | Signature |\n|---------|--------------------------------------------|\n| action1 | `(ctx) -> Context` |\n| action2 | `(ctx, event) -> Context` |\n| action3 | `(ctx) -> Context + Effect<EffectType>` |\n\nKey syntax notes:\n- [initial] marks the initial state (exactly one required)\n- [final] marks terminal states (zero or more allowed)\n- Empty action column means \"no action\" (transition only changes state)\n- Guard column uses guard name from guards table; prefix with ! to negate\n- Guard expressions in backticks in the guards table\n- Action signatures in backticks in the actions table\n- Effect<T> in return type means the action emits an effect\n- ctx.field accesses context fields (read-only in guards)\n- timeout: 5s -> target means 5 second timeout transition\n- Action BODIES are NOT written in Orca - only signatures in the actions table\n- Transitions reference actions by name; actions are implemented separately\n- States are headings (## for top-level, ### for nested children)\n- State descriptions use blockquotes (> text)\n- File extension should be .orca.md";
112
+ export declare const ORCA_SYNTAX_REFERENCE = "Orca State Machine Markdown Syntax Reference (.orca.md):\n\nThe machine definition uses standard markdown: headings, tables, bullet lists, and blockquotes.\n\nCRITICAL SYNTAX RULES (do not deviate):\n- Initial state: MUST use [initial] in the heading: `## state stateName [initial]`\n There is NO alternative syntax. Never use \"initial: true\" or any other form.\n- Final state: MUST use [final] in the heading: `## state stateName [final]`\n There is NO alternative syntax. Never use \"final: true\" or any other form.\n- Every state referenced in transitions MUST have a `## state` heading declared.\n\n## Complete example (self-contained, valid machine):\n\n```orca.md\n# machine OrderProcessor\n\n## context\n\n| Field | Type | Default |\n|----------|---------|----------|\n| orderId | string | |\n| retries | int | 0 |\n| error | string? | |\n\n## events\n\n- submit\n- payment_ok\n- payment_failed\n- retry\n- cancel\n\n## state idle [initial]\n> Waiting for an order to be submitted\n- ignore: payment_ok, payment_failed, retry\n\n## state processing\n> Processing the payment\n- on_entry: start_payment\n- timeout: 30s -> failed\n\n## state done [final]\n> Order complete\n\n## state failed\n> Payment failed\n- ignore: submit, payment_ok\n\n## transitions\n\n| Source | Event | Guard | Target | Action |\n|------------|-----------------|----------------|------------|-----------------|\n| idle | submit | | processing | init_order |\n| idle | cancel | | idle | |\n| processing | payment_ok | | done | complete_order |\n| processing | payment_failed | can_retry | failed | record_error |\n| processing | payment_failed | !can_retry | failed | record_error |\n| processing | cancel | | idle | cancel_order |\n| failed | retry | can_retry | processing | increment_retry |\n| failed | cancel | | idle | cancel_order |\n\n## guards\n\n| Name | Expression |\n|-----------|----------------------|\n| can_retry | `ctx.retries < 3` |\n\n## actions\n\n| Name | Signature |\n|------------------|----------------------------------------------|\n| init_order | `(ctx, event) -> Context` |\n| start_payment | `(ctx) -> Context + Effect<ChargeCard>` |\n| complete_order | `(ctx, event) -> Context` |\n| record_error | `(ctx, event) -> Context` |\n| increment_retry | `(ctx) -> Context` |\n| cancel_order | `(ctx) -> Context` |\n```\n\n## Full syntax reference:\n\n# machine MachineName\n\n## context\n\n| Field | Type | Default |\n|--------|---------|---------|\n| field1 | string | |\n| field2 | int | 0 |\n| field3 | string? | |\n| field4 | bool | |\n\n## events\n\n- event1\n- event2\n- event3\n\n## state idle [initial]\n> Description of this state\n- on_entry: action_name\n- on_exit: action_name\n- timeout: 5s -> target_state\n- ignore: event1, event2\n\n## state active\n> An intermediate state (no [initial] or [final] marker)\n\n## state done [final]\n> Terminal state\n\n## transitions\n\n| Source | Event | Guard | Target | Action |\n|--------|--------|--------|--------|---------|\n| idle | event1 | | active | action1 |\n| active | event2 | guard1 | done | action2 |\n| active | event2 | !guard1| idle | |\n\n## guards\n\n| Name | Expression |\n|--------|---------------------------|\n| guard1 | `ctx.field2 > 10` |\n| guard2 | `ctx.status == \"active\"` |\n\nNOTE: Guards support ONLY: comparisons (< > == != <= >=), null checks (== null, != null), boolean operators (and, or, not). NO method calls like .contains(), .includes(), etc.\n\n## actions\n\n| Name | Signature |\n|---------|--------------------------------------------|\n| action1 | `(ctx) -> Context` |\n| action2 | `(ctx, event) -> Context` |\n| action3 | `(ctx) -> Context + Effect<EffectType>` |\n\nKey syntax notes:\n- [initial] marks the initial state \u2014 exactly one required, NO other syntax exists\n- [final] marks terminal states \u2014 zero or more allowed, NO other syntax exists\n- Every state name used in transitions MUST be declared with a ## state heading\n- Empty action column means \"no action\" (transition only changes state)\n- Guard column uses guard name from guards table; prefix with ! to negate\n- Guard expressions in backticks in the guards table\n- Action signatures in backticks in the actions table\n- Effect<T> in return type means the action emits an effect\n- ctx.field accesses context fields (read-only in guards)\n- timeout: 5s -> target means 5 second timeout transition\n- Action BODIES are NOT written in Orca - only signatures in the actions table\n- Transitions reference actions by name; actions are implemented separately\n- States are headings (## for top-level, ### for nested children)\n- State descriptions use blockquotes (> text)\n- File extension should be .orca.md";
113
113
  export declare function generateOrcaSkill(naturalLanguageSpec: string, configPath?: string, maxIterations?: number): Promise<GenerateOrcaResult>;
114
114
  export declare const MULTI_MACHINE_SYNTAX_ADDENDUM = "\nMulti-machine files\n-------------------\nSeparate machines with a line containing only three dashes (---).\n\nA state can invoke another machine in the same file:\n\n ## state coordinatingState [initial]\n - invoke: ChildMachineName\n - on_done: nextState\n - on_error: errorState\n\nRules:\n- invoke: must name a machine defined in the same file\n- on_done: fires when the invoked machine reaches a [final] state\n- on_error: fires if the invoked machine cannot proceed\n- Each state may invoke at most one child machine\n- Circular invocations are not allowed (A invokes B invokes A)\n- The coordinator machine should have a clear entry point and delegate work to child machines\n- Child machines should have at least one [final] state so the coordinator's on_done can fire\n";
115
115
  export declare function generateOrcaMultiSkill(naturalLanguageSpec: string, configPath?: string, maxIterations?: number): Promise<GenerateMultiResult>;
116
+ export interface GenerateOrcaDraftResult {
117
+ status: 'success' | 'error';
118
+ machine?: string;
119
+ orca?: string;
120
+ error?: string;
121
+ }
122
+ export declare function generateOrcaDraftSkill(naturalLanguageSpec: string, configPath?: string): Promise<GenerateOrcaDraftResult>;
123
+ export interface GenerateOrcaMultiDraftResult {
124
+ status: 'success' | 'error';
125
+ machines?: string[];
126
+ orca?: string;
127
+ error?: string;
128
+ }
129
+ export declare function generateOrcaMultiDraftSkill(naturalLanguageSpec: string, configPath?: string): Promise<GenerateOrcaMultiDraftResult>;
130
+ /**
131
+ * Returns true when the spec clearly describes coordination between multiple
132
+ * independent sub-machines rather than a single workflow with many states.
133
+ *
134
+ * Conservative by design — single-machine handles most workflows well.
135
+ * Only routes to multi when the spec explicitly uses coordination vocabulary
136
+ * or describes a named coordinator managing distinct child processes.
137
+ */
138
+ export declare function detectMultiMachine(spec: string): boolean;
139
+ export interface GenerateAutoResult {
140
+ status: 'success' | 'error';
141
+ is_multi: boolean;
142
+ machine?: string;
143
+ machines?: string[];
144
+ orca?: string;
145
+ error?: string;
146
+ }
147
+ /**
148
+ * Auto-routing entry point for generate_machine.
149
+ * Inspects the spec and delegates to the single- or multi-machine draft
150
+ * generator. Always returns a draft — caller should follow up with
151
+ * verify_machine → refine_machine (if errors) → verify_machine.
152
+ */
153
+ export declare function generateAutoSkill(naturalLanguageSpec: string, configPath?: string): Promise<GenerateAutoResult>;
116
154
  //# sourceMappingURL=skills.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../src/skills.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../src/skills.ts"],"names":[],"mappings":"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"}
package/dist/skills.js CHANGED
@@ -773,6 +773,83 @@ export const ORCA_SYNTAX_REFERENCE = `Orca State Machine Markdown Syntax Referen
773
773
 
774
774
  The machine definition uses standard markdown: headings, tables, bullet lists, and blockquotes.
775
775
 
776
+ CRITICAL SYNTAX RULES (do not deviate):
777
+ - Initial state: MUST use [initial] in the heading: \`## state stateName [initial]\`
778
+ There is NO alternative syntax. Never use "initial: true" or any other form.
779
+ - Final state: MUST use [final] in the heading: \`## state stateName [final]\`
780
+ There is NO alternative syntax. Never use "final: true" or any other form.
781
+ - Every state referenced in transitions MUST have a \`## state\` heading declared.
782
+
783
+ ## Complete example (self-contained, valid machine):
784
+
785
+ \`\`\`orca.md
786
+ # machine OrderProcessor
787
+
788
+ ## context
789
+
790
+ | Field | Type | Default |
791
+ |----------|---------|----------|
792
+ | orderId | string | |
793
+ | retries | int | 0 |
794
+ | error | string? | |
795
+
796
+ ## events
797
+
798
+ - submit
799
+ - payment_ok
800
+ - payment_failed
801
+ - retry
802
+ - cancel
803
+
804
+ ## state idle [initial]
805
+ > Waiting for an order to be submitted
806
+ - ignore: payment_ok, payment_failed, retry
807
+
808
+ ## state processing
809
+ > Processing the payment
810
+ - on_entry: start_payment
811
+ - timeout: 30s -> failed
812
+
813
+ ## state done [final]
814
+ > Order complete
815
+
816
+ ## state failed
817
+ > Payment failed
818
+ - ignore: submit, payment_ok
819
+
820
+ ## transitions
821
+
822
+ | Source | Event | Guard | Target | Action |
823
+ |------------|-----------------|----------------|------------|-----------------|
824
+ | idle | submit | | processing | init_order |
825
+ | idle | cancel | | idle | |
826
+ | processing | payment_ok | | done | complete_order |
827
+ | processing | payment_failed | can_retry | failed | record_error |
828
+ | processing | payment_failed | !can_retry | failed | record_error |
829
+ | processing | cancel | | idle | cancel_order |
830
+ | failed | retry | can_retry | processing | increment_retry |
831
+ | failed | cancel | | idle | cancel_order |
832
+
833
+ ## guards
834
+
835
+ | Name | Expression |
836
+ |-----------|----------------------|
837
+ | can_retry | \`ctx.retries < 3\` |
838
+
839
+ ## actions
840
+
841
+ | Name | Signature |
842
+ |------------------|----------------------------------------------|
843
+ | init_order | \`(ctx, event) -> Context\` |
844
+ | start_payment | \`(ctx) -> Context + Effect<ChargeCard>\` |
845
+ | complete_order | \`(ctx, event) -> Context\` |
846
+ | record_error | \`(ctx, event) -> Context\` |
847
+ | increment_retry | \`(ctx) -> Context\` |
848
+ | cancel_order | \`(ctx) -> Context\` |
849
+ \`\`\`
850
+
851
+ ## Full syntax reference:
852
+
776
853
  # machine MachineName
777
854
 
778
855
  ## context
@@ -797,6 +874,9 @@ The machine definition uses standard markdown: headings, tables, bullet lists, a
797
874
  - timeout: 5s -> target_state
798
875
  - ignore: event1, event2
799
876
 
877
+ ## state active
878
+ > An intermediate state (no [initial] or [final] marker)
879
+
800
880
  ## state done [final]
801
881
  > Terminal state
802
882
 
@@ -826,8 +906,9 @@ NOTE: Guards support ONLY: comparisons (< > == != <= >=), null checks (== null,
826
906
  | action3 | \`(ctx) -> Context + Effect<EffectType>\` |
827
907
 
828
908
  Key syntax notes:
829
- - [initial] marks the initial state (exactly one required)
830
- - [final] marks terminal states (zero or more allowed)
909
+ - [initial] marks the initial state exactly one required, NO other syntax exists
910
+ - [final] marks terminal states zero or more allowed, NO other syntax exists
911
+ - Every state name used in transitions MUST be declared with a ## state heading
831
912
  - Empty action column means "no action" (transition only changes state)
832
913
  - Guard column uses guard name from guards table; prefix with ! to negate
833
914
  - Guard expressions in backticks in the guards table
@@ -1111,8 +1192,190 @@ Output ONLY the complete multi-machine Orca definition in .orca.md markdown form
1111
1192
  errors: lastErrors,
1112
1193
  };
1113
1194
  }
1195
+ // ── Shared provider resolution ────────────────────────────────────────────────
1196
+ function tryCreateProvider(configPath) {
1197
+ const config = loadConfig(configPath);
1198
+ const isMiniMax = config.base_url?.includes('minimaxi.chat') || config.base_url?.includes('minimax.io');
1199
+ const anthropicKey = isMiniMax
1200
+ ? (config.api_key || process.env.MINIMAX_API_KEY || process.env.ANTHROPIC_API_KEY)
1201
+ : (config.api_key || process.env.ANTHROPIC_API_KEY);
1202
+ const openaiKey = config.api_key || process.env.OPENAI_API_KEY;
1203
+ const hasKey = config.provider === 'openai' ? openaiKey :
1204
+ config.provider === 'ollama' ? true :
1205
+ anthropicKey;
1206
+ if (!hasKey) {
1207
+ const keyName = config.provider === 'openai' ? 'OPENAI_API_KEY'
1208
+ : isMiniMax ? 'MINIMAX_API_KEY (or ANTHROPIC_API_KEY)'
1209
+ : 'ANTHROPIC_API_KEY';
1210
+ return { error: `No API key available. Set ${keyName} in your environment or .env` };
1211
+ }
1212
+ return {
1213
+ config,
1214
+ provider: createProvider(config.provider, {
1215
+ api_key: config.api_key,
1216
+ base_url: config.base_url,
1217
+ model: config.model,
1218
+ max_tokens: config.max_tokens,
1219
+ temperature: config.temperature,
1220
+ }),
1221
+ };
1222
+ }
1223
+ export async function generateOrcaDraftSkill(naturalLanguageSpec, configPath) {
1224
+ const providerResult = tryCreateProvider(configPath);
1225
+ if ('error' in providerResult) {
1226
+ return { status: 'error', error: providerResult.error };
1227
+ }
1228
+ const { provider } = providerResult;
1229
+ const systemPrompt = `You are an expert in Orca state machine design. Generate Orca machine definitions in markdown (.orca.md) format from natural language descriptions.
1230
+
1231
+ ${ORCA_SYNTAX_REFERENCE}
1232
+
1233
+ IMPORTANT - Guard Restrictions:
1234
+ - Guards support ONLY: comparisons (< > == != <= >=), null checks, boolean operators
1235
+ - NO method calls: do NOT use .contains(), .includes(), .length(), etc.
1236
+ - For arrays, check .length > 0 or compare to null
1237
+ - If you need complex logic, compute it in an action and store a boolean flag in context
1238
+
1239
+ IMPORTANT - Action Syntax:
1240
+ - The actions table declares ONLY SIGNATURES (names and types), not implementations
1241
+ - Write signatures in backticks: \`(ctx) -> Context\`
1242
+ - NEVER write action bodies
1243
+ - Transitions reference actions by name only
1244
+
1245
+ Important rules:
1246
+ - Always include exactly ONE initial state marked with [initial]
1247
+ - Final states should be marked with [final]
1248
+ - Every (state, event) pair must have a transition OR the event must be ignored
1249
+ - Use guards for conditional transitions
1250
+ - Context should contain all data needed for guards and actions
1251
+ - For effects (API calls, I/O), use Effect<T> return type in the signature
1252
+
1253
+ Output ONLY the Orca machine definition in .orca.md markdown format, wrapped in a code fence, with no additional text.`;
1254
+ try {
1255
+ const response = await provider.complete({
1256
+ messages: [
1257
+ { role: 'system', content: systemPrompt },
1258
+ { role: 'user', content: `Generate an Orca state machine for:\n${naturalLanguageSpec}` },
1259
+ ],
1260
+ model: '',
1261
+ max_tokens: 4096,
1262
+ temperature: 0.5,
1263
+ });
1264
+ const orca = stripCodeFence(response.content);
1265
+ const machine = extractMachineNameFromSource(orca);
1266
+ return { status: 'success', machine, orca };
1267
+ }
1268
+ catch (err) {
1269
+ return { status: 'error', error: err instanceof Error ? err.message : String(err) };
1270
+ }
1271
+ }
1272
+ export async function generateOrcaMultiDraftSkill(naturalLanguageSpec, configPath) {
1273
+ const providerResult = tryCreateProvider(configPath);
1274
+ if ('error' in providerResult) {
1275
+ return { status: 'error', error: providerResult.error };
1276
+ }
1277
+ const { provider } = providerResult;
1278
+ const systemPrompt = `You are an expert in Orca state machine design. Generate coordinated multi-machine Orca definitions in markdown (.orca.md) format from natural language descriptions.
1279
+
1280
+ ${ORCA_SYNTAX_REFERENCE}
1281
+ ${MULTI_MACHINE_SYNTAX_ADDENDUM}
1282
+
1283
+ IMPORTANT - Guard Restrictions:
1284
+ - Guards support ONLY: comparisons (< > == != <= >=), null checks, boolean operators
1285
+ - NO method calls: do NOT use .contains(), .includes(), .length(), etc.
1286
+ - If you need complex logic, compute it in an action and store a boolean flag in context
1287
+
1288
+ IMPORTANT - Action Syntax:
1289
+ - The actions table declares ONLY SIGNATURES (names and types), not implementations
1290
+ - Write signatures in backticks: \`(ctx) -> Context\`
1291
+ - NEVER write action bodies
1292
+
1293
+ Multi-machine design principles:
1294
+ - Design a clear coordinator machine that delegates to focused child machines
1295
+ - Each child machine should have a single responsibility and at least one [final] state
1296
+ - Use invoke: in coordinator states to call child machines
1297
+ - Separate machines with --- on its own line
1298
+ - Name machines clearly (e.g. OrderCoordinator, PaymentProcessor, NotificationSender)
1299
+
1300
+ Output ONLY the complete multi-machine Orca definition in .orca.md markdown format, wrapped in a code fence, with no additional text.`;
1301
+ try {
1302
+ const response = await provider.complete({
1303
+ messages: [
1304
+ { role: 'system', content: systemPrompt },
1305
+ { role: 'user', content: `Generate a multi-machine Orca state machine system for:\n${naturalLanguageSpec}\n\nDesign at least 2 coordinated machines separated by ---` },
1306
+ ],
1307
+ model: '',
1308
+ max_tokens: 8192,
1309
+ temperature: 0.5,
1310
+ });
1311
+ const orca = stripCodeFence(response.content);
1312
+ let machines = [];
1313
+ try {
1314
+ const { file } = parseMarkdown(orca);
1315
+ machines = file.machines.map(m => m.name);
1316
+ }
1317
+ catch { /* ignore parse errors — caller will see them via verify_machine */ }
1318
+ return { status: 'success', machines, orca };
1319
+ }
1320
+ catch (err) {
1321
+ return { status: 'error', error: err instanceof Error ? err.message : String(err) };
1322
+ }
1323
+ }
1324
+ // ── Auto-routing: single vs multi-machine heuristic ──────────────────────────
1325
+ /**
1326
+ * Returns true when the spec clearly describes coordination between multiple
1327
+ * independent sub-machines rather than a single workflow with many states.
1328
+ *
1329
+ * Conservative by design — single-machine handles most workflows well.
1330
+ * Only routes to multi when the spec explicitly uses coordination vocabulary
1331
+ * or describes a named coordinator managing distinct child processes.
1332
+ */
1333
+ export function detectMultiMachine(spec) {
1334
+ const lower = spec.toLowerCase();
1335
+ // 1. Explicit coordinator / orchestrator vocabulary
1336
+ if (/\b(coordinator|orchestrator|orchestrate)\b/.test(lower))
1337
+ return true;
1338
+ // 2. Explicit multi-machine phrasing
1339
+ if (/multi.?machine|multiple machines|child machine|sub.?machine/.test(lower))
1340
+ return true;
1341
+ // 3. Coordination pattern: "X coordinates/manages/oversees Y and Z"
1342
+ // where the sub-things sound like independent workflows
1343
+ if (/\b(coordinate[sd]?|orchestrate[sd]?|manages?|oversees?)\b.{0,120}\band\b.{0,80}\b(machine|workflow|pipeline|process|worker|agent)\b/i.test(spec))
1344
+ return true;
1345
+ return false;
1346
+ }
1347
+ /**
1348
+ * Auto-routing entry point for generate_machine.
1349
+ * Inspects the spec and delegates to the single- or multi-machine draft
1350
+ * generator. Always returns a draft — caller should follow up with
1351
+ * verify_machine → refine_machine (if errors) → verify_machine.
1352
+ */
1353
+ export async function generateAutoSkill(naturalLanguageSpec, configPath) {
1354
+ const isMulti = detectMultiMachine(naturalLanguageSpec);
1355
+ if (isMulti) {
1356
+ const result = await generateOrcaMultiDraftSkill(naturalLanguageSpec, configPath);
1357
+ return {
1358
+ status: result.status,
1359
+ is_multi: true,
1360
+ machines: result.machines,
1361
+ orca: result.orca,
1362
+ error: result.error,
1363
+ };
1364
+ }
1365
+ else {
1366
+ const result = await generateOrcaDraftSkill(naturalLanguageSpec, configPath);
1367
+ return {
1368
+ status: result.status,
1369
+ is_multi: false,
1370
+ machine: result.machine,
1371
+ orca: result.orca,
1372
+ error: result.error,
1373
+ };
1374
+ }
1375
+ }
1114
1376
  function stripCodeFence(code) {
1115
1377
  return code
1378
+ .replace(/<think>[\s\S]*?<\/think>/gi, '')
1116
1379
  .replace(/^```(?:orca|markdown|md|orca\.md)?\n/, '')
1117
1380
  .replace(/^```\n/, '')
1118
1381
  .replace(/\n```$/, '')
@@ -1 +1 @@
1
- {"version":3,"file":"skills.js","sourceRoot":"","sources":["../src/skills.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skills.js","sourceRoot":"","sources":["../src/skills.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA,0FAA0F;AAE1F,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,CAAC;IACrH,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,eAAe,CAAC;CAC9B;AAED,eAAO,MAAM,UAAU,EAAE,OAAO,EAiI/B,CAAC"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA,0FAA0F;AAE1F,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,CAAC;IACrH,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,eAAe,CAAC;CAC9B;AAED,eAAO,MAAM,UAAU,EAAE,OAAO,EAmI/B,CAAC"}
package/dist/tools.js CHANGED
@@ -40,7 +40,7 @@ export const ORCA_TOOLS = [
40
40
  },
41
41
  {
42
42
  name: 'generate_machine',
43
- description: 'Generate an Orca machine definition from a natural language specification. Requires LLM configuration via environment variables (ANTHROPIC_API_KEY, etc.). Loops up to max_iterations to produce a valid machine.',
43
+ description: 'Generate a draft Orca machine definition from a natural language specification. Automatically chooses between a single-machine or multi-machine design based on the spec: specs that mention a coordinator, orchestrator, or multiple independently-lifecycled sub-processes route to multi-machine; everything else produces a single machine. Returns raw .orca.md source and an is_multi flag. Always call verify_machine on the result next — then refine_machine if there are errors. Requires LLM configuration via environment variables (ANTHROPIC_API_KEY, etc.).',
44
44
  inputSchema: {
45
45
  type: 'object',
46
46
  properties: {
@@ -48,10 +48,6 @@ export const ORCA_TOOLS = [
48
48
  type: 'string',
49
49
  description: 'Natural language description of the desired state machine',
50
50
  },
51
- max_iterations: {
52
- type: 'number',
53
- description: 'Maximum refinement iterations (default: 3)',
54
- },
55
51
  },
56
52
  required: ['spec'],
57
53
  },
@@ -82,7 +78,7 @@ export const ORCA_TOOLS = [
82
78
  },
83
79
  {
84
80
  name: 'generate_multi_machine',
85
- description: 'Generate a coordinated set of Orca machines from a natural language specification. Returns multiple machine definitions in one .orca.md file (separated by ---) that pass the cross-machine verifier. Requires LLM configuration via environment variables.',
81
+ description: 'Generate a draft set of coordinated Orca machines from a natural language specification. Returns multiple machine definitions in one .orca.md file (separated by ---). Always call verify_machine on the result next — then refine_machine if there are errors. Requires LLM configuration via environment variables.',
86
82
  inputSchema: {
87
83
  type: 'object',
88
84
  properties: {
@@ -90,10 +86,6 @@ export const ORCA_TOOLS = [
90
86
  type: 'string',
91
87
  description: 'Natural language description of the desired multi-machine system',
92
88
  },
93
- max_iterations: {
94
- type: 'number',
95
- description: 'Maximum refinement iterations (default: 3)',
96
- },
97
89
  },
98
90
  required: ['spec'],
99
91
  },
@@ -120,5 +112,14 @@ export const ORCA_TOOLS = [
120
112
  required: ['source'],
121
113
  },
122
114
  },
115
+ {
116
+ name: 'server_status',
117
+ description: 'Return the MCP server version and active configuration. API keys are never included in the response — only whether a key is configured. Use this to confirm the server is running and check which LLM provider and model are active.',
118
+ inputSchema: {
119
+ type: 'object',
120
+ properties: {},
121
+ required: [],
122
+ },
123
+ },
123
124
  ];
124
125
  //# sourceMappingURL=tools.js.map
package/dist/tools.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA,0FAA0F;AAc1F,MAAM,CAAC,MAAM,UAAU,GAAc;IACnC;QACE,IAAI,EAAE,eAAe;QACrB,WAAW,EACT,+UAA+U;QACjV,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,0LAA0L,EAAE;aACpO;YACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;KACF;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,WAAW,EACT,2VAA2V;QAC7V,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,0LAA0L,EAAE;aACpO;YACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;KACF;IACD;QACE,IAAI,EAAE,iBAAiB;QACvB,WAAW,EACT,yJAAyJ;QAC3J,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,0LAA0L,EAAE;gBACnO,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;oBAC3B,WAAW,EAAE,sCAAsC;iBACpD;aACF;YACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;KACF;IACD;QACE,IAAI,EAAE,kBAAkB;QACxB,WAAW,EACT,mNAAmN;QACrN,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,2DAA2D;iBACzE;gBACD,cAAc,EAAE;oBACd,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,4CAA4C;iBAC1D;aACF;YACD,QAAQ,EAAE,CAAC,MAAM,CAAC;SACnB;KACF;IACD;QACE,IAAI,EAAE,kBAAkB;QACxB,WAAW,EACT,qNAAqN;QACvN,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,8HAA8H,EAAE;gBACvK,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,IAAI,CAAC;oBACpC,WAAW,EAAE,uCAAuC;iBACrD;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,2EAA2E;iBACzF;gBACD,cAAc,EAAE;oBACd,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,uDAAuD;iBACrE;aACF;YACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;KACF;IACD;QACE,IAAI,EAAE,wBAAwB;QAC9B,WAAW,EACT,6PAA6P;QAC/P,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,kEAAkE;iBAChF;gBACD,cAAc,EAAE;oBACd,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,4CAA4C;iBAC1D;aACF;YACD,QAAQ,EAAE,CAAC,MAAM,CAAC;SACnB;KACF;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,WAAW,EACT,0OAA0O;QAC5O,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sGAAsG,EAAE;gBAC/I,MAAM,EAAE;oBACN,IAAI,EAAE,OAAO;oBACb,WAAW,EACT,uFAAuF;oBACzF,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;qBACf;iBACF;gBACD,cAAc,EAAE;oBACd,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,4CAA4C;iBAC1D;aACF;YACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;KACF;CACF,CAAC"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@orcalang/orca-lang",
3
- "version": "0.1.3",
3
+ "version": "0.1.6",
4
4
  "description": "Orca (Orchestrated State Machine Language) - an LLM-native code generation target",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
package/src/skills.ts CHANGED
@@ -974,6 +974,83 @@ export const ORCA_SYNTAX_REFERENCE = `Orca State Machine Markdown Syntax Referen
974
974
 
975
975
  The machine definition uses standard markdown: headings, tables, bullet lists, and blockquotes.
976
976
 
977
+ CRITICAL SYNTAX RULES (do not deviate):
978
+ - Initial state: MUST use [initial] in the heading: \`## state stateName [initial]\`
979
+ There is NO alternative syntax. Never use "initial: true" or any other form.
980
+ - Final state: MUST use [final] in the heading: \`## state stateName [final]\`
981
+ There is NO alternative syntax. Never use "final: true" or any other form.
982
+ - Every state referenced in transitions MUST have a \`## state\` heading declared.
983
+
984
+ ## Complete example (self-contained, valid machine):
985
+
986
+ \`\`\`orca.md
987
+ # machine OrderProcessor
988
+
989
+ ## context
990
+
991
+ | Field | Type | Default |
992
+ |----------|---------|----------|
993
+ | orderId | string | |
994
+ | retries | int | 0 |
995
+ | error | string? | |
996
+
997
+ ## events
998
+
999
+ - submit
1000
+ - payment_ok
1001
+ - payment_failed
1002
+ - retry
1003
+ - cancel
1004
+
1005
+ ## state idle [initial]
1006
+ > Waiting for an order to be submitted
1007
+ - ignore: payment_ok, payment_failed, retry
1008
+
1009
+ ## state processing
1010
+ > Processing the payment
1011
+ - on_entry: start_payment
1012
+ - timeout: 30s -> failed
1013
+
1014
+ ## state done [final]
1015
+ > Order complete
1016
+
1017
+ ## state failed
1018
+ > Payment failed
1019
+ - ignore: submit, payment_ok
1020
+
1021
+ ## transitions
1022
+
1023
+ | Source | Event | Guard | Target | Action |
1024
+ |------------|-----------------|----------------|------------|-----------------|
1025
+ | idle | submit | | processing | init_order |
1026
+ | idle | cancel | | idle | |
1027
+ | processing | payment_ok | | done | complete_order |
1028
+ | processing | payment_failed | can_retry | failed | record_error |
1029
+ | processing | payment_failed | !can_retry | failed | record_error |
1030
+ | processing | cancel | | idle | cancel_order |
1031
+ | failed | retry | can_retry | processing | increment_retry |
1032
+ | failed | cancel | | idle | cancel_order |
1033
+
1034
+ ## guards
1035
+
1036
+ | Name | Expression |
1037
+ |-----------|----------------------|
1038
+ | can_retry | \`ctx.retries < 3\` |
1039
+
1040
+ ## actions
1041
+
1042
+ | Name | Signature |
1043
+ |------------------|----------------------------------------------|
1044
+ | init_order | \`(ctx, event) -> Context\` |
1045
+ | start_payment | \`(ctx) -> Context + Effect<ChargeCard>\` |
1046
+ | complete_order | \`(ctx, event) -> Context\` |
1047
+ | record_error | \`(ctx, event) -> Context\` |
1048
+ | increment_retry | \`(ctx) -> Context\` |
1049
+ | cancel_order | \`(ctx) -> Context\` |
1050
+ \`\`\`
1051
+
1052
+ ## Full syntax reference:
1053
+
977
1054
  # machine MachineName
978
1055
 
979
1056
  ## context
@@ -998,6 +1075,9 @@ The machine definition uses standard markdown: headings, tables, bullet lists, a
998
1075
  - timeout: 5s -> target_state
999
1076
  - ignore: event1, event2
1000
1077
 
1078
+ ## state active
1079
+ > An intermediate state (no [initial] or [final] marker)
1080
+
1001
1081
  ## state done [final]
1002
1082
  > Terminal state
1003
1083
 
@@ -1027,8 +1107,9 @@ NOTE: Guards support ONLY: comparisons (< > == != <= >=), null checks (== null,
1027
1107
  | action3 | \`(ctx) -> Context + Effect<EffectType>\` |
1028
1108
 
1029
1109
  Key syntax notes:
1030
- - [initial] marks the initial state (exactly one required)
1031
- - [final] marks terminal states (zero or more allowed)
1110
+ - [initial] marks the initial state exactly one required, NO other syntax exists
1111
+ - [final] marks terminal states zero or more allowed, NO other syntax exists
1112
+ - Every state name used in transitions MUST be declared with a ## state heading
1032
1113
  - Empty action column means "no action" (transition only changes state)
1033
1114
  - Guard column uses guard name from guards table; prefix with ! to negate
1034
1115
  - Guard expressions in backticks in the guards table
@@ -1351,8 +1432,240 @@ Output ONLY the complete multi-machine Orca definition in .orca.md markdown form
1351
1432
  };
1352
1433
  }
1353
1434
 
1435
+ // ── Shared provider resolution ────────────────────────────────────────────────
1436
+
1437
+ function tryCreateProvider(configPath?: string): { provider: LLMProvider; config: ReturnType<typeof loadConfig> } | { error: string } {
1438
+ const config = loadConfig(configPath);
1439
+ const isMiniMax = config.base_url?.includes('minimaxi.chat') || config.base_url?.includes('minimax.io');
1440
+ const anthropicKey = isMiniMax
1441
+ ? (config.api_key || process.env.MINIMAX_API_KEY || process.env.ANTHROPIC_API_KEY)
1442
+ : (config.api_key || process.env.ANTHROPIC_API_KEY);
1443
+ const openaiKey = config.api_key || process.env.OPENAI_API_KEY;
1444
+ const hasKey =
1445
+ config.provider === 'openai' ? openaiKey :
1446
+ config.provider === 'ollama' ? true :
1447
+ anthropicKey;
1448
+
1449
+ if (!hasKey) {
1450
+ const keyName = config.provider === 'openai' ? 'OPENAI_API_KEY'
1451
+ : isMiniMax ? 'MINIMAX_API_KEY (or ANTHROPIC_API_KEY)'
1452
+ : 'ANTHROPIC_API_KEY';
1453
+ return { error: `No API key available. Set ${keyName} in your environment or .env` };
1454
+ }
1455
+
1456
+ return {
1457
+ config,
1458
+ provider: createProvider(config.provider, {
1459
+ api_key: config.api_key,
1460
+ base_url: config.base_url,
1461
+ model: config.model,
1462
+ max_tokens: config.max_tokens,
1463
+ temperature: config.temperature,
1464
+ }),
1465
+ };
1466
+ }
1467
+
1468
+ // ── /generate-machine (single draft step, no verify loop) ────────────────────
1469
+
1470
+ export interface GenerateOrcaDraftResult {
1471
+ status: 'success' | 'error';
1472
+ machine?: string; // parsed from draft for caller convenience
1473
+ orca?: string;
1474
+ error?: string;
1475
+ }
1476
+
1477
+ export async function generateOrcaDraftSkill(
1478
+ naturalLanguageSpec: string,
1479
+ configPath?: string,
1480
+ ): Promise<GenerateOrcaDraftResult> {
1481
+ const providerResult = tryCreateProvider(configPath);
1482
+ if ('error' in providerResult) {
1483
+ return { status: 'error', error: providerResult.error };
1484
+ }
1485
+ const { provider } = providerResult;
1486
+
1487
+ const systemPrompt = `You are an expert in Orca state machine design. Generate Orca machine definitions in markdown (.orca.md) format from natural language descriptions.
1488
+
1489
+ ${ORCA_SYNTAX_REFERENCE}
1490
+
1491
+ IMPORTANT - Guard Restrictions:
1492
+ - Guards support ONLY: comparisons (< > == != <= >=), null checks, boolean operators
1493
+ - NO method calls: do NOT use .contains(), .includes(), .length(), etc.
1494
+ - For arrays, check .length > 0 or compare to null
1495
+ - If you need complex logic, compute it in an action and store a boolean flag in context
1496
+
1497
+ IMPORTANT - Action Syntax:
1498
+ - The actions table declares ONLY SIGNATURES (names and types), not implementations
1499
+ - Write signatures in backticks: \`(ctx) -> Context\`
1500
+ - NEVER write action bodies
1501
+ - Transitions reference actions by name only
1502
+
1503
+ Important rules:
1504
+ - Always include exactly ONE initial state marked with [initial]
1505
+ - Final states should be marked with [final]
1506
+ - Every (state, event) pair must have a transition OR the event must be ignored
1507
+ - Use guards for conditional transitions
1508
+ - Context should contain all data needed for guards and actions
1509
+ - For effects (API calls, I/O), use Effect<T> return type in the signature
1510
+
1511
+ Output ONLY the Orca machine definition in .orca.md markdown format, wrapped in a code fence, with no additional text.`;
1512
+
1513
+ try {
1514
+ const response = await provider.complete({
1515
+ messages: [
1516
+ { role: 'system', content: systemPrompt },
1517
+ { role: 'user', content: `Generate an Orca state machine for:\n${naturalLanguageSpec}` },
1518
+ ],
1519
+ model: '',
1520
+ max_tokens: 4096,
1521
+ temperature: 0.5,
1522
+ });
1523
+
1524
+ const orca = stripCodeFence(response.content);
1525
+ const machine = extractMachineNameFromSource(orca);
1526
+ return { status: 'success', machine, orca };
1527
+ } catch (err) {
1528
+ return { status: 'error', error: err instanceof Error ? err.message : String(err) };
1529
+ }
1530
+ }
1531
+
1532
+ // ── /generate-multi-machine (single draft step, no verify loop) ───────────────
1533
+
1534
+ export interface GenerateOrcaMultiDraftResult {
1535
+ status: 'success' | 'error';
1536
+ machines?: string[]; // machine names parsed from draft
1537
+ orca?: string;
1538
+ error?: string;
1539
+ }
1540
+
1541
+ export async function generateOrcaMultiDraftSkill(
1542
+ naturalLanguageSpec: string,
1543
+ configPath?: string,
1544
+ ): Promise<GenerateOrcaMultiDraftResult> {
1545
+ const providerResult = tryCreateProvider(configPath);
1546
+ if ('error' in providerResult) {
1547
+ return { status: 'error', error: providerResult.error };
1548
+ }
1549
+ const { provider } = providerResult;
1550
+
1551
+ const systemPrompt = `You are an expert in Orca state machine design. Generate coordinated multi-machine Orca definitions in markdown (.orca.md) format from natural language descriptions.
1552
+
1553
+ ${ORCA_SYNTAX_REFERENCE}
1554
+ ${MULTI_MACHINE_SYNTAX_ADDENDUM}
1555
+
1556
+ IMPORTANT - Guard Restrictions:
1557
+ - Guards support ONLY: comparisons (< > == != <= >=), null checks, boolean operators
1558
+ - NO method calls: do NOT use .contains(), .includes(), .length(), etc.
1559
+ - If you need complex logic, compute it in an action and store a boolean flag in context
1560
+
1561
+ IMPORTANT - Action Syntax:
1562
+ - The actions table declares ONLY SIGNATURES (names and types), not implementations
1563
+ - Write signatures in backticks: \`(ctx) -> Context\`
1564
+ - NEVER write action bodies
1565
+
1566
+ Multi-machine design principles:
1567
+ - Design a clear coordinator machine that delegates to focused child machines
1568
+ - Each child machine should have a single responsibility and at least one [final] state
1569
+ - Use invoke: in coordinator states to call child machines
1570
+ - Separate machines with --- on its own line
1571
+ - Name machines clearly (e.g. OrderCoordinator, PaymentProcessor, NotificationSender)
1572
+
1573
+ Output ONLY the complete multi-machine Orca definition in .orca.md markdown format, wrapped in a code fence, with no additional text.`;
1574
+
1575
+ try {
1576
+ const response = await provider.complete({
1577
+ messages: [
1578
+ { role: 'system', content: systemPrompt },
1579
+ { role: 'user', content: `Generate a multi-machine Orca state machine system for:\n${naturalLanguageSpec}\n\nDesign at least 2 coordinated machines separated by ---` },
1580
+ ],
1581
+ model: '',
1582
+ max_tokens: 8192,
1583
+ temperature: 0.5,
1584
+ });
1585
+
1586
+ const orca = stripCodeFence(response.content);
1587
+ let machines: string[] = [];
1588
+ try {
1589
+ const { file } = parseMarkdown(orca);
1590
+ machines = file.machines.map(m => m.name);
1591
+ } catch { /* ignore parse errors — caller will see them via verify_machine */ }
1592
+ return { status: 'success', machines, orca };
1593
+ } catch (err) {
1594
+ return { status: 'error', error: err instanceof Error ? err.message : String(err) };
1595
+ }
1596
+ }
1597
+
1598
+ // ── Auto-routing: single vs multi-machine heuristic ──────────────────────────
1599
+
1600
+ /**
1601
+ * Returns true when the spec clearly describes coordination between multiple
1602
+ * independent sub-machines rather than a single workflow with many states.
1603
+ *
1604
+ * Conservative by design — single-machine handles most workflows well.
1605
+ * Only routes to multi when the spec explicitly uses coordination vocabulary
1606
+ * or describes a named coordinator managing distinct child processes.
1607
+ */
1608
+ export function detectMultiMachine(spec: string): boolean {
1609
+ const lower = spec.toLowerCase();
1610
+
1611
+ // 1. Explicit coordinator / orchestrator vocabulary
1612
+ if (/\b(coordinator|orchestrator|orchestrate)\b/.test(lower)) return true;
1613
+
1614
+ // 2. Explicit multi-machine phrasing
1615
+ if (/multi.?machine|multiple machines|child machine|sub.?machine/.test(lower)) return true;
1616
+
1617
+ // 3. Coordination pattern: "X coordinates/manages/oversees Y and Z"
1618
+ // where the sub-things sound like independent workflows
1619
+ if (/\b(coordinate[sd]?|orchestrate[sd]?|manages?|oversees?)\b.{0,120}\band\b.{0,80}\b(machine|workflow|pipeline|process|worker|agent)\b/i.test(spec)) return true;
1620
+
1621
+ return false;
1622
+ }
1623
+
1624
+ export interface GenerateAutoResult {
1625
+ status: 'success' | 'error';
1626
+ is_multi: boolean;
1627
+ machine?: string; // single-machine: name of the machine
1628
+ machines?: string[]; // multi-machine: names of all machines
1629
+ orca?: string;
1630
+ error?: string;
1631
+ }
1632
+
1633
+ /**
1634
+ * Auto-routing entry point for generate_machine.
1635
+ * Inspects the spec and delegates to the single- or multi-machine draft
1636
+ * generator. Always returns a draft — caller should follow up with
1637
+ * verify_machine → refine_machine (if errors) → verify_machine.
1638
+ */
1639
+ export async function generateAutoSkill(
1640
+ naturalLanguageSpec: string,
1641
+ configPath?: string,
1642
+ ): Promise<GenerateAutoResult> {
1643
+ const isMulti = detectMultiMachine(naturalLanguageSpec);
1644
+
1645
+ if (isMulti) {
1646
+ const result = await generateOrcaMultiDraftSkill(naturalLanguageSpec, configPath);
1647
+ return {
1648
+ status: result.status,
1649
+ is_multi: true,
1650
+ machines: result.machines,
1651
+ orca: result.orca,
1652
+ error: result.error,
1653
+ };
1654
+ } else {
1655
+ const result = await generateOrcaDraftSkill(naturalLanguageSpec, configPath);
1656
+ return {
1657
+ status: result.status,
1658
+ is_multi: false,
1659
+ machine: result.machine,
1660
+ orca: result.orca,
1661
+ error: result.error,
1662
+ };
1663
+ }
1664
+ }
1665
+
1354
1666
  function stripCodeFence(code: string): string {
1355
1667
  return code
1668
+ .replace(/<think>[\s\S]*?<\/think>/gi, '')
1356
1669
  .replace(/^```(?:orca|markdown|md|orca\.md)?\n/, '')
1357
1670
  .replace(/^```\n/, '')
1358
1671
  .replace(/\n```$/, '')
package/src/tools.ts CHANGED
@@ -57,7 +57,7 @@ export const ORCA_TOOLS: ToolDef[] = [
57
57
  {
58
58
  name: 'generate_machine',
59
59
  description:
60
- 'Generate an Orca machine definition from a natural language specification. Requires LLM configuration via environment variables (ANTHROPIC_API_KEY, etc.). Loops up to max_iterations to produce a valid machine.',
60
+ 'Generate a draft Orca machine definition from a natural language specification. Automatically chooses between a single-machine or multi-machine design based on the spec: specs that mention a coordinator, orchestrator, or multiple independently-lifecycled sub-processes route to multi-machine; everything else produces a single machine. Returns raw .orca.md source and an is_multi flag. Always call verify_machine on the result next — then refine_machine if there are errors. Requires LLM configuration via environment variables (ANTHROPIC_API_KEY, etc.).',
61
61
  inputSchema: {
62
62
  type: 'object',
63
63
  properties: {
@@ -65,10 +65,6 @@ export const ORCA_TOOLS: ToolDef[] = [
65
65
  type: 'string',
66
66
  description: 'Natural language description of the desired state machine',
67
67
  },
68
- max_iterations: {
69
- type: 'number',
70
- description: 'Maximum refinement iterations (default: 3)',
71
- },
72
68
  },
73
69
  required: ['spec'],
74
70
  },
@@ -101,7 +97,7 @@ export const ORCA_TOOLS: ToolDef[] = [
101
97
  {
102
98
  name: 'generate_multi_machine',
103
99
  description:
104
- 'Generate a coordinated set of Orca machines from a natural language specification. Returns multiple machine definitions in one .orca.md file (separated by ---) that pass the cross-machine verifier. Requires LLM configuration via environment variables.',
100
+ 'Generate a draft set of coordinated Orca machines from a natural language specification. Returns multiple machine definitions in one .orca.md file (separated by ---). Always call verify_machine on the result next — then refine_machine if there are errors. Requires LLM configuration via environment variables.',
105
101
  inputSchema: {
106
102
  type: 'object',
107
103
  properties: {
@@ -109,10 +105,6 @@ export const ORCA_TOOLS: ToolDef[] = [
109
105
  type: 'string',
110
106
  description: 'Natural language description of the desired multi-machine system',
111
107
  },
112
- max_iterations: {
113
- type: 'number',
114
- description: 'Maximum refinement iterations (default: 3)',
115
- },
116
108
  },
117
109
  required: ['spec'],
118
110
  },
@@ -141,4 +133,14 @@ export const ORCA_TOOLS: ToolDef[] = [
141
133
  required: ['source'],
142
134
  },
143
135
  },
136
+ {
137
+ name: 'server_status',
138
+ description:
139
+ 'Return the MCP server version and active configuration. API keys are never included in the response — only whether a key is configured. Use this to confirm the server is running and check which LLM provider and model are active.',
140
+ inputSchema: {
141
+ type: 'object',
142
+ properties: {},
143
+ required: [],
144
+ },
145
+ },
144
146
  ];