@atlasharness/atlascode 0.1.15 → 0.1.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +112 -46
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -20052,6 +20052,17 @@ var init_openai = __esm(() => {
|
|
|
20052
20052
|
init_bedrock2();
|
|
20053
20053
|
});
|
|
20054
20054
|
|
|
20055
|
+
// src/modelprovider/constants.ts
|
|
20056
|
+
var API_IMAGE_MAX_BASE64_SIZE, IMAGE_TARGET_RAW_SIZE, PDF_TARGET_RAW_SIZE, API_PDF_MAX_PAGES = 100, LLM_TIMEOUT_DEFAULT_MS = 600000, LLM_TIMEOUT_CAP_MS = 1800000, SUMMARIZE_CONNECTOR_TEXT_BETA_HEADER, AFK_MODE_BETA_HEADER;
|
|
20057
|
+
var init_constants2 = __esm(() => {
|
|
20058
|
+
init_shared();
|
|
20059
|
+
API_IMAGE_MAX_BASE64_SIZE = 5 * 1024 * 1024;
|
|
20060
|
+
IMAGE_TARGET_RAW_SIZE = API_IMAGE_MAX_BASE64_SIZE * 3 / 4;
|
|
20061
|
+
PDF_TARGET_RAW_SIZE = 20 * 1024 * 1024;
|
|
20062
|
+
SUMMARIZE_CONNECTOR_TEXT_BETA_HEADER = feature("CONNECTOR_TEXT") ? "summarize-connector-text-2026-03-13" : "";
|
|
20063
|
+
AFK_MODE_BETA_HEADER = feature("TRANSCRIPT_CLASSIFIER") ? "afk-mode-2026-01-31" : "";
|
|
20064
|
+
});
|
|
20065
|
+
|
|
20055
20066
|
// src/modelprovider/clients.ts
|
|
20056
20067
|
function clientCacheKey(provider, baseURL, apiKey) {
|
|
20057
20068
|
return provider + "|" + (baseURL || "") + "|" + (apiKey || "");
|
|
@@ -20066,7 +20077,7 @@ function getClientForEntry(entry) {
|
|
|
20066
20077
|
baseURL: entry.baseURL,
|
|
20067
20078
|
apiKey: entry.apiKey,
|
|
20068
20079
|
maxRetries: 0,
|
|
20069
|
-
timeout:
|
|
20080
|
+
timeout: LLM_TIMEOUT_DEFAULT_MS
|
|
20070
20081
|
});
|
|
20071
20082
|
clientCache.set(key, client);
|
|
20072
20083
|
return client;
|
|
@@ -20074,6 +20085,7 @@ function getClientForEntry(entry) {
|
|
|
20074
20085
|
var clientCache;
|
|
20075
20086
|
var init_clients = __esm(() => {
|
|
20076
20087
|
init_openai();
|
|
20088
|
+
init_constants2();
|
|
20077
20089
|
clientCache = new Map;
|
|
20078
20090
|
});
|
|
20079
20091
|
|
|
@@ -27007,6 +27019,27 @@ var init_params = __esm(() => {
|
|
|
27007
27019
|
init_effort();
|
|
27008
27020
|
});
|
|
27009
27021
|
|
|
27022
|
+
// src/modelprovider/types.ts
|
|
27023
|
+
var APIError2, APIConnectionError2, APIConnectionTimeoutError2;
|
|
27024
|
+
var init_types2 = __esm(() => {
|
|
27025
|
+
APIError2 = class APIError2 extends Error {
|
|
27026
|
+
status;
|
|
27027
|
+
error;
|
|
27028
|
+
constructor(message, status, error) {
|
|
27029
|
+
super(message);
|
|
27030
|
+
this.name = "APIError";
|
|
27031
|
+
if (status !== undefined)
|
|
27032
|
+
this.status = status;
|
|
27033
|
+
if (error !== undefined)
|
|
27034
|
+
this.error = error;
|
|
27035
|
+
}
|
|
27036
|
+
};
|
|
27037
|
+
APIConnectionError2 = class APIConnectionError2 extends APIError2 {
|
|
27038
|
+
};
|
|
27039
|
+
APIConnectionTimeoutError2 = class APIConnectionTimeoutError2 extends APIConnectionError2 {
|
|
27040
|
+
};
|
|
27041
|
+
});
|
|
27042
|
+
|
|
27010
27043
|
// src/modelprovider/modelprovider.ts
|
|
27011
27044
|
import { randomUUID } from "crypto";
|
|
27012
27045
|
function mapOpenAIUsage(u) {
|
|
@@ -27025,6 +27058,29 @@ function isRetryableError(err) {
|
|
|
27025
27058
|
const msg = String(err?.message || err?.code || "");
|
|
27026
27059
|
return /timeout|ECONN|EPIPE|fetch failed|socket|aborted/i.test(msg);
|
|
27027
27060
|
}
|
|
27061
|
+
function isClientRequestTimeout(err) {
|
|
27062
|
+
if (!err || typeof err !== "object")
|
|
27063
|
+
return false;
|
|
27064
|
+
const e = err;
|
|
27065
|
+
if (err instanceof APIConnectionTimeoutError2)
|
|
27066
|
+
return true;
|
|
27067
|
+
if (e.name === "APIConnectionTimeoutError" || e.name === "APITimeoutError")
|
|
27068
|
+
return true;
|
|
27069
|
+
return false;
|
|
27070
|
+
}
|
|
27071
|
+
function shouldRetryModelError(err, signal) {
|
|
27072
|
+
if (signal?.aborted)
|
|
27073
|
+
return false;
|
|
27074
|
+
if (isClientRequestTimeout(err))
|
|
27075
|
+
return false;
|
|
27076
|
+
return isRetryableError(err);
|
|
27077
|
+
}
|
|
27078
|
+
function llmTimeoutRemediationHint(error, currentTimeoutMs) {
|
|
27079
|
+
if (!isClientRequestTimeout(error))
|
|
27080
|
+
return null;
|
|
27081
|
+
const head = typeof currentTimeoutMs === "number" && currentTimeoutMs > 0 ? `当前超时 ${Math.round(currentTimeoutMs / 1000)}s` : "慢模型长生成可能超过缺省超时";
|
|
27082
|
+
return `LLM 请求超时(${head})。可调大:env ATLAS_LLM_TIMEOUT=<毫秒> 或 settings.json llmTimeoutMs 键(上限 ${Math.round(LLM_TIMEOUT_CAP_MS / 60000)}min)。`;
|
|
27083
|
+
}
|
|
27028
27084
|
function startLlmWaitHeartbeat(modelId, attempt, totalRetries) {
|
|
27029
27085
|
const startedAt = Date.now();
|
|
27030
27086
|
const id = setInterval(() => {
|
|
@@ -27038,10 +27094,13 @@ function startLlmWaitHeartbeat(modelId, attempt, totalRetries) {
|
|
|
27038
27094
|
class OpenAIProvider {
|
|
27039
27095
|
maxRetriesPerModel;
|
|
27040
27096
|
timeoutMs;
|
|
27041
|
-
constructor(maxRetriesPerModel = 3, timeoutMs =
|
|
27097
|
+
constructor(maxRetriesPerModel = 3, timeoutMs = LLM_TIMEOUT_DEFAULT_MS) {
|
|
27042
27098
|
this.maxRetriesPerModel = maxRetriesPerModel;
|
|
27043
27099
|
this.timeoutMs = timeoutMs;
|
|
27044
27100
|
}
|
|
27101
|
+
getTimeoutMs() {
|
|
27102
|
+
return this.timeoutMs;
|
|
27103
|
+
}
|
|
27045
27104
|
async chat(args) {
|
|
27046
27105
|
const refs = getRoleModels(args.role, args.sessionModel, args.fallbackModel);
|
|
27047
27106
|
if (refs.length === 0) {
|
|
@@ -27128,7 +27187,7 @@ class OpenAIProvider {
|
|
|
27128
27187
|
};
|
|
27129
27188
|
} catch (err) {
|
|
27130
27189
|
lastErr = err;
|
|
27131
|
-
if (!
|
|
27190
|
+
if (!shouldRetryModelError(err, args.signal))
|
|
27132
27191
|
break;
|
|
27133
27192
|
}
|
|
27134
27193
|
}
|
|
@@ -27178,7 +27237,7 @@ class OpenAIProvider {
|
|
|
27178
27237
|
break;
|
|
27179
27238
|
} catch (err) {
|
|
27180
27239
|
lastErr = err;
|
|
27181
|
-
if (!
|
|
27240
|
+
if (!shouldRetryModelError(err, args.signal))
|
|
27182
27241
|
break;
|
|
27183
27242
|
}
|
|
27184
27243
|
}
|
|
@@ -27188,7 +27247,7 @@ class OpenAIProvider {
|
|
|
27188
27247
|
if (lastErr) {
|
|
27189
27248
|
const message = lastErr instanceof Error ? lastErr.message || lastErr.name : String(lastErr);
|
|
27190
27249
|
const code = lastErr?.name === "TimeoutError" ? "TIMEOUT" : "API_ERROR";
|
|
27191
|
-
yield { type: "error", code, message, retryable:
|
|
27250
|
+
yield { type: "error", code, message, retryable: shouldRetryModelError(lastErr, args.signal) };
|
|
27192
27251
|
return;
|
|
27193
27252
|
}
|
|
27194
27253
|
throw new Error(`No models configured for role '${args.role}'.`);
|
|
@@ -27434,15 +27493,15 @@ class OpenAIProvider {
|
|
|
27434
27493
|
var init_modelprovider = __esm(() => {
|
|
27435
27494
|
init_openai();
|
|
27436
27495
|
init_clients();
|
|
27496
|
+
init_constants2();
|
|
27437
27497
|
init_roles7();
|
|
27438
27498
|
init_shared();
|
|
27439
27499
|
init_shared();
|
|
27440
27500
|
init_params();
|
|
27501
|
+
init_types2();
|
|
27502
|
+
init_constants2();
|
|
27441
27503
|
});
|
|
27442
27504
|
|
|
27443
|
-
// src/modelprovider/types.ts
|
|
27444
|
-
var init_types2 = () => {};
|
|
27445
|
-
|
|
27446
27505
|
// src/modelprovider/errorUtils.ts
|
|
27447
27506
|
function extractConnectionErrorDetails(error) {
|
|
27448
27507
|
if (!error || typeof error !== "object") {
|
|
@@ -27581,17 +27640,6 @@ var init_errorUtils = __esm(() => {
|
|
|
27581
27640
|
]);
|
|
27582
27641
|
});
|
|
27583
27642
|
|
|
27584
|
-
// src/modelprovider/constants.ts
|
|
27585
|
-
var API_IMAGE_MAX_BASE64_SIZE, IMAGE_TARGET_RAW_SIZE, PDF_TARGET_RAW_SIZE, API_PDF_MAX_PAGES = 100, SUMMARIZE_CONNECTOR_TEXT_BETA_HEADER, AFK_MODE_BETA_HEADER;
|
|
27586
|
-
var init_constants2 = __esm(() => {
|
|
27587
|
-
init_shared();
|
|
27588
|
-
API_IMAGE_MAX_BASE64_SIZE = 5 * 1024 * 1024;
|
|
27589
|
-
IMAGE_TARGET_RAW_SIZE = API_IMAGE_MAX_BASE64_SIZE * 3 / 4;
|
|
27590
|
-
PDF_TARGET_RAW_SIZE = 20 * 1024 * 1024;
|
|
27591
|
-
SUMMARIZE_CONNECTOR_TEXT_BETA_HEADER = feature("CONNECTOR_TEXT") ? "summarize-connector-text-2026-03-13" : "";
|
|
27592
|
-
AFK_MODE_BETA_HEADER = feature("TRANSCRIPT_CLASSIFIER") ? "afk-mode-2026-01-31" : "";
|
|
27593
|
-
});
|
|
27594
|
-
|
|
27595
27643
|
// src/modelprovider/errorMessaging.ts
|
|
27596
27644
|
function registerErrorMessagingPorts(p) {
|
|
27597
27645
|
ports = p;
|
|
@@ -27731,10 +27779,22 @@ var init_queryWithRoleFallback = __esm(() => {
|
|
|
27731
27779
|
|
|
27732
27780
|
// src/modelprovider/index.ts
|
|
27733
27781
|
function getModelProvider() {
|
|
27734
|
-
return _provider ??= new OpenAIProvider(3, resolveLlmTimeoutMs());
|
|
27782
|
+
return _provider ??= new OpenAIProvider(3, resolveLlmTimeoutMs(process.env.ATLAS_LLM_TIMEOUT, llmTimeoutSettingsSource?.()));
|
|
27783
|
+
}
|
|
27784
|
+
function setLlmTimeoutSettingsSource(next) {
|
|
27785
|
+
llmTimeoutSettingsSource = next;
|
|
27786
|
+
}
|
|
27787
|
+
function getCurrentLlmTimeoutMs() {
|
|
27788
|
+
return resolveLlmTimeoutMs(process.env.ATLAS_LLM_TIMEOUT, llmTimeoutSettingsSource?.());
|
|
27735
27789
|
}
|
|
27736
|
-
function resolveLlmTimeoutMs() {
|
|
27737
|
-
|
|
27790
|
+
function resolveLlmTimeoutMs(envRaw = process.env.ATLAS_LLM_TIMEOUT, settingsMs) {
|
|
27791
|
+
const fromSettings = () => typeof settingsMs === "number" && Number.isInteger(settingsMs) && settingsMs >= 1 ? Math.min(settingsMs, LLM_TIMEOUT_CAP_MS) : LLM_TIMEOUT_DEFAULT_MS;
|
|
27792
|
+
if (envRaw === undefined || envRaw === "")
|
|
27793
|
+
return fromSettings();
|
|
27794
|
+
const env = parseBoundedIntEnv("ATLAS_LLM_TIMEOUT", envRaw, LLM_TIMEOUT_DEFAULT_MS, LLM_TIMEOUT_CAP_MS, 1);
|
|
27795
|
+
if (env.status !== "invalid")
|
|
27796
|
+
return env.effective;
|
|
27797
|
+
return fromSettings();
|
|
27738
27798
|
}
|
|
27739
27799
|
function lazyProxy(resolve) {
|
|
27740
27800
|
return new Proxy({}, {
|
|
@@ -27745,13 +27805,16 @@ function lazyProxy(resolve) {
|
|
|
27745
27805
|
}
|
|
27746
27806
|
});
|
|
27747
27807
|
}
|
|
27748
|
-
var _provider, modelProvider;
|
|
27808
|
+
var _provider, llmTimeoutSettingsSource = null, modelProvider;
|
|
27749
27809
|
var init_modelprovider2 = __esm(() => {
|
|
27750
27810
|
init_modelprovider();
|
|
27811
|
+
init_constants2();
|
|
27751
27812
|
init_shared();
|
|
27813
|
+
init_constants2();
|
|
27752
27814
|
init_modelprovider();
|
|
27753
27815
|
init_types2();
|
|
27754
27816
|
init_modelErrors();
|
|
27817
|
+
init_modelprovider();
|
|
27755
27818
|
init_params();
|
|
27756
27819
|
init_roles7();
|
|
27757
27820
|
init_errorUtils();
|
|
@@ -76317,7 +76380,7 @@ Important:
|
|
|
76317
76380
|
// src/engine/tools/skill/skillTool.ts
|
|
76318
76381
|
import { randomUUID as randomUUID14 } from "crypto";
|
|
76319
76382
|
async function getAllCommands() {
|
|
76320
|
-
return getCommands(
|
|
76383
|
+
return getCommands(process.cwd());
|
|
76321
76384
|
}
|
|
76322
76385
|
function getToolUseIDFromParentMessage(parentMessage, toolName) {
|
|
76323
76386
|
if (!parentMessage)
|
|
@@ -76388,7 +76451,6 @@ function skillHasOnlySafeProperties(command) {
|
|
|
76388
76451
|
}
|
|
76389
76452
|
var SKILL_TOOL_INPUT_SCHEMA, SAFE_SKILL_PROPERTIES, SkillTool;
|
|
76390
76453
|
var init_skillTool = __esm(() => {
|
|
76391
|
-
init_bootstrap();
|
|
76392
76454
|
init_shared();
|
|
76393
76455
|
init_permissions3();
|
|
76394
76456
|
init_modelprovider2();
|
|
@@ -76455,7 +76517,7 @@ var init_skillTool = __esm(() => {
|
|
|
76455
76517
|
return skill ?? "";
|
|
76456
76518
|
},
|
|
76457
76519
|
async description() {
|
|
76458
|
-
return getSkillPrompt(
|
|
76520
|
+
return getSkillPrompt(process.cwd());
|
|
76459
76521
|
},
|
|
76460
76522
|
async checkPermissions(input, context) {
|
|
76461
76523
|
const { skill, args } = input;
|
|
@@ -121613,6 +121675,7 @@ var isMcpServerCommandEntry = () => ({}), isMcpServerNameEntry = () => ({}), isM
|
|
|
121613
121675
|
object({ kind: literal("window"), tokens: number2().int().min(1000) }),
|
|
121614
121676
|
object({ kind: literal("pct"), pct: number2().min(1).max(100) })
|
|
121615
121677
|
]).optional(),
|
|
121678
|
+
llmTimeoutMs: number2().int().positive().optional(),
|
|
121616
121679
|
prefersReducedMotion: boolean2().optional(),
|
|
121617
121680
|
syntaxHighlightingDisabled: boolean2().optional(),
|
|
121618
121681
|
spinnerTipsEnabled: boolean2().optional(),
|
|
@@ -148277,28 +148340,28 @@ function getEventPriority(eventType) {
|
|
|
148277
148340
|
case "focus":
|
|
148278
148341
|
case "blur":
|
|
148279
148342
|
case "paste":
|
|
148280
|
-
return
|
|
148343
|
+
return import_constants53.DiscreteEventPriority;
|
|
148281
148344
|
case "resize":
|
|
148282
148345
|
case "scroll":
|
|
148283
148346
|
case "mousemove":
|
|
148284
|
-
return
|
|
148347
|
+
return import_constants53.ContinuousEventPriority;
|
|
148285
148348
|
default:
|
|
148286
|
-
return
|
|
148349
|
+
return import_constants53.DefaultEventPriority;
|
|
148287
148350
|
}
|
|
148288
148351
|
}
|
|
148289
148352
|
|
|
148290
148353
|
class Dispatcher {
|
|
148291
148354
|
currentEvent = null;
|
|
148292
|
-
currentUpdatePriority =
|
|
148355
|
+
currentUpdatePriority = import_constants53.DefaultEventPriority;
|
|
148293
148356
|
discreteUpdates = null;
|
|
148294
148357
|
resolveEventPriority() {
|
|
148295
|
-
if (this.currentUpdatePriority !==
|
|
148358
|
+
if (this.currentUpdatePriority !== import_constants53.NoEventPriority) {
|
|
148296
148359
|
return this.currentUpdatePriority;
|
|
148297
148360
|
}
|
|
148298
148361
|
if (this.currentEvent) {
|
|
148299
148362
|
return getEventPriority(this.currentEvent.type);
|
|
148300
148363
|
}
|
|
148301
|
-
return
|
|
148364
|
+
return import_constants53.DefaultEventPriority;
|
|
148302
148365
|
}
|
|
148303
148366
|
dispatch(target, event) {
|
|
148304
148367
|
const previousEvent = this.currentEvent;
|
|
@@ -148323,18 +148386,18 @@ class Dispatcher {
|
|
|
148323
148386
|
dispatchContinuous(target, event) {
|
|
148324
148387
|
const previousPriority = this.currentUpdatePriority;
|
|
148325
148388
|
try {
|
|
148326
|
-
this.currentUpdatePriority =
|
|
148389
|
+
this.currentUpdatePriority = import_constants53.ContinuousEventPriority;
|
|
148327
148390
|
return this.dispatch(target, event);
|
|
148328
148391
|
} finally {
|
|
148329
148392
|
this.currentUpdatePriority = previousPriority;
|
|
148330
148393
|
}
|
|
148331
148394
|
}
|
|
148332
148395
|
}
|
|
148333
|
-
var
|
|
148396
|
+
var import_constants53;
|
|
148334
148397
|
var init_dispatcher = __esm(() => {
|
|
148335
148398
|
init_log5();
|
|
148336
148399
|
init_event_handlers();
|
|
148337
|
-
|
|
148400
|
+
import_constants53 = __toESM(require_constants2(), 1);
|
|
148338
148401
|
});
|
|
148339
148402
|
|
|
148340
148403
|
// src/tui/ink/events/terminal-event.ts
|
|
@@ -157141,7 +157204,7 @@ function applyPositionedHighlight(screen, stylePool, positions, rowOffset, curre
|
|
|
157141
157204
|
}
|
|
157142
157205
|
return true;
|
|
157143
157206
|
}
|
|
157144
|
-
var
|
|
157207
|
+
var import_constants55, timing;
|
|
157145
157208
|
var init_render_to_screen = __esm(() => {
|
|
157146
157209
|
init_debug();
|
|
157147
157210
|
init_dom();
|
|
@@ -157150,7 +157213,7 @@ var init_render_to_screen = __esm(() => {
|
|
|
157150
157213
|
init_reconciler();
|
|
157151
157214
|
init_render_node_to_output();
|
|
157152
157215
|
init_screen();
|
|
157153
|
-
|
|
157216
|
+
import_constants55 = __toESM(require_constants2(), 1);
|
|
157154
157217
|
timing = { reconcile: 0, yoga: 0, paint: 0, scan: 0, calls: 0 };
|
|
157155
157218
|
});
|
|
157156
157219
|
|
|
@@ -157456,7 +157519,7 @@ class Ink {
|
|
|
157456
157519
|
};
|
|
157457
157520
|
}
|
|
157458
157521
|
};
|
|
157459
|
-
this.container = reconciler_default.createContainer(this.rootNode,
|
|
157522
|
+
this.container = reconciler_default.createContainer(this.rootNode, import_constants56.ConcurrentRoot, null, false, null, "id", noop_default, noop_default, noop_default, noop_default);
|
|
157460
157523
|
if (false) {}
|
|
157461
157524
|
}
|
|
157462
157525
|
handleResume = () => {
|
|
@@ -158269,7 +158332,7 @@ function drainStdin(stdin = process.stdin) {
|
|
|
158269
158332
|
}
|
|
158270
158333
|
}
|
|
158271
158334
|
}
|
|
158272
|
-
var
|
|
158335
|
+
var import_constants56, jsx_dev_runtime8, ALT_SCREEN_ANCHOR_CURSOR, CURSOR_HOME_PATCH, ERASE_THEN_HOME_PATCH, CONSOLE_STDOUT_METHODS, CONSOLE_STDERR_METHODS;
|
|
158273
158336
|
var init_ink = __esm(() => {
|
|
158274
158337
|
init_noop();
|
|
158275
158338
|
init_throttle2();
|
|
@@ -158302,7 +158365,7 @@ var init_ink = __esm(() => {
|
|
|
158302
158365
|
init_dec();
|
|
158303
158366
|
init_osc();
|
|
158304
158367
|
init_useTerminalNotification();
|
|
158305
|
-
|
|
158368
|
+
import_constants56 = __toESM(require_constants2(), 1);
|
|
158306
158369
|
jsx_dev_runtime8 = __toESM(require_jsx_dev_runtime(), 1);
|
|
158307
158370
|
ALT_SCREEN_ANCHOR_CURSOR = Object.freeze({
|
|
158308
158371
|
x: 0,
|
|
@@ -271660,7 +271723,7 @@ async function* runAgent2({
|
|
|
271660
271723
|
}
|
|
271661
271724
|
const skillsToPreload = agentDefinition.skills ?? [];
|
|
271662
271725
|
if (skillsToPreload.length > 0) {
|
|
271663
|
-
const allSkills = await getSkillToolCommands2(
|
|
271726
|
+
const allSkills = await getSkillToolCommands2(process.cwd());
|
|
271664
271727
|
const validSkills = [];
|
|
271665
271728
|
for (const skillName of skillsToPreload) {
|
|
271666
271729
|
const resolvedName = resolveSkillName(skillName, allSkills, agentDefinition);
|
|
@@ -274526,8 +274589,8 @@ var init_UI10 = __esm(() => {
|
|
|
274526
274589
|
async function getAllCommands2(context) {
|
|
274527
274590
|
const mcpSkills = context.getAppState().mcp.commands.filter((cmd) => cmd.type === "prompt" && cmd.loadedFrom === "mcp");
|
|
274528
274591
|
if (mcpSkills.length === 0)
|
|
274529
|
-
return getCommands2(
|
|
274530
|
-
const localCommands = await getCommands2(
|
|
274592
|
+
return getCommands2(process.cwd());
|
|
274593
|
+
const localCommands = await getCommands2(process.cwd());
|
|
274531
274594
|
return uniqBy_default([...localCommands, ...mcpSkills], "name");
|
|
274532
274595
|
}
|
|
274533
274596
|
async function executeForkedSkill2(command, commandName, args, context, canUseTool, parentMessage, onProgress) {
|
|
@@ -274623,7 +274686,6 @@ function isOfficialMarketplaceSkill(command) {
|
|
|
274623
274686
|
var inputSchema14, outputSchema12, SkillTool2, SAFE_SKILL_PROPERTIES2;
|
|
274624
274687
|
var init_SkillTool = __esm(() => {
|
|
274625
274688
|
init_uniqBy();
|
|
274626
|
-
init_bootstrap();
|
|
274627
274689
|
init_commands5();
|
|
274628
274690
|
init_Tool();
|
|
274629
274691
|
init_debug();
|
|
@@ -274673,7 +274735,7 @@ var init_SkillTool = __esm(() => {
|
|
|
274673
274735
|
return outputSchema12();
|
|
274674
274736
|
},
|
|
274675
274737
|
description: async ({ skill }) => `Execute skill: ${skill}`,
|
|
274676
|
-
prompt: async () => getPrompt20(
|
|
274738
|
+
prompt: async () => getPrompt20(process.cwd()),
|
|
274677
274739
|
toAutoClassifierInput: ({ skill }) => skill ?? "",
|
|
274678
274740
|
async validateInput({ skill }, context) {
|
|
274679
274741
|
const trimmed = skill.trim();
|
|
@@ -430263,6 +430325,7 @@ function wireContextHostPorts() {
|
|
|
430263
430325
|
});
|
|
430264
430326
|
setAutoCompactSettingsSource(() => getGlobalConfig().autoCompactEnabled);
|
|
430265
430327
|
setAutoCompactWindowSettingsSource(() => getInitialSettings2().autoCompactWindow);
|
|
430328
|
+
setLlmTimeoutSettingsSource(() => getInitialSettings2().llmTimeoutMs);
|
|
430266
430329
|
setTimeBasedMCConfigSource(() => getFeatureValue_CACHED_MAY_BE_STALE("atlas_slate_heron", TIME_BASED_MC_CONFIG_DEFAULTS));
|
|
430267
430330
|
clearPostCompactResetsForTesting();
|
|
430268
430331
|
if (feature("CONTEXT_COLLAPSE")) {
|
|
@@ -430291,6 +430354,7 @@ function wireContextHostPorts() {
|
|
|
430291
430354
|
}
|
|
430292
430355
|
var init_contextHostWiring = __esm(() => {
|
|
430293
430356
|
init_shared();
|
|
430357
|
+
init_modelprovider2();
|
|
430294
430358
|
init_engine();
|
|
430295
430359
|
init_config6();
|
|
430296
430360
|
init_settings3();
|
|
@@ -475922,7 +475986,8 @@ Error: sandbox required but unavailable: ${reason}
|
|
|
475922
475986
|
await onQueryImpl(latestMessages, newMessages, abortController, shouldQuery, additionalAllowedTools, mainLoopModelParam, effort);
|
|
475923
475987
|
} catch (error) {
|
|
475924
475988
|
logError3(error);
|
|
475925
|
-
|
|
475989
|
+
const llmTimeoutHint = llmTimeoutRemediationHint(error, getCurrentLlmTimeoutMs());
|
|
475990
|
+
setMessages((prev) => [...prev, createSystemMessage(`本轮执行出错:${errorMessage2(error)}。${llmTimeoutHint ? `${llmTimeoutHint} ` : ""}请重试。`, "error")]);
|
|
475926
475991
|
} finally {
|
|
475927
475992
|
if (queryGuard.end(thisGeneration)) {
|
|
475928
475993
|
setLastQueryCompletionTime(Date.now());
|
|
@@ -477601,6 +477666,7 @@ Note: ctrl + z now suspends AtlasHarness, ctrl + _ undoes input.
|
|
|
477601
477666
|
var import_compiler_runtime323, React137, import_react280, jsx_dev_runtime427, UltraplanChoiceDialog = () => null, UltraplanLaunchDialog = () => null, launchUltraplan2 = null, useVoiceIntegration2, VoiceKeybindingHandler2, useAntOrgWarningNotification = () => {}, getCoordinatorUserContext3, SUGGEST_BG_PR_NOOP = (_p, _n) => false, useScheduledTasks2, EMPTY_MCP_CLIENTS2, RECENT_SCROLL_REPIN_WINDOW_MS = 3000, TITLE_ANIMATION_FRAMES, TITLE_STATIC_PREFIX = "✳", TITLE_ANIMATION_INTERVAL_MS = 960;
|
|
477602
477667
|
var init_REPL = __esm(() => {
|
|
477603
477668
|
init_shared();
|
|
477669
|
+
init_modelprovider2();
|
|
477604
477670
|
init_bootstrap();
|
|
477605
477671
|
init_bootstrapState();
|
|
477606
477672
|
init_tokenBudget();
|
package/package.json
CHANGED