@absolutejs/absolute 0.19.0-beta.461 → 0.19.0-beta.462

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.
package/dist/ai/index.js CHANGED
@@ -1796,6 +1796,12 @@ var streamTurns = async function* (options, renderers, messages, signal, startTi
1796
1796
  init_constants();
1797
1797
  var escapeHtml = (text) => text.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");
1798
1798
  var defaultChunk = (_text, fullContent) => `<div class="ai-content">${escapeHtml(fullContent)}</div>`;
1799
+ var defaultMessageStart = ({
1800
+ cancelUrl,
1801
+ content,
1802
+ messageId,
1803
+ sseUrl
1804
+ }) => `<div id="msg-${messageId}" class="message user">` + `<div>${escapeHtml(content)}</div>` + `</div>` + `<div id="response-${messageId}" ` + `hx-ext="sse" ` + `sse-connect="${escapeHtml(sseUrl)}" ` + `hx-swap="innerHTML">` + `<div id="sse-retrieval-${messageId}" sse-swap="retrieval" hx-swap="innerHTML"></div>` + `<div id="sse-sources-${messageId}" sse-swap="sources" hx-swap="innerHTML"></div>` + `<div id="sse-content-${messageId}" sse-swap="content" hx-swap="innerHTML"></div>` + `<div id="sse-thinking-${messageId}" sse-swap="thinking" hx-swap="innerHTML"></div>` + `<div id="sse-tools-${messageId}" sse-swap="tools" hx-swap="innerHTML"></div>` + `<div id="sse-images-${messageId}" sse-swap="images" hx-swap="innerHTML"></div>` + `<div id="sse-status-${messageId}" sse-swap="status" hx-swap="innerHTML">` + `<button type="button" class="ai-cancel-button" hx-post="${escapeHtml(cancelUrl)}" hx-target="#sse-status-${messageId}" hx-swap="innerHTML">Cancel</button>` + `</div>` + `</div>`;
1799
1805
  var defaultThinking = (text) => `<details class="ai-thinking"><summary>Thinking</summary><p>${escapeHtml(text)}</p></details>`;
1800
1806
  var defaultToolRunning = (name, _input) => `<div class="ai-tool running"><span class="tool-name">${escapeHtml(name)}</span> <span class="tool-status">Running...</span></div>`;
1801
1807
  var defaultToolComplete = (name, result) => `<details class="ai-tool complete"><summary>${escapeHtml(name)}</summary><pre>${escapeHtml(result)}</pre></details>`;
@@ -1815,11 +1821,14 @@ var defaultComplete = (usage, durationMs, model) => {
1815
1821
  return parts.length > 0 ? `<div class="ai-usage">${parts.join(" \xB7 ")}</div>` : "";
1816
1822
  };
1817
1823
  var defaultError = (message) => `<div class="ai-error">${escapeHtml(message)}</div>`;
1824
+ var defaultCanceled = () => `<div class="ai-canceled">Canceled.</div>`;
1818
1825
  var defaultRAGRetrieving = () => `<div class="ai-retrieving">Retrieving sources...</div>`;
1819
1826
  var defaultRAGRetrieved = (sources) => sources.length === 0 ? "" : `<div class="ai-sources">` + `<h4>Citations</h4>` + `<ul>` + `${sources.map((source) => `<li>[${source.chunkId}] ${escapeHtml(source.text)}${source.source ? ` (${escapeHtml(source.source)})` : ""}</li>`).join("")}` + `</ul>` + `</div>`;
1820
1827
  var resolveRenderers = (custom) => ({
1821
1828
  chunk: custom?.chunk ?? defaultChunk,
1829
+ messageStart: custom?.messageStart ?? defaultMessageStart,
1822
1830
  complete: custom?.complete ?? defaultComplete,
1831
+ canceled: custom?.canceled ?? defaultCanceled,
1823
1832
  error: custom?.error ?? defaultError,
1824
1833
  image: custom?.image ?? defaultImage,
1825
1834
  ragRetrieving: custom?.ragRetrieving ?? defaultRAGRetrieving,
@@ -3169,10 +3178,19 @@ var ragChat = (config) => {
3169
3178
  });
3170
3179
  await store.set(conversationId, conversation);
3171
3180
  const sseUrl = `${path}/sse/${conversationId}/${messageId}`;
3172
- return new Response(`<div id="msg-${messageId}" class="message user">` + `<div>${content}</div>` + `</div>` + `<div id="response-${messageId}" ` + `hx-ext="sse" ` + `sse-connect="${sseUrl}" ` + `hx-swap="innerHTML">` + `<div id="sse-retrieval-${messageId}" sse-swap="retrieval" hx-swap="innerHTML"></div>` + `<div id="sse-sources-${messageId}" sse-swap="sources" hx-swap="innerHTML"></div>` + `<div id="sse-content-${messageId}" sse-swap="content" hx-swap="innerHTML"></div>` + `<div id="sse-thinking-${messageId}" sse-swap="thinking" hx-swap="innerHTML"></div>` + `<div id="sse-tools-${messageId}" sse-swap="tools" hx-swap="innerHTML"></div>` + `<div id="sse-images-${messageId}" sse-swap="images" hx-swap="innerHTML"></div>` + `<div id="sse-status-${messageId}" sse-swap="status" hx-swap="innerHTML">` + `<button type="button" class="ai-cancel-button" hx-post="${path}/cancel/${conversationId}/${messageId}" hx-target="#sse-status-${messageId}" hx-swap="innerHTML">Cancel</button>` + `</div>` + `</div>`, { headers: { "Content-Type": "text/html" } });
3181
+ const cancelUrl = `${path}/cancel/${conversationId}/${messageId}`;
3182
+ return new Response(renderers.messageStart({
3183
+ cancelUrl,
3184
+ content,
3185
+ conversationId,
3186
+ messageId,
3187
+ sseUrl
3188
+ }), { headers: { "Content-Type": "text/html" } });
3173
3189
  }).post(`${path}/cancel/:conversationId/:messageId`, ({ params }) => {
3174
3190
  handleCancel(params.conversationId);
3175
- return new Response('<div class="ai-canceled">Canceled.</div>', { headers: { "Content-Type": "text/html" } });
3191
+ return new Response(renderers.canceled(), {
3192
+ headers: { "Content-Type": "text/html" }
3193
+ });
3176
3194
  }).get(`${path}/sse/:conversationId/:messageId`, async function* ({ params }) {
3177
3195
  const { conversationId, messageId } = params;
3178
3196
  const conversation = await store.get(conversationId);
@@ -4773,5 +4791,5 @@ export {
4773
4791
  aiChat
4774
4792
  };
4775
4793
 
4776
- //# debugId=602B185288D97A4964756E2164756E21
4794
+ //# debugId=AD203B6115D183BA64756E2164756E21
4777
4795
  //# sourceMappingURL=index.js.map