negotium 0.9.0 → 0.10.1
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 +68 -12
- package/dist/agent-helpers.js.map +10 -10
- 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-ae0ya01v.js → chunk-ejsvb6fn.js} +3 -3
- package/dist/{chunk-ae0ya01v.js.map → chunk-ejsvb6fn.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 +70 -12
- package/dist/main.js.map +11 -11
- package/dist/mcp-factories.js +68 -12
- package/dist/mcp-factories.js.map +10 -10
- package/dist/media.js +3 -3
- package/dist/media.js.map +2 -2
- package/dist/prompts.js +33 -3
- package/dist/prompts.js.map +4 -4
- 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/runtime/errors.ts +2 -2
- 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/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 +5 -5
- /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.10.1";
|
|
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: [
|
|
@@ -8818,12 +8865,12 @@ function checkAgentAuth(agent, host = defaultAgentAuthHost, userId) {
|
|
|
8818
8865
|
};
|
|
8819
8866
|
}
|
|
8820
8867
|
case "maestro": {
|
|
8821
|
-
if (hasMaestroCredential(host, "DEEPSEEK_API_KEY", userId) || hasMaestroCredential(host, "MOONSHOT_API_KEY", userId)) {
|
|
8868
|
+
if (hasMaestroCredential(host, "DEEPSEEK_API_KEY", userId) || hasMaestroCredential(host, "MOONSHOT_API_KEY", userId) || hasMaestroCredential(host, "GLM_API_KEY", userId)) {
|
|
8822
8869
|
return { ok: true };
|
|
8823
8870
|
}
|
|
8824
8871
|
return {
|
|
8825
8872
|
ok: false,
|
|
8826
|
-
error: "maestro is not authenticated (set DEEPSEEK_API_KEY or
|
|
8873
|
+
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
8874
|
};
|
|
8828
8875
|
}
|
|
8829
8876
|
}
|
|
@@ -8843,6 +8890,12 @@ function checkAgentModelAuth(agent, model, host = defaultAgentAuthHost, userId)
|
|
|
8843
8890
|
error: `maestro is not authenticated for model '${model}' (set DEEPSEEK_API_KEY via /vault set, or as an env var)`
|
|
8844
8891
|
};
|
|
8845
8892
|
}
|
|
8893
|
+
if (model.startsWith("glm")) {
|
|
8894
|
+
return hasMaestroCredential(host, "GLM_API_KEY", userId) ? { ok: true } : {
|
|
8895
|
+
ok: false,
|
|
8896
|
+
error: `maestro is not authenticated for model '${model}' (set GLM_API_KEY via /vault set, or as an env var)`
|
|
8897
|
+
};
|
|
8898
|
+
}
|
|
8846
8899
|
return checkAgentAuth(agent, host, userId);
|
|
8847
8900
|
}
|
|
8848
8901
|
var defaultAgentAuthHost;
|
|
@@ -12380,6 +12433,9 @@ var init_token_stats = __esm(async () => {
|
|
|
12380
12433
|
"claude:sonnet": { input: 2, cacheWrite: 2.5, cacheRead: 0.2, output: 10 },
|
|
12381
12434
|
"maestro:kimi-k3": { input: 3, cacheRead: 0.3, output: 15 },
|
|
12382
12435
|
"maestro:kimi-k2.7-code": { input: 0.95, cacheRead: 0.19, output: 4 },
|
|
12436
|
+
"maestro:glm-5.3": { input: 1.4, cacheRead: 1.4, output: 4.4 },
|
|
12437
|
+
"maestro:glm-5.2": { input: 0.95, cacheRead: 0.95, output: 3 },
|
|
12438
|
+
"maestro:glm-5.3-flash": { input: 0.15, cacheRead: 0.15, output: 0.5 },
|
|
12383
12439
|
"maestro:deepseek-pro": { input: 0.435, cacheRead: 0.003625, output: 0.87 },
|
|
12384
12440
|
"maestro:deepseek-flash": { input: 0.14, cacheRead: 0.0028, output: 0.28 }
|
|
12385
12441
|
};
|
|
@@ -15631,7 +15687,7 @@ function authRecoveryHint(agent) {
|
|
|
15631
15687
|
case "codex":
|
|
15632
15688
|
return "Please log in again with `codex login` (~/.codex/auth.json)";
|
|
15633
15689
|
case "maestro":
|
|
15634
|
-
return "Please check the DEEPSEEK_API_KEY or
|
|
15690
|
+
return "Please check the DEEPSEEK_API_KEY, MOONSHOT_API_KEY, or GLM_API_KEY environment variable";
|
|
15635
15691
|
}
|
|
15636
15692
|
}
|
|
15637
15693
|
function classifyAgentError(err2, agent) {
|
|
@@ -15647,7 +15703,7 @@ function classifyAgentError(err2, agent) {
|
|
|
15647
15703
|
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
15704
|
}
|
|
15649
15705
|
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)) {
|
|
15706
|
+
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
15707
|
return `${name} authentication expired. ${hint}. (401)`;
|
|
15652
15708
|
}
|
|
15653
15709
|
if (/429|rate.limit/i.test(s))
|
|
@@ -20177,4 +20233,4 @@ export {
|
|
|
20177
20233
|
DEFAULT_SELF_CONFIG_PRODUCT
|
|
20178
20234
|
};
|
|
20179
20235
|
|
|
20180
|
-
//# debugId=
|
|
20236
|
+
//# debugId=6125C3400F8555BD64756E2164756E21
|