negotium 0.2.7 → 0.2.9
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/agent-helpers.js +40 -24
- package/dist/agent-helpers.js.map +9 -9
- package/dist/background-bash.js +2 -2
- package/dist/background-bash.js.map +2 -2
- package/dist/browser-runtime.js +4 -3
- package/dist/browser-runtime.js.map +4 -4
- package/dist/{chunk-qmbcbhyy.js → chunk-knv045mn.js} +2 -2
- package/dist/{chunk-qmbcbhyy.js.map → chunk-knv045mn.js.map} +2 -2
- package/dist/hosted-agent.js +8 -4
- package/dist/hosted-agent.js.map +5 -5
- package/dist/main.js +40 -24
- package/dist/main.js.map +9 -9
- package/dist/mcp-factories.js +40 -24
- package/dist/mcp-factories.js.map +9 -9
- package/dist/prompts.js +14 -4
- package/dist/prompts.js.map +4 -4
- package/dist/query-runtime.js +2 -2
- package/dist/query-runtime.js.map +2 -2
- package/dist/registry.js +10 -5
- package/dist/registry.js.map +4 -4
- package/dist/rollout.js +1 -1
- package/dist/runtime/src/agents/claude-provider.ts +7 -0
- package/dist/runtime/src/agents/maestro-registry.ts +37 -2
- package/dist/runtime/src/agents/model-catalog.ts +18 -4
- package/dist/runtime/src/mcp/background-bash-server.ts +194 -17
- package/dist/runtime/src/platform/config.ts +1 -1
- package/dist/runtime/src/platform/playwright/vault-broker.ts +7 -0
- package/dist/runtime/src/runtime/turn-runner.ts +34 -11
- package/dist/runtime/src/version.ts +1 -1
- package/dist/runtime-helpers.js +2 -2
- package/dist/runtime-helpers.js.map +2 -2
- package/dist/types/packages/core/src/agents/model-catalog.d.ts +4 -3
- package/dist/types/packages/core/src/platform/config.d.ts +1 -1
- package/dist/types/packages/core/src/version.d.ts +1 -1
- package/dist/vault.js +2 -2
- package/dist/vault.js.map +2 -2
- package/install-browser-rs.mjs +3 -3
- package/package.json +2 -2
package/dist/main.js
CHANGED
|
@@ -253,7 +253,7 @@ function resolveDefaultModel(agent, registryDefaultModel) {
|
|
|
253
253
|
function codexAuthFilePath() {
|
|
254
254
|
return process.env.NEGOTIUM_CODEX_AUTH_FILE || join(process.env.CODEX_HOME || join(homedir(), ".codex"), "auth.json");
|
|
255
255
|
}
|
|
256
|
-
var HOME, PROJECT_ROOT, STATE_DIR_ENV, 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.
|
|
256
|
+
var HOME, PROJECT_ROOT, STATE_DIR_ENV, 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.17", BROWSER_RS_MIN_SECURE_VERSION = "0.1.15", BROWSER_RS_BIN, PLAYWRIGHT_MCP_BIN, TSX_BIN, TSX_LOADER, TSCONFIG_PATH, SESSION_COMM_SERVER, TASK_SERVER, BROWSER_MCP_SSE_PROXY_SERVER, CANONICAL_MCP_PROXY_SERVER, WIKI_SERVER, TOKEN_STATS_SERVER, COMPACTION_LOG_SERVER, SYSTEM_HEALTH_SERVER, AGENT_HEALTH_SERVER, BACKGROUND_BASH_SERVER, VAULT_SERVER, BG_BASH_BASE_PORT, BG_BASH_MAX_PORT, RUNTIME_MCP_SECRET, NODE_CONTROL_TOKEN, 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, 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, _envMaxTellDepth, MAX_TELL_DEPTH;
|
|
257
257
|
var init_config = __esm(() => {
|
|
258
258
|
init_config_helpers();
|
|
259
259
|
init_logger();
|
|
@@ -1560,7 +1560,7 @@ var exports_version = {};
|
|
|
1560
1560
|
__export(exports_version, {
|
|
1561
1561
|
NEGOTIUM_VERSION: () => NEGOTIUM_VERSION
|
|
1562
1562
|
});
|
|
1563
|
-
var NEGOTIUM_VERSION = "0.2.
|
|
1563
|
+
var NEGOTIUM_VERSION = "0.2.9";
|
|
1564
1564
|
|
|
1565
1565
|
// ../../packages/core/src/agents/codex-native-multi-agent.ts
|
|
1566
1566
|
import { spawn } from "child_process";
|
|
@@ -3633,6 +3633,9 @@ function existingCreatedAt(path) {
|
|
|
3633
3633
|
return;
|
|
3634
3634
|
}
|
|
3635
3635
|
}
|
|
3636
|
+
function nonEmptyTurnText(text) {
|
|
3637
|
+
return text.trim().length > 0 ? text : BLANK_TURN_PLACEHOLDER;
|
|
3638
|
+
}
|
|
3636
3639
|
function writeRollout(options) {
|
|
3637
3640
|
const sessionId = options.reuseSessionId ?? randomUUID3();
|
|
3638
3641
|
assertUuidLike("sessionId", sessionId);
|
|
@@ -3640,8 +3643,8 @@ function writeRollout(options) {
|
|
|
3640
3643
|
const path = maestroSessionPath(sessionId);
|
|
3641
3644
|
mkdirSync6(maestroSessionsDir(), { recursive: true });
|
|
3642
3645
|
const messages = extractChatPairs(options.entries).flatMap((pair) => [
|
|
3643
|
-
{ role: "user", content: pair.userText },
|
|
3644
|
-
{ role: "assistant", content: pair.assistantText }
|
|
3646
|
+
{ role: "user", content: nonEmptyTurnText(pair.userText) },
|
|
3647
|
+
{ role: "assistant", content: nonEmptyTurnText(pair.assistantText) }
|
|
3645
3648
|
]);
|
|
3646
3649
|
const lines = [
|
|
3647
3650
|
{
|
|
@@ -3661,13 +3664,14 @@ function writeRollout(options) {
|
|
|
3661
3664
|
});
|
|
3662
3665
|
return { sessionId, rolloutPath: path };
|
|
3663
3666
|
}
|
|
3664
|
-
var ALIAS_MAP2, VALID_MODELS, VALID_EFFORTS3, maestroRegistry, maestroRegistryOperations;
|
|
3667
|
+
var ALIAS_MAP2, VALID_MODELS, VALID_EFFORTS3, maestroRegistry, BLANK_TURN_PLACEHOLDER = "(no text content in this turn)", maestroRegistryOperations;
|
|
3665
3668
|
var init_maestro_registry = __esm(() => {
|
|
3666
3669
|
init_shared();
|
|
3667
3670
|
init_logger();
|
|
3668
3671
|
init_types();
|
|
3669
3672
|
ALIAS_MAP2 = {
|
|
3670
3673
|
"deepseek-pro": "deepseek-v4-pro",
|
|
3674
|
+
"deepseek-flash": "deepseek-v4-flash",
|
|
3671
3675
|
kimi: "kimi-k3",
|
|
3672
3676
|
"kimi-pro": "kimi-k3",
|
|
3673
3677
|
"kimi-code": "kimi-k2.7-code"
|
|
@@ -4988,7 +4992,11 @@ var init_claude_provider = __esm(async () => {
|
|
|
4988
4992
|
"TaskCreate",
|
|
4989
4993
|
"TaskUpdate",
|
|
4990
4994
|
"TaskList",
|
|
4991
|
-
"TaskGet"
|
|
4995
|
+
"TaskGet",
|
|
4996
|
+
"ScheduleWakeup",
|
|
4997
|
+
"CronCreate",
|
|
4998
|
+
"CronList",
|
|
4999
|
+
"CronDelete"
|
|
4992
5000
|
];
|
|
4993
5001
|
CLAUDE_NATIVE_AGENT_TOOLS = ["Task", "Agent", "TaskOutput", "TaskStop"];
|
|
4994
5002
|
CLAUDE_IMAGE_MAX_BYTES = 10 * 1024 * 1024;
|
|
@@ -8918,7 +8926,7 @@ function resolveCompactionExecution(agent, registry) {
|
|
|
8918
8926
|
const effort = registry.validateEffort("medium") ? "medium" : registry.defaultEffort;
|
|
8919
8927
|
return { model, ...effort ? { effort } : {} };
|
|
8920
8928
|
}
|
|
8921
|
-
var MODEL_OWNER, MODEL_COST_RESEARCHED_AT = "2026-
|
|
8929
|
+
var MODEL_OWNER, MODEL_COST_RESEARCHED_AT = "2026-08-04", MODEL_COST_ROUTING_SUMMARY = "Cost basis (2026-08-04): Codex Pro 20x and Claude Max 20x are each $200/month; Maestro models are pay-per-token. DeepSeek Flash is cheapest.", CODEX_PRO_20X_COST = "ChatGPT Pro 20x subscription: $200/month", CODEX_COMMUNITY_WEEKLY = "Community plan-level observation: roughly 2\u20134B raw/cached tokens per week; fresh-input equivalent is much lower and unstable (low confidence)", CLAUDE_MAX_20X_COST = "Claude Max 20x subscription: $200/month", CLAUDE_COMMUNITY_SESSION = "Community observations vary from roughly 220\u2013250K locally displayed tokens per 5-hour session to billions of cache-heavy raw tokens per week; calibrated reports value a full weekly allowance around $680\u2013$1,900 at API rates. Recent heavy-model reports reach the weekly cap after about 4\u20135 full sessions (low confidence; not a token cap)", SELECTABLE_MODELS, SELECTABLE_MODEL_ALIASES, FALLBACK_ORDER, AGENT_DISPLAY_NAME;
|
|
8922
8930
|
var init_model_catalog = __esm(() => {
|
|
8923
8931
|
init_config();
|
|
8924
8932
|
MODEL_OWNER = {
|
|
@@ -9025,10 +9033,20 @@ var init_model_catalog = __esm(() => {
|
|
|
9025
9033
|
agent: "maestro",
|
|
9026
9034
|
description: "API-priced Sonnet-level route for cost-efficient everyday work.",
|
|
9027
9035
|
intelligenceTier: "sonnet",
|
|
9028
|
-
routingSummary: "cost-efficient everyday work; pay-per-token
|
|
9036
|
+
routingSummary: "cost-efficient everyday work; pay-per-token, pricier than DeepSeek Flash",
|
|
9029
9037
|
accessCost: "DeepSeek V4 Pro pay-as-you-go API; no monthly subscription required",
|
|
9030
9038
|
marginalTokenCost: "DeepSeek API: $0.435/M uncached input, $0.003625/M cached input, $0.87/M output",
|
|
9031
9039
|
estimatedUsage: "No subscription token cap; pay per token. Official account concurrency limit is 500 requests."
|
|
9040
|
+
},
|
|
9041
|
+
{
|
|
9042
|
+
model: "deepseek-flash",
|
|
9043
|
+
agent: "maestro",
|
|
9044
|
+
description: "Faster, cheaper DeepSeek V4 variant (DeepSeek-V4-Flash-0731) at similar Sonnet-level quality for high-volume everyday work.",
|
|
9045
|
+
intelligenceTier: "sonnet",
|
|
9046
|
+
routingSummary: "cheapest overall route; pay-per-token, 1M context, 5x Pro's concurrency limit",
|
|
9047
|
+
accessCost: "DeepSeek V4 Flash pay-as-you-go API; no monthly subscription required",
|
|
9048
|
+
marginalTokenCost: "DeepSeek API: $0.14/M uncached input, $0.0028/M cached input, $0.28/M output",
|
|
9049
|
+
estimatedUsage: "No subscription token cap; pay per token. Official account concurrency limit is 2500 requests."
|
|
9032
9050
|
}
|
|
9033
9051
|
];
|
|
9034
9052
|
SELECTABLE_MODEL_ALIASES = {
|
|
@@ -9905,7 +9923,8 @@ var init_vault_broker = __esm(async () => {
|
|
|
9905
9923
|
browser_snapshot: { argument: "maxLength", field: "snapshot" },
|
|
9906
9924
|
browser_api_request: { argument: "maxBytes", field: "body" },
|
|
9907
9925
|
browser_get_visible_text: { argument: "maxLength", field: "text" },
|
|
9908
|
-
browser_get_visible_html: { argument: "maxLength", field: "html" }
|
|
9926
|
+
browser_get_visible_html: { argument: "maxLength", field: "html" },
|
|
9927
|
+
browser_iframe_read: { argument: "maxLength", field: "content" }
|
|
9909
9928
|
};
|
|
9910
9929
|
});
|
|
9911
9930
|
|
|
@@ -18514,10 +18533,9 @@ function startAiTurn(params) {
|
|
|
18514
18533
|
].join(`
|
|
18515
18534
|
`);
|
|
18516
18535
|
}
|
|
18536
|
+
const turnReminders = [];
|
|
18517
18537
|
if (params.from === FROM_AUTO_CONTINUE) {
|
|
18518
|
-
|
|
18519
|
-
|
|
18520
|
-
<system-reminder>\uC774 \uD134\uC740 \uC124\uC815 \uC790\uB3D9 \uC870\uC815(effort/model/agent) \uD6C4 \uC790\uB3D9 \uC7AC\uAC1C\uB41C \uD134\uC774\uB2E4. effort/model/agent \uB09C\uC774\uB3C4 \uC7AC\uD3C9\uAC00 \uBC0F \uC124\uC815 \uBCC0\uACBD \uC5C6\uC774 \uC989\uC2DC \uC791\uC5C5\uC744 \uC2DC\uC791\uD560 \uAC83.</system-reminder>`;
|
|
18538
|
+
turnReminders.push("<system-reminder>\uC774 \uD134\uC740 \uC124\uC815 \uC790\uB3D9 \uC870\uC815(effort/model/agent) \uD6C4 \uC790\uB3D9 \uC7AC\uAC1C\uB41C \uD134\uC774\uB2E4. effort/model/agent \uB09C\uC774\uB3C4 \uC7AC\uD3C9\uAC00 \uBC0F \uC124\uC815 \uBCC0\uACBD \uC5C6\uC774 \uC989\uC2DC \uC791\uC5C5\uC744 \uC2DC\uC791\uD560 \uAC83.</system-reminder>");
|
|
18521
18539
|
}
|
|
18522
18540
|
if (!silent && !sessionRetried) {
|
|
18523
18541
|
const promptsToRecord = userConversationPromptsToRecord(renderedUserPrompts, loggedUserMessageCount, agentPrompt);
|
|
@@ -18600,26 +18618,24 @@ function startAiTurn(params) {
|
|
|
18600
18618
|
logger.warn({ topicId, err: err2 }, "ai: ensureBgBash failed \u2014 proceeding without background bash tools");
|
|
18601
18619
|
}
|
|
18602
18620
|
}
|
|
18603
|
-
let effectiveSystemPrompt = systemPrompt;
|
|
18604
18621
|
if (playwrightRequested && !browserProfileOwner) {
|
|
18605
|
-
|
|
18606
|
-
effectiveSystemPrompt = `${effectiveSystemPrompt}
|
|
18607
|
-
|
|
18608
|
-
${ownerOnlyNote}`;
|
|
18622
|
+
turnReminders.push("<system-reminder>Browser tools are unavailable in this turn because browser profiles are private to the topic owner. Do not attempt browser calls or ask to reuse the owner's login state.</system-reminder>");
|
|
18609
18623
|
}
|
|
18610
18624
|
if (consumePlaywrightUnavailable(userId, topic.title)) {
|
|
18611
|
-
|
|
18612
|
-
effectiveSystemPrompt = `${effectiveSystemPrompt}
|
|
18613
|
-
|
|
18614
|
-
${playwrightNote}`;
|
|
18625
|
+
turnReminders.push("<system-reminder>Playwright browser tools are UNAVAILABLE this turn. The `mcp__playwright__*` tools have been removed from this turn's catalog because the long-lived browser MCP could not be prepared. Do not attempt to call browser tools. If browser interaction is required, ask the user to retry shortly or use a non-browser alternative.</system-reminder>");
|
|
18615
18626
|
}
|
|
18627
|
+
const effectivePrompt = turnReminders.length > 0 ? `${agentPrompt}
|
|
18628
|
+
|
|
18629
|
+
${turnReminders.join(`
|
|
18630
|
+
|
|
18631
|
+
`)}` : agentPrompt;
|
|
18616
18632
|
try {
|
|
18617
18633
|
yield* runAgent({
|
|
18618
18634
|
agent: agentKind,
|
|
18619
|
-
prompt:
|
|
18635
|
+
prompt: effectivePrompt,
|
|
18620
18636
|
attachments: promptAttachments,
|
|
18621
18637
|
cwd: workspaceCwd,
|
|
18622
|
-
systemPrompt
|
|
18638
|
+
systemPrompt,
|
|
18623
18639
|
sessionId,
|
|
18624
18640
|
userId,
|
|
18625
18641
|
vaultUserId,
|
|
@@ -44792,4 +44808,4 @@ switch (command) {
|
|
|
44792
44808
|
}
|
|
44793
44809
|
}
|
|
44794
44810
|
|
|
44795
|
-
//# debugId=
|
|
44811
|
+
//# debugId=CF7213F1AB5755D264756E2164756E21
|