@getpaseo/server 0.1.70 → 0.1.72

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 (197) hide show
  1. package/dist/server/client/daemon-client.d.ts +24 -4
  2. package/dist/server/client/daemon-client.d.ts.map +1 -1
  3. package/dist/server/client/daemon-client.js +41 -2
  4. package/dist/server/client/daemon-client.js.map +1 -1
  5. package/dist/server/server/agent/agent-manager.d.ts +17 -4
  6. package/dist/server/server/agent/agent-manager.d.ts.map +1 -1
  7. package/dist/server/server/agent/agent-manager.js +177 -21
  8. package/dist/server/server/agent/agent-manager.js.map +1 -1
  9. package/dist/server/server/agent/agent-metadata-generator.d.ts +2 -0
  10. package/dist/server/server/agent/agent-metadata-generator.d.ts.map +1 -1
  11. package/dist/server/server/agent/agent-metadata-generator.js +16 -7
  12. package/dist/server/server/agent/agent-metadata-generator.js.map +1 -1
  13. package/dist/server/server/agent/agent-projections.d.ts +6 -2
  14. package/dist/server/server/agent/agent-projections.d.ts.map +1 -1
  15. package/dist/server/server/agent/agent-projections.js +32 -0
  16. package/dist/server/server/agent/agent-projections.js.map +1 -1
  17. package/dist/server/server/agent/agent-prompt.d.ts +72 -0
  18. package/dist/server/server/agent/agent-prompt.d.ts.map +1 -0
  19. package/dist/server/server/agent/agent-prompt.js +169 -0
  20. package/dist/server/server/agent/agent-prompt.js.map +1 -0
  21. package/dist/server/server/agent/agent-response-loop.d.ts.map +1 -1
  22. package/dist/server/server/agent/agent-response-loop.js +2 -1
  23. package/dist/server/server/agent/agent-response-loop.js.map +1 -1
  24. package/dist/server/server/agent/agent-sdk-types.d.ts +12 -0
  25. package/dist/server/server/agent/agent-sdk-types.d.ts.map +1 -1
  26. package/dist/server/server/agent/create-agent-mode.d.ts +2 -0
  27. package/dist/server/server/agent/create-agent-mode.d.ts.map +1 -1
  28. package/dist/server/server/agent/create-agent-mode.js +3 -0
  29. package/dist/server/server/agent/create-agent-mode.js.map +1 -1
  30. package/dist/server/server/agent/create-agent-title.d.ts +8 -0
  31. package/dist/server/server/agent/create-agent-title.d.ts.map +1 -0
  32. package/dist/server/server/agent/create-agent-title.js +29 -0
  33. package/dist/server/server/agent/create-agent-title.js.map +1 -0
  34. package/dist/server/server/agent/import-sessions.d.ts +52 -0
  35. package/dist/server/server/agent/import-sessions.d.ts.map +1 -0
  36. package/dist/server/server/agent/import-sessions.js +208 -0
  37. package/dist/server/server/agent/import-sessions.js.map +1 -0
  38. package/dist/server/server/agent/mcp-server.d.ts +1 -1
  39. package/dist/server/server/agent/mcp-server.d.ts.map +1 -1
  40. package/dist/server/server/agent/mcp-server.js +29 -6
  41. package/dist/server/server/agent/mcp-server.js.map +1 -1
  42. package/dist/server/server/agent/mcp-shared.d.ts +1 -47
  43. package/dist/server/server/agent/mcp-shared.d.ts.map +1 -1
  44. package/dist/server/server/agent/mcp-shared.js +0 -145
  45. package/dist/server/server/agent/mcp-shared.js.map +1 -1
  46. package/dist/server/server/agent/provider-registry.d.ts +7 -0
  47. package/dist/server/server/agent/provider-registry.d.ts.map +1 -1
  48. package/dist/server/server/agent/provider-registry.js +7 -1
  49. package/dist/server/server/agent/provider-registry.js.map +1 -1
  50. package/dist/server/server/agent/providers/claude/agent.d.ts.map +1 -1
  51. package/dist/server/server/agent/providers/claude/agent.js +15 -0
  52. package/dist/server/server/agent/providers/claude/agent.js.map +1 -1
  53. package/dist/server/server/agent/providers/codex/app-server-transport.d.ts +25 -0
  54. package/dist/server/server/agent/providers/codex/app-server-transport.d.ts.map +1 -0
  55. package/dist/server/server/agent/providers/codex/app-server-transport.js +183 -0
  56. package/dist/server/server/agent/providers/codex/app-server-transport.js.map +1 -0
  57. package/dist/server/server/agent/providers/codex-app-server-agent.d.ts +9 -22
  58. package/dist/server/server/agent/providers/codex-app-server-agent.d.ts.map +1 -1
  59. package/dist/server/server/agent/providers/codex-app-server-agent.js +39 -171
  60. package/dist/server/server/agent/providers/codex-app-server-agent.js.map +1 -1
  61. package/dist/server/server/agent/providers/opencode/runtime.d.ts +27 -0
  62. package/dist/server/server/agent/providers/opencode/runtime.d.ts.map +1 -0
  63. package/dist/server/server/agent/providers/opencode/runtime.js +5 -0
  64. package/dist/server/server/agent/providers/opencode/runtime.js.map +1 -0
  65. package/dist/server/server/agent/providers/opencode/server-manager.d.ts +55 -0
  66. package/dist/server/server/agent/providers/opencode/server-manager.d.ts.map +1 -0
  67. package/dist/server/server/agent/providers/opencode/server-manager.js +255 -0
  68. package/dist/server/server/agent/providers/opencode/server-manager.js.map +1 -0
  69. package/dist/server/server/agent/providers/opencode/test-server-manager.d.ts +22 -0
  70. package/dist/server/server/agent/providers/opencode/test-server-manager.d.ts.map +1 -0
  71. package/dist/server/server/agent/providers/opencode/test-server-manager.js +28 -0
  72. package/dist/server/server/agent/providers/opencode/test-server-manager.js.map +1 -0
  73. package/dist/server/server/agent/providers/opencode/test-utils/test-opencode-runtime.d.ts +75 -0
  74. package/dist/server/server/agent/providers/opencode/test-utils/test-opencode-runtime.d.ts.map +1 -0
  75. package/dist/server/server/agent/providers/opencode/test-utils/test-opencode-runtime.js +169 -0
  76. package/dist/server/server/agent/providers/opencode/test-utils/test-opencode-runtime.js.map +1 -0
  77. package/dist/server/server/agent/providers/opencode-agent.d.ts +7 -36
  78. package/dist/server/server/agent/providers/opencode-agent.d.ts.map +1 -1
  79. package/dist/server/server/agent/providers/opencode-agent.js +199 -261
  80. package/dist/server/server/agent/providers/opencode-agent.js.map +1 -1
  81. package/dist/server/server/agent/providers/pi-direct-agent.d.ts +8 -3
  82. package/dist/server/server/agent/providers/pi-direct-agent.d.ts.map +1 -1
  83. package/dist/server/server/agent/providers/pi-direct-agent.js +44 -34
  84. package/dist/server/server/agent/providers/pi-direct-agent.js.map +1 -1
  85. package/dist/server/server/chat/chat-mentions.d.ts +24 -8
  86. package/dist/server/server/chat/chat-mentions.d.ts.map +1 -1
  87. package/dist/server/server/chat/chat-mentions.js +77 -35
  88. package/dist/server/server/chat/chat-mentions.js.map +1 -1
  89. package/dist/server/server/chat/chat-service.d.ts +4 -0
  90. package/dist/server/server/chat/chat-service.d.ts.map +1 -1
  91. package/dist/server/server/chat/chat-service.js +9 -0
  92. package/dist/server/server/chat/chat-service.js.map +1 -1
  93. package/dist/server/server/checkout/status-projection.d.ts +19 -0
  94. package/dist/server/server/checkout/status-projection.d.ts.map +1 -0
  95. package/dist/server/server/checkout/status-projection.js +98 -0
  96. package/dist/server/server/checkout/status-projection.js.map +1 -0
  97. package/dist/server/server/daemon-keypair.d.ts.map +1 -1
  98. package/dist/server/server/daemon-keypair.js +4 -2
  99. package/dist/server/server/daemon-keypair.js.map +1 -1
  100. package/dist/server/server/exports.d.ts +1 -0
  101. package/dist/server/server/exports.d.ts.map +1 -1
  102. package/dist/server/server/exports.js +1 -0
  103. package/dist/server/server/exports.js.map +1 -1
  104. package/dist/server/server/paseo-home.js +2 -2
  105. package/dist/server/server/paseo-home.js.map +1 -1
  106. package/dist/server/server/paseo-worktree-service.d.ts +2 -1
  107. package/dist/server/server/paseo-worktree-service.d.ts.map +1 -1
  108. package/dist/server/server/paseo-worktree-service.js +30 -3
  109. package/dist/server/server/paseo-worktree-service.js.map +1 -1
  110. package/dist/server/server/persisted-config.d.ts.map +1 -1
  111. package/dist/server/server/persisted-config.js +5 -4
  112. package/dist/server/server/persisted-config.js.map +1 -1
  113. package/dist/server/server/private-files.d.ts +7 -0
  114. package/dist/server/server/private-files.d.ts.map +1 -0
  115. package/dist/server/server/private-files.js +42 -0
  116. package/dist/server/server/private-files.js.map +1 -0
  117. package/dist/server/server/push/token-store.d.ts.map +1 -1
  118. package/dist/server/server/push/token-store.js +4 -6
  119. package/dist/server/server/push/token-store.js.map +1 -1
  120. package/dist/server/server/schedule/service.d.ts +1 -1
  121. package/dist/server/server/schedule/service.d.ts.map +1 -1
  122. package/dist/server/server/schedule/service.js +14 -11
  123. package/dist/server/server/schedule/service.js.map +1 -1
  124. package/dist/server/server/server-id.d.ts.map +1 -1
  125. package/dist/server/server/server-id.js +8 -3
  126. package/dist/server/server/server-id.js.map +1 -1
  127. package/dist/server/server/session.d.ts +3 -17
  128. package/dist/server/server/session.d.ts.map +1 -1
  129. package/dist/server/server/session.js +174 -254
  130. package/dist/server/server/session.js.map +1 -1
  131. package/dist/server/server/workspace-directory.d.ts +0 -2
  132. package/dist/server/server/workspace-directory.d.ts.map +1 -1
  133. package/dist/server/server/workspace-directory.js +9 -26
  134. package/dist/server/server/workspace-directory.js.map +1 -1
  135. package/dist/server/server/workspace-git-service.d.ts +2 -1
  136. package/dist/server/server/workspace-git-service.d.ts.map +1 -1
  137. package/dist/server/server/workspace-git-service.js +1 -1
  138. package/dist/server/server/workspace-git-service.js.map +1 -1
  139. package/dist/server/server/worktree-branch-name-generator.d.ts +2 -0
  140. package/dist/server/server/worktree-branch-name-generator.d.ts.map +1 -1
  141. package/dist/server/server/worktree-branch-name-generator.js +18 -11
  142. package/dist/server/server/worktree-branch-name-generator.js.map +1 -1
  143. package/dist/server/services/github-service.d.ts +13 -0
  144. package/dist/server/services/github-service.d.ts.map +1 -1
  145. package/dist/server/services/github-service.js +12 -2
  146. package/dist/server/services/github-service.js.map +1 -1
  147. package/dist/server/shared/agent-labels.d.ts +2 -0
  148. package/dist/server/shared/agent-labels.d.ts.map +1 -0
  149. package/dist/server/shared/agent-labels.js +2 -0
  150. package/dist/server/shared/agent-labels.js.map +1 -0
  151. package/dist/server/shared/agent-state-bucket.d.ts +13 -0
  152. package/dist/server/shared/agent-state-bucket.d.ts.map +1 -0
  153. package/dist/server/shared/agent-state-bucket.js +41 -0
  154. package/dist/server/shared/agent-state-bucket.js.map +1 -0
  155. package/dist/server/shared/git-remote.d.ts +16 -0
  156. package/dist/server/shared/git-remote.d.ts.map +1 -0
  157. package/dist/server/shared/git-remote.js +72 -0
  158. package/dist/server/shared/git-remote.js.map +1 -0
  159. package/dist/server/shared/importable-providers.d.ts +7 -0
  160. package/dist/server/shared/importable-providers.d.ts.map +1 -0
  161. package/dist/server/shared/importable-providers.js +7 -0
  162. package/dist/server/shared/importable-providers.js.map +1 -0
  163. package/dist/server/shared/messages.d.ts +7148 -690
  164. package/dist/server/shared/messages.d.ts.map +1 -1
  165. package/dist/server/shared/messages.js +56 -4
  166. package/dist/server/shared/messages.js.map +1 -1
  167. package/dist/server/utils/build-metadata-prompt.d.ts +14 -0
  168. package/dist/server/utils/build-metadata-prompt.d.ts.map +1 -0
  169. package/dist/server/utils/build-metadata-prompt.js +28 -0
  170. package/dist/server/utils/build-metadata-prompt.js.map +1 -0
  171. package/dist/server/utils/checkout-git.d.ts +3 -1
  172. package/dist/server/utils/checkout-git.d.ts.map +1 -1
  173. package/dist/server/utils/checkout-git.js +3 -0
  174. package/dist/server/utils/checkout-git.js.map +1 -1
  175. package/dist/server/utils/github-remote.d.ts +3 -7
  176. package/dist/server/utils/github-remote.d.ts.map +1 -1
  177. package/dist/server/utils/github-remote.js +4 -70
  178. package/dist/server/utils/github-remote.js.map +1 -1
  179. package/dist/server/utils/paseo-config-schema.d.ts +625 -0
  180. package/dist/server/utils/paseo-config-schema.d.ts.map +1 -1
  181. package/dist/server/utils/paseo-config-schema.js +17 -0
  182. package/dist/server/utils/paseo-config-schema.js.map +1 -1
  183. package/dist/server/utils/wrap-user-instructions.d.ts +2 -0
  184. package/dist/server/utils/wrap-user-instructions.d.ts.map +1 -0
  185. package/dist/server/utils/wrap-user-instructions.js +13 -0
  186. package/dist/server/utils/wrap-user-instructions.js.map +1 -0
  187. package/dist/src/server/paseo-home.js +2 -2
  188. package/dist/src/server/paseo-home.js.map +1 -1
  189. package/dist/src/server/persisted-config.js +5 -4
  190. package/dist/src/server/persisted-config.js.map +1 -1
  191. package/dist/src/server/private-files.js +42 -0
  192. package/dist/src/server/private-files.js.map +1 -0
  193. package/dist/src/shared/messages.js +56 -4
  194. package/dist/src/shared/messages.js.map +1 -1
  195. package/dist/src/utils/paseo-config-schema.js +17 -0
  196. package/dist/src/utils/paseo-config-schema.js.map +1 -1
  197. package/package.json +4 -4
@@ -0,0 +1,52 @@
1
+ import type { z } from "zod";
2
+ import type { Logger } from "pino";
3
+ import type { ProviderDefinition } from "./provider-registry.js";
4
+ import type { AgentManager, ManagedAgent } from "./agent-manager.js";
5
+ import type { AgentStorage } from "./agent-storage.js";
6
+ import { scheduleAgentMetadataGeneration } from "./agent-metadata-generator.js";
7
+ import type { FetchRecentProviderSessionsRequestMessage, ImportAgentRequestMessageSchema, RecentProviderSessionDescriptorPayload } from "../../shared/messages.js";
8
+ import type { WorkspaceGitService } from "../workspace-git-service.js";
9
+ type ImportAgentRequestMessage = z.infer<typeof ImportAgentRequestMessageSchema>;
10
+ export interface NormalizedImportAgentRequest {
11
+ provider: string;
12
+ providerHandleId: string;
13
+ cwd?: string;
14
+ labels?: Record<string, string>;
15
+ requestId: string;
16
+ }
17
+ export declare class ImportSessionsRequestError extends Error {
18
+ readonly code: string;
19
+ constructor(code: string, message: string);
20
+ }
21
+ export interface ListImportableProviderSessionsInput {
22
+ request: FetchRecentProviderSessionsRequestMessage;
23
+ agentManager: Pick<AgentManager, "listAgents" | "listImportablePersistedAgents">;
24
+ agentStorage: Pick<AgentStorage, "list">;
25
+ providerRegistry: Record<string, Pick<ProviderDefinition, "label"> | undefined>;
26
+ }
27
+ export interface ListImportableProviderSessionsResult {
28
+ entries: RecentProviderSessionDescriptorPayload[];
29
+ filteredAlreadyImportedCount: number;
30
+ }
31
+ export interface ImportProviderSessionInput {
32
+ request: NormalizedImportAgentRequest;
33
+ agentManager: AgentManager;
34
+ agentStorage: AgentStorage;
35
+ workspaceGitService?: Pick<WorkspaceGitService, "resolveRepoRoot">;
36
+ paseoHome?: string;
37
+ logger: Logger;
38
+ deps?: {
39
+ scheduleAgentMetadataGeneration?: typeof scheduleAgentMetadataGeneration;
40
+ };
41
+ }
42
+ export interface ImportProviderSessionResult {
43
+ snapshot: ManagedAgent;
44
+ timelineSize: number;
45
+ }
46
+ export declare function normalizeImportAgentRequest(msg: ImportAgentRequestMessage): NormalizedImportAgentRequest | {
47
+ error: string;
48
+ };
49
+ export declare function listImportableProviderSessions(input: ListImportableProviderSessionsInput): Promise<ListImportableProviderSessionsResult>;
50
+ export declare function importProviderSession(input: ImportProviderSessionInput): Promise<ImportProviderSessionResult>;
51
+ export {};
52
+ //# sourceMappingURL=import-sessions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-sessions.d.ts","sourceRoot":"","sources":["../../../../src/server/agent/import-sessions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAqB,MAAM,oBAAoB,CAAC;AAQ1E,OAAO,EAAE,+BAA+B,EAAE,MAAM,+BAA+B,CAAC;AAIhF,OAAO,KAAK,EACV,yCAAyC,EACzC,+BAA+B,EAC/B,sCAAsC,EACvC,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAEvE,KAAK,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AAKjF,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,0BAA2B,SAAQ,KAAK;IAEjD,QAAQ,CAAC,IAAI,EAAE,MAAM;gBAAZ,IAAI,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM;CAKlB;AAED,MAAM,WAAW,mCAAmC;IAClD,OAAO,EAAE,yCAAyC,CAAC;IACnD,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,YAAY,GAAG,+BAA+B,CAAC,CAAC;IACjF,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACzC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,CAAC;CACjF;AAED,MAAM,WAAW,oCAAoC;IACnD,OAAO,EAAE,sCAAsC,EAAE,CAAC;IAClD,4BAA4B,EAAE,MAAM,CAAC;CACtC;AAED,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,4BAA4B,CAAC;IACtC,YAAY,EAAE,YAAY,CAAC;IAC3B,YAAY,EAAE,YAAY,CAAC;IAC3B,mBAAmB,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;IACnE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE;QACL,+BAA+B,CAAC,EAAE,OAAO,+BAA+B,CAAC;KAC1E,CAAC;CACH;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,EAAE,YAAY,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;CACtB;AAOD,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,yBAAyB,GAC7B,4BAA4B,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAalD;AAED,wBAAsB,8BAA8B,CAClD,KAAK,EAAE,mCAAmC,GACzC,OAAO,CAAC,oCAAoC,CAAC,CA2C/C;AAED,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,0BAA0B,GAChC,OAAO,CAAC,2BAA2B,CAAC,CAuCtC"}
@@ -0,0 +1,208 @@
1
+ import { scheduleAgentMetadataGeneration } from "./agent-metadata-generator.js";
2
+ import { resolveCreateAgentTitles } from "./create-agent-title.js";
3
+ import { unarchiveAgentState } from "./agent-prompt.js";
4
+ import { toRecentProviderSessionDescriptorPayload } from "./agent-projections.js";
5
+ const METADATA_GENERATION_PROMPT_PREFIX = "Generate metadata for a coding agent based on the user prompt.";
6
+ export class ImportSessionsRequestError extends Error {
7
+ constructor(code, message) {
8
+ super(message);
9
+ this.code = code;
10
+ this.name = "ImportSessionsRequestError";
11
+ }
12
+ }
13
+ // COMPAT(import-agent-request-v1): accept legacy {provider, sessionId} shape
14
+ // alongside the new {providerId, providerHandleId} shape. Old clients
15
+ // (< target daemon floor) send the legacy fields. Drop the fallbacks and the
16
+ // .optional() in messages.ts when the supported client floor is >= the daemon
17
+ // version that ships the new shape (target: 2026-11-08).
18
+ export function normalizeImportAgentRequest(msg) {
19
+ const provider = msg.providerId ?? msg.provider;
20
+ const providerHandleId = msg.providerHandleId ?? msg.sessionId;
21
+ if (!provider || !providerHandleId) {
22
+ return { error: "Import requires providerId and providerHandleId" };
23
+ }
24
+ return {
25
+ provider,
26
+ providerHandleId,
27
+ cwd: msg.cwd,
28
+ labels: msg.labels,
29
+ requestId: msg.requestId,
30
+ };
31
+ }
32
+ export async function listImportableProviderSessions(input) {
33
+ const { request, agentManager, agentStorage, providerRegistry } = input;
34
+ const limit = request.limit ?? 20;
35
+ const sinceTimestamp = parseRecentProviderSessionsSince(request.since);
36
+ const providerFilter = request.providers ? new Set(request.providers) : undefined;
37
+ const importedHandles = await collectImportedProviderSessionHandles(agentManager, agentStorage);
38
+ const descriptors = await agentManager.listImportablePersistedAgents({
39
+ limit: 200,
40
+ providerFilter,
41
+ cwd: request.cwd,
42
+ });
43
+ let filteredAlreadyImportedCount = 0;
44
+ const candidates = [];
45
+ for (const descriptor of descriptors) {
46
+ if (request.cwd && descriptor.cwd !== request.cwd) {
47
+ continue;
48
+ }
49
+ if (sinceTimestamp !== null && descriptor.lastActivityAt.getTime() < sinceTimestamp) {
50
+ continue;
51
+ }
52
+ if (isMetadataGenerationDescriptor(descriptor)) {
53
+ continue;
54
+ }
55
+ const providerHandleId = descriptor.persistence.nativeHandle ?? descriptor.persistence.sessionId;
56
+ if (importedHandles.has(toProviderSessionHandleKey(descriptor.provider, providerHandleId))) {
57
+ filteredAlreadyImportedCount += 1;
58
+ continue;
59
+ }
60
+ candidates.push(descriptor);
61
+ }
62
+ const entries = candidates
63
+ .sort((a, b) => b.lastActivityAt.getTime() - a.lastActivityAt.getTime())
64
+ .slice(0, limit)
65
+ .map((descriptor) => toRecentProviderSessionDescriptorPayload(descriptor, {
66
+ providerLabel: providerRegistry[descriptor.provider]?.label ?? descriptor.provider,
67
+ }));
68
+ return { entries, filteredAlreadyImportedCount };
69
+ }
70
+ export async function importProviderSession(input) {
71
+ const { provider, providerHandleId, cwd, labels } = input.request;
72
+ const descriptor = await input.agentManager.findPersistedAgent(provider, providerHandleId);
73
+ if (!descriptor && provider === "opencode" && !cwd) {
74
+ throw new Error("OpenCode sessions require --cwd when the session cannot be found in persisted agents");
75
+ }
76
+ const handle = descriptor
77
+ ? applyImportCwdOverride(descriptor.persistence, cwd)
78
+ : buildImportPersistenceHandle({ provider, providerHandleId, cwd });
79
+ const overrides = cwd ? { cwd } : undefined;
80
+ await unarchiveAgentByHandle(input.agentStorage, input.agentManager, handle);
81
+ const snapshot = await input.agentManager.resumeAgentFromPersistence(handle, overrides, undefined, {
82
+ labels,
83
+ });
84
+ await unarchiveAgentState(input.agentStorage, input.agentManager, snapshot.id);
85
+ await input.agentManager.hydrateTimelineFromProvider(snapshot.id);
86
+ await applyImportedAgentTitle({
87
+ snapshot,
88
+ agentManager: input.agentManager,
89
+ workspaceGitService: input.workspaceGitService,
90
+ paseoHome: input.paseoHome,
91
+ logger: input.logger,
92
+ scheduleAgentMetadataGeneration: input.deps?.scheduleAgentMetadataGeneration ?? scheduleAgentMetadataGeneration,
93
+ });
94
+ return {
95
+ snapshot,
96
+ timelineSize: input.agentManager.getTimeline(snapshot.id).length,
97
+ };
98
+ }
99
+ async function unarchiveAgentByHandle(agentStorage, agentManager, handle) {
100
+ const records = await agentStorage.list();
101
+ const matched = records.find((record) => record.persistence?.provider === handle.provider &&
102
+ record.persistence?.sessionId === handle.sessionId);
103
+ if (!matched) {
104
+ return;
105
+ }
106
+ await unarchiveAgentState(agentStorage, agentManager, matched.id);
107
+ }
108
+ async function applyImportedAgentTitle(input) {
109
+ const initialPrompt = getFirstUserMessageText(input.agentManager.getTimeline(input.snapshot.id));
110
+ if (!initialPrompt) {
111
+ return;
112
+ }
113
+ const { explicitTitle, provisionalTitle } = resolveCreateAgentTitles({
114
+ configTitle: input.snapshot.config.title,
115
+ initialPrompt,
116
+ });
117
+ if (!explicitTitle && provisionalTitle) {
118
+ await input.agentManager.setTitle(input.snapshot.id, provisionalTitle);
119
+ }
120
+ input.scheduleAgentMetadataGeneration({
121
+ agentManager: input.agentManager,
122
+ agentId: input.snapshot.id,
123
+ cwd: input.snapshot.cwd,
124
+ workspaceGitService: input.workspaceGitService,
125
+ initialPrompt,
126
+ explicitTitle,
127
+ paseoHome: input.paseoHome,
128
+ logger: input.logger,
129
+ });
130
+ }
131
+ function parseRecentProviderSessionsSince(since) {
132
+ if (!since) {
133
+ return null;
134
+ }
135
+ const timestamp = Date.parse(since);
136
+ if (Number.isNaN(timestamp)) {
137
+ throw new ImportSessionsRequestError("invalid_since", "Invalid recent provider sessions since");
138
+ }
139
+ return timestamp;
140
+ }
141
+ function buildImportPersistenceHandle(input) {
142
+ const cwd = input.cwd ?? process.cwd();
143
+ return {
144
+ provider: input.provider,
145
+ sessionId: input.providerHandleId,
146
+ nativeHandle: input.providerHandleId,
147
+ metadata: {
148
+ provider: input.provider,
149
+ cwd,
150
+ },
151
+ };
152
+ }
153
+ function applyImportCwdOverride(handle, cwd) {
154
+ if (!cwd) {
155
+ return handle;
156
+ }
157
+ return {
158
+ ...handle,
159
+ metadata: {
160
+ ...handle.metadata,
161
+ provider: handle.provider,
162
+ cwd,
163
+ },
164
+ };
165
+ }
166
+ function getFirstUserMessageText(timeline) {
167
+ for (const item of timeline) {
168
+ if (item.type !== "user_message") {
169
+ continue;
170
+ }
171
+ const text = item.text.trim();
172
+ if (text) {
173
+ return text;
174
+ }
175
+ }
176
+ return null;
177
+ }
178
+ async function collectImportedProviderSessionHandles(agentManager, agentStorage) {
179
+ const handles = new Set();
180
+ for (const agent of agentManager.listAgents()) {
181
+ collectProviderSessionHandleKeys(handles, agent.provider, agent.persistence);
182
+ }
183
+ for (const record of await agentStorage.list()) {
184
+ collectProviderSessionHandleKeys(handles, record.provider, record.persistence);
185
+ }
186
+ return handles;
187
+ }
188
+ function toProviderSessionHandleKey(provider, providerHandleId) {
189
+ return `${provider}\0${providerHandleId}`;
190
+ }
191
+ function isMetadataGenerationDescriptor(descriptor) {
192
+ for (const item of descriptor.timeline) {
193
+ if (item.type !== "user_message")
194
+ continue;
195
+ return item.text.trimStart().startsWith(METADATA_GENERATION_PROMPT_PREFIX);
196
+ }
197
+ return false;
198
+ }
199
+ function collectProviderSessionHandleKeys(target, provider, persistence) {
200
+ if (!persistence) {
201
+ return;
202
+ }
203
+ target.add(toProviderSessionHandleKey(provider, persistence.sessionId));
204
+ if (persistence.nativeHandle) {
205
+ target.add(toProviderSessionHandleKey(provider, persistence.nativeHandle));
206
+ }
207
+ }
208
+ //# sourceMappingURL=import-sessions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-sessions.js","sourceRoot":"","sources":["../../../../src/server/agent/import-sessions.ts"],"names":[],"mappings":"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"}
@@ -19,7 +19,7 @@ export interface AgentMcpServerOptions {
19
19
  scheduleService?: ScheduleService | null;
20
20
  providerRegistry?: Record<AgentProvider, ProviderDefinition> | null;
21
21
  github?: GitHubService;
22
- workspaceGitService?: Pick<WorkspaceGitService, "getSnapshot" | "listWorktrees">;
22
+ workspaceGitService?: Pick<WorkspaceGitService, "getSnapshot" | "listWorktrees" | "resolveRepoRoot">;
23
23
  archiveWorkspaceRecord?: ArchivePaseoWorktreeDependencies["archiveWorkspaceRecord"];
24
24
  emitWorkspaceUpdatesForWorkspaceIds?: ArchivePaseoWorktreeDependencies["emitWorkspaceUpdatesForWorkspaceIds"];
25
25
  markWorkspaceArchiving?: ArchivePaseoWorktreeDependencies["markWorkspaceArchiving"];
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../../../../src/server/agent/mcp-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAInC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAsB,MAAM,oBAAoB,CAAC;AAe3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAQvD,OAAO,EAGL,KAAK,gCAAgC,EACtC,MAAM,sCAAsC,CAAC;AAG9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,KAAK,EAGV,6BAA6B,EAE9B,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAmBjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAKvE,MAAM,WAAW,qBAAqB;IACpC,YAAY,EAAE,YAAY,CAAC;IAC3B,YAAY,EAAE,YAAY,CAAC;IAC3B,eAAe,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IACzC,gBAAgB,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IACvC,eAAe,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IACzC,gBAAgB,CAAC,EAAE,MAAM,CAAC,aAAa,EAAE,kBAAkB,CAAC,GAAG,IAAI,CAAC;IACpE,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,mBAAmB,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,aAAa,GAAG,eAAe,CAAC,CAAC;IACjF,sBAAsB,CAAC,EAAE,gCAAgC,CAAC,wBAAwB,CAAC,CAAC;IACpF,mCAAmC,CAAC,EAAE,gCAAgC,CAAC,qCAAqC,CAAC,CAAC;IAC9G,sBAAsB,CAAC,EAAE,gCAAgC,CAAC,wBAAwB,CAAC,CAAC;IACpF,uBAAuB,CAAC,EAAE,gCAAgC,CAAC,yBAAyB,CAAC,CAAC;IACtF,kBAAkB,CAAC,EAAE,gCAAgC,CAAC,MAAM,CAAC,CAAC;IAC9D,mBAAmB,CAAC,EAAE,6BAA6B,CAAC;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,iBAAiB,GAAG,IAAI,CAAC;IAC1E,oBAAoB,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,kBAAkB,GAAG,IAAI,CAAC;IAC5E,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB;AAwND,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,SAAS,CAAC,CAytD7F"}
1
+ {"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../../../../src/server/agent/mcp-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAInC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAsB,MAAM,oBAAoB,CAAC;AAe3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAQvD,OAAO,EAGL,KAAK,gCAAgC,EACtC,MAAM,sCAAsC,CAAC;AAG9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAG/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,KAAK,EAGV,6BAA6B,EAE9B,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAiBjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAKvE,MAAM,WAAW,qBAAqB;IACpC,YAAY,EAAE,YAAY,CAAC;IAC3B,YAAY,EAAE,YAAY,CAAC;IAC3B,eAAe,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IACzC,gBAAgB,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IACvC,eAAe,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IACzC,gBAAgB,CAAC,EAAE,MAAM,CAAC,aAAa,EAAE,kBAAkB,CAAC,GAAG,IAAI,CAAC;IACpE,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,mBAAmB,CAAC,EAAE,IAAI,CACxB,mBAAmB,EACnB,aAAa,GAAG,eAAe,GAAG,iBAAiB,CACpD,CAAC;IACF,sBAAsB,CAAC,EAAE,gCAAgC,CAAC,wBAAwB,CAAC,CAAC;IACpF,mCAAmC,CAAC,EAAE,gCAAgC,CAAC,qCAAqC,CAAC,CAAC;IAC9G,sBAAsB,CAAC,EAAE,gCAAgC,CAAC,wBAAwB,CAAC,CAAC;IACpF,uBAAuB,CAAC,EAAE,gCAAgC,CAAC,yBAAyB,CAAC,CAAC;IACtF,kBAAkB,CAAC,EAAE,gCAAgC,CAAC,MAAM,CAAC,CAAC;IAC9D,mBAAmB,CAAC,EAAE,6BAA6B,CAAC;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,iBAAiB,GAAG,IAAI,CAAC;IAC1E,oBAAoB,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,kBAAkB,GAAG,IAAI,CAAC;IAC5E,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB;AAwND,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,SAAS,CAAC,CA+uD7F"}
@@ -13,11 +13,13 @@ import { archivePaseoWorktree, killTerminalsUnderPath, } from "../paseo-worktree
13
13
  import { WaitForAgentTracker } from "./wait-for-agent-tracker.js";
14
14
  import { scheduleAgentMetadataGeneration } from "./agent-metadata-generator.js";
15
15
  import { expandUserPath, isSameOrDescendantPath, resolvePathFromBase } from "../path-utils.js";
16
+ import { PARENT_AGENT_ID_LABEL } from "../../shared/agent-labels.js";
16
17
  import { ScheduleSummarySchema, StoredScheduleSchema } from "../schedule/types.js";
17
18
  import { getAgentProviderDefinition } from "./provider-manifest.js";
18
19
  import { resolveAndValidateCreateAgentMode } from "./create-agent-mode.js";
19
20
  import { resolveSnapshotCwd } from "./provider-snapshot-manager.js";
20
- import { AgentModelSchema, AgentProviderEnum, AgentStatusEnum, ProviderSummarySchema, parseDurationString, resolveRequiredProviderModel, sanitizePermissionRequest, sendPromptToAgent, setupFinishNotification, serializeSnapshotWithMetadata, startAgentRun, toScheduleSummary, waitForAgentWithTimeout, } from "./mcp-shared.js";
21
+ import { AgentModelSchema, AgentProviderEnum, AgentStatusEnum, ProviderSummarySchema, parseDurationString, resolveRequiredProviderModel, sanitizePermissionRequest, serializeSnapshotWithMetadata, toScheduleSummary, waitForAgentWithTimeout, } from "./mcp-shared.js";
22
+ import { sendPromptToAgent, setupFinishNotification, startAgentRun } from "./agent-prompt.js";
21
23
  import { toWorktreeRequestError } from "../worktree-errors.js";
22
24
  import { join } from "node:path";
23
25
  const CLAUDE_TO_CODEX_MODE = {
@@ -423,18 +425,32 @@ export async function createAgentMcpServer(options) {
423
425
  if (options.voiceOnly) {
424
426
  return server;
425
427
  }
426
- const getAvailableModeIds = (provider) => {
428
+ const getProviderModes = (provider) => {
427
429
  const fromRegistry = providerRegistry?.[provider];
428
430
  if (fromRegistry) {
429
- return fromRegistry.modes.map((mode) => mode.id);
431
+ return fromRegistry.modes;
430
432
  }
431
433
  try {
432
- return getAgentProviderDefinition(provider).modes.map((mode) => mode.id);
434
+ return getAgentProviderDefinition(provider).modes;
433
435
  }
434
436
  catch {
435
437
  return undefined;
436
438
  }
437
439
  };
440
+ const getAvailableModeIds = (provider) => {
441
+ return getProviderModes(provider)?.map((mode) => mode.id);
442
+ };
443
+ const getUnattendedModeId = (provider) => {
444
+ return getProviderModes(provider)?.find((mode) => mode.isUnattended)?.id;
445
+ };
446
+ const isParentInUnattendedMode = (provider, modeId) => {
447
+ if (modeId === null)
448
+ return false;
449
+ const modes = getProviderModes(provider);
450
+ if (!modes)
451
+ return false;
452
+ return modes.some((mode) => mode.id === modeId && mode.isUnattended === true);
453
+ };
438
454
  const resolveCallerCreateAgentArgs = (args, parentAgentId) => {
439
455
  const callerArgs = agentToAgentCreateAgentArgsSchema.parse(args);
440
456
  const resolvedProviderModel = resolveRequiredProviderModel(callerArgs.provider);
@@ -452,8 +468,13 @@ export async function createAgentMcpServer(options) {
452
468
  const resolvedMode = resolveAndValidateCreateAgentMode({
453
469
  requestedMode: callerArgs.mode,
454
470
  targetProvider: provider,
455
- parent: { provider: parentAgent.provider, modeId: parentAgent.currentModeId },
471
+ parent: {
472
+ provider: parentAgent.provider,
473
+ modeId: parentAgent.currentModeId,
474
+ isUnattended: isParentInUnattendedMode(parentAgent.provider, parentAgent.currentModeId),
475
+ },
456
476
  availableModes: getAvailableModeIds(provider),
477
+ targetUnattendedMode: getUnattendedModeId(provider),
457
478
  });
458
479
  return {
459
480
  provider,
@@ -478,6 +499,7 @@ export async function createAgentMcpServer(options) {
478
499
  targetProvider: resolvedProviderModel.provider,
479
500
  parent: null,
480
501
  availableModes: getAvailableModeIds(resolvedProviderModel.provider),
502
+ targetUnattendedMode: getUnattendedModeId(resolvedProviderModel.provider),
481
503
  });
482
504
  let resolvedCwd = expandUserPath(cwd);
483
505
  let setupContinuation;
@@ -559,7 +581,7 @@ export async function createAgentMcpServer(options) {
559
581
  const { provider, initialPrompt, background, normalizedTitle, model, thinking, labels, notifyOnFinish, resolvedCwd, resolvedMode, setupContinuation, } = resolved;
560
582
  const childAgentDefaultLabels = callerContext?.childAgentDefaultLabels;
561
583
  const mergedLabels = {
562
- ...(callerAgentId ? { "paseo.parent-agent-id": callerAgentId } : {}),
584
+ ...(callerAgentId ? { [PARENT_AGENT_ID_LABEL]: callerAgentId } : {}),
563
585
  ...childAgentDefaultLabels,
564
586
  ...labels,
565
587
  };
@@ -579,6 +601,7 @@ export async function createAgentMcpServer(options) {
579
601
  agentManager,
580
602
  agentId: snapshot.id,
581
603
  cwd: snapshot.cwd,
604
+ workspaceGitService: options.workspaceGitService,
582
605
  initialPrompt: trimmedPrompt,
583
606
  explicitTitle: snapshot.config.title,
584
607
  paseoHome: options.paseoHome,