@getpaseo/server 0.1.71 → 0.1.73

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 (126) hide show
  1. package/dist/server/server/agent/agent-archive.d.ts +11 -0
  2. package/dist/server/server/agent/agent-archive.d.ts.map +1 -0
  3. package/dist/server/server/agent/agent-archive.js +16 -0
  4. package/dist/server/server/agent/agent-archive.js.map +1 -0
  5. package/dist/server/server/agent/agent-manager.d.ts.map +1 -1
  6. package/dist/server/server/agent/agent-manager.js +3 -23
  7. package/dist/server/server/agent/agent-manager.js.map +1 -1
  8. package/dist/server/server/agent/agent-response-loop.d.ts.map +1 -1
  9. package/dist/server/server/agent/agent-response-loop.js +2 -1
  10. package/dist/server/server/agent/agent-response-loop.js.map +1 -1
  11. package/dist/server/server/agent/create-agent-title.d.ts +8 -0
  12. package/dist/server/server/agent/create-agent-title.d.ts.map +1 -0
  13. package/dist/server/server/agent/create-agent-title.js +29 -0
  14. package/dist/server/server/agent/create-agent-title.js.map +1 -0
  15. package/dist/server/server/agent/import-sessions.d.ts +20 -1
  16. package/dist/server/server/agent/import-sessions.d.ts.map +1 -1
  17. package/dist/server/server/agent/import-sessions.js +101 -0
  18. package/dist/server/server/agent/import-sessions.js.map +1 -1
  19. package/dist/server/server/agent/provider-launch-config.d.ts.map +1 -1
  20. package/dist/server/server/agent/provider-launch-config.js +1 -0
  21. package/dist/server/server/agent/provider-launch-config.js.map +1 -1
  22. package/dist/server/server/agent/provider-registry.d.ts.map +1 -1
  23. package/dist/server/server/agent/provider-registry.js +2 -1
  24. package/dist/server/server/agent/provider-registry.js.map +1 -1
  25. package/dist/server/server/agent/providers/codex/app-server-transport.d.ts +25 -0
  26. package/dist/server/server/agent/providers/codex/app-server-transport.d.ts.map +1 -0
  27. package/dist/server/server/agent/providers/codex/app-server-transport.js +183 -0
  28. package/dist/server/server/agent/providers/codex/app-server-transport.js.map +1 -0
  29. package/dist/server/server/agent/providers/codex/test-utils/fake-app-server.d.ts +31 -0
  30. package/dist/server/server/agent/providers/codex/test-utils/fake-app-server.d.ts.map +1 -0
  31. package/dist/server/server/agent/providers/codex/test-utils/fake-app-server.js +172 -0
  32. package/dist/server/server/agent/providers/codex/test-utils/fake-app-server.js.map +1 -0
  33. package/dist/server/server/agent/providers/codex-app-server-agent.d.ts +1 -21
  34. package/dist/server/server/agent/providers/codex-app-server-agent.d.ts.map +1 -1
  35. package/dist/server/server/agent/providers/codex-app-server-agent.js +2 -171
  36. package/dist/server/server/agent/providers/codex-app-server-agent.js.map +1 -1
  37. package/dist/server/server/agent/providers/opencode/runtime.d.ts +27 -0
  38. package/dist/server/server/agent/providers/opencode/runtime.d.ts.map +1 -0
  39. package/dist/server/server/agent/providers/opencode/runtime.js +5 -0
  40. package/dist/server/server/agent/providers/opencode/runtime.js.map +1 -0
  41. package/dist/server/server/agent/providers/opencode/server-manager.d.ts +55 -0
  42. package/dist/server/server/agent/providers/opencode/server-manager.d.ts.map +1 -0
  43. package/dist/server/server/agent/providers/opencode/server-manager.js +255 -0
  44. package/dist/server/server/agent/providers/opencode/server-manager.js.map +1 -0
  45. package/dist/server/server/agent/providers/opencode/test-server-manager.d.ts +22 -0
  46. package/dist/server/server/agent/providers/opencode/test-server-manager.d.ts.map +1 -0
  47. package/dist/server/server/agent/providers/opencode/test-server-manager.js +28 -0
  48. package/dist/server/server/agent/providers/opencode/test-server-manager.js.map +1 -0
  49. package/dist/server/server/agent/providers/opencode/test-utils/test-opencode-runtime.d.ts +75 -0
  50. package/dist/server/server/agent/providers/opencode/test-utils/test-opencode-runtime.d.ts.map +1 -0
  51. package/dist/server/server/agent/providers/opencode/test-utils/test-opencode-runtime.js +169 -0
  52. package/dist/server/server/agent/providers/opencode/test-utils/test-opencode-runtime.js.map +1 -0
  53. package/dist/server/server/agent/providers/opencode-agent.d.ts +38 -36
  54. package/dist/server/server/agent/providers/opencode-agent.d.ts.map +1 -1
  55. package/dist/server/server/agent/providers/opencode-agent.js +556 -267
  56. package/dist/server/server/agent/providers/opencode-agent.js.map +1 -1
  57. package/dist/server/server/agent/providers/pi-direct-agent.d.ts +8 -3
  58. package/dist/server/server/agent/providers/pi-direct-agent.d.ts.map +1 -1
  59. package/dist/server/server/agent/providers/pi-direct-agent.js +44 -34
  60. package/dist/server/server/agent/providers/pi-direct-agent.js.map +1 -1
  61. package/dist/server/server/bootstrap.d.ts +2 -0
  62. package/dist/server/server/bootstrap.d.ts.map +1 -1
  63. package/dist/server/server/bootstrap.js +45 -8
  64. package/dist/server/server/bootstrap.js.map +1 -1
  65. package/dist/server/server/checkout/status-projection.d.ts +19 -0
  66. package/dist/server/server/checkout/status-projection.d.ts.map +1 -0
  67. package/dist/server/server/checkout/status-projection.js +98 -0
  68. package/dist/server/server/checkout/status-projection.js.map +1 -0
  69. package/dist/server/server/file-explorer/service.d.ts.map +1 -1
  70. package/dist/server/server/file-explorer/service.js +84 -67
  71. package/dist/server/server/file-explorer/service.js.map +1 -1
  72. package/dist/server/server/paseo-worktree-service.d.ts +2 -1
  73. package/dist/server/server/paseo-worktree-service.d.ts.map +1 -1
  74. package/dist/server/server/paseo-worktree-service.js +30 -3
  75. package/dist/server/server/paseo-worktree-service.js.map +1 -1
  76. package/dist/server/server/push/notifications.d.ts +9 -0
  77. package/dist/server/server/push/notifications.d.ts.map +1 -0
  78. package/dist/server/server/push/notifications.js +15 -0
  79. package/dist/server/server/push/notifications.js.map +1 -0
  80. package/dist/server/server/push/push-service.d.ts +1 -2
  81. package/dist/server/server/push/push-service.d.ts.map +1 -1
  82. package/dist/server/server/relay-transport.d.ts +7 -1
  83. package/dist/server/server/relay-transport.d.ts.map +1 -1
  84. package/dist/server/server/relay-transport.js +10 -5
  85. package/dist/server/server/relay-transport.js.map +1 -1
  86. package/dist/server/server/session.d.ts +1 -17
  87. package/dist/server/server/session.d.ts.map +1 -1
  88. package/dist/server/server/session.js +24 -233
  89. package/dist/server/server/session.js.map +1 -1
  90. package/dist/server/server/websocket/runtime-metrics.d.ts +71 -0
  91. package/dist/server/server/websocket/runtime-metrics.d.ts.map +1 -0
  92. package/dist/server/server/websocket/runtime-metrics.js +148 -0
  93. package/dist/server/server/websocket/runtime-metrics.js.map +1 -0
  94. package/dist/server/server/websocket-server.d.ts +4 -21
  95. package/dist/server/server/websocket-server.d.ts.map +1 -1
  96. package/dist/server/server/websocket-server.js +28 -137
  97. package/dist/server/server/websocket-server.js.map +1 -1
  98. package/dist/server/server/workspace-directory.d.ts +0 -2
  99. package/dist/server/server/workspace-directory.d.ts.map +1 -1
  100. package/dist/server/server/workspace-directory.js +9 -26
  101. package/dist/server/server/workspace-directory.js.map +1 -1
  102. package/dist/server/shared/agent-state-bucket.d.ts +13 -0
  103. package/dist/server/shared/agent-state-bucket.d.ts.map +1 -0
  104. package/dist/server/shared/agent-state-bucket.js +41 -0
  105. package/dist/server/shared/agent-state-bucket.js.map +1 -0
  106. package/dist/server/shared/connection-offer.d.ts +6 -6
  107. package/dist/server/shared/connection-offer.js +1 -1
  108. package/dist/server/shared/connection-offer.js.map +1 -1
  109. package/dist/server/shared/git-remote.d.ts +16 -0
  110. package/dist/server/shared/git-remote.d.ts.map +1 -0
  111. package/dist/server/shared/git-remote.js +72 -0
  112. package/dist/server/shared/git-remote.js.map +1 -0
  113. package/dist/server/utils/checkout-git.d.ts +1 -0
  114. package/dist/server/utils/checkout-git.d.ts.map +1 -1
  115. package/dist/server/utils/checkout-git.js +3 -0
  116. package/dist/server/utils/checkout-git.js.map +1 -1
  117. package/dist/server/utils/github-remote.d.ts +3 -7
  118. package/dist/server/utils/github-remote.d.ts.map +1 -1
  119. package/dist/server/utils/github-remote.js +4 -70
  120. package/dist/server/utils/github-remote.js.map +1 -1
  121. package/dist/server/utils/run-git-command.d.ts.map +1 -1
  122. package/dist/server/utils/run-git-command.js +1 -0
  123. package/dist/server/utils/run-git-command.js.map +1 -1
  124. package/dist/src/server/agent/provider-launch-config.js +1 -0
  125. package/dist/src/server/agent/provider-launch-config.js.map +1 -1
  126. package/package.json +5 -5
@@ -0,0 +1,98 @@
1
+ export function buildCheckoutStatusPayloadFromSnapshot({ cwd, requestId, snapshot, }) {
2
+ if (!snapshot.git.isGit) {
3
+ return {
4
+ cwd,
5
+ isGit: false,
6
+ repoRoot: null,
7
+ currentBranch: null,
8
+ isDirty: null,
9
+ baseRef: null,
10
+ aheadBehind: null,
11
+ aheadOfOrigin: null,
12
+ behindOfOrigin: null,
13
+ hasRemote: false,
14
+ remoteUrl: null,
15
+ isPaseoOwnedWorktree: false,
16
+ error: null,
17
+ requestId,
18
+ };
19
+ }
20
+ if (snapshot.git.repoRoot === null || snapshot.git.isDirty === null) {
21
+ throw new Error("Workspace git snapshot is missing required checkout status fields");
22
+ }
23
+ if (snapshot.git.isPaseoOwnedWorktree) {
24
+ if (snapshot.git.mainRepoRoot === null || snapshot.git.baseRef === null) {
25
+ throw new Error("Workspace git snapshot is missing required worktree status fields");
26
+ }
27
+ return {
28
+ cwd,
29
+ isGit: true,
30
+ repoRoot: snapshot.git.repoRoot,
31
+ mainRepoRoot: snapshot.git.mainRepoRoot,
32
+ currentBranch: snapshot.git.currentBranch ?? null,
33
+ isDirty: snapshot.git.isDirty,
34
+ baseRef: snapshot.git.baseRef,
35
+ aheadBehind: snapshot.git.aheadBehind ?? null,
36
+ aheadOfOrigin: snapshot.git.aheadOfOrigin ?? null,
37
+ behindOfOrigin: snapshot.git.behindOfOrigin ?? null,
38
+ hasRemote: snapshot.git.hasRemote,
39
+ remoteUrl: snapshot.git.remoteUrl,
40
+ isPaseoOwnedWorktree: true,
41
+ error: null,
42
+ requestId,
43
+ };
44
+ }
45
+ return {
46
+ cwd,
47
+ isGit: true,
48
+ repoRoot: snapshot.git.repoRoot,
49
+ mainRepoRoot: snapshot.git.mainRepoRoot,
50
+ currentBranch: snapshot.git.currentBranch ?? null,
51
+ isDirty: snapshot.git.isDirty,
52
+ baseRef: snapshot.git.baseRef ?? null,
53
+ aheadBehind: snapshot.git.aheadBehind ?? null,
54
+ aheadOfOrigin: snapshot.git.aheadOfOrigin ?? null,
55
+ behindOfOrigin: snapshot.git.behindOfOrigin ?? null,
56
+ hasRemote: snapshot.git.hasRemote,
57
+ remoteUrl: snapshot.git.remoteUrl,
58
+ isPaseoOwnedWorktree: false,
59
+ error: null,
60
+ requestId,
61
+ };
62
+ }
63
+ export function buildCheckoutPrStatusPayloadFromSnapshot({ cwd, requestId, snapshot, }) {
64
+ return {
65
+ cwd,
66
+ status: normalizeCheckoutPrStatusPayload(snapshot.github.pullRequest),
67
+ githubFeaturesEnabled: snapshot.github.featuresEnabled,
68
+ error: snapshot.github.error
69
+ ? {
70
+ code: "UNKNOWN",
71
+ message: snapshot.github.error.message,
72
+ }
73
+ : null,
74
+ requestId,
75
+ };
76
+ }
77
+ export function normalizeCheckoutPrStatusPayload(status) {
78
+ if (!status) {
79
+ return null;
80
+ }
81
+ return {
82
+ number: status.number,
83
+ url: status.url,
84
+ title: status.title,
85
+ state: status.state,
86
+ repoOwner: status.repoOwner,
87
+ repoName: status.repoName,
88
+ baseRefName: status.baseRefName,
89
+ headRefName: status.headRefName,
90
+ isMerged: status.isMerged,
91
+ isDraft: status.isDraft ?? false,
92
+ mergeable: status.mergeable ?? "UNKNOWN",
93
+ checks: status.checks ?? [],
94
+ checksStatus: status.checksStatus,
95
+ reviewDecision: status.reviewDecision,
96
+ };
97
+ }
98
+ //# sourceMappingURL=status-projection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status-projection.js","sourceRoot":"","sources":["../../../../src/server/checkout/status-projection.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../../src/server/file-explorer/service.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,WAAW,CAAC;AACrD,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAC3D,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE3D,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,iBAAiB,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,iBAAiB,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,gBAAgB,CAAC;IACvB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,gBAAgB,CAAC;IACvB,QAAQ,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC7B,KAAK,EAAE,UAAU,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB;AA6BD,wBAAsB,oBAAoB,CAAC,EACzC,IAAI,EACJ,YAAkB,GACnB,EAAE,mBAAmB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CA6CtD;AAED,wBAAsB,gBAAgB,CAAC,EACrC,IAAI,EACJ,YAAY,GACb,EAAE,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAmC5C;AAED,wBAAsB,qBAAqB,CAAC,EAC1C,IAAI,EACJ,YAAY,GACb,EAAE,cAAc,GAAG,OAAO,CAAC,qBAAqB,CAAC,CA4CjD;AAED,wBAAsB,uBAAuB,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,cAAc,GAAG,OAAO,CAAC;IAC7F,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC,CAkCD"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../../src/server/file-explorer/service.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,WAAW,CAAC;AACrD,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAC3D,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE3D,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,iBAAiB,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,iBAAiB,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,gBAAgB,CAAC;IACvB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,gBAAgB,CAAC;IACvB,QAAQ,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC7B,KAAK,EAAE,UAAU,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB;AAsCD,wBAAsB,oBAAoB,CAAC,EACzC,IAAI,EACJ,YAAkB,GACnB,EAAE,mBAAmB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CA6CtD;AAED,wBAAsB,gBAAgB,CAAC,EACrC,IAAI,EACJ,YAAY,GACb,EAAE,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAmC5C;AAED,wBAAsB,qBAAqB,CAAC,EAC1C,IAAI,EACJ,YAAY,GACb,EAAE,cAAc,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAiDjD;AAED,wBAAsB,uBAAuB,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,cAAc,GAAG,OAAO,CAAC;IAC7F,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC,CAkCD"}
@@ -1,10 +1,13 @@
1
- import { promises as fs } from "fs";
1
+ import { constants, promises as fs } from "fs";
2
2
  import path from "path";
3
3
  import { resolvePathFromBase } from "../path-utils.js";
4
4
  const TEXT_MIME_TYPES = {
5
5
  ".json": "application/json",
6
6
  };
7
7
  const DEFAULT_TEXT_MIME_TYPE = "text/plain";
8
+ const FILE_TYPE_SAMPLE_BYTES = 8192;
9
+ const READ_FILE_OPEN_FLAGS = process.platform === "win32" ? constants.O_RDONLY : constants.O_RDONLY | constants.O_NOFOLLOW;
10
+ const ACCESS_OUTSIDE_WORKSPACE_MESSAGE = "Access outside of workspace is not allowed";
8
11
  const IMAGE_MIME_TYPES = {
9
12
  ".png": "image/png",
10
13
  ".jpg": "image/jpeg",
@@ -15,13 +18,13 @@ const IMAGE_MIME_TYPES = {
15
18
  };
16
19
  export async function listDirectoryEntries({ root, relativePath = ".", }) {
17
20
  const directoryPath = await resolveScopedPath({ root, relativePath });
18
- const stats = await fs.stat(directoryPath);
21
+ const stats = await fs.stat(directoryPath.resolvedPath);
19
22
  if (!stats.isDirectory()) {
20
23
  throw new Error("Requested path is not a directory");
21
24
  }
22
- const dirents = await fs.readdir(directoryPath, { withFileTypes: true });
25
+ const dirents = await fs.readdir(directoryPath.resolvedPath, { withFileTypes: true });
23
26
  const entriesWithNulls = await Promise.all(dirents.map(async (dirent) => {
24
- const targetPath = path.join(directoryPath, dirent.name);
27
+ const targetPath = path.join(directoryPath.requestedPath, dirent.name);
25
28
  const kind = dirent.isDirectory() ? "directory" : "file";
26
29
  try {
27
30
  return await buildEntryPayload({
@@ -34,7 +37,7 @@ export async function listDirectoryEntries({ root, relativePath = ".", }) {
34
37
  catch (error) {
35
38
  // Directories can contain dangling links (e.g. AGENTS.md -> CLAUDE.md).
36
39
  // Skip entries whose targets disappeared instead of failing the whole listing.
37
- if (isMissingEntryError(error)) {
40
+ if (isMissingEntryError(error) || isOutsideWorkspaceError(error)) {
38
41
  return null;
39
42
  }
40
43
  throw error;
@@ -49,7 +52,7 @@ export async function listDirectoryEntries({ root, relativePath = ".", }) {
49
52
  return a.name.localeCompare(b.name);
50
53
  });
51
54
  return {
52
- path: normalizeRelativePath({ root, targetPath: directoryPath }),
55
+ path: normalizeRelativePath({ root, targetPath: directoryPath.requestedPath }),
53
56
  entries,
54
57
  };
55
58
  }
@@ -88,103 +91,114 @@ export async function readExplorerFile({ root, relativePath, }) {
88
91
  }
89
92
  export async function readExplorerFileBytes({ root, relativePath, }) {
90
93
  const filePath = await resolveScopedPath({ root, relativePath });
91
- const stats = await fs.stat(filePath);
92
- if (!stats.isFile()) {
93
- throw new Error("Requested path is not a file");
94
- }
95
- const ext = path.extname(filePath).toLowerCase();
96
- const basePayload = {
97
- path: normalizeRelativePath({ root, targetPath: filePath }),
98
- size: stats.size,
99
- modifiedAt: stats.mtime.toISOString(),
100
- };
101
- if (ext in IMAGE_MIME_TYPES) {
102
- const buffer = await fs.readFile(filePath);
103
- return {
104
- ...basePayload,
105
- kind: "image",
106
- encoding: "binary",
107
- bytes: buffer,
108
- mimeType: IMAGE_MIME_TYPES[ext],
94
+ const handle = await openFileForRead(filePath.resolvedPath);
95
+ try {
96
+ const stats = await handle.stat();
97
+ if (!stats.isFile()) {
98
+ throw new Error("Requested path is not a file");
99
+ }
100
+ const ext = path.extname(filePath.resolvedPath).toLowerCase();
101
+ const basePayload = {
102
+ path: normalizeRelativePath({ root, targetPath: filePath.requestedPath }),
103
+ size: stats.size,
104
+ modifiedAt: stats.mtime.toISOString(),
109
105
  };
110
- }
111
- const buffer = await fs.readFile(filePath);
112
- if (isLikelyBinary(buffer)) {
106
+ const buffer = await handle.readFile();
107
+ if (ext in IMAGE_MIME_TYPES) {
108
+ return {
109
+ ...basePayload,
110
+ kind: "image",
111
+ encoding: "binary",
112
+ bytes: buffer,
113
+ mimeType: IMAGE_MIME_TYPES[ext],
114
+ };
115
+ }
116
+ if (isLikelyBinary(buffer)) {
117
+ return {
118
+ ...basePayload,
119
+ kind: "binary",
120
+ encoding: "binary",
121
+ bytes: buffer,
122
+ mimeType: "application/octet-stream",
123
+ };
124
+ }
113
125
  return {
114
126
  ...basePayload,
115
- kind: "binary",
116
- encoding: "binary",
127
+ kind: "text",
128
+ encoding: "utf-8",
117
129
  bytes: buffer,
118
- mimeType: "application/octet-stream",
130
+ mimeType: textMimeTypeForExtension(ext),
119
131
  };
120
132
  }
121
- return {
122
- ...basePayload,
123
- kind: "text",
124
- encoding: "utf-8",
125
- bytes: buffer,
126
- mimeType: textMimeTypeForExtension(ext),
127
- };
133
+ finally {
134
+ await handle.close();
135
+ }
128
136
  }
129
137
  export async function getDownloadableFileInfo({ root, relativePath }) {
130
138
  const filePath = await resolveScopedPath({ root, relativePath });
131
- const stats = await fs.stat(filePath);
132
- if (!stats.isFile()) {
133
- throw new Error("Requested path is not a file");
134
- }
135
- const ext = path.extname(filePath).toLowerCase();
136
- let mimeType = "application/octet-stream";
137
- if (ext in IMAGE_MIME_TYPES) {
138
- mimeType = IMAGE_MIME_TYPES[ext];
139
- }
140
- else {
141
- // Read only a small prefix to classify likely text vs binary.
142
- const handle = await fs.open(filePath, "r");
143
- const sample = Buffer.alloc(8192);
144
- try {
139
+ const handle = await openFileForRead(filePath.resolvedPath);
140
+ try {
141
+ const stats = await handle.stat();
142
+ if (!stats.isFile()) {
143
+ throw new Error("Requested path is not a file");
144
+ }
145
+ const ext = path.extname(filePath.resolvedPath).toLowerCase();
146
+ let mimeType = "application/octet-stream";
147
+ if (ext in IMAGE_MIME_TYPES) {
148
+ mimeType = IMAGE_MIME_TYPES[ext];
149
+ }
150
+ else {
151
+ const sample = Buffer.alloc(FILE_TYPE_SAMPLE_BYTES);
145
152
  const { bytesRead } = await handle.read(sample, 0, sample.length, 0);
146
153
  const chunk = bytesRead < sample.length ? sample.subarray(0, bytesRead) : sample;
147
154
  if (!isLikelyBinary(chunk)) {
148
155
  mimeType = textMimeTypeForExtension(ext);
149
156
  }
150
157
  }
151
- finally {
152
- await handle.close();
153
- }
158
+ return {
159
+ path: normalizeRelativePath({ root, targetPath: filePath.requestedPath }),
160
+ absolutePath: filePath.resolvedPath,
161
+ fileName: path.basename(filePath.requestedPath),
162
+ mimeType,
163
+ size: stats.size,
164
+ };
165
+ }
166
+ finally {
167
+ await handle.close();
154
168
  }
155
- return {
156
- path: normalizeRelativePath({ root, targetPath: filePath }),
157
- absolutePath: filePath,
158
- fileName: path.basename(filePath),
159
- mimeType,
160
- size: stats.size,
161
- };
162
169
  }
163
- async function resolveScopedPath({ root, relativePath = "." }) {
170
+ async function resolveScopedPath({ root, relativePath = ".", }) {
164
171
  const normalizedRoot = path.resolve(root);
165
172
  const requestedPath = resolvePathFromBase(normalizedRoot, relativePath);
166
173
  const relative = path.relative(normalizedRoot, requestedPath);
167
174
  if (relative !== "" && (relative.startsWith("..") || path.isAbsolute(relative))) {
168
- throw new Error("Access outside of workspace is not allowed");
175
+ throw new Error(ACCESS_OUTSIDE_WORKSPACE_MESSAGE);
169
176
  }
170
177
  const realRoot = await fs.realpath(normalizedRoot);
171
178
  try {
172
179
  const realPath = await fs.realpath(requestedPath);
173
180
  const realRelative = path.relative(realRoot, realPath);
174
181
  if (realRelative !== "" && (realRelative.startsWith("..") || path.isAbsolute(realRelative))) {
175
- throw new Error("Access outside of workspace is not allowed");
182
+ throw new Error(ACCESS_OUTSIDE_WORKSPACE_MESSAGE);
176
183
  }
177
- return requestedPath;
184
+ return { requestedPath, resolvedPath: realPath };
178
185
  }
179
186
  catch (error) {
180
187
  if (isMissingEntryError(error)) {
181
- return requestedPath;
188
+ return { requestedPath, resolvedPath: requestedPath };
182
189
  }
183
190
  throw error;
184
191
  }
185
192
  }
193
+ async function openFileForRead(filePath) {
194
+ return fs.open(filePath, READ_FILE_OPEN_FLAGS);
195
+ }
186
196
  async function buildEntryPayload({ root, targetPath, name, kind, }) {
187
- const stats = await fs.stat(targetPath);
197
+ const entryPath = await resolveScopedPath({
198
+ root,
199
+ relativePath: normalizeRelativePath({ root, targetPath }),
200
+ });
201
+ const stats = await fs.stat(entryPath.resolvedPath);
188
202
  return {
189
203
  name,
190
204
  path: normalizeRelativePath({ root, targetPath }),
@@ -197,6 +211,9 @@ function isMissingEntryError(error) {
197
211
  const code = error?.code;
198
212
  return code === "ENOENT" || code === "ENOTDIR" || code === "ELOOP";
199
213
  }
214
+ function isOutsideWorkspaceError(error) {
215
+ return error instanceof Error && error.message === ACCESS_OUTSIDE_WORKSPACE_MESSAGE;
216
+ }
200
217
  function normalizeRelativePath({ root, targetPath }) {
201
218
  const normalizedRoot = path.resolve(root);
202
219
  const normalizedTarget = path.resolve(targetPath);
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../../../../src/server/file-explorer/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../../../src/server/file-explorer/service.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import type { WorkspaceGitService } from "./workspace-git-service.js";
2
2
  import { type PersistedWorkspaceRecord, type ProjectRegistry, type WorkspaceRegistry } from "./workspace-registry.js";
3
3
  import { type CreateWorktreeCoreDeps, type CreateWorktreeCoreInput } from "./worktree-core.js";
4
4
  import { type WorktreeConfig } from "../utils/worktree.js";
5
- import { getCurrentBranch, renameCurrentBranch } from "../utils/checkout-git.js";
5
+ import { getCurrentBranch, localBranchExists, renameCurrentBranch } from "../utils/checkout-git.js";
6
6
  import type { WorktreeCreationIntent } from "./resolve-worktree-creation-intent.js";
7
7
  import type { FirstAgentContext } from "../shared/messages.js";
8
8
  export type CreatePaseoWorktreeInput = CreateWorktreeCoreInput;
@@ -36,5 +36,6 @@ export declare function attemptFirstAgentBranchAutoName(options: {
36
36
  }) => Promise<string | null>;
37
37
  getCurrentBranch?: typeof getCurrentBranch;
38
38
  renameCurrentBranch?: typeof renameCurrentBranch;
39
+ localBranchExists?: typeof localBranchExists;
39
40
  }): Promise<AttemptFirstAgentBranchAutoNameResult>;
40
41
  //# sourceMappingURL=paseo-worktree-service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"paseo-worktree-service.d.ts","sourceRoot":"","sources":["../../../src/server/paseo-worktree-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EACL,KAAK,wBAAwB,EAC7B,KAAK,eAAe,EACpB,KAAK,iBAAiB,EAGvB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAEL,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC7B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAsB,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAMjF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAEpF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,MAAM,MAAM,wBAAwB,GAAG,uBAAuB,CAAC;AAE/D,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,cAAc,CAAC;IACzB,MAAM,EAAE,sBAAsB,CAAC;IAC/B,SAAS,EAAE,wBAAwB,CAAC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,MAAM,qBAAqB,GAAG,CAClC,KAAK,EAAE,wBAAwB,EAC/B,OAAO,CAAC,EAAE;IACR,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAC9D,KACE,OAAO,CAAC,yBAAyB,CAAC,CAAC;AAExC,MAAM,WAAW,qCAAqC;IACpD,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,uBAAwB,SAAQ,sBAAsB;IACrE,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,KAAK,GAAG,QAAQ,CAAC,CAAC;IACzD,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAC,CAAC;IACtE,mBAAmB,EAAE,mBAAmB,CAAC;CAC1C;AAED,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,wBAAwB,EAC/B,IAAI,EAAE,uBAAuB,GAC5B,OAAO,CAAC,yBAAyB,CAAC,CAmBpC;AAED,wBAAsB,+BAA+B,CAAC,OAAO,EAAE;IAC7D,GAAG,EAAE,MAAM,CAAC;IACZ,iBAAiB,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACjD,6BAA6B,EAAE,CAAC,KAAK,EAAE;QACrC,GAAG,EAAE,MAAM,CAAC;QACZ,iBAAiB,EAAE,iBAAiB,CAAC;KACtC,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC7B,gBAAgB,CAAC,EAAE,OAAO,gBAAgB,CAAC;IAC3C,mBAAmB,CAAC,EAAE,OAAO,mBAAmB,CAAC;CAClD,GAAG,OAAO,CAAC,qCAAqC,CAAC,CAmDjD"}
1
+ {"version":3,"file":"paseo-worktree-service.d.ts","sourceRoot":"","sources":["../../../src/server/paseo-worktree-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EACL,KAAK,wBAAwB,EAC7B,KAAK,eAAe,EACpB,KAAK,iBAAiB,EAGvB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAEL,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC7B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAsB,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAMpG,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAEpF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,MAAM,MAAM,wBAAwB,GAAG,uBAAuB,CAAC;AAE/D,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,cAAc,CAAC;IACzB,MAAM,EAAE,sBAAsB,CAAC;IAC/B,SAAS,EAAE,wBAAwB,CAAC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,MAAM,qBAAqB,GAAG,CAClC,KAAK,EAAE,wBAAwB,EAC/B,OAAO,CAAC,EAAE;IACR,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAC9D,KACE,OAAO,CAAC,yBAAyB,CAAC,CAAC;AAExC,MAAM,WAAW,qCAAqC;IACpD,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,uBAAwB,SAAQ,sBAAsB;IACrE,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,KAAK,GAAG,QAAQ,CAAC,CAAC;IACzD,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAC,CAAC;IACtE,mBAAmB,EAAE,mBAAmB,CAAC;CAC1C;AAED,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,wBAAwB,EAC/B,IAAI,EAAE,uBAAuB,GAC5B,OAAO,CAAC,yBAAyB,CAAC,CAmBpC;AAED,wBAAsB,+BAA+B,CAAC,OAAO,EAAE;IAC7D,GAAG,EAAE,MAAM,CAAC;IACZ,iBAAiB,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACjD,6BAA6B,EAAE,CAAC,KAAK,EAAE;QACrC,GAAG,EAAE,MAAM,CAAC;QACZ,iBAAiB,EAAE,iBAAiB,CAAC;KACtC,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC7B,gBAAgB,CAAC,EAAE,OAAO,gBAAgB,CAAC;IAC3C,mBAAmB,CAAC,EAAE,OAAO,mBAAmB,CAAC;IACjD,iBAAiB,CAAC,EAAE,OAAO,iBAAiB,CAAC;CAC9C,GAAG,OAAO,CAAC,qCAAqC,CAAC,CA8DjD"}
@@ -2,7 +2,7 @@ import { createPersistedProjectRecord, createPersistedWorkspaceRecord, } from ".
2
2
  import { deriveProjectGroupingName, normalizeWorkspaceId } from "./workspace-registry-model.js";
3
3
  import { createWorktreeCore, } from "./worktree-core.js";
4
4
  import { validateBranchSlug } from "../utils/worktree.js";
5
- import { getCurrentBranch, renameCurrentBranch } from "../utils/checkout-git.js";
5
+ import { getCurrentBranch, localBranchExists, renameCurrentBranch } from "../utils/checkout-git.js";
6
6
  import { markPaseoWorktreeFirstAgentBranchAutoNameAttempted, readPaseoWorktreeMetadata, writePaseoWorktreeFirstAgentBranchAutoNameMetadata, } from "../utils/worktree-metadata.js";
7
7
  import { buildAgentBranchNameSeed } from "./agent/prompt-attachments.js";
8
8
  export async function createPaseoWorktree(input, deps) {
@@ -61,14 +61,41 @@ export async function attemptFirstAgentBranchAutoName(options) {
61
61
  if ((await getCurrentBranchImpl(options.cwd)) !== placeholderBranchName) {
62
62
  return { attempted: true, renamed: false, branchName: null };
63
63
  }
64
+ const localBranchExistsImpl = options.localBranchExists ?? localBranchExists;
65
+ const targetName = await findAvailableBranchName({
66
+ cwd: options.cwd,
67
+ desiredName: branchName,
68
+ placeholderBranchName,
69
+ localBranchExists: localBranchExistsImpl,
70
+ });
71
+ if (!targetName) {
72
+ return { attempted: true, renamed: false, branchName: null };
73
+ }
64
74
  const renameCurrentBranchImpl = options.renameCurrentBranch ?? renameCurrentBranch;
65
- const renamedBranch = await renameCurrentBranchImpl(options.cwd, branchName);
75
+ const renamedBranch = await renameCurrentBranchImpl(options.cwd, targetName);
66
76
  return {
67
77
  attempted: true,
68
78
  renamed: true,
69
- branchName: renamedBranch.currentBranch ?? branchName,
79
+ branchName: renamedBranch.currentBranch ?? targetName,
70
80
  };
71
81
  }
82
+ const MAX_BRANCH_NAME_SUFFIX_ATTEMPTS = 50;
83
+ async function findAvailableBranchName(options) {
84
+ const { cwd, desiredName, placeholderBranchName } = options;
85
+ if (!(await options.localBranchExists(cwd, desiredName))) {
86
+ return desiredName;
87
+ }
88
+ for (let suffix = 2; suffix <= MAX_BRANCH_NAME_SUFFIX_ATTEMPTS; suffix++) {
89
+ const candidate = `${desiredName}-${suffix}`;
90
+ if (candidate === placeholderBranchName) {
91
+ continue;
92
+ }
93
+ if (!(await options.localBranchExists(cwd, candidate))) {
94
+ return candidate;
95
+ }
96
+ }
97
+ return null;
98
+ }
72
99
  function maybeMarkFirstAgentBranchAutoNameEligible(options) {
73
100
  const { createdWorktree } = options;
74
101
  if (!createdWorktree.created || createdWorktree.intent.kind !== "branch-off") {
@@ -1 +1 @@
1
- {"version":3,"file":"paseo-worktree-service.js","sourceRoot":"","sources":["../../../src/server/paseo-worktree-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"paseo-worktree-service.js","sourceRoot":"","sources":["../../../src/server/paseo-worktree-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type pino from "pino";
2
+ import { type PushPayload } from "./push-service.js";
3
+ import type { PushTokenStore } from "./token-store.js";
4
+ export type { PushPayload };
5
+ export interface PushNotificationSender {
6
+ send(payload: PushPayload): Promise<void>;
7
+ }
8
+ export declare function createPushNotificationSender(logger: pino.Logger, tokenStore: PushTokenStore): PushNotificationSender;
9
+ //# sourceMappingURL=notifications.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../../../../src/server/push/notifications.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,YAAY,EAAE,WAAW,EAAE,CAAC;AAE5B,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3C;AAED,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,UAAU,EAAE,cAAc,GACzB,sBAAsB,CAcxB"}
@@ -0,0 +1,15 @@
1
+ import { PushService } from "./push-service.js";
2
+ export function createPushNotificationSender(logger, tokenStore) {
3
+ const pushService = new PushService(logger, tokenStore);
4
+ return {
5
+ async send(payload) {
6
+ const tokens = tokenStore.getAllTokens();
7
+ logger.info({ tokenCount: tokens.length }, "Sending push notification");
8
+ if (tokens.length === 0) {
9
+ return;
10
+ }
11
+ await pushService.sendPush(tokens, payload);
12
+ },
13
+ };
14
+ }
15
+ //# sourceMappingURL=notifications.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notifications.js","sourceRoot":"","sources":["../../../../src/server/push/notifications.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAoB,MAAM,mBAAmB,CAAC;AASlE,MAAM,UAAU,4BAA4B,CAC1C,MAAmB,EACnB,UAA0B;IAE1B,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAExD,OAAO;QACL,KAAK,CAAC,IAAI,CAAC,OAAO;YAChB,MAAM,MAAM,GAAG,UAAU,CAAC,YAAY,EAAE,CAAC;YACzC,MAAM,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,2BAA2B,CAAC,CAAC;YACxE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,OAAO;YACT,CAAC;YAED,MAAM,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC9C,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import type { PushTokenStore } from "./token-store.js";
2
2
  import type pino from "pino";
3
- interface PushPayload {
3
+ export interface PushPayload {
4
4
  title: string;
5
5
  body: string;
6
6
  data?: Record<string, unknown>;
@@ -17,5 +17,4 @@ export declare class PushService {
17
17
  private sendBatch;
18
18
  private handleTickets;
19
19
  }
20
- export {};
21
20
  //# sourceMappingURL=push-service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"push-service.d.ts","sourceRoot":"","sources":["../../../../src/server/push/push-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,UAAU,WAAW;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAoBD;;;GAGG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiB;gBAEhC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,cAAc;IAKrD,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;YAsBvD,SAAS;IA0BvB,OAAO,CAAC,aAAa;CAqBtB"}
1
+ {"version":3,"file":"push-service.d.ts","sourceRoot":"","sources":["../../../../src/server/push/push-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAoBD;;;GAGG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiB;gBAEhC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,cAAc;IAKrD,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;YAsBvD,SAAS;IA0BvB,OAAO,CAAC,aAAa;CAqBtB"}
@@ -8,6 +8,7 @@ interface RelayTransportOptions {
8
8
  relayUseTls: boolean;
9
9
  serverId: string;
10
10
  daemonKeyPair?: KeyPair;
11
+ createWebSocket?: RelayWebSocketFactory;
11
12
  }
12
13
  export interface RelayTransportController {
13
14
  stop: () => Promise<void>;
@@ -19,6 +20,11 @@ interface RelaySocketLike {
19
20
  on: (event: "message" | "close" | "error", listener: (...args: unknown[]) => void) => void;
20
21
  once: (event: "close" | "error", listener: (...args: unknown[]) => void) => void;
21
22
  }
22
- export declare function startRelayTransport({ logger, attachSocket, relayEndpoint, relayUseTls, serverId, daemonKeyPair, }: RelayTransportOptions): RelayTransportController;
23
+ interface RelayWebSocketLike extends RelaySocketLike {
24
+ terminate: () => void;
25
+ on: (event: "open" | "message" | "close" | "error", listener: (...args: unknown[]) => void) => void;
26
+ }
27
+ type RelayWebSocketFactory = (url: string) => RelayWebSocketLike;
28
+ export declare function startRelayTransport({ logger, attachSocket, relayEndpoint, relayUseTls, serverId, daemonKeyPair, createWebSocket, }: RelayTransportOptions): RelayTransportController;
23
29
  export {};
24
30
  //# sourceMappingURL=relay-transport.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"relay-transport.d.ts","sourceRoot":"","sources":["../../../src/server/relay-transport.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAIL,KAAK,OAAO,EACb,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAEpE,UAAU,qBAAqB;IAC7B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;IACpB,YAAY,EAAE,CAAC,EAAE,EAAE,eAAe,EAAE,QAAQ,CAAC,EAAE,sBAAsB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxF,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAED,UAAU,eAAe;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,WAAW,KAAK,IAAI,CAAC;IACxD,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,EAAE,EAAE,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,KAAK,IAAI,CAAC;IAC3F,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,KAAK,IAAI,CAAC;CAClF;AAqED,wBAAgB,mBAAmB,CAAC,EAClC,MAAM,EACN,YAAY,EACZ,aAAa,EACb,WAAW,EACX,QAAQ,EACR,aAAa,GACd,EAAE,qBAAqB,GAAG,wBAAwB,CAgSlD"}
1
+ {"version":3,"file":"relay-transport.d.ts","sourceRoot":"","sources":["../../../src/server/relay-transport.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAIL,KAAK,OAAO,EACb,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAEpE,UAAU,qBAAqB;IAC7B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;IACpB,YAAY,EAAE,CAAC,EAAE,EAAE,eAAe,EAAE,QAAQ,CAAC,EAAE,sBAAsB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxF,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,qBAAqB,CAAC;CACzC;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAED,UAAU,eAAe;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,WAAW,KAAK,IAAI,CAAC;IACxD,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,EAAE,EAAE,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,KAAK,IAAI,CAAC;IAC3F,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,KAAK,IAAI,CAAC;CAClF;AAED,UAAU,kBAAmB,SAAQ,eAAe;IAClD,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,EAAE,EAAE,CACF,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,EAC7C,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,KACnC,IAAI,CAAC;CACX;AAED,KAAK,qBAAqB,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,kBAAkB,CAAC;AA0EjE,wBAAgB,mBAAmB,CAAC,EAClC,MAAM,EACN,YAAY,EACZ,aAAa,EACb,WAAW,EACX,QAAQ,EACR,aAAa,EACb,eAA6C,GAC9C,EAAE,qBAAqB,GAAG,wBAAwB,CAgSlD"}