negotium 0.10.0 → 0.11.0
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/README.md +1 -1
- package/dist/agent-helpers.js +92 -17
- package/dist/agent-helpers.js.map +12 -12
- package/dist/background-bash.js +3 -3
- package/dist/background-bash.js.map +2 -2
- package/dist/browser-runtime.js +3 -3
- package/dist/browser-runtime.js.map +2 -2
- package/dist/{chunk-06zc96py.js → chunk-ej0q23pd.js} +1 -1
- package/dist/{chunk-mqq04nr5.js → chunk-nz753vtn.js} +3 -3
- package/dist/{chunk-mqq04nr5.js.map → chunk-nz753vtn.js.map} +2 -2
- package/dist/{chunk-pp6dvrzq.js → chunk-x4rda52h.js} +3 -3
- package/dist/{chunk-pp6dvrzq.js.map → chunk-x4rda52h.js.map} +2 -2
- package/dist/hosted-agent.js +8 -6
- package/dist/hosted-agent.js.map +5 -5
- package/dist/main.js +94 -17
- package/dist/main.js.map +13 -13
- package/dist/mcp-factories.js +92 -17
- package/dist/mcp-factories.js.map +12 -12
- package/dist/media.js +3 -3
- package/dist/media.js.map +2 -2
- package/dist/prompts.js +55 -7
- package/dist/prompts.js.map +5 -5
- package/dist/query-runtime.js +3 -3
- package/dist/query-runtime.js.map +2 -2
- package/dist/registry.js +9 -5
- package/dist/registry.js.map +3 -3
- package/dist/rollout.js +2 -2
- package/dist/runtime/src/agents/auth-check.ts +14 -5
- package/dist/runtime/src/agents/maestro-provider.ts +7 -7
- package/dist/runtime/src/agents/maestro-registry.ts +4 -0
- package/dist/runtime/src/agents/model-catalog.ts +48 -0
- package/dist/runtime/src/platform/config.ts +2 -2
- package/dist/runtime/src/prompts/agents/wiki-archiver.md +112 -248
- package/dist/runtime/src/prompts/builders.ts +31 -7
- package/dist/runtime/src/prompts/sessions/_shared-tools.md +4 -1
- package/dist/runtime/src/prompts/sessions/channel-system.md +1 -1
- package/dist/runtime/src/prompts/sessions/manager-system.md +2 -2
- package/dist/runtime/src/prompts/sessions/surfaces/cli.md +6 -0
- package/dist/runtime/src/prompts/sessions/surfaces/otium.md +6 -0
- package/dist/runtime/src/prompts/sessions/surfaces/telegram.md +5 -0
- package/dist/runtime/src/prompts/sessions/surfaces/terminal.md +6 -0
- package/dist/runtime/src/prompts/sessions/visual-design.md +36 -84
- package/dist/runtime/src/runtime/errors.ts +2 -2
- package/dist/runtime/src/runtime/turn-runner.ts +1 -0
- package/dist/runtime/src/storage/token-stats.ts +5 -0
- package/dist/runtime/src/version.ts +1 -1
- package/dist/runtime-helpers.js +3 -3
- package/dist/runtime-helpers.js.map +2 -2
- package/dist/storage.js +4 -1
- package/dist/storage.js.map +3 -3
- package/dist/types/packages/core/src/agents/maestro-provider.d.ts +4 -7
- package/dist/types/packages/core/src/agents/model-catalog.d.ts +2 -0
- package/dist/types/packages/core/src/platform/config.d.ts +2 -2
- package/dist/types/packages/core/src/prompts/builders.d.ts +4 -2
- package/dist/types/packages/core/src/version.d.ts +1 -1
- package/dist/vault.js +3 -3
- package/dist/vault.js.map +2 -2
- package/install-browser-rs.mjs +3 -3
- package/package.json +2 -2
- /package/dist/{chunk-06zc96py.js.map → chunk-ej0q23pd.js.map} +0 -0
package/README.md
CHANGED
|
@@ -21,7 +21,7 @@ negotium -v
|
|
|
21
21
|
```
|
|
22
22
|
|
|
23
23
|
Authenticate Claude with `claude`, Codex with `codex login`, or Maestro with
|
|
24
|
-
`DEEPSEEK_API_KEY` for DeepSeek or `
|
|
24
|
+
`DEEPSEEK_API_KEY` for DeepSeek, `MOONSHOT_API_KEY` for Kimi, or `GLM_API_KEY` for GLM. See the
|
|
25
25
|
[main repository](https://github.com/maestrojeong/negotium) for configuration, security guidance,
|
|
26
26
|
and architecture.
|
|
27
27
|
|
package/dist/agent-helpers.js
CHANGED
|
@@ -343,7 +343,7 @@ function resolveWhisperBackend() {
|
|
|
343
343
|
function codexAuthFilePath() {
|
|
344
344
|
return process.env.NEGOTIUM_CODEX_AUTH_FILE || join(process.env.CODEX_HOME || join(homedir(), ".codex"), "auth.json");
|
|
345
345
|
}
|
|
346
|
-
var HOME, PROJECT_ROOT, STATE_DIR, WORKSPACE_DIR, TOPIC_WORKSPACE_DIR, SHARED_WIKI_DIR, CRON_WORKSPACE_DIR, BROWSER_DIR, BROWSER_PROFILES_DIR, BINARIES_DIR, SECRETS_DIR, DM_WORKSPACE_DIR, SESSION_WORKSPACE_DIR, CLAUDE_EXECUTABLE_ENV, CLAUDE_EXECUTABLE, DEFAULT_OUTPUT_LANGUAGE = "English", BROWSER_RS_VERSION = "v0.1
|
|
346
|
+
var HOME, PROJECT_ROOT, STATE_DIR, WORKSPACE_DIR, TOPIC_WORKSPACE_DIR, SHARED_WIKI_DIR, CRON_WORKSPACE_DIR, BROWSER_DIR, BROWSER_PROFILES_DIR, BINARIES_DIR, SECRETS_DIR, DM_WORKSPACE_DIR, SESSION_WORKSPACE_DIR, CLAUDE_EXECUTABLE_ENV, CLAUDE_EXECUTABLE, DEFAULT_OUTPUT_LANGUAGE = "English", BROWSER_RS_VERSION = "v0.2.1", BROWSER_RS_MIN_SECURE_VERSION = "0.2.1", BROWSER_RS_VERSION_PROBE_TIMEOUT_MS = 15000, SNIPPETS_API_URL, BROWSER_RS_BIN, BASH_RS_VERSION = "v0.1.7", BASH_RS_BIN, PLAYWRIGHT_MCP_BIN, TSX_BIN, TSX_LOADER, TSCONFIG_PATH, SESSION_COMM_SERVER, TASK_SERVER, DECISION_SERVER, CANONICAL_MCP_PROXY_SERVER, WIKI_SERVER, TOKEN_STATS_SERVER, COMPACTION_LOG_SERVER, SYSTEM_HEALTH_SERVER, AGENT_HEALTH_SERVER, VAULT_SERVER, BG_BASH_BASE_PORT, BG_BASH_MAX_PORT, RUNTIME_MCP_SECRET, NODE_CONTROL_TOKEN, NODE_ID, VAULT_MASTER_KEY, NEGOTIUM_PORT, hostname, DATA_DIR, LOG_DIR, UPLOADS_DIR, VAULT_DIR, SESSIONS_DB, DEBUG_FILE, USERS_LOG_DIR, RUN_DIR, PROGRESS_DIR, DM_CMD_DIR, DM_RESP_DIR, SESSION_INBOX_DIR, SESSION_ASKS_DIR, BASHRS_SPILL_ROOT, PLAYWRIGHT_BASE_PORT, PLAYWRIGHT_MAX_PORT, PLAYWRIGHT_PORTS_DIR, ACTIVE_QUERY_STALE_MS, AGENTS_PROMPTS_DIR, RESOURCES_DIR, FILE_TAG_REGEX, MODEL_SONNET = "claude-sonnet-5", MODEL_OPUS = "claude-opus-5", MODEL_FABLE = "claude-fable-5", FALLBACK_AGENT, SESSION_AGENT, GATEWAY_AGENT, FALLBACK_MODEL, SESSION_MODEL, GATEWAY_MODEL, FFMPEG_BIN, FFPROBE_BIN, PYTHON_BIN, FASTER_WHISPER_WRAPPER, WHISPER_MODEL, TESSERACT_BIN, PDFTOTEXT_BIN, WHISPER_BACKEND, MLX_WHISPER_BIN, WHISPER_MODEL_MLX, _envMaxTellDepth, MAX_TELL_DEPTH;
|
|
347
347
|
var init_config = __esm(() => {
|
|
348
348
|
init_config_helpers();
|
|
349
349
|
init_logger();
|
|
@@ -3001,7 +3001,7 @@ var init_codex = __esm(async () => {
|
|
|
3001
3001
|
});
|
|
3002
3002
|
|
|
3003
3003
|
// ../../packages/core/src/version.ts
|
|
3004
|
-
var NEGOTIUM_VERSION = "0.
|
|
3004
|
+
var NEGOTIUM_VERSION = "0.11.0";
|
|
3005
3005
|
|
|
3006
3006
|
// ../../packages/core/src/agents/codex-native-multi-agent.ts
|
|
3007
3007
|
import { spawn as spawn2 } from "child_process";
|
|
@@ -3491,7 +3491,11 @@ var init_maestro_registry = __esm(() => {
|
|
|
3491
3491
|
"deepseek-flash": "deepseek-v4-flash",
|
|
3492
3492
|
kimi: "kimi-k3",
|
|
3493
3493
|
"kimi-pro": "kimi-k3",
|
|
3494
|
-
"kimi-code": "kimi-k2.7-code"
|
|
3494
|
+
"kimi-code": "kimi-k2.7-code",
|
|
3495
|
+
glm: "glm-5.3",
|
|
3496
|
+
"glm-pro": "glm-5.3",
|
|
3497
|
+
"glm-flash": "glm-5.3-flash",
|
|
3498
|
+
"glm-5.2": "glm-5.2"
|
|
3495
3499
|
};
|
|
3496
3500
|
VALID_MODELS = new Set([...Object.keys(ALIAS_MAP2), ...Object.values(ALIAS_MAP2)]);
|
|
3497
3501
|
VALID_EFFORTS3 = new Set(MAESTRO_EFFORT_VALUES);
|
|
@@ -6149,11 +6153,13 @@ function resolveMaestroApiKeyOverrides(userId) {
|
|
|
6149
6153
|
return;
|
|
6150
6154
|
const deepseek = vaultGetValue(userId, "DEEPSEEK_API_KEY")?.trim();
|
|
6151
6155
|
const moonshot = vaultGetValue(userId, "MOONSHOT_API_KEY")?.trim();
|
|
6152
|
-
|
|
6156
|
+
const glm = vaultGetValue(userId, "GLM_API_KEY")?.trim();
|
|
6157
|
+
if (!deepseek && !moonshot && !glm)
|
|
6153
6158
|
return;
|
|
6154
6159
|
return {
|
|
6155
6160
|
...deepseek ? { deepseek } : {},
|
|
6156
|
-
...moonshot ? { moonshot } : {}
|
|
6161
|
+
...moonshot ? { moonshot } : {},
|
|
6162
|
+
...glm ? { glm } : {}
|
|
6157
6163
|
};
|
|
6158
6164
|
}
|
|
6159
6165
|
function buildProviderOwnedToolBlockHook() {
|
|
@@ -6648,6 +6654,8 @@ function modelOwner(model) {
|
|
|
6648
6654
|
return "maestro";
|
|
6649
6655
|
if (model.startsWith("kimi-"))
|
|
6650
6656
|
return "maestro";
|
|
6657
|
+
if (model.startsWith("glm-"))
|
|
6658
|
+
return "maestro";
|
|
6651
6659
|
if (model.startsWith("gpt-"))
|
|
6652
6660
|
return "codex";
|
|
6653
6661
|
return MODEL_OWNER[model];
|
|
@@ -6687,7 +6695,13 @@ var init_model_catalog = __esm(() => {
|
|
|
6687
6695
|
"kimi-pro": "maestro",
|
|
6688
6696
|
"kimi-k3": "maestro",
|
|
6689
6697
|
"kimi-code": "maestro",
|
|
6690
|
-
"kimi-k2.7-code": "maestro"
|
|
6698
|
+
"kimi-k2.7-code": "maestro",
|
|
6699
|
+
glm: "maestro",
|
|
6700
|
+
"glm-pro": "maestro",
|
|
6701
|
+
"glm-flash": "maestro",
|
|
6702
|
+
"glm-5.3": "maestro",
|
|
6703
|
+
"glm-5.2": "maestro",
|
|
6704
|
+
"glm-5.3-flash": "maestro"
|
|
6691
6705
|
};
|
|
6692
6706
|
SELECTABLE_MODELS = [
|
|
6693
6707
|
{
|
|
@@ -6770,6 +6784,36 @@ var init_model_catalog = __esm(() => {
|
|
|
6770
6784
|
marginalTokenCost: "Kimi API: $0.95/M cache-miss input, $0.19/M cached input, $4/M output",
|
|
6771
6785
|
estimatedUsage: "No subscription token cap; pay per token. Always uses thinking and supports a 256K context window."
|
|
6772
6786
|
},
|
|
6787
|
+
{
|
|
6788
|
+
model: "glm-5.3",
|
|
6789
|
+
agent: "maestro",
|
|
6790
|
+
description: "Coding-focused GLM flagship with Opus-tier benchmark performance.",
|
|
6791
|
+
intelligenceTier: "opus",
|
|
6792
|
+
routingSummary: "coding-focused flagship route; 1M context; competitive with Opus-tier coding benchmarks at a fraction of the cost",
|
|
6793
|
+
accessCost: "Zhipu AI pay-as-you-go API; no monthly subscription required",
|
|
6794
|
+
marginalTokenCost: "Approximate GLM API rate: $1.40/M input, $4.40/M output",
|
|
6795
|
+
estimatedUsage: "No subscription token cap; pay per token. Always uses thinking and supports a 1M-token context window; text-only input."
|
|
6796
|
+
},
|
|
6797
|
+
{
|
|
6798
|
+
model: "glm-5.2",
|
|
6799
|
+
agent: "maestro",
|
|
6800
|
+
description: "Previous-generation GLM flagship for cost-efficient everyday work.",
|
|
6801
|
+
intelligenceTier: "sonnet",
|
|
6802
|
+
routingSummary: "previous-gen flagship; 1M context; cost-efficient everyday work, cheaper than glm-5.3",
|
|
6803
|
+
accessCost: "Zhipu AI pay-as-you-go API; no monthly subscription required",
|
|
6804
|
+
marginalTokenCost: "Approximate GLM API rate: $0.95/M input, $3/M output",
|
|
6805
|
+
estimatedUsage: "No subscription token cap; pay per token. Always uses thinking and supports a 1M-token context window; text-only input."
|
|
6806
|
+
},
|
|
6807
|
+
{
|
|
6808
|
+
model: "glm-5.3-flash",
|
|
6809
|
+
agent: "maestro",
|
|
6810
|
+
description: "Low-cost multimodal GLM route with native image input.",
|
|
6811
|
+
intelligenceTier: "sonnet",
|
|
6812
|
+
routingSummary: "cheapest GLM route; 1M context; the only GLM model with native vision/multimodal support",
|
|
6813
|
+
accessCost: "Zhipu AI pay-as-you-go API; no monthly subscription required",
|
|
6814
|
+
marginalTokenCost: "Approximate GLM API rate: $0.15/M input, $0.50/M output",
|
|
6815
|
+
estimatedUsage: "No subscription token cap; pay per token. Always uses thinking, supports a 1M-token context window, and accepts native image input."
|
|
6816
|
+
},
|
|
6773
6817
|
{
|
|
6774
6818
|
model: "deepseek-pro",
|
|
6775
6819
|
agent: "maestro",
|
|
@@ -6794,7 +6838,10 @@ var init_model_catalog = __esm(() => {
|
|
|
6794
6838
|
SELECTABLE_MODEL_ALIASES = {
|
|
6795
6839
|
kimi: "kimi-k3",
|
|
6796
6840
|
"kimi-pro": "kimi-k3",
|
|
6797
|
-
"kimi-code": "kimi-k2.7-code"
|
|
6841
|
+
"kimi-code": "kimi-k2.7-code",
|
|
6842
|
+
glm: "glm-5.3",
|
|
6843
|
+
"glm-pro": "glm-5.3",
|
|
6844
|
+
"glm-flash": "glm-5.3-flash"
|
|
6798
6845
|
};
|
|
6799
6846
|
FALLBACK_ORDER = {
|
|
6800
6847
|
claude: [
|
|
@@ -7071,12 +7118,13 @@ function createPromptBuilders(host = {}) {
|
|
|
7071
7118
|
sections.sort((a, b) => (a.order ?? 0) - (b.order ?? 0) || a.id.localeCompare(b.id));
|
|
7072
7119
|
const templateCache = new Map;
|
|
7073
7120
|
const template = (request) => {
|
|
7074
|
-
const
|
|
7121
|
+
const cacheKey = `${request.kind}:${request.filename}`;
|
|
7122
|
+
const cached = templateCache.get(cacheKey);
|
|
7075
7123
|
if (cached !== undefined)
|
|
7076
7124
|
return cached;
|
|
7077
7125
|
const loaded = loadTemplate?.(request);
|
|
7078
|
-
const value = loaded ?? (request.kind === "topic-system" ? topicSystemPromptTemplate() : request.kind === "channel-system" ? channelSystemPromptTemplate() : request.kind === "manager-system" ? managerSystemPromptTemplate() : visualDesignGuide());
|
|
7079
|
-
templateCache.set(
|
|
7126
|
+
const value = loaded ?? (request.kind === "topic-system" ? topicSystemPromptTemplate() : request.kind === "channel-system" ? channelSystemPromptTemplate() : request.kind === "manager-system" ? managerSystemPromptTemplate() : request.kind === "surface-profile" ? loadSessionPrompt(request.filename, request.fallback) : visualDesignGuide());
|
|
7127
|
+
templateCache.set(cacheKey, value);
|
|
7080
7128
|
return value;
|
|
7081
7129
|
};
|
|
7082
7130
|
const build = (sessionKind, opts, sessionTemplate) => {
|
|
@@ -7092,7 +7140,19 @@ function createPromptBuilders(host = {}) {
|
|
|
7092
7140
|
UPLOADS_DIR: uploadsDir,
|
|
7093
7141
|
RESPONSE_LANGUAGE: resolveOutputLanguage()
|
|
7094
7142
|
};
|
|
7095
|
-
|
|
7143
|
+
const environmentProfileFiles = [
|
|
7144
|
+
...opts.surface === "terminal" ? ["surfaces/cli.md"] : [],
|
|
7145
|
+
...opts.surface ? [SURFACE_PROFILE_FILES[opts.surface]] : []
|
|
7146
|
+
];
|
|
7147
|
+
const environmentProfiles = environmentProfileFiles.map((filename) => template({
|
|
7148
|
+
kind: "surface-profile",
|
|
7149
|
+
filename,
|
|
7150
|
+
fallback: ""
|
|
7151
|
+
}));
|
|
7152
|
+
const basePrompt = [sessionTemplate, ...environmentProfiles].filter((part) => part.trim()).join(`
|
|
7153
|
+
|
|
7154
|
+
`);
|
|
7155
|
+
let prompt = replaceVars(basePrompt, templateVars) + buildRuntimeToolSection({
|
|
7096
7156
|
agentKind: opts.agentKind,
|
|
7097
7157
|
canSpawnSubagents: sessionKind === "channel" ? false : opts.canSpawnSubagents,
|
|
7098
7158
|
canStageSubagents: sessionKind === "channel" ? false : opts.canStageSubagents,
|
|
@@ -7172,7 +7232,7 @@ function buildMemoryPromptSection(opts) {
|
|
|
7172
7232
|
return parts.join(`
|
|
7173
7233
|
`);
|
|
7174
7234
|
}
|
|
7175
|
-
var PROMPTS_DIR, SESSIONS_DIR, FALLBACK_TOPIC_SYSTEM_PROMPT_TEMPLATE = `You are a helpful AI assistant named "{{AI_LABEL}}".
|
|
7235
|
+
var PROMPTS_DIR, SESSIONS_DIR, SURFACE_PROFILE_FILES, FALLBACK_TOPIC_SYSTEM_PROMPT_TEMPLATE = `You are a helpful AI assistant named "{{AI_LABEL}}".
|
|
7176
7236
|
Topic: {{TOPIC_TITLE}}.
|
|
7177
7237
|
Respond in the user's language (default: {{RESPONSE_LANGUAGE}}).
|
|
7178
7238
|
|
|
@@ -7201,6 +7261,11 @@ var init_builders = __esm(() => {
|
|
|
7201
7261
|
init_logger();
|
|
7202
7262
|
PROMPTS_DIR = resolve11(PROJECT_ROOT, "src/prompts");
|
|
7203
7263
|
SESSIONS_DIR = resolve11(PROMPTS_DIR, "sessions");
|
|
7264
|
+
SURFACE_PROFILE_FILES = {
|
|
7265
|
+
terminal: "surfaces/terminal.md",
|
|
7266
|
+
telegram: "surfaces/telegram.md",
|
|
7267
|
+
otium: "surfaces/otium.md"
|
|
7268
|
+
};
|
|
7204
7269
|
defaultPromptBuilders = createPromptBuilders();
|
|
7205
7270
|
buildTopicSystemPrompt = defaultPromptBuilders.buildTopicSystemPrompt;
|
|
7206
7271
|
buildChannelSystemPrompt = defaultPromptBuilders.buildChannelSystemPrompt;
|
|
@@ -8818,12 +8883,12 @@ function checkAgentAuth(agent, host = defaultAgentAuthHost, userId) {
|
|
|
8818
8883
|
};
|
|
8819
8884
|
}
|
|
8820
8885
|
case "maestro": {
|
|
8821
|
-
if (hasMaestroCredential(host, "DEEPSEEK_API_KEY", userId) || hasMaestroCredential(host, "MOONSHOT_API_KEY", userId)) {
|
|
8886
|
+
if (hasMaestroCredential(host, "DEEPSEEK_API_KEY", userId) || hasMaestroCredential(host, "MOONSHOT_API_KEY", userId) || hasMaestroCredential(host, "GLM_API_KEY", userId)) {
|
|
8822
8887
|
return { ok: true };
|
|
8823
8888
|
}
|
|
8824
8889
|
return {
|
|
8825
8890
|
ok: false,
|
|
8826
|
-
error: "maestro is not authenticated (set DEEPSEEK_API_KEY or
|
|
8891
|
+
error: "maestro is not authenticated (set DEEPSEEK_API_KEY, MOONSHOT_API_KEY, or GLM_API_KEY via /vault set, or as an env var)"
|
|
8827
8892
|
};
|
|
8828
8893
|
}
|
|
8829
8894
|
}
|
|
@@ -8843,6 +8908,12 @@ function checkAgentModelAuth(agent, model, host = defaultAgentAuthHost, userId)
|
|
|
8843
8908
|
error: `maestro is not authenticated for model '${model}' (set DEEPSEEK_API_KEY via /vault set, or as an env var)`
|
|
8844
8909
|
};
|
|
8845
8910
|
}
|
|
8911
|
+
if (model.startsWith("glm")) {
|
|
8912
|
+
return hasMaestroCredential(host, "GLM_API_KEY", userId) ? { ok: true } : {
|
|
8913
|
+
ok: false,
|
|
8914
|
+
error: `maestro is not authenticated for model '${model}' (set GLM_API_KEY via /vault set, or as an env var)`
|
|
8915
|
+
};
|
|
8916
|
+
}
|
|
8846
8917
|
return checkAgentAuth(agent, host, userId);
|
|
8847
8918
|
}
|
|
8848
8919
|
var defaultAgentAuthHost;
|
|
@@ -12380,6 +12451,9 @@ var init_token_stats = __esm(async () => {
|
|
|
12380
12451
|
"claude:sonnet": { input: 2, cacheWrite: 2.5, cacheRead: 0.2, output: 10 },
|
|
12381
12452
|
"maestro:kimi-k3": { input: 3, cacheRead: 0.3, output: 15 },
|
|
12382
12453
|
"maestro:kimi-k2.7-code": { input: 0.95, cacheRead: 0.19, output: 4 },
|
|
12454
|
+
"maestro:glm-5.3": { input: 1.4, cacheRead: 1.4, output: 4.4 },
|
|
12455
|
+
"maestro:glm-5.2": { input: 0.95, cacheRead: 0.95, output: 3 },
|
|
12456
|
+
"maestro:glm-5.3-flash": { input: 0.15, cacheRead: 0.15, output: 0.5 },
|
|
12383
12457
|
"maestro:deepseek-pro": { input: 0.435, cacheRead: 0.003625, output: 0.87 },
|
|
12384
12458
|
"maestro:deepseek-flash": { input: 0.14, cacheRead: 0.0028, output: 0.28 }
|
|
12385
12459
|
};
|
|
@@ -15631,7 +15705,7 @@ function authRecoveryHint(agent) {
|
|
|
15631
15705
|
case "codex":
|
|
15632
15706
|
return "Please log in again with `codex login` (~/.codex/auth.json)";
|
|
15633
15707
|
case "maestro":
|
|
15634
|
-
return "Please check the DEEPSEEK_API_KEY or
|
|
15708
|
+
return "Please check the DEEPSEEK_API_KEY, MOONSHOT_API_KEY, or GLM_API_KEY environment variable";
|
|
15635
15709
|
}
|
|
15636
15710
|
}
|
|
15637
15711
|
function classifyAgentError(err2, agent) {
|
|
@@ -15647,7 +15721,7 @@ function classifyAgentError(err2, agent) {
|
|
|
15647
15721
|
return status === 529 ? `${name} server is overloaded. Please try again in a moment. (529)` : `${name} server error occurred. Please try again in a moment. (500)`;
|
|
15648
15722
|
}
|
|
15649
15723
|
const s = stringifyError(err2);
|
|
15650
|
-
if (/401|authentication.error|invalid.*api.key|not logged|ANTHROPIC_API_KEY|DEEPSEEK_API_KEY|MOONSHOT_API_KEY/i.test(s)) {
|
|
15724
|
+
if (/401|authentication.error|invalid.*api.key|not logged|ANTHROPIC_API_KEY|DEEPSEEK_API_KEY|MOONSHOT_API_KEY|GLM_API_KEY/i.test(s)) {
|
|
15651
15725
|
return `${name} authentication expired. ${hint}. (401)`;
|
|
15652
15726
|
}
|
|
15653
15727
|
if (/429|rate.limit/i.test(s))
|
|
@@ -17760,6 +17834,7 @@ function startAiTurn(params) {
|
|
|
17760
17834
|
topicTitle: topic.title,
|
|
17761
17835
|
workspaceCwd,
|
|
17762
17836
|
agentKind,
|
|
17837
|
+
surface: topicRecord?.surface ?? topic.surface,
|
|
17763
17838
|
currentModel: resolvedModel,
|
|
17764
17839
|
currentEffort: resolvedEffort,
|
|
17765
17840
|
description: topic.description,
|
|
@@ -20177,4 +20252,4 @@ export {
|
|
|
20177
20252
|
DEFAULT_SELF_CONFIG_PRODUCT
|
|
20178
20253
|
};
|
|
20179
20254
|
|
|
20180
|
-
//# debugId=
|
|
20255
|
+
//# debugId=94089A8AD30B3CFE64756E2164756E21
|