ather-code 0.34.4 → 0.34.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.mjs +132 -91
- package/dist/sdk.mjs +333 -38
- package/package.json +1 -1
package/dist/sdk.mjs
CHANGED
|
@@ -10126,7 +10126,7 @@ var init_version = __esm(() => {
|
|
|
10126
10126
|
import_semver = __toESM(require_semver2(), 1);
|
|
10127
10127
|
fallbackBuildVersion = (() => {
|
|
10128
10128
|
try {
|
|
10129
|
-
return "0.34.
|
|
10129
|
+
return "0.34.6";
|
|
10130
10130
|
} catch {
|
|
10131
10131
|
return "0.0.0";
|
|
10132
10132
|
}
|
|
@@ -71313,7 +71313,7 @@ function getAttributionHeader(fingerprint, policy) {
|
|
|
71313
71313
|
if (!policy.generate) {
|
|
71314
71314
|
return "";
|
|
71315
71315
|
}
|
|
71316
|
-
const version2 = `${"0.34.
|
|
71316
|
+
const version2 = `${"0.34.6"}.${fingerprint}`;
|
|
71317
71317
|
const entrypoint = process.env.ATHER_CODE_ENTRYPOINT ?? "unknown";
|
|
71318
71318
|
const cch = "";
|
|
71319
71319
|
const workload = getWorkload();
|
|
@@ -104330,7 +104330,7 @@ var init_metadata = __esm(() => {
|
|
|
104330
104330
|
COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
|
|
104331
104331
|
WHITESPACE_REGEX = /\s+/;
|
|
104332
104332
|
getVersionBase = memoize_default(() => {
|
|
104333
|
-
const match = "0.34.
|
|
104333
|
+
const match = "0.34.6".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
|
|
104334
104334
|
return match ? match[0] : undefined;
|
|
104335
104335
|
});
|
|
104336
104336
|
buildEnvContext = memoize_default(async () => {
|
|
@@ -104370,9 +104370,9 @@ var init_metadata = __esm(() => {
|
|
|
104370
104370
|
isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
|
|
104371
104371
|
isAtherCodeAction: isEnvTruthy(process.env.ATHER_CODE_ACTION),
|
|
104372
104372
|
isAtherCodeAiAuth: isAtherSubscriber(),
|
|
104373
|
-
version: "0.34.
|
|
104373
|
+
version: "0.34.6",
|
|
104374
104374
|
versionBase: getVersionBase(),
|
|
104375
|
-
buildTime: "2026-10-
|
|
104375
|
+
buildTime: "2026-10-20T15:21:52.038Z",
|
|
104376
104376
|
deploymentEnvironment: env3.detectDeploymentEnvironment(),
|
|
104377
104377
|
...isEnvTruthy(process.env.GITHUB_ACTIONS) && {
|
|
104378
104378
|
githubEventName: process.env.GITHUB_EVENT_NAME,
|
|
@@ -112587,7 +112587,7 @@ var init_effort = __esm(() => {
|
|
|
112587
112587
|
// src/utils/userAgent.ts
|
|
112588
112588
|
function getAtherCodeUserAgent() {
|
|
112589
112589
|
try {
|
|
112590
|
-
return `ather-code/${"0.34.
|
|
112590
|
+
return `ather-code/${"0.34.6"}`;
|
|
112591
112591
|
} catch {
|
|
112592
112592
|
return "ather-code/0.0.0";
|
|
112593
112593
|
}
|
|
@@ -112599,7 +112599,7 @@ function getUserAgent() {
|
|
|
112599
112599
|
const clientApp = process.env.ATHER_CODE_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.ATHER_CODE_AGENT_SDK_CLIENT_APP}` : "";
|
|
112600
112600
|
const workload = getWorkload();
|
|
112601
112601
|
const workloadSuffix = workload ? `, workload/${workload}` : "";
|
|
112602
|
-
return `ather-code/${"0.34.
|
|
112602
|
+
return `ather-code/${"0.34.6"} (${"external"}, ${process.env.ATHER_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
|
|
112603
112603
|
}
|
|
112604
112604
|
function getMCPUserAgent() {
|
|
112605
112605
|
const parts = [];
|
|
@@ -112613,7 +112613,7 @@ function getMCPUserAgent() {
|
|
|
112613
112613
|
parts.push(`client-app/${process.env.ATHER_CODE_AGENT_SDK_CLIENT_APP}`);
|
|
112614
112614
|
}
|
|
112615
112615
|
const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
|
|
112616
|
-
return `ather-code/${"0.34.
|
|
112616
|
+
return `ather-code/${"0.34.6"}${suffix}`;
|
|
112617
112617
|
}
|
|
112618
112618
|
function getWebFetchUserAgent() {
|
|
112619
112619
|
const supportUrl = isFirstPartyAnthropicProvider() ? "https://support.anthropic.com/" : "https://github.com/Atharva/ather-code";
|
|
@@ -149980,7 +149980,7 @@ function computeFingerprint(messageText2, version2) {
|
|
|
149980
149980
|
}
|
|
149981
149981
|
function computeFingerprintFromMessages(messages) {
|
|
149982
149982
|
const firstMessageText = extractFirstMessageText(messages);
|
|
149983
|
-
return computeFingerprint(firstMessageText, "0.34.
|
|
149983
|
+
return computeFingerprint(firstMessageText, "0.34.6");
|
|
149984
149984
|
}
|
|
149985
149985
|
var FINGERPRINT_SALT = "59cf53e54c78";
|
|
149986
149986
|
var init_fingerprint = () => {};
|
|
@@ -150022,7 +150022,7 @@ async function sideQuery(opts) {
|
|
|
150022
150022
|
betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
|
|
150023
150023
|
}
|
|
150024
150024
|
const messageText2 = extractFirstUserMessageText(messages);
|
|
150025
|
-
const fingerprint = computeFingerprint(messageText2, "0.34.
|
|
150025
|
+
const fingerprint = computeFingerprint(messageText2, "0.34.6");
|
|
150026
150026
|
const attributionPolicy = resolveCurrentAnthropicAttributionPolicy({
|
|
150027
150027
|
attributionEnabled: isAttributionHeaderEnabled()
|
|
150028
150028
|
});
|
|
@@ -151319,7 +151319,7 @@ var init_client2 = __esm(() => {
|
|
|
151319
151319
|
const client = new Client({
|
|
151320
151320
|
name: "ather-code-code",
|
|
151321
151321
|
title: "Ather Code",
|
|
151322
|
-
version: "0.34.
|
|
151322
|
+
version: "0.34.6",
|
|
151323
151323
|
description: "Ather Code — a terminal coding agent that works with any model provider",
|
|
151324
151324
|
websiteUrl: PRODUCT_URL
|
|
151325
151325
|
}, {
|
|
@@ -221251,6 +221251,282 @@ var init_postSamplingHooks = __esm(() => {
|
|
|
221251
221251
|
postSamplingHooks = [];
|
|
221252
221252
|
});
|
|
221253
221253
|
|
|
221254
|
+
// src/services/orchestrator/managerReview.ts
|
|
221255
|
+
var SKIP_DIRS;
|
|
221256
|
+
var init_managerReview = __esm(() => {
|
|
221257
|
+
init_debug();
|
|
221258
|
+
SKIP_DIRS = new Set([
|
|
221259
|
+
"node_modules",
|
|
221260
|
+
".git",
|
|
221261
|
+
"dist",
|
|
221262
|
+
"build",
|
|
221263
|
+
"out",
|
|
221264
|
+
".next",
|
|
221265
|
+
"coverage",
|
|
221266
|
+
".cache",
|
|
221267
|
+
"vendor"
|
|
221268
|
+
]);
|
|
221269
|
+
});
|
|
221270
|
+
|
|
221271
|
+
// src/services/orchestrator/state.ts
|
|
221272
|
+
function createOrchestratorState(missionTitle, tasks = []) {
|
|
221273
|
+
return {
|
|
221274
|
+
missionTitle: missionTitle.trim() || "Untitled mission",
|
|
221275
|
+
tasks,
|
|
221276
|
+
activeWorkerId: null,
|
|
221277
|
+
consecutiveFails: 0
|
|
221278
|
+
};
|
|
221279
|
+
}
|
|
221280
|
+
function resetConsecutiveFails(state2) {
|
|
221281
|
+
state2.consecutiveFails = 0;
|
|
221282
|
+
return state2;
|
|
221283
|
+
}
|
|
221284
|
+
function recordManagerFail(state2) {
|
|
221285
|
+
state2.consecutiveFails += 1;
|
|
221286
|
+
return state2.consecutiveFails;
|
|
221287
|
+
}
|
|
221288
|
+
function isHalted(state2) {
|
|
221289
|
+
return state2.consecutiveFails >= MAX_CONSECUTIVE_FAILS;
|
|
221290
|
+
}
|
|
221291
|
+
var MAX_CONSECUTIVE_FAILS = 3;
|
|
221292
|
+
|
|
221293
|
+
// src/services/orchestrator/missionStore.ts
|
|
221294
|
+
function initialState(missionTitle) {
|
|
221295
|
+
return {
|
|
221296
|
+
state: createOrchestratorState(missionTitle),
|
|
221297
|
+
workerLog: [],
|
|
221298
|
+
managerReviews: [],
|
|
221299
|
+
tokensUsed: 0,
|
|
221300
|
+
statusMessage: "Waiting for the worker…",
|
|
221301
|
+
startedAt: Date.now(),
|
|
221302
|
+
interruptedUntil: 0,
|
|
221303
|
+
active: false,
|
|
221304
|
+
completed: false,
|
|
221305
|
+
completedAt: 0,
|
|
221306
|
+
completionMessage: ""
|
|
221307
|
+
};
|
|
221308
|
+
}
|
|
221309
|
+
function publish2(next) {
|
|
221310
|
+
snapshot2 = next;
|
|
221311
|
+
for (const listener2 of listeners3) {
|
|
221312
|
+
try {
|
|
221313
|
+
listener2();
|
|
221314
|
+
} catch {}
|
|
221315
|
+
}
|
|
221316
|
+
}
|
|
221317
|
+
function markMissionComplete(message = "Orchestration Complete") {
|
|
221318
|
+
if (snapshot2.completed)
|
|
221319
|
+
return;
|
|
221320
|
+
publish2({
|
|
221321
|
+
...snapshot2,
|
|
221322
|
+
active: false,
|
|
221323
|
+
completed: true,
|
|
221324
|
+
completedAt: Date.now(),
|
|
221325
|
+
completionMessage: message,
|
|
221326
|
+
statusMessage: message
|
|
221327
|
+
});
|
|
221328
|
+
}
|
|
221329
|
+
function markMissionHalted(message) {
|
|
221330
|
+
publish2({
|
|
221331
|
+
...snapshot2,
|
|
221332
|
+
active: false,
|
|
221333
|
+
completed: true,
|
|
221334
|
+
completedAt: Date.now(),
|
|
221335
|
+
completionMessage: "Orchestration Complete",
|
|
221336
|
+
statusMessage: "Halted — human intervention required."
|
|
221337
|
+
});
|
|
221338
|
+
}
|
|
221339
|
+
function setMissionStatus(statusMessage) {
|
|
221340
|
+
publish2({ ...snapshot2, statusMessage });
|
|
221341
|
+
}
|
|
221342
|
+
function appendWorkerLog(line) {
|
|
221343
|
+
const trimmed = line.trim();
|
|
221344
|
+
if (!trimmed)
|
|
221345
|
+
return;
|
|
221346
|
+
const workerLog = [...snapshot2.workerLog, trimmed].slice(-MISSION_LOG_LIMIT);
|
|
221347
|
+
publish2({ ...snapshot2, workerLog });
|
|
221348
|
+
}
|
|
221349
|
+
function appendManagerReview(status, toolName, reason) {
|
|
221350
|
+
reviewSequence += 1;
|
|
221351
|
+
const entry = {
|
|
221352
|
+
id: reviewSequence,
|
|
221353
|
+
status,
|
|
221354
|
+
toolName,
|
|
221355
|
+
reason: reason.trim(),
|
|
221356
|
+
at: Date.now()
|
|
221357
|
+
};
|
|
221358
|
+
const managerReviews = [...snapshot2.managerReviews, entry].slice(-MISSION_REVIEW_LIMIT);
|
|
221359
|
+
publish2({
|
|
221360
|
+
...snapshot2,
|
|
221361
|
+
managerReviews,
|
|
221362
|
+
interruptedUntil: status === "FAIL" ? Date.now() + MISSION_INTERRUPT_FLASH_MS : snapshot2.interruptedUntil
|
|
221363
|
+
});
|
|
221364
|
+
}
|
|
221365
|
+
function addMissionTokens(tokens) {
|
|
221366
|
+
if (!Number.isFinite(tokens) || tokens <= 0)
|
|
221367
|
+
return;
|
|
221368
|
+
publish2({ ...snapshot2, tokensUsed: snapshot2.tokensUsed + Math.round(tokens) });
|
|
221369
|
+
}
|
|
221370
|
+
function setMissionFails(consecutiveFails) {
|
|
221371
|
+
publish2({
|
|
221372
|
+
...snapshot2,
|
|
221373
|
+
state: { ...snapshot2.state, consecutiveFails }
|
|
221374
|
+
});
|
|
221375
|
+
}
|
|
221376
|
+
function setMissionTasks(tasks) {
|
|
221377
|
+
publish2({ ...snapshot2, state: { ...snapshot2.state, tasks } });
|
|
221378
|
+
}
|
|
221379
|
+
function syncMissionTasksFromTodos(todos) {
|
|
221380
|
+
if (!Array.isArray(todos))
|
|
221381
|
+
return;
|
|
221382
|
+
const statusMap = {
|
|
221383
|
+
pending: "pending",
|
|
221384
|
+
in_progress: "running",
|
|
221385
|
+
completed: "success"
|
|
221386
|
+
};
|
|
221387
|
+
const tasks = [];
|
|
221388
|
+
todos.forEach((todo, index) => {
|
|
221389
|
+
if (!todo || typeof todo !== "object")
|
|
221390
|
+
return;
|
|
221391
|
+
const record2 = todo;
|
|
221392
|
+
const title = typeof record2.content === "string" ? record2.content : typeof record2.title === "string" ? record2.title : `Task ${index + 1}`;
|
|
221393
|
+
const rawStatus = typeof record2.status === "string" ? record2.status : "pending";
|
|
221394
|
+
tasks.push({
|
|
221395
|
+
id: String(index + 1),
|
|
221396
|
+
title,
|
|
221397
|
+
status: statusMap[rawStatus] ?? "pending"
|
|
221398
|
+
});
|
|
221399
|
+
});
|
|
221400
|
+
if (tasks.length > 0)
|
|
221401
|
+
setMissionTasks(tasks);
|
|
221402
|
+
}
|
|
221403
|
+
var MISSION_LOG_LIMIT = 50, MISSION_REVIEW_LIMIT = 20, MISSION_INTERRUPT_FLASH_MS = 1200, snapshot2, reviewSequence = 0, listeners3;
|
|
221404
|
+
var init_missionStore = __esm(() => {
|
|
221405
|
+
snapshot2 = initialState("Untitled mission");
|
|
221406
|
+
listeners3 = new Set;
|
|
221407
|
+
});
|
|
221408
|
+
|
|
221409
|
+
// src/services/orchestrator/supervision.ts
|
|
221410
|
+
function buildHaltInjection(reason) {
|
|
221411
|
+
const sentence = reason.trim().replace(/[.!?]+$/, "");
|
|
221412
|
+
return `${INTERRUPT_PREFIX}: The Manager aborted your action. Reason: ${sentence}. Re-evaluate immediately.`;
|
|
221413
|
+
}
|
|
221414
|
+
function buildSupervisorHaltMessage() {
|
|
221415
|
+
return `\uD83D\uDED1 SUPERVISOR HALT: Worker failed ${MAX_CONSECUTIVE_FAILS} times. Human intervention required.`;
|
|
221416
|
+
}
|
|
221417
|
+
function stopSupervision() {
|
|
221418
|
+
if (!active)
|
|
221419
|
+
return;
|
|
221420
|
+
active = null;
|
|
221421
|
+
activeReviewer = null;
|
|
221422
|
+
const logger = activeLogger;
|
|
221423
|
+
activeLogger = null;
|
|
221424
|
+
logger?.({ type: "stopped" });
|
|
221425
|
+
markMissionComplete();
|
|
221426
|
+
}
|
|
221427
|
+
function emit2(event) {
|
|
221428
|
+
try {
|
|
221429
|
+
activeLogger?.(event);
|
|
221430
|
+
} catch (error40) {
|
|
221431
|
+
logForDebugging(`[orchestrator] supervision logger failed: ${String(error40)}`);
|
|
221432
|
+
}
|
|
221433
|
+
}
|
|
221434
|
+
function buildTaskContext(state2) {
|
|
221435
|
+
const tasks = state2.tasks.length ? state2.tasks.map((task) => `- [${task.status}] ${task.title}${task.detail ? ` — ${task.detail}` : ""}`).join(`
|
|
221436
|
+
`) : "(no task list — single-action review)";
|
|
221437
|
+
return [
|
|
221438
|
+
`MISSION: ${state2.missionTitle}`,
|
|
221439
|
+
`WORKER: ${state2.activeWorkerId ?? "main"}`,
|
|
221440
|
+
`STRIKES: ${state2.consecutiveFails}/${MAX_CONSECUTIVE_FAILS}`,
|
|
221441
|
+
`TASKS:
|
|
221442
|
+
${tasks}`
|
|
221443
|
+
].join(`
|
|
221444
|
+
`);
|
|
221445
|
+
}
|
|
221446
|
+
function describeToolCall(toolInput) {
|
|
221447
|
+
if (!toolInput || typeof toolInput !== "object")
|
|
221448
|
+
return "";
|
|
221449
|
+
const input = toolInput;
|
|
221450
|
+
if (typeof input.command === "string")
|
|
221451
|
+
return `$ ${input.command}`;
|
|
221452
|
+
if (typeof input.file_path === "string")
|
|
221453
|
+
return input.file_path;
|
|
221454
|
+
if (typeof input.pattern === "string")
|
|
221455
|
+
return `/${input.pattern}/`;
|
|
221456
|
+
try {
|
|
221457
|
+
return JSON.stringify(toolInput).slice(0, 80);
|
|
221458
|
+
} catch {
|
|
221459
|
+
return "";
|
|
221460
|
+
}
|
|
221461
|
+
}
|
|
221462
|
+
async function reviewProposedToolCall(toolName, toolInput, options2 = {}) {
|
|
221463
|
+
const supervision = active;
|
|
221464
|
+
const reviewer = activeReviewer;
|
|
221465
|
+
if (!supervision || !reviewer || supervision.halted)
|
|
221466
|
+
return null;
|
|
221467
|
+
const recentToolCalls = [...supervision.toolWindow];
|
|
221468
|
+
try {
|
|
221469
|
+
appendWorkerLog(`${toolName} ${describeToolCall(toolInput)}`);
|
|
221470
|
+
setMissionStatus(`Manager reviewing ${toolName}…`);
|
|
221471
|
+
const verdict = await reviewer({
|
|
221472
|
+
taskContext: buildTaskContext(supervision.state),
|
|
221473
|
+
toolName,
|
|
221474
|
+
toolInput,
|
|
221475
|
+
recentToolCalls,
|
|
221476
|
+
signal: options2.signal,
|
|
221477
|
+
onUsage: addMissionTokens
|
|
221478
|
+
});
|
|
221479
|
+
supervision.toolWindow.push({ toolName, toolInput });
|
|
221480
|
+
if (supervision.toolWindow.length > 3) {
|
|
221481
|
+
supervision.toolWindow.splice(0, supervision.toolWindow.length - 3);
|
|
221482
|
+
}
|
|
221483
|
+
if (verdict.status === "PASS") {
|
|
221484
|
+
resetConsecutiveFails(supervision.state);
|
|
221485
|
+
setMissionFails(0);
|
|
221486
|
+
appendManagerReview("PASS", toolName, "");
|
|
221487
|
+
setMissionStatus("Worker executing…");
|
|
221488
|
+
if (toolName === "TodoWrite" && toolInput && typeof toolInput === "object") {
|
|
221489
|
+
syncMissionTasksFromTodos(toolInput.todos);
|
|
221490
|
+
}
|
|
221491
|
+
emit2({ type: "review-pass", toolName });
|
|
221492
|
+
return null;
|
|
221493
|
+
}
|
|
221494
|
+
const reason = verdict.reason || "action rejected by the Manager";
|
|
221495
|
+
const fails = recordManagerFail(supervision.state);
|
|
221496
|
+
setMissionFails(fails);
|
|
221497
|
+
appendManagerReview("FAIL", toolName, reason);
|
|
221498
|
+
appendWorkerLog("\uD83D\uDED1 Manager aborted the action");
|
|
221499
|
+
setMissionStatus("Interrupted — re-evaluating…");
|
|
221500
|
+
emit2({ type: "review-fail", toolName, reason, fails });
|
|
221501
|
+
if (supervision.abortController.signal.aborted) {
|
|
221502
|
+
supervision.abortController = new AbortController;
|
|
221503
|
+
}
|
|
221504
|
+
supervision.abortController.abort(reason);
|
|
221505
|
+
const injected = buildHaltInjection(reason);
|
|
221506
|
+
emit2({ type: "interrupt", toolName, reason, injected });
|
|
221507
|
+
if (isHalted(supervision.state)) {
|
|
221508
|
+
const message = buildSupervisorHaltMessage();
|
|
221509
|
+
supervision.halted = true;
|
|
221510
|
+
lastHalt = { message, reason };
|
|
221511
|
+
markMissionHalted(message);
|
|
221512
|
+
emit2({ type: "halt", fails, message });
|
|
221513
|
+
stopSupervision();
|
|
221514
|
+
return `${injected}
|
|
221515
|
+
${message}`;
|
|
221516
|
+
}
|
|
221517
|
+
return injected;
|
|
221518
|
+
} catch (error40) {
|
|
221519
|
+
logForDebugging(`[orchestrator] supervisor review failed for ${toolName}: ${String(error40)}`);
|
|
221520
|
+
return null;
|
|
221521
|
+
}
|
|
221522
|
+
}
|
|
221523
|
+
var INTERRUPT_PREFIX = "[SYSTEM HALT]", active = null, activeReviewer = null, activeLogger = null, lastHalt = null;
|
|
221524
|
+
var init_supervision = __esm(() => {
|
|
221525
|
+
init_debug();
|
|
221526
|
+
init_managerReview();
|
|
221527
|
+
init_missionStore();
|
|
221528
|
+
});
|
|
221529
|
+
|
|
221254
221530
|
// src/utils/doomLoop.ts
|
|
221255
221531
|
var exports_doomLoop = {};
|
|
221256
221532
|
__export(exports_doomLoop, {
|
|
@@ -222857,6 +223133,24 @@ async function* runToolUse(toolUse, assistantMessage, canUseTool, toolUseContext
|
|
|
222857
223133
|
};
|
|
222858
223134
|
return;
|
|
222859
223135
|
}
|
|
223136
|
+
const supervisorHalt = await reviewProposedToolCall(toolName, toolUse.input);
|
|
223137
|
+
if (supervisorHalt) {
|
|
223138
|
+
yield {
|
|
223139
|
+
message: createUserMessage({
|
|
223140
|
+
content: [
|
|
223141
|
+
{
|
|
223142
|
+
type: "tool_result",
|
|
223143
|
+
content: `<tool_use_error>${supervisorHalt}</tool_use_error>`,
|
|
223144
|
+
is_error: true,
|
|
223145
|
+
tool_use_id: toolUse.id
|
|
223146
|
+
}
|
|
223147
|
+
],
|
|
223148
|
+
toolUseResult: supervisorHalt,
|
|
223149
|
+
sourceToolAssistantUUID: assistantMessage.uuid
|
|
223150
|
+
})
|
|
223151
|
+
};
|
|
223152
|
+
return;
|
|
223153
|
+
}
|
|
222860
223154
|
const toolInput = toolUse.input;
|
|
222861
223155
|
try {
|
|
222862
223156
|
if (toolUseContext.abortController.signal.aborted) {
|
|
@@ -223696,6 +223990,7 @@ var init_toolExecution = __esm(() => {
|
|
|
223696
223990
|
init_metadata();
|
|
223697
223991
|
init_state();
|
|
223698
223992
|
init_Tool();
|
|
223993
|
+
init_supervision();
|
|
223699
223994
|
init_bashPermissions();
|
|
223700
223995
|
init_prompt3();
|
|
223701
223996
|
init_prompt4();
|
|
@@ -229748,7 +230043,7 @@ function getAnthropicEnvMetadata() {
|
|
|
229748
230043
|
function getBuildAgeMinutes() {
|
|
229749
230044
|
if (false)
|
|
229750
230045
|
;
|
|
229751
|
-
const buildTime = new Date("2026-10-
|
|
230046
|
+
const buildTime = new Date("2026-10-20T15:21:52.038Z").getTime();
|
|
229752
230047
|
if (isNaN(buildTime))
|
|
229753
230048
|
return;
|
|
229754
230049
|
return Math.floor((Date.now() - buildTime) / 60000);
|
|
@@ -240756,10 +241051,10 @@ async function* openaiStreamToAnthropic(response, model, signal, isOllama, reque
|
|
|
240756
241051
|
xmlToolCallText = combined.slice(openIdx);
|
|
240757
241052
|
} else {
|
|
240758
241053
|
const keep = trailingXmlOpenerPrefixLen(combined, allowHy3ToolCalls);
|
|
240759
|
-
const
|
|
241054
|
+
const emit3 = keep > 0 ? combined.slice(0, combined.length - keep) : combined;
|
|
240760
241055
|
xmlHoldback = keep > 0 ? combined.slice(combined.length - keep) : "";
|
|
240761
|
-
if (
|
|
240762
|
-
yield* emitTextDelta(
|
|
241056
|
+
if (emit3)
|
|
241057
|
+
yield* emitTextDelta(emit3);
|
|
240763
241058
|
}
|
|
240764
241059
|
}
|
|
240765
241060
|
}
|
|
@@ -240848,18 +241143,18 @@ async function* openaiStreamToAnthropic(response, model, signal, isOllama, reque
|
|
|
240848
241143
|
};
|
|
240849
241144
|
}
|
|
240850
241145
|
} else if (tc.function?.arguments) {
|
|
240851
|
-
const
|
|
240852
|
-
if (
|
|
241146
|
+
const active2 = activeToolCalls.get(tc.index);
|
|
241147
|
+
if (active2) {
|
|
240853
241148
|
if (tc.function.arguments) {
|
|
240854
|
-
|
|
241149
|
+
active2.jsonBuffer += tc.function.arguments;
|
|
240855
241150
|
}
|
|
240856
|
-
if (
|
|
241151
|
+
if (active2.normalizeAtStop) {
|
|
240857
241152
|
continue;
|
|
240858
241153
|
}
|
|
240859
241154
|
throwIfStreamAborted2(signal);
|
|
240860
241155
|
yield {
|
|
240861
241156
|
type: "content_block_delta",
|
|
240862
|
-
index:
|
|
241157
|
+
index: active2.index,
|
|
240863
241158
|
delta: {
|
|
240864
241159
|
type: "input_json_delta",
|
|
240865
241160
|
partial_json: tc.function.arguments
|
|
@@ -256505,12 +256800,12 @@ class Project {
|
|
|
256505
256800
|
}
|
|
256506
256801
|
});
|
|
256507
256802
|
}
|
|
256508
|
-
async insertFileHistorySnapshot(messageId,
|
|
256803
|
+
async insertFileHistorySnapshot(messageId, snapshot3, isSnapshotUpdate) {
|
|
256509
256804
|
return this.trackWrite(async () => {
|
|
256510
256805
|
const fileHistoryMessage = {
|
|
256511
256806
|
type: "file-history-snapshot",
|
|
256512
256807
|
messageId,
|
|
256513
|
-
snapshot:
|
|
256808
|
+
snapshot: snapshot3,
|
|
256514
256809
|
isSnapshotUpdate
|
|
256515
256810
|
};
|
|
256516
256811
|
await this.appendEntry(fileHistoryMessage);
|
|
@@ -256521,9 +256816,9 @@ class Project {
|
|
|
256521
256816
|
await this.appendEntry(queueOp);
|
|
256522
256817
|
});
|
|
256523
256818
|
}
|
|
256524
|
-
async insertAttributionSnapshot(
|
|
256819
|
+
async insertAttributionSnapshot(snapshot3) {
|
|
256525
256820
|
return this.trackWrite(async () => {
|
|
256526
|
-
await this.appendEntry(
|
|
256821
|
+
await this.appendEntry(snapshot3);
|
|
256527
256822
|
});
|
|
256528
256823
|
}
|
|
256529
256824
|
async insertContentReplacement(replacements2, agentId) {
|
|
@@ -256743,11 +257038,11 @@ async function recordQueueOperation(queueOp) {
|
|
|
256743
257038
|
async function removeTranscriptMessage(targetUuid) {
|
|
256744
257039
|
await getProject().removeMessageByUuid(targetUuid);
|
|
256745
257040
|
}
|
|
256746
|
-
async function recordFileHistorySnapshot(messageId,
|
|
256747
|
-
await getProject().insertFileHistorySnapshot(messageId,
|
|
257041
|
+
async function recordFileHistorySnapshot(messageId, snapshot3, isSnapshotUpdate) {
|
|
257042
|
+
await getProject().insertFileHistorySnapshot(messageId, snapshot3, isSnapshotUpdate);
|
|
256748
257043
|
}
|
|
256749
|
-
async function recordAttributionSnapshot(
|
|
256750
|
-
await getProject().insertAttributionSnapshot(
|
|
257044
|
+
async function recordAttributionSnapshot(snapshot3) {
|
|
257045
|
+
await getProject().insertAttributionSnapshot(snapshot3);
|
|
256751
257046
|
}
|
|
256752
257047
|
async function recordContentReplacement(replacements2, agentId) {
|
|
256753
257048
|
await getProject().insertContentReplacement(replacements2, agentId);
|
|
@@ -256776,14 +257071,14 @@ async function recordContextCollapseCommit(commit) {
|
|
|
256776
257071
|
...commit
|
|
256777
257072
|
});
|
|
256778
257073
|
}
|
|
256779
|
-
async function recordContextCollapseSnapshot(
|
|
257074
|
+
async function recordContextCollapseSnapshot(snapshot3) {
|
|
256780
257075
|
const sessionId = getSessionId();
|
|
256781
257076
|
if (!sessionId)
|
|
256782
257077
|
return;
|
|
256783
257078
|
await getProject().appendEntry({
|
|
256784
257079
|
type: "marble-origami-snapshot",
|
|
256785
257080
|
sessionId,
|
|
256786
|
-
...
|
|
257081
|
+
...snapshot3
|
|
256787
257082
|
});
|
|
256788
257083
|
}
|
|
256789
257084
|
async function flushSessionStorage() {
|
|
@@ -257431,13 +257726,13 @@ function buildFileHistorySnapshotChain(fileHistorySnapshots, conversation) {
|
|
|
257431
257726
|
if (!snapshotMessage) {
|
|
257432
257727
|
continue;
|
|
257433
257728
|
}
|
|
257434
|
-
const { snapshot:
|
|
257435
|
-
const existingIndex = isSnapshotUpdate ? indexByMessageId.get(
|
|
257729
|
+
const { snapshot: snapshot3, isSnapshotUpdate } = snapshotMessage;
|
|
257730
|
+
const existingIndex = isSnapshotUpdate ? indexByMessageId.get(snapshot3.messageId) : undefined;
|
|
257436
257731
|
if (existingIndex === undefined) {
|
|
257437
|
-
indexByMessageId.set(
|
|
257438
|
-
snapshots.push(
|
|
257732
|
+
indexByMessageId.set(snapshot3.messageId, snapshots.length);
|
|
257733
|
+
snapshots.push(snapshot3);
|
|
257439
257734
|
} else {
|
|
257440
|
-
snapshots[existingIndex] =
|
|
257735
|
+
snapshots[existingIndex] = snapshot3;
|
|
257441
257736
|
}
|
|
257442
257737
|
}
|
|
257443
257738
|
return snapshots;
|
|
@@ -259118,7 +259413,7 @@ var init_sessionStorage = __esm(() => {
|
|
|
259118
259413
|
init_slowOperations();
|
|
259119
259414
|
init_transcriptFileLock();
|
|
259120
259415
|
init_uuid();
|
|
259121
|
-
VERSION3 = typeof MACRO !== "undefined" ? "0.34.
|
|
259416
|
+
VERSION3 = typeof MACRO !== "undefined" ? "0.34.6" : "unknown";
|
|
259122
259417
|
MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
|
|
259123
259418
|
TRANSCRIPT_COPY_CHUNK_BYTES = 64 * 1024;
|
|
259124
259419
|
transcriptRewriteHooksForTesting = {};
|
|
@@ -260585,7 +260880,7 @@ var init_filesystem = __esm(() => {
|
|
|
260585
260880
|
});
|
|
260586
260881
|
getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
|
|
260587
260882
|
const nonce = randomBytes10(16).toString("hex");
|
|
260588
|
-
return join95(getAtherCodeTempDir(), "bundled-skills", "0.34.
|
|
260883
|
+
return join95(getAtherCodeTempDir(), "bundled-skills", "0.34.6", nonce);
|
|
260589
260884
|
});
|
|
260590
260885
|
getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
|
|
260591
260886
|
});
|
|
@@ -275092,7 +275387,7 @@ function buildSystemInitMessage(inputs) {
|
|
|
275092
275387
|
slash_commands: inputs.commands.filter((c7) => c7.userInvocable !== false).map((c7) => c7.name),
|
|
275093
275388
|
apiKeySource: getAtherApiKeyWithSource().source,
|
|
275094
275389
|
betas: getSdkBetas(),
|
|
275095
|
-
ather_code_code_version: "0.34.
|
|
275390
|
+
ather_code_code_version: "0.34.6",
|
|
275096
275391
|
output_style: outputStyle,
|
|
275097
275392
|
agents: inputs.agents.map((agent) => agent.agentType),
|
|
275098
275393
|
skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill) => skill.name),
|