@getpaseo/server 0.1.81 → 0.1.82

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 (163) hide show
  1. package/dist/server/client/daemon-client.d.ts +2 -1
  2. package/dist/server/client/daemon-client.d.ts.map +1 -1
  3. package/dist/server/client/daemon-client.js +29 -0
  4. package/dist/server/client/daemon-client.js.map +1 -1
  5. package/dist/server/server/agent/agent-manager.d.ts +9 -7
  6. package/dist/server/server/agent/agent-manager.d.ts.map +1 -1
  7. package/dist/server/server/agent/agent-manager.js +78 -92
  8. package/dist/server/server/agent/agent-manager.js.map +1 -1
  9. package/dist/server/server/agent/agent-metadata-generator.js +1 -1
  10. package/dist/server/server/agent/agent-metadata-generator.js.map +1 -1
  11. package/dist/server/server/agent/agent-projections.d.ts.map +1 -1
  12. package/dist/server/server/agent/agent-projections.js +4 -4
  13. package/dist/server/server/agent/agent-projections.js.map +1 -1
  14. package/dist/server/server/agent/agent-prompt.d.ts +2 -9
  15. package/dist/server/server/agent/agent-prompt.d.ts.map +1 -1
  16. package/dist/server/server/agent/agent-prompt.js +7 -18
  17. package/dist/server/server/agent/agent-prompt.js.map +1 -1
  18. package/dist/server/server/agent/agent-sdk-types.d.ts +13 -0
  19. package/dist/server/server/agent/agent-sdk-types.d.ts.map +1 -1
  20. package/dist/server/server/agent/agent-sdk-types.js.map +1 -1
  21. package/dist/server/server/agent/agent-storage.d.ts +2 -7
  22. package/dist/server/server/agent/agent-storage.d.ts.map +1 -1
  23. package/dist/server/server/agent/agent-storage.js +2 -16
  24. package/dist/server/server/agent/agent-storage.js.map +1 -1
  25. package/dist/server/server/agent/agent-timeline-store-types.d.ts +0 -4
  26. package/dist/server/server/agent/agent-timeline-store-types.d.ts.map +1 -1
  27. package/dist/server/server/agent/agent-timeline-store.d.ts +0 -5
  28. package/dist/server/server/agent/agent-timeline-store.d.ts.map +1 -1
  29. package/dist/server/server/agent/agent-timeline-store.js +0 -33
  30. package/dist/server/server/agent/agent-timeline-store.js.map +1 -1
  31. package/dist/server/server/agent/mcp-server.d.ts.map +1 -1
  32. package/dist/server/server/agent/mcp-server.js +0 -9
  33. package/dist/server/server/agent/mcp-server.js.map +1 -1
  34. package/dist/server/server/agent/provider-launch-config.d.ts.map +1 -1
  35. package/dist/server/server/agent/provider-launch-config.js +0 -1
  36. package/dist/server/server/agent/provider-launch-config.js.map +1 -1
  37. package/dist/server/server/agent/provider-manifest.d.ts +1 -1
  38. package/dist/server/server/agent/provider-manifest.d.ts.map +1 -1
  39. package/dist/server/server/agent/provider-registry.d.ts +2 -1
  40. package/dist/server/server/agent/provider-registry.d.ts.map +1 -1
  41. package/dist/server/server/agent/provider-registry.js +5 -1
  42. package/dist/server/server/agent/provider-registry.js.map +1 -1
  43. package/dist/server/server/agent/provider-snapshot-manager.d.ts +2 -2
  44. package/dist/server/server/agent/provider-snapshot-manager.d.ts.map +1 -1
  45. package/dist/server/server/agent/provider-snapshot-manager.js +60 -26
  46. package/dist/server/server/agent/provider-snapshot-manager.js.map +1 -1
  47. package/dist/server/server/agent/providers/acp-agent.d.ts.map +1 -1
  48. package/dist/server/server/agent/providers/acp-agent.js +3 -0
  49. package/dist/server/server/agent/providers/acp-agent.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 +275 -85
  52. package/dist/server/server/agent/providers/claude/agent.js.map +1 -1
  53. package/dist/server/server/agent/providers/claude/rewind.d.ts +30 -0
  54. package/dist/server/server/agent/providers/claude/rewind.d.ts.map +1 -0
  55. package/dist/server/server/agent/providers/claude/rewind.js +30 -0
  56. package/dist/server/server/agent/providers/claude/rewind.js.map +1 -0
  57. package/dist/server/server/agent/providers/claude/test-rewind-claude-sdk.d.ts +24 -0
  58. package/dist/server/server/agent/providers/claude/test-rewind-claude-sdk.d.ts.map +1 -0
  59. package/dist/server/server/agent/providers/claude/test-rewind-claude-sdk.js +23 -0
  60. package/dist/server/server/agent/providers/claude/test-rewind-claude-sdk.js.map +1 -0
  61. package/dist/server/server/agent/providers/codex/app-server-transport.d.ts +168 -0
  62. package/dist/server/server/agent/providers/codex/app-server-transport.d.ts.map +1 -1
  63. package/dist/server/server/agent/providers/codex/app-server-transport.js +48 -0
  64. package/dist/server/server/agent/providers/codex/app-server-transport.js.map +1 -1
  65. package/dist/server/server/agent/providers/codex/rewind.d.ts +21 -0
  66. package/dist/server/server/agent/providers/codex/rewind.d.ts.map +1 -0
  67. package/dist/server/server/agent/providers/codex/rewind.js +46 -0
  68. package/dist/server/server/agent/providers/codex/rewind.js.map +1 -0
  69. package/dist/server/server/agent/providers/codex/test-utils/fake-app-server.d.ts +5 -0
  70. package/dist/server/server/agent/providers/codex/test-utils/fake-app-server.d.ts.map +1 -1
  71. package/dist/server/server/agent/providers/codex/test-utils/fake-app-server.js +45 -0
  72. package/dist/server/server/agent/providers/codex/test-utils/fake-app-server.js.map +1 -1
  73. package/dist/server/server/agent/providers/codex/tool-call-mapper.d.ts +1 -1
  74. package/dist/server/server/agent/providers/codex/tool-call-mapper.d.ts.map +1 -1
  75. package/dist/server/server/agent/providers/codex/tool-call-mapper.js +11 -11
  76. package/dist/server/server/agent/providers/codex/tool-call-mapper.js.map +1 -1
  77. package/dist/server/server/agent/providers/codex-app-server-agent.d.ts +32 -34
  78. package/dist/server/server/agent/providers/codex-app-server-agent.d.ts.map +1 -1
  79. package/dist/server/server/agent/providers/codex-app-server-agent.js +206 -60
  80. package/dist/server/server/agent/providers/codex-app-server-agent.js.map +1 -1
  81. package/dist/server/server/agent/providers/copilot-acp-agent.d.ts.map +1 -1
  82. package/dist/server/server/agent/providers/copilot-acp-agent.js +3 -0
  83. package/dist/server/server/agent/providers/copilot-acp-agent.js.map +1 -1
  84. package/dist/server/server/agent/providers/mock-load-test-agent.d.ts +13 -0
  85. package/dist/server/server/agent/providers/mock-load-test-agent.d.ts.map +1 -1
  86. package/dist/server/server/agent/providers/mock-load-test-agent.js +55 -1
  87. package/dist/server/server/agent/providers/mock-load-test-agent.js.map +1 -1
  88. package/dist/server/server/agent/providers/opencode/rewind.d.ts +18 -0
  89. package/dist/server/server/agent/providers/opencode/rewind.d.ts.map +1 -0
  90. package/dist/server/server/agent/providers/opencode/rewind.js +14 -0
  91. package/dist/server/server/agent/providers/opencode/rewind.js.map +1 -0
  92. package/dist/server/server/agent/providers/opencode/tool-call-detail-parser.d.ts.map +1 -1
  93. package/dist/server/server/agent/providers/opencode/tool-call-detail-parser.js +110 -2
  94. package/dist/server/server/agent/providers/opencode/tool-call-detail-parser.js.map +1 -1
  95. package/dist/server/server/agent/providers/opencode-agent.d.ts +18 -0
  96. package/dist/server/server/agent/providers/opencode-agent.d.ts.map +1 -1
  97. package/dist/server/server/agent/providers/opencode-agent.js +265 -38
  98. package/dist/server/server/agent/providers/opencode-agent.js.map +1 -1
  99. package/dist/server/server/agent/providers/pi/agent.d.ts +21 -1
  100. package/dist/server/server/agent/providers/pi/agent.d.ts.map +1 -1
  101. package/dist/server/server/agent/providers/pi/agent.js +355 -13
  102. package/dist/server/server/agent/providers/pi/agent.js.map +1 -1
  103. package/dist/server/server/agent/providers/pi/history-mapper.d.ts +5 -1
  104. package/dist/server/server/agent/providers/pi/history-mapper.d.ts.map +1 -1
  105. package/dist/server/server/agent/providers/pi/history-mapper.js +3 -2
  106. package/dist/server/server/agent/providers/pi/history-mapper.js.map +1 -1
  107. package/dist/server/server/agent/providers/pi/rewind.d.ts +8 -0
  108. package/dist/server/server/agent/providers/pi/rewind.d.ts.map +1 -0
  109. package/dist/server/server/agent/providers/pi/rewind.js +8 -0
  110. package/dist/server/server/agent/providers/pi/rewind.js.map +1 -0
  111. package/dist/server/server/agent/providers/pi/rpc-types.d.ts +10 -0
  112. package/dist/server/server/agent/providers/pi/rpc-types.d.ts.map +1 -1
  113. package/dist/server/server/agent/providers/pi/runtime.d.ts +2 -0
  114. package/dist/server/server/agent/providers/pi/runtime.d.ts.map +1 -1
  115. package/dist/server/server/agent/providers/pi/runtime.js +4 -0
  116. package/dist/server/server/agent/providers/pi/runtime.js.map +1 -1
  117. package/dist/server/server/agent/providers/pi/test-utils/fake-pi.d.ts +10 -0
  118. package/dist/server/server/agent/providers/pi/test-utils/fake-pi.d.ts.map +1 -1
  119. package/dist/server/server/agent/providers/pi/test-utils/fake-pi.js +49 -1
  120. package/dist/server/server/agent/providers/pi/test-utils/fake-pi.js.map +1 -1
  121. package/dist/server/server/agent/providers/tool-call-detail-primitives.d.ts +4 -1
  122. package/dist/server/server/agent/providers/tool-call-detail-primitives.d.ts.map +1 -1
  123. package/dist/server/server/agent/providers/tool-call-detail-primitives.js +57 -1
  124. package/dist/server/server/agent/providers/tool-call-detail-primitives.js.map +1 -1
  125. package/dist/server/server/agent/rewind/rewind.d.ts +10 -0
  126. package/dist/server/server/agent/rewind/rewind.d.ts.map +1 -0
  127. package/dist/server/server/agent/rewind/rewind.js +29 -0
  128. package/dist/server/server/agent/rewind/rewind.js.map +1 -0
  129. package/dist/server/server/agent/rewind/test-rewind-session.d.ts +48 -0
  130. package/dist/server/server/agent/rewind/test-rewind-session.d.ts.map +1 -0
  131. package/dist/server/server/agent/rewind/test-rewind-session.js +88 -0
  132. package/dist/server/server/agent/rewind/test-rewind-session.js.map +1 -0
  133. package/dist/server/server/persistence-hooks.d.ts.map +1 -1
  134. package/dist/server/server/persistence-hooks.js +0 -2
  135. package/dist/server/server/persistence-hooks.js.map +1 -1
  136. package/dist/server/server/session.d.ts +2 -0
  137. package/dist/server/server/session.d.ts.map +1 -1
  138. package/dist/server/server/session.js +39 -9
  139. package/dist/server/server/session.js.map +1 -1
  140. package/dist/server/server/websocket-server.d.ts.map +1 -1
  141. package/dist/server/server/websocket-server.js +2 -0
  142. package/dist/server/server/websocket-server.js.map +1 -1
  143. package/dist/server/shared/messages.d.ts +281 -0
  144. package/dist/server/shared/messages.d.ts.map +1 -1
  145. package/dist/server/shared/messages.js +27 -0
  146. package/dist/server/shared/messages.js.map +1 -1
  147. package/dist/server/terminal/terminal.d.ts.map +1 -1
  148. package/dist/server/terminal/terminal.js +14 -0
  149. package/dist/server/terminal/terminal.js.map +1 -1
  150. package/dist/src/server/agent/agent-sdk-types.js.map +1 -1
  151. package/dist/src/server/agent/provider-launch-config.js +0 -1
  152. package/dist/src/server/agent/provider-launch-config.js.map +1 -1
  153. package/dist/src/shared/messages.js +27 -0
  154. package/dist/src/shared/messages.js.map +1 -1
  155. package/package.json +3 -3
  156. package/dist/server/server/agent/providers/codex-rollout-timeline.d.ts +0 -9
  157. package/dist/server/server/agent/providers/codex-rollout-timeline.d.ts.map +0 -1
  158. package/dist/server/server/agent/providers/codex-rollout-timeline.js +0 -555
  159. package/dist/server/server/agent/providers/codex-rollout-timeline.js.map +0 -1
  160. package/dist/server/server/agent/providers/pi/session-descriptor.d.ts +0 -10
  161. package/dist/server/server/agent/providers/pi/session-descriptor.d.ts.map +0 -1
  162. package/dist/server/server/agent/providers/pi/session-descriptor.js +0 -300
  163. package/dist/server/server/agent/providers/pi/session-descriptor.js.map +0 -1
@@ -1,300 +0,0 @@
1
- import { open, readdir, readFile, stat } from "node:fs/promises";
2
- import { homedir } from "node:os";
3
- import path from "node:path";
4
- import { createRealpathAwarePathMatcher } from "../../../../utils/path.js";
5
- const PI_PROVIDER = "pi";
6
- const PI_CONFIG_DIR_NAME = ".pi";
7
- const PI_AGENT_DIR_ENV = "PI_CODING_AGENT_DIR";
8
- const PI_SESSION_DIR_ENV = "PI_CODING_AGENT_SESSION_DIR";
9
- const HEAD_BYTES = 64 * 1024;
10
- const TAIL_BYTES = 256 * 1024;
11
- const FULL_SCAN_LINE_LIMIT = 2000;
12
- export async function listPiPersistedAgents(options = {}) {
13
- const sessionsDir = await resolvePiSessionsDir(options);
14
- const files = await walkJsonlFiles(sessionsDir);
15
- const matchesCwd = options.cwd ? createRealpathAwarePathMatcher(options.cwd) : null;
16
- const limit = options.limit ?? 20;
17
- const descriptors = [];
18
- for (const file of files) {
19
- const descriptor = await readPiSessionDescriptor(file);
20
- if (!descriptor)
21
- continue;
22
- if (matchesCwd && !matchesCwd(descriptor.cwd))
23
- continue;
24
- descriptors.push(descriptor);
25
- }
26
- return descriptors
27
- .sort((left, right) => right.lastActivityAt.getTime() - left.lastActivityAt.getTime())
28
- .slice(0, limit);
29
- }
30
- async function resolvePiSessionsDir(options) {
31
- const env = options.env ?? process.env;
32
- const homeDir = options.homeDir ?? homedir();
33
- const baseDir = options.cwd ?? process.cwd();
34
- const agentDir = resolvePiAgentDir({ runtimeSettings: options.runtimeSettings, env, homeDir });
35
- const envSessionDir = options.runtimeSettings?.env?.[PI_SESSION_DIR_ENV] ?? env[PI_SESSION_DIR_ENV];
36
- if (envSessionDir?.trim()) {
37
- return resolveConfigPath(envSessionDir, { baseDir, homeDir });
38
- }
39
- const settingsSessionDir = await readConfiguredSessionDir({
40
- agentDir,
41
- cwd: options.cwd,
42
- });
43
- if (settingsSessionDir?.trim()) {
44
- return resolveConfigPath(settingsSessionDir, { baseDir, homeDir });
45
- }
46
- return path.join(agentDir, "sessions");
47
- }
48
- function resolvePiAgentDir(input) {
49
- const configured = input.runtimeSettings?.env?.[PI_AGENT_DIR_ENV] ?? input.env[PI_AGENT_DIR_ENV];
50
- if (configured?.trim()) {
51
- return resolveConfigPath(configured, { baseDir: process.cwd(), homeDir: input.homeDir });
52
- }
53
- return path.join(input.homeDir, PI_CONFIG_DIR_NAME, "agent");
54
- }
55
- async function readConfiguredSessionDir(input) {
56
- const values = await Promise.all([
57
- readSessionDirFromSettings(path.join(input.agentDir, "settings.json")),
58
- input.cwd
59
- ? readSessionDirFromSettings(path.join(input.cwd, PI_CONFIG_DIR_NAME, "settings.json"))
60
- : null,
61
- ]);
62
- return values[1] ?? values[0] ?? null;
63
- }
64
- async function readSessionDirFromSettings(settingsPath) {
65
- try {
66
- const parsed = JSON.parse(await readFile(settingsPath, "utf8"));
67
- if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
68
- return null;
69
- }
70
- const sessionDir = Reflect.get(parsed, "sessionDir");
71
- return typeof sessionDir === "string" && sessionDir.trim() ? sessionDir : null;
72
- }
73
- catch {
74
- return null;
75
- }
76
- }
77
- function resolveConfigPath(value, options) {
78
- if (value === "~") {
79
- return options.homeDir;
80
- }
81
- if (value.startsWith("~/")) {
82
- return path.join(options.homeDir, value.slice(2));
83
- }
84
- return path.isAbsolute(value) ? value : path.resolve(options.baseDir, value);
85
- }
86
- async function walkJsonlFiles(root) {
87
- let entries;
88
- try {
89
- entries = await readdir(root, { withFileTypes: true });
90
- }
91
- catch {
92
- return [];
93
- }
94
- const files = await Promise.all(entries.map(async (entry) => {
95
- const entryPath = path.join(root, entry.name);
96
- if (entry.isDirectory()) {
97
- return await walkJsonlFiles(entryPath);
98
- }
99
- return entry.isFile() && entry.name.endsWith(".jsonl") ? [entryPath] : [];
100
- }));
101
- return files.flat();
102
- }
103
- async function readPiSessionDescriptor(filePath) {
104
- const firstLine = await readFirstLine(filePath);
105
- if (!firstLine)
106
- return null;
107
- const header = parseSessionHeader(firstLine);
108
- if (!header)
109
- return null;
110
- const tail = await readTail(filePath).catch(() => "");
111
- const tailInfo = parseSessionTail(tail);
112
- const headInfo = await scanSessionHead(filePath);
113
- const title = tailInfo.title ?? headInfo.title ?? headInfo.firstUserMessage;
114
- const lastActivityAt = tailInfo.lastActivityAt ?? (await readFileMtime(filePath)) ?? header.createdAt ?? new Date(0);
115
- const timeline = buildPreviewTimeline({
116
- firstUserMessage: headInfo.firstUserMessage,
117
- lastUserMessage: tailInfo.lastUserMessage,
118
- });
119
- const persistence = {
120
- provider: PI_PROVIDER,
121
- sessionId: header.sessionId,
122
- nativeHandle: filePath,
123
- metadata: {
124
- provider: PI_PROVIDER,
125
- cwd: header.cwd,
126
- },
127
- };
128
- return {
129
- provider: PI_PROVIDER,
130
- sessionId: header.sessionId,
131
- cwd: header.cwd,
132
- title,
133
- lastActivityAt,
134
- persistence,
135
- timeline,
136
- };
137
- }
138
- async function readFirstLine(filePath) {
139
- const handle = await open(filePath, "r").catch(() => null);
140
- if (!handle)
141
- return null;
142
- try {
143
- const buffer = Buffer.alloc(HEAD_BYTES);
144
- const { bytesRead } = await handle.read(buffer, 0, buffer.length, 0);
145
- if (bytesRead <= 0)
146
- return null;
147
- const chunk = buffer.subarray(0, bytesRead).toString("utf8");
148
- const newlineIndex = chunk.indexOf("\n");
149
- return (newlineIndex === -1 ? chunk : chunk.slice(0, newlineIndex)).trim();
150
- }
151
- finally {
152
- await handle.close().catch(() => undefined);
153
- }
154
- }
155
- async function readTail(filePath) {
156
- const fileStats = await stat(filePath);
157
- const start = Math.max(0, fileStats.size - TAIL_BYTES);
158
- const length = fileStats.size - start;
159
- const handle = await open(filePath, "r");
160
- try {
161
- const buffer = Buffer.alloc(length);
162
- const { bytesRead } = await handle.read(buffer, 0, buffer.length, start);
163
- return buffer.subarray(0, bytesRead).toString("utf8");
164
- }
165
- finally {
166
- await handle.close().catch(() => undefined);
167
- }
168
- }
169
- async function readFileMtime(filePath) {
170
- try {
171
- return (await stat(filePath)).mtime;
172
- }
173
- catch {
174
- return null;
175
- }
176
- }
177
- function parseSessionHeader(firstLine) {
178
- const entry = parseJsonRecord(firstLine);
179
- if (!entry || entry.type !== "session")
180
- return null;
181
- const sessionId = typeof entry.id === "string" ? entry.id : null;
182
- const cwd = typeof entry.cwd === "string" ? entry.cwd : null;
183
- if (!sessionId || !cwd)
184
- return null;
185
- const createdAt = parseDate(entry.timestamp);
186
- return { sessionId, cwd, createdAt };
187
- }
188
- function parseSessionTail(tail) {
189
- const lines = tail.split(/\r?\n/);
190
- let title = null;
191
- let lastActivityAt = null;
192
- let fallbackTimestamp = null;
193
- let lastUserMessage = null;
194
- for (let index = lines.length - 1; index >= 0; index -= 1) {
195
- const entry = parseJsonRecord(lines[index].trim());
196
- if (!entry)
197
- continue;
198
- if (!title && entry.type === "session_info") {
199
- title = readNonEmptyString(entry.name);
200
- }
201
- const entryTimestamp = parseDate(entry.timestamp);
202
- if (!fallbackTimestamp && entryTimestamp) {
203
- fallbackTimestamp = entryTimestamp;
204
- }
205
- if (entry.type !== "message") {
206
- continue;
207
- }
208
- if (!lastActivityAt && entryTimestamp) {
209
- lastActivityAt = entryTimestamp;
210
- }
211
- if (!lastUserMessage && isRecord(entry.message) && entry.message.role === "user") {
212
- lastUserMessage = extractMessageText(entry.message.content);
213
- }
214
- if (title && lastActivityAt && lastUserMessage) {
215
- break;
216
- }
217
- }
218
- return { title, lastActivityAt: lastActivityAt ?? fallbackTimestamp, lastUserMessage };
219
- }
220
- async function scanSessionHead(filePath) {
221
- let content;
222
- try {
223
- content = await readFile(filePath, "utf8");
224
- }
225
- catch {
226
- return { title: null, firstUserMessage: null };
227
- }
228
- let title = null;
229
- let firstUserMessage = null;
230
- let lineCount = 0;
231
- for (const rawLine of content.split(/\r?\n/)) {
232
- lineCount += 1;
233
- const entry = parseJsonRecord(rawLine.trim());
234
- if (!entry)
235
- continue;
236
- if (entry.type === "session_info") {
237
- title = readNonEmptyString(entry.name) ?? title;
238
- }
239
- if (!firstUserMessage && entry.type === "message" && isRecord(entry.message)) {
240
- if (entry.message.role === "user") {
241
- firstUserMessage = extractMessageText(entry.message.content);
242
- }
243
- }
244
- if (title && firstUserMessage) {
245
- break;
246
- }
247
- if (lineCount >= FULL_SCAN_LINE_LIMIT && firstUserMessage) {
248
- break;
249
- }
250
- }
251
- return { title, firstUserMessage };
252
- }
253
- function buildPreviewTimeline(input) {
254
- const items = [];
255
- if (input.firstUserMessage) {
256
- items.push({ type: "user_message", text: input.firstUserMessage });
257
- }
258
- if (input.lastUserMessage && input.lastUserMessage !== input.firstUserMessage) {
259
- items.push({ type: "user_message", text: input.lastUserMessage });
260
- }
261
- return items;
262
- }
263
- function parseJsonRecord(line) {
264
- if (!line)
265
- return null;
266
- try {
267
- const parsed = JSON.parse(line);
268
- return isRecord(parsed) ? parsed : null;
269
- }
270
- catch {
271
- return null;
272
- }
273
- }
274
- function isRecord(value) {
275
- return typeof value === "object" && value !== null && !Array.isArray(value);
276
- }
277
- function readNonEmptyString(value) {
278
- return typeof value === "string" && value.trim() ? value.trim() : null;
279
- }
280
- function parseDate(value) {
281
- if (typeof value !== "string" && typeof value !== "number") {
282
- return null;
283
- }
284
- const date = new Date(value);
285
- return Number.isNaN(date.getTime()) ? null : date;
286
- }
287
- function extractMessageText(content) {
288
- if (typeof content === "string") {
289
- return content.trim() || null;
290
- }
291
- if (!Array.isArray(content)) {
292
- return null;
293
- }
294
- const text = content
295
- .flatMap((part) => isRecord(part) && part.type === "text" && typeof part.text === "string" ? [part.text] : [])
296
- .join("\n\n")
297
- .trim();
298
- return text || null;
299
- }
300
- //# sourceMappingURL=session-descriptor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-descriptor.js","sourceRoot":"","sources":["../../../../../../src/server/agent/providers/pi/session-descriptor.ts"],"names":[],"mappings":"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"}