@exellix/ai-tasks 8.2.9 → 8.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.md +92 -75
  3. package/RUNTASK_REQUEST.md +3 -3
  4. package/dist/aiSkillsUpstreamExports.d.ts +1 -1
  5. package/dist/aiSkillsUpstreamExports.d.ts.map +1 -1
  6. package/dist/aiSkillsUpstreamExports.js +1 -1
  7. package/dist/aiSkillsUpstreamExports.js.map +1 -1
  8. package/dist/analysis/analyzeRunTaskRequest.d.ts +2 -2
  9. package/dist/analysis/analyzeRunTaskRequest.d.ts.map +1 -1
  10. package/dist/analysis/analyzeRunTaskRequest.js +11 -4
  11. package/dist/analysis/analyzeRunTaskRequest.js.map +1 -1
  12. package/dist/builders/task-request-builder.d.ts +9 -12
  13. package/dist/builders/task-request-builder.d.ts.map +1 -1
  14. package/dist/builders/task-request-builder.js +22 -15
  15. package/dist/builders/task-request-builder.js.map +1 -1
  16. package/dist/compile/compileTaskConfiguration.d.ts.map +1 -1
  17. package/dist/compile/compileTaskConfiguration.js +4 -3
  18. package/dist/compile/compileTaskConfiguration.js.map +1 -1
  19. package/dist/core/task-sdk.d.ts.map +1 -1
  20. package/dist/core/task-sdk.js +11 -11
  21. package/dist/core/task-sdk.js.map +1 -1
  22. package/dist/errors/modelConfigRequiredError.d.ts +9 -0
  23. package/dist/errors/modelConfigRequiredError.d.ts.map +1 -0
  24. package/dist/errors/modelConfigRequiredError.js +20 -0
  25. package/dist/errors/modelConfigRequiredError.js.map +1 -0
  26. package/dist/errors/runTaskExecutionError.d.ts +2 -1
  27. package/dist/errors/runTaskExecutionError.d.ts.map +1 -1
  28. package/dist/errors/runTaskExecutionError.js +1 -1
  29. package/dist/errors/runTaskExecutionError.js.map +1 -1
  30. package/dist/index.d.ts +4 -4
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +3 -3
  33. package/dist/index.js.map +1 -1
  34. package/dist/internal/resolveLlmCallForXynthesis.d.ts +17 -40
  35. package/dist/internal/resolveLlmCallForXynthesis.d.ts.map +1 -1
  36. package/dist/internal/resolveLlmCallForXynthesis.js +15 -55
  37. package/dist/internal/resolveLlmCallForXynthesis.js.map +1 -1
  38. package/dist/internal/runPostStepLlmCall.d.ts +3 -17
  39. package/dist/internal/runPostStepLlmCall.d.ts.map +1 -1
  40. package/dist/internal/runPostStepLlmCall.js +31 -30
  41. package/dist/internal/runPostStepLlmCall.js.map +1 -1
  42. package/dist/invocation/defaultAiProfilesResolveOptions.d.ts +27 -0
  43. package/dist/invocation/defaultAiProfilesResolveOptions.d.ts.map +1 -0
  44. package/dist/invocation/defaultAiProfilesResolveOptions.js +44 -0
  45. package/dist/invocation/defaultAiProfilesResolveOptions.js.map +1 -0
  46. package/dist/invocation/resolveProfileInvocationRouting.d.ts +4 -2
  47. package/dist/invocation/resolveProfileInvocationRouting.d.ts.map +1 -1
  48. package/dist/invocation/resolveProfileInvocationRouting.js +20 -19
  49. package/dist/invocation/resolveProfileInvocationRouting.js.map +1 -1
  50. package/dist/logxer/packageLogxers.d.ts +0 -1
  51. package/dist/logxer/packageLogxers.d.ts.map +1 -1
  52. package/dist/observability/classifyRunTaskFailure.js +2 -2
  53. package/dist/observability/classifyRunTaskFailure.js.map +1 -1
  54. package/dist/observability/logLlmProviderInvocation.d.ts +1 -2
  55. package/dist/observability/logLlmProviderInvocation.d.ts.map +1 -1
  56. package/dist/observability/logLlmProviderInvocation.js +3 -3
  57. package/dist/observability/logLlmProviderInvocation.js.map +1 -1
  58. package/dist/packaged-tasks-client.js +1 -1
  59. package/dist/packaged-tasks-client.js.map +1 -1
  60. package/dist/post-steps/audit/runAudit.d.ts.map +1 -1
  61. package/dist/post-steps/audit/runAudit.js +6 -16
  62. package/dist/post-steps/audit/runAudit.js.map +1 -1
  63. package/dist/post-steps/polish/runPolish.d.ts +2 -0
  64. package/dist/post-steps/polish/runPolish.d.ts.map +1 -1
  65. package/dist/post-steps/polish/runPolish.js +5 -9
  66. package/dist/post-steps/polish/runPolish.js.map +1 -1
  67. package/dist/post-steps/resolvePostStepConfig.d.ts +4 -35
  68. package/dist/post-steps/resolvePostStepConfig.d.ts.map +1 -1
  69. package/dist/post-steps/resolvePostStepConfig.js +9 -36
  70. package/dist/post-steps/resolvePostStepConfig.js.map +1 -1
  71. package/dist/strategies/direct-execution-strategy.d.ts.map +1 -1
  72. package/dist/strategies/direct-execution-strategy.js +6 -3
  73. package/dist/strategies/direct-execution-strategy.js.map +1 -1
  74. package/dist/synthesis/runStructuredSynthesisRobust.d.ts +0 -1
  75. package/dist/synthesis/runStructuredSynthesisRobust.d.ts.map +1 -1
  76. package/dist/synthesis/runStructuredSynthesisRobust.js +20 -58
  77. package/dist/synthesis/runStructuredSynthesisRobust.js.map +1 -1
  78. package/dist/types/index.d.ts +1 -1
  79. package/dist/types/index.d.ts.map +1 -1
  80. package/dist/types/llmCall.d.ts +18 -47
  81. package/dist/types/llmCall.d.ts.map +1 -1
  82. package/dist/types/llmCall.js +1 -10
  83. package/dist/types/llmCall.js.map +1 -1
  84. package/dist/types/model-config.d.ts +22 -9
  85. package/dist/types/model-config.d.ts.map +1 -1
  86. package/dist/types/model-config.js +62 -13
  87. package/dist/types/model-config.js.map +1 -1
  88. package/dist/types/task-types.d.ts +16 -12
  89. package/dist/types/task-types.d.ts.map +1 -1
  90. package/dist/types/task-types.js.map +1 -1
  91. package/dist/utilities/runUtility.d.ts.map +1 -1
  92. package/dist/utilities/runUtility.js +8 -11
  93. package/dist/utilities/runUtility.js.map +1 -1
  94. package/dist/utils/aiProfileModelFormat.d.ts +13 -5
  95. package/dist/utils/aiProfileModelFormat.d.ts.map +1 -1
  96. package/dist/utils/aiProfileModelFormat.js +40 -85
  97. package/dist/utils/aiProfileModelFormat.js.map +1 -1
  98. package/dist/utils/concreteModelId.d.ts.map +1 -1
  99. package/dist/utils/concreteModelId.js +4 -2
  100. package/dist/utils/concreteModelId.js.map +1 -1
  101. package/dist/utils/resolveAiProfileModel.d.ts +6 -3
  102. package/dist/utils/resolveAiProfileModel.d.ts.map +1 -1
  103. package/dist/utils/resolveAiProfileModel.js +4 -7
  104. package/dist/utils/resolveAiProfileModel.js.map +1 -1
  105. package/dist/utils/resolveRunTaskModelReferences.d.ts +1 -1
  106. package/dist/utils/resolveRunTaskModelReferences.d.ts.map +1 -1
  107. package/dist/utils/resolveRunTaskModelReferences.js +8 -3
  108. package/dist/utils/resolveRunTaskModelReferences.js.map +1 -1
  109. package/dist/utils/routeModelConfigSlots.d.ts +1 -1
  110. package/dist/utils/routeModelConfigSlots.d.ts.map +1 -1
  111. package/dist/utils/routeModelConfigSlots.js +1 -1
  112. package/dist/utils/routeModelConfigSlots.js.map +1 -1
  113. package/dist/validation/helpers.d.ts +5 -2
  114. package/dist/validation/helpers.d.ts.map +1 -1
  115. package/dist/validation/helpers.js +65 -22
  116. package/dist/validation/helpers.js.map +1 -1
  117. package/dist/validation/types.d.ts +1 -1
  118. package/dist/validation/types.d.ts.map +1 -1
  119. package/dist/validation/validateRunTaskConfig.d.ts.map +1 -1
  120. package/dist/validation/validateRunTaskConfig.js +2 -1
  121. package/dist/validation/validateRunTaskConfig.js.map +1 -1
  122. package/documenations/upstream-feature-requests/README.md +22 -0
  123. package/documenations/upstream-feature-requests/ai-skills-orchestrator-invoke-contract-5.9.md +150 -0
  124. package/documenations/upstream-feature-requests/ai-tasks-wrap-up-after-upstream.md +126 -0
  125. package/documenations/upstream-feature-requests/xynthesis-orchestrator-invoke-contract-4.2.md +184 -0
  126. package/package.json +5 -5
package/CHANGELOG.md CHANGED
@@ -6,6 +6,32 @@ The published **npm version** always matches **`version`** in [`package.json`](p
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ### Changed (breaking)
10
+
11
+ - **`RunTaskRequest.modelConfig` is required** on every `runTask()` call (all three slots). No env-based or hardcoded model defaults (`SYNTHESIS_MODEL`, `AUDIT_MODEL`, `POST_STEP_MODEL`, `"balanced"`, etc.) for model selection.
12
+
13
+ ### Fixed
14
+
15
+ - **PRE/MAIN model routing:** Root `RunTaskRequest.llmCall` is **MAIN-only** — no longer copied into PRE synthesis compile. When `llmCall.model` duplicates `preActionModel` while `skillModel` differs (graph-engine PRE leakage), MAIN uses `skillModel`. Validation warning `MODEL_CONFIG_LLM_CALL_PRE_MAIN_COLLISION`.
16
+
17
+ ## [8.4.0] - 2026-06-01
18
+
19
+ ### Changed (breaking)
20
+
21
+ - **`RunTaskRequest.modelConfig`:** **3-slot triplet only** — `preActionModel`, `skillModel`, `postActionModel`. **`xynthesisModel` removed** (validation rejects with `NON_CANONICAL_MODEL_CONFIG`). PRE uses `preActionModel`; POST uses `postActionModel`.
22
+ - **`@x12i/ai-profiles` ^2.0.0:** Required `catalogLane` on profile resolution; ai-tasks defaults `"text"` ( `"image"` for `vision` ). Registry source defaults to `auto`.
23
+ - **`@exellix/xynthesis` ^4.2.1:** Minimum for ai-profiles v2 alignment.
24
+
25
+ ### Added
26
+
27
+ - **`defaultAiTasksResolveAiProfileOptions`**, slot helpers `resolvePreActionModel` / `resolvePostActionModel`, builder `withPreActionModel` / `withPostActionModel`.
28
+
29
+ ### Removed
30
+
31
+ - Exports **`resolveXynthesisModelForPre`**, **`getXynthesisModelFromSlots`**, builder **`withXynthesisModel`**.
32
+
33
+ ## [Unreleased — prior notes]
34
+
9
35
  ### Changed
10
36
 
11
37
  - **`@x12i/ai-profiles` ≥1.8.0:** Direct dependency bumped from **^1.7.2**; **`npm` override** pins transitive `@x12i/ai-profiles` to this package's direct version (required fix in **1.8.0** for profile alias resolution). Live coverage: `npm run test:live` → `test/e2e/ai-profiles-live.test.ts` (registry `auto` + real xynthesis alias call).
package/README.md CHANGED
@@ -4,6 +4,18 @@ Private Git/npm package for executing **tasks** using the Woreces execution stac
4
4
 
5
5
  **Breaking — `executionStrategies` (required):** Every `runTask` request must include **`executionStrategies`**: an array of FuncX MAIN wrappers or **`[]`** for plain gateway MAIN. The old **`executionStrategyKey`** field is removed. See [BREAKING-CHANGES.md](BREAKING-CHANGES.md) and [RUNTASK_REQUEST.md](RUNTASK_REQUEST.md). Supported MAIN execution is exactly: **direct** via **`executionStrategies: []`**, **planner** before MAIN, **optimizer** after MAIN, or planner + optimizer together. Default FuncX function ids (generic envelope via **`run()`**, **`@x12i/funcx` ≥ 4.2.0** recommended): **`execution/plan`**, **`execution/evaluate-result`** (overridable via each row’s `args.functionId` when the alternate implementation uses the **same** envelope). Planner/optimizer responses are normalized with **`getRunJsonResult`** from `@x12i/funcx/functions` (also re-exported from this package as **`unwrapFuncxRunValue`** → **`getRunJsonResult`**).
6
6
 
7
+ **Breaking — 8.4+ LLM invoke contract (no legacy):** Every `runTask` requires **`modelConfig.preActionModel`**, **`modelConfig.skillModel`**, and **`modelConfig.postActionModel`**. Do **not** send `xynthesisModel`, root `modelConfig.model`, `maxTokens`, `maxTokensCap`, or graph-era tier names (`weak` / `strong`). Token budgets are owned by **Optimixer** in `@exellix/ai-skills` (MAIN) and `@exellix/xynthesis` (PRE/POST). Send **`outputExpectation`** (xynthesis) and optional **`reasoningEffort`**, **`temperature`**, **`topP`**. See [How completion budgets work](#how-completion-budgets-work-84) and [Model profile aliases](#model-profile-aliases-x12iai-profiles).
8
+
9
+ ### Stack alignment (8.4+)
10
+
11
+ | Package | Role in `runTask` | Minimum |
12
+ |---------|-------------------|---------|
13
+ | `@x12i/ai-profiles` | Profile/shortcut → wire model (`catalogLane` required on resolve) | **2.1.0** |
14
+ | `@exellix/xynthesis` | PRE synthesis, POST audit/polish, scoping, utilities (`executeXynthesisAction`) | **4.3.0** |
15
+ | `@exellix/ai-skills` | MAIN `runSkill` (Optimixer caps, `ModelConfig.reasoningEffort`) | **6.0.0** |
16
+
17
+ Use explicit **ai-profiles** profile keys (`cheap`, `pro`, `cyber`, …) or **shortcuts** (`cheapest`, `default`, …) or **`profile/choice`** keys — not removed sync helpers or legacy tier aliases.
18
+
7
19
  **FuncX catalog / hosting:** Those function ids must exist in your FuncX content resolver for live **`run()`** calls — see [`documenations/funcx-catalog-hosting-checklist.md`](documenations/funcx-catalog-hosting-checklist.md).
8
20
 
9
21
  **Execution pipeline (optional):** You can use `executionPipeline` (array of pre/main/post steps) instead of a single `executionType`. PRE steps include `synthesized-context`; POST steps include `audit` (quality-gate loop) and `polish` (refinement checklist). See [BREAKING-CHANGES.md](BREAKING-CHANGES.md) for migration. When `executionPipeline` is omitted, existing `executionType` behavior is unchanged.
@@ -313,10 +325,11 @@ const res = await tasks.runTask({
313
325
  // optional
314
326
  variables: { orgName: "Acme" },
315
327
  modelConfig: {
316
- xynthesisModel: "openai/gpt-5-nano",
328
+ preActionModel: "cheap",
329
+ postActionModel: "cheap",
317
330
  skillModel: "openai/gpt-5",
318
331
  temperature: 0.7,
319
- maxTokens: 2000
332
+ topP: 0.9,
320
333
  },
321
334
  jobId: "job-1",
322
335
  agentId: "agent-1",
@@ -446,7 +459,7 @@ const expected = await analyzeExpectedRunTaskInput({
446
459
  });
447
460
  ```
448
461
 
449
- Each issue has **`code`**, **`severity`** (`error` \| `warning`), **`message`**, and optional **`path`** (e.g. `smartInput.paths[0].path`, `llmCall.maxTokensCap`). See [`.docs/flow-io/`](.docs/flow-io/flow-README.md) for flow-level wiring.
462
+ Each issue has **`code`**, **`severity`** (`error` \| `warning`), **`message`**, and optional **`path`** (e.g. `smartInput.paths[0].path`, `modelConfig.preActionModel`). See [`.docs/flow-io/`](.docs/flow-io/flow-README.md) for flow-level wiring.
450
463
 
451
464
  ### Skill request analysis (`@exellix/ai-skills` 5.6+)
452
465
 
@@ -454,7 +467,7 @@ Each issue has **`code`**, **`severity`** (`error` \| `warning`), **`message`**,
454
467
 
455
468
  | Export | Purpose |
456
469
  |--------|---------|
457
- | **`analyzeSkillRequest`**, **`buildSkillRequestAnalysisPacket`**, **`formatSkillRequestAnalysisMarkdown`** | Deterministic preflight for a flat **`RunSkillRequest`** (templates, smart input, output contract, gateway packet preview). |
470
+ | **`ExellixSkillsClient.analyzeSkillRequest`**, **`buildSkillRequestAnalysisPacket`**, **`formatSkillRequestAnalysisMarkdown`** | Deterministic preflight for a flat **`RunSkillRequest`** (templates, smart input, output contract, gateway packet preview). |
458
471
  | **`analyzeRunTaskRequest(catalox, request, options?)`** | Same analysis on **`pickRunSkillRequestFields(request)`**, plus optional merge of **`validateRunTaskConfig`** findings (`includeAiTasksConfigValidation`, default `true`). |
459
472
  | **`extractTokenNamesFromStrings`**, **`getSkillTokens`**, **`getSkillContent`**, **`modifySkillContent`**, **`createSubSkill`**, **`deleteSubSkill`**, **`SKILL_TEMPLATE_ROLES_ORDER`** | Template catalog introspection and edits (Catalox). |
460
473
  | **`runSkillRequestFromFlat`**, **`resolveAiEngineIdForRunSkill`**, **`SkillExecutionTraceError`**, trace helpers | Flat skill execution and trace utilities. |
@@ -1052,28 +1065,20 @@ Use **`RunTaskResponseWithSteps<TParsed>`** when you expect steps; it extends `R
1052
1065
 
1053
1066
  ---
1054
1067
 
1055
- ## How max tokens are resolved (automation + caller controls)
1056
-
1057
- `@exellix/xynthesis` 3.1+ ships `resolveMaxTokens` — a deterministic function that picks the right `maxTokens` for any LLM call from `(inputText, outputExpectation, modelId, callerMaxTokens?, structuredOutput?)`. `@exellix/ai-tasks` invokes it on **every** xynthesis-backed call (PRE synthesis, AI scoping, POST audit, POST polish, structured-repair fallback) so callers don't have to pick a number.
1058
-
1059
- **The pipeline is:**
1068
+ ## How completion budgets work (8.4+)
1060
1069
 
1061
- 1. **Estimate input tokens** from `inputText` (system + user + extra material) using `xynthesis.estimateTokens`.
1062
- 2. **Resolve the effective `OutputExpectation`** = caller's `llmCall.outputExpectation` → per-action default (`xynthesis.resolveOutputExpectation('synthesis' | 'audit' | 'fix' | 'pick-best' | 'craft-final')`) → stage-local default (e.g. AI scoping uses `{ size: { mode: "absolute", minWords: 5, maxWords: 200 }, density: "concise" }`) → xynthesis package fallback.
1063
- 3. **Compute estimated output tokens** from the expectation (absolute words → tokens; relative → ratio × input tokens), multiplied by `headroomMultiplier(density)` and (if `structuredOutput`) the structured-output factor.
1064
- 4. **Cap at the model's `maxOutputTokens`** from `getModelCapabilities(modelId)` (unknown models fall back to `{ contextWindow: 128_000, maxOutputTokens: 4_096, completionTokenCost: "medium" }`).
1065
- 5. **Honor the caller's `maxTokensCap`** as a HARD CEILING — the auto-sizer can pick a smaller number, but never larger.
1066
- 6. The `resolveMaxTokens` result (`{ maxTokens, reason: "computed" | "caller-override" | "model-ceiling" | "fallback", diagnostics: { … } }`) is forwarded to xynthesis as `tokenResolutionMetadata` and surfaced in trace mode as `LlmCallObservation.request.tokenResolution`.
1070
+ Orchestrators send **model** + **sampling** + **`reasoningEffort`** + (for xynthesis) **`outputExpectation`**. They do **not** send completion token counts.
1067
1071
 
1068
- **To adjust per-call dynamically** (without losing the automation):
1072
+ | Phase | Package | Caller sends | Package owns |
1073
+ |-------|---------|--------------|--------------|
1074
+ | **MAIN** | `@exellix/ai-skills` ≥6 | `modelConfig` → `{ model, temperature, topP, reasoningEffort, … }` | Optimixer + Catalox skill catalog (`maxTokens` on `ModelConfig` is rejected) |
1075
+ | **PRE / POST / scoping / utility** | `@exellix/xynthesis` ≥4.3 | `outputExpectation` (required on every hop), optional `reasoningEffort`, `temperature`, `topP` | `resolveEffectiveMaxTokens` inside `executeXynthesisAction` |
1069
1076
 
1070
- - Set `llmCall.outputExpectation` to bias the auto-sizer toward smaller / larger / denser output.
1071
- - Set `llmCall.maxTokensCap` to bound the upper limit (e.g. for cost ceilings).
1072
- - Leave both unset to get the per-stage / per-action default.
1077
+ **Xynthesis `outputExpectation`** is sizing/density **intent** for Optimixer — not a literal token count. ai-tasks resolves a per-stage default when the caller omits it (`resolveOutputExpectation` / `resolveLlmOutputExpectationForXynthesis`).
1073
1078
 
1074
- The legacy `llmCall.maxTokens` field is still accepted as an alias for `maxTokensCap`. The legacy `modelConfig.maxTokens` (forwarded as-is to ai-skills for the MAIN skill call) continues to work.
1079
+ **Rejected on the wire (validation):** `modelConfig.maxTokens`, `llmCall.maxTokens`, `llmCall.maxTokensCap`, deprecated `xynthesisModel`, root `modelConfig.model`.
1075
1080
 
1076
- > **Note:** the MAIN skill call goes through `@exellix/ai-skills` `runSkill`, which today uses your `modelConfig.maxTokens` directly (no auto-sizer). Setting `RunTaskRequest.llmCall.maxTokensCap` on the main skill is overlaid onto `modelConfig.maxTokens` before the call. ai-skills auto-sizing is tracked as an upstream feature request in [`documenations/upstream-feature-requests/ai-skills-llm-observability.md`](documenations/upstream-feature-requests/ai-skills-llm-observability.md).
1081
+ **Trace:** use `usage.maxTokensRequested` / `invokeSummary` diagnostics after invoke not pre-set caps on the request.
1077
1082
 
1078
1083
  ---
1079
1084
 
@@ -1083,14 +1088,16 @@ The legacy `llmCall.maxTokens` field is still accepted as an alias for `maxToken
1083
1088
 
1084
1089
  | Path | Slot / field | Resolved before |
1085
1090
  |------|----------------|-----------------|
1086
- | **Xynthesis** (PRE synthesis, POST audit/polish, AI scoping, utilities) | `xynthesisModel`, `SynthesisConfig.llmCall.model`, `AuditConfig.llmCall.*`, `PolishConfig.llmCall`, `RunUtilityRequest.exec.model`, env fallbacks (`SYNTHESIS_MODEL`, `AUDIT_MODEL`, …) | `executeXynthesisAction` / `runPostStepLlmCall` |
1091
+ | **Xynthesis** (PRE synthesis, POST audit/polish, AI scoping, utilities) | `preActionModel`, `postActionModel`, step `llmCall.model`, `RunUtilityRequest.exec.model` | `executeXynthesisAction` / `runPostStepLlmCall` |
1087
1092
  | **ai-skills MAIN** | `skillModel`, `RunTaskRequest.llmCall.model` | `runSkill` (via `DirectExecutionStrategy`) |
1088
1093
 
1089
- **Accepted alias shapes:**
1094
+ **Accepted alias shapes** (`@x12i/ai-profiles` v2.1+):
1090
1095
 
1091
- - **ai-profiles profiles:** `cheap`, `fast`, `balanced`, `deep`, `pro`, `json`, `agentic`, `research`
1092
- - **ai-profiles shortcuts:** `cheapest`, `default`, `best`, `standard`, `thinking`, `schema`, `agent`, `web-research`, (see `@x12i/ai-profiles` README)
1093
- - **Legacy graph tiers:** `weak` → `cheap`, `strong` → `pro`, `default` → `balanced`
1096
+ - **Profile keys:** `cheap`, `fast`, `balanced`, `deep`, `pro`, `json`, `agentic`, `research`, `cyber`, …
1097
+ - **Shortcuts:** `cheapest`, `default`, `best`, `standard`, `thinking`, `schema`, …
1098
+ - **Explicit choice:** `cheap/default`, `pro@default`,
1099
+
1100
+ **Not accepted:** legacy graph tiers (`weak`, `strong`), deprecated `xynthesisModel`, or sync-only alias guessing removed in ai-profiles 2.1. Unknown keys fail at **`resolveAIProfile`** with a clear error.
1094
1101
 
1095
1102
  **Example (aliases on the request — resolved inside `runTask`):**
1096
1103
 
@@ -1103,20 +1110,21 @@ await runTask({
1103
1110
  executionStrategies: [],
1104
1111
  input: { topic: "Q1 risks" },
1105
1112
  modelConfig: {
1106
- xynthesisModel: "cheap", // PRE synthesis → e.g. google/gemini-2.5-flash-lite
1107
- skillModel: "balanced", // MAIN skill → e.g. openai/gpt-5.4
1113
+ preActionModel: "cheap", // PRE synthesis
1114
+ postActionModel: "cheap", // POST audit/polish
1115
+ skillModel: "balanced", // MAIN skill
1108
1116
  },
1109
1117
  });
1110
1118
  ```
1111
1119
 
1112
- Concrete ids (`openrouter/...`, `anthropic/claude-sonnet-4`, `openai/gpt-5`, …) pass through unchanged on **`skillModel`** / MAIN `llmCall.model`. **`xynthesisModel`** and xynthesis **`llmCall.model`** must stay **ai-profiles aliases** under `@exellix/xynthesis` ≥4 (concrete ids are rejected).
1120
+ Concrete ids (`openrouter/...`, `anthropic/claude-sonnet-4`, `openai/gpt-5`, …) pass through unchanged on **`skillModel`** / MAIN `llmCall.model`. **`preActionModel`** / **`postActionModel`** and xynthesis **`llmCall.model`** must stay **ai-profiles aliases** under `@exellix/xynthesis` ≥4 (concrete ids are rejected).
1113
1121
 
1114
1122
  **Client impact:**
1115
1123
 
1116
1124
  - **No change** if you already send concrete provider model ids.
1117
1125
  - **New:** you may send ai-profiles aliases on `modelConfig`, `llmCall.model`, and pipeline step configs — graph-engine no longer has to pre-resolve every alias before `runTask` (hosts that already resolve can keep doing so; double resolution is a no-op for concrete ids).
1118
1126
  - **Validation:** alias tokens on `modelConfig` slots are accepted; unknown aliases fail at resolution with a clear error.
1119
- - **Optional helpers** (for hosts/tests): `resolveModelReference`, `resolveRunTaskModelReferences`, `isResolvableModelAlias`.
1127
+ - **Helpers:** `resolveModelReference`, `resolveRunTaskModelReferences`, `isResolvableModelAlias` (true only for **`profile/choice`** keys and **shortcuts** — bare profile keys are resolved at invoke, not sync-listed).
1120
1128
 
1121
1129
  Resolution uses the ai-profiles registry (`auto`: remote refresh with bundled fallback). See [`.docs/ai-tasks-model-profile-aliases-7x.md`](.docs/ai-tasks-model-profile-aliases-7x.md).
1122
1130
 
@@ -1124,18 +1132,17 @@ Resolution uses the ai-profiles registry (`auto`: remote refresh with bundled fa
1124
1132
 
1125
1133
  ## LLM call configuration (`LlmCallConfig`)
1126
1134
 
1127
- `LlmCallConfig` is the per-stage override knob set. On MAIN it composes with `RunTaskRequest.modelConfig` slots (`skillModel` / `xynthesisModel`) — when both are set, `llmCall.*` wins.
1135
+ `LlmCallConfig` is the per-stage override knob set. On MAIN it composes with `RunTaskRequest.modelConfig` slots (`preActionModel`, `skillModel`, `postActionModel`) — when both are set, `llmCall.*` wins.
1128
1136
 
1129
1137
  ```typescript
1130
1138
  type LlmCallConfig = {
1131
- model?: string; // provider/model id or @x12i/ai-profiles alias (resolved at call time)
1132
- maxTokensCap?: number; // HARD CEILING for resolveMaxTokens (does NOT disable automation)
1133
- maxTokens?: number; // alias for maxTokensCap (backward compat)
1139
+ model?: string; // provider/model id or ai-profiles alias (resolved at call time)
1134
1140
  temperature?: number;
1135
1141
  topP?: number;
1136
- maxOutputLength?: number; // post-call character truncation
1142
+ reasoningEffort?: OptimixerReasoningEffort; // overrides Catalox default when set
1143
+ maxOutputLength?: number; // post-call character truncation
1137
1144
  timeoutMs?: number;
1138
- outputExpectation?: OutputExpectation; // drives resolveMaxTokens auto-sizing
1145
+ outputExpectation?: OutputExpectation; // xynthesis Optimixer intent (not a token count)
1139
1146
  };
1140
1147
  ```
1141
1148
 
@@ -1150,7 +1157,7 @@ type LlmCallConfig = {
1150
1157
  | POST audit (evaluator) | `AuditConfig.llmCall` or `AuditConfig.audit.llmCall` |
1151
1158
  | POST audit (synthesis-merge) | `AuditConfig.audit.synthesis.llmCall` |
1152
1159
  | POST polish | `PolishConfig.llmCall` |
1153
- | Utility (xynthesis-finalize) | `RunUtilityRequest.exec.{model, maxTokensCap, temperature, topP, outputExpectation, ...}` |
1160
+ | Utility (xynthesis-finalize) | `RunUtilityRequest.exec.{model, temperature, topP, reasoningEffort, outputExpectation, ...}` |
1154
1161
 
1155
1162
  **Builder helpers (`TaskRequestBuilder`):**
1156
1163
 
@@ -1168,7 +1175,6 @@ type LlmCallConfig = {
1168
1175
  |---------------------|--------|
1169
1176
  | `AUDIT_MODEL`, `POLISH_MODEL`, `SYNTHESIS_MODEL`, `AI_SCOPING_MODEL` | Model override for that stage |
1170
1177
  | `AUDIT_TIMEOUT_MS`, `POLISH_TIMEOUT_MS`, `SYNTHESIS_TIMEOUT_MS`, `AI_SCOPING_TIMEOUT_MS` | Per-call timeout override |
1171
- | `AUDIT_MAX_TOKENS_CAP`, `POLISH_MAX_TOKENS_CAP`, `SYNTHESIS_MAX_TOKENS_CAP` | Hard ceiling override |
1172
1178
  | `AUDIT_TEMPERATURE`, `POLISH_TEMPERATURE`, `SYNTHESIS_TEMPERATURE` | Temperature override |
1173
1179
  | `AUDIT_TOP_P`, `POLISH_TOP_P`, `SYNTHESIS_TOP_P` | Top-P override |
1174
1180
  | `AUDIT_MAX_OUTPUT_LENGTH`, `POLISH_MAX_OUTPUT_LENGTH`, `SYNTHESIS_MAX_OUTPUT_LENGTH` | Post-call char truncation override |
@@ -1207,7 +1213,7 @@ When `RunTaskRequest.executionMode === "trace"` (or `RunUtilityRequest.exec.exec
1207
1213
  type LlmCallObservation =
1208
1214
  | {
1209
1215
  source: "xynthesis"; stage: LlmCallStage; stepId?: string;
1210
- request: LlmCallRequestSnapshot; // includes resolved tokenResolution from resolveMaxTokens
1216
+ request: LlmCallRequestSnapshot;
1211
1217
  summary?: InvokeAttemptSummary; // from executeXynthesisAction on success / typed errors on failure
1212
1218
  debugTrace?: XynthesisDebugTrace; // present when executionMode: "trace" was forwarded
1213
1219
  durationMs: number; ok: boolean; error?: { name: string; message: string };
@@ -1247,7 +1253,6 @@ import {
1247
1253
  type LlmCallConfig,
1248
1254
  type InvokeAttemptSummary,
1249
1255
  type RunSkillDiagnostics,
1250
- resolveMaxTokens,
1251
1256
  resolveOutputExpectation,
1252
1257
  ACTION_OUTPUT_DEFAULTS,
1253
1258
  getModelCapabilities,
@@ -1261,17 +1266,26 @@ import { runTask, type LlmCallConfig } from "@exellix/ai-tasks";
1261
1266
 
1262
1267
  const llmCall: LlmCallConfig = {
1263
1268
  model: "gpt-5-mini",
1264
- maxTokensCap: 4096, // hard ceiling
1265
1269
  outputExpectation: { size: { kind: "absolute", maxWords: 600 }, density: "default" },
1266
1270
  temperature: 0.4,
1271
+ reasoningEffort: "medium",
1267
1272
  };
1268
1273
 
1269
1274
  const result = await runTask({
1270
1275
  skillKey: "tasks/security-risk-summary",
1276
+ agentId: "agent-1",
1277
+ jobTypeId: "security-job",
1278
+ taskTypeId: "security-task",
1279
+ executionStrategies: [],
1280
+ modelConfig: {
1281
+ preActionModel: "cheap",
1282
+ postActionModel: "cheap",
1283
+ skillModel: "balanced",
1284
+ },
1271
1285
  input: { assetId: "a-123" },
1272
1286
  executionMode: "trace",
1273
1287
  llmCall,
1274
- aiScopingOptions: { llmCall: { model: "gpt-5-nano", maxTokensCap: 512 } },
1288
+ aiScopingOptions: { llmCall: { model: "cheap", outputExpectation: { size: { kind: "absolute", maxWords: 200 }, density: "concise" } } },
1275
1289
  // executionPipeline: [{ phase: "pre", type: "synthesized-context", config: { llmCall } }, { phase: "main", type: "direct" }],
1276
1290
  });
1277
1291
 
@@ -1862,7 +1876,7 @@ Builder class for constructing task requests with a fluent API.
1862
1876
  - `withGraphId(graphId: string): this` - Set graph identifier
1863
1877
  - `withNodeId(nodeId: string): this` - Set node identifier
1864
1878
  - `withPrevNodeId(prevNodeId: string): this` - Set previous node identifier
1865
- - `withModelConfig(modelConfig: ModelConfig): this` - Set model configuration (model, temperature, maxTokens, etc.)
1879
+ - `withModelConfig(modelConfig: RunTaskModelConfig): this` - Set the required 3-slot model triplet + tuning
1866
1880
  - `withTemplateRenderOptions(templateRenderOptions: TemplateRenderOptions): this` - Per-task gateway / parser template overrides (v4)
1867
1881
  - `withTemplateTokens(templateTokens: GatewayTemplateTokens): this` - Per-task `templateTokens` overlay
1868
1882
  - `withTimeout(timeoutMs: number): this` - Set timeout
@@ -1884,9 +1898,10 @@ const request = new TaskRequestBuilder()
1884
1898
  .withAiSkillsCorrelation("my-agent", "my-job-type", "my-task-type")
1885
1899
  .withExecutionStrategies([]) // [] = plain MAIN; omit only if you rely on build() defaulting strategies to []
1886
1900
  .withModelConfig({
1887
- model: "gpt-5",
1901
+ preActionModel: "cheap",
1902
+ postActionModel: "cheap",
1903
+ skillModel: "gpt-5",
1888
1904
  temperature: 0.7,
1889
- maxTokens: 2000
1890
1905
  })
1891
1906
  .withJobMemory(jobMemory)
1892
1907
  .withTaskMemory(taskMemory)
@@ -1945,7 +1960,7 @@ interface RunTaskRequest {
1945
1960
  jobMemory?: JobHistory; // History of previous task results
1946
1961
  taskMemory?: TaskHistory; // History of skills executed
1947
1962
  executionMemory?: ExecutionHistory; // History of execution context (execution-level memory)
1948
- modelConfig?: ModelConfig; // Model configuration (model, temperature, maxTokens, etc.)
1963
+ modelConfig: RunTaskModelConfig; // Required 3-slot triplet + optional tuning
1949
1964
  jobId?: string;
1950
1965
 
1951
1966
  // Graph execution context (optional)
@@ -2104,35 +2119,34 @@ Exported type for **`RunTaskRequest.narrix`**. Includes **`datasetId`**, optiona
2104
2119
  import type { NarrixPreProcessorConfig } from "@exellix/ai-tasks";
2105
2120
  ```
2106
2121
 
2107
- ### `ModelConfig`
2122
+ ### `RunTaskModelConfig`
2108
2123
 
2109
- Model configuration for per-request model selection and generation parameters:
2124
+ Required on every `runTask()` three slots plus optional tuning (no `maxTokens`, no legacy `model` / `xynthesisModel`):
2110
2125
 
2111
2126
  ```typescript
2112
- import type { ModelConfig } from "@exellix/ai-tasks";
2113
-
2114
- interface ModelConfig {
2115
- model?: string; // Model identifier (e.g., "gpt-5")
2116
- modelId?: string; // Provider-specific model ID
2117
- provider?: string; // Provider name (e.g., "openai", "anthropic")
2118
- temperature?: number; // 0.0 to 2.0 - Controls randomness
2119
- maxTokens?: number; // Maximum tokens to generate
2120
- topP?: number; // 0.0 to 1.0 - Nucleus sampling
2121
- frequencyPenalty?: number; // -2.0 to 2.0
2122
- presencePenalty?: number; // -2.0 to 2.0
2123
- stop?: string[]; // Stop sequences
2124
- [key: string]: any; // Additional provider-specific parameters
2127
+ import type { RunTaskModelConfig } from "@exellix/ai-tasks";
2128
+
2129
+ interface RunTaskModelConfig {
2130
+ preActionModel: string; // ai-profiles alias (xynthesis PRE)
2131
+ skillModel: string; // alias or concrete id (ai-skills MAIN)
2132
+ postActionModel: string; // ai-profiles alias (xynthesis POST)
2133
+ temperature?: number;
2134
+ topP?: number;
2135
+ reasoningEffort?: OptimixerReasoningEffort;
2136
+ frequencyPenalty?: number;
2137
+ presencePenalty?: number;
2125
2138
  }
2126
2139
  ```
2127
2140
 
2128
- **Example (concrete ids or aliases):**
2141
+ **Example:**
2129
2142
  ```typescript
2130
- const modelConfig = {
2131
- xynthesisModel: "cheap", // or "openai/gpt-5-nano"
2132
- skillModel: "balanced", // or "openai/gpt-5"
2143
+ const modelConfig: RunTaskModelConfig = {
2144
+ preActionModel: "cheap",
2145
+ postActionModel: "cheap",
2146
+ skillModel: "cyber",
2133
2147
  temperature: 0.7,
2134
- maxTokens: 2000,
2135
- topP: 0.9
2148
+ topP: 0.9,
2149
+ reasoningEffort: "medium",
2136
2150
  };
2137
2151
 
2138
2152
  const result = await runTask({
@@ -2143,7 +2157,7 @@ const result = await runTask({
2143
2157
  });
2144
2158
  ```
2145
2159
 
2146
- **Note:** Root `RunTaskRequest.modelConfig` uses canonical slots (`RunTaskModelConfig`: `xynthesisModel` + `skillModel`). Profile aliases are resolved via `@x12i/ai-profiles` at `runTask` entry and on each xynthesis / ai-skills call boundary. See [Model profile aliases](#model-profile-aliases-x12iai-profiles) and [`.docs/ai-tasks-model-profile-aliases-7x.md`](.docs/ai-tasks-model-profile-aliases-7x.md).
2160
+ **Note:** Root `RunTaskRequest.modelConfig` uses canonical slots (`RunTaskModelConfig`: `preActionModel`, `skillModel`, `postActionModel`). Profile aliases are resolved via `@x12i/ai-profiles` v2 at `runTask` entry and on each xynthesis / ai-skills call boundary. See [Model profile aliases](#model-profile-aliases-x12iai-profiles) and [`.docs/ai-tasks-model-profile-aliases-7x.md`](.docs/ai-tasks-model-profile-aliases-7x.md).
2147
2161
 
2148
2162
  ### `JobHistory`, `TaskHistory`, and `ExecutionHistory`
2149
2163
 
@@ -2265,7 +2279,8 @@ const result = await tasks.runTask({
2265
2279
  input: { assetId: "a-123" },
2266
2280
  variables: { orgName: "MyOrganization" },
2267
2281
  modelConfig: {
2268
- xynthesisModel: "openai/gpt-5-nano",
2282
+ preActionModel: "balanced",
2283
+ postActionModel: "balanced",
2269
2284
  skillModel: "openai/gpt-5",
2270
2285
  temperature: 0.7
2271
2286
  }
@@ -2330,11 +2345,12 @@ const result = await tasks.runTask({
2330
2345
  executionType: ExecutionType.DIRECT,
2331
2346
  input: { data: "analyze this" },
2332
2347
  modelConfig: {
2333
- model: "gpt-5",
2348
+ preActionModel: "cheap",
2349
+ postActionModel: "cheap",
2350
+ skillModel: "gpt-5",
2334
2351
  temperature: 0.7,
2335
- maxTokens: 2000,
2336
- topP: 0.9
2337
- }
2352
+ topP: 0.9,
2353
+ },
2338
2354
  });
2339
2355
 
2340
2356
  // Or using the builder
@@ -2346,9 +2362,10 @@ const request = new TaskRequestBuilder()
2346
2362
  .withAiSkillsCorrelation("agent-1", "analysis-job", "analysis-task")
2347
2363
  .withExecutionStrategies([])
2348
2364
  .withModelConfig({
2349
- model: "gpt-5",
2365
+ preActionModel: "cheap",
2366
+ postActionModel: "cheap",
2367
+ skillModel: "gpt-5",
2350
2368
  temperature: 0.5,
2351
- maxTokens: 4000
2352
2369
  })
2353
2370
  .build();
2354
2371
 
@@ -95,8 +95,8 @@ Properties are classified for **default MAIN path** unless noted. Inherited **`R
95
95
  | `inputs` | Optional plural task payload (`string` or object). Dual-root parity with `input`; smart-input **`inputs.*`** resolves here (not `executionMemory.inputs`). |
96
96
  | `variables` | Job/graph template bucket; forwarded as-is on MAIN (see [Canonical input bucket](#canonical-input-bucket)). |
97
97
  | `jobMemory`, `taskMemory` | Enriched and forwarded; see executor payload. |
98
- | `modelConfig` | **Canonical slots:** `xynthesisModel` + `skillModel`. **Aliases accepted on wire** (ai-profiles names + legacy tiers); resolved inside `runTask()` via [`resolveRunTaskModelReferences`](src/utils/resolveRunTaskModelReferences.ts). **`skillModel`** → concrete id for ai-skills MAIN; **`xynthesisModel`** → **alias only** for xynthesis PRE/POST (concrete ids rejected under `@exellix/xynthesis` ≥4). Legacy `model` rejected. |
99
- | `llmCall` | Per-stage override; on MAIN, `llmCall.model` wins over `skillModel`. Stripped before `runSkill` (merged into ai-skills `modelConfig` only at execution boundary). |
98
+ | `modelConfig` | **Canonical slots:** `preActionModel` + `skillModel` + `postActionModel`. **Aliases accepted on wire** (ai-profiles names + legacy tiers); resolved inside `runTask()` via [`resolveRunTaskModelReferences`](src/utils/resolveRunTaskModelReferences.ts). **`skillModel`** → concrete id for ai-skills MAIN; **`preActionModel`** / **`postActionModel`** → **alias only** for xynthesis PRE/POST (concrete ids rejected under `@exellix/xynthesis` ≥4). Legacy `model` and **`xynthesisModel`** rejected. |
99
+ | `llmCall` | **MAIN override only** at root (`llmCall.model` wins over `skillModel` unless it duplicates `preActionModel` while `skillModel` differs — see collision guard). Not copied into PRE synthesis compile; use `preActionModel` or `executionPipeline[pre].config.llmCall` for PRE. Merged into ai-skills `modelConfig` at MAIN execution boundary. |
100
100
  | `timeoutMs` | Forwarded when set (also overlaid from `llmCall.timeoutMs`). |
101
101
  | `coreSkillId` | Maps to `skillId` on `RunSkillRequest` for gateway. |
102
102
  | `graphId`, `nodeId`, `prevNodeId`, `masterSkillId`, `masterSkillActivityId` | Graph / activity telemetry (read in task-sdk & tracing). |
@@ -249,7 +249,7 @@ Legacy path alias: **`variables.*`** ≡ **`jobVariables.*`** (prefer **`jobVari
249
249
  | `taskTypeId` | **`taskTypeId`** |
250
250
  | `executionStrategies` | **`executionStrategies`** (required; use **`[]`** for plain MAIN) |
251
251
  | `executionStrategyCatalogItems` | **`executionStrategyCatalogItems`** |
252
- | `modelConfig` (+ `runtime.nodes[id].modelConfig`) | **`modelConfig`** — `{ xynthesisModel, skillModel }` with **ai-profiles aliases on wire** (resolved in ai-tasks at `runTask` entry; graph-engine pre-resolution optional). See [`.docs/ai-tasks-model-profile-aliases-7x.md`](.docs/ai-tasks-model-profile-aliases-7x.md) |
252
+ | `modelConfig` (+ `runtime.nodes[id].modelConfig`) | **`modelConfig`** — `{ preActionModel, skillModel, postActionModel }` with **ai-profiles aliases on wire** (resolved in ai-tasks at `runTask` entry; graph-engine pre-resolution optional). See [`.docs/ai-tasks-model-profile-aliases-7x.md`](.docs/ai-tasks-model-profile-aliases-7x.md) |
253
253
  | `llmCall`, `timeoutMs` | same |
254
254
  | `narrix`, `narrixMode`, `narrixInput` | **`narrix`**, **`narrixMode`**, **`narrixInput`**, **`narrixScope`** |
255
255
  | `inputStrategyKey` | **`inputStrategyKey`** |
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * Gateway key helpers remain on {@link ./skillCatalogExports.js}.
6
6
  */
7
- export { AI_SKILLS_APP_ID, AI_SKILLS_CATALOG_ID, AI_SKILLS_DESCRIPTOR_VERSION, AI_SKILLS_CATALOG_ITEMS, AI_SKILLS_LLM_IDENTITY_KEY, buildAiSkillsCatalogDescriptor, computeSkillRowStatus, listAiSkillsCatalogItems, catalogSkillKeyToRunSkillKey, catalogItemIdFromSkillKey, fetchSkillTemplatesFromCatalox, extractRunnableTemplateBodiesFromAiSkillsCatalogData, defaultAiSkillsCataloxContext, CataloxSkillNotFoundError, CataloxSkillAlreadyExistsError, CataloxSkillNotRunnableError, initFirebaseAdminFromEnv, createCataloxFromEnv, enrichIdentityWithAiSkillsLlmSnapshot, normalizeForStorage, toPresentationMarkdown, extractTemplateTokensFromTexts, extractTokenNamesFromStrings, getSkillTemplatesForPresentation, updateSkillTemplatesFromPresentation, getSkillTemplateInputs, getSkillTokens, getSkillContent, modifySkillContent, createSubSkill, deleteSubSkill, SKILL_TEMPLATE_ROLES_ORDER, upsertSkillCatalogItem, softDeleteSkillCatalogItem, analyzeSkillRequest, buildSkillRequestAnalysisPacket, formatSkillRequestAnalysisMarkdown, FUNCX_ANALYZE_GATEWAY_INVOKE_REQUEST_ID, FUNCX_MIN_VERSION_FOR_ANALYZE_GATEWAY, runSkillRequestFromFlat, resolveAiEngineIdForRunSkill, SkillExecutionTraceError, includeRawProviderPayload, isTraceExecutionMode, } from "@exellix/ai-skills";
7
+ export { AI_SKILLS_APP_ID, AI_SKILLS_CATALOG_ID, AI_SKILLS_DESCRIPTOR_VERSION, AI_SKILLS_CATALOG_ITEMS, AI_SKILLS_LLM_IDENTITY_KEY, buildAiSkillsCatalogDescriptor, computeSkillRowStatus, listAiSkillsCatalogItems, catalogSkillKeyToRunSkillKey, catalogItemIdFromSkillKey, fetchSkillTemplatesFromCatalox, extractRunnableTemplateBodiesFromAiSkillsCatalogData, defaultAiSkillsCataloxContext, CataloxSkillNotFoundError, CataloxSkillAlreadyExistsError, CataloxSkillNotRunnableError, initFirebaseAdminFromEnv, createCataloxFromEnv, enrichIdentityWithAiSkillsLlmSnapshot, normalizeForStorage, toPresentationMarkdown, extractTemplateTokensFromTexts, extractTokenNamesFromStrings, getSkillTemplatesForPresentation, updateSkillTemplatesFromPresentation, getSkillTemplateInputs, getSkillTokens, getSkillContent, modifySkillContent, createSubSkill, deleteSubSkill, SKILL_TEMPLATE_ROLES_ORDER, upsertSkillCatalogItem, softDeleteSkillCatalogItem, buildSkillRequestAnalysisPacket, formatSkillRequestAnalysisMarkdown, FUNCX_ANALYZE_GATEWAY_INVOKE_REQUEST_ID, FUNCX_MIN_VERSION_FOR_ANALYZE_GATEWAY, runSkillRequestFromFlat, resolveAiEngineIdForRunSkill, SkillExecutionTraceError, includeRawProviderPayload, isTraceExecutionMode, } from "@exellix/ai-skills";
8
8
  export type { AiSkillsCatalogItemSpec, AiSkillsLlmIdentitySlice, CatalogReleaseStatus, AiSkillsPublishedItem, ListAiSkillsCatalogItemsResult, SkillCatalogStatus, FetchSkillTemplatesMode, ExtractedTemplateInputs, RunnableTemplateBodiesFromCatalogData, SkillTemplatesPresentation, SkillTemplatePresentationPatch, UpdateSkillTemplatesFromPresentationOptions, UpsertSkillCatalogItemInput, UpsertSkillCatalogItemOptions, SkillTemplateRole, SkillContentPart, ModifySkillContentResult, CreateSubSkillOverrides, CreateSubSkillInput, CreateSubSkillResult, DeleteSubSkillResult, AnalyzeSkillRequestOptions, AnalyzeSkillRequestResult, BuildSkillRequestAnalysisPacketResult, SkillRequestAnalysisCategory, SkillRequestAnalysisFinding, SkillRequestAnalysisReport, SkillRequestAnalysisSeverity, SkillRequestAnalysisVerdict, AnalyzeGatewayInvokeRequestPacket, RunSkillRequestFlat, GatewayExecutionSummary, OutputContract, } from "@exellix/ai-skills";
9
9
  /** Lower-level execution entrypoints from `@exellix/ai-skills` (same package as {@link ExellixSkillsClient}). */
10
10
  export { SkillExecutor, BaseClient } from "@exellix/ai-skills";
@@ -1 +1 @@
1
- {"version":3,"file":"aiSkillsUpstreamExports.d.ts","sourceRoot":"","sources":["../src/aiSkillsUpstreamExports.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,4BAA4B,EAC5B,uBAAuB,EACvB,0BAA0B,EAC1B,8BAA8B,EAC9B,qBAAqB,EACrB,wBAAwB,EACxB,4BAA4B,EAC5B,yBAAyB,EACzB,8BAA8B,EAC9B,oDAAoD,EACpD,6BAA6B,EAC7B,yBAAyB,EACzB,8BAA8B,EAC9B,4BAA4B,EAC5B,wBAAwB,EACxB,oBAAoB,EACpB,qCAAqC,EACrC,mBAAmB,EACnB,sBAAsB,EACtB,8BAA8B,EAC9B,4BAA4B,EAC5B,gCAAgC,EAChC,oCAAoC,EACpC,sBAAsB,EACtB,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,0BAA0B,EAC1B,sBAAsB,EACtB,0BAA0B,EAC1B,mBAAmB,EACnB,+BAA+B,EAC/B,kCAAkC,EAClC,uCAAuC,EACvC,qCAAqC,EACrC,uBAAuB,EACvB,4BAA4B,EAC5B,wBAAwB,EACxB,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EACV,uBAAuB,EACvB,wBAAwB,EACxB,oBAAoB,EACpB,qBAAqB,EACrB,8BAA8B,EAC9B,kBAAkB,EAClB,uBAAuB,EACvB,uBAAuB,EACvB,qCAAqC,EACrC,0BAA0B,EAC1B,8BAA8B,EAC9B,2CAA2C,EAC3C,2BAA2B,EAC3B,6BAA6B,EAC7B,iBAAiB,EACjB,gBAAgB,EAChB,wBAAwB,EACxB,uBAAuB,EACvB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,0BAA0B,EAC1B,yBAAyB,EACzB,qCAAqC,EACrC,4BAA4B,EAC5B,2BAA2B,EAC3B,0BAA0B,EAC1B,4BAA4B,EAC5B,2BAA2B,EAC3B,iCAAiC,EACjC,mBAAmB,EACnB,uBAAuB,EACvB,cAAc,GACf,MAAM,oBAAoB,CAAC;AAE5B,iHAAiH;AACjH,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAE/D,oDAAoD;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"aiSkillsUpstreamExports.d.ts","sourceRoot":"","sources":["../src/aiSkillsUpstreamExports.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,4BAA4B,EAC5B,uBAAuB,EACvB,0BAA0B,EAC1B,8BAA8B,EAC9B,qBAAqB,EACrB,wBAAwB,EACxB,4BAA4B,EAC5B,yBAAyB,EACzB,8BAA8B,EAC9B,oDAAoD,EACpD,6BAA6B,EAC7B,yBAAyB,EACzB,8BAA8B,EAC9B,4BAA4B,EAC5B,wBAAwB,EACxB,oBAAoB,EACpB,qCAAqC,EACrC,mBAAmB,EACnB,sBAAsB,EACtB,8BAA8B,EAC9B,4BAA4B,EAC5B,gCAAgC,EAChC,oCAAoC,EACpC,sBAAsB,EACtB,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,0BAA0B,EAC1B,sBAAsB,EACtB,0BAA0B,EAC1B,+BAA+B,EAC/B,kCAAkC,EAClC,uCAAuC,EACvC,qCAAqC,EACrC,uBAAuB,EACvB,4BAA4B,EAC5B,wBAAwB,EACxB,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EACV,uBAAuB,EACvB,wBAAwB,EACxB,oBAAoB,EACpB,qBAAqB,EACrB,8BAA8B,EAC9B,kBAAkB,EAClB,uBAAuB,EACvB,uBAAuB,EACvB,qCAAqC,EACrC,0BAA0B,EAC1B,8BAA8B,EAC9B,2CAA2C,EAC3C,2BAA2B,EAC3B,6BAA6B,EAC7B,iBAAiB,EACjB,gBAAgB,EAChB,wBAAwB,EACxB,uBAAuB,EACvB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,0BAA0B,EAC1B,yBAAyB,EACzB,qCAAqC,EACrC,4BAA4B,EAC5B,2BAA2B,EAC3B,0BAA0B,EAC1B,4BAA4B,EAC5B,2BAA2B,EAC3B,iCAAiC,EACjC,mBAAmB,EACnB,uBAAuB,EACvB,cAAc,GACf,MAAM,oBAAoB,CAAC;AAE5B,iHAAiH;AACjH,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAE/D,oDAAoD;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * Gateway key helpers remain on {@link ./skillCatalogExports.js}.
6
6
  */
7
- export { AI_SKILLS_APP_ID, AI_SKILLS_CATALOG_ID, AI_SKILLS_DESCRIPTOR_VERSION, AI_SKILLS_CATALOG_ITEMS, AI_SKILLS_LLM_IDENTITY_KEY, buildAiSkillsCatalogDescriptor, computeSkillRowStatus, listAiSkillsCatalogItems, catalogSkillKeyToRunSkillKey, catalogItemIdFromSkillKey, fetchSkillTemplatesFromCatalox, extractRunnableTemplateBodiesFromAiSkillsCatalogData, defaultAiSkillsCataloxContext, CataloxSkillNotFoundError, CataloxSkillAlreadyExistsError, CataloxSkillNotRunnableError, initFirebaseAdminFromEnv, createCataloxFromEnv, enrichIdentityWithAiSkillsLlmSnapshot, normalizeForStorage, toPresentationMarkdown, extractTemplateTokensFromTexts, extractTokenNamesFromStrings, getSkillTemplatesForPresentation, updateSkillTemplatesFromPresentation, getSkillTemplateInputs, getSkillTokens, getSkillContent, modifySkillContent, createSubSkill, deleteSubSkill, SKILL_TEMPLATE_ROLES_ORDER, upsertSkillCatalogItem, softDeleteSkillCatalogItem, analyzeSkillRequest, buildSkillRequestAnalysisPacket, formatSkillRequestAnalysisMarkdown, FUNCX_ANALYZE_GATEWAY_INVOKE_REQUEST_ID, FUNCX_MIN_VERSION_FOR_ANALYZE_GATEWAY, runSkillRequestFromFlat, resolveAiEngineIdForRunSkill, SkillExecutionTraceError, includeRawProviderPayload, isTraceExecutionMode, } from "@exellix/ai-skills";
7
+ export { AI_SKILLS_APP_ID, AI_SKILLS_CATALOG_ID, AI_SKILLS_DESCRIPTOR_VERSION, AI_SKILLS_CATALOG_ITEMS, AI_SKILLS_LLM_IDENTITY_KEY, buildAiSkillsCatalogDescriptor, computeSkillRowStatus, listAiSkillsCatalogItems, catalogSkillKeyToRunSkillKey, catalogItemIdFromSkillKey, fetchSkillTemplatesFromCatalox, extractRunnableTemplateBodiesFromAiSkillsCatalogData, defaultAiSkillsCataloxContext, CataloxSkillNotFoundError, CataloxSkillAlreadyExistsError, CataloxSkillNotRunnableError, initFirebaseAdminFromEnv, createCataloxFromEnv, enrichIdentityWithAiSkillsLlmSnapshot, normalizeForStorage, toPresentationMarkdown, extractTemplateTokensFromTexts, extractTokenNamesFromStrings, getSkillTemplatesForPresentation, updateSkillTemplatesFromPresentation, getSkillTemplateInputs, getSkillTokens, getSkillContent, modifySkillContent, createSubSkill, deleteSubSkill, SKILL_TEMPLATE_ROLES_ORDER, upsertSkillCatalogItem, softDeleteSkillCatalogItem, buildSkillRequestAnalysisPacket, formatSkillRequestAnalysisMarkdown, FUNCX_ANALYZE_GATEWAY_INVOKE_REQUEST_ID, FUNCX_MIN_VERSION_FOR_ANALYZE_GATEWAY, runSkillRequestFromFlat, resolveAiEngineIdForRunSkill, SkillExecutionTraceError, includeRawProviderPayload, isTraceExecutionMode, } from "@exellix/ai-skills";
8
8
  /** Lower-level execution entrypoints from `@exellix/ai-skills` (same package as {@link ExellixSkillsClient}). */
9
9
  export { SkillExecutor, BaseClient } from "@exellix/ai-skills";
10
10
  /** Markdown helper for gateway context payloads. */
@@ -1 +1 @@
1
- {"version":3,"file":"aiSkillsUpstreamExports.js","sourceRoot":"","sources":["../src/aiSkillsUpstreamExports.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,4BAA4B,EAC5B,uBAAuB,EACvB,0BAA0B,EAC1B,8BAA8B,EAC9B,qBAAqB,EACrB,wBAAwB,EACxB,4BAA4B,EAC5B,yBAAyB,EACzB,8BAA8B,EAC9B,oDAAoD,EACpD,6BAA6B,EAC7B,yBAAyB,EACzB,8BAA8B,EAC9B,4BAA4B,EAC5B,wBAAwB,EACxB,oBAAoB,EACpB,qCAAqC,EACrC,mBAAmB,EACnB,sBAAsB,EACtB,8BAA8B,EAC9B,4BAA4B,EAC5B,gCAAgC,EAChC,oCAAoC,EACpC,sBAAsB,EACtB,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,0BAA0B,EAC1B,sBAAsB,EACtB,0BAA0B,EAC1B,mBAAmB,EACnB,+BAA+B,EAC/B,kCAAkC,EAClC,uCAAuC,EACvC,qCAAqC,EACrC,uBAAuB,EACvB,4BAA4B,EAC5B,wBAAwB,EACxB,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAsC5B,iHAAiH;AACjH,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAE/D,oDAAoD;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"aiSkillsUpstreamExports.js","sourceRoot":"","sources":["../src/aiSkillsUpstreamExports.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,4BAA4B,EAC5B,uBAAuB,EACvB,0BAA0B,EAC1B,8BAA8B,EAC9B,qBAAqB,EACrB,wBAAwB,EACxB,4BAA4B,EAC5B,yBAAyB,EACzB,8BAA8B,EAC9B,oDAAoD,EACpD,6BAA6B,EAC7B,yBAAyB,EACzB,8BAA8B,EAC9B,4BAA4B,EAC5B,wBAAwB,EACxB,oBAAoB,EACpB,qCAAqC,EACrC,mBAAmB,EACnB,sBAAsB,EACtB,8BAA8B,EAC9B,4BAA4B,EAC5B,gCAAgC,EAChC,oCAAoC,EACpC,sBAAsB,EACtB,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,0BAA0B,EAC1B,sBAAsB,EACtB,0BAA0B,EAC1B,+BAA+B,EAC/B,kCAAkC,EAClC,uCAAuC,EACvC,qCAAqC,EACrC,uBAAuB,EACvB,4BAA4B,EAC5B,wBAAwB,EACxB,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAsC5B,iHAAiH;AACjH,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAE/D,oDAAoD;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -19,8 +19,8 @@ export type AnalyzeRunTaskRequestResult = AnalyzeSkillRequestResult & {
19
19
  };
20
20
  };
21
21
  /**
22
- * Preflight analysis for a {@link RunTaskRequest}: forwards to `@exellix/ai-skills`
23
- * {@link analyzeSkillRequest} on the {@link pickRunSkillRequestFields} slice and optionally
22
+ * Preflight analysis for a {@link RunTaskRequest}: forwards to
23
+ * {@link ExellixSkillsClient.analyzeSkillRequest} on the {@link pickRunSkillRequestFields} slice and optionally
24
24
  * merges ai-tasks {@link validateRunTaskConfig} findings.
25
25
  *
26
26
  * Does **not** invoke `runTask`, xynthesis, or the gateway skill executor.
@@ -1 +1 @@
1
- {"version":3,"file":"analyzeRunTaskRequest.d.ts","sourceRoot":"","sources":["../../src/analysis/analyzeRunTaskRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAEL,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,EAE/B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAG7D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAErE,MAAM,MAAM,4BAA4B,GAAG,0BAA0B,GAAG;IACtE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,8BAA8B,CAAC,EAAE,OAAO,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG,yBAAyB,GAAG;IACpE,kGAAkG;IAClG,uBAAuB,CAAC,EAAE;QACxB,EAAE,EAAE,OAAO,CAAC;QACZ,MAAM,EAAE,sBAAsB,EAAE,CAAC;KAClC,CAAC;CACH,CAAC;AAgCF;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,cAAc,EACvB,OAAO,CAAC,EAAE,4BAA4B,GACrC,OAAO,CAAC,2BAA2B,CAAC,CAoDtC"}
1
+ {"version":3,"file":"analyzeRunTaskRequest.d.ts","sourceRoot":"","sources":["../../src/analysis/analyzeRunTaskRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAEL,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,EAE/B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAG7D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAErE,MAAM,MAAM,4BAA4B,GAAG,0BAA0B,GAAG;IACtE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,8BAA8B,CAAC,EAAE,OAAO,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG,yBAAyB,GAAG;IACpE,kGAAkG;IAClG,uBAAuB,CAAC,EAAE;QACxB,EAAE,EAAE,OAAO,CAAC;QACZ,MAAM,EAAE,sBAAsB,EAAE,CAAC;KAClC,CAAC;CACH,CAAC;AAgCF;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,cAAc,EACvB,OAAO,CAAC,EAAE,4BAA4B,GACrC,OAAO,CAAC,2BAA2B,CAAC,CA0DtC"}
@@ -1,4 +1,4 @@
1
- import { analyzeSkillRequest, } from "@exellix/ai-skills";
1
+ import { ExellixSkillsClient, } from "@exellix/ai-skills";
2
2
  import { pickRunSkillRequestFields } from "../utils/bridgeRunSkillGatewayMemory.js";
3
3
  import { validateRunTaskConfig } from "../validation/validateRunTaskConfig.js";
4
4
  function categoryForAiTasksIssue(issue) {
@@ -33,8 +33,8 @@ function mergeVerdict(a, b) {
33
33
  return "ok";
34
34
  }
35
35
  /**
36
- * Preflight analysis for a {@link RunTaskRequest}: forwards to `@exellix/ai-skills`
37
- * {@link analyzeSkillRequest} on the {@link pickRunSkillRequestFields} slice and optionally
36
+ * Preflight analysis for a {@link RunTaskRequest}: forwards to
37
+ * {@link ExellixSkillsClient.analyzeSkillRequest} on the {@link pickRunSkillRequestFields} slice and optionally
38
38
  * merges ai-tasks {@link validateRunTaskConfig} findings.
39
39
  *
40
40
  * Does **not** invoke `runTask`, xynthesis, or the gateway skill executor.
@@ -48,7 +48,14 @@ export async function analyzeRunTaskRequest(catalox, request, options) {
48
48
  aiTasksConfigValidation = { ok: v.ok, issues: v.issues };
49
49
  extraFindings.push(...v.issues.map(aiTasksIssueToFinding));
50
50
  }
51
- const skillResult = await analyzeSkillRequest(catalox, skillRequest, options);
51
+ const skillsClient = new ExellixSkillsClient({ catalox, autoLoadDotenv: false });
52
+ let skillResult;
53
+ try {
54
+ skillResult = await skillsClient.analyzeSkillRequest(skillRequest, options);
55
+ }
56
+ finally {
57
+ await skillsClient.shutdown().catch(() => undefined);
58
+ }
52
59
  if (extraFindings.length === 0) {
53
60
  return { ...skillResult, aiTasksConfigValidation };
54
61
  }
@@ -1 +1 @@
1
- {"version":3,"file":"analyzeRunTaskRequest.js","sourceRoot":"","sources":["../../src/analysis/analyzeRunTaskRequest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analyzeRunTaskRequest.js","sourceRoot":"","sources":["../../src/analysis/analyzeRunTaskRequest.ts"],"names":[],"mappings":"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"}
@@ -193,18 +193,19 @@ export declare class TaskRequestBuilder {
193
193
  */
194
194
  withPrevNodeId(prevNodeId: string): this;
195
195
  /**
196
- * Set canonical model slots for this task (graph-engine 7.x resolved pair).
196
+ * Set canonical model slots for this task (graph-engine 7.x+ triplet).
197
197
  *
198
- * @param modelConfig `{ xynthesisModel, skillModel }` plus optional tuning fields.
198
+ * @param modelConfig `{ preActionModel, skillModel, postActionModel }` plus optional tuning fields.
199
199
  * @throws if legacy `model` is present on the config object.
200
200
  */
201
201
  withModelConfig(modelConfig: RunTaskModelConfig): this;
202
202
  /**
203
- * Set MAIN skill model (concrete id or alias). xynthesisModel defaults to `balanced` for PRE/xynthesis paths.
203
+ * Set all three model slots (all required no built-in defaults).
204
204
  */
205
- withModel(skillModel: string, xynthesisModel?: string): this;
205
+ withModel(skillModel: string, preActionModel: string, postActionModel: string): this;
206
206
  withSkillModel(skillModel: string): this;
207
- withXynthesisModel(xynthesisModel: string): this;
207
+ withPreActionModel(preActionModel: string): this;
208
+ withPostActionModel(postActionModel: string): this;
208
209
  /**
209
210
  * Set the **main-skill** LLM call configuration (`RunTaskRequest.llmCall`).
210
211
  *
@@ -212,14 +213,10 @@ export declare class TaskRequestBuilder {
212
213
  * (PRE synthesis, AI scoping, MAIN skill, POST audit/polish, utilities). It supports:
213
214
  *
214
215
  * - `model` — provider/model id (overrides `modelConfig.skillModel` for MAIN).
215
- * - `maxTokensCap` **hard ceiling** for completion tokens; passed to `xynthesis.resolveMaxTokens`
216
- * so the dynamic budget never exceeds this value. Use this instead of a bare
217
- * `maxTokens` when you want to keep auto-sizing on but bound it.
218
- * - `maxTokens` — alias for `maxTokensCap` (kept for ergonomic parity with `ModelConfig`).
216
+ * - `reasoningEffort` Optimixer reasoning depth (ai-skills / xynthesis).
219
217
  * - `temperature` — sampling temperature.
220
218
  * - `topP` — nucleus-sampling cutoff.
221
- * - `outputExpectation` — caller-supplied size/density hint forwarded to `resolveMaxTokens`
222
- * (overrides per-action `ACTION_OUTPUT_DEFAULTS` from xynthesis routing JSON).
219
+ * - `outputExpectation` — output size/density intent for Optimixer (xynthesis-backed calls).
223
220
  * - `maxOutputLength` — character cap applied after the LLM returns (post-truncation, not a token cap).
224
221
  * - `timeoutMs` — per-call timeout for the underlying invoke.
225
222
  *
@@ -229,7 +226,7 @@ export declare class TaskRequestBuilder {
229
226
  * ```typescript
230
227
  * builder.withLlmCall({
231
228
  * model: "gpt-5-mini",
232
- * maxTokensCap: 4096,
229
+ * reasoningEffort: "medium",
233
230
  * temperature: 0.4,
234
231
  * outputExpectation: { size: { kind: "absolute", maxWords: 600 }, density: "default" },
235
232
  * })
@@ -1 +1 @@
1
- {"version":3,"file":"task-request-builder.d.ts","sourceRoot":"","sources":["../../src/builders/task-request-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task-request-builder.d.ts","sourceRoot":"","sources":["../../src/builders/task-request-builder.ts"],"names":[],"mappings":"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"}