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/agent-helpers.js
CHANGED
|
@@ -331,7 +331,7 @@ function resolveDefaultModel(agent, registryDefaultModel) {
|
|
|
331
331
|
function codexAuthFilePath() {
|
|
332
332
|
return process.env.NEGOTIUM_CODEX_AUTH_FILE || join(process.env.CODEX_HOME || join(homedir(), ".codex"), "auth.json");
|
|
333
333
|
}
|
|
334
|
-
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.
|
|
334
|
+
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;
|
|
335
335
|
var init_config = __esm(() => {
|
|
336
336
|
init_config_helpers();
|
|
337
337
|
init_logger();
|
|
@@ -2147,7 +2147,7 @@ var init_claude_registry = __esm(() => {
|
|
|
2147
2147
|
});
|
|
2148
2148
|
|
|
2149
2149
|
// ../../packages/core/src/version.ts
|
|
2150
|
-
var NEGOTIUM_VERSION = "0.2.
|
|
2150
|
+
var NEGOTIUM_VERSION = "0.2.9";
|
|
2151
2151
|
|
|
2152
2152
|
// ../../packages/core/src/agents/codex-native-multi-agent.ts
|
|
2153
2153
|
import { spawn as spawn2 } from "child_process";
|
|
@@ -3088,6 +3088,9 @@ function existingCreatedAt(path) {
|
|
|
3088
3088
|
return;
|
|
3089
3089
|
}
|
|
3090
3090
|
}
|
|
3091
|
+
function nonEmptyTurnText(text) {
|
|
3092
|
+
return text.trim().length > 0 ? text : BLANK_TURN_PLACEHOLDER;
|
|
3093
|
+
}
|
|
3091
3094
|
function writeRollout(options) {
|
|
3092
3095
|
const sessionId = options.reuseSessionId ?? randomUUID3();
|
|
3093
3096
|
assertUuidLike("sessionId", sessionId);
|
|
@@ -3095,8 +3098,8 @@ function writeRollout(options) {
|
|
|
3095
3098
|
const path = maestroSessionPath(sessionId);
|
|
3096
3099
|
mkdirSync6(maestroSessionsDir(), { recursive: true });
|
|
3097
3100
|
const messages = extractChatPairs(options.entries).flatMap((pair) => [
|
|
3098
|
-
{ role: "user", content: pair.userText },
|
|
3099
|
-
{ role: "assistant", content: pair.assistantText }
|
|
3101
|
+
{ role: "user", content: nonEmptyTurnText(pair.userText) },
|
|
3102
|
+
{ role: "assistant", content: nonEmptyTurnText(pair.assistantText) }
|
|
3100
3103
|
]);
|
|
3101
3104
|
const lines = [
|
|
3102
3105
|
{
|
|
@@ -3116,13 +3119,14 @@ function writeRollout(options) {
|
|
|
3116
3119
|
});
|
|
3117
3120
|
return { sessionId, rolloutPath: path };
|
|
3118
3121
|
}
|
|
3119
|
-
var ALIAS_MAP2, VALID_MODELS, VALID_EFFORTS3, maestroRegistry, maestroRegistryOperations;
|
|
3122
|
+
var ALIAS_MAP2, VALID_MODELS, VALID_EFFORTS3, maestroRegistry, BLANK_TURN_PLACEHOLDER = "(no text content in this turn)", maestroRegistryOperations;
|
|
3120
3123
|
var init_maestro_registry = __esm(() => {
|
|
3121
3124
|
init_shared();
|
|
3122
3125
|
init_logger();
|
|
3123
3126
|
init_types();
|
|
3124
3127
|
ALIAS_MAP2 = {
|
|
3125
3128
|
"deepseek-pro": "deepseek-v4-pro",
|
|
3129
|
+
"deepseek-flash": "deepseek-v4-flash",
|
|
3126
3130
|
kimi: "kimi-k3",
|
|
3127
3131
|
"kimi-pro": "kimi-k3",
|
|
3128
3132
|
"kimi-code": "kimi-k2.7-code"
|
|
@@ -4169,7 +4173,11 @@ var init_claude_provider = __esm(async () => {
|
|
|
4169
4173
|
"TaskCreate",
|
|
4170
4174
|
"TaskUpdate",
|
|
4171
4175
|
"TaskList",
|
|
4172
|
-
"TaskGet"
|
|
4176
|
+
"TaskGet",
|
|
4177
|
+
"ScheduleWakeup",
|
|
4178
|
+
"CronCreate",
|
|
4179
|
+
"CronList",
|
|
4180
|
+
"CronDelete"
|
|
4173
4181
|
];
|
|
4174
4182
|
CLAUDE_NATIVE_AGENT_TOOLS = ["Task", "Agent", "TaskOutput", "TaskStop"];
|
|
4175
4183
|
CLAUDE_IMAGE_MAX_BYTES = 10 * 1024 * 1024;
|
|
@@ -6162,7 +6170,7 @@ function resolveCompactionExecution(agent, registry) {
|
|
|
6162
6170
|
const effort = registry.validateEffort("medium") ? "medium" : registry.defaultEffort;
|
|
6163
6171
|
return { model, ...effort ? { effort } : {} };
|
|
6164
6172
|
}
|
|
6165
|
-
var MODEL_OWNER, MODEL_COST_RESEARCHED_AT = "2026-
|
|
6173
|
+
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;
|
|
6166
6174
|
var init_model_catalog = __esm(() => {
|
|
6167
6175
|
init_config();
|
|
6168
6176
|
MODEL_OWNER = {
|
|
@@ -6269,10 +6277,20 @@ var init_model_catalog = __esm(() => {
|
|
|
6269
6277
|
agent: "maestro",
|
|
6270
6278
|
description: "API-priced Sonnet-level route for cost-efficient everyday work.",
|
|
6271
6279
|
intelligenceTier: "sonnet",
|
|
6272
|
-
routingSummary: "cost-efficient everyday work; pay-per-token
|
|
6280
|
+
routingSummary: "cost-efficient everyday work; pay-per-token, pricier than DeepSeek Flash",
|
|
6273
6281
|
accessCost: "DeepSeek V4 Pro pay-as-you-go API; no monthly subscription required",
|
|
6274
6282
|
marginalTokenCost: "DeepSeek API: $0.435/M uncached input, $0.003625/M cached input, $0.87/M output",
|
|
6275
6283
|
estimatedUsage: "No subscription token cap; pay per token. Official account concurrency limit is 500 requests."
|
|
6284
|
+
},
|
|
6285
|
+
{
|
|
6286
|
+
model: "deepseek-flash",
|
|
6287
|
+
agent: "maestro",
|
|
6288
|
+
description: "Faster, cheaper DeepSeek V4 variant (DeepSeek-V4-Flash-0731) at similar Sonnet-level quality for high-volume everyday work.",
|
|
6289
|
+
intelligenceTier: "sonnet",
|
|
6290
|
+
routingSummary: "cheapest overall route; pay-per-token, 1M context, 5x Pro's concurrency limit",
|
|
6291
|
+
accessCost: "DeepSeek V4 Flash pay-as-you-go API; no monthly subscription required",
|
|
6292
|
+
marginalTokenCost: "DeepSeek API: $0.14/M uncached input, $0.0028/M cached input, $0.28/M output",
|
|
6293
|
+
estimatedUsage: "No subscription token cap; pay per token. Official account concurrency limit is 2500 requests."
|
|
6276
6294
|
}
|
|
6277
6295
|
];
|
|
6278
6296
|
SELECTABLE_MODEL_ALIASES = {
|
|
@@ -10699,7 +10717,8 @@ var init_vault_broker = __esm(async () => {
|
|
|
10699
10717
|
browser_snapshot: { argument: "maxLength", field: "snapshot" },
|
|
10700
10718
|
browser_api_request: { argument: "maxBytes", field: "body" },
|
|
10701
10719
|
browser_get_visible_text: { argument: "maxLength", field: "text" },
|
|
10702
|
-
browser_get_visible_html: { argument: "maxLength", field: "html" }
|
|
10720
|
+
browser_get_visible_html: { argument: "maxLength", field: "html" },
|
|
10721
|
+
browser_iframe_read: { argument: "maxLength", field: "content" }
|
|
10703
10722
|
};
|
|
10704
10723
|
});
|
|
10705
10724
|
|
|
@@ -16215,10 +16234,9 @@ function startAiTurn(params) {
|
|
|
16215
16234
|
].join(`
|
|
16216
16235
|
`);
|
|
16217
16236
|
}
|
|
16237
|
+
const turnReminders = [];
|
|
16218
16238
|
if (params.from === FROM_AUTO_CONTINUE) {
|
|
16219
|
-
|
|
16220
|
-
|
|
16221
|
-
<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>`;
|
|
16239
|
+
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>");
|
|
16222
16240
|
}
|
|
16223
16241
|
if (!silent && !sessionRetried) {
|
|
16224
16242
|
const promptsToRecord = userConversationPromptsToRecord(renderedUserPrompts, loggedUserMessageCount, agentPrompt);
|
|
@@ -16301,26 +16319,24 @@ function startAiTurn(params) {
|
|
|
16301
16319
|
logger.warn({ topicId, err: err2 }, "ai: ensureBgBash failed \u2014 proceeding without background bash tools");
|
|
16302
16320
|
}
|
|
16303
16321
|
}
|
|
16304
|
-
let effectiveSystemPrompt = systemPrompt;
|
|
16305
16322
|
if (playwrightRequested && !browserProfileOwner) {
|
|
16306
|
-
|
|
16307
|
-
effectiveSystemPrompt = `${effectiveSystemPrompt}
|
|
16308
|
-
|
|
16309
|
-
${ownerOnlyNote}`;
|
|
16323
|
+
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>");
|
|
16310
16324
|
}
|
|
16311
16325
|
if (consumePlaywrightUnavailable(userId, topic.title)) {
|
|
16312
|
-
|
|
16313
|
-
effectiveSystemPrompt = `${effectiveSystemPrompt}
|
|
16314
|
-
|
|
16315
|
-
${playwrightNote}`;
|
|
16326
|
+
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>");
|
|
16316
16327
|
}
|
|
16328
|
+
const effectivePrompt = turnReminders.length > 0 ? `${agentPrompt}
|
|
16329
|
+
|
|
16330
|
+
${turnReminders.join(`
|
|
16331
|
+
|
|
16332
|
+
`)}` : agentPrompt;
|
|
16317
16333
|
try {
|
|
16318
16334
|
yield* runAgent({
|
|
16319
16335
|
agent: agentKind,
|
|
16320
|
-
prompt:
|
|
16336
|
+
prompt: effectivePrompt,
|
|
16321
16337
|
attachments: promptAttachments,
|
|
16322
16338
|
cwd: workspaceCwd,
|
|
16323
|
-
systemPrompt
|
|
16339
|
+
systemPrompt,
|
|
16324
16340
|
sessionId,
|
|
16325
16341
|
userId,
|
|
16326
16342
|
vaultUserId,
|
|
@@ -18293,4 +18309,4 @@ export {
|
|
|
18293
18309
|
DEFAULT_SELF_CONFIG_PRODUCT
|
|
18294
18310
|
};
|
|
18295
18311
|
|
|
18296
|
-
//# debugId=
|
|
18312
|
+
//# debugId=8D09CAB15E720F3E64756E2164756E21
|