@adhdev/daemon-standalone 0.9.77-rc.31 → 0.9.77-rc.33
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/index.js +58 -9
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/vendor/mcp-server/index.js +114 -18
- package/vendor/mcp-server/index.js.map +1 -1
package/package.json
CHANGED
|
@@ -26047,6 +26047,8 @@ function getQueue(meshId, opts) {
|
|
|
26047
26047
|
}
|
|
26048
26048
|
function claimNextTask(meshId, nodeId, sessionId) {
|
|
26049
26049
|
const queue = readQueue(meshId);
|
|
26050
|
+
const hasActiveAssignment = queue.some((q) => q.status === "assigned" && (q.assignedSessionId === sessionId || q.assignedNodeId === nodeId));
|
|
26051
|
+
if (hasActiveAssignment) return null;
|
|
26050
26052
|
let targetIdx = queue.findIndex((q) => q.status === "pending" && q.targetSessionId === sessionId);
|
|
26051
26053
|
if (targetIdx === -1) {
|
|
26052
26054
|
targetIdx = queue.findIndex((q) => q.status === "pending" && q.targetNodeId === nodeId && !q.targetSessionId);
|
|
@@ -26249,6 +26251,9 @@ function drainPendingMeshCoordinatorEvents() {
|
|
|
26249
26251
|
function readNonEmptyString(value) {
|
|
26250
26252
|
return typeof value === "string" && value.trim() ? value.trim() : "";
|
|
26251
26253
|
}
|
|
26254
|
+
function resolveEventSessionId(event, fallback) {
|
|
26255
|
+
return readNonEmptyString(event.targetSessionId) || readNonEmptyString(event.sessionId) || readNonEmptyString(event.instanceId) || readNonEmptyString(fallback);
|
|
26256
|
+
}
|
|
26252
26257
|
function isMeshCoordinatorEvent(eventName) {
|
|
26253
26258
|
return typeof eventName === "string" && MESH_COORDINATOR_EVENTS.has(eventName);
|
|
26254
26259
|
}
|
|
@@ -26307,10 +26312,12 @@ function triggerMeshQueue(components, meshId) {
|
|
|
26307
26312
|
const state = inst.getState();
|
|
26308
26313
|
const settings = state.settings || {};
|
|
26309
26314
|
const instMeshId = readNonEmptyString(settings.meshNodeFor);
|
|
26310
|
-
if (instMeshId !== meshId
|
|
26315
|
+
if (instMeshId !== meshId) continue;
|
|
26311
26316
|
const nodeId = readNonEmptyString(settings.meshNodeId) || readNonEmptyString(settings.nodeId);
|
|
26312
26317
|
if (!nodeId) continue;
|
|
26313
|
-
|
|
26318
|
+
const status = readNonEmptyString(state.status).toLowerCase();
|
|
26319
|
+
if (["stopped", "failed", "terminated", "exited", "closed"].includes(status)) continue;
|
|
26320
|
+
if (status !== "idle" && state.activeChat?.status !== "waiting_input") continue;
|
|
26314
26321
|
const sessionId = state.instanceId;
|
|
26315
26322
|
const providerType = state.type || readNonEmptyString(settings.providerType);
|
|
26316
26323
|
if (providerType) {
|
|
@@ -26373,7 +26380,7 @@ Do NOT retry on this node. Consider reassigning to a different node or asking th
|
|
|
26373
26380
|
}
|
|
26374
26381
|
function injectMeshSystemMessage(components, args) {
|
|
26375
26382
|
if (args.event === "agent:generating_completed") {
|
|
26376
|
-
const sessionId =
|
|
26383
|
+
const sessionId = resolveEventSessionId(args.metadataEvent, args.sourceInstanceId);
|
|
26377
26384
|
const nodeId = readNonEmptyString(args.nodeId) || readNonEmptyString(args.metadataEvent.meshNodeId);
|
|
26378
26385
|
const providerType = readNonEmptyString(args.metadataEvent.providerType);
|
|
26379
26386
|
if (sessionId) {
|
|
@@ -26385,9 +26392,29 @@ function injectMeshSystemMessage(components, args) {
|
|
|
26385
26392
|
}
|
|
26386
26393
|
}
|
|
26387
26394
|
} else if (args.event === "agent:ready") {
|
|
26388
|
-
const sessionId =
|
|
26395
|
+
const sessionId = resolveEventSessionId(args.metadataEvent, args.sourceInstanceId);
|
|
26389
26396
|
const nodeId = readNonEmptyString(args.nodeId) || readNonEmptyString(args.metadataEvent.meshNodeId);
|
|
26390
26397
|
const providerType = readNonEmptyString(args.metadataEvent.providerType);
|
|
26398
|
+
const completedTask = sessionId ? updateSessionTaskStatus(args.meshId, sessionId, "completed") : null;
|
|
26399
|
+
if (completedTask) {
|
|
26400
|
+
try {
|
|
26401
|
+
appendLedgerEntry(args.meshId, {
|
|
26402
|
+
kind: "task_completed",
|
|
26403
|
+
nodeId: nodeId || void 0,
|
|
26404
|
+
sessionId,
|
|
26405
|
+
providerType: providerType || void 0,
|
|
26406
|
+
payload: {
|
|
26407
|
+
event: args.event,
|
|
26408
|
+
nodeLabel: args.nodeLabel,
|
|
26409
|
+
taskId: completedTask.id,
|
|
26410
|
+
completedViaReady: true,
|
|
26411
|
+
providerSessionId: readNonEmptyString(args.metadataEvent.providerSessionId) || void 0
|
|
26412
|
+
}
|
|
26413
|
+
});
|
|
26414
|
+
} catch (e) {
|
|
26415
|
+
LOG.warn("MeshLedger", `Failed to record task_completed from ready: ${e?.message || e}`);
|
|
26416
|
+
}
|
|
26417
|
+
}
|
|
26391
26418
|
if (sessionId && nodeId && providerType) {
|
|
26392
26419
|
remoteIdleSessions.set(`${nodeId}:${sessionId}`, { nodeId, sessionId, providerType });
|
|
26393
26420
|
setTimeout(() => {
|
|
@@ -26398,13 +26425,13 @@ function injectMeshSystemMessage(components, args) {
|
|
|
26398
26425
|
}, 500);
|
|
26399
26426
|
}
|
|
26400
26427
|
} else if (args.event === "agent:generating_started") {
|
|
26401
|
-
const sessionId =
|
|
26428
|
+
const sessionId = resolveEventSessionId(args.metadataEvent, args.sourceInstanceId);
|
|
26402
26429
|
const nodeId = readNonEmptyString(args.nodeId) || readNonEmptyString(args.metadataEvent.meshNodeId);
|
|
26403
26430
|
if (sessionId && nodeId) {
|
|
26404
26431
|
remoteIdleSessions.delete(`${nodeId}:${sessionId}`);
|
|
26405
26432
|
}
|
|
26406
26433
|
} else if (args.event === "agent:stopped") {
|
|
26407
|
-
const sessionId =
|
|
26434
|
+
const sessionId = resolveEventSessionId(args.metadataEvent, args.sourceInstanceId);
|
|
26408
26435
|
const nodeId = readNonEmptyString(args.nodeId) || readNonEmptyString(args.metadataEvent.meshNodeId);
|
|
26409
26436
|
if (sessionId && nodeId) {
|
|
26410
26437
|
remoteIdleSessions.delete(`${nodeId}:${sessionId}`);
|
|
@@ -26419,7 +26446,7 @@ function injectMeshSystemMessage(components, args) {
|
|
|
26419
26446
|
appendLedgerEntry(args.meshId, {
|
|
26420
26447
|
kind: ledgerKind,
|
|
26421
26448
|
nodeId: readNonEmptyString(args.nodeId) || readNonEmptyString(args.metadataEvent.meshNodeId) || void 0,
|
|
26422
|
-
sessionId:
|
|
26449
|
+
sessionId: resolveEventSessionId(args.metadataEvent, args.sourceInstanceId) || void 0,
|
|
26423
26450
|
providerType: readNonEmptyString(args.metadataEvent.providerType) || void 0,
|
|
26424
26451
|
payload: {
|
|
26425
26452
|
event: args.event,
|
|
@@ -26437,7 +26464,7 @@ function injectMeshSystemMessage(components, args) {
|
|
|
26437
26464
|
const mesh = getMesh(args.meshId);
|
|
26438
26465
|
const maxRetries = mesh?.policy?.maxTaskRetries ?? 1;
|
|
26439
26466
|
recoveryContext = getSessionRecoveryContext(args.meshId, {
|
|
26440
|
-
sessionId:
|
|
26467
|
+
sessionId: resolveEventSessionId(args.metadataEvent, args.sourceInstanceId) || void 0,
|
|
26441
26468
|
nodeId: readNonEmptyString(args.nodeId) || readNonEmptyString(args.metadataEvent.meshNodeId) || void 0,
|
|
26442
26469
|
maxRetries
|
|
26443
26470
|
});
|
|
@@ -26537,7 +26564,7 @@ function handleMeshForwardEvent(components, payload) {
|
|
|
26537
26564
|
nodeLabel,
|
|
26538
26565
|
event: eventName,
|
|
26539
26566
|
metadataEvent: {
|
|
26540
|
-
targetSessionId: readNonEmptyString(payload.targetSessionId) || readNonEmptyString(payload.sessionId),
|
|
26567
|
+
targetSessionId: readNonEmptyString(payload.targetSessionId) || readNonEmptyString(payload.sessionId) || readNonEmptyString(payload.instanceId),
|
|
26541
26568
|
providerType: readNonEmptyString(payload.providerType),
|
|
26542
26569
|
providerSessionId: readNonEmptyString(payload.providerSessionId)
|
|
26543
26570
|
}
|
|
@@ -40988,7 +41015,7 @@ async function shutdownDaemonComponents(components) {
|
|
|
40988
41015
|
}
|
|
40989
41016
|
cdpManagers.clear();
|
|
40990
41017
|
}
|
|
40991
|
-
var path4, import_promises4, import_fs3, import_child_process, import_util3, import_os2, import_path, import_fs4, import_crypto2, import_fs5, import_path2, import_crypto3, import_fs6, import_path3, import_crypto4, import_events2, import_fs7, import_path4, import_crypto5, fs2, path8, os22, os8, os9, path14, import_child_process2, os10, path15, os11, import_child_process3, import_fs8, import_promises5, path, import_util4, import_promises6, path22, path32, fs, os4, path5, import_crypto6, path6, path7, import_fs9, import_path5, import_child_process4, import_fs10, import_os3, path9, import_child_process5, os32, path10, import_fs11, os42, import_child_process6, http, crypto2, fs3, path11, os5, fs4, os6, path12, import_crypto7, fs5, path13, os7, os13, path18, crypto4, import_fs12, import_child_process7, os12, path16, crypto3, fs6, import_module, path17, import_stream2, import_child_process8, import_child_process9, net2, os15, path20, fs7, path19, os14, fs8, path21, os16, import_child_process10, import_crypto8, import_fs13, import_module2, os17, import_path6, os18, import_child_process11, import_child_process12, fs9, os19, path222, import_os4, import_path7, fs10, fs11, path23, os20, import_child_process13, import_os5, http2, fs15, path27, fs12, path24, fs13, path25, fs14, path26, os21, import_child_process14, __defProp2, __getOwnPropDesc2, __getOwnPropNames2, __hasOwnProp2, __require2, __esm2, __export2, __copyProps2, __toCommonJS2, DEFAULT_MESH_POLICY, init_repo_mesh_types, git_worktree_exports, execFileAsync2, WORKTREE_DIR_NAME, GIT_TIMEOUT_MS, GIT_MAX_BUFFER, init_git_worktree, config_exports, DEFAULT_CONFIG, MACHINE_ID_PREFIX, init_config, mesh_config_exports, SESSION_CLEANUP_MODES, SPAWNED_SESSION_VISIBILITY_MODES, init_mesh_config, coordinator_prompt_exports, TOOLS_SECTION, TOOL_EXPOSURE_PREFLIGHT_SECTION, WORKFLOW_SECTION, init_coordinator_prompt, mesh_ledger_exports, LEDGER_DIR_NAME, MAX_FILE_SIZE_BYTES, RECENT_FAILURE_WINDOW_MS, meshLedgerEvents, init_mesh_ledger, init_mesh_work_queue, LEVEL_NUM, LEVEL_LABEL, currentLevel, LOG_DIR, MAX_LOG_SIZE, MAX_LOG_DAYS, currentDate, currentLogFile, writeCount, RING_BUFFER_SIZE, ringBuffer, origConsoleLog, origConsoleError, origConsoleWarn, LOG, interceptorInstalled, LOG_PATH, init_logger, mesh_events_exports, remoteIdleSessions, MAX_PENDING_EVENTS, pendingMeshCoordinatorEvents, MESH_COORDINATOR_EVENTS, EVENT_TO_LEDGER_KIND, init_mesh_events, NORMAL_TRACE_BUFFER_SIZE, DEV_TRACE_BUFFER_SIZE, DEFAULT_CONFIG2, currentConfig, init_debug_config, DEFAULT_BINDING_CANDIDATES, cachedBinding, cachedBindingError, GhosttyVtTerminalBackend, init_ghostty_vt_backend, TerminalCtor, XtermTerminalBackend, init_xterm_backend, DEFAULT_SCROLLBACK, loggedTerminalBackends, TerminalScreen, init_terminal_screen, init_spawn_env, cachedPty, NodePtyRuntimeTransport, NodePtyTransportFactory, init_pty_transport, TerminalTranscriptAccumulator, buildCliSpawnEnv, init_provider_cli_shared, init_provider_cli_parse, init_provider_cli_config, init_provider_cli_runtime, provider_cli_adapter_exports, ProviderCliAdapter, init_provider_cli_adapter, execFileAsync, DEFAULT_TIMEOUT_MS, DEFAULT_MAX_BUFFER, GitCommandError, DEFAULT_MAX_FILES, DEFAULT_MAX_BYTES, summarizeGitStatus, InMemoryGitSnapshotStore, DEFAULT_GIT_WORKSPACE_POLL_INTERVAL_MS, MIN_GIT_WORKSPACE_POLL_INTERVAL_MS, GitWorkspaceMonitor, GIT_COMMAND_NAMES, SNAPSHOT_REASONS, FAILURE_REASONS, defaultSnapshotStore, defaultGitCommandServices, BUSY_STATUSES, TERMINAL_STATUSES, TurnSnapshotTracker, MAX_WORKSPACES, MAX_ACTIVITY, MAX_SAVED_SESSIONS, DEFAULT_STATE, BUILTIN_IDE_DEFINITIONS, registeredIDEs, LIVE_LIFECYCLES, DEFAULT_ACTIVE_CHAT_POLL_STATUSES, DEFAULT_CHAT_TAIL_RECENT_MESSAGE_GRACE_MS, LIVE_RUNTIME_LIFECYCLES, DaemonCdpManager, CdpDomHandlers, DEFAULT_MONITOR_CONFIG, StatusMonitor, BUILTIN_CHAT_MESSAGE_KINDS, CHAT_MESSAGE_VISIBILITIES, CHAT_MESSAGE_TRANSCRIPT_VISIBILITIES, CHAT_MESSAGE_AUDIENCES, CHAT_MESSAGE_SOURCES, CHAT_MESSAGE_ACTIVITY_SOURCES, CHAT_MESSAGE_INTERNAL_SOURCES, KNOWN_CHAT_MESSAGE_KINDS, CHAT_MESSAGE_KIND_ALIASES, EXPLICIT_HIDDEN_VISIBILITIES, EXPLICIT_VISIBLE_VISIBILITIES, HIDDEN_AUDIENCES, ACTIVITY_SOURCE_SET, INTERNAL_SOURCE_SET, HISTORY_DIR, RETAIN_DAYS, SAVED_HISTORY_INDEX_VERSION, SAVED_HISTORY_INDEX_FILE, SAVED_HISTORY_INDEX_LOCK_SUFFIX, SAVED_HISTORY_INDEX_LOCK_WAIT_MS, SAVED_HISTORY_INDEX_LOCK_STALE_MS, SAVED_HISTORY_INDEX_LOCK_POLL_MS, SAVED_HISTORY_ROLLUP_THRESHOLD_BYTES, savedHistorySessionCache, savedHistoryFileSummaryCache, savedHistoryBackgroundRefresh, savedHistoryRollupInFlight, ChatHistoryWriter, IDE_PROVIDER_SESSION_CAPABILITIES_BASE, EXTENSION_PROVIDER_SESSION_CAPABILITIES_BASE, ExtensionProviderInstance, VALID_STATUSES, VALID_ROLES, VALID_BUBBLE_STATES, VALID_TURN_STATUSES, DEFAULT_APPROVAL_POSITIVE_HINTS, IdeProviderInstance, DEFAULT_CDP_SCAN_INTERVAL_MS, DEFAULT_CDP_DISCOVERY_INTERVAL_MS, DEFAULT_STATUS_INITIAL_REPORT_DELAY_MS, DEFAULT_STATUS_SERVER_REPORT_INTERVAL_MS, DEFAULT_STATUS_P2P_REPORT_INTERVAL_MS, MIN_MACHINE_RUNTIME_SUBSCRIPTION_INTERVAL_MS, DEFAULT_MACHINE_RUNTIME_SUBSCRIPTION_INTERVAL_MS, MIN_SESSION_HOST_DIAGNOSTICS_SUBSCRIPTION_INTERVAL_MS, DEFAULT_SESSION_HOST_DIAGNOSTICS_SUBSCRIPTION_INTERVAL_MS, DEFAULT_SESSION_HOST_READY_TIMEOUT_MS, STANDALONE_CDP_SCAN_INTERVAL_MS, DaemonCdpScanner, DaemonCdpInitializer, WORKING_STATUSES, FULL_STATUS_ACTIVE_CHAT_OPTIONS, LIVE_STATUS_ACTIVE_CHAT_OPTIONS, STATUS_MODAL_MESSAGE_LIMIT, STATUS_MODAL_BUTTON_LIMIT, VALID_INPUT_MEDIA_TYPES, VALID_INPUT_STRATEGIES, TEXT_ONLY_MESSAGE_INPUT_SUPPORT, IDE_SESSION_CAPABILITIES, EXTENSION_SESSION_CAPABILITIES, PTY_SESSION_CAPABILITIES, CLI_CHAT_SESSION_CAPABILITIES, ACP_SESSION_CAPABILITIES, globalStore, RECENT_SEND_WINDOW_MS, READ_CHAT_PROVIDER_EVAL_TIMEOUT_MS, HERMES_CLI_STARTING_SEND_SETTLE_MS, recentSendByTarget, DEFAULT_DEBUG_SANITIZE_OPTIONS, SECRET_KEY_PATTERN, KEY_TO_VK, COMMAND_DEBUG_LEVELS, DaemonCommandHandler, IMAGE_MIME_EXTENSIONS, MATERIALIZED_IMAGE_MAX_AGE_MS, MATERIALIZED_IMAGE_CLEANUP_INTERVAL_MS, lastMaterializedImageCleanupAt, CachedDatabaseSync, CliProviderInstance, AcpProviderInstance, chalkModule, chalkApi, COORDINATOR_DELEGATED_ENV_UNSETS, DaemonCliManager, VALID_CAPABILITY_MEDIA_TYPES, VALID_INPUT_STRATEGIES2, KNOWN_PROVIDER_FIELDS, VALUE_CONTROL_TYPES, ProviderLoader, _providerLoader, LOG_DIR2, MAX_FILE_SIZE, MAX_DAYS, SENSITIVE_KEYS, currentDate2, currentFile, writeCount2, SKIP_COMMANDS, DEFAULT_SERVER_NAME, DEFAULT_ADHDEV_MCP_COMMAND, HERMES_CLI_TYPE, HERMES_MCP_CONFIG_PATH, READ_DEBUG_ENABLED, recentReadDebugSignatureBySession, UPGRADE_HELPER_ENV, CHANNEL_NPM_TAG, CHANNEL_SERVER_URL, CHAT_COMMANDS, READ_DEBUG_ENABLED2, DaemonCommandRouter, DaemonStatusReporter, DEFAULT_DAEMON_PORT, DAEMON_WS_PATH, ProviderStreamAdapter, DaemonAgentStreamManager, AgentStreamPoller, ProviderInstanceManager, ARCHIVE_PATH, MAX_ENTRIES_PER_PROVIDER, VersionArchive, DEV_SERVER_PORT, DevServer, SessionHostRuntimeTransport, SessionHostPtyTransportFactory, DEFAULT_SESSION_HOST_APP_NAME, DEFAULT_STANDALONE_SESSION_HOST_APP_NAME, STARTUP_TIMEOUT_MS, STARTUP_POLL_MS, SessionHostCompatibilityError, EXTENSION_CATALOG, SessionRegistry;
|
|
41018
|
+
var path4, import_promises4, import_fs3, import_child_process, import_util3, import_os2, import_path, import_fs4, import_crypto2, import_fs5, import_path2, import_crypto3, import_fs6, import_path3, import_crypto4, import_events2, import_fs7, import_path4, import_crypto5, fs2, path8, os22, os8, os9, path14, import_child_process2, os10, path15, os11, import_child_process3, import_fs8, import_promises5, path, import_util4, import_promises6, path22, path32, fs, os4, path5, import_crypto6, path6, path7, import_fs9, import_path5, import_child_process4, import_fs10, import_os3, path9, import_child_process5, os32, path10, import_fs11, os42, import_child_process6, http, crypto2, fs3, path11, os5, fs4, os6, path12, import_crypto7, fs5, path13, os7, os13, path18, crypto4, import_fs12, import_child_process7, os12, path16, crypto3, fs6, import_module, path17, import_stream2, import_child_process8, import_child_process9, net2, os15, path20, fs7, path19, os14, fs8, path21, os16, import_child_process10, import_crypto8, import_fs13, import_module2, os17, import_path6, os18, import_child_process11, import_child_process12, fs9, os19, path222, import_os4, import_path7, fs10, fs11, path23, os20, import_child_process13, import_os5, http2, fs15, path27, fs12, path24, fs13, path25, fs14, path26, os21, import_child_process14, __defProp2, __getOwnPropDesc2, __getOwnPropNames2, __hasOwnProp2, __require2, __esm2, __export2, __copyProps2, __toCommonJS2, DEFAULT_MESH_POLICY, init_repo_mesh_types, git_worktree_exports, execFileAsync2, WORKTREE_DIR_NAME, GIT_TIMEOUT_MS, GIT_MAX_BUFFER, init_git_worktree, config_exports, DEFAULT_CONFIG, MACHINE_ID_PREFIX, init_config, mesh_config_exports, SESSION_CLEANUP_MODES, SPAWNED_SESSION_VISIBILITY_MODES, init_mesh_config, coordinator_prompt_exports, TOOLS_SECTION, TOOL_EXPOSURE_PREFLIGHT_SECTION, WORKFLOW_SECTION, init_coordinator_prompt, mesh_ledger_exports, LEDGER_DIR_NAME, MAX_FILE_SIZE_BYTES, RECENT_FAILURE_WINDOW_MS, meshLedgerEvents, init_mesh_ledger, mesh_work_queue_exports, init_mesh_work_queue, LEVEL_NUM, LEVEL_LABEL, currentLevel, LOG_DIR, MAX_LOG_SIZE, MAX_LOG_DAYS, currentDate, currentLogFile, writeCount, RING_BUFFER_SIZE, ringBuffer, origConsoleLog, origConsoleError, origConsoleWarn, LOG, interceptorInstalled, LOG_PATH, init_logger, mesh_events_exports, remoteIdleSessions, MAX_PENDING_EVENTS, pendingMeshCoordinatorEvents, MESH_COORDINATOR_EVENTS, EVENT_TO_LEDGER_KIND, init_mesh_events, NORMAL_TRACE_BUFFER_SIZE, DEV_TRACE_BUFFER_SIZE, DEFAULT_CONFIG2, currentConfig, init_debug_config, DEFAULT_BINDING_CANDIDATES, cachedBinding, cachedBindingError, GhosttyVtTerminalBackend, init_ghostty_vt_backend, TerminalCtor, XtermTerminalBackend, init_xterm_backend, DEFAULT_SCROLLBACK, loggedTerminalBackends, TerminalScreen, init_terminal_screen, init_spawn_env, cachedPty, NodePtyRuntimeTransport, NodePtyTransportFactory, init_pty_transport, TerminalTranscriptAccumulator, buildCliSpawnEnv, init_provider_cli_shared, init_provider_cli_parse, init_provider_cli_config, init_provider_cli_runtime, provider_cli_adapter_exports, ProviderCliAdapter, init_provider_cli_adapter, execFileAsync, DEFAULT_TIMEOUT_MS, DEFAULT_MAX_BUFFER, GitCommandError, DEFAULT_MAX_FILES, DEFAULT_MAX_BYTES, summarizeGitStatus, InMemoryGitSnapshotStore, DEFAULT_GIT_WORKSPACE_POLL_INTERVAL_MS, MIN_GIT_WORKSPACE_POLL_INTERVAL_MS, GitWorkspaceMonitor, GIT_COMMAND_NAMES, SNAPSHOT_REASONS, FAILURE_REASONS, defaultSnapshotStore, defaultGitCommandServices, BUSY_STATUSES, TERMINAL_STATUSES, TurnSnapshotTracker, MAX_WORKSPACES, MAX_ACTIVITY, MAX_SAVED_SESSIONS, DEFAULT_STATE, BUILTIN_IDE_DEFINITIONS, registeredIDEs, LIVE_LIFECYCLES, DEFAULT_ACTIVE_CHAT_POLL_STATUSES, DEFAULT_CHAT_TAIL_RECENT_MESSAGE_GRACE_MS, LIVE_RUNTIME_LIFECYCLES, DaemonCdpManager, CdpDomHandlers, DEFAULT_MONITOR_CONFIG, StatusMonitor, BUILTIN_CHAT_MESSAGE_KINDS, CHAT_MESSAGE_VISIBILITIES, CHAT_MESSAGE_TRANSCRIPT_VISIBILITIES, CHAT_MESSAGE_AUDIENCES, CHAT_MESSAGE_SOURCES, CHAT_MESSAGE_ACTIVITY_SOURCES, CHAT_MESSAGE_INTERNAL_SOURCES, KNOWN_CHAT_MESSAGE_KINDS, CHAT_MESSAGE_KIND_ALIASES, EXPLICIT_HIDDEN_VISIBILITIES, EXPLICIT_VISIBLE_VISIBILITIES, HIDDEN_AUDIENCES, ACTIVITY_SOURCE_SET, INTERNAL_SOURCE_SET, HISTORY_DIR, RETAIN_DAYS, SAVED_HISTORY_INDEX_VERSION, SAVED_HISTORY_INDEX_FILE, SAVED_HISTORY_INDEX_LOCK_SUFFIX, SAVED_HISTORY_INDEX_LOCK_WAIT_MS, SAVED_HISTORY_INDEX_LOCK_STALE_MS, SAVED_HISTORY_INDEX_LOCK_POLL_MS, SAVED_HISTORY_ROLLUP_THRESHOLD_BYTES, savedHistorySessionCache, savedHistoryFileSummaryCache, savedHistoryBackgroundRefresh, savedHistoryRollupInFlight, ChatHistoryWriter, IDE_PROVIDER_SESSION_CAPABILITIES_BASE, EXTENSION_PROVIDER_SESSION_CAPABILITIES_BASE, ExtensionProviderInstance, VALID_STATUSES, VALID_ROLES, VALID_BUBBLE_STATES, VALID_TURN_STATUSES, DEFAULT_APPROVAL_POSITIVE_HINTS, IdeProviderInstance, DEFAULT_CDP_SCAN_INTERVAL_MS, DEFAULT_CDP_DISCOVERY_INTERVAL_MS, DEFAULT_STATUS_INITIAL_REPORT_DELAY_MS, DEFAULT_STATUS_SERVER_REPORT_INTERVAL_MS, DEFAULT_STATUS_P2P_REPORT_INTERVAL_MS, MIN_MACHINE_RUNTIME_SUBSCRIPTION_INTERVAL_MS, DEFAULT_MACHINE_RUNTIME_SUBSCRIPTION_INTERVAL_MS, MIN_SESSION_HOST_DIAGNOSTICS_SUBSCRIPTION_INTERVAL_MS, DEFAULT_SESSION_HOST_DIAGNOSTICS_SUBSCRIPTION_INTERVAL_MS, DEFAULT_SESSION_HOST_READY_TIMEOUT_MS, STANDALONE_CDP_SCAN_INTERVAL_MS, DaemonCdpScanner, DaemonCdpInitializer, WORKING_STATUSES, FULL_STATUS_ACTIVE_CHAT_OPTIONS, LIVE_STATUS_ACTIVE_CHAT_OPTIONS, STATUS_MODAL_MESSAGE_LIMIT, STATUS_MODAL_BUTTON_LIMIT, VALID_INPUT_MEDIA_TYPES, VALID_INPUT_STRATEGIES, TEXT_ONLY_MESSAGE_INPUT_SUPPORT, IDE_SESSION_CAPABILITIES, EXTENSION_SESSION_CAPABILITIES, PTY_SESSION_CAPABILITIES, CLI_CHAT_SESSION_CAPABILITIES, ACP_SESSION_CAPABILITIES, globalStore, RECENT_SEND_WINDOW_MS, READ_CHAT_PROVIDER_EVAL_TIMEOUT_MS, HERMES_CLI_STARTING_SEND_SETTLE_MS, recentSendByTarget, DEFAULT_DEBUG_SANITIZE_OPTIONS, SECRET_KEY_PATTERN, KEY_TO_VK, COMMAND_DEBUG_LEVELS, DaemonCommandHandler, IMAGE_MIME_EXTENSIONS, MATERIALIZED_IMAGE_MAX_AGE_MS, MATERIALIZED_IMAGE_CLEANUP_INTERVAL_MS, lastMaterializedImageCleanupAt, CachedDatabaseSync, CliProviderInstance, AcpProviderInstance, chalkModule, chalkApi, COORDINATOR_DELEGATED_ENV_UNSETS, DaemonCliManager, VALID_CAPABILITY_MEDIA_TYPES, VALID_INPUT_STRATEGIES2, KNOWN_PROVIDER_FIELDS, VALUE_CONTROL_TYPES, ProviderLoader, _providerLoader, LOG_DIR2, MAX_FILE_SIZE, MAX_DAYS, SENSITIVE_KEYS, currentDate2, currentFile, writeCount2, SKIP_COMMANDS, DEFAULT_SERVER_NAME, DEFAULT_ADHDEV_MCP_COMMAND, HERMES_CLI_TYPE, HERMES_MCP_CONFIG_PATH, READ_DEBUG_ENABLED, recentReadDebugSignatureBySession, UPGRADE_HELPER_ENV, CHANNEL_NPM_TAG, CHANNEL_SERVER_URL, CHAT_COMMANDS, READ_DEBUG_ENABLED2, DaemonCommandRouter, DaemonStatusReporter, DEFAULT_DAEMON_PORT, DAEMON_WS_PATH, ProviderStreamAdapter, DaemonAgentStreamManager, AgentStreamPoller, ProviderInstanceManager, ARCHIVE_PATH, MAX_ENTRIES_PER_PROVIDER, VersionArchive, DEV_SERVER_PORT, DevServer, SessionHostRuntimeTransport, SessionHostPtyTransportFactory, DEFAULT_SESSION_HOST_APP_NAME, DEFAULT_STANDALONE_SESSION_HOST_APP_NAME, STARTUP_TIMEOUT_MS, STARTUP_POLL_MS, SessionHostCompatibilityError, EXTENSION_CATALOG, SessionRegistry;
|
|
40992
41019
|
var init_dist2 = __esm({
|
|
40993
41020
|
"../daemon-core/dist/index.mjs"() {
|
|
40994
41021
|
"use strict";
|
|
@@ -41321,6 +41348,15 @@ Follow these recovery rules:
|
|
|
41321
41348
|
meshLedgerEvents = new import_events2.EventEmitter();
|
|
41322
41349
|
}
|
|
41323
41350
|
});
|
|
41351
|
+
mesh_work_queue_exports = {};
|
|
41352
|
+
__export2(mesh_work_queue_exports, {
|
|
41353
|
+
claimNextTask: () => claimNextTask,
|
|
41354
|
+
enqueueTask: () => enqueueTask,
|
|
41355
|
+
getMeshQueueStats: () => getMeshQueueStats,
|
|
41356
|
+
getQueue: () => getQueue,
|
|
41357
|
+
updateSessionTaskStatus: () => updateSessionTaskStatus,
|
|
41358
|
+
updateTaskStatus: () => updateTaskStatus
|
|
41359
|
+
});
|
|
41324
41360
|
init_mesh_work_queue = __esm2({
|
|
41325
41361
|
"src/mesh/mesh-work-queue.ts"() {
|
|
41326
41362
|
"use strict";
|
|
@@ -41404,6 +41440,7 @@ Follow these recovery rules:
|
|
|
41404
41440
|
MAX_PENDING_EVENTS = 50;
|
|
41405
41441
|
pendingMeshCoordinatorEvents = [];
|
|
41406
41442
|
MESH_COORDINATOR_EVENTS = /* @__PURE__ */ new Set([
|
|
41443
|
+
"agent:generating_started",
|
|
41407
41444
|
"agent:generating_completed",
|
|
41408
41445
|
"agent:waiting_approval",
|
|
41409
41446
|
"agent:stopped",
|
|
@@ -53097,6 +53134,18 @@ Run 'adhdev doctor' for detailed diagnostics.`
|
|
|
53097
53134
|
return { success: false, error: e.message };
|
|
53098
53135
|
}
|
|
53099
53136
|
}
|
|
53137
|
+
case "get_mesh_queue": {
|
|
53138
|
+
const meshId = typeof args?.meshId === "string" ? args.meshId.trim() : "";
|
|
53139
|
+
if (!meshId) return { success: false, error: "meshId required" };
|
|
53140
|
+
try {
|
|
53141
|
+
const { getQueue: getQueue2 } = await Promise.resolve().then(() => (init_mesh_work_queue(), mesh_work_queue_exports));
|
|
53142
|
+
const status = Array.isArray(args?.status) ? args.status.map((s) => typeof s === "string" ? s.trim() : "").filter(Boolean) : void 0;
|
|
53143
|
+
const queue = getQueue2(meshId, { status });
|
|
53144
|
+
return { success: true, queue };
|
|
53145
|
+
} catch (e) {
|
|
53146
|
+
return { success: false, error: e.message };
|
|
53147
|
+
}
|
|
53148
|
+
}
|
|
53100
53149
|
case "add_mesh_node": {
|
|
53101
53150
|
const meshId = typeof args?.meshId === "string" ? args.meshId.trim() : "";
|
|
53102
53151
|
const workspace = typeof args?.workspace === "string" ? args.workspace.trim() : "";
|
|
@@ -57442,6 +57491,26 @@ function unwrapCommandPayload(value) {
|
|
|
57442
57491
|
}
|
|
57443
57492
|
return current;
|
|
57444
57493
|
}
|
|
57494
|
+
function isTerminalSessionRecord(session) {
|
|
57495
|
+
const status = typeof session?.status === "string" ? session.status.toLowerCase() : "";
|
|
57496
|
+
const lifecycle = typeof session?.lifecycle === "string" ? session.lifecycle.toLowerCase() : "";
|
|
57497
|
+
const state = typeof session?.state === "string" ? session.state.toLowerCase() : "";
|
|
57498
|
+
return [status, lifecycle, state].some((value) => ["stopped", "failed", "terminated", "exited", "closed"].includes(value));
|
|
57499
|
+
}
|
|
57500
|
+
function isIdleSessionRecord(session) {
|
|
57501
|
+
if (isTerminalSessionRecord(session)) return false;
|
|
57502
|
+
const status = typeof session?.status === "string" ? session.status.toLowerCase() : "";
|
|
57503
|
+
const chatStatus = typeof session?.activeChat?.status === "string" ? session.activeChat.status.toLowerCase() : "";
|
|
57504
|
+
return status === "idle" || chatStatus === "waiting_input";
|
|
57505
|
+
}
|
|
57506
|
+
function chooseDispatchableSession(sessions, providerType, meshId, nodeId) {
|
|
57507
|
+
const live = sessions.filter((session) => !isTerminalSessionRecord(session));
|
|
57508
|
+
const matchingProvider = (session) => !providerType || session?.providerType === providerType || session?.cliType === providerType;
|
|
57509
|
+
const meshSessions = live.filter(
|
|
57510
|
+
(session) => session?.settings?.meshNodeFor === meshId || session?.settings?.meshNodeId === nodeId
|
|
57511
|
+
);
|
|
57512
|
+
return meshSessions.find((session) => isIdleSessionRecord(session) && matchingProvider(session)) || meshSessions.find(matchingProvider) || live.find((session) => isIdleSessionRecord(session) && matchingProvider(session)) || live.find(matchingProvider) || live.find(isIdleSessionRecord) || live[0];
|
|
57513
|
+
}
|
|
57445
57514
|
function findNestedPayload(value, predicate) {
|
|
57446
57515
|
const seen = /* @__PURE__ */ new Set();
|
|
57447
57516
|
const stack = [{ payload: value, depth: 0 }];
|
|
@@ -57482,18 +57551,12 @@ async function ipcDispatchToRemoteAgent(ctx, node, args) {
|
|
|
57482
57551
|
const innerResult = relayResult?.result ?? relayResult;
|
|
57483
57552
|
const statusObj = innerResult?.status ?? innerResult;
|
|
57484
57553
|
const sessions = Array.isArray(statusObj?.sessions) ? statusObj.sessions : [];
|
|
57485
|
-
const
|
|
57486
|
-
(s) => s?.settings?.meshNodeFor === ctx.mesh.id || s?.settings?.meshNodeId === node.id || s?.settings?.launchedByCoordinator === true
|
|
57487
|
-
);
|
|
57488
|
-
const targetSession = meshSessions[0] || sessions.find(
|
|
57489
|
-
(s) => !resolvedProviderType || s?.providerType === resolvedProviderType || s?.cliType === resolvedProviderType
|
|
57490
|
-
) || sessions[0];
|
|
57554
|
+
const targetSession = chooseDispatchableSession(sessions, resolvedProviderType, ctx.mesh.id, node.id);
|
|
57491
57555
|
if (targetSession?.id || targetSession?.sessionId) {
|
|
57492
57556
|
sessionId = targetSession.id || targetSession.sessionId;
|
|
57493
57557
|
if (!resolvedProviderType) {
|
|
57494
57558
|
resolvedProviderType = targetSession.providerType || targetSession.cliType || "";
|
|
57495
57559
|
}
|
|
57496
|
-
} else {
|
|
57497
57560
|
}
|
|
57498
57561
|
} catch (e) {
|
|
57499
57562
|
}
|
|
@@ -57502,13 +57565,17 @@ async function ipcDispatchToRemoteAgent(ctx, node, args) {
|
|
|
57502
57565
|
return { success: false, error: `Cannot dispatch to remote node '${node.id}': providerType unknown. Set providerPriority on the node policy or call mesh_launch_session first.` };
|
|
57503
57566
|
}
|
|
57504
57567
|
try {
|
|
57505
|
-
await transport.meshCommand(daemonId, "agent_command", {
|
|
57568
|
+
const dispatchResult = await transport.meshCommand(daemonId, "agent_command", {
|
|
57506
57569
|
...sessionId ? { targetSessionId: sessionId } : {},
|
|
57507
57570
|
agentType: resolvedProviderType,
|
|
57508
57571
|
cliType: resolvedProviderType,
|
|
57509
57572
|
action: "send_chat",
|
|
57510
57573
|
message: args.message
|
|
57511
57574
|
});
|
|
57575
|
+
const dispatchPayload = unwrapCommandPayload(dispatchResult);
|
|
57576
|
+
if (dispatchPayload?.success === false || dispatchResult?.success === false) {
|
|
57577
|
+
return { success: false, error: `P2P dispatch failed: ${dispatchPayload?.error || dispatchResult?.error || "agent_command rejected the task"}` };
|
|
57578
|
+
}
|
|
57512
57579
|
return { success: true, dispatched: true, sessionId: sessionId || resolvedProviderType };
|
|
57513
57580
|
} catch (e) {
|
|
57514
57581
|
return { success: false, error: `P2P dispatch failed: ${e?.message || String(e)}` };
|
|
@@ -58052,6 +58119,35 @@ async function meshSendTask(ctx, args) {
|
|
|
58052
58119
|
}
|
|
58053
58120
|
return JSON.stringify({ ...result, nodeId: args.node_id });
|
|
58054
58121
|
}
|
|
58122
|
+
if (args.session_id && isLocalTransport(ctx.transport)) {
|
|
58123
|
+
const cached2 = meshSessionProviderMetadata.get(meshSessionCacheKey(args.node_id, args.session_id));
|
|
58124
|
+
const dispatchResult = await commandForNode(ctx, node, "agent_command", {
|
|
58125
|
+
targetSessionId: args.session_id,
|
|
58126
|
+
...cached2?.providerType ? { agentType: cached2.providerType, cliType: cached2.providerType, providerType: cached2.providerType } : {},
|
|
58127
|
+
action: "send_chat",
|
|
58128
|
+
message: args.message
|
|
58129
|
+
});
|
|
58130
|
+
const dispatchPayload = unwrapCommandPayload(dispatchResult);
|
|
58131
|
+
if (dispatchPayload?.success === false || dispatchResult?.success === false) {
|
|
58132
|
+
return JSON.stringify({
|
|
58133
|
+
success: false,
|
|
58134
|
+
nodeId: args.node_id,
|
|
58135
|
+
sessionId: args.session_id,
|
|
58136
|
+
error: dispatchPayload?.error || dispatchResult?.error || "agent_command rejected the task"
|
|
58137
|
+
});
|
|
58138
|
+
}
|
|
58139
|
+
try {
|
|
58140
|
+
appendLedgerEntry(ctx.mesh.id, {
|
|
58141
|
+
kind: "task_dispatched",
|
|
58142
|
+
nodeId: args.node_id,
|
|
58143
|
+
sessionId: args.session_id,
|
|
58144
|
+
providerType: cached2?.providerType,
|
|
58145
|
+
payload: { message: args.message, via: "local_direct" }
|
|
58146
|
+
});
|
|
58147
|
+
} catch {
|
|
58148
|
+
}
|
|
58149
|
+
return JSON.stringify({ success: true, dispatched: true, nodeId: args.node_id, sessionId: args.session_id });
|
|
58150
|
+
}
|
|
58055
58151
|
const task = enqueueTask(ctx.mesh.id, args.message, {
|
|
58056
58152
|
targetNodeId: args.node_id,
|
|
58057
58153
|
targetSessionId: args.session_id
|