@getpaseo/server 0.1.100 → 0.1.101

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.
Files changed (67) hide show
  1. package/dist/server/executable-resolution/windows.js +3 -0
  2. package/dist/server/server/agent/agent-manager.d.ts +10 -0
  3. package/dist/server/server/agent/agent-manager.js +65 -27
  4. package/dist/server/server/agent/agent-sdk-types.d.ts +8 -0
  5. package/dist/server/server/agent/mcp-server.d.ts +2 -45
  6. package/dist/server/server/agent/mcp-server.js +45 -1985
  7. package/dist/server/server/agent/prompt-attachments.js +6 -2
  8. package/dist/server/server/agent/provider-snapshot-manager.d.ts +4 -0
  9. package/dist/server/server/agent/provider-snapshot-manager.js +58 -13
  10. package/dist/server/server/agent/providers/acp-agent.d.ts +20 -1
  11. package/dist/server/server/agent/providers/acp-agent.js +170 -26
  12. package/dist/server/server/agent/providers/claude/agent.js +60 -10
  13. package/dist/server/server/agent/providers/codex-app-server-agent.js +6 -57
  14. package/dist/server/server/agent/providers/diagnostic-utils.d.ts +1 -0
  15. package/dist/server/server/agent/providers/diagnostic-utils.js +1 -1
  16. package/dist/server/server/agent/providers/generic-acp-agent.d.ts +3 -0
  17. package/dist/server/server/agent/providers/generic-acp-agent.js +41 -23
  18. package/dist/server/server/agent/providers/mock-load-test-agent.js +4 -2
  19. package/dist/server/server/agent/providers/pi/agent.d.ts +2 -1
  20. package/dist/server/server/agent/providers/pi/agent.js +3 -0
  21. package/dist/server/server/agent/providers/provider-image-output.d.ts +5 -0
  22. package/dist/server/server/agent/providers/provider-image-output.js +55 -0
  23. package/dist/server/server/agent/tools/paseo-tools.d.ts +48 -0
  24. package/dist/server/server/agent/tools/paseo-tools.js +2121 -0
  25. package/dist/server/server/agent/tools/types.d.ts +36 -0
  26. package/dist/server/server/agent/tools/types.js +2 -0
  27. package/dist/server/server/bootstrap.js +71 -62
  28. package/dist/server/server/persisted-config.d.ts +5 -0
  29. package/dist/server/server/persisted-config.js +10 -2
  30. package/dist/server/server/session/agent-updates/agent-updates-service.d.ts +59 -0
  31. package/dist/server/server/session/agent-updates/agent-updates-service.js +220 -0
  32. package/dist/server/server/session/checkout/checkout-session.d.ts +13 -15
  33. package/dist/server/server/session/checkout/checkout-session.js +18 -16
  34. package/dist/server/server/session/checkout/git-metadata-generator.d.ts +53 -0
  35. package/dist/server/server/session/checkout/git-metadata-generator.js +159 -0
  36. package/dist/server/server/session/daemon/daemon-session.d.ts +14 -0
  37. package/dist/server/server/session/daemon/daemon-session.js +38 -0
  38. package/dist/server/server/session/daemon/diagnostics.d.ts +41 -0
  39. package/dist/server/server/session/daemon/diagnostics.js +421 -0
  40. package/dist/server/server/session/git-mutation/git-mutation-service.d.ts +34 -0
  41. package/dist/server/server/session/git-mutation/git-mutation-service.js +71 -0
  42. package/dist/server/server/session/workspace-git-observer/workspace-git-observer-service.d.ts +36 -0
  43. package/dist/server/server/session/workspace-git-observer/workspace-git-observer-service.js +134 -0
  44. package/dist/server/server/session/workspace-provisioning/workspace-provisioning-service.d.ts +34 -0
  45. package/dist/server/server/session/workspace-provisioning/workspace-provisioning-service.js +190 -0
  46. package/dist/server/server/session/workspace-scripts/workspace-scripts-service.d.ts +41 -0
  47. package/dist/server/server/session/workspace-scripts/workspace-scripts-service.js +100 -0
  48. package/dist/server/server/session.d.ts +7 -51
  49. package/dist/server/server/session.js +113 -938
  50. package/dist/server/server/speech/providers/openai/config.d.ts +1 -2
  51. package/dist/server/server/speech/providers/openai/config.js +13 -9
  52. package/dist/server/server/speech/providers/openai/runtime.js +2 -16
  53. package/dist/server/server/speech/providers/openai/stt.d.ts +1 -0
  54. package/dist/server/server/speech/providers/openai/stt.js +4 -2
  55. package/dist/server/server/speech/providers/openai/tts.d.ts +1 -0
  56. package/dist/server/server/speech/providers/openai/tts.js +1 -0
  57. package/dist/server/server/websocket/runtime-metrics.d.ts +20 -0
  58. package/dist/server/server/websocket-server.d.ts +1 -2
  59. package/dist/server/server/websocket-server.js +26 -21
  60. package/dist/server/server/worktree-bootstrap.d.ts +1 -1
  61. package/dist/server/server/worktree-branch-name-generator.js +3 -1
  62. package/dist/server/utils/checkout-git.js +51 -26
  63. package/dist/src/executable-resolution/windows.js +3 -0
  64. package/dist/src/server/persisted-config.js +10 -2
  65. package/package.json +5 -5
  66. package/dist/server/server/speech/providers/openai/realtime-transcription-session.d.ts +0 -42
  67. package/dist/server/server/speech/providers/openai/realtime-transcription-session.js +0 -168
@@ -41,6 +41,9 @@ async function findFirstProbeable(candidates, options) {
41
41
  continue;
42
42
  }
43
43
  seen.add(candidate);
44
+ if (!options.exists(candidate)) {
45
+ continue;
46
+ }
44
47
  if (await options.probeExecutable(candidate, options.probeTimeoutMs)) {
45
48
  return candidate;
46
49
  }
@@ -6,6 +6,7 @@ import type { StoredAgentRecord, AgentStorage } from "./agent-storage.js";
6
6
  import type { AgentTimelineFetchOptions, AgentTimelineFetchResult, AgentTimelineRow, AgentTimelineStore } from "./agent-timeline-store-types.js";
7
7
  import { type ForegroundTurnWaiter } from "./foreground-run-state.js";
8
8
  import { type RewindMode } from "./rewind/rewind.js";
9
+ import type { PaseoToolCatalogFactory } from "./tools/types.js";
9
10
  export { AGENT_LIFECYCLE_STATUSES, type AgentLifecycleStatus };
10
11
  export type { AgentTimelineCursor, AgentTimelineFetchDirection, AgentTimelineFetchOptions, AgentTimelineFetchResult, AgentTimelineRow, AgentTimelineWindow, } from "./agent-timeline-store-types.js";
11
12
  export type AgentManagerEvent = {
@@ -72,6 +73,8 @@ export interface AgentManagerOptions {
72
73
  terminalManager?: TerminalManager | null;
73
74
  mcpBaseUrl?: string;
74
75
  mcpAuthToken?: string;
76
+ paseoToolsEnabled?: boolean;
77
+ paseoToolCatalogFactory?: PaseoToolCatalogFactory;
75
78
  appendSystemPrompt?: string;
76
79
  agentStreamCoalesceWindowMs?: number;
77
80
  rescueTimeouts?: AgentManagerRescueTimeouts;
@@ -190,6 +193,8 @@ export declare class AgentManager {
190
193
  private readonly agentStreamCoalescer;
191
194
  private mcpBaseUrl;
192
195
  private readonly mcpAuthToken;
196
+ private paseoToolsEnabled;
197
+ private paseoToolCatalogFactory;
193
198
  private appendSystemPrompt;
194
199
  private onAgentAttention?;
195
200
  private onAgentArchived?;
@@ -197,6 +202,7 @@ export declare class AgentManager {
197
202
  private logger;
198
203
  private readonly rescueTimeouts;
199
204
  constructor(options: AgentManagerOptions);
205
+ private configurePaseoTools;
200
206
  registerClient(provider: AgentProvider, client: AgentClient): void;
201
207
  updateProviderRegistry(input: {
202
208
  providerDefinitions: ProviderEnabledMap;
@@ -206,6 +212,8 @@ export declare class AgentManager {
206
212
  setAgentAttentionCallback(callback: AgentAttentionCallback): void;
207
213
  setAgentArchivedCallback(callback: AgentArchivedCallback): void;
208
214
  setMcpBaseUrl(url: string | null): void;
215
+ setPaseoToolsEnabled(enabled: boolean): void;
216
+ setPaseoToolCatalogFactory(factory: PaseoToolCatalogFactory | null): void;
209
217
  /**
210
218
  * Capability token the daemon's own MCP clients must present to the Agent MCP
211
219
  * endpoint when a daemon password is configured. Read by the per-client
@@ -372,9 +380,11 @@ export declare class AgentManager {
372
380
  private dispatchStream;
373
381
  private dispatch;
374
382
  private normalizeConfig;
383
+ private resolveDefaultModelId;
375
384
  private prepareSessionConfig;
376
385
  private applyDaemonAppendSystemPrompt;
377
386
  private buildLaunchContext;
387
+ private resolveProviderLaunchConfig;
378
388
  private requireAvailableClient;
379
389
  private requireEnabledProvider;
380
390
  private getConfiguredProviderIds;
@@ -185,6 +185,8 @@ export class AgentManager {
185
185
  this.subscribers = new Set();
186
186
  this.previousStatuses = new Map();
187
187
  this.backgroundTasks = new Set();
188
+ this.paseoToolsEnabled = true;
189
+ this.paseoToolCatalogFactory = null;
188
190
  this.idFactory = options?.idFactory ?? (() => randomUUID());
189
191
  this.registry = options?.registry;
190
192
  this.durableTimelineStore = options?.durableTimelineStore;
@@ -192,6 +194,7 @@ export class AgentManager {
192
194
  this.onWorkspaceStateMayHaveChanged = options?.onWorkspaceStateMayHaveChanged;
193
195
  this.mcpBaseUrl = options?.mcpBaseUrl ?? null;
194
196
  this.mcpAuthToken = options?.mcpAuthToken ?? null;
197
+ this.configurePaseoTools(options);
195
198
  this.appendSystemPrompt = options.appendSystemPrompt ?? "";
196
199
  this.logger = options.logger.child({ module: "agent", component: "agent-manager" });
197
200
  this.rescueTimeouts = {
@@ -211,6 +214,10 @@ export class AgentManager {
211
214
  clients: options.clients ?? {},
212
215
  });
213
216
  }
217
+ configurePaseoTools(options) {
218
+ this.paseoToolsEnabled = options.paseoToolsEnabled ?? true;
219
+ this.paseoToolCatalogFactory = options.paseoToolCatalogFactory ?? null;
220
+ }
214
221
  registerClient(provider, client) {
215
222
  this.clients.set(provider, client);
216
223
  }
@@ -238,6 +245,12 @@ export class AgentManager {
238
245
  setMcpBaseUrl(url) {
239
246
  this.mcpBaseUrl = url;
240
247
  }
248
+ setPaseoToolsEnabled(enabled) {
249
+ this.paseoToolsEnabled = enabled;
250
+ }
251
+ setPaseoToolCatalogFactory(factory) {
252
+ this.paseoToolCatalogFactory = factory;
253
+ }
241
254
  /**
242
255
  * Capability token the daemon's own MCP clients must present to the Agent MCP
243
256
  * endpoint when a daemon password is configured. Read by the per-client
@@ -403,8 +416,11 @@ export class AgentManager {
403
416
  }
404
417
  }
405
418
  async listDraftCommands(config) {
406
- const normalizedConfig = await this.normalizeConfig(config);
419
+ const normalizedConfig = await this.normalizeConfig(config, { resolveDefaultModel: false });
407
420
  const client = this.requireClient(normalizedConfig.provider);
421
+ if (!normalizedConfig.model) {
422
+ return [];
423
+ }
408
424
  const available = await client.isAvailable();
409
425
  if (!available) {
410
426
  throw new Error(`Provider '${normalizedConfig.provider}' is not available. Please ensure the CLI is installed.`);
@@ -429,8 +445,11 @@ export class AgentManager {
429
445
  }
430
446
  }
431
447
  async listDraftFeatures(config) {
432
- const normalizedConfig = await this.normalizeConfig(config);
448
+ const normalizedConfig = await this.normalizeConfig(config, { resolveDefaultModel: false });
433
449
  const client = this.requireClient(normalizedConfig.provider);
450
+ if (!normalizedConfig.model) {
451
+ return [];
452
+ }
434
453
  const available = await client.isAvailable();
435
454
  if (!available) {
436
455
  throw new Error(`Provider '${normalizedConfig.provider}' is not available. Please ensure the CLI is installed.`);
@@ -474,12 +493,13 @@ export class AgentManager {
474
493
  const resolvedAgentId = validateAgentId(agentId ?? this.idFactory(), "createAgent");
475
494
  const { storedConfig, launchConfig } = await this.prepareSessionConfig(config, resolvedAgentId);
476
495
  this.requireEnabledProvider(storedConfig.provider);
477
- const launchContext = this.buildLaunchContext(resolvedAgentId, options?.env);
478
496
  const client = await this.requireAvailableClient({
479
497
  provider: storedConfig.provider,
480
498
  });
499
+ const launchContext = await this.buildLaunchContext(resolvedAgentId, client, options?.env);
500
+ const providerLaunchConfig = this.resolveProviderLaunchConfig(launchConfig, launchContext);
481
501
  const createOptions = this.buildCreateSessionOptions(options);
482
- const session = await client.createSession(launchConfig, launchContext, createOptions);
502
+ const session = await client.createSession(providerLaunchConfig, launchContext, createOptions);
483
503
  return this.registerSession(session, storedConfig, resolvedAgentId, {
484
504
  labels: options?.labels,
485
505
  initialTitle: options?.initialTitle,
@@ -502,13 +522,14 @@ export class AgentManager {
502
522
  provider: handle.provider,
503
523
  };
504
524
  const { storedConfig, launchConfig } = await this.prepareSessionConfig(mergedConfig, resolvedAgentId);
505
- const launchContext = this.buildLaunchContext(resolvedAgentId);
506
525
  const client = this.requireClient(handle.provider);
507
526
  const available = await client.isAvailable();
508
527
  if (!available) {
509
528
  throw new Error(`Provider '${handle.provider}' is not available. Please ensure the CLI is installed.`);
510
529
  }
511
- const session = await client.resumeSession(handle, launchConfig, launchContext);
530
+ const launchContext = await this.buildLaunchContext(resolvedAgentId, client);
531
+ const providerLaunchConfig = this.resolveProviderLaunchConfig(launchConfig, launchContext);
532
+ const session = await client.resumeSession(handle, providerLaunchConfig, launchContext);
512
533
  return this.registerSession(session, storedConfig, resolvedAgentId, options);
513
534
  }
514
535
  async importProviderSession(input) {
@@ -522,11 +543,12 @@ export class AgentManager {
522
543
  provider: input.provider,
523
544
  cwd: input.cwd,
524
545
  }, resolvedAgentId);
525
- const launchContext = this.buildLaunchContext(resolvedAgentId);
546
+ const launchContext = await this.buildLaunchContext(resolvedAgentId, client);
547
+ const providerLaunchConfig = this.resolveProviderLaunchConfig(launchConfig, launchContext);
526
548
  const imported = await client.importSession({
527
549
  providerHandleId: input.providerHandleId,
528
550
  cwd: input.cwd,
529
- }, { config: launchConfig, storedConfig, launchContext });
551
+ }, { config: providerLaunchConfig, storedConfig, launchContext });
530
552
  const importedConfig = await this.normalizeConfig(stripInternalPaseoMcpServer(imported.config));
531
553
  const timelineRows = buildImportedTimelineRows(imported.timeline);
532
554
  const initialTitle = resolveImportedAgentTitle(importedConfig, timelineRows);
@@ -567,10 +589,11 @@ export class AgentManager {
567
589
  provider,
568
590
  };
569
591
  const { storedConfig, launchConfig } = await this.prepareSessionConfig(refreshConfig, agentId);
570
- const launchContext = this.buildLaunchContext(agentId);
592
+ const launchContext = await this.buildLaunchContext(agentId, client);
593
+ const providerLaunchConfig = this.resolveProviderLaunchConfig(launchConfig, launchContext);
571
594
  const session = handle
572
- ? await client.resumeSession(handle, launchConfig, launchContext)
573
- : await client.createSession(launchConfig, launchContext);
595
+ ? await client.resumeSession(handle, providerLaunchConfig, launchContext)
596
+ : await client.createSession(providerLaunchConfig, launchContext);
574
597
  this.agentStreamCoalescer.flushAndDiscard(agentId);
575
598
  // Remove the existing agent entry before swapping sessions
576
599
  this.agents.delete(agentId);
@@ -2549,7 +2572,7 @@ export class AgentManager {
2549
2572
  subscriber.callback(event);
2550
2573
  }
2551
2574
  }
2552
- async normalizeConfig(config) {
2575
+ async normalizeConfig(config, options = {}) {
2553
2576
  const normalized = { ...config };
2554
2577
  // Always resolve cwd to absolute path for consistent history file lookup
2555
2578
  if (normalized.cwd) {
@@ -2576,19 +2599,11 @@ export class AgentManager {
2576
2599
  const trimmed = normalized.model.trim();
2577
2600
  normalized.model = trimmed.length > 0 && trimmed !== "default" ? trimmed : undefined;
2578
2601
  }
2579
- if (!normalized.model) {
2580
- const client = this.clients.get(normalized.provider);
2581
- if (client) {
2582
- try {
2583
- const catalog = await client.fetchCatalog({ cwd: normalized.cwd, force: false });
2584
- const defaultModel = catalog.models.find((model) => model.isDefault) ?? catalog.models[0];
2585
- if (defaultModel) {
2586
- normalized.model = defaultModel.id;
2587
- }
2588
- }
2589
- catch {
2590
- // Provider may not support model listing — leave model undefined
2591
- }
2602
+ const shouldResolveDefaultModel = options.resolveDefaultModel ?? true;
2603
+ if (shouldResolveDefaultModel && !normalized.model) {
2604
+ const defaultModelId = await this.resolveDefaultModelId(normalized);
2605
+ if (defaultModelId) {
2606
+ normalized.model = defaultModelId;
2592
2607
  }
2593
2608
  }
2594
2609
  if (!normalized.modeId) {
@@ -2602,6 +2617,20 @@ export class AgentManager {
2602
2617
  }
2603
2618
  return normalized;
2604
2619
  }
2620
+ async resolveDefaultModelId(config) {
2621
+ const client = this.clients.get(config.provider);
2622
+ if (!client) {
2623
+ return undefined;
2624
+ }
2625
+ try {
2626
+ const catalog = await client.fetchCatalog({ cwd: config.cwd, force: false });
2627
+ return (catalog.models.find((model) => model.isDefault) ?? catalog.models[0])?.id;
2628
+ }
2629
+ catch {
2630
+ // Provider may not support model listing — leave model undefined.
2631
+ return undefined;
2632
+ }
2633
+ }
2605
2634
  async prepareSessionConfig(config, agentId) {
2606
2635
  const storedConfig = await this.normalizeConfig(stripInternalPaseoMcpServer(config));
2607
2636
  const launchConfig = this.applyDaemonAppendSystemPrompt(withRuntimePaseoMcpServer({
@@ -2623,14 +2652,23 @@ export class AgentManager {
2623
2652
  }
2624
2653
  : next;
2625
2654
  }
2626
- buildLaunchContext(agentId, env) {
2627
- return {
2655
+ async buildLaunchContext(agentId, client, env) {
2656
+ const context = {
2628
2657
  agentId,
2629
2658
  env: {
2630
2659
  ...env,
2631
2660
  PASEO_AGENT_ID: agentId,
2632
2661
  },
2633
2662
  };
2663
+ if (this.paseoToolsEnabled &&
2664
+ client.capabilities.supportsNativePaseoTools &&
2665
+ this.paseoToolCatalogFactory) {
2666
+ context.paseoTools = await this.paseoToolCatalogFactory({ callerAgentId: agentId });
2667
+ }
2668
+ return context;
2669
+ }
2670
+ resolveProviderLaunchConfig(launchConfig, launchContext) {
2671
+ return launchContext.paseoTools ? stripInternalPaseoMcpServer(launchConfig) : launchConfig;
2634
2672
  }
2635
2673
  async requireAvailableClient(options) {
2636
2674
  const client = this.clients.get(options.provider);
@@ -1,6 +1,7 @@
1
1
  import type { Options as ClaudeAgentOptions } from "@anthropic-ai/claude-agent-sdk";
2
2
  import type { AgentProviderNotice } from "@getpaseo/protocol/agent-types";
3
3
  import type { AgentAttachment } from "@getpaseo/protocol/messages";
4
+ import type { PaseoToolCatalog } from "./tools/types.js";
4
5
  export type { AgentProviderNotice };
5
6
  export type AgentProvider = string;
6
7
  export interface AgentMetadata {
@@ -141,6 +142,7 @@ export interface AgentCapabilityFlags {
141
142
  supportsSessionListing?: boolean;
142
143
  supportsDynamicModes: boolean;
143
144
  supportsMcpServers: boolean;
145
+ supportsNativePaseoTools?: boolean;
144
146
  supportsReasoningStream: boolean;
145
147
  supportsToolInvocations: boolean;
146
148
  supportsRewindConversation?: boolean;
@@ -516,6 +518,11 @@ export interface AgentSessionConfig {
516
518
  export interface AgentLaunchContext {
517
519
  agentId?: string;
518
520
  env?: Record<string, string>;
521
+ /**
522
+ * Runtime-only internal Paseo tools. This must never be persisted into
523
+ * AgentSessionConfig; providers may adapt it to their native tool surface.
524
+ */
525
+ paseoTools?: PaseoToolCatalog;
519
526
  }
520
527
  export interface AgentCreateSessionOptions {
521
528
  /**
@@ -581,6 +588,7 @@ export interface AgentSession {
581
588
  export interface FetchCatalogOptions {
582
589
  cwd: string;
583
590
  force: boolean;
591
+ timeoutMs?: number;
584
592
  }
585
593
  export interface ProviderCatalog {
586
594
  models: AgentModelDefinition[];
@@ -1,48 +1,5 @@
1
1
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
- import type { Logger } from "pino";
3
- import type { AgentManager } from "./agent-manager.js";
4
- import type { AgentStorage } from "./agent-storage.js";
5
- import { type ArchiveDependencies } from "../workspace-archive-service.js";
6
- import type { VoiceCallerContext, VoiceSpeakHandler } from "../voice-types.js";
7
- import type { TerminalManager } from "../../terminal/terminal-manager.js";
8
- import type { CreatePaseoWorktreeWorkflowFn } from "../worktree-session.js";
9
- import type { ScheduleService } from "../schedule/service.js";
10
- import { type ProviderSnapshotManager } from "./provider-snapshot-manager.js";
11
- import type { GitHubService } from "../../services/github-service.js";
12
- import type { WorkspaceGitService } from "../workspace-git-service.js";
13
- export interface AgentMcpServerOptions {
14
- agentManager: AgentManager;
15
- agentStorage: AgentStorage;
16
- terminalManager?: TerminalManager | null;
17
- getDaemonTcpPort?: () => number | null;
18
- scheduleService?: ScheduleService | null;
19
- providerSnapshotManager: ProviderSnapshotManager;
20
- github?: GitHubService;
21
- workspaceGitService?: Pick<WorkspaceGitService, "getSnapshot" | "listWorktrees" | "resolveRepoRoot">;
22
- findWorkspaceIdForCwd?: ArchiveDependencies["findWorkspaceIdForCwd"];
23
- listActiveWorkspaces?: ArchiveDependencies["listActiveWorkspaces"];
24
- archiveWorkspaceRecord?: ArchiveDependencies["archiveWorkspaceRecord"];
25
- emitWorkspaceUpdatesForWorkspaceIds?: ArchiveDependencies["emitWorkspaceUpdatesForWorkspaceIds"];
26
- markWorkspaceArchiving?: ArchiveDependencies["markWorkspaceArchiving"];
27
- clearWorkspaceArchiving?: ArchiveDependencies["clearWorkspaceArchiving"];
28
- createPaseoWorktree?: CreatePaseoWorktreeWorkflowFn;
29
- ensureWorkspaceForCreate?: (cwd: string) => Promise<string>;
30
- paseoHome?: string;
31
- worktreesRoot?: string;
32
- /**
33
- * ID of the agent that is connecting to this MCP server.
34
- * Used for cwd/mode inheritance when agents spawn child agents.
35
- */
36
- callerAgentId?: string;
37
- /**
38
- * Optional resolver for session-bound speak handlers.
39
- * Used by hidden voice agents to narrate through daemon-managed TTS.
40
- */
41
- resolveSpeakHandler?: (callerAgentId: string) => VoiceSpeakHandler | null;
42
- resolveCallerContext?: (callerAgentId: string) => VoiceCallerContext | null;
43
- enableVoiceTools?: boolean;
44
- voiceOnly?: boolean;
45
- logger: Logger;
46
- }
2
+ import { type PaseoToolHostDependencies } from "./tools/paseo-tools.js";
3
+ export type AgentMcpServerOptions = PaseoToolHostDependencies;
47
4
  export declare function createAgentMcpServer(options: AgentMcpServerOptions): Promise<McpServer>;
48
5
  //# sourceMappingURL=mcp-server.d.ts.map