@getpaseo/server 0.1.97-beta.3 → 0.1.98

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 (96) hide show
  1. package/dist/server/server/agent/agent-manager.d.ts +11 -3
  2. package/dist/server/server/agent/agent-manager.js +95 -23
  3. package/dist/server/server/agent/agent-prompt.d.ts +1 -1
  4. package/dist/server/server/agent/agent-prompt.js +3 -10
  5. package/dist/server/server/agent/agent-response-loop.js +9 -3
  6. package/dist/server/server/agent/agent-sdk-types.d.ts +9 -3
  7. package/dist/server/server/agent/agent-storage.d.ts +20 -240
  8. package/dist/server/server/agent/agent-storage.js +6 -6
  9. package/dist/server/server/agent/create-agent/create.d.ts +2 -0
  10. package/dist/server/server/agent/create-agent/create.js +8 -7
  11. package/dist/server/server/agent/lifecycle-command.d.ts +15 -1
  12. package/dist/server/server/agent/lifecycle-command.js +9 -2
  13. package/dist/server/server/agent/mcp-server.js +263 -119
  14. package/dist/server/server/agent/mcp-shared.d.ts +35 -179
  15. package/dist/server/server/agent/provider-notices.d.ts +3 -0
  16. package/dist/server/server/agent/provider-notices.js +5 -0
  17. package/dist/server/server/agent/provider-registry.d.ts +2 -0
  18. package/dist/server/server/agent/provider-registry.js +10 -3
  19. package/dist/server/server/agent/provider-snapshot-manager.d.ts +3 -0
  20. package/dist/server/server/agent/provider-snapshot-manager.js +11 -2
  21. package/dist/server/server/agent/providers/claude/agent.js +257 -143
  22. package/dist/server/server/agent/providers/claude/models.js +7 -3
  23. package/dist/server/server/agent/providers/claude/project-dir.js +9 -6
  24. package/dist/server/server/agent/providers/claude/task-notification-tool-call.d.ts +2 -22
  25. package/dist/server/server/agent/providers/codex/app-server-transport.d.ts +8 -118
  26. package/dist/server/server/agent/providers/codex-app-server-agent.d.ts +4 -3
  27. package/dist/server/server/agent/providers/codex-app-server-agent.js +43 -1
  28. package/dist/server/server/agent/providers/copilot-acp-agent.js +4 -1
  29. package/dist/server/server/agent/providers/diagnostic-utils.d.ts +9 -0
  30. package/dist/server/server/agent/providers/diagnostic-utils.js +188 -0
  31. package/dist/server/server/agent/providers/generic-acp-agent.d.ts +1 -5
  32. package/dist/server/server/agent/providers/mock-slow-provider.js +1 -1
  33. package/dist/server/server/agent/providers/opencode/server-manager.d.ts +29 -2
  34. package/dist/server/server/agent/providers/opencode/server-manager.js +83 -17
  35. package/dist/server/server/agent/providers/opencode-agent.d.ts +2 -0
  36. package/dist/server/server/agent/providers/opencode-agent.js +14 -9
  37. package/dist/server/server/agent/providers/pi/agent.d.ts +1 -5
  38. package/dist/server/server/agent/providers/pi/agent.js +27 -14
  39. package/dist/server/server/agent/providers/tool-call-detail-primitives.d.ts +391 -1261
  40. package/dist/server/server/agent/providers/tool-call-detail-primitives.js +26 -16
  41. package/dist/server/server/bootstrap.d.ts +2 -0
  42. package/dist/server/server/bootstrap.js +32 -2
  43. package/dist/server/server/loop-service.d.ts +60 -359
  44. package/dist/server/server/managed-processes/managed-processes.d.ts +76 -0
  45. package/dist/server/server/managed-processes/managed-processes.js +326 -0
  46. package/dist/server/server/migrations/backfill-workspace-id.migration.js +10 -6
  47. package/dist/server/server/package-version.d.ts +1 -7
  48. package/dist/server/server/paseo-worktree-service.js +15 -1
  49. package/dist/server/server/persisted-config.d.ts +138 -1009
  50. package/dist/server/server/persisted-config.js +1 -1
  51. package/dist/server/server/pid-lock.d.ts +1 -15
  52. package/dist/server/server/resolve-worktree-creation-intent.d.ts +3 -0
  53. package/dist/server/server/resolve-worktree-creation-intent.js +3 -3
  54. package/dist/server/server/session.d.ts +18 -1
  55. package/dist/server/server/session.js +424 -64
  56. package/dist/server/server/speech/providers/local/sherpa/model-catalog.d.ts +2 -2
  57. package/dist/server/server/speech/providers/openai/runtime.js +3 -4
  58. package/dist/server/server/speech/speech-types.d.ts +9 -11
  59. package/dist/server/server/websocket-server.d.ts +1 -0
  60. package/dist/server/server/websocket-server.js +15 -0
  61. package/dist/server/server/workspace-archive-service.js +2 -3
  62. package/dist/server/server/workspace-directory.js +5 -5
  63. package/dist/server/server/workspace-reconciliation-service.js +2 -2
  64. package/dist/server/server/workspace-registry.d.ts +17 -48
  65. package/dist/server/server/workspace-registry.js +9 -0
  66. package/dist/server/server/worktree-core.d.ts +1 -0
  67. package/dist/server/server/worktree-core.js +5 -1
  68. package/dist/server/services/quota-fetcher/manifest.d.ts +4 -0
  69. package/dist/server/services/quota-fetcher/manifest.js +47 -0
  70. package/dist/server/services/quota-fetcher/provider.d.ts +17 -0
  71. package/dist/server/services/quota-fetcher/provider.js +2 -0
  72. package/dist/server/services/quota-fetcher/providers/claude.d.ts +26 -0
  73. package/dist/server/services/quota-fetcher/providers/claude.js +217 -0
  74. package/dist/server/services/quota-fetcher/providers/codex.d.ts +23 -0
  75. package/dist/server/services/quota-fetcher/providers/codex.js +211 -0
  76. package/dist/server/services/quota-fetcher/providers/copilot.d.ts +17 -0
  77. package/dist/server/services/quota-fetcher/providers/copilot.js +75 -0
  78. package/dist/server/services/quota-fetcher/providers/cursor.d.ts +17 -0
  79. package/dist/server/services/quota-fetcher/providers/cursor.js +123 -0
  80. package/dist/server/services/quota-fetcher/providers/grok.d.ts +18 -0
  81. package/dist/server/services/quota-fetcher/providers/grok.js +89 -0
  82. package/dist/server/services/quota-fetcher/providers/kimi.d.ts +20 -0
  83. package/dist/server/services/quota-fetcher/providers/kimi.js +89 -0
  84. package/dist/server/services/quota-fetcher/providers/zai.d.ts +17 -0
  85. package/dist/server/services/quota-fetcher/providers/zai.js +58 -0
  86. package/dist/server/services/quota-fetcher/service.d.ts +28 -0
  87. package/dist/server/services/quota-fetcher/service.js +58 -0
  88. package/dist/server/services/quota-fetcher/usage.d.ts +22 -0
  89. package/dist/server/services/quota-fetcher/usage.js +49 -0
  90. package/dist/server/terminal/terminal-session-controller.d.ts +8 -0
  91. package/dist/server/terminal/terminal-session-controller.js +23 -3
  92. package/dist/server/utils/checkout-git.js +36 -76
  93. package/dist/server/utils/directory-suggestions.js +98 -2
  94. package/dist/server/utils/worktree-metadata.d.ts +7 -59
  95. package/dist/src/server/persisted-config.js +1 -1
  96. package/package.json +9 -9
@@ -9,10 +9,10 @@ const SERIALIZABLE_CONFIG_SCHEMA = z
9
9
  modeId: z.string().nullable().optional(),
10
10
  model: z.string().nullable().optional(),
11
11
  thinkingOptionId: z.string().nullable().optional(),
12
- featureValues: z.record(z.unknown()).nullable().optional(),
13
- extra: z.record(z.any()).nullable().optional(),
12
+ featureValues: z.record(z.string(), z.unknown()).nullable().optional(),
13
+ extra: z.record(z.string(), z.any()).nullable().optional(),
14
14
  systemPrompt: z.string().nullable().optional(),
15
- mcpServers: z.record(z.any()).nullable().optional(),
15
+ mcpServers: z.record(z.string(), z.any()).nullable().optional(),
16
16
  })
17
17
  .nullable()
18
18
  .optional();
@@ -21,7 +21,7 @@ const PERSISTENCE_HANDLE_SCHEMA = z
21
21
  provider: z.string(),
22
22
  sessionId: z.string(),
23
23
  nativeHandle: z.any().optional(),
24
- metadata: z.record(z.any()).optional(),
24
+ metadata: z.record(z.string(), z.any()).optional(),
25
25
  })
26
26
  .nullable()
27
27
  .optional();
@@ -35,7 +35,7 @@ const STORED_AGENT_SCHEMA = z.object({
35
35
  lastActivityAt: z.string().optional(),
36
36
  lastUserMessageAt: z.string().nullable().optional(),
37
37
  title: z.string().nullable().optional(),
38
- labels: z.record(z.string()).default({}),
38
+ labels: z.record(z.string(), z.string()).default({}),
39
39
  lastStatus: AgentStatusSchema.default("closed"),
40
40
  lastModeId: z.string().nullable().optional(),
41
41
  config: SERIALIZABLE_CONFIG_SCHEMA,
@@ -46,7 +46,7 @@ const STORED_AGENT_SCHEMA = z.object({
46
46
  model: z.string().nullable().optional(),
47
47
  thinkingOptionId: z.string().nullable().optional(),
48
48
  modeId: z.string().nullable().optional(),
49
- extra: z.record(z.unknown()).optional(),
49
+ extra: z.record(z.string(), z.unknown()).optional(),
50
50
  })
51
51
  .optional(),
52
52
  features: z.array(AgentFeatureSchema).optional(),
@@ -48,6 +48,7 @@ export interface CreateAgentFromMcpInput {
48
48
  title: string;
49
49
  initialPrompt: string;
50
50
  cwd?: string;
51
+ workspaceId?: string;
51
52
  thinking?: string;
52
53
  features?: Record<string, unknown>;
53
54
  labels?: Record<string, string>;
@@ -63,6 +64,7 @@ export interface CreateAgentFromMcpInput {
63
64
  } | null;
64
65
  worktree?: {
65
66
  worktreeName?: string;
67
+ branchName?: string;
66
68
  baseBranch?: string;
67
69
  refName?: string;
68
70
  action?: "branch-off" | "checkout";
@@ -90,15 +90,15 @@ async function resolveMcpCreateAgent(dependencies, input) {
90
90
  worktree: input.worktree,
91
91
  initialPrompt: input.initialPrompt,
92
92
  });
93
- // A child agent created in its parent's working tree belongs to the parent's
94
- // workspace. When a new worktree is created the child lives in that fresh
95
- // workspace, so it is stamped with the new worktree's workspaceId instead
96
- // (mirrors the session path) keeping the agent discoverable by
97
- // workspaceId-scoped archive. With neither a parent nor a worktree, the agent
98
- // mints its own workspace; ownership is never resolved from cwd.
93
+ // MCP callers resolve workspace ownership before this point. Worktree
94
+ // creation wins because the new agent lives in the fresh worktree workspace.
95
+ // Otherwise use the explicit workspace id, then the parent workspace for
96
+ // direct internal callers. Ownership is never resolved from cwd.
99
97
  const workspaceId = setupContinuation
100
98
  ? createdWorkspaceId
101
- : (parentAgent?.workspaceId ?? (await ensureWorkspaceForMcpCreate(dependencies, resolvedCwd)));
99
+ : (input.workspaceId ??
100
+ parentAgent?.workspaceId ??
101
+ (await ensureWorkspaceForMcpCreate(dependencies, resolvedCwd)));
102
102
  const { modeId: resolvedMode, featureValues: resolvedFeatures } = await dependencies.providerSnapshotManager.resolveCreateConfig({
103
103
  cwd: resolvedCwd,
104
104
  provider,
@@ -224,6 +224,7 @@ async function resolveMcpCwd(params) {
224
224
  input: {
225
225
  cwd: params.cwd,
226
226
  worktreeSlug: worktree.worktreeName,
227
+ branchName: worktree.branchName,
227
228
  refName: worktree.refName,
228
229
  action: worktree.action,
229
230
  githubPrNumber: worktree.githubPrNumber,
@@ -1,6 +1,7 @@
1
1
  import type { Logger } from "pino";
2
2
  import type { ManagedAgent } from "./agent-manager.js";
3
3
  import type { StoredAgentRecord } from "./agent-storage.js";
4
+ import type { AgentProviderNotice } from "./agent-sdk-types.js";
4
5
  export type LifecycleAgentSnapshot = Pick<ManagedAgent, "id" | "cwd" | "lifecycle">;
5
6
  export interface LifecycleAgentManager {
6
7
  getAgent(agentId: string): LifecycleAgentSnapshot | null;
@@ -13,8 +14,13 @@ export interface LifecycleAgentManager {
13
14
  archiveSnapshot(agentId: string, archivedAt: string): Promise<StoredAgentRecord>;
14
15
  closeAgent(agentId: string): Promise<void>;
15
16
  setLabels(agentId: string, labels: Record<string, string>): Promise<void>;
17
+ detachAgent(agentId: string): Promise<{
18
+ record: StoredAgentRecord;
19
+ live: boolean;
20
+ previousParentAgentId: string | null;
21
+ }>;
16
22
  notifyAgentState(agentId: string): void;
17
- setAgentMode(agentId: string, modeId: string): Promise<void>;
23
+ setAgentMode(agentId: string, modeId: string): Promise<AgentProviderNotice | null>;
18
24
  updateAgentMetadata(agentId: string, updates: {
19
25
  title?: string;
20
26
  labels?: Record<string, string>;
@@ -50,10 +56,18 @@ export declare function updateAgentCommand(dependencies: Pick<AgentLifecycleComm
50
56
  name?: string;
51
57
  labels?: Record<string, string>;
52
58
  }): Promise<UpdateAgentResult>;
59
+ export interface DetachAgentResult {
60
+ agentId: string;
61
+ record: StoredAgentRecord;
62
+ live: boolean;
63
+ previousParentAgentId: string | null;
64
+ }
65
+ export declare function detachAgentCommand(dependencies: Pick<AgentLifecycleCommandDependencies, "agentManager">, agentId: string): Promise<DetachAgentResult>;
53
66
  export declare function setAgentModeCommand(dependencies: Pick<AgentLifecycleCommandDependencies, "agentManager">, input: {
54
67
  agentId: string;
55
68
  modeId: string;
56
69
  }): Promise<{
57
70
  modeId: string;
71
+ notice: AgentProviderNotice | null;
58
72
  }>;
59
73
  //# sourceMappingURL=lifecycle-command.d.ts.map
@@ -67,9 +67,16 @@ export async function updateAgentCommand(dependencies, input) {
67
67
  error: null,
68
68
  };
69
69
  }
70
+ export async function detachAgentCommand(dependencies, agentId) {
71
+ const result = await dependencies.agentManager.detachAgent(agentId);
72
+ return {
73
+ agentId,
74
+ ...result,
75
+ };
76
+ }
70
77
  export async function setAgentModeCommand(dependencies, input) {
71
- await dependencies.agentManager.setAgentMode(input.agentId, input.modeId);
72
- return { modeId: input.modeId };
78
+ const notice = await dependencies.agentManager.setAgentMode(input.agentId, input.modeId);
79
+ return { modeId: input.modeId, notice };
73
80
  }
74
81
  async function archiveStoredAgent(dependencies, agentId) {
75
82
  const existing = await dependencies.agentStorage.get(agentId);