@alan-ai-hq/agent-manager-linux-arm64 0.1.138 → 0.1.140
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/alan-agent.cjs +829 -348
- package/alan-holder.cjs +94 -64
- package/package.json +1 -1
package/alan-holder.cjs
CHANGED
|
@@ -20742,7 +20742,11 @@ var init_github_proxy = __esm({
|
|
|
20742
20742
|
"github.com"
|
|
20743
20743
|
];
|
|
20744
20744
|
gitHubProxyUpstreamSchema = external_exports.enum(GITHUB_PROXY_UPSTREAMS);
|
|
20745
|
-
GITHUB_PROXY_REFUSAL_CODES = [
|
|
20745
|
+
GITHUB_PROXY_REFUSAL_CODES = [
|
|
20746
|
+
"host_not_proxied",
|
|
20747
|
+
"machine_not_allowed",
|
|
20748
|
+
"github_not_connected"
|
|
20749
|
+
];
|
|
20746
20750
|
gitHubProxyErrorSchema = external_exports.object({
|
|
20747
20751
|
message: external_exports.string().min(1),
|
|
20748
20752
|
documentation_url: external_exports.string(),
|
|
@@ -21954,13 +21958,9 @@ So when a turn depends on something the repository cannot tell you \u2014 a valu
|
|
|
21954
21958
|
What comes back is the answer, not a step towards it. Carry its specifics into what you write or change \u2014 the value, the constraint, the reason, the person \u2014 and say plainly when the evidence contradicts what was asked for. Retrieving a decision and then producing work that ignores it is worse than never having searched, because it looks informed.
|
|
21955
21959
|
|
|
21956
21960
|
Skip it when nothing team-specific is at stake: source-code questions, general knowledge, mechanical work fully specified in the request, or an exact ID already in hand.`;
|
|
21957
|
-
ALAN_PLATFORM_TOOL_ROUTING_PROMPT = `## Alan platform
|
|
21958
|
-
|
|
21959
|
-
Use the matching Alan MCP tool to retrieve or change canonical Alan records \u2014 tasks, sessions, documents, artifacts, and their relationships \u2014 to perform Alan platform actions such as managing runs or machines, or to act through a provider identity connected to Alan. This applies whether the agent runs locally or in the cloud. Do not use a shell CLI, browser, raw HTTP, or local files to bypass an unavailable or unauthorized Alan MCP action; those paths bypass Alan's identity, authorization, audit trail, and task linkage.
|
|
21960
|
-
|
|
21961
|
-
Use computer use and browser tools for authorized product debugging and QA, including inspecting the authenticated Alan app, its transient DOM and CSS state, and exercising UI flows in development or test environments. These tools are also available for ordinary browser and computer tasks outside Alan. Use local tools for repository, process, and log diagnostics. Exercising a UI for QA is not a substitute for carrying out a blocked platform record action.
|
|
21961
|
+
ALAN_PLATFORM_TOOL_ROUTING_PROMPT = `## Alan platform and GitHub
|
|
21962
21962
|
|
|
21963
|
-
|
|
21963
|
+
Use Alan MCP tools for canonical Alan records and platform actions: tasks, sessions, documents, artifacts, runs, and machines. Use the available repository tools for GitHub work, including git and gh when useful. If a cloud GitHub request reports github_not_connected, call request_github_connection in the current conversation and end the turn. The chat will offer GitHub authorization and resume after the user connects. Continue other independent work when possible.`;
|
|
21964
21964
|
ALAN_IDENTITY_PROMPT = `You are Alan, the software factory agent. Alan ships software end to end \u2014 plan, write, review, test, deploy.
|
|
21965
21965
|
|
|
21966
21966
|
## How Alan is structured
|
|
@@ -21998,10 +21998,10 @@ Team
|
|
|
21998
21998
|
|
|
21999
21999
|
${ALAN_PLATFORM_TOOL_ROUTING_PROMPT}
|
|
22000
22000
|
|
|
22001
|
-
## Record & Entity Resolution (Tasks,
|
|
22001
|
+
## Record & Entity Resolution (Tasks, Docs, Epics)
|
|
22002
22002
|
|
|
22003
|
-
When the user refers to a specific task,
|
|
22004
|
-
- **Always resolve it with \`find_records\` first** (pass \`kinds: ["task"]\`, \`["document"]\`,
|
|
22003
|
+
When the user refers to a specific task, document, or epic by human identifier (e.g. \`AL-2980\`, \`2980\`), title, or topic phrase:
|
|
22004
|
+
- **Always resolve it with \`find_records\` first** (pass \`kinds: ["task"]\`, \`["document"]\`, or \`["epic"]\`).
|
|
22005
22005
|
- **Never scan with \`list_tasks\` or \`list_epics\`** to locate a specific item whose number or title you were already given \u2014 list tools are strictly for paginating browsable boards of work, not for lookup.
|
|
22006
22006
|
- Once \`find_records\` returns the entity, call \`get_task\` / \`get_epic\` / \`get_document\` with the resolved identifier or UUID if full relational details, comments, or subtasks are required.
|
|
22007
22007
|
|
|
@@ -22477,8 +22477,8 @@ function decode3(bytes, start, end) {
|
|
|
22477
22477
|
}
|
|
22478
22478
|
async function linuxStartTicks(pid) {
|
|
22479
22479
|
try {
|
|
22480
|
-
const
|
|
22481
|
-
const fields =
|
|
22480
|
+
const stat15 = await (0, import_promises5.readFile)(`/proc/${pid}/stat`, "utf8");
|
|
22481
|
+
const fields = stat15.slice(stat15.lastIndexOf(")") + 2).split(" ");
|
|
22482
22482
|
return fields[19];
|
|
22483
22483
|
} catch {
|
|
22484
22484
|
return void 0;
|
|
@@ -23723,9 +23723,12 @@ var init_reduce = __esm({
|
|
|
23723
23723
|
});
|
|
23724
23724
|
|
|
23725
23725
|
// ../shared/dist/agent/acp/conversation-messages.js
|
|
23726
|
+
var PROVIDER_PAYLOAD_META_KEY, PROVIDER_EVENT_META_KEY;
|
|
23726
23727
|
var init_conversation_messages = __esm({
|
|
23727
23728
|
"../shared/dist/agent/acp/conversation-messages.js"() {
|
|
23728
23729
|
"use strict";
|
|
23730
|
+
PROVIDER_PAYLOAD_META_KEY = "alan.dev/providerPayload";
|
|
23731
|
+
PROVIDER_EVENT_META_KEY = "alan.dev/providerEvent";
|
|
23729
23732
|
}
|
|
23730
23733
|
});
|
|
23731
23734
|
|
|
@@ -23790,7 +23793,7 @@ var init_acp = __esm({
|
|
|
23790
23793
|
}
|
|
23791
23794
|
});
|
|
23792
23795
|
|
|
23793
|
-
// ../agent-core/dist/chunk-
|
|
23796
|
+
// ../agent-core/dist/chunk-XC5676SG.js
|
|
23794
23797
|
function textBlock(text2) {
|
|
23795
23798
|
return { type: "text", text: text2 };
|
|
23796
23799
|
}
|
|
@@ -24021,13 +24024,13 @@ function withoutInlineMedia(update) {
|
|
|
24021
24024
|
};
|
|
24022
24025
|
}
|
|
24023
24026
|
var PROVIDER_PAYLOAD_META, TOOL_RESULT_ONLY_META, PARENT_TOOL_CALL_META, SUBAGENT_LAUNCHER_META, SUBAGENT_TASK_ID_META, SUBAGENT_OUTPUT_FILE_META, USAGE_META, TODOS_META, NOTICE_KIND_META, ASK_USER_QUESTIONS_META, USER_ANSWER_META, AWAITING_TOOL_CALLS_META, EXIT_PLAN_MODE_INPUT_META, BACKGROUND_TASK_META, TASK_PROGRESS_META, RATE_LIMIT_META, MODEL_META, TOOLS_META, SLASH_COMMANDS_META, TOOL_KIND_RULES, ANSWER_PREFIX, ACCEPT_WORDS, MIN_INLINE_MEDIA_CHARS, DATA_URL_PREFIX, BASE64_BODY;
|
|
24024
|
-
var
|
|
24025
|
-
"../agent-core/dist/chunk-
|
|
24027
|
+
var init_chunk_XC5676SG = __esm({
|
|
24028
|
+
"../agent-core/dist/chunk-XC5676SG.js"() {
|
|
24026
24029
|
"use strict";
|
|
24027
24030
|
init_chunk_YXWJW7I5();
|
|
24028
24031
|
init_constants();
|
|
24029
24032
|
init_acp();
|
|
24030
|
-
PROVIDER_PAYLOAD_META =
|
|
24033
|
+
PROVIDER_PAYLOAD_META = PROVIDER_PAYLOAD_META_KEY;
|
|
24031
24034
|
TOOL_RESULT_ONLY_META = "alan.dev/toolResultOnly";
|
|
24032
24035
|
PARENT_TOOL_CALL_META = "alan.dev/parentToolCallId";
|
|
24033
24036
|
SUBAGENT_LAUNCHER_META = "alan.dev/subagentLauncher";
|
|
@@ -24072,17 +24075,17 @@ var init_chunk_UGRKZTAD = __esm({
|
|
|
24072
24075
|
var init_acp2 = __esm({
|
|
24073
24076
|
"../agent-core/dist/acp.js"() {
|
|
24074
24077
|
"use strict";
|
|
24075
|
-
|
|
24078
|
+
init_chunk_XC5676SG();
|
|
24076
24079
|
init_chunk_YXWJW7I5();
|
|
24077
24080
|
}
|
|
24078
24081
|
});
|
|
24079
24082
|
|
|
24080
|
-
// ../agent-core/dist/chunk-
|
|
24083
|
+
// ../agent-core/dist/chunk-SBT5W7L4.js
|
|
24081
24084
|
var import_fs3, NEWLINE2, TranscriptCursor, TranscriptLineLookup;
|
|
24082
|
-
var
|
|
24083
|
-
"../agent-core/dist/chunk-
|
|
24085
|
+
var init_chunk_SBT5W7L4 = __esm({
|
|
24086
|
+
"../agent-core/dist/chunk-SBT5W7L4.js"() {
|
|
24084
24087
|
"use strict";
|
|
24085
|
-
|
|
24088
|
+
init_chunk_XC5676SG();
|
|
24086
24089
|
init_chunk_YXWJW7I5();
|
|
24087
24090
|
import_fs3 = require("fs");
|
|
24088
24091
|
NEWLINE2 = 10;
|
|
@@ -24626,7 +24629,7 @@ var init_chunk_54ZRJOQP = __esm({
|
|
|
24626
24629
|
}
|
|
24627
24630
|
});
|
|
24628
24631
|
|
|
24629
|
-
// ../agent-core/dist/chunk-
|
|
24632
|
+
// ../agent-core/dist/chunk-VMGVHPBB.js
|
|
24630
24633
|
function collectStrings(value, out) {
|
|
24631
24634
|
if (typeof value === "string") out.push(value);
|
|
24632
24635
|
else if (Array.isArray(value)) for (const item of value) collectStrings(item, out);
|
|
@@ -24718,8 +24721,8 @@ function readMediaFiles(candidates2, cwd, mimeByExt, maxBytes) {
|
|
|
24718
24721
|
seen.add(path);
|
|
24719
24722
|
const mimeType = mimeByExt[(0, import_path3.extname)(path).toLowerCase()];
|
|
24720
24723
|
if (!mimeType) continue;
|
|
24721
|
-
const
|
|
24722
|
-
if (!
|
|
24724
|
+
const stat15 = (0, import_fs4.statSync)(path);
|
|
24725
|
+
if (!stat15.isFile() || stat15.size <= 0 || stat15.size > maxBytes) continue;
|
|
24723
24726
|
files.push({ path, mimeType, buffer: (0, import_fs4.readFileSync)(path) });
|
|
24724
24727
|
}
|
|
24725
24728
|
return files;
|
|
@@ -24996,10 +24999,10 @@ function silentStartError(name, timeoutMs) {
|
|
|
24996
24999
|
};
|
|
24997
25000
|
}
|
|
24998
25001
|
var import_crypto3, import_fs4, import_path3, IMAGE_MIME_BY_EXT, VIDEO_MIME_BY_EXT, IMAGE_EXTENSIONS, VIDEO_EXTENSIONS, MAX_IMAGE_BYTES, MAX_VIDEO_BYTES, AGENT_BROWSER_MENTION, LocalMediaReader, SessionOpenRefusal, JsonRpcError, ACP_PROTOCOL_VERSION, ACP_ERROR, STDERR_TAIL_LINES, RESULT_EXIT_GRACE_MS, PerTurnSession;
|
|
24999
|
-
var
|
|
25000
|
-
"../agent-core/dist/chunk-
|
|
25002
|
+
var init_chunk_VMGVHPBB = __esm({
|
|
25003
|
+
"../agent-core/dist/chunk-VMGVHPBB.js"() {
|
|
25001
25004
|
"use strict";
|
|
25002
|
-
|
|
25005
|
+
init_chunk_XC5676SG();
|
|
25003
25006
|
init_chunk_54ZRJOQP();
|
|
25004
25007
|
init_chunk_M6YHY2EZ();
|
|
25005
25008
|
init_chunk_YXWJW7I5();
|
|
@@ -26664,6 +26667,9 @@ function classifyResultError(event, context) {
|
|
|
26664
26667
|
if (classified.errorKind !== "unknown_cli_error" || !isApiError) return classified;
|
|
26665
26668
|
return { ...specForErrorKind("provider_error"), message: classified.message };
|
|
26666
26669
|
}
|
|
26670
|
+
function isIdleUpdate(update) {
|
|
26671
|
+
return isUpdate(update, "state_update") && update.state === "idle";
|
|
26672
|
+
}
|
|
26667
26673
|
function isSettled2(update) {
|
|
26668
26674
|
return update.status === "completed" || update.status === "failed" || update.status === "cancelled";
|
|
26669
26675
|
}
|
|
@@ -26897,9 +26903,9 @@ var import_crypto6, import_fs5, import_path5, import_crypto7, import_promises14,
|
|
|
26897
26903
|
var init_claude = __esm({
|
|
26898
26904
|
"../agent-core/dist/providers/claude.js"() {
|
|
26899
26905
|
"use strict";
|
|
26900
|
-
|
|
26901
|
-
|
|
26902
|
-
|
|
26906
|
+
init_chunk_SBT5W7L4();
|
|
26907
|
+
init_chunk_VMGVHPBB();
|
|
26908
|
+
init_chunk_XC5676SG();
|
|
26903
26909
|
init_chunk_54ZRJOQP();
|
|
26904
26910
|
init_chunk_J2KTV5FP();
|
|
26905
26911
|
init_chunk_M6YHY2EZ();
|
|
@@ -27206,6 +27212,7 @@ var init_claude = __esm({
|
|
|
27206
27212
|
#failure;
|
|
27207
27213
|
#authFailure;
|
|
27208
27214
|
#resultSeen = false;
|
|
27215
|
+
#heldIdle;
|
|
27209
27216
|
constructor(options = {}) {
|
|
27210
27217
|
this.#options = options;
|
|
27211
27218
|
this.taskRecords = options.taskRecords ?? new TaskRecords(options.now ?? (() => systemClock2.now()));
|
|
@@ -27253,7 +27260,17 @@ var init_claude = __esm({
|
|
|
27253
27260
|
readEvent(event) {
|
|
27254
27261
|
const parsed = this.#revise(parseClaudeEvent(event, this.grammar), event);
|
|
27255
27262
|
parsed.push(...this.#handle(event));
|
|
27256
|
-
const
|
|
27263
|
+
const kept = parsed.filter((update) => {
|
|
27264
|
+
if (!isIdleUpdate(update)) return true;
|
|
27265
|
+
if (this.#finalized) return true;
|
|
27266
|
+
this.#heldIdle = update;
|
|
27267
|
+
return false;
|
|
27268
|
+
});
|
|
27269
|
+
if (this.#finalized && this.#heldIdle !== void 0) {
|
|
27270
|
+
if (!kept.some(isIdleUpdate)) kept.push(this.#heldIdle);
|
|
27271
|
+
this.#heldIdle = void 0;
|
|
27272
|
+
}
|
|
27273
|
+
const updates = kept.map((update) => this.taskRecords.stamp(update));
|
|
27257
27274
|
for (const update of updates) this.#applyRunState(update);
|
|
27258
27275
|
return updates;
|
|
27259
27276
|
}
|
|
@@ -29030,9 +29047,9 @@ var import_fs6, import_path6, import_crypto8, import_crypto9, import_crypto10, T
|
|
|
29030
29047
|
var init_codex = __esm({
|
|
29031
29048
|
"../agent-core/dist/providers/codex.js"() {
|
|
29032
29049
|
"use strict";
|
|
29033
|
-
|
|
29034
|
-
|
|
29035
|
-
|
|
29050
|
+
init_chunk_SBT5W7L4();
|
|
29051
|
+
init_chunk_VMGVHPBB();
|
|
29052
|
+
init_chunk_XC5676SG();
|
|
29036
29053
|
init_chunk_54ZRJOQP();
|
|
29037
29054
|
init_chunk_J2KTV5FP();
|
|
29038
29055
|
init_chunk_M6YHY2EZ();
|
|
@@ -37800,8 +37817,8 @@ var require_dist = __commonJS({
|
|
|
37800
37817
|
var init_dist = __esm({
|
|
37801
37818
|
"../agent-core/dist/index.js"() {
|
|
37802
37819
|
"use strict";
|
|
37803
|
-
|
|
37804
|
-
|
|
37820
|
+
init_chunk_VMGVHPBB();
|
|
37821
|
+
init_chunk_XC5676SG();
|
|
37805
37822
|
init_chunk_54ZRJOQP();
|
|
37806
37823
|
init_chunk_M6YHY2EZ();
|
|
37807
37824
|
init_chunk_YXWJW7I5();
|
|
@@ -38547,8 +38564,8 @@ var import_promises22, import_path9, import_crypto12, import_promises23, CURSOR_
|
|
|
38547
38564
|
var init_acp3 = __esm({
|
|
38548
38565
|
"../agent-core/dist/providers/acp.js"() {
|
|
38549
38566
|
"use strict";
|
|
38550
|
-
|
|
38551
|
-
|
|
38567
|
+
init_chunk_VMGVHPBB();
|
|
38568
|
+
init_chunk_XC5676SG();
|
|
38552
38569
|
init_chunk_54ZRJOQP();
|
|
38553
38570
|
init_chunk_J2KTV5FP();
|
|
38554
38571
|
init_chunk_M6YHY2EZ();
|
|
@@ -39432,15 +39449,16 @@ function createPersistentDriver(provider4, options) {
|
|
|
39432
39449
|
return void 0;
|
|
39433
39450
|
};
|
|
39434
39451
|
const resumeNotice = (spec, session, sink) => {
|
|
39452
|
+
if (spec.resumeFallbackContext) {
|
|
39453
|
+
log.info("holder.session_resume_fallback", { harness: provider4.harness, runId: spec.runId });
|
|
39454
|
+
return { session, contextPrefix: spec.resumeFallbackContext };
|
|
39455
|
+
}
|
|
39435
39456
|
sink.onEvent({
|
|
39436
39457
|
seq: 0,
|
|
39437
39458
|
at: clock.now(),
|
|
39438
39459
|
update: noticeUpdate("warning", "session_resume_failed", RESUME_UNAVAILABLE)
|
|
39439
39460
|
});
|
|
39440
|
-
return {
|
|
39441
|
-
session,
|
|
39442
|
-
...spec.resumeFallbackContext ? { contextPrefix: spec.resumeFallbackContext } : {}
|
|
39443
|
-
};
|
|
39461
|
+
return { session };
|
|
39444
39462
|
};
|
|
39445
39463
|
const managedMcpAccess = async (signal) => {
|
|
39446
39464
|
const managed = options.managedMcp;
|
|
@@ -39515,6 +39533,7 @@ function createPersistentDriver(provider4, options) {
|
|
|
39515
39533
|
};
|
|
39516
39534
|
const _events = __using(_stack, session.onEvent(forward));
|
|
39517
39535
|
live.turn = turn;
|
|
39536
|
+
record2({ sessionUpdate: "state_update", state: "running" });
|
|
39518
39537
|
if (session.pid !== void 0) sink.onSpawned(session.pid);
|
|
39519
39538
|
const onAbort = () => {
|
|
39520
39539
|
void session.cancel();
|
|
@@ -40251,8 +40270,8 @@ var import_http4, import_crypto13, import_promises24, import_path10, import_path
|
|
|
40251
40270
|
var init_opencode = __esm({
|
|
40252
40271
|
"../agent-core/dist/providers/opencode.js"() {
|
|
40253
40272
|
"use strict";
|
|
40254
|
-
|
|
40255
|
-
|
|
40273
|
+
init_chunk_VMGVHPBB();
|
|
40274
|
+
init_chunk_XC5676SG();
|
|
40256
40275
|
init_chunk_54ZRJOQP();
|
|
40257
40276
|
init_chunk_J2KTV5FP();
|
|
40258
40277
|
init_chunk_M6YHY2EZ();
|
|
@@ -40267,6 +40286,7 @@ var init_opencode = __esm({
|
|
|
40267
40286
|
import_path11 = require("path");
|
|
40268
40287
|
import_url2 = require("url");
|
|
40269
40288
|
init_acp();
|
|
40289
|
+
init_acp();
|
|
40270
40290
|
import_crypto14 = require("crypto");
|
|
40271
40291
|
init_agent2();
|
|
40272
40292
|
IDLE_SOCKET_MS2 = 4e3;
|
|
@@ -40585,7 +40605,7 @@ var init_opencode = __esm({
|
|
|
40585
40605
|
["DataPolicyError", "model_mismatch"]
|
|
40586
40606
|
]);
|
|
40587
40607
|
OPENCODE_ABORTED_ERROR = "MessageAbortedError";
|
|
40588
|
-
PROVIDER_EVENT_META =
|
|
40608
|
+
PROVIDER_EVENT_META = PROVIDER_EVENT_META_KEY;
|
|
40589
40609
|
TASK_TOOL_NAME = "task";
|
|
40590
40610
|
TASK_RESULT_TAG = /<task_result>\n?([\s\S]*?)\n?<\/task_result>/;
|
|
40591
40611
|
TASK_ERROR_TAG = /<task_error>\n?([\s\S]*?)\n?<\/task_error>/;
|
|
@@ -41446,7 +41466,7 @@ function createAlanCodeHolderDriver(options) {
|
|
|
41446
41466
|
open: open4,
|
|
41447
41467
|
turnInput: async (spec, inputs, contextPrefix) => openCodeTurnInput(spec, {
|
|
41448
41468
|
attachments: inputs.attachments,
|
|
41449
|
-
skills:
|
|
41469
|
+
skills: inputs.skills,
|
|
41450
41470
|
...contextPrefix === void 0 ? {} : { contextPrefix }
|
|
41451
41471
|
})
|
|
41452
41472
|
},
|
|
@@ -42059,8 +42079,8 @@ var import_crypto15, import_promises25, FACTORY_API_VERSION, FACTORY_PROTOCOL_VE
|
|
|
42059
42079
|
var init_droid = __esm({
|
|
42060
42080
|
"../agent-core/dist/providers/droid.js"() {
|
|
42061
42081
|
"use strict";
|
|
42062
|
-
|
|
42063
|
-
|
|
42082
|
+
init_chunk_VMGVHPBB();
|
|
42083
|
+
init_chunk_XC5676SG();
|
|
42064
42084
|
init_chunk_54ZRJOQP();
|
|
42065
42085
|
init_chunk_J2KTV5FP();
|
|
42066
42086
|
init_chunk_M6YHY2EZ();
|
|
@@ -42462,7 +42482,7 @@ function createDroidHolderDriver(options) {
|
|
|
42462
42482
|
},
|
|
42463
42483
|
turnInput: (spec, inputs, contextPrefix) => droidTurnInput(spec, {
|
|
42464
42484
|
attachments: inputs.attachments,
|
|
42465
|
-
skills:
|
|
42485
|
+
skills: inputs.skills,
|
|
42466
42486
|
...contextPrefix === void 0 ? {} : { contextPrefix }
|
|
42467
42487
|
})
|
|
42468
42488
|
},
|
|
@@ -42510,7 +42530,7 @@ function createOpenCodeHolderDriver(options) {
|
|
|
42510
42530
|
},
|
|
42511
42531
|
turnInput: async (spec, inputs, contextPrefix) => openCodeTurnInput(spec, {
|
|
42512
42532
|
attachments: inputs.attachments,
|
|
42513
|
-
skills:
|
|
42533
|
+
skills: inputs.skills,
|
|
42514
42534
|
...contextPrefix === void 0 ? {} : { contextPrefix }
|
|
42515
42535
|
})
|
|
42516
42536
|
},
|
|
@@ -43161,9 +43181,9 @@ var import_promises26, import_path12, import_fs8, import_path13, import_path14,
|
|
|
43161
43181
|
var init_antigravity = __esm({
|
|
43162
43182
|
"../agent-core/dist/providers/antigravity.js"() {
|
|
43163
43183
|
"use strict";
|
|
43164
|
-
|
|
43165
|
-
|
|
43166
|
-
|
|
43184
|
+
init_chunk_SBT5W7L4();
|
|
43185
|
+
init_chunk_VMGVHPBB();
|
|
43186
|
+
init_chunk_XC5676SG();
|
|
43167
43187
|
init_chunk_54ZRJOQP();
|
|
43168
43188
|
init_chunk_M6YHY2EZ();
|
|
43169
43189
|
init_chunk_ITTV3UIM();
|
|
@@ -43866,8 +43886,8 @@ var import_promises27, import_path15, import_crypto17, COMMAND_CODE_GRAMMAR_NAME
|
|
|
43866
43886
|
var init_command_code = __esm({
|
|
43867
43887
|
"../agent-core/dist/providers/command-code.js"() {
|
|
43868
43888
|
"use strict";
|
|
43869
|
-
|
|
43870
|
-
|
|
43889
|
+
init_chunk_VMGVHPBB();
|
|
43890
|
+
init_chunk_XC5676SG();
|
|
43871
43891
|
init_chunk_54ZRJOQP();
|
|
43872
43892
|
init_chunk_J2KTV5FP();
|
|
43873
43893
|
init_chunk_M6YHY2EZ();
|
|
@@ -45435,9 +45455,9 @@ function isProcessAlive(pid) {
|
|
|
45435
45455
|
}
|
|
45436
45456
|
}
|
|
45437
45457
|
async function linuxStartTime(pid) {
|
|
45438
|
-
const
|
|
45439
|
-
if (
|
|
45440
|
-
const fields =
|
|
45458
|
+
const stat15 = await (0, import_promises9.readFile)(`/proc/${pid}/stat`, "utf8").catch(() => null);
|
|
45459
|
+
if (stat15 === null) return null;
|
|
45460
|
+
const fields = stat15.slice(stat15.lastIndexOf(")") + 2).split(" ");
|
|
45441
45461
|
return fields[19] ?? null;
|
|
45442
45462
|
}
|
|
45443
45463
|
async function linuxCommand(pid) {
|
|
@@ -47699,11 +47719,16 @@ var indexRecordSchema = external_exports.object({
|
|
|
47699
47719
|
runId: runIdSchema
|
|
47700
47720
|
});
|
|
47701
47721
|
var coverageSchema = external_exports.object({
|
|
47722
|
+
// Files written before ranges could start mid-conversation always started at turn 0.
|
|
47723
|
+
lowestOrdinal: external_exports.number().int().nonnegative().default(0),
|
|
47702
47724
|
highestOrdinal: external_exports.number().int().nonnegative(),
|
|
47703
47725
|
nextExpectedOrdinal: external_exports.number().int().positive()
|
|
47704
47726
|
});
|
|
47727
|
+
function conversationsDirectory(runsDir) {
|
|
47728
|
+
return (0, import_node_path24.join)((0, import_node_path24.dirname)(runsDir), "conversations");
|
|
47729
|
+
}
|
|
47705
47730
|
function indexDirectory(runsDir, conversationId) {
|
|
47706
|
-
return (0, import_node_path24.join)((
|
|
47731
|
+
return (0, import_node_path24.join)(conversationsDirectory(runsDir), conversationId, "turn-index");
|
|
47707
47732
|
}
|
|
47708
47733
|
function shardPath(runsDir, conversationId, ordinal) {
|
|
47709
47734
|
return (0, import_node_path24.join)(
|
|
@@ -47721,11 +47746,16 @@ async function indexConversationRun(runsDir, conversationId, ordinal, assistantO
|
|
|
47721
47746
|
const coveragePath = (0, import_node_path24.join)((0, import_node_path24.dirname)((0, import_node_path24.dirname)(path)), "coverage.json");
|
|
47722
47747
|
const coverage = await readJsonFile(coveragePath, coverageSchema);
|
|
47723
47748
|
const current = coverage.kind === "ok" ? coverage.value : null;
|
|
47724
|
-
|
|
47725
|
-
|
|
47726
|
-
|
|
47727
|
-
|
|
47728
|
-
|
|
47749
|
+
const next = nextCoverage(current, ordinal, nextOrdinal);
|
|
47750
|
+
if (next) await writeJsonFileAtomic(coveragePath, next);
|
|
47751
|
+
}
|
|
47752
|
+
function nextCoverage(current, ordinal, nextOrdinal) {
|
|
47753
|
+
if (current === null || ordinal > current.nextExpectedOrdinal)
|
|
47754
|
+
return { lowestOrdinal: ordinal, highestOrdinal: ordinal, nextExpectedOrdinal: nextOrdinal };
|
|
47755
|
+
if (ordinal === current.nextExpectedOrdinal)
|
|
47756
|
+
return { ...current, highestOrdinal: ordinal, nextExpectedOrdinal: nextOrdinal };
|
|
47757
|
+
if (ordinal === current.highestOrdinal) return { ...current, nextExpectedOrdinal: nextOrdinal };
|
|
47758
|
+
return null;
|
|
47729
47759
|
}
|
|
47730
47760
|
|
|
47731
47761
|
// src/run-log/tail.ts
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alan-ai-hq/agent-manager-linux-arm64",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.140",
|
|
4
4
|
"description": "Alan machine runtime (alan-agent) for one platform: the official Node.js binary, the runtime bundle and its launcher. Installed by @alan-ai-hq/agent-manager.",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE",
|
|
6
6
|
"homepage": "https://tryalan.ai",
|