@alan-ai-hq/agent-manager-darwin-arm64 0.1.158 → 0.1.159
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 +69 -15
- package/alan-holder.cjs +54 -14
- package/package.json +1 -1
package/alan-agent.cjs
CHANGED
|
@@ -25967,6 +25967,12 @@ var init_event = __esm({
|
|
|
25967
25967
|
});
|
|
25968
25968
|
|
|
25969
25969
|
// ../shared/dist/agent/acp/reduce.js
|
|
25970
|
+
function upsertMcpServers(current, reported) {
|
|
25971
|
+
const byName = new Map((current ?? []).map((server) => [server.name, server]));
|
|
25972
|
+
for (const server of reported)
|
|
25973
|
+
byName.set(server.name, server);
|
|
25974
|
+
return [...byName.values()];
|
|
25975
|
+
}
|
|
25970
25976
|
function emptyTranscript() {
|
|
25971
25977
|
return { entries: [], state: "idle", notices: [], unknown: [] };
|
|
25972
25978
|
}
|
|
@@ -26123,6 +26129,12 @@ ${update.description}` : update.title,
|
|
|
26123
26129
|
state.thinkingTokens = update.estimated;
|
|
26124
26130
|
return;
|
|
26125
26131
|
}
|
|
26132
|
+
case "_alan/mcp_servers": {
|
|
26133
|
+
if (!isUpdate(update, "_alan/mcp_servers"))
|
|
26134
|
+
return;
|
|
26135
|
+
state.mcpServers = upsertMcpServers(state.mcpServers, update.servers);
|
|
26136
|
+
return;
|
|
26137
|
+
}
|
|
26126
26138
|
// Owned by the tool call that references it, but kept so a terminal-aware
|
|
26127
26139
|
// renderer can still consume the raw update.
|
|
26128
26140
|
case "terminal_update":
|
|
@@ -26933,6 +26945,8 @@ function mergeTranscriptMessages(messages, cache2) {
|
|
|
26933
26945
|
merged.usage = state.usage;
|
|
26934
26946
|
if (state.title)
|
|
26935
26947
|
merged.title = state.title;
|
|
26948
|
+
if (state.mcpServers)
|
|
26949
|
+
merged.mcpServers = upsertMcpServers(merged.mcpServers, state.mcpServers);
|
|
26936
26950
|
updateOffset += state.updateCount ?? 0;
|
|
26937
26951
|
}
|
|
26938
26952
|
merged.updateCount = updateOffset;
|
|
@@ -29778,16 +29792,16 @@ function externalServerConfig(server) {
|
|
|
29778
29792
|
};
|
|
29779
29793
|
}
|
|
29780
29794
|
function claudeMcpConfig(mcp) {
|
|
29781
|
-
const
|
|
29795
|
+
const mcpServers2 = /* @__PURE__ */ Object.create(null);
|
|
29782
29796
|
for (const [name, server] of Object.entries(mcp.externalServers ?? {})) {
|
|
29783
|
-
|
|
29797
|
+
mcpServers2[name] = externalServerConfig(server);
|
|
29784
29798
|
}
|
|
29785
|
-
|
|
29799
|
+
mcpServers2.alan = {
|
|
29786
29800
|
type: "http",
|
|
29787
29801
|
url: mcp.alanMcpUrl,
|
|
29788
29802
|
headers: managedMcpHeaders(mcp.identity)
|
|
29789
29803
|
};
|
|
29790
|
-
return { mcpServers };
|
|
29804
|
+
return { mcpServers: mcpServers2 };
|
|
29791
29805
|
}
|
|
29792
29806
|
function carriesCredential(mcp) {
|
|
29793
29807
|
return mcp.identity.scope === "conversation" && mcp.identity.authorization !== void 0;
|
|
@@ -30012,11 +30026,27 @@ function parseStreamEvent(event, state) {
|
|
|
30012
30026
|
function stringList(value2) {
|
|
30013
30027
|
return asArray(value2).map((item) => asString(item)).filter(Boolean);
|
|
30014
30028
|
}
|
|
30029
|
+
function mcpServers(value2) {
|
|
30030
|
+
const servers = [];
|
|
30031
|
+
for (const item of asArray(value2)) {
|
|
30032
|
+
const record2 = asRecord(item);
|
|
30033
|
+
const name = asString(record2?.name);
|
|
30034
|
+
if (!record2 || !name) continue;
|
|
30035
|
+
const source = asString(record2.source);
|
|
30036
|
+
servers.push({
|
|
30037
|
+
name,
|
|
30038
|
+
status: CLAUDE_MCP_STATUS[asString(record2.status)] ?? "unknown",
|
|
30039
|
+
...source ? { source } : {}
|
|
30040
|
+
});
|
|
30041
|
+
}
|
|
30042
|
+
return servers;
|
|
30043
|
+
}
|
|
30015
30044
|
function initUpdates(event, state) {
|
|
30016
30045
|
const model = asString(event.model);
|
|
30017
30046
|
if (model) state.model = model;
|
|
30018
30047
|
const tools = stringList(event.tools);
|
|
30019
30048
|
const slashCommands = stringList(event.slash_commands);
|
|
30049
|
+
const servers = mcpServers(event.mcp_servers);
|
|
30020
30050
|
return [
|
|
30021
30051
|
{
|
|
30022
30052
|
sessionUpdate: "_alan/log",
|
|
@@ -30030,7 +30060,8 @@ function initUpdates(event, state) {
|
|
|
30030
30060
|
...tools.length > 0 ? { [TOOLS_META]: tools } : {},
|
|
30031
30061
|
...slashCommands.length > 0 ? { [SLASH_COMMANDS_META]: slashCommands } : {}
|
|
30032
30062
|
}
|
|
30033
|
-
}
|
|
30063
|
+
},
|
|
30064
|
+
...servers.length > 0 ? [{ sessionUpdate: "_alan/mcp_servers", servers }] : []
|
|
30034
30065
|
];
|
|
30035
30066
|
}
|
|
30036
30067
|
function thinkingTokens(event) {
|
|
@@ -30984,7 +31015,7 @@ function claudeTurnClosingUpdates(records, state) {
|
|
|
30984
31015
|
function readClaudeTranscriptTurns(chunk, baseOffset, skipped) {
|
|
30985
31016
|
return readTranscriptTurns(claudeTranscriptFile, chunk, baseOffset, skipped);
|
|
30986
31017
|
}
|
|
30987
|
-
var import_crypto7, import_fs6, import_path6, import_crypto8, import_promises31, EDIT_TOOLS, ThoughtBlocks, UNDERSTOOD_SYSTEM_SUBTYPES, RATE_LIMIT_WARN_AT, CLAUDE_GRAMMAR_NAME, SUBAGENT_TOOL_NAMES, controlResponseSchema, STOPPED_STATUSES, TaskRecords, TERMINAL_BACKGROUND_STATUSES, NON_TERMINAL_BACKGROUND_STATUSES, ASYNC_LAUNCH_ACK, BackgroundTasks, FAILED_STATUSES, STOPPED_BY_USER_TEXT, ClaudeTurn, STDERR_TAIL_LINES2, MAX_EARLY_LINES, UNSUPPORTED_STOP, OUTPUT_CLOSED_REASON, ClaudeSession, DEFAULTS, READ_ONLY_DISALLOWED_TOOLS, DEFAULT_MCP_TIMEOUT_MS, SYNTHETIC_MODEL, INTERRUPT_MARKER, NON_PROMPT_PREFIXES, PRELUDE_TYPES, claudeTranscriptFile;
|
|
31018
|
+
var import_crypto7, import_fs6, import_path6, import_crypto8, import_promises31, EDIT_TOOLS, ThoughtBlocks, UNDERSTOOD_SYSTEM_SUBTYPES, CLAUDE_MCP_STATUS, RATE_LIMIT_WARN_AT, CLAUDE_GRAMMAR_NAME, SUBAGENT_TOOL_NAMES, controlResponseSchema, STOPPED_STATUSES, TaskRecords, TERMINAL_BACKGROUND_STATUSES, NON_TERMINAL_BACKGROUND_STATUSES, ASYNC_LAUNCH_ACK, BackgroundTasks, FAILED_STATUSES, STOPPED_BY_USER_TEXT, ClaudeTurn, STDERR_TAIL_LINES2, MAX_EARLY_LINES, UNSUPPORTED_STOP, OUTPUT_CLOSED_REASON, ClaudeSession, DEFAULTS, READ_ONLY_DISALLOWED_TOOLS, DEFAULT_MCP_TIMEOUT_MS, SYNTHETIC_MODEL, INTERRUPT_MARKER, NON_PROMPT_PREFIXES, PRELUDE_TYPES, claudeTranscriptFile;
|
|
30988
31019
|
var init_claude = __esm({
|
|
30989
31020
|
"../agent-core/dist/providers/claude.js"() {
|
|
30990
31021
|
"use strict";
|
|
@@ -31053,6 +31084,13 @@ var init_claude = __esm({
|
|
|
31053
31084
|
"status",
|
|
31054
31085
|
"commands_changed"
|
|
31055
31086
|
]);
|
|
31087
|
+
CLAUDE_MCP_STATUS = {
|
|
31088
|
+
connected: "connected",
|
|
31089
|
+
pending: "starting",
|
|
31090
|
+
"needs-auth": "needs_auth",
|
|
31091
|
+
failed: "failed",
|
|
31092
|
+
disabled: "disabled"
|
|
31093
|
+
};
|
|
31056
31094
|
RATE_LIMIT_WARN_AT = 0.8;
|
|
31057
31095
|
CLAUDE_GRAMMAR_NAME = "claude_cli";
|
|
31058
31096
|
SUBAGENT_TOOL_NAMES = /* @__PURE__ */ new Set(["agent", "task"]);
|
|
@@ -33840,7 +33878,7 @@ function codexTurnInput(run2, context) {
|
|
|
33840
33878
|
...images.length ? { imagePaths: images.map((image) => image.path) } : {}
|
|
33841
33879
|
};
|
|
33842
33880
|
}
|
|
33843
|
-
var import_fs7, import_path7, import_crypto9, import_crypto10, import_crypto11, import_crypto12, TokenRefresher, MCP_STARTUP_TIMEOUT_SEC, FIELD_TYPES, YES_NO, ACCEPT_DECLINE, MAX_INLINE_GENERATED_IMAGE_BYTES, PNG_SIGNATURE2, JPEG_NON_FRAME_MARKERS, IMAGE_GEN_CALL, PROMPT_LITERAL, RELOCATE_EVERY_MS, CodexImageGenerationFold, CodexRolloutImages, CodexRateLimits, USER_INPUT_METHOD, PERMISSIONS_METHOD, ELICITATION_METHOD, COMMAND_OR_FILE, LEGACY, DECISIONS, COORDINATION_TOOLS, SETTLED_AGENT, STATUS, CHANGE_OPERATIONS, SILENT_ON_START, IGNORED_ITEMS, PLAN_STATUS, WORKER_LIFECYCLE, INFO_KINDS, SILENT, CodexTurn, STDERR_TAIL_LINES3, MAX_BETWEEN_UPDATES, UNSUPPORTED_REQUEST, DECLINED_ELICITATION, IMAGE_CATCH_UP_MS, IMAGE_POLL_MS, CodexSession, CODEX_MIN_VERSION, CODEX_REQUIREMENT, CODEX_TESTED_LINE, DEFAULTS2, CLIENT_INFO, STATUS2, EXITED_WITHOUT_RESPONSE, CodexExecTurn, DEFAULTS22, CodexExecSession, INJECTED_USER_PREFIXES, SHELL_TOOL_NAMES, ANNOUNCING_ITEM_TYPES, OUTPUT_MARKER, OPEN_PAGE_ACTIONS, FIND_IN_PAGE_ACTIONS, FILE_OPERATIONS, UNDERSTOOD_ITEM_TYPES, PRELUDE_TYPES2, PRELUDE_EVENTS, codexRolloutFile;
|
|
33881
|
+
var import_fs7, import_path7, import_crypto9, import_crypto10, import_crypto11, import_crypto12, TokenRefresher, MCP_STARTUP_TIMEOUT_SEC, FIELD_TYPES, YES_NO, ACCEPT_DECLINE, MAX_INLINE_GENERATED_IMAGE_BYTES, PNG_SIGNATURE2, JPEG_NON_FRAME_MARKERS, IMAGE_GEN_CALL, PROMPT_LITERAL, RELOCATE_EVERY_MS, CodexImageGenerationFold, CodexRolloutImages, CodexRateLimits, USER_INPUT_METHOD, PERMISSIONS_METHOD, ELICITATION_METHOD, COMMAND_OR_FILE, LEGACY, DECISIONS, COORDINATION_TOOLS, SETTLED_AGENT, STATUS, CHANGE_OPERATIONS, SILENT_ON_START, IGNORED_ITEMS, PLAN_STATUS, CODEX_MCP_STATUS, WORKER_LIFECYCLE, INFO_KINDS, SILENT, CodexTurn, STDERR_TAIL_LINES3, MAX_BETWEEN_UPDATES, UNSUPPORTED_REQUEST, DECLINED_ELICITATION, IMAGE_CATCH_UP_MS, IMAGE_POLL_MS, CodexSession, CODEX_MIN_VERSION, CODEX_REQUIREMENT, CODEX_TESTED_LINE, DEFAULTS2, CLIENT_INFO, STATUS2, EXITED_WITHOUT_RESPONSE, CodexExecTurn, DEFAULTS22, CodexExecSession, INJECTED_USER_PREFIXES, SHELL_TOOL_NAMES, ANNOUNCING_ITEM_TYPES, OUTPUT_MARKER, OPEN_PAGE_ACTIONS, FIND_IN_PAGE_ACTIONS, FILE_OPERATIONS, UNDERSTOOD_ITEM_TYPES, PRELUDE_TYPES2, PRELUDE_EVENTS, codexRolloutFile;
|
|
33844
33882
|
var init_codex = __esm({
|
|
33845
33883
|
"../agent-core/dist/providers/codex.js"() {
|
|
33846
33884
|
"use strict";
|
|
@@ -34133,6 +34171,12 @@ var init_codex = __esm({
|
|
|
34133
34171
|
["inProgress", "in_progress"],
|
|
34134
34172
|
["completed", "completed"]
|
|
34135
34173
|
]);
|
|
34174
|
+
CODEX_MCP_STATUS = {
|
|
34175
|
+
starting: "starting",
|
|
34176
|
+
ready: "connected",
|
|
34177
|
+
failed: "failed",
|
|
34178
|
+
cancelled: "failed"
|
|
34179
|
+
};
|
|
34136
34180
|
WORKER_LIFECYCLE = /* @__PURE__ */ new Set([
|
|
34137
34181
|
"turn/started",
|
|
34138
34182
|
"turn/completed",
|
|
@@ -34284,20 +34328,29 @@ var init_codex = __esm({
|
|
|
34284
34328
|
)
|
|
34285
34329
|
];
|
|
34286
34330
|
}
|
|
34331
|
+
#mcpStatus(params) {
|
|
34332
|
+
const name = asString(params.name);
|
|
34333
|
+
if (!name) return [];
|
|
34334
|
+
const reported = asString(params.status);
|
|
34335
|
+
const reason = asString(params.error) || asString(params.failureReason);
|
|
34336
|
+
const status = CODEX_MCP_STATUS[reported] ?? "unknown";
|
|
34337
|
+
const listed = {
|
|
34338
|
+
sessionUpdate: "_alan/mcp_servers",
|
|
34339
|
+
servers: [{ name, status, ...status === "failed" && reason ? { error: reason } : {} }]
|
|
34340
|
+
};
|
|
34341
|
+
if (reported !== "failed") return [listed];
|
|
34342
|
+
return [listed, ...this.#mcpFailure(name, reason)];
|
|
34343
|
+
}
|
|
34287
34344
|
/**
|
|
34288
34345
|
* Only Alan's own MCP server failing matters in the chat: its tools are gone for the session.
|
|
34289
34346
|
* The user's other servers (and their logins) belong to their Codex setup, not to Alan.
|
|
34290
34347
|
*/
|
|
34291
|
-
#
|
|
34292
|
-
if (asString(params.status) !== "failed") return [];
|
|
34293
|
-
const name = asString(params.name);
|
|
34348
|
+
#mcpFailure(name, reason) {
|
|
34294
34349
|
if (canonicalizeManagedMcpServerName(name) !== MANAGED_MCP_SERVER_NAME) {
|
|
34295
|
-
const reason2 = asString(params.error) || asString(params.failureReason);
|
|
34296
34350
|
return [
|
|
34297
|
-
logUpdate("codex/mcp", `MCP server ${name} failed to start${
|
|
34351
|
+
logUpdate("codex/mcp", `MCP server ${name} failed to start${reason ? `: ${reason}` : "."}`)
|
|
34298
34352
|
];
|
|
34299
34353
|
}
|
|
34300
|
-
const reason = asString(params.error) || asString(params.failureReason);
|
|
34301
34354
|
const key = `mcp_server_failed\0${reason}`;
|
|
34302
34355
|
if (this.#memory.shownWarnings.has(key)) return [];
|
|
34303
34356
|
this.#memory.shownWarnings.add(key);
|
|
@@ -47252,7 +47305,8 @@ var init_persistent = __esm({
|
|
|
47252
47305
|
"user_message",
|
|
47253
47306
|
"user_message_chunk",
|
|
47254
47307
|
"_alan/log",
|
|
47255
|
-
"_alan/thinking_tokens"
|
|
47308
|
+
"_alan/thinking_tokens",
|
|
47309
|
+
"_alan/mcp_servers"
|
|
47256
47310
|
]);
|
|
47257
47311
|
FIRST_OUTPUT_TIMEOUT_MS = 3e5;
|
|
47258
47312
|
}
|
|
@@ -57224,7 +57278,7 @@ var require_websocket_server = __commonJS({
|
|
|
57224
57278
|
// package.json
|
|
57225
57279
|
var package_default = {
|
|
57226
57280
|
name: "@alan-ai-hq/agent-manager",
|
|
57227
|
-
version: "0.1.
|
|
57281
|
+
version: "0.1.159",
|
|
57228
57282
|
private: true,
|
|
57229
57283
|
type: "module",
|
|
57230
57284
|
description: "Alan machine runtime (alan-agent): identity, link, reconciler, session holders, run log, uploader, local API",
|
package/alan-holder.cjs
CHANGED
|
@@ -27868,16 +27868,16 @@ function externalServerConfig(server) {
|
|
|
27868
27868
|
};
|
|
27869
27869
|
}
|
|
27870
27870
|
function claudeMcpConfig(mcp) {
|
|
27871
|
-
const
|
|
27871
|
+
const mcpServers2 = /* @__PURE__ */ Object.create(null);
|
|
27872
27872
|
for (const [name, server] of Object.entries(mcp.externalServers ?? {})) {
|
|
27873
|
-
|
|
27873
|
+
mcpServers2[name] = externalServerConfig(server);
|
|
27874
27874
|
}
|
|
27875
|
-
|
|
27875
|
+
mcpServers2.alan = {
|
|
27876
27876
|
type: "http",
|
|
27877
27877
|
url: mcp.alanMcpUrl,
|
|
27878
27878
|
headers: managedMcpHeaders(mcp.identity)
|
|
27879
27879
|
};
|
|
27880
|
-
return { mcpServers };
|
|
27880
|
+
return { mcpServers: mcpServers2 };
|
|
27881
27881
|
}
|
|
27882
27882
|
function carriesCredential(mcp) {
|
|
27883
27883
|
return mcp.identity.scope === "conversation" && mcp.identity.authorization !== void 0;
|
|
@@ -28102,11 +28102,27 @@ function parseStreamEvent(event, state) {
|
|
|
28102
28102
|
function stringList(value) {
|
|
28103
28103
|
return asArray(value).map((item) => asString(item)).filter(Boolean);
|
|
28104
28104
|
}
|
|
28105
|
+
function mcpServers(value) {
|
|
28106
|
+
const servers = [];
|
|
28107
|
+
for (const item of asArray(value)) {
|
|
28108
|
+
const record2 = asRecord(item);
|
|
28109
|
+
const name = asString(record2?.name);
|
|
28110
|
+
if (!record2 || !name) continue;
|
|
28111
|
+
const source = asString(record2.source);
|
|
28112
|
+
servers.push({
|
|
28113
|
+
name,
|
|
28114
|
+
status: CLAUDE_MCP_STATUS[asString(record2.status)] ?? "unknown",
|
|
28115
|
+
...source ? { source } : {}
|
|
28116
|
+
});
|
|
28117
|
+
}
|
|
28118
|
+
return servers;
|
|
28119
|
+
}
|
|
28105
28120
|
function initUpdates(event, state) {
|
|
28106
28121
|
const model = asString(event.model);
|
|
28107
28122
|
if (model) state.model = model;
|
|
28108
28123
|
const tools = stringList(event.tools);
|
|
28109
28124
|
const slashCommands = stringList(event.slash_commands);
|
|
28125
|
+
const servers = mcpServers(event.mcp_servers);
|
|
28110
28126
|
return [
|
|
28111
28127
|
{
|
|
28112
28128
|
sessionUpdate: "_alan/log",
|
|
@@ -28120,7 +28136,8 @@ function initUpdates(event, state) {
|
|
|
28120
28136
|
...tools.length > 0 ? { [TOOLS_META]: tools } : {},
|
|
28121
28137
|
...slashCommands.length > 0 ? { [SLASH_COMMANDS_META]: slashCommands } : {}
|
|
28122
28138
|
}
|
|
28123
|
-
}
|
|
28139
|
+
},
|
|
28140
|
+
...servers.length > 0 ? [{ sessionUpdate: "_alan/mcp_servers", servers }] : []
|
|
28124
28141
|
];
|
|
28125
28142
|
}
|
|
28126
28143
|
function thinkingTokens(event) {
|
|
@@ -28880,7 +28897,7 @@ async function claudeTurnInput(run, context) {
|
|
|
28880
28897
|
);
|
|
28881
28898
|
return { turnId: run.runId, text: text2, ...encoded.length ? { images: encoded } : {} };
|
|
28882
28899
|
}
|
|
28883
|
-
var import_crypto7, import_fs6, import_path6, import_crypto8, import_promises15, EDIT_TOOLS, ThoughtBlocks, UNDERSTOOD_SYSTEM_SUBTYPES, RATE_LIMIT_WARN_AT, CLAUDE_GRAMMAR_NAME, SUBAGENT_TOOL_NAMES, controlResponseSchema, STOPPED_STATUSES, TaskRecords, TERMINAL_BACKGROUND_STATUSES, NON_TERMINAL_BACKGROUND_STATUSES, ASYNC_LAUNCH_ACK, BackgroundTasks, FAILED_STATUSES, STOPPED_BY_USER_TEXT, ClaudeTurn, STDERR_TAIL_LINES2, MAX_EARLY_LINES, UNSUPPORTED_STOP, OUTPUT_CLOSED_REASON, ClaudeSession, DEFAULTS, READ_ONLY_DISALLOWED_TOOLS, DEFAULT_MCP_TIMEOUT_MS;
|
|
28900
|
+
var import_crypto7, import_fs6, import_path6, import_crypto8, import_promises15, EDIT_TOOLS, ThoughtBlocks, UNDERSTOOD_SYSTEM_SUBTYPES, CLAUDE_MCP_STATUS, RATE_LIMIT_WARN_AT, CLAUDE_GRAMMAR_NAME, SUBAGENT_TOOL_NAMES, controlResponseSchema, STOPPED_STATUSES, TaskRecords, TERMINAL_BACKGROUND_STATUSES, NON_TERMINAL_BACKGROUND_STATUSES, ASYNC_LAUNCH_ACK, BackgroundTasks, FAILED_STATUSES, STOPPED_BY_USER_TEXT, ClaudeTurn, STDERR_TAIL_LINES2, MAX_EARLY_LINES, UNSUPPORTED_STOP, OUTPUT_CLOSED_REASON, ClaudeSession, DEFAULTS, READ_ONLY_DISALLOWED_TOOLS, DEFAULT_MCP_TIMEOUT_MS;
|
|
28884
28901
|
var init_claude = __esm({
|
|
28885
28902
|
"../agent-core/dist/providers/claude.js"() {
|
|
28886
28903
|
"use strict";
|
|
@@ -28949,6 +28966,13 @@ var init_claude = __esm({
|
|
|
28949
28966
|
"status",
|
|
28950
28967
|
"commands_changed"
|
|
28951
28968
|
]);
|
|
28969
|
+
CLAUDE_MCP_STATUS = {
|
|
28970
|
+
connected: "connected",
|
|
28971
|
+
pending: "starting",
|
|
28972
|
+
"needs-auth": "needs_auth",
|
|
28973
|
+
failed: "failed",
|
|
28974
|
+
disabled: "disabled"
|
|
28975
|
+
};
|
|
28952
28976
|
RATE_LIMIT_WARN_AT = 0.8;
|
|
28953
28977
|
CLAUDE_GRAMMAR_NAME = "claude_cli";
|
|
28954
28978
|
SUBAGENT_TOOL_NAMES = /* @__PURE__ */ new Set(["agent", "task"]);
|
|
@@ -31092,7 +31116,7 @@ function codexTurnInput(run, context) {
|
|
|
31092
31116
|
...images.length ? { imagePaths: images.map((image) => image.path) } : {}
|
|
31093
31117
|
};
|
|
31094
31118
|
}
|
|
31095
|
-
var import_fs7, import_path7, import_crypto9, import_crypto10, import_crypto11, import_crypto12, TokenRefresher, MCP_STARTUP_TIMEOUT_SEC, FIELD_TYPES, YES_NO, ACCEPT_DECLINE, MAX_INLINE_GENERATED_IMAGE_BYTES, PNG_SIGNATURE2, JPEG_NON_FRAME_MARKERS, IMAGE_GEN_CALL, PROMPT_LITERAL, RELOCATE_EVERY_MS, CodexImageGenerationFold, CodexRolloutImages, CodexRateLimits, USER_INPUT_METHOD, PERMISSIONS_METHOD, ELICITATION_METHOD, COMMAND_OR_FILE, LEGACY, DECISIONS, COORDINATION_TOOLS, SETTLED_AGENT, STATUS, CHANGE_OPERATIONS, SILENT_ON_START, IGNORED_ITEMS, PLAN_STATUS, WORKER_LIFECYCLE, INFO_KINDS, SILENT, CodexTurn, STDERR_TAIL_LINES3, MAX_BETWEEN_UPDATES, UNSUPPORTED_REQUEST, DECLINED_ELICITATION, IMAGE_CATCH_UP_MS, IMAGE_POLL_MS, CodexSession, CODEX_MIN_VERSION, CODEX_REQUIREMENT, CODEX_TESTED_LINE, DEFAULTS2, CLIENT_INFO, STATUS2, EXITED_WITHOUT_RESPONSE, CodexExecTurn, DEFAULTS22, CodexExecSession;
|
|
31119
|
+
var import_fs7, import_path7, import_crypto9, import_crypto10, import_crypto11, import_crypto12, TokenRefresher, MCP_STARTUP_TIMEOUT_SEC, FIELD_TYPES, YES_NO, ACCEPT_DECLINE, MAX_INLINE_GENERATED_IMAGE_BYTES, PNG_SIGNATURE2, JPEG_NON_FRAME_MARKERS, IMAGE_GEN_CALL, PROMPT_LITERAL, RELOCATE_EVERY_MS, CodexImageGenerationFold, CodexRolloutImages, CodexRateLimits, USER_INPUT_METHOD, PERMISSIONS_METHOD, ELICITATION_METHOD, COMMAND_OR_FILE, LEGACY, DECISIONS, COORDINATION_TOOLS, SETTLED_AGENT, STATUS, CHANGE_OPERATIONS, SILENT_ON_START, IGNORED_ITEMS, PLAN_STATUS, CODEX_MCP_STATUS, WORKER_LIFECYCLE, INFO_KINDS, SILENT, CodexTurn, STDERR_TAIL_LINES3, MAX_BETWEEN_UPDATES, UNSUPPORTED_REQUEST, DECLINED_ELICITATION, IMAGE_CATCH_UP_MS, IMAGE_POLL_MS, CodexSession, CODEX_MIN_VERSION, CODEX_REQUIREMENT, CODEX_TESTED_LINE, DEFAULTS2, CLIENT_INFO, STATUS2, EXITED_WITHOUT_RESPONSE, CodexExecTurn, DEFAULTS22, CodexExecSession;
|
|
31096
31120
|
var init_codex = __esm({
|
|
31097
31121
|
"../agent-core/dist/providers/codex.js"() {
|
|
31098
31122
|
"use strict";
|
|
@@ -31385,6 +31409,12 @@ var init_codex = __esm({
|
|
|
31385
31409
|
["inProgress", "in_progress"],
|
|
31386
31410
|
["completed", "completed"]
|
|
31387
31411
|
]);
|
|
31412
|
+
CODEX_MCP_STATUS = {
|
|
31413
|
+
starting: "starting",
|
|
31414
|
+
ready: "connected",
|
|
31415
|
+
failed: "failed",
|
|
31416
|
+
cancelled: "failed"
|
|
31417
|
+
};
|
|
31388
31418
|
WORKER_LIFECYCLE = /* @__PURE__ */ new Set([
|
|
31389
31419
|
"turn/started",
|
|
31390
31420
|
"turn/completed",
|
|
@@ -31536,20 +31566,29 @@ var init_codex = __esm({
|
|
|
31536
31566
|
)
|
|
31537
31567
|
];
|
|
31538
31568
|
}
|
|
31569
|
+
#mcpStatus(params) {
|
|
31570
|
+
const name = asString(params.name);
|
|
31571
|
+
if (!name) return [];
|
|
31572
|
+
const reported = asString(params.status);
|
|
31573
|
+
const reason = asString(params.error) || asString(params.failureReason);
|
|
31574
|
+
const status = CODEX_MCP_STATUS[reported] ?? "unknown";
|
|
31575
|
+
const listed = {
|
|
31576
|
+
sessionUpdate: "_alan/mcp_servers",
|
|
31577
|
+
servers: [{ name, status, ...status === "failed" && reason ? { error: reason } : {} }]
|
|
31578
|
+
};
|
|
31579
|
+
if (reported !== "failed") return [listed];
|
|
31580
|
+
return [listed, ...this.#mcpFailure(name, reason)];
|
|
31581
|
+
}
|
|
31539
31582
|
/**
|
|
31540
31583
|
* Only Alan's own MCP server failing matters in the chat: its tools are gone for the session.
|
|
31541
31584
|
* The user's other servers (and their logins) belong to their Codex setup, not to Alan.
|
|
31542
31585
|
*/
|
|
31543
|
-
#
|
|
31544
|
-
if (asString(params.status) !== "failed") return [];
|
|
31545
|
-
const name = asString(params.name);
|
|
31586
|
+
#mcpFailure(name, reason) {
|
|
31546
31587
|
if (canonicalizeManagedMcpServerName(name) !== MANAGED_MCP_SERVER_NAME) {
|
|
31547
|
-
const reason2 = asString(params.error) || asString(params.failureReason);
|
|
31548
31588
|
return [
|
|
31549
|
-
logUpdate("codex/mcp", `MCP server ${name} failed to start${
|
|
31589
|
+
logUpdate("codex/mcp", `MCP server ${name} failed to start${reason ? `: ${reason}` : "."}`)
|
|
31550
31590
|
];
|
|
31551
31591
|
}
|
|
31552
|
-
const reason = asString(params.error) || asString(params.failureReason);
|
|
31553
31592
|
const key = `mcp_server_failed\0${reason}`;
|
|
31554
31593
|
if (this.#memory.shownWarnings.has(key)) return [];
|
|
31555
31594
|
this.#memory.shownWarnings.add(key);
|
|
@@ -42003,7 +42042,8 @@ var init_persistent = __esm({
|
|
|
42003
42042
|
"user_message",
|
|
42004
42043
|
"user_message_chunk",
|
|
42005
42044
|
"_alan/log",
|
|
42006
|
-
"_alan/thinking_tokens"
|
|
42045
|
+
"_alan/thinking_tokens",
|
|
42046
|
+
"_alan/mcp_servers"
|
|
42007
42047
|
]);
|
|
42008
42048
|
FIRST_OUTPUT_TIMEOUT_MS = 3e5;
|
|
42009
42049
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alan-ai-hq/agent-manager-darwin-arm64",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.159",
|
|
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",
|