@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.
- package/CHANGELOG.md +26 -0
- package/README.md +92 -75
- package/RUNTASK_REQUEST.md +3 -3
- package/dist/aiSkillsUpstreamExports.d.ts +1 -1
- package/dist/aiSkillsUpstreamExports.d.ts.map +1 -1
- package/dist/aiSkillsUpstreamExports.js +1 -1
- package/dist/aiSkillsUpstreamExports.js.map +1 -1
- package/dist/analysis/analyzeRunTaskRequest.d.ts +2 -2
- package/dist/analysis/analyzeRunTaskRequest.d.ts.map +1 -1
- package/dist/analysis/analyzeRunTaskRequest.js +11 -4
- package/dist/analysis/analyzeRunTaskRequest.js.map +1 -1
- package/dist/builders/task-request-builder.d.ts +9 -12
- package/dist/builders/task-request-builder.d.ts.map +1 -1
- package/dist/builders/task-request-builder.js +22 -15
- package/dist/builders/task-request-builder.js.map +1 -1
- package/dist/compile/compileTaskConfiguration.d.ts.map +1 -1
- package/dist/compile/compileTaskConfiguration.js +4 -3
- package/dist/compile/compileTaskConfiguration.js.map +1 -1
- package/dist/core/task-sdk.d.ts.map +1 -1
- package/dist/core/task-sdk.js +11 -11
- package/dist/core/task-sdk.js.map +1 -1
- package/dist/errors/modelConfigRequiredError.d.ts +9 -0
- package/dist/errors/modelConfigRequiredError.d.ts.map +1 -0
- package/dist/errors/modelConfigRequiredError.js +20 -0
- package/dist/errors/modelConfigRequiredError.js.map +1 -0
- package/dist/errors/runTaskExecutionError.d.ts +2 -1
- package/dist/errors/runTaskExecutionError.d.ts.map +1 -1
- package/dist/errors/runTaskExecutionError.js +1 -1
- package/dist/errors/runTaskExecutionError.js.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/internal/resolveLlmCallForXynthesis.d.ts +17 -40
- package/dist/internal/resolveLlmCallForXynthesis.d.ts.map +1 -1
- package/dist/internal/resolveLlmCallForXynthesis.js +15 -55
- package/dist/internal/resolveLlmCallForXynthesis.js.map +1 -1
- package/dist/internal/runPostStepLlmCall.d.ts +3 -17
- package/dist/internal/runPostStepLlmCall.d.ts.map +1 -1
- package/dist/internal/runPostStepLlmCall.js +31 -30
- package/dist/internal/runPostStepLlmCall.js.map +1 -1
- package/dist/invocation/defaultAiProfilesResolveOptions.d.ts +27 -0
- package/dist/invocation/defaultAiProfilesResolveOptions.d.ts.map +1 -0
- package/dist/invocation/defaultAiProfilesResolveOptions.js +44 -0
- package/dist/invocation/defaultAiProfilesResolveOptions.js.map +1 -0
- package/dist/invocation/resolveProfileInvocationRouting.d.ts +4 -2
- package/dist/invocation/resolveProfileInvocationRouting.d.ts.map +1 -1
- package/dist/invocation/resolveProfileInvocationRouting.js +20 -19
- package/dist/invocation/resolveProfileInvocationRouting.js.map +1 -1
- package/dist/logxer/packageLogxers.d.ts +0 -1
- package/dist/logxer/packageLogxers.d.ts.map +1 -1
- package/dist/observability/classifyRunTaskFailure.js +2 -2
- package/dist/observability/classifyRunTaskFailure.js.map +1 -1
- package/dist/observability/logLlmProviderInvocation.d.ts +1 -2
- package/dist/observability/logLlmProviderInvocation.d.ts.map +1 -1
- package/dist/observability/logLlmProviderInvocation.js +3 -3
- package/dist/observability/logLlmProviderInvocation.js.map +1 -1
- package/dist/packaged-tasks-client.js +1 -1
- package/dist/packaged-tasks-client.js.map +1 -1
- package/dist/post-steps/audit/runAudit.d.ts.map +1 -1
- package/dist/post-steps/audit/runAudit.js +6 -16
- package/dist/post-steps/audit/runAudit.js.map +1 -1
- package/dist/post-steps/polish/runPolish.d.ts +2 -0
- package/dist/post-steps/polish/runPolish.d.ts.map +1 -1
- package/dist/post-steps/polish/runPolish.js +5 -9
- package/dist/post-steps/polish/runPolish.js.map +1 -1
- package/dist/post-steps/resolvePostStepConfig.d.ts +4 -35
- package/dist/post-steps/resolvePostStepConfig.d.ts.map +1 -1
- package/dist/post-steps/resolvePostStepConfig.js +9 -36
- package/dist/post-steps/resolvePostStepConfig.js.map +1 -1
- package/dist/strategies/direct-execution-strategy.d.ts.map +1 -1
- package/dist/strategies/direct-execution-strategy.js +6 -3
- package/dist/strategies/direct-execution-strategy.js.map +1 -1
- package/dist/synthesis/runStructuredSynthesisRobust.d.ts +0 -1
- package/dist/synthesis/runStructuredSynthesisRobust.d.ts.map +1 -1
- package/dist/synthesis/runStructuredSynthesisRobust.js +20 -58
- package/dist/synthesis/runStructuredSynthesisRobust.js.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/llmCall.d.ts +18 -47
- package/dist/types/llmCall.d.ts.map +1 -1
- package/dist/types/llmCall.js +1 -10
- package/dist/types/llmCall.js.map +1 -1
- package/dist/types/model-config.d.ts +22 -9
- package/dist/types/model-config.d.ts.map +1 -1
- package/dist/types/model-config.js +62 -13
- package/dist/types/model-config.js.map +1 -1
- package/dist/types/task-types.d.ts +16 -12
- package/dist/types/task-types.d.ts.map +1 -1
- package/dist/types/task-types.js.map +1 -1
- package/dist/utilities/runUtility.d.ts.map +1 -1
- package/dist/utilities/runUtility.js +8 -11
- package/dist/utilities/runUtility.js.map +1 -1
- package/dist/utils/aiProfileModelFormat.d.ts +13 -5
- package/dist/utils/aiProfileModelFormat.d.ts.map +1 -1
- package/dist/utils/aiProfileModelFormat.js +40 -85
- package/dist/utils/aiProfileModelFormat.js.map +1 -1
- package/dist/utils/concreteModelId.d.ts.map +1 -1
- package/dist/utils/concreteModelId.js +4 -2
- package/dist/utils/concreteModelId.js.map +1 -1
- package/dist/utils/resolveAiProfileModel.d.ts +6 -3
- package/dist/utils/resolveAiProfileModel.d.ts.map +1 -1
- package/dist/utils/resolveAiProfileModel.js +4 -7
- package/dist/utils/resolveAiProfileModel.js.map +1 -1
- package/dist/utils/resolveRunTaskModelReferences.d.ts +1 -1
- package/dist/utils/resolveRunTaskModelReferences.d.ts.map +1 -1
- package/dist/utils/resolveRunTaskModelReferences.js +8 -3
- package/dist/utils/resolveRunTaskModelReferences.js.map +1 -1
- package/dist/utils/routeModelConfigSlots.d.ts +1 -1
- package/dist/utils/routeModelConfigSlots.d.ts.map +1 -1
- package/dist/utils/routeModelConfigSlots.js +1 -1
- package/dist/utils/routeModelConfigSlots.js.map +1 -1
- package/dist/validation/helpers.d.ts +5 -2
- package/dist/validation/helpers.d.ts.map +1 -1
- package/dist/validation/helpers.js +65 -22
- package/dist/validation/helpers.js.map +1 -1
- package/dist/validation/types.d.ts +1 -1
- package/dist/validation/types.d.ts.map +1 -1
- package/dist/validation/validateRunTaskConfig.d.ts.map +1 -1
- package/dist/validation/validateRunTaskConfig.js +2 -1
- package/dist/validation/validateRunTaskConfig.js.map +1 -1
- package/documenations/upstream-feature-requests/README.md +22 -0
- package/documenations/upstream-feature-requests/ai-skills-orchestrator-invoke-contract-5.9.md +150 -0
- package/documenations/upstream-feature-requests/ai-tasks-wrap-up-after-upstream.md +126 -0
- package/documenations/upstream-feature-requests/xynthesis-orchestrator-invoke-contract-4.2.md +184 -0
- 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
|
-
|
|
328
|
+
preActionModel: "cheap",
|
|
329
|
+
postActionModel: "cheap",
|
|
317
330
|
skillModel: "openai/gpt-5",
|
|
318
331
|
temperature: 0.7,
|
|
319
|
-
|
|
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`, `
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
1079
|
+
**Rejected on the wire (validation):** `modelConfig.maxTokens`, `llmCall.maxTokens`, `llmCall.maxTokensCap`, deprecated `xynthesisModel`, root `modelConfig.model`.
|
|
1075
1080
|
|
|
1076
|
-
|
|
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) | `
|
|
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
|
-
- **
|
|
1092
|
-
- **
|
|
1093
|
-
- **
|
|
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
|
-
|
|
1107
|
-
|
|
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`. **`
|
|
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
|
-
- **
|
|
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
|
|
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;
|
|
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
|
-
|
|
1142
|
+
reasoningEffort?: OptimixerReasoningEffort; // overrides Catalox default when set
|
|
1143
|
+
maxOutputLength?: number; // post-call character truncation
|
|
1137
1144
|
timeoutMs?: number;
|
|
1138
|
-
outputExpectation?: OutputExpectation; //
|
|
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,
|
|
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;
|
|
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: "
|
|
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:
|
|
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
|
-
|
|
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
|
|
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
|
-
### `
|
|
2122
|
+
### `RunTaskModelConfig`
|
|
2108
2123
|
|
|
2109
|
-
|
|
2124
|
+
Required on every `runTask()` — three slots plus optional tuning (no `maxTokens`, no legacy `model` / `xynthesisModel`):
|
|
2110
2125
|
|
|
2111
2126
|
```typescript
|
|
2112
|
-
import type {
|
|
2113
|
-
|
|
2114
|
-
interface
|
|
2115
|
-
|
|
2116
|
-
|
|
2117
|
-
|
|
2118
|
-
temperature?: number;
|
|
2119
|
-
|
|
2120
|
-
|
|
2121
|
-
frequencyPenalty?: number;
|
|
2122
|
-
presencePenalty?: number;
|
|
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
|
|
2141
|
+
**Example:**
|
|
2129
2142
|
```typescript
|
|
2130
|
-
const modelConfig = {
|
|
2131
|
-
|
|
2132
|
-
|
|
2143
|
+
const modelConfig: RunTaskModelConfig = {
|
|
2144
|
+
preActionModel: "cheap",
|
|
2145
|
+
postActionModel: "cheap",
|
|
2146
|
+
skillModel: "cyber",
|
|
2133
2147
|
temperature: 0.7,
|
|
2134
|
-
|
|
2135
|
-
|
|
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`: `
|
|
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
|
-
|
|
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
|
-
|
|
2348
|
+
preActionModel: "cheap",
|
|
2349
|
+
postActionModel: "cheap",
|
|
2350
|
+
skillModel: "gpt-5",
|
|
2334
2351
|
temperature: 0.7,
|
|
2335
|
-
|
|
2336
|
-
|
|
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
|
-
|
|
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
|
|
package/RUNTASK_REQUEST.md
CHANGED
|
@@ -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:** `
|
|
99
|
-
| `llmCall` |
|
|
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`** — `{
|
|
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,
|
|
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
|
|
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,
|
|
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
|
|
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
|
|
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,
|
|
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 {
|
|
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
|
|
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
|
|
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":"AAEA,OAAO,EACL,mBAAmB,GAIpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AACpF,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAoB/E,SAAS,uBAAuB,CAAC,KAA6B;IAC5D,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;IAC3B,IAAI,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC;QAAE,OAAO,YAAY,CAAC;IACpD,IAAI,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QAAE,OAAO,UAAU,CAAC;IACvD,IAAI,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QAAE,OAAO,iBAAiB,CAAC;IAC5D,IAAI,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;QAAE,OAAO,aAAa,CAAC;IACxG,IAAI,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC;QAAE,OAAO,SAAS,CAAC;IACzG,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,qBAAqB,CAAC,KAA6B;IAC1D,OAAO;QACL,EAAE,EAAE,YAAY,KAAK,CAAC,IAAI,EAAE;QAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,QAAQ,EAAE,uBAAuB,CAAC,KAAK,CAAC;QACxC,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,UAAU,EAAE,iEAAiE;KAC9E,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CACnB,CAAuC,EACvC,CAA2C;IAE3C,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IACtD,IAAI,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,UAAU;QAAE,OAAO,UAAU,CAAC;IAC5D,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,OAAgB,EAChB,OAAuB,EACvB,OAAsC;IAEtC,MAAM,YAAY,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;IAExD,IAAI,uBAA+E,CAAC;IACpF,MAAM,aAAa,GAAkC,EAAE,CAAC;IAExD,IAAI,OAAO,EAAE,8BAA8B,KAAK,KAAK,EAAE,CAAC;QACtD,MAAM,CAAC,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;QACzC,uBAAuB,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;QACzD,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,
|
|
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
|
|
196
|
+
* Set canonical model slots for this task (graph-engine 7.x+ triplet).
|
|
197
197
|
*
|
|
198
|
-
* @param modelConfig `{
|
|
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
|
|
203
|
+
* Set all three model slots (all required — no built-in defaults).
|
|
204
204
|
*/
|
|
205
|
-
withModel(skillModel: string,
|
|
205
|
+
withModel(skillModel: string, preActionModel: string, postActionModel: string): this;
|
|
206
206
|
withSkillModel(skillModel: string): this;
|
|
207
|
-
|
|
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
|
-
* - `
|
|
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` —
|
|
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
|
-
*
|
|
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":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,oBAAoB,EACpB,aAAa,EACb,eAAe,EACf,aAAa,EACb,WAAW,EACX,YAAY,EACZ,qBAAqB,EACrB,qBAAqB,EACrB,aAAa,EACb,2BAA2B,EAC3B,uBAAuB,EACvB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAGnE;;;;;;GAMG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,OAAO,CAA0B;;IAMzC;;;;;OAKG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKpC;;OAEG;IACH,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAOrF;;;;;OAKG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI;IAKpD;;;;;OAKG;IACH,aAAa,CAAC,YAAY,EAAE,oBAAoB,EAAE,GAAG,IAAI;IAKzD;;;;;OAKG;IACH,qBAAqB,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,IAAI;IAKnD;;OAEG;IACH,uBAAuB,CAAC,mBAAmB,EAAE,2BAA2B,EAAE,GAAG,IAAI;IAKjF;;;;;;;OAOG;IACH,6BAA6B,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI;IA2B7E;;OAEG;IACH,iBAAiB,CAAC,aAAa,EAAE,aAAa,GAAG,IAAI;IAgBrD;;;;;;OAMG;IACH,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAgB5C;;;;;;OAMG;IACH,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAgB9C;;;;;OAKG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAKnD;;OAEG;IACH,cAAc,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAKzD;;;;;OAKG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI;IAKxD;;;;;OAKG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAKnD;;;;;OAKG;IACH,aAAa,CAAC,SAAS,EAAE,GAAG,GAAG,IAAI;IAKnC;;;;;OAKG;IACH,cAAc,CAAC,UAAU,EAAE,GAAG,GAAG,IAAI;IAKrC;;;;;OAKG;IACH,mBAAmB,CAAC,eAAe,EAAE,GAAG,GAAG,IAAI;IAK/C;;;;;OAKG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK9B;;;;;OAKG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAKlC,2FAA2F;IAC3F,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAKtC,2FAA2F;IAC3F,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAKxC;;;;;OAKG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAKpC;;;;;;;OAOG;IACH,YAAY,CACV,WAAW,CAAC,EAAE,MAAM,EACpB,aAAa,CAAC,EAAE,MAAM,EACtB,qBAAqB,CAAC,EAAE,MAAM,GAC7B,IAAI;IAOP;;;;;;;;;;;OAWG;IACH,gBAAgB,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI;IAO9E;;;;;OAKG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAKlC;;;;;OAKG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAKhC;;;;;;;;OAQG;IACH,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAKxC;;;;;OAKG;IACH,eAAe,CAAC,WAAW,EAAE,kBAAkB,GAAG,IAAI;IAetD;;OAEG;IACH,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,IAAI;IAQpF,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAQxC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAQhD,mBAAmB,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI;IAQlD;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAKzC;;;;;;;;;;;OAWG;IACH,oBAAoB,CAAC,IAAI,EAAE;QACzB,OAAO,CAAC,EAAE,aAAa,CAAC;QACxB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,GAAG,IAAI;IAKR;;;OAGG;IACH,oBAAoB,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAgBlD;;;;;OAKG;IACH,gBAAgB,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,IAAI;IAqB5E;;;OAGG;IACH,iBAAiB,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAW/C;;;OAGG;IACH,yBAAyB,CAAC,qBAAqB,EAAE,qBAAqB,GAAG,IAAI;IAK7E;;OAEG;IACH,kBAAkB,CAAC,cAAc,EAAE,qBAAqB,GAAG,IAAI;IAK/D,4EAA4E;IAC5E,eAAe,CAAC,WAAW,EAAE,iBAAiB,GAAG,IAAI;IAKrD,iHAAiH;IACjH,cAAc,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAK/C,sHAAsH;IACtH,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IAO1C,2HAA2H;IAC3H,2BAA2B,CAAC,IAAI,EAAE,uBAAuB,GAAG,IAAI;IAKhE,4CAA4C;IAC5C,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IASrD,6CAA6C;IAC7C,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAStD,kDAAkD;IAClD,wBAAwB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAS3D;;;;OAIG;IACH,KAAK,IAAI,cAAc;CAsBxB"}
|