@adhdev/daemon-core 0.9.76-rc.64 → 0.9.76-rc.65

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.d.ts CHANGED
@@ -4,7 +4,7 @@
4
4
  * Core logic for daemon: CDP, Provider, IDE detection, CLI/ACP adapters and more.
5
5
  */
6
6
  export type { ChatBubbleState, ChatMessage, ExtensionInfo, CommandResult as CoreCommandResult, ProviderConfig, DaemonEvent, StatusResponse, SystemInfo, DetectedIde, ProviderInfo, AgentEntry, } from './types.js';
7
- export type { SessionEntry, CompactSessionEntry, CompactDaemonEntry, CloudDaemonSummaryEntry, DashboardBootstrapDaemonEntry, VersionUpdateReason, CloudStatusReportPayload, DaemonStatusEventPayload, DashboardStatusEventPayload, SessionTransport, SessionKind, SessionCapability, AgentSessionStream, ReadChatCursor, ReadChatSyncResult, TransportTopic, SessionChatTailSubscriptionParams, SessionRuntimeOutputSubscriptionParams, MachineRuntimeSubscriptionParams, SessionHostDiagnosticsSubscriptionParams, SessionModalSubscriptionParams, DaemonMetadataSubscriptionParams, WorkspaceGitSubscriptionParams, SessionChatTailUpdate, MachineRuntimeUpdate, SessionHostDiagnosticsUpdate, SessionModalUpdate, DaemonMetadataUpdate, TopicUpdateEnvelope, SubscribeRequest, UnsubscribeRequest, StandaloneWsStatusPayload, AvailableProviderInfo, AcpConfigOption, AcpMode, ProviderControlSchema, StatusReportPayload, MachineInfo, SessionHostDiagnosticsSnapshot, SessionHostRecord, SessionHostWriteOwner, SessionHostAttachedClient, SessionHostLogEntry, SessionHostRequestTrace, SessionHostRuntimeTransition, DetectedIdeInfo, WorkspaceEntry, ProviderSummaryItem, ProviderSummaryMetadata, ProviderState, ProviderStatus, ProviderErrorReason, SessionActiveChatData, ActiveChatData, IdeProviderState, CliProviderState, AcpProviderState, ExtensionProviderState, } from './shared-types.js';
7
+ export type { SessionEntry, CompactSessionEntry, CompactDaemonEntry, CloudDaemonSummaryEntry, DashboardBootstrapDaemonEntry, VersionUpdateReason, CloudStatusReportPayload, DaemonStatusEventPayload, DashboardStatusEventPayload, SessionTransport, SessionKind, SessionCapability, AgentSessionStream, ReadChatCursor, ReadChatSyncResult, TransportTopic, SessionChatTailSubscriptionParams, SessionRuntimeOutputSubscriptionParams, MachineRuntimeSubscriptionParams, SessionHostDiagnosticsSubscriptionParams, SessionModalSubscriptionParams, DaemonMetadataSubscriptionParams, WorkspaceGitSubscriptionParams, SessionChatTailUpdate, MachineRuntimeUpdate, SessionHostDiagnosticsUpdate, SessionModalUpdate, DaemonMetadataUpdate, TopicUpdateEnvelope, SubscribeRequest, UnsubscribeRequest, StandaloneWsStatusPayload, AvailableProviderInfo, AcpConfigOption, AcpMode, ProviderControlSchema, StatusReportPayload, MachineInfo, SessionHostDiagnosticsSnapshot, SessionHostRecord, SessionHostWriteOwner, SessionHostAttachedClient, SessionHostLogEntry, SessionHostRequestTrace, SessionHostRuntimeTransition, DetectedIdeInfo, WorkspaceEntry, ProviderSummaryItem, ProviderSummaryMetadata, ProviderState, ProviderStatus, ProviderErrorReason, SessionActiveChatData, ActiveChatData, IdeProviderState, CliProviderState, AcpProviderState, ExtensionProviderState, MessageInputSupport, InputMediaStrategyDescriptor, InputAttachmentStrategy, InputMediaType, } from './shared-types.js';
8
8
  export type { RepoMesh, RepoMeshNode, RepoMeshNodeHealth, RepoMeshPolicy, RepoMeshNodePolicy, RepoMeshRelatedRepo, RepoMeshNodeCapabilities, DetectedCommand, ProjectContextSnapshot, ProjectContextSource, RepoMeshCoordinatorConfig, LocalMeshConfig, LocalMeshEntry, LocalMeshNodeEntry, RepoMeshStatus, RepoMeshNodeStatus, } from './repo-mesh-types.js';
9
9
  export { DEFAULT_MESH_POLICY } from './repo-mesh-types.js';
10
10
  export * from './git/index.js';
package/dist/index.js CHANGED
@@ -15356,8 +15356,32 @@ function materializeImageDataPart(part, index, dir) {
15356
15356
  fs6.mkdirSync(dir, { recursive: true });
15357
15357
  const filePath = path16.join(dir, safeInputImageBasename(index, part.mimeType));
15358
15358
  fs6.writeFileSync(filePath, Buffer.from(rawData, "base64"));
15359
+ cleanupStaleMaterializedImages(dir);
15359
15360
  return filePath;
15360
15361
  }
15362
+ var MATERIALIZED_IMAGE_MAX_AGE_MS = 60 * 60 * 1e3;
15363
+ var MATERIALIZED_IMAGE_CLEANUP_INTERVAL_MS = 5 * 60 * 1e3;
15364
+ var lastMaterializedImageCleanupAt = 0;
15365
+ function cleanupStaleMaterializedImages(dir) {
15366
+ const now = Date.now();
15367
+ if (now - lastMaterializedImageCleanupAt < MATERIALIZED_IMAGE_CLEANUP_INTERVAL_MS) return;
15368
+ lastMaterializedImageCleanupAt = now;
15369
+ try {
15370
+ const entries = fs6.readdirSync(dir);
15371
+ for (const entry of entries) {
15372
+ if (!entry.startsWith("adhdev-input-image-")) continue;
15373
+ const fullPath = path16.join(dir, entry);
15374
+ try {
15375
+ const stat2 = fs6.statSync(fullPath);
15376
+ if (now - stat2.mtimeMs > MATERIALIZED_IMAGE_MAX_AGE_MS) {
15377
+ fs6.unlinkSync(fullPath);
15378
+ }
15379
+ } catch {
15380
+ }
15381
+ }
15382
+ } catch {
15383
+ }
15384
+ }
15361
15385
  function buildCliStructuredInputPrompt(input, options = {}) {
15362
15386
  const promptParts = [];
15363
15387
  const imageRefs = [];
@@ -15384,7 +15408,10 @@ function buildCliStructuredInputPrompt(input, options = {}) {
15384
15408
  resourceRefs.push([part.name, part.text, part.uri].filter(Boolean).join("\n"));
15385
15409
  }
15386
15410
  });
15387
- if (input.textFallback.trim()) promptParts.push(input.textFallback.trim());
15411
+ const hasExplicitTextParts = input.parts.some((part) => part.type === "text" && part.text.trim());
15412
+ if (!hasExplicitTextParts && input.textFallback.trim()) {
15413
+ promptParts.push(input.textFallback.trim());
15414
+ }
15388
15415
  const ordered = [
15389
15416
  ...imageRefs,
15390
15417
  ...promptParts,
@@ -21240,7 +21267,10 @@ function setupMeshEventForwarding(components) {
21240
21267
  const workspace = readNonEmptyString(state.workspace);
21241
21268
  if (!workspace) return;
21242
21269
  const settings = state.settings && typeof state.settings === "object" ? state.settings : {};
21270
+ if (readNonEmptyString(settings.meshCoordinatorFor)) return;
21243
21271
  const meshIdFromRuntime = readNonEmptyString(settings.meshNodeFor);
21272
+ const isMeshDelegate = Boolean(meshIdFromRuntime || settings.launchedByCoordinator);
21273
+ if (!isMeshDelegate) return;
21244
21274
  const mesh = meshIdFromRuntime ? getMesh(meshIdFromRuntime) : getMeshByRepo(workspace);
21245
21275
  const meshId = meshIdFromRuntime || readNonEmptyString(mesh?.id);
21246
21276
  if (!meshId) return;
@@ -23730,7 +23760,7 @@ function prepareSessionChatTailUpdate(input) {
23730
23760
  };
23731
23761
  }
23732
23762
  const fullMessages = normalizeChatMessages(Array.isArray(result.messages) ? result.messages : []);
23733
- const messages = filterUserFacingChatMessages(fullMessages);
23763
+ const messages = fullMessages;
23734
23764
  const title = typeof result.title === "string" ? result.title : void 0;
23735
23765
  const activeModal = normalizeChatTailActiveModal(result.activeModal);
23736
23766
  const status = typeof result.status === "string" ? result.status : "idle";