@undefineds.co/linx 0.2.17 → 0.2.19

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 (117) hide show
  1. package/README.md +3 -6
  2. package/dist/generated/version.js +1 -1
  3. package/dist/generated/version.js.map +1 -1
  4. package/dist/index.js +256 -143
  5. package/dist/index.js.map +1 -1
  6. package/dist/lib/account-api.js +1 -1
  7. package/dist/lib/account-api.js.map +1 -1
  8. package/dist/lib/account-session.js +1 -1
  9. package/dist/lib/account-session.js.map +1 -1
  10. package/dist/lib/ai-command.js +186 -367
  11. package/dist/lib/ai-command.js.map +1 -1
  12. package/dist/lib/chat-api.js +177 -19
  13. package/dist/lib/chat-api.js.map +1 -1
  14. package/dist/lib/codex-plugin/bridge.js.map +1 -1
  15. package/dist/lib/codex-plugin/codex-native-proxy.js.map +1 -1
  16. package/dist/lib/codex-plugin/index.js.map +1 -1
  17. package/dist/lib/codex-plugin/runner.js.map +1 -1
  18. package/dist/lib/credentials-store.js +7 -1
  19. package/dist/lib/credentials-store.js.map +1 -1
  20. package/dist/lib/default-model.js +1 -0
  21. package/dist/lib/default-model.js.map +1 -1
  22. package/dist/lib/login-command.js +33 -10
  23. package/dist/lib/login-command.js.map +1 -1
  24. package/dist/lib/models.js +2 -27
  25. package/dist/lib/models.js.map +1 -1
  26. package/dist/lib/node-warning-filter.js +34 -0
  27. package/dist/lib/node-warning-filter.js.map +1 -0
  28. package/dist/lib/oidc-auth.js +130 -18
  29. package/dist/lib/oidc-auth.js.map +1 -1
  30. package/dist/lib/oidc-session-storage.js.map +1 -1
  31. package/dist/lib/pi-adapter/auth.js +47 -11
  32. package/dist/lib/pi-adapter/auth.js.map +1 -1
  33. package/dist/lib/pi-adapter/branding.js +802 -78
  34. package/dist/lib/pi-adapter/branding.js.map +1 -1
  35. package/dist/lib/pi-adapter/index.js.map +1 -1
  36. package/dist/lib/pi-adapter/interactive.js +179 -5
  37. package/dist/lib/pi-adapter/interactive.js.map +1 -1
  38. package/dist/lib/pi-adapter/pod-approval.js +8 -0
  39. package/dist/lib/pi-adapter/pod-approval.js.map +1 -0
  40. package/dist/lib/pi-adapter/pod-mirror-mapping.js +189 -0
  41. package/dist/lib/pi-adapter/pod-mirror-mapping.js.map +1 -0
  42. package/dist/lib/pi-adapter/pod-mirror.js +416 -0
  43. package/dist/lib/pi-adapter/pod-mirror.js.map +1 -0
  44. package/dist/lib/pi-adapter/pod-tools.js +104 -0
  45. package/dist/lib/pi-adapter/pod-tools.js.map +1 -0
  46. package/dist/lib/pi-adapter/runtime.js +327 -28
  47. package/dist/lib/pi-adapter/runtime.js.map +1 -1
  48. package/dist/lib/pi-adapter/session.js +608 -0
  49. package/dist/lib/pi-adapter/session.js.map +1 -0
  50. package/dist/lib/pi-adapter/stream.js +154 -4
  51. package/dist/lib/pi-adapter/stream.js.map +1 -1
  52. package/dist/lib/pi-adapter/theme.js.map +1 -1
  53. package/dist/lib/pi-adapter/web-fetch.js +154 -0
  54. package/dist/lib/pi-adapter/web-fetch.js.map +1 -0
  55. package/dist/lib/pod-chat-store.js +40 -30
  56. package/dist/lib/pod-chat-store.js.map +1 -1
  57. package/dist/lib/pod-data-session.js +110 -0
  58. package/dist/lib/pod-data-session.js.map +1 -0
  59. package/dist/lib/profile-identity.js +16 -60
  60. package/dist/lib/profile-identity.js.map +1 -1
  61. package/dist/lib/prompt.js.map +1 -1
  62. package/dist/lib/runtime-target.js +1 -1
  63. package/dist/lib/runtime-target.js.map +1 -1
  64. package/dist/lib/solid-auth.js.map +1 -1
  65. package/dist/lib/thread-utils.js.map +1 -1
  66. package/dist/lib/watch/archive.js +1 -1
  67. package/dist/lib/watch/archive.js.map +1 -1
  68. package/dist/lib/watch/auth.js +1 -1
  69. package/dist/lib/watch/auth.js.map +1 -1
  70. package/dist/lib/watch/codex-composer.js.map +1 -1
  71. package/dist/lib/watch/codex-footer.js.map +1 -1
  72. package/dist/lib/watch/codex-overlay.js.map +1 -1
  73. package/dist/lib/watch/codex-request-form.js +1 -1
  74. package/dist/lib/watch/codex-request-form.js.map +1 -1
  75. package/dist/lib/watch/codex-request-input.js.map +1 -1
  76. package/dist/lib/watch/display.js.map +1 -1
  77. package/dist/lib/watch/format.js.map +1 -1
  78. package/dist/lib/watch/hooks/claude.js +4 -0
  79. package/dist/lib/watch/hooks/claude.js.map +1 -1
  80. package/dist/lib/watch/hooks/codebuddy.js +4 -0
  81. package/dist/lib/watch/hooks/codebuddy.js.map +1 -1
  82. package/dist/lib/watch/hooks/codex.js +4 -0
  83. package/dist/lib/watch/hooks/codex.js.map +1 -1
  84. package/dist/lib/watch/hooks/index.js.map +1 -1
  85. package/dist/lib/watch/hooks/shared.js +0 -1
  86. package/dist/lib/watch/hooks/shared.js.map +1 -1
  87. package/dist/lib/watch/index.js.map +1 -1
  88. package/dist/lib/watch/pod-ai.js +29 -37
  89. package/dist/lib/watch/pod-ai.js.map +1 -1
  90. package/dist/lib/watch/pod-approval.js +822 -220
  91. package/dist/lib/watch/pod-approval.js.map +1 -1
  92. package/dist/lib/watch/pod-persistence.js +214 -106
  93. package/dist/lib/watch/pod-persistence.js.map +1 -1
  94. package/dist/lib/watch/runner.js +243 -38
  95. package/dist/lib/watch/runner.js.map +1 -1
  96. package/dist/lib/watch/secretary.js +238 -0
  97. package/dist/lib/watch/secretary.js.map +1 -0
  98. package/dist/lib/watch/types.js.map +1 -1
  99. package/dist/watch-cli.js +8 -34
  100. package/dist/watch-cli.js.map +1 -1
  101. package/package.json +3 -9
  102. package/vendor/agent-runtime/dist/acp.d.ts +27 -0
  103. package/vendor/agent-runtime/dist/acp.js +86 -0
  104. package/vendor/agent-runtime/dist/companion-model.d.ts +7 -0
  105. package/vendor/agent-runtime/dist/companion-model.js +12 -0
  106. package/vendor/agent-runtime/dist/index.d.ts +3 -0
  107. package/vendor/agent-runtime/dist/index.js +3 -0
  108. package/vendor/agent-runtime/dist/turn-controller.d.ts +69 -0
  109. package/vendor/agent-runtime/dist/turn-controller.js +129 -0
  110. package/vendor/agent-runtime/package.json +11 -0
  111. package/vendor/client/dist/client/index.d.ts +0 -118
  112. package/vendor/client/dist/client/index.js +0 -260
  113. package/vendor/client/dist/index.d.ts +0 -1
  114. package/vendor/client/dist/index.js +0 -1
  115. package/vendor/client/dist/watch/index.d.ts +0 -226
  116. package/vendor/client/dist/watch/index.js +0 -1114
  117. package/vendor/client/package.json +0 -9
@@ -35,13 +35,16 @@ export function createPiAgentStreamAdapter(options = {}) {
35
35
  const lastUserText = [...normalizedMessages].reverse().find((entry) => entry.role === 'user');
36
36
  const prompt = typeof lastUserText?.content === 'string' ? lastUserText.content : '';
37
37
  if (options.completionBackend) {
38
+ throwIfAborted(streamOptions?.signal);
38
39
  const reply = await options.completionBackend.complete({
39
40
  model: resolvedModelId,
40
41
  apiKey: streamOptions?.apiKey,
41
42
  messages: normalizedMessages,
42
43
  tools: normalizedTools,
43
44
  systemPrompt: context?.systemPrompt,
45
+ signal: streamOptions?.signal,
44
46
  });
47
+ throwIfAborted(streamOptions?.signal);
45
48
  emitCompletionResult(stream, message, reply);
46
49
  return;
47
50
  }
@@ -86,14 +89,48 @@ export function createPiAgentStreamAdapter(options = {}) {
86
89
  });
87
90
  })().catch((error) => {
88
91
  const errorMessage = createBaseMessage();
89
- errorMessage.stopReason = 'error';
90
- errorMessage.errorMessage = error instanceof Error ? error.message : String(error);
91
- stream.push({ type: 'error', reason: 'error', error: errorMessage });
92
+ const aborted = isAbortError(error) || streamOptions?.signal?.aborted === true;
93
+ errorMessage.stopReason = aborted ? 'aborted' : 'error';
94
+ errorMessage.errorMessage = formatStreamErrorMessage(error);
95
+ stream.push({ type: 'error', reason: errorMessage.stopReason, error: errorMessage });
92
96
  });
93
97
  return stream;
94
98
  },
95
99
  };
96
100
  }
101
+ function throwIfAborted(signal) {
102
+ if (!signal?.aborted) {
103
+ return;
104
+ }
105
+ throw createAbortError();
106
+ }
107
+ function createAbortError() {
108
+ const error = new Error('Request was aborted.');
109
+ error.name = 'AbortError';
110
+ return error;
111
+ }
112
+ function formatStreamErrorMessage(error) {
113
+ if (isAbortError(error)) {
114
+ return 'Request was aborted.';
115
+ }
116
+ if (isAuthExpiredError(error)) {
117
+ return 'LinX Cloud login expired.';
118
+ }
119
+ return error instanceof Error ? error.message : String(error);
120
+ }
121
+ function isAbortError(error) {
122
+ return error instanceof Error && error.name === 'AbortError';
123
+ }
124
+ function isAuthExpiredError(error) {
125
+ if (isRecord(error) && error.authExpired === true) {
126
+ return true;
127
+ }
128
+ const message = error instanceof Error ? error.message : String(error);
129
+ const normalized = message.toLowerCase();
130
+ return normalized.includes('linx cloud login expired')
131
+ || normalized.includes('invalid solid token')
132
+ || (normalized.includes('chat request failed (401)') && normalized.includes('unauthorized'));
133
+ }
97
134
  function resolveModelId(modelArg, overrideModelId, fallbackModelId) {
98
135
  if (overrideModelId?.trim()) {
99
136
  return overrideModelId.trim();
@@ -127,10 +164,12 @@ function normalizeContextMessages(context) {
127
164
  if (entry.role === 'assistant') {
128
165
  const content = normalizeAssistantTextContent(entry.content);
129
166
  const toolCalls = normalizeAssistantToolCalls(entry.content);
167
+ const reasoningContent = normalizeAssistantReasoningContent(entry.content);
130
168
  if (content || toolCalls.length > 0) {
131
169
  normalized.push({
132
170
  role: 'assistant',
133
171
  content: content || null,
172
+ ...(reasoningContent && toolCalls.length > 0 ? { reasoning_content: reasoningContent } : {}),
134
173
  ...(toolCalls.length > 0 ? { tool_calls: toolCalls } : {}),
135
174
  });
136
175
  }
@@ -149,7 +188,63 @@ function normalizeContextMessages(context) {
149
188
  }
150
189
  }
151
190
  }
152
- return normalized;
191
+ return sanitizeChatCompletionMessages(normalized);
192
+ }
193
+ function sanitizeChatCompletionMessages(messages) {
194
+ const sanitized = [];
195
+ for (let index = 0; index < messages.length; index += 1) {
196
+ const message = messages[index];
197
+ if (message.role === 'tool') {
198
+ continue;
199
+ }
200
+ if (message.role !== 'assistant' || !message.tool_calls?.length) {
201
+ sanitized.push(message);
202
+ continue;
203
+ }
204
+ const followingToolMessages = [];
205
+ let nextIndex = index + 1;
206
+ while (nextIndex < messages.length && messages[nextIndex]?.role === 'tool') {
207
+ followingToolMessages.push(messages[nextIndex]);
208
+ nextIndex += 1;
209
+ }
210
+ const toolResultIds = new Set(followingToolMessages
211
+ .map((toolMessage) => toolMessage.tool_call_id)
212
+ .filter((toolCallId) => typeof toolCallId === 'string' && toolCallId.length > 0));
213
+ const matchedToolCalls = message.tool_calls.filter((toolCall) => toolResultIds.has(toolCall.id));
214
+ if (matchedToolCalls.length > 0) {
215
+ const matchedToolCallIds = new Set(matchedToolCalls.map((toolCall) => toolCall.id));
216
+ const emittedToolResults = new Set();
217
+ sanitized.push({
218
+ ...message,
219
+ tool_calls: matchedToolCalls,
220
+ });
221
+ for (const toolMessage of followingToolMessages) {
222
+ const toolCallId = toolMessage.tool_call_id;
223
+ if (typeof toolCallId !== 'string' || !matchedToolCallIds.has(toolCallId) || emittedToolResults.has(toolCallId)) {
224
+ continue;
225
+ }
226
+ sanitized.push(toolMessage);
227
+ emittedToolResults.add(toolCallId);
228
+ }
229
+ }
230
+ else if (hasVisibleMessageContent(message.content)) {
231
+ sanitized.push({
232
+ role: 'assistant',
233
+ content: message.content,
234
+ });
235
+ }
236
+ index = nextIndex - 1;
237
+ }
238
+ return sanitized;
239
+ }
240
+ function hasVisibleMessageContent(content) {
241
+ if (typeof content === 'string') {
242
+ return content.trim().length > 0;
243
+ }
244
+ if (!Array.isArray(content)) {
245
+ return false;
246
+ }
247
+ return content.some((part) => typeof part.text === 'string' && part.text.trim().length > 0);
153
248
  }
154
249
  function normalizeContextTools(tools) {
155
250
  if (!Array.isArray(tools)) {
@@ -194,6 +289,24 @@ function normalizeAssistantToolCalls(content) {
194
289
  }];
195
290
  });
196
291
  }
292
+ function normalizeAssistantReasoningContent(content) {
293
+ if (!Array.isArray(content)) {
294
+ return '';
295
+ }
296
+ return content
297
+ .map((part) => {
298
+ if (!isRecord(part) || part.type !== 'thinking') {
299
+ return '';
300
+ }
301
+ const signature = typeof part.thinkingSignature === 'string' ? part.thinkingSignature : '';
302
+ if (signature && signature !== 'reasoning_content') {
303
+ return '';
304
+ }
305
+ return typeof part.thinking === 'string' ? part.thinking : '';
306
+ })
307
+ .join('')
308
+ .trim();
309
+ }
197
310
  function normalizeAssistantTextContent(content) {
198
311
  if (!Array.isArray(content)) {
199
312
  return normalizeMessageContent(content);
@@ -228,7 +341,44 @@ function normalizeMessageContent(content) {
228
341
  }
229
342
  function emitCompletionResult(stream, message, reply) {
230
343
  const content = typeof reply === 'string' ? reply : reply.content ?? '';
344
+ const reasoningContent = typeof reply === 'string' ? '' : reply.reasoningContent ?? '';
231
345
  const toolCalls = typeof reply === 'string' ? [] : reply.toolCalls ?? [];
346
+ if (!isStringReply(reply) && reply.usage) {
347
+ message.usage = {
348
+ input: reply.usage.input,
349
+ output: reply.usage.output,
350
+ cacheRead: reply.usage.cacheRead,
351
+ cacheWrite: reply.usage.cacheWrite,
352
+ totalTokens: reply.usage.totalTokens,
353
+ cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 },
354
+ };
355
+ }
356
+ if (reasoningContent) {
357
+ const contentIndex = message.content.length;
358
+ message.content.push({
359
+ type: 'thinking',
360
+ thinking: '',
361
+ thinkingSignature: 'reasoning_content',
362
+ });
363
+ stream.push({ type: 'thinking_start', contentIndex, partial: { ...message } });
364
+ message.content[contentIndex] = {
365
+ type: 'thinking',
366
+ thinking: reasoningContent,
367
+ thinkingSignature: 'reasoning_content',
368
+ };
369
+ stream.push({
370
+ type: 'thinking_delta',
371
+ contentIndex,
372
+ delta: reasoningContent,
373
+ partial: { ...message },
374
+ });
375
+ stream.push({
376
+ type: 'thinking_end',
377
+ contentIndex,
378
+ content: reasoningContent,
379
+ partial: { ...message },
380
+ });
381
+ }
232
382
  if (content) {
233
383
  const contentIndex = message.content.length;
234
384
  message.content.push({ type: 'text', text: '' });
@@ -1 +1 @@
1
- {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../../../../../src/lib/pi-adapter/stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iCAAiC,EAA2D,MAAM,qBAAqB,CAAA;AAGhI,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAA;AAEjE,MAAM,sBAAsB,GAAG,YAAY,CAAA;AAC3C,MAAM,uBAAuB,GAAG,6BAA6B,CAAA;AAgD7D,MAAM,UAAU,0BAA0B,CAAC,UAAuC,EAAE;IAClF,MAAM,iBAAiB,GAAG,CAAC,OAAgB,EAAoB,EAAE,CAAC,CAAC;QACjE,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,EAAE;QACX,GAAG,EAAE,uBAAuB;QAC5B,QAAQ,EAAE,sBAAsB;QAChC,KAAK,EAAE,OAAO,IAAI,OAAO,CAAC,KAAK,IAAI,2BAA2B;QAC9D,KAAK,EAAE;YACL,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC;YACT,SAAS,EAAE,CAAC;YACZ,UAAU,EAAE,CAAC;YACb,WAAW,EAAE,CAAC;YACd,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;SACrE;QACD,UAAU,EAAE,MAAM;QAClB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;KACtB,CAAC,CAAA;IAEF,OAAO;QACL,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,QAAQ,CACN,QAAkB,EAClB,OAAgG,EAChG,aAAqD;YAErD,MAAM,MAAM,GAAG,iCAAiC,EAAE,CAAA;YAClD,MAAM,eAAe,GAAG,cAAc,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;YACvF,MAAM,OAAO,GAAG,iBAAiB,CAAC,eAAe,CAAC,CAAA;YAElD,KAAK,CAAC,KAAK,IAAI,EAAE;gBACf,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,EAAE,CAAC,CAAA;gBACvD,MAAM,kBAAkB,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAA;gBAC5D,MAAM,eAAe,GAAG,qBAAqB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;gBAC7D,MAAM,YAAY,GAAG,CAAC,GAAG,kBAAkB,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAA;gBAC7F,MAAM,MAAM,GAAG,OAAO,YAAY,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAA;gBAEpF,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;oBAC9B,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC;wBACrD,KAAK,EAAE,eAAe;wBACtB,MAAM,EAAE,aAAa,EAAE,MAAM;wBAC7B,QAAQ,EAAE,kBAAkB;wBAC5B,KAAK,EAAE,eAAe;wBACtB,YAAY,EAAE,OAAO,EAAE,YAAY;qBACpC,CAAC,CAAA;oBACF,oBAAoB,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;oBAC5C,OAAM;gBACR,CAAC;gBAED,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;gBAC3H,IAAI,IAAI,GAAG,EAAE,CAAA;gBACb,IAAI,WAAW,GAAG,KAAK,CAAA;gBAEvB,IAAI,MAAM,EAAE,CAAC;oBACX,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;wBACjC,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;4BACrC,IAAI,CAAC,WAAW,EAAE,CAAC;gCACjB,OAAO,CAAC,OAAO,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAA;gCAC9C,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,EAAE,CAAC,CAAA;gCAC7E,WAAW,GAAG,IAAI,CAAA;4BACpB,CAAC;4BAED,IAAI,IAAI,KAAK,CAAC,IAAI,CAAA;4BAClB,OAAO,CAAC,OAAO,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;4BAC1C,MAAM,CAAC,IAAI,CAAC;gCACV,IAAI,EAAE,YAAY;gCAClB,YAAY,EAAE,CAAC;gCACf,KAAK,EAAE,KAAK,CAAC,IAAI;gCACjB,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE;6BACxB,CAAC,CAAA;4BACF,SAAQ;wBACV,CAAC;wBAED,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;4BACpC,MAAK;wBACP,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,IAAI,WAAW,EAAE,CAAC;oBAChB,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI,EAAE,UAAU;wBAChB,YAAY,EAAE,CAAC;wBACf,OAAO,EAAE,IAAI;wBACb,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE;qBACxB,CAAC,CAAA;gBACJ,CAAC;gBAED,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,MAAM;oBACZ,MAAM,EAAE,MAAM;oBACd,OAAO;iBACR,CAAC,CAAA;YACJ,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACnB,MAAM,YAAY,GAAG,iBAAiB,EAAE,CAAA;gBACxC,YAAY,CAAC,UAAU,GAAG,OAAO,CAAA;gBACjC,YAAY,CAAC,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;gBAClF,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAA;YACtE,CAAC,CAAC,CAAA;YAEF,OAAO,MAAM,CAAA;QACf,CAAC;KACF,CAAA;AACH,CAAC;AAED,SAAS,cAAc,CAAC,QAAiB,EAAE,eAAwB,EAAE,eAAwB;IAC3F,IAAI,eAAe,EAAE,IAAI,EAAE,EAAE,CAAC;QAC5B,OAAO,eAAe,CAAC,IAAI,EAAE,CAAA;IAC/B,CAAC;IAED,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI,IAAI,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC1E,MAAM,OAAO,GAAI,QAA6B,CAAC,EAAE,CAAA;QACjD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YAClD,OAAO,OAAO,CAAC,IAAI,EAAE,CAAA;QACvB,CAAC;IACH,CAAC;IAED,IAAI,eAAe,EAAE,IAAI,EAAE,EAAE,CAAC;QAC5B,OAAO,eAAe,CAAC,IAAI,EAAE,CAAA;IAC/B,CAAC;IAED,OAAO,2BAA2B,CAAA;AACpC,CAAC;AAED,SAAS,wBAAwB,CAAC,OAAwE;IACxG,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,EAAE,CAAA;IACxC,MAAM,UAAU,GAAwB,EAAE,CAAA;IAC1C,MAAM,YAAY,GAAG,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,CAAA;IAClD,IAAI,YAAY,EAAE,CAAC;QACjB,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAA;IAC5D,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC7B,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACrD,MAAM,OAAO,GAAG,uBAAuB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YACtD,IAAI,OAAO,EAAE,CAAC;gBACZ,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;YAChD,CAAC;YACD,SAAQ;QACV,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,6BAA6B,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YAC5D,MAAM,SAAS,GAAG,2BAA2B,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YAC5D,IAAI,OAAO,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpC,UAAU,CAAC,IAAI,CAAC;oBACd,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE,OAAO,IAAI,IAAI;oBACxB,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC3D,CAAC,CAAA;YACJ,CAAC;YACD,SAAQ;QACV,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACzD,MAAM,OAAO,GAAG,uBAAuB,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,qBAAqB,CAAA;YAC/E,MAAM,UAAU,GAAG,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAA;YACtF,IAAI,UAAU,EAAE,CAAC;gBACf,UAAU,CAAC,IAAI,CAAC;oBACd,IAAI,EAAE,MAAM;oBACZ,OAAO;oBACP,YAAY,EAAE,UAAU;oBACxB,GAAG,CAAC,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACxE,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAA;AACnB,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAiC;IAC9D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,MAAM,UAAU,GAAqB,EAAE,CAAA;IACvC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;YAChB,SAAQ;QACV,CAAC;QACD,UAAU,CAAC,IAAI,CAAC;YACd,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE;gBACR,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;aAC5B;SACF,CAAC,CAAA;IACJ,CAAC;IACD,OAAO,UAAU,CAAA;AACnB,CAAC;AAED,SAAS,2BAA2B,CAAC,OAAgB;IACnD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,CAAA;IACX,CAAC;IAED,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QAC9B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAChD,OAAO,EAAE,CAAA;QACX,CAAC;QACD,MAAM,EAAE,GAAG,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;QACrD,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;QAC3D,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,EAAE,CAAA;QACX,CAAC;QACD,OAAO,CAAC;gBACN,EAAE;gBACF,IAAI,EAAE,UAAmB;gBACzB,QAAQ,EAAE;oBACR,IAAI;oBACJ,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC1E;aACF,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,6BAA6B,CAAC,OAAgB;IACrD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,OAAO,uBAAuB,CAAC,OAAO,CAAC,CAAA;IACzC,CAAC;IAED,OAAO,OAAO;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC3C,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAA;QAChC,CAAC;QACD,OAAO,EAAE,CAAA;IACX,CAAC,CAAC;SACD,IAAI,CAAC,EAAE,CAAC,CAAA;AACb,CAAC;AAED,SAAS,uBAAuB,CAAC,OAAgB;IAC/C,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,CAAA;IACX,CAAC;IAED,OAAO,OAAO;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAA;QACb,CAAC;QAED,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC3C,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAA;QAChC,CAAC;QAED,OAAO,EAAE,CAAA;IACX,CAAC,CAAC;SACD,IAAI,CAAC,EAAE,CAAC,CAAA;AACb,CAAC;AAED,SAAS,oBAAoB,CAC3B,MAAmC,EACnC,OAAyB,EACzB,KAAyC;IAEzC,MAAM,OAAO,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAA;IACvE,MAAM,SAAS,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAAA;IAExE,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAA;QAC3C,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAA;QAChD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,EAAE,CAAC,CAAA;QAC1E,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA;QAC/D,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,EAAE,CAAC,CAAA;QAC1F,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,EAAE,CAAC,CAAA;IACnF,CAAC;IAED,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,eAAe,GAAG,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;QACvE,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAA;QAC3C,MAAM,UAAU,GAAG;YACjB,IAAI,EAAE,UAAmB;YACzB,EAAE,EAAE,QAAQ,CAAC,EAAE;YACf,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI;YAC5B,SAAS,EAAE,eAAe;SAC3B,CAAA;QACD,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAChC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,EAAE,CAAC,CAAA;QAC9E,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,gBAAgB;YACtB,YAAY;YACZ,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,SAAS;YAClC,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE;SACxB,CAAC,CAAA;QACF,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,cAAc;YACpB,YAAY;YACZ,QAAQ,EAAE,UAAU;YACpB,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE;SACxB,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,YAAY,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAA;IAC1H,OAAO,CAAC,UAAU,GAAG,MAAM,CAAA;IAC3B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;AAChD,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAa;IACvC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,CAAA;QACxC,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAA;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,KAAyC;IAC9D,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAA;AAClC,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAA;AACpD,CAAC;AAED,KAAK,SAAS,CAAC,CAAC,wBAAwB,CACtC,OAGC,EACD,MAAc;IAEd,MAAM,KAAK,GAA2B,EAAE,CAAA;IACxC,IAAI,MAAM,GAAwB,IAAI,CAAA;IACtC,IAAI,IAAI,GAAG,KAAK,CAAA;IAChB,MAAM,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;QAC9C,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACjB,MAAM,EAAE,EAAE,CAAA;QACV,MAAM,GAAG,IAAI,CAAA;QACb,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;YACpC,IAAI,GAAG,IAAI,CAAA;QACb,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QAC9B,OAAO,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;oBAClC,MAAM,GAAG,OAAO,CAAA;gBAClB,CAAC,CAAC,CAAA;gBACF,SAAQ;YACV,CAAC;YAED,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAA;YAC3B,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,KAAK,CAAA;YACb,CAAC;QACH,CAAC;IACH,CAAC;YAAS,CAAC;QACT,WAAW,EAAE,CAAA;IACf,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../../src/lib/pi-adapter/stream.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"theme.js","sourceRoot":"","sources":["../../../../../../src/lib/pi-adapter/theme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,MAAM,UAAU,GAAG;IACjB,OAAO,EAAE,6HAA6H;IACtI,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,SAAS;QAChB,GAAG,EAAE,SAAS;QACd,MAAM,EAAE,SAAS;QACjB,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,SAAS;QAClB,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,SAAS;QACrB,SAAS,EAAE,SAAS;QACpB,aAAa,EAAE,SAAS;QACxB,aAAa,EAAE,SAAS;QACxB,WAAW,EAAE,SAAS;QACtB,WAAW,EAAE,SAAS;KACvB;IACD,MAAM,EAAE;QACN,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE,MAAM;QACd,YAAY,EAAE,MAAM;QACpB,WAAW,EAAE,UAAU;QACvB,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,KAAK;QACZ,OAAO,EAAE,QAAQ;QACjB,KAAK,EAAE,MAAM;QACb,GAAG,EAAE,SAAS;QACd,IAAI,EAAE,EAAE;QACR,YAAY,EAAE,MAAM;QACpB,UAAU,EAAE,YAAY;QACxB,aAAa,EAAE,WAAW;QAC1B,eAAe,EAAE,SAAS;QAC1B,eAAe,EAAE,aAAa;QAC9B,iBAAiB,EAAE,EAAE;QACrB,kBAAkB,EAAE,SAAS;QAC7B,aAAa,EAAE,eAAe;QAC9B,aAAa,EAAE,eAAe;QAC9B,WAAW,EAAE,aAAa;QAC1B,SAAS,EAAE,EAAE;QACb,UAAU,EAAE,MAAM;QAClB,SAAS,EAAE,SAAS;QACpB,MAAM,EAAE,SAAS;QACjB,SAAS,EAAE,SAAS;QACpB,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,OAAO;QACpB,iBAAiB,EAAE,MAAM;QACzB,OAAO,EAAE,MAAM;QACf,aAAa,EAAE,MAAM;QACrB,IAAI,EAAE,MAAM;QACZ,YAAY,EAAE,QAAQ;QACtB,aAAa,EAAE,OAAO;QACtB,eAAe,EAAE,KAAK;QACtB,eAAe,EAAE,MAAM;QACvB,aAAa,EAAE,SAAS;QACxB,aAAa,EAAE,SAAS;QACxB,cAAc,EAAE,SAAS;QACzB,cAAc,EAAE,SAAS;QACzB,YAAY,EAAE,SAAS;QACvB,YAAY,EAAE,SAAS;QACvB,UAAU,EAAE,SAAS;QACrB,cAAc,EAAE,SAAS;QACzB,iBAAiB,EAAE,SAAS;QAC5B,WAAW,EAAE,UAAU;QACvB,eAAe,EAAE,SAAS;QAC1B,WAAW,EAAE,SAAS;QACtB,cAAc,EAAE,SAAS;QACzB,YAAY,EAAE,SAAS;QACvB,aAAa,EAAE,SAAS;QACxB,QAAQ,EAAE,OAAO;KAClB;CACF,CAAA;AAED,MAAM,UAAU,iBAAiB,CAAC,QAAgB;IAChD,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;IAC1C,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACzC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;IAC9C,aAAa,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAA;IACpE,OAAO,SAAS,CAAA;AAClB,CAAC"}
1
+ {"version":3,"file":"theme.js","sourceRoot":"","sources":["../../../src/lib/pi-adapter/theme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,MAAM,UAAU,GAAG;IACjB,OAAO,EAAE,6HAA6H;IACtI,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,SAAS;QAChB,GAAG,EAAE,SAAS;QACd,MAAM,EAAE,SAAS;QACjB,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,SAAS;QAClB,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,SAAS;QACrB,SAAS,EAAE,SAAS;QACpB,aAAa,EAAE,SAAS;QACxB,aAAa,EAAE,SAAS;QACxB,WAAW,EAAE,SAAS;QACtB,WAAW,EAAE,SAAS;KACvB;IACD,MAAM,EAAE;QACN,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE,MAAM;QACd,YAAY,EAAE,MAAM;QACpB,WAAW,EAAE,UAAU;QACvB,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,KAAK;QACZ,OAAO,EAAE,QAAQ;QACjB,KAAK,EAAE,MAAM;QACb,GAAG,EAAE,SAAS;QACd,IAAI,EAAE,EAAE;QACR,YAAY,EAAE,MAAM;QACpB,UAAU,EAAE,YAAY;QACxB,aAAa,EAAE,WAAW;QAC1B,eAAe,EAAE,SAAS;QAC1B,eAAe,EAAE,aAAa;QAC9B,iBAAiB,EAAE,EAAE;QACrB,kBAAkB,EAAE,SAAS;QAC7B,aAAa,EAAE,eAAe;QAC9B,aAAa,EAAE,eAAe;QAC9B,WAAW,EAAE,aAAa;QAC1B,SAAS,EAAE,EAAE;QACb,UAAU,EAAE,MAAM;QAClB,SAAS,EAAE,SAAS;QACpB,MAAM,EAAE,SAAS;QACjB,SAAS,EAAE,SAAS;QACpB,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,OAAO;QACpB,iBAAiB,EAAE,MAAM;QACzB,OAAO,EAAE,MAAM;QACf,aAAa,EAAE,MAAM;QACrB,IAAI,EAAE,MAAM;QACZ,YAAY,EAAE,QAAQ;QACtB,aAAa,EAAE,OAAO;QACtB,eAAe,EAAE,KAAK;QACtB,eAAe,EAAE,MAAM;QACvB,aAAa,EAAE,SAAS;QACxB,aAAa,EAAE,SAAS;QACxB,cAAc,EAAE,SAAS;QACzB,cAAc,EAAE,SAAS;QACzB,YAAY,EAAE,SAAS;QACvB,YAAY,EAAE,SAAS;QACvB,UAAU,EAAE,SAAS;QACrB,cAAc,EAAE,SAAS;QACzB,iBAAiB,EAAE,SAAS;QAC5B,WAAW,EAAE,UAAU;QACvB,eAAe,EAAE,SAAS;QAC1B,WAAW,EAAE,SAAS;QACtB,cAAc,EAAE,SAAS;QACzB,YAAY,EAAE,SAAS;QACvB,aAAa,EAAE,SAAS;QACxB,QAAQ,EAAE,OAAO;KAClB;CACF,CAAA;AAED,MAAM,UAAU,iBAAiB,CAAC,QAAgB;IAChD,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;IAC1C,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACzC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;IAC9C,aAAa,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAA;IACpE,OAAO,SAAS,CAAA;AAClB,CAAC"}
@@ -0,0 +1,154 @@
1
+ /**
2
+ * Web Fetch & Web Search tools via Jina.ai
3
+ *
4
+ * These tools need a Jina API key. They do NOT read/write Pod themselves.
5
+ * Instead they accept an apiKey parameter. The LLM is responsible for:
6
+ * 1. Reading /alice/settings/credentials.ttl for <#jina> xpod:apiKey "..."
7
+ * 2. Passing it as the apiKey parameter
8
+ * 3. If absent, asking the user and writing it to the same path
9
+ *
10
+ * This follows the standard credential convention:
11
+ * Path: /alice/settings/credentials.ttl
12
+ * Entry: <#credential-id> xpod:apiKey "value" .
13
+ */
14
+ import { Type } from '@sinclair/typebox';
15
+ // ── Constants ───────────────────────────────────────────────────────────────
16
+ const JINA_READER_BASE = 'https://r.jina.ai';
17
+ const JINA_SEARCH_BASE = 'https://s.jina.ai';
18
+ const FETCH_TIMEOUT_MS = 30_000;
19
+ // ── Parameter Schemas ──────────────────────────────────────────────────────
20
+ const WebFetchParams = Type.Object({
21
+ url: Type.String({ description: 'Fully-formed URL to fetch (e.g., https://example.com/page)' }),
22
+ apiKey: Type.Optional(Type.String({ description: 'Jina API key from Pod credentials (<#jina> xpod:apiKey). If missing, ask user to get one at https://jina.ai and save to credentials.' })),
23
+ });
24
+ const WebSearchParams = Type.Object({
25
+ query: Type.String({ description: 'Search query' }),
26
+ apiKey: Type.Optional(Type.String({ description: 'Jina API key from Pod credentials (<#jina> xpod:apiKey). If missing, ask user to get one at https://jina.ai and save to credentials.' })),
27
+ });
28
+ // ── Helpers ─────────────────────────────────────────────────────────────────
29
+ function resolveKey(explicit) {
30
+ if (explicit?.trim())
31
+ return explicit.trim();
32
+ if (process.env.JINA_API_KEY?.trim())
33
+ return process.env.JINA_API_KEY.trim();
34
+ return null;
35
+ }
36
+ function missingKeyMessage() {
37
+ return [
38
+ 'No Jina API key provided.',
39
+ '',
40
+ '1. Read /alice/settings/credentials.ttl and look for <#jina>.',
41
+ '2. If found, pass its xpod:apiKey value as the apiKey parameter.',
42
+ '3. If not, ask the user to get a free key at https://jina.ai,',
43
+ ' then save it: <#jina> xpod:apiKey "jina_xxx" .',
44
+ '4. Retry with the key.',
45
+ ].join('\n');
46
+ }
47
+ function formatResults(results) {
48
+ if (results.length === 0)
49
+ return 'No results found.';
50
+ return results.map((r, i) => `${i + 1}. **${r.title}**\n ${r.url}\n ${r.description}`).join('\n\n');
51
+ }
52
+ // ── Core Fetch / Search ────────────────────────────────────────────────────
53
+ async function jinaFetch(url, apiKey, signal) {
54
+ try {
55
+ const c = new AbortController();
56
+ const t = setTimeout(() => c.abort(), FETCH_TIMEOUT_MS);
57
+ if (signal)
58
+ signal.addEventListener('abort', () => c.abort(), { once: true });
59
+ const r = await fetch(`${JINA_READER_BASE}/${url}`, {
60
+ headers: { Accept: 'text/markdown', Authorization: `Bearer ${apiKey}` },
61
+ signal: c.signal,
62
+ });
63
+ clearTimeout(t);
64
+ if (!r.ok) {
65
+ const b = await r.text().catch(() => '');
66
+ return { ok: false, error: `HTTP ${r.status}: ${b.slice(0, 200)}` };
67
+ }
68
+ return { ok: true, markdown: await r.text() };
69
+ }
70
+ catch (e) {
71
+ return { ok: false, error: e instanceof Error ? e.message : String(e) };
72
+ }
73
+ }
74
+ async function jinaSearch(query, apiKey, signal) {
75
+ try {
76
+ const c = new AbortController();
77
+ const t = setTimeout(() => c.abort(), FETCH_TIMEOUT_MS);
78
+ if (signal)
79
+ signal.addEventListener('abort', () => c.abort(), { once: true });
80
+ const r = await fetch(`${JINA_SEARCH_BASE}/?q=${encodeURIComponent(query)}`, {
81
+ headers: { Accept: 'application/json', Authorization: `Bearer ${apiKey}` },
82
+ signal: c.signal,
83
+ });
84
+ clearTimeout(t);
85
+ if (!r.ok) {
86
+ const b = await r.text().catch(() => '');
87
+ return { ok: false, error: `HTTP ${r.status}: ${b.slice(0, 200)}` };
88
+ }
89
+ const d = await r.json();
90
+ return { ok: true, results: (d.data ?? []).map((r) => ({ title: r.title ?? 'Untitled', url: r.url ?? '', description: r.description ?? '' })) };
91
+ }
92
+ catch (e) {
93
+ return { ok: false, error: e instanceof Error ? e.message : String(e) };
94
+ }
95
+ }
96
+ // ── Tool Definitions ────────────────────────────────────────────────────────
97
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
98
+ export const webFetchTool = {
99
+ name: 'web_fetch',
100
+ label: 'Web Fetch',
101
+ description: [
102
+ 'Fetch a web page as clean Markdown via Jina Reader.',
103
+ 'Requires apiKey from Pod credentials (<#jina> xpod:apiKey).',
104
+ 'Use for documentation, API references, blog posts, search results.',
105
+ 'Not for GitHub (use gh CLI) or local files (use read).',
106
+ ].join('\n'),
107
+ parameters: WebFetchParams,
108
+ async execute(_callId, params, signal, onUpdate) {
109
+ const url = params.url.trim();
110
+ if (!url)
111
+ return { content: [{ type: 'text', text: 'Error: url is required' }], isError: true };
112
+ if (!url.startsWith('http://') && !url.startsWith('https://')) {
113
+ return { content: [{ type: 'text', text: 'Error: URL must start with http:// or https://' }], isError: true };
114
+ }
115
+ const apiKey = resolveKey(params.apiKey);
116
+ if (!apiKey)
117
+ return { content: [{ type: 'text', text: missingKeyMessage() }], isError: true };
118
+ onUpdate?.({ content: [{ type: 'text', text: `Fetching ${url}...` }] });
119
+ const r = await jinaFetch(url, apiKey, signal);
120
+ if (!r.ok)
121
+ return { content: [{ type: 'text', text: `Failed: ${r.error}` }], isError: true };
122
+ return { content: [{ type: 'text', text: `Fetched ${url}:\n\n${r.markdown}` }] };
123
+ },
124
+ };
125
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
126
+ export const webSearchTool = {
127
+ name: 'web_search',
128
+ label: 'Web Search',
129
+ description: [
130
+ 'Search the web via Jina Search. Returns titles, URLs, descriptions.',
131
+ 'Requires apiKey from Pod credentials (<#jina> xpod:apiKey).',
132
+ 'Use to find pages, then web_fetch for full content.',
133
+ ].join('\n'),
134
+ parameters: WebSearchParams,
135
+ async execute(_callId, params, signal, onUpdate) {
136
+ const query = params.query.trim();
137
+ if (!query)
138
+ return { content: [{ type: 'text', text: 'Error: query is required' }], isError: true };
139
+ const apiKey = resolveKey(params.apiKey);
140
+ if (!apiKey)
141
+ return { content: [{ type: 'text', text: missingKeyMessage() }], isError: true };
142
+ onUpdate?.({ content: [{ type: 'text', text: `Searching "${query}"...` }] });
143
+ const r = await jinaSearch(query, apiKey, signal);
144
+ if (!r.ok)
145
+ return { content: [{ type: 'text', text: `Search failed: ${r.error}` }], isError: true };
146
+ return { content: [{ type: 'text', text: `Results for "${query}":\n\n${formatResults(r.results)}` }] };
147
+ },
148
+ };
149
+ // ── Pi Extension ────────────────────────────────────────────────────────────
150
+ export default function (pi) {
151
+ pi.registerTool(webFetchTool);
152
+ pi.registerTool(webSearchTool);
153
+ }
154
+ //# sourceMappingURL=web-fetch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web-fetch.js","sourceRoot":"","sources":["../../../src/lib/pi-adapter/web-fetch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEzC,+EAA+E;AAE/E,MAAM,gBAAgB,GAAG,mBAAmB,CAAC;AAC7C,MAAM,gBAAgB,GAAG,mBAAmB,CAAC;AAC7C,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAEhC,8EAA8E;AAE9E,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC;IACjC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,4DAA4D,EAAE,CAAC;IAC/F,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,sIAAsI,EAAE,CAAC,CAAC;CAC5L,CAAC,CAAC;AAEH,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC;IAClC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC;IACnD,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,sIAAsI,EAAE,CAAC,CAAC;CAC5L,CAAC,CAAC;AAKH,+EAA+E;AAE/E,SAAS,UAAU,CAAC,QAAiB;IACnC,IAAI,QAAQ,EAAE,IAAI,EAAE;QAAE,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC7C,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,EAAE;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IAC7E,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,iBAAiB;IACxB,OAAO;QACL,2BAA2B;QAC3B,EAAE;QACF,+DAA+D;QAC/D,kEAAkE;QAClE,+DAA+D;QAC/D,oDAAoD;QACpD,wBAAwB;KACzB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAC,OAAmE;IACxF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,mBAAmB,CAAC;IACrD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC1G,CAAC;AAED,8EAA8E;AAE9E,KAAK,UAAU,SAAS,CAAC,GAAW,EAAE,MAAc,EAAE,MAAoB;IACxE,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,IAAI,eAAe,EAAE,CAAC;QAChC,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,gBAAgB,CAAC,CAAC;QACxD,IAAI,MAAM;YAAE,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9E,MAAM,CAAC,GAAG,MAAM,KAAK,CAAC,GAAG,gBAAgB,IAAI,GAAG,EAAE,EAAE;YAClD,OAAO,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,aAAa,EAAE,UAAU,MAAM,EAAE,EAAE;YACvE,MAAM,EAAE,CAAC,CAAC,MAAM;SACjB,CAAC,CAAC;QACH,YAAY,CAAC,CAAC,CAAC,CAAC;QAChB,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YACV,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YACzC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;QACtE,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;IAChD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1E,CAAC;AACH,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,KAAa,EAAE,MAAc,EAAE,MAAoB;IAC3E,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,IAAI,eAAe,EAAE,CAAC;QAChC,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,gBAAgB,CAAC,CAAC;QACxD,IAAI,MAAM;YAAE,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9E,MAAM,CAAC,GAAG,MAAM,KAAK,CAAC,GAAG,gBAAgB,OAAO,kBAAkB,CAAC,KAAK,CAAC,EAAE,EAAE;YAC3E,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,aAAa,EAAE,UAAU,MAAM,EAAE,EAAE;YAC1E,MAAM,EAAE,CAAC,CAAC,MAAM;SACjB,CAAC,CAAC;QACH,YAAY,CAAC,CAAC,CAAC,CAAC;QAChB,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YACV,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YACzC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;QACtE,CAAC;QACD,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,EAA8E,CAAC;QACrG,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC;IAClJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1E,CAAC;AACH,CAAC;AAED,+EAA+E;AAE/E,8DAA8D;AAC9D,MAAM,CAAC,MAAM,YAAY,GAAQ;IAC/B,IAAI,EAAE,WAAW;IACjB,KAAK,EAAE,WAAW;IAClB,WAAW,EAAE;QACX,qDAAqD;QACrD,6DAA6D;QAC7D,oEAAoE;QACpE,wDAAwD;KACzD,CAAC,IAAI,CAAC,IAAI,CAAC;IACZ,UAAU,EAAE,cAAc;IAC1B,KAAK,CAAC,OAAO,CAAC,OAAe,EAAE,MAAsB,EAAE,MAAoB,EAAE,QAA+B;QAC1G,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9B,IAAI,CAAC,GAAG;YAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,wBAAwB,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACzG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9D,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,gDAAgD,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACzH,CAAC;QACD,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAEvG,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,YAAY,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QACjF,MAAM,CAAC,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/C,IAAI,CAAC,CAAC,CAAC,EAAE;YAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,WAAY,CAAuB,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC7H,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,WAAW,GAAG,QAAQ,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC;IAC5F,CAAC;CACF,CAAC;AAEF,8DAA8D;AAC9D,MAAM,CAAC,MAAM,aAAa,GAAQ;IAChC,IAAI,EAAE,YAAY;IAClB,KAAK,EAAE,YAAY;IACnB,WAAW,EAAE;QACX,qEAAqE;QACrE,6DAA6D;QAC7D,qDAAqD;KACtD,CAAC,IAAI,CAAC,IAAI,CAAC;IACZ,UAAU,EAAE,eAAe;IAC3B,KAAK,CAAC,OAAO,CAAC,OAAe,EAAE,MAAuB,EAAE,MAAoB,EAAE,QAA+B;QAC3G,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAClC,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,0BAA0B,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC7G,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAEvG,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,cAAc,KAAK,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QACtF,MAAM,CAAC,GAAG,MAAM,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAClD,IAAI,CAAC,CAAC,CAAC,EAAE;YAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,kBAAmB,CAAuB,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACpI,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,gBAAgB,KAAK,SAAS,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;IAClH,CAAC;CACF,CAAC;AAEF,+EAA+E;AAE/E,MAAM,CAAC,OAAO,WAAW,EAAgB;IACvC,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;IAC9B,EAAE,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;AACjC,CAAC"}
@@ -1,25 +1,13 @@
1
- import { agentTable, chatTable, drizzle, eq, findPodRowByStorageId, initSolidTables, messageTable, sessionTable, solidSchema, threadTable, whereByPodStorageId, } from './models.js';
1
+ import { agentTable, chatTable, drizzle, eq, extractChatIdFromChatRef, extractThreadIdFromThreadRef, initSolidTables, solidSchema, messageTable, sessionTable, threadTable, } from './models.js';
2
2
  import { DEFAULT_LINX_CLOUD_MODEL_ID } from './default-model.js';
3
3
  import { formatThreadLabel, toOpenAiMessages } from './thread-utils.js';
4
4
  const DEFAULT_CHAT_ID = 'cli-default';
5
5
  const DEFAULT_AGENT_ID = 'linx-cli-assistant';
6
6
  function extractChatId(chatIdOrUri) {
7
- if (!chatIdOrUri)
8
- return DEFAULT_CHAT_ID;
9
- if (chatIdOrUri.includes('#')) {
10
- const match = chatIdOrUri.match(/\.data\/chat\/([^/]+)\/index\.ttl#this/);
11
- if (match)
12
- return match[1];
13
- }
14
- return chatIdOrUri;
7
+ return extractChatIdFromChatRef(chatIdOrUri) ?? DEFAULT_CHAT_ID;
15
8
  }
16
9
  function extractThreadId(threadIdOrUri) {
17
- if (!threadIdOrUri)
18
- return undefined;
19
- if (threadIdOrUri.includes('#')) {
20
- return threadIdOrUri.split('#').pop() || undefined;
21
- }
22
- return threadIdOrUri;
10
+ return extractThreadIdFromThreadRef(threadIdOrUri) ?? undefined;
23
11
  }
24
12
  function getPodBaseUrl(webId) {
25
13
  return webId.replace('/profile/card#me', '').replace(/\/$/, '');
@@ -27,6 +15,18 @@ function getPodBaseUrl(webId) {
27
15
  function buildAgentUri(webId, agentId) {
28
16
  return `${getPodBaseUrl(webId)}/.data/agents/${agentId}.ttl`;
29
17
  }
18
+ function requireFindByLocator(db) {
19
+ if (typeof db.findByLocator !== 'function') {
20
+ throw new Error('Solid database does not support findByLocator');
21
+ }
22
+ return db.findByLocator.bind(db);
23
+ }
24
+ function requireUpdateByLocator(db) {
25
+ if (typeof db.updateByLocator !== 'function') {
26
+ throw new Error('Solid database does not support updateByLocator');
27
+ }
28
+ return db.updateByLocator.bind(db);
29
+ }
30
30
  function createDb(session) {
31
31
  return drizzle(session, {
32
32
  logger: false,
@@ -45,7 +45,8 @@ export async function initPodData(session) {
45
45
  return db;
46
46
  }
47
47
  async function ensureCliAgent(db, webId) {
48
- const existing = await findPodRowByStorageId(db, webId, agentTable, DEFAULT_AGENT_ID);
48
+ const findByLocator = requireFindByLocator(db);
49
+ const existing = await findByLocator(agentTable, { id: DEFAULT_AGENT_ID });
49
50
  if (existing) {
50
51
  return;
51
52
  }
@@ -66,7 +67,8 @@ export async function getOrCreateDefaultChat(session) {
66
67
  throw new Error('Missing webId in Solid session');
67
68
  }
68
69
  await ensureCliAgent(db, webId);
69
- const existing = await findPodRowByStorageId(db, webId, chatTable, DEFAULT_CHAT_ID);
70
+ const findByLocator = requireFindByLocator(db);
71
+ const existing = await findByLocator(chatTable, { id: DEFAULT_CHAT_ID });
70
72
  if (existing) {
71
73
  return DEFAULT_CHAT_ID;
72
74
  }
@@ -108,11 +110,9 @@ export async function createThread(session, chatId, workspace, title) {
108
110
  }
109
111
  export async function touchThread(session, threadId) {
110
112
  const db = await initPodData(session);
111
- const webId = session.info.webId;
112
- if (!webId) {
113
- throw new Error('Missing webId in Solid session');
114
- }
115
- await whereByPodStorageId(webId, threadTable, db.update(threadTable).set({ updatedAt: new Date() }), threadId).execute();
113
+ const chatId = extractChatId((await loadThread(session, threadId))?.chat) ?? DEFAULT_CHAT_ID;
114
+ const updateByLocator = requireUpdateByLocator(db);
115
+ await updateByLocator(threadTable, { chat: chatId, id: threadId }, { updatedAt: new Date() });
116
116
  }
117
117
  export async function loadMessages(session, threadId) {
118
118
  const db = await initPodData(session);
@@ -140,6 +140,7 @@ export async function saveUserMessage(session, chatId, threadId, content) {
140
140
  if (!webId) {
141
141
  throw new Error('Missing webId in Solid session');
142
142
  }
143
+ const updateByLocator = requireUpdateByLocator(db);
143
144
  await db.insert(messageTable).values({
144
145
  id: crypto.randomUUID(),
145
146
  chat: chatId,
@@ -150,11 +151,11 @@ export async function saveUserMessage(session, chatId, threadId, content) {
150
151
  status: 'sent',
151
152
  createdAt: now,
152
153
  }).execute();
153
- await whereByPodStorageId(webId, chatTable, db.update(chatTable).set({
154
+ await updateByLocator(chatTable, { id: chatId }, {
154
155
  lastActiveAt: now,
155
156
  lastMessagePreview: content.slice(0, 100),
156
157
  updatedAt: now,
157
- }), chatId).execute();
158
+ });
158
159
  await touchThread(session, threadId);
159
160
  }
160
161
  export async function saveAssistantMessage(session, chatId, threadId, content) {
@@ -164,6 +165,7 @@ export async function saveAssistantMessage(session, chatId, threadId, content) {
164
165
  if (!webId) {
165
166
  throw new Error('Missing webId in Solid session');
166
167
  }
168
+ const updateByLocator = requireUpdateByLocator(db);
167
169
  await db.insert(messageTable).values({
168
170
  id: crypto.randomUUID(),
169
171
  chat: chatId,
@@ -174,20 +176,28 @@ export async function saveAssistantMessage(session, chatId, threadId, content) {
174
176
  status: 'sent',
175
177
  createdAt: now,
176
178
  }).execute();
177
- await whereByPodStorageId(webId, chatTable, db.update(chatTable).set({
179
+ await updateByLocator(chatTable, { id: chatId }, {
178
180
  lastActiveAt: now,
179
181
  lastMessagePreview: content.slice(0, 100),
180
182
  updatedAt: now,
181
- }), chatId).execute();
183
+ });
182
184
  await touchThread(session, threadId);
183
185
  }
184
186
  export async function loadThread(session, threadId) {
185
187
  const db = await initPodData(session);
186
- const webId = session.info.webId;
187
- if (!webId) {
188
- throw new Error('Missing webId in Solid session');
188
+ const findByLocator = requireFindByLocator(db);
189
+ const directChatId = extractChatId(threadId);
190
+ const directThreadId = extractThreadId(threadId);
191
+ if (directChatId && directThreadId) {
192
+ return await findByLocator(threadTable, {
193
+ chat: directChatId,
194
+ id: directThreadId,
195
+ });
189
196
  }
190
- return await findPodRowByStorageId(db, webId, threadTable, threadId);
197
+ return await findByLocator(threadTable, {
198
+ chat: DEFAULT_CHAT_ID,
199
+ id: threadId,
200
+ });
191
201
  }
192
202
  export async function getLatestThreadId(session, chatId) {
193
203
  const threads = await listThreads(session, chatId);