@bastani/atomic 0.9.26 → 0.9.27-alpha.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 +18 -0
- package/dist/builtin/intercom/CHANGELOG.md +6 -0
- package/dist/builtin/intercom/index.bundle.mjs +21 -6
- package/dist/builtin/intercom/package.json +1 -1
- package/dist/builtin/mcp/package.json +1 -1
- package/dist/builtin/subagents/CHANGELOG.md +8 -0
- package/dist/builtin/subagents/package.json +1 -1
- package/dist/builtin/subagents/src/extension/index.bundle.mjs +693 -642
- package/dist/builtin/web-access/package.json +1 -1
- package/dist/builtin/workflows/CHANGELOG.md +8 -0
- package/dist/builtin/workflows/package.json +1 -1
- package/dist/builtin/workflows/src/extension/index.bundle.mjs +71 -20
- package/dist/builtin/workflows/src/index.js +31 -10
- package/dist/codemode-worker.js +3309 -0
- package/dist/config.d.ts +7 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +38 -12
- package/dist/config.js.map +1 -1
- package/dist/core/agent-session-custom-message-commit.d.ts.map +1 -1
- package/dist/core/agent-session-custom-message-commit.js +6 -0
- package/dist/core/agent-session-custom-message-commit.js.map +1 -1
- package/dist/core/agent-session-extension-bindings.d.ts.map +1 -1
- package/dist/core/agent-session-extension-bindings.js +22 -6
- package/dist/core/agent-session-extension-bindings.js.map +1 -1
- package/dist/core/agent-session-services.d.ts.map +1 -1
- package/dist/core/agent-session-services.js +3 -1
- package/dist/core/agent-session-services.js.map +1 -1
- package/dist/core/agent-session-tasks.js +9 -4
- package/dist/core/agent-session-tasks.js.map +1 -1
- package/dist/core/auth-storage-backends.d.ts +3 -0
- package/dist/core/auth-storage-backends.d.ts.map +1 -1
- package/dist/core/auth-storage-backends.js +45 -1
- package/dist/core/auth-storage-backends.js.map +1 -1
- package/dist/core/auth-storage.d.ts.map +1 -1
- package/dist/core/auth-storage.js +14 -0
- package/dist/core/auth-storage.js.map +1 -1
- package/dist/core/extensions/provider-types.d.ts +3 -2
- package/dist/core/extensions/provider-types.d.ts.map +1 -1
- package/dist/core/extensions/provider-types.js.map +1 -1
- package/dist/core/extensions/runner-events.d.ts.map +1 -1
- package/dist/core/extensions/runner-events.js +10 -1
- package/dist/core/extensions/runner-events.js.map +1 -1
- package/dist/extensions/codemode/execute.d.ts.map +1 -1
- package/dist/extensions/codemode/execute.js +40 -6
- package/dist/extensions/codemode/execute.js.map +1 -1
- package/dist/extensions/codemode/tool.d.ts.map +1 -1
- package/dist/extensions/codemode/tool.js +1 -0
- package/dist/extensions/codemode/tool.js.map +1 -1
- package/dist/extensions/mcp/tools.d.ts.map +1 -1
- package/dist/extensions/mcp/tools.js +4 -9
- package/dist/extensions/mcp/tools.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/modes/interactive/interactive-agent-events.js +21 -0
- package/dist/modes/interactive/interactive-agent-events.js.map +1 -1
- package/dist/modes/interactive/interactive-mode-base.d.ts +1 -0
- package/dist/modes/interactive/interactive-mode-base.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode-base.js +1 -0
- package/dist/modes/interactive/interactive-mode-base.js.map +1 -1
- package/dist/modes/interactive/interactive-mode-helpers.js +1 -1
- package/dist/modes/interactive/interactive-mode-helpers.js.map +1 -1
- package/dist/modes/interactive/interactive-mode-surface.d.ts +1 -0
- package/dist/modes/interactive/interactive-mode-surface.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode-surface.js.map +1 -1
- package/dist/modes/interactive/interactive-process-lifecycle.js +7 -4
- package/dist/modes/interactive/interactive-process-lifecycle.js.map +1 -1
- package/dist/utils/output-files.d.ts +7 -0
- package/dist/utils/output-files.d.ts.map +1 -0
- package/dist/utils/output-files.js +20 -0
- package/dist/utils/output-files.js.map +1 -0
- package/docs/codemode.md +3 -3
- package/docs/extensions/api-reference.md +3 -1
- package/docs/extensions.md +2 -0
- package/docs/sdk.md +2 -0
- package/docs/settings.md +2 -0
- package/docs/subagents.md +4 -0
- package/docs/workflows/api-reference.md +6 -2
- package/docs/workflows/operations.md +10 -10
- package/npm-shrinkwrap.json +32 -32
- package/package.json +6 -6
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bastani/web-access",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.27-alpha.1",
|
|
4
4
|
"private": true,
|
|
5
5
|
"description": "Atomic extension for web search, URL fetching, GitHub repo cloning, PDF/video extraction. Fork of: https://github.com/nicobailon/pi-web-access",
|
|
6
6
|
"contributors": [
|
|
@@ -6,6 +6,14 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [0.9.27-alpha.1] - 2026-10-04
|
|
10
|
+
|
|
11
|
+
### Fixed
|
|
12
|
+
|
|
13
|
+
- Fixed workflow stages that set `model` or `fallbackModels` using settings or inherited parent models instead of only their declared chain and reasoning levels, including after reattachment. Exhausted explicit chains now stop rather than append the parent model. Numbered account providers such as `openai-1` resolve from their own `auth.json` credentials without alias registrations or `models.json` entries ([#3426](https://github.com/bastani-inc/atomic/issues/3426)).
|
|
14
|
+
- Raised the durable database admission and checkpoint deadline from 10 seconds to two minutes to tolerate transient PostgreSQL latency, retaining prompt cancellation. Workflow tool requests now allow 150 seconds so their outer deadline does not cut admission short ([#3428](https://github.com/bastani-inc/atomic/issues/3428)).
|
|
15
|
+
- Fixed reattached stages rejecting saved custom or dynamic model IDs that the SDK can reconstruct, and replaying an exhausted explicit reasoning tier when an earlier candidate leaves its thinking level unspecified ([#3432](https://github.com/bastani-inc/atomic/pull/3432)).
|
|
16
|
+
|
|
9
17
|
## [0.9.26] - 2026-10-04
|
|
10
18
|
|
|
11
19
|
### Added
|
|
@@ -188,7 +188,7 @@ async function boundedAdmission(operation, signal, timeoutMs = DBOS_ADMISSION_TI
|
|
|
188
188
|
signal?.removeEventListener("abort", abort);
|
|
189
189
|
}
|
|
190
190
|
}
|
|
191
|
-
var DBOS_ADMISSION_TIMEOUT_MS =
|
|
191
|
+
var DBOS_ADMISSION_TIMEOUT_MS = 120000, DbosDependencyError, key2, bag, dbosAdmissionContext;
|
|
192
192
|
var init_dbos_admission = __esm(() => {
|
|
193
193
|
init_dbos_process_owner();
|
|
194
194
|
DbosDependencyError = class DbosDependencyError extends Error {
|
|
@@ -110836,11 +110836,20 @@ async function buildModelCandidatesFromCatalog(input) {
|
|
|
110836
110836
|
primaryModel: input.primaryModel,
|
|
110837
110837
|
fallbackModels: input.fallbackModels,
|
|
110838
110838
|
fallbackThinkingLevels: input.fallbackThinkingLevels,
|
|
110839
|
-
currentModel: input.catalog.currentModel,
|
|
110839
|
+
currentModel: input.includeCurrentModel === false ? undefined : input.catalog.currentModel,
|
|
110840
110840
|
availableModels,
|
|
110841
110841
|
preferredProvider: input.catalog.preferredProvider
|
|
110842
110842
|
});
|
|
110843
110843
|
} catch (err) {
|
|
110844
|
+
if (input.includeCurrentModel === false) {
|
|
110845
|
+
if (err instanceof WorkflowModelValidationError)
|
|
110846
|
+
throw err;
|
|
110847
|
+
return buildModelCandidates({
|
|
110848
|
+
primaryModel: input.primaryModel,
|
|
110849
|
+
fallbackModels: input.fallbackModels,
|
|
110850
|
+
fallbackThinkingLevels: input.fallbackThinkingLevels
|
|
110851
|
+
});
|
|
110852
|
+
}
|
|
110844
110853
|
if (input.catalog.currentModel === undefined) {
|
|
110845
110854
|
throw err;
|
|
110846
110855
|
}
|
|
@@ -111390,7 +111399,7 @@ function stripWorkflowOnlyOptions(options, defaultSessionDir, meta, pendingStage
|
|
|
111390
111399
|
const {
|
|
111391
111400
|
schema: _schema,
|
|
111392
111401
|
mcp: _mcp,
|
|
111393
|
-
fallbackModels
|
|
111402
|
+
fallbackModels,
|
|
111394
111403
|
fallbackThinkingLevels: _fallbackThinkingLevels,
|
|
111395
111404
|
modelConstraints: _modelConstraints,
|
|
111396
111405
|
taskNeeds: _taskNeeds,
|
|
@@ -111421,7 +111430,11 @@ function stripWorkflowOnlyOptions(options, defaultSessionDir, meta, pendingStage
|
|
|
111421
111430
|
sessionOptions.sessionManager = SessionManager.create(cwd, effectiveSessionDir, classification);
|
|
111422
111431
|
}
|
|
111423
111432
|
}
|
|
111424
|
-
return {
|
|
111433
|
+
return {
|
|
111434
|
+
...sessionOptions,
|
|
111435
|
+
...fallbackModels?.length === 0 ? { fallbackModels: [] } : {},
|
|
111436
|
+
orchestrationContext
|
|
111437
|
+
};
|
|
111425
111438
|
}
|
|
111426
111439
|
function missingAdapter(consumer) {
|
|
111427
111440
|
if (consumer === "complete") {
|
|
@@ -111830,10 +111843,12 @@ function buildStageSessionOptions(input) {
|
|
|
111830
111843
|
const options = input.candidate === undefined ? { ...input.effectiveStageOptions ?? {} } : {
|
|
111831
111844
|
...input.effectiveStageOptions ?? {},
|
|
111832
111845
|
model: input.candidate.value,
|
|
111833
|
-
...input.candidate.reasoningLevel !== undefined ? { thinkingLevel: input.candidate.reasoningLevel } : {}
|
|
111834
|
-
fallbackModels: undefined,
|
|
111835
|
-
fallbackThinkingLevels: undefined
|
|
111846
|
+
...input.candidate.reasoningLevel !== undefined ? { thinkingLevel: input.candidate.reasoningLevel } : {}
|
|
111836
111847
|
};
|
|
111848
|
+
if (input.ownsFallbackChain) {
|
|
111849
|
+
options.fallbackModels = [];
|
|
111850
|
+
options.fallbackThinkingLevels = undefined;
|
|
111851
|
+
}
|
|
111837
111852
|
if (input.restoreSavedModel === true)
|
|
111838
111853
|
delete options.model;
|
|
111839
111854
|
if (input.reattachSessionFile !== undefined && options.sessionManager === undefined) {
|
|
@@ -112845,7 +112860,8 @@ class StageSessionController {
|
|
|
112845
112860
|
...this.modelRoute.fallbackModels.map(() => "off"),
|
|
112846
112861
|
...this.effectiveStageOptions?.fallbackThinkingLevels ?? []
|
|
112847
112862
|
] : this.effectiveStageOptions?.fallbackThinkingLevels,
|
|
112848
|
-
catalog: this.modelCatalog
|
|
112863
|
+
catalog: this.modelCatalog,
|
|
112864
|
+
includeCurrentModel: this.modelRoute !== undefined
|
|
112849
112865
|
});
|
|
112850
112866
|
this.candidatesPromise = this.modelRoute ? resolved.then((candidates) => {
|
|
112851
112867
|
if (!this.modelRoute)
|
|
@@ -112888,7 +112904,8 @@ class StageSessionController {
|
|
|
112888
112904
|
if (this.reattachSessionFile !== undefined) {
|
|
112889
112905
|
const resumed = await this.createSession(undefined, consumer, { restoreSavedModel: true });
|
|
112890
112906
|
const restoredId = workflowModelId(resumed.model);
|
|
112891
|
-
const
|
|
112907
|
+
const exactRestoredIndex = restoredId === undefined ? -1 : candidates.findIndex((entry) => entry.id === restoredId && entry.reasoningLevel === resumed.thinkingLevel);
|
|
112908
|
+
const restoredIndex = exactRestoredIndex >= 0 ? exactRestoredIndex : candidates.findIndex((entry) => entry.id === restoredId && entry.reasoningLevel === undefined);
|
|
112892
112909
|
this.activeCandidateIndex = restoredIndex >= 0 ? restoredIndex : undefined;
|
|
112893
112910
|
this.selectedModel = restoredId ?? first.id;
|
|
112894
112911
|
this.resumeCurrentSession = true;
|
|
@@ -113094,10 +113111,14 @@ class StageSessionController {
|
|
|
113094
113111
|
}
|
|
113095
113112
|
}
|
|
113096
113113
|
this.reportStartupPhase("resource-preparation");
|
|
113097
|
-
|
|
113114
|
+
if (resumeOptions?.restoreSavedModel)
|
|
113115
|
+
this.pendingThinkingLevel = undefined;
|
|
113116
|
+
else
|
|
113117
|
+
this.applyCandidateThinking(candidate);
|
|
113098
113118
|
const stageOptions = buildStageSessionOptions({
|
|
113099
113119
|
effectiveStageOptions: this.effectiveStageOptions,
|
|
113100
113120
|
candidate,
|
|
113121
|
+
ownsFallbackChain: this.hasExplicitModelFallbackConfig,
|
|
113101
113122
|
restoreSavedModel: resumeOptions?.restoreSavedModel,
|
|
113102
113123
|
reattachSessionFile: this.reattachSessionFile,
|
|
113103
113124
|
sharedModelRuntime: this.sharedModelRuntime
|
|
@@ -118643,6 +118664,10 @@ function registerPendingStageIntercomBridge(pi, activeStore) {
|
|
|
118643
118664
|
};
|
|
118644
118665
|
const unsubscribeStore = activeStore.subscribeInvalidation(announceRoutes);
|
|
118645
118666
|
announceRoutes();
|
|
118667
|
+
pi.on?.("session_start", () => {
|
|
118668
|
+
announcedRoutes.clear();
|
|
118669
|
+
announceRoutes();
|
|
118670
|
+
});
|
|
118646
118671
|
const subscription = pi.events?.on?.(PENDING_STAGE_MESSAGE_EVENT, (payload) => {
|
|
118647
118672
|
if (disposed || !isPendingStageMessageEvent(payload) || payload.handled)
|
|
118648
118673
|
return;
|
|
@@ -119206,7 +119231,8 @@ function renderRunSummary(payload) {
|
|
|
119206
119231
|
|
|
119207
119232
|
// dist/builtin/workflows/src/extension/wiring.ts
|
|
119208
119233
|
import {
|
|
119209
|
-
isStaleExtensionContextError as isStaleExtensionContextError7
|
|
119234
|
+
isStaleExtensionContextError as isStaleExtensionContextError7,
|
|
119235
|
+
resolveRestoredModelReference
|
|
119210
119236
|
} from "@bastani/atomic";
|
|
119211
119237
|
|
|
119212
119238
|
// dist/builtin/workflows/src/extension/atomic-stage-session.ts
|
|
@@ -119410,14 +119436,8 @@ function stripWorkflowOnlyOptions2(options) {
|
|
|
119410
119436
|
if (!options)
|
|
119411
119437
|
return options;
|
|
119412
119438
|
const maybeWorkflowOptions = options;
|
|
119413
|
-
const {
|
|
119414
|
-
|
|
119415
|
-
mcp: _mcp,
|
|
119416
|
-
fallbackModels: _fallbackModels,
|
|
119417
|
-
group: _group,
|
|
119418
|
-
...sessionOptions
|
|
119419
|
-
} = maybeWorkflowOptions;
|
|
119420
|
-
return sessionOptions;
|
|
119439
|
+
const { schema: _schema, mcp: _mcp, fallbackModels, group: _group, ...sessionOptions } = maybeWorkflowOptions;
|
|
119440
|
+
return fallbackModels?.length === 0 ? { ...sessionOptions, fallbackModels: [] } : sessionOptions;
|
|
119421
119441
|
}
|
|
119422
119442
|
function emitLateIntercomRoute(pi, meta, messages, options, batch) {
|
|
119423
119443
|
if (!messages.some((message) => message.customType === "intercom_message") || !pi.events?.emit)
|
|
@@ -119607,6 +119627,36 @@ function makeStageExtensionUiContext(ui, meta, broker, inheritedBindingRevision,
|
|
|
119607
119627
|
})
|
|
119608
119628
|
};
|
|
119609
119629
|
}
|
|
119630
|
+
async function resolveStageModel(options, restoreSavedModel) {
|
|
119631
|
+
const runtime = options.modelRuntime;
|
|
119632
|
+
if (!runtime)
|
|
119633
|
+
return;
|
|
119634
|
+
const saved = restoreSavedModel ? options.sessionManager?.buildSessionContext() : undefined;
|
|
119635
|
+
const reference = saved?.model ? `${saved.model.provider}/${saved.model.modelId}` : typeof options.model === "string" ? options.model : undefined;
|
|
119636
|
+
if (!reference)
|
|
119637
|
+
return;
|
|
119638
|
+
const slash = reference.indexOf("/");
|
|
119639
|
+
if (slash < 0)
|
|
119640
|
+
throw new Error(`Workflow stage model must specify provider/model: ${reference}`);
|
|
119641
|
+
const provider = reference.slice(0, slash);
|
|
119642
|
+
const modelId = reference.slice(slash + 1);
|
|
119643
|
+
let model = runtime.getModel(provider, modelId);
|
|
119644
|
+
if (!model && !runtime.getProvider(provider)) {
|
|
119645
|
+
const source = /^(.*)-\d+$/.exec(provider)?.[1];
|
|
119646
|
+
const credential = runtime.getCredentialSnapshot(provider);
|
|
119647
|
+
if (source && credential && runtime.getModel(source, modelId)) {
|
|
119648
|
+
runtime.registerProvider(provider, { aliasOf: source });
|
|
119649
|
+
model = runtime.getModel(provider, modelId);
|
|
119650
|
+
}
|
|
119651
|
+
}
|
|
119652
|
+
if (!model && saved?.model)
|
|
119653
|
+
model = await resolveRestoredModelReference(provider, modelId, runtime);
|
|
119654
|
+
if (!model)
|
|
119655
|
+
throw new Error(`Workflow stage model unavailable: ${reference}`);
|
|
119656
|
+
options.model = model;
|
|
119657
|
+
if (saved?.model)
|
|
119658
|
+
options.thinkingLevel = saved.thinkingLevel;
|
|
119659
|
+
}
|
|
119610
119660
|
function buildRuntimeAdapters(builtWith, options = {}) {
|
|
119611
119661
|
const resolveSurface = options.resolveSurface ?? (() => builtWith);
|
|
119612
119662
|
const sessionFactory = (pi) => options.createAgentSession ?? pi.createAgentSession ?? (isTestContext() && options.sdk === undefined ? createTestAgentSession : (sessionOptions, prepareOptions) => createPiSdkAgentSession(sessionOptions, {
|
|
@@ -119620,6 +119670,7 @@ function buildRuntimeAdapters(builtWith, options = {}) {
|
|
|
119620
119670
|
const pi = resolveSurface();
|
|
119621
119671
|
const createSession = sessionFactory(pi);
|
|
119622
119672
|
const inheritedOptions = pi.getChildSessionOptions?.(stripWorkflowOnlyOptions2(stageOptions) ?? {}) ?? stripWorkflowOnlyOptions2(stageOptions) ?? {};
|
|
119673
|
+
await resolveStageModel(inheritedOptions, stageOptions.model === undefined && stageOptions.sessionManager !== undefined);
|
|
119623
119674
|
if (meta?.isFallbackAttempt && inheritedOptions.model && inheritedOptions.isFallbackModelAllowed?.(inheritedOptions.model, inheritedOptions.thinkingLevel) === false)
|
|
119624
119675
|
throw new Error("Workflow stage fallback model unavailable under inherited policy.");
|
|
119625
119676
|
const sessionOptions = withWorkflowStageSessionOptions(inheritedOptions, meta, pi);
|
|
@@ -124048,7 +124099,7 @@ var WorkflowParametersSchema = Type25.Object({
|
|
|
124048
124099
|
}, { additionalProperties: false });
|
|
124049
124100
|
|
|
124050
124101
|
// dist/builtin/workflows/src/extension/workflow-tool-registration.ts
|
|
124051
|
-
var WORKFLOW_TOOL_REQUEST_TIMEOUT_MS =
|
|
124102
|
+
var WORKFLOW_TOOL_REQUEST_TIMEOUT_MS = 150000;
|
|
124052
124103
|
var MUTATING_WORKFLOW_ACTIONS = new Set([
|
|
124053
124104
|
"reload",
|
|
124054
124105
|
"run",
|
|
@@ -175,7 +175,7 @@ async function boundedAdmission(operation, signal, timeoutMs = DBOS_ADMISSION_TI
|
|
|
175
175
|
signal?.removeEventListener("abort", abort);
|
|
176
176
|
}
|
|
177
177
|
}
|
|
178
|
-
var DBOS_ADMISSION_TIMEOUT_MS =
|
|
178
|
+
var DBOS_ADMISSION_TIMEOUT_MS = 120000, DbosDependencyError, key2, bag, dbosAdmissionContext;
|
|
179
179
|
var init_dbos_admission = __esm(() => {
|
|
180
180
|
init_dbos_process_owner();
|
|
181
181
|
DbosDependencyError = class DbosDependencyError extends Error {
|
|
@@ -52338,11 +52338,20 @@ async function buildModelCandidatesFromCatalog(input) {
|
|
|
52338
52338
|
primaryModel: input.primaryModel,
|
|
52339
52339
|
fallbackModels: input.fallbackModels,
|
|
52340
52340
|
fallbackThinkingLevels: input.fallbackThinkingLevels,
|
|
52341
|
-
currentModel: input.catalog.currentModel,
|
|
52341
|
+
currentModel: input.includeCurrentModel === false ? undefined : input.catalog.currentModel,
|
|
52342
52342
|
availableModels,
|
|
52343
52343
|
preferredProvider: input.catalog.preferredProvider
|
|
52344
52344
|
});
|
|
52345
52345
|
} catch (err) {
|
|
52346
|
+
if (input.includeCurrentModel === false) {
|
|
52347
|
+
if (err instanceof WorkflowModelValidationError)
|
|
52348
|
+
throw err;
|
|
52349
|
+
return buildModelCandidates({
|
|
52350
|
+
primaryModel: input.primaryModel,
|
|
52351
|
+
fallbackModels: input.fallbackModels,
|
|
52352
|
+
fallbackThinkingLevels: input.fallbackThinkingLevels
|
|
52353
|
+
});
|
|
52354
|
+
}
|
|
52346
52355
|
if (input.catalog.currentModel === undefined) {
|
|
52347
52356
|
throw err;
|
|
52348
52357
|
}
|
|
@@ -52892,7 +52901,7 @@ function stripWorkflowOnlyOptions(options, defaultSessionDir, meta, pendingStage
|
|
|
52892
52901
|
const {
|
|
52893
52902
|
schema: _schema,
|
|
52894
52903
|
mcp: _mcp,
|
|
52895
|
-
fallbackModels
|
|
52904
|
+
fallbackModels,
|
|
52896
52905
|
fallbackThinkingLevels: _fallbackThinkingLevels,
|
|
52897
52906
|
modelConstraints: _modelConstraints,
|
|
52898
52907
|
taskNeeds: _taskNeeds,
|
|
@@ -52923,7 +52932,11 @@ function stripWorkflowOnlyOptions(options, defaultSessionDir, meta, pendingStage
|
|
|
52923
52932
|
sessionOptions.sessionManager = SessionManager.create(cwd, effectiveSessionDir, classification);
|
|
52924
52933
|
}
|
|
52925
52934
|
}
|
|
52926
|
-
return {
|
|
52935
|
+
return {
|
|
52936
|
+
...sessionOptions,
|
|
52937
|
+
...fallbackModels?.length === 0 ? { fallbackModels: [] } : {},
|
|
52938
|
+
orchestrationContext
|
|
52939
|
+
};
|
|
52927
52940
|
}
|
|
52928
52941
|
function missingAdapter(consumer) {
|
|
52929
52942
|
if (consumer === "complete") {
|
|
@@ -53332,10 +53345,12 @@ function buildStageSessionOptions(input) {
|
|
|
53332
53345
|
const options = input.candidate === undefined ? { ...input.effectiveStageOptions ?? {} } : {
|
|
53333
53346
|
...input.effectiveStageOptions ?? {},
|
|
53334
53347
|
model: input.candidate.value,
|
|
53335
|
-
...input.candidate.reasoningLevel !== undefined ? { thinkingLevel: input.candidate.reasoningLevel } : {}
|
|
53336
|
-
fallbackModels: undefined,
|
|
53337
|
-
fallbackThinkingLevels: undefined
|
|
53348
|
+
...input.candidate.reasoningLevel !== undefined ? { thinkingLevel: input.candidate.reasoningLevel } : {}
|
|
53338
53349
|
};
|
|
53350
|
+
if (input.ownsFallbackChain) {
|
|
53351
|
+
options.fallbackModels = [];
|
|
53352
|
+
options.fallbackThinkingLevels = undefined;
|
|
53353
|
+
}
|
|
53339
53354
|
if (input.restoreSavedModel === true)
|
|
53340
53355
|
delete options.model;
|
|
53341
53356
|
if (input.reattachSessionFile !== undefined && options.sessionManager === undefined) {
|
|
@@ -54347,7 +54362,8 @@ class StageSessionController {
|
|
|
54347
54362
|
...this.modelRoute.fallbackModels.map(() => "off"),
|
|
54348
54363
|
...this.effectiveStageOptions?.fallbackThinkingLevels ?? []
|
|
54349
54364
|
] : this.effectiveStageOptions?.fallbackThinkingLevels,
|
|
54350
|
-
catalog: this.modelCatalog
|
|
54365
|
+
catalog: this.modelCatalog,
|
|
54366
|
+
includeCurrentModel: this.modelRoute !== undefined
|
|
54351
54367
|
});
|
|
54352
54368
|
this.candidatesPromise = this.modelRoute ? resolved.then((candidates) => {
|
|
54353
54369
|
if (!this.modelRoute)
|
|
@@ -54390,7 +54406,8 @@ class StageSessionController {
|
|
|
54390
54406
|
if (this.reattachSessionFile !== undefined) {
|
|
54391
54407
|
const resumed = await this.createSession(undefined, consumer, { restoreSavedModel: true });
|
|
54392
54408
|
const restoredId = workflowModelId(resumed.model);
|
|
54393
|
-
const
|
|
54409
|
+
const exactRestoredIndex = restoredId === undefined ? -1 : candidates.findIndex((entry) => entry.id === restoredId && entry.reasoningLevel === resumed.thinkingLevel);
|
|
54410
|
+
const restoredIndex = exactRestoredIndex >= 0 ? exactRestoredIndex : candidates.findIndex((entry) => entry.id === restoredId && entry.reasoningLevel === undefined);
|
|
54394
54411
|
this.activeCandidateIndex = restoredIndex >= 0 ? restoredIndex : undefined;
|
|
54395
54412
|
this.selectedModel = restoredId ?? first.id;
|
|
54396
54413
|
this.resumeCurrentSession = true;
|
|
@@ -54596,10 +54613,14 @@ class StageSessionController {
|
|
|
54596
54613
|
}
|
|
54597
54614
|
}
|
|
54598
54615
|
this.reportStartupPhase("resource-preparation");
|
|
54599
|
-
|
|
54616
|
+
if (resumeOptions?.restoreSavedModel)
|
|
54617
|
+
this.pendingThinkingLevel = undefined;
|
|
54618
|
+
else
|
|
54619
|
+
this.applyCandidateThinking(candidate);
|
|
54600
54620
|
const stageOptions = buildStageSessionOptions({
|
|
54601
54621
|
effectiveStageOptions: this.effectiveStageOptions,
|
|
54602
54622
|
candidate,
|
|
54623
|
+
ownsFallbackChain: this.hasExplicitModelFallbackConfig,
|
|
54603
54624
|
restoreSavedModel: resumeOptions?.restoreSavedModel,
|
|
54604
54625
|
reattachSessionFile: this.reattachSessionFile,
|
|
54605
54626
|
sharedModelRuntime: this.sharedModelRuntime
|