@absolutejs/absolute 0.19.0-beta.226 → 0.19.0-beta.227

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 (75) hide show
  1. package/.absolutejs/eslint-cache +1 -0
  2. package/.absolutejs/prettier.cache.json +42 -19
  3. package/.absolutejs/vue-tsc.tsbuildinfo +1 -1
  4. package/.claude/settings.local.json +2 -1
  5. package/ROADMAP.md +0 -25
  6. package/dist/{Image-y5bdvj57.vue → Image-b3r6hxqk.vue} +6 -1
  7. package/dist/ai/index.js +529 -0
  8. package/dist/ai/index.js.map +13 -0
  9. package/dist/ai/providers/anthropic.js +396 -0
  10. package/dist/ai/providers/anthropic.js.map +10 -0
  11. package/dist/ai/providers/ollama.js +233 -0
  12. package/dist/ai/providers/ollama.js.map +10 -0
  13. package/dist/ai/providers/openai.js +355 -0
  14. package/dist/ai/providers/openai.js.map +10 -0
  15. package/dist/ai-client/angular/ai/index.js +532 -0
  16. package/dist/ai-client/react/ai/index.js +499 -0
  17. package/dist/ai-client/vue/ai/index.js +460 -0
  18. package/dist/angular/ai/index.js +668 -0
  19. package/dist/angular/ai/index.js.map +15 -0
  20. package/dist/angular/components/image.component.js +1 -1
  21. package/dist/angular/index.js +11 -1
  22. package/dist/angular/index.js.map +3 -3
  23. package/dist/build.js +48 -2
  24. package/dist/build.js.map +4 -4
  25. package/dist/index.js +50 -2
  26. package/dist/index.js.map +6 -6
  27. package/dist/react/ai/index.js +635 -0
  28. package/dist/react/ai/index.js.map +16 -0
  29. package/dist/react/components/index.js +11 -1
  30. package/dist/react/components/index.js.map +2 -2
  31. package/dist/react/hooks/index.js +11 -1
  32. package/dist/react/hooks/index.js.map +2 -2
  33. package/dist/react/index.js +11 -1
  34. package/dist/react/index.js.map +3 -3
  35. package/dist/src/ai/client/actions.d.ts +46 -0
  36. package/dist/src/ai/client/connection.d.ts +9 -0
  37. package/dist/src/ai/client/messageStore.d.ts +12 -0
  38. package/dist/src/ai/conversationManager.d.ts +11 -0
  39. package/dist/src/ai/index.d.ts +3 -0
  40. package/dist/src/ai/protocol.d.ts +4 -0
  41. package/dist/src/ai/providers/anthropic.d.ts +3 -0
  42. package/dist/src/ai/providers/ollama.d.ts +6 -0
  43. package/dist/src/ai/providers/openai.d.ts +7 -0
  44. package/dist/src/ai/streamAI.d.ts +2 -0
  45. package/dist/src/angular/ai/ai-stream.service.d.ts +15 -0
  46. package/dist/src/angular/ai/index.d.ts +1 -0
  47. package/dist/src/react/ai/AIStreamProvider.d.ts +13 -0
  48. package/dist/src/react/ai/index.d.ts +2 -0
  49. package/dist/src/react/ai/useAIStream.d.ts +8 -0
  50. package/dist/src/svelte/ai/createAIStream.d.ts +10 -0
  51. package/dist/src/svelte/ai/index.d.ts +1 -0
  52. package/dist/src/vue/ai/index.d.ts +1 -0
  53. package/dist/src/vue/ai/useAIStream.d.ts +22 -0
  54. package/dist/svelte/ai/index.js +590 -0
  55. package/dist/svelte/ai/index.js.map +15 -0
  56. package/dist/svelte/components/Image.svelte +6 -1
  57. package/dist/svelte/index.js +11 -1
  58. package/dist/svelte/index.js.map +3 -3
  59. package/dist/types/ai.d.ts +188 -0
  60. package/dist/types/anthropic.d.ts +18 -0
  61. package/dist/types/index.d.ts +1 -0
  62. package/dist/types/typeGuards.d.ts +3 -0
  63. package/dist/vue/ai/index.js +596 -0
  64. package/dist/vue/ai/index.js.map +15 -0
  65. package/dist/vue/components/Image.vue +6 -1
  66. package/dist/vue/components/index.js +12 -2
  67. package/dist/vue/components/index.js.map +1 -1
  68. package/dist/vue/index.js +11 -1
  69. package/dist/vue/index.js.map +3 -3
  70. package/package.json +36 -1
  71. package/scripts/build.ts +33 -0
  72. package/types/ai.ts +235 -0
  73. package/types/anthropic.ts +17 -0
  74. package/types/index.ts +1 -0
  75. package/types/typeGuards.ts +72 -1
@@ -61,6 +61,16 @@ var __export = (target, all) => {
61
61
  set: __exportSetter.bind(all, name)
62
62
  });
63
63
  };
64
+ var __legacyDecorateClassTS = function(decorators, target, key, desc) {
65
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
66
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
67
+ r = Reflect.decorate(decorators, target, key, desc);
68
+ else
69
+ for (var i = decorators.length - 1;i >= 0; i--)
70
+ if (d = decorators[i])
71
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
72
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
73
+ };
64
74
  var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
65
75
  var __require = import.meta.require;
66
76
 
@@ -428,5 +438,5 @@ export {
428
438
  handleSveltePageRequest
429
439
  };
430
440
 
431
- //# debugId=4D7C796F850384E664756E2164756E21
441
+ //# debugId=87E0FB52AEE31D1064756E2164756E21
432
442
  //# sourceMappingURL=index.js.map
@@ -4,14 +4,14 @@
4
4
  "sourcesContent": [
5
5
  "export const ssrErrorPage = (framework: string, error: unknown) => {\n\tconst frameworkColors: Record<string, string> = {\n\t\tangular: '#dd0031',\n\t\thtml: '#e34c26',\n\t\thtmx: '#1a365d',\n\t\treact: '#61dafb',\n\t\tsvelte: '#ff3e00',\n\t\tvue: '#42b883'\n\t};\n\n\tconst accent = frameworkColors[framework] ?? '#94a3b8';\n\tconst label = framework.charAt(0).toUpperCase() + framework.slice(1);\n\tconst message = error instanceof Error ? error.message : String(error);\n\n\treturn `<!DOCTYPE html>\n<html>\n<head>\n<meta charset=\"utf-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n<title>SSR Error - AbsoluteJS</title>\n<style>\n*{margin:0;padding:0;box-sizing:border-box}\nbody{min-height:100vh;background:linear-gradient(135deg,rgba(15,23,42,0.98) 0%,rgba(30,41,59,0.98) 100%);color:#e2e8f0;font-family:\"JetBrains Mono\",\"Fira Code\",ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:14px;line-height:1.6;display:flex;align-items:flex-start;justify-content:center;padding:32px}\n.card{max-width:720px;width:100%;background:rgba(30,41,59,0.6);border:1px solid rgba(71,85,105,0.5);border-radius:16px;box-shadow:0 25px 50px -12px rgba(0,0,0,0.5),0 0 0 1px rgba(255,255,255,0.05);overflow:hidden}\n.header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 24px;background:rgba(15,23,42,0.5);border-bottom:1px solid rgba(71,85,105,0.4)}\n.brand{font-weight:700;font-size:20px;color:#fff;letter-spacing:-0.02em}\n.badge{padding:5px 10px;border-radius:8px;font-size:12px;font-weight:600;background:${accent};color:#fff;opacity:0.95;box-shadow:0 2px 4px rgba(0,0,0,0.2)}\n.kind{color:#94a3b8;font-size:13px;font-weight:500}\n.content{padding:24px}\n.label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:0.08em;color:#94a3b8;margin-bottom:8px}\n.message{margin:0;padding:16px 20px;background:rgba(239,68,68,0.12);border:1px solid rgba(239,68,68,0.25);border-radius:10px;overflow-x:auto;white-space:pre-wrap;word-break:break-word;color:#fca5a5;font-size:13px;line-height:1.5}\n.hint{margin-top:20px;padding:12px 20px;background:rgba(71,85,105,0.3);border-radius:10px;border:1px solid rgba(71,85,105,0.4);color:#cbd5e1;font-size:13px}\n</style>\n</head>\n<body>\n<div class=\"card\">\n<div class=\"header\">\n<div style=\"display:flex;align-items:center;gap:12px\">\n<span class=\"brand\">AbsoluteJS</span>\n<span class=\"badge\">${label}</span>\n</div>\n<span class=\"kind\">Server Render Error</span>\n</div>\n<div class=\"content\">\n<div class=\"label\">What went wrong</div>\n<pre class=\"message\">${message.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;')}</pre>\n<div class=\"hint\">A component threw during server-side rendering. Check the terminal for the full stack trace.</div>\n</div>\n</div>\n</body>\n</html>`;\n};\n",
6
6
  "const normalizeSlug = (str: string) =>\n\tstr\n\t\t.trim()\n\t\t.replace(/\\s+/g, '-')\n\t\t.replace(/[^A-Za-z0-9\\-_]+/g, '')\n\t\t.replace(/[-_]{2,}/g, '-');\n\nexport const toKebab = (str: string) =>\n\tnormalizeSlug(str)\n\t\t.replace(/([a-z0-9])([A-Z])/g, '$1-$2')\n\t\t.toLowerCase();\nexport const toPascal = (str: string) => {\n\tif (!str.includes('-') && !str.includes('_')) {\n\t\treturn str.charAt(0).toUpperCase() + str.slice(1);\n\t}\n\n\treturn normalizeSlug(str)\n\t\t.split(/[-_]/)\n\t\t.filter(Boolean)\n\t\t.map(\n\t\t\t(segment) =>\n\t\t\t\tsegment.charAt(0).toUpperCase() + segment.slice(1).toLowerCase()\n\t\t)\n\t\t.join('');\n};\nexport const toScreamingSnake = (str: string) =>\n\tstr.replace(/([a-z0-9])([A-Z])/g, '$1_$2').toUpperCase();\n",
7
- "import { basename } from 'node:path';\nimport type { ConventionsMap } from '../../types/conventions';\nimport { toPascal } from './stringModifiers';\n\n// Use globalThis so the conventions map is shared across all bundles.\n// The main bundle (dist/index.js) calls setConventions, but framework\n// bundles (dist/svelte/index.js, etc.) need to read the same map.\nconst CONVENTIONS_KEY = '__absoluteConventions';\n\nconst getMap = (): ConventionsMap =>\n\t(globalThis as Record<string, unknown>)[CONVENTIONS_KEY] as ConventionsMap ?? {};\n\nexport const setConventions = (map: ConventionsMap) => {\n\t(globalThis as Record<string, unknown>)[CONVENTIONS_KEY] = map;\n};\n\nexport const getConventions = () => getMap();\n\nexport const resolveErrorConventionPath = (\n\tframework: keyof ConventionsMap,\n\tpageName: string\n) => {\n\tconst fw = getMap()[framework];\n\tif (!fw) return undefined;\n\n\treturn fw.pages?.[pageName]?.error ?? fw.defaults?.error;\n};\n\nexport const resolveNotFoundConventionPath = (\n\tframework: keyof ConventionsMap\n) => getMap()[framework]?.defaults?.notFound;\n\n/**\n * Derive a PascalCase page name from a compiled server path.\n * Example: \"/build/svelte/pages/SvelteExample.abc123.js\" → \"SvelteExample\"\n */\nexport const derivePageName = (pagePath: string) => {\n\tconst base = basename(pagePath);\n\t// Strip hash and extension: \"SvelteExample.abc123.js\" → \"SvelteExample\"\n\tconst dotIndex = base.indexOf('.');\n\tconst name = dotIndex > 0 ? base.slice(0, dotIndex) : base;\n\n\treturn toPascal(name);\n};\n\nconst isDev = () => process.env.NODE_ENV === 'development';\n\nconst buildErrorProps = (error: unknown) => {\n\tconst message = error instanceof Error ? error.message : String(error);\n\tconst stack = isDev() && error instanceof Error ? error.stack : undefined;\n\n\treturn { error: { message, stack } };\n};\n\nexport const renderConventionError = async (\n\tframework: keyof ConventionsMap,\n\tpageName: string,\n\terror: unknown\n) => {\n\tconst conventionPath = resolveErrorConventionPath(framework, pageName);\n\tif (!conventionPath) return null;\n\n\tconst errorProps = buildErrorProps(error);\n\n\ttry {\n\t\tif (framework === 'react') {\n\t\t\tconst { createElement } = await import('react');\n\t\t\tconst { renderToReadableStream } = await import(\n\t\t\t\t'react-dom/server'\n\t\t\t);\n\t\t\tconst mod = await import(conventionPath);\n\t\t\tconst firstKey = Object.keys(mod)[0];\n\t\t\tconst ErrorComponent = mod.default ?? (firstKey ? mod[firstKey] : undefined);\n\t\t\tconst element = createElement(ErrorComponent, errorProps);\n\t\t\tconst stream = await renderToReadableStream(element);\n\n\t\t\treturn new Response(stream, {\n\t\t\t\theaders: { 'Content-Type': 'text/html' },\n\t\t\t\tstatus: 500\n\t\t\t});\n\t\t}\n\n\t\tif (framework === 'svelte') {\n\t\t\tconst { render } = await import('svelte/server');\n\t\t\tconst mod = await import(conventionPath);\n\t\t\tconst ErrorComponent = mod.default;\n\t\t\tconst { head, body } = render(ErrorComponent, {\n\t\t\t\tprops: errorProps\n\t\t\t});\n\t\t\tconst html = `<!DOCTYPE html><html><head>${head}</head><body>${body}</body></html>`;\n\n\t\t\treturn new Response(html, {\n\t\t\t\theaders: { 'Content-Type': 'text/html' },\n\t\t\t\tstatus: 500\n\t\t\t});\n\t\t}\n\n\t\tif (framework === 'vue') {\n\t\t\tconst { createSSRApp, h } = await import('vue');\n\t\t\tconst { renderToString } = await import('vue/server-renderer');\n\t\t\tconst mod = await import(conventionPath);\n\t\t\tconst ErrorComponent = mod.default;\n\t\t\tconst app = createSSRApp({\n\t\t\t\trender: () => h(ErrorComponent, errorProps)\n\t\t\t});\n\t\t\tlet body = await renderToString(app);\n\n\t\t\t// Vue SSR escapes quotes inside <component is=\"style\"> tags.\n\t\t\t// Extract style content, unescape it, and move to <head>.\n\t\t\tlet styles = '';\n\t\t\tbody = body.replace(\n\t\t\t\t/<style>([\\s\\S]*?)<\\/style>/g,\n\t\t\t\t(_, css: string) => {\n\t\t\t\t\tstyles += `<style>${css.replace(/&quot;/g, '\"').replace(/&amp;/g, '&').replace(/&lt;/g, '<').replace(/&gt;/g, '>')}</style>`;\n\n\t\t\t\t\treturn '';\n\t\t\t\t}\n\t\t\t);\n\t\t\tconst html = `<!DOCTYPE html><html><head>${styles}</head><body><div id=\"root\">${body}</div></body></html>`;\n\n\t\t\treturn new Response(html, {\n\t\t\t\theaders: { 'Content-Type': 'text/html' },\n\t\t\t\tstatus: 500\n\t\t\t});\n\t\t}\n\n\t\tif (framework === 'angular') {\n\t\t\t// Angular error pages are rendered as plain HTML templates\n\t\t\t// since the full Angular SSR pipeline is too heavy for error pages\n\t\t\tconst mod = await import(conventionPath);\n\t\t\tconst renderError = mod.default ?? mod.renderError;\n\t\t\tif (typeof renderError === 'function') {\n\t\t\t\tconst html = renderError(errorProps);\n\n\t\t\t\treturn new Response(html, {\n\t\t\t\t\theaders: { 'Content-Type': 'text/html' },\n\t\t\t\t\tstatus: 500\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t} catch (renderError) {\n\t\tconst message =\n\t\t\trenderError instanceof Error ? renderError.message : '';\n\t\tif (\n\t\t\tmessage.includes('Cannot find module') ||\n\t\t\tmessage.includes('Cannot find package') ||\n\t\t\tmessage.includes('not found in module')\n\t\t) {\n\t\t\tconsole.error(\n\t\t\t\t`[SSR] Convention error page for ${framework} failed: missing framework package. ` +\n\t\t\t\t\t`Ensure the ${framework} runtime is installed (e.g. bun add ${framework === 'react' ? 'react react-dom' : framework}).`\n\t\t\t);\n\t\t} else {\n\t\t\tconsole.error(\n\t\t\t\t`[SSR] Failed to render ${framework} convention error page:`,\n\t\t\t\trenderError\n\t\t\t);\n\t\t}\n\t}\n\n\treturn null;\n};\n\nexport const renderConventionNotFound = async (\n\tframework: keyof ConventionsMap\n) => {\n\tconst conventionPath = resolveNotFoundConventionPath(framework);\n\tif (!conventionPath) return null;\n\n\ttry {\n\t\tif (framework === 'react') {\n\t\t\tconst { createElement } = await import('react');\n\t\t\tconst { renderToReadableStream } = await import(\n\t\t\t\t'react-dom/server'\n\t\t\t);\n\t\t\tconst mod = await import(conventionPath);\n\t\t\tconst nfKey = Object.keys(mod)[0];\n\t\t\tconst NotFoundComponent =\n\t\t\t\tmod.default ?? (nfKey ? mod[nfKey] : undefined);\n\t\t\tconst element = createElement(NotFoundComponent);\n\t\t\tconst stream = await renderToReadableStream(element);\n\n\t\t\treturn new Response(stream, {\n\t\t\t\theaders: { 'Content-Type': 'text/html' },\n\t\t\t\tstatus: 404\n\t\t\t});\n\t\t}\n\n\t\tif (framework === 'svelte') {\n\t\t\tconst { render } = await import('svelte/server');\n\t\t\tconst mod = await import(conventionPath);\n\t\t\tconst NotFoundComponent = mod.default;\n\t\t\tconst { head, body } = render(NotFoundComponent);\n\t\t\tconst html = `<!DOCTYPE html><html><head>${head}</head><body>${body}</body></html>`;\n\n\t\t\treturn new Response(html, {\n\t\t\t\theaders: { 'Content-Type': 'text/html' },\n\t\t\t\tstatus: 404\n\t\t\t});\n\t\t}\n\n\t\tif (framework === 'vue') {\n\t\t\tconst { createSSRApp, h } = await import('vue');\n\t\t\tconst { renderToString } = await import('vue/server-renderer');\n\t\t\tconst mod = await import(conventionPath);\n\t\t\tconst NotFoundComponent = mod.default;\n\t\t\tconst app = createSSRApp({\n\t\t\t\trender: () => h(NotFoundComponent)\n\t\t\t});\n\t\t\tlet body = await renderToString(app);\n\n\t\t\tlet styles = '';\n\t\t\tbody = body.replace(\n\t\t\t\t/<style>([\\s\\S]*?)<\\/style>/g,\n\t\t\t\t(_, css: string) => {\n\t\t\t\t\tstyles += `<style>${css.replace(/&quot;/g, '\"').replace(/&amp;/g, '&').replace(/&lt;/g, '<').replace(/&gt;/g, '>')}</style>`;\n\n\t\t\t\t\treturn '';\n\t\t\t\t}\n\t\t\t);\n\t\t\tconst html = `<!DOCTYPE html><html><head>${styles}</head><body><div id=\"root\">${body}</div></body></html>`;\n\n\t\t\treturn new Response(html, {\n\t\t\t\theaders: { 'Content-Type': 'text/html' },\n\t\t\t\tstatus: 404\n\t\t\t});\n\t\t}\n\n\t\tif (framework === 'angular') {\n\t\t\tconst mod = await import(conventionPath);\n\t\t\tconst renderNotFound = mod.default ?? mod.renderNotFound;\n\t\t\tif (typeof renderNotFound === 'function') {\n\t\t\t\tconst html = renderNotFound();\n\n\t\t\t\treturn new Response(html, {\n\t\t\t\t\theaders: { 'Content-Type': 'text/html' },\n\t\t\t\t\tstatus: 404\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t} catch (renderError) {\n\t\tconst message =\n\t\t\trenderError instanceof Error ? renderError.message : '';\n\t\tif (\n\t\t\tmessage.includes('Cannot find module') ||\n\t\t\tmessage.includes('Cannot find package') ||\n\t\t\tmessage.includes('not found in module')\n\t\t) {\n\t\t\tconsole.error(\n\t\t\t\t`[SSR] Convention not-found page for ${framework} failed: missing framework package. ` +\n\t\t\t\t\t`Ensure the ${framework} runtime is installed (e.g. bun add ${framework === 'react' ? 'react react-dom' : framework}).`\n\t\t\t);\n\t\t} else {\n\t\t\tconsole.error(\n\t\t\t\t`[SSR] Failed to render ${framework} convention not-found page:`,\n\t\t\t\trenderError\n\t\t\t);\n\t\t}\n\t}\n\n\treturn null;\n};\n\nconst NOT_FOUND_PRIORITY: (keyof ConventionsMap)[] = [\n\t'react',\n\t'svelte',\n\t'vue',\n\t'angular'\n];\n\nexport const renderFirstNotFound = async () => {\n\tfor (const framework of NOT_FOUND_PRIORITY) {\n\t\tif (!getMap()[framework]?.defaults?.notFound) continue;\n\t\tconst response = await renderConventionNotFound(framework);\n\t\tif (response) return response;\n\t}\n\n\treturn null;\n};\n",
7
+ "import { basename } from 'node:path';\nimport type { ConventionsMap } from '../../types/conventions';\nimport { toPascal } from './stringModifiers';\n\n// Use globalThis so the conventions map is shared across all bundles.\n// The main bundle (dist/index.js) calls setConventions, but framework\n// bundles (dist/svelte/index.js, etc.) need to read the same map.\nconst CONVENTIONS_KEY = '__absoluteConventions';\n\nconst getMap = (): ConventionsMap =>\n\t((globalThis as Record<string, unknown>)[\n\t\tCONVENTIONS_KEY\n\t] as ConventionsMap) ?? {};\n\nexport const setConventions = (map: ConventionsMap) => {\n\t(globalThis as Record<string, unknown>)[CONVENTIONS_KEY] = map;\n};\n\nexport const getConventions = () => getMap();\n\nexport const resolveErrorConventionPath = (\n\tframework: keyof ConventionsMap,\n\tpageName: string\n) => {\n\tconst fw = getMap()[framework];\n\tif (!fw) return undefined;\n\n\treturn fw.pages?.[pageName]?.error ?? fw.defaults?.error;\n};\n\nexport const resolveNotFoundConventionPath = (\n\tframework: keyof ConventionsMap\n) => getMap()[framework]?.defaults?.notFound;\n\n/**\n * Derive a PascalCase page name from a compiled server path.\n * Example: \"/build/svelte/pages/SvelteExample.abc123.js\" → \"SvelteExample\"\n */\nexport const derivePageName = (pagePath: string) => {\n\tconst base = basename(pagePath);\n\t// Strip hash and extension: \"SvelteExample.abc123.js\" → \"SvelteExample\"\n\tconst dotIndex = base.indexOf('.');\n\tconst name = dotIndex > 0 ? base.slice(0, dotIndex) : base;\n\n\treturn toPascal(name);\n};\n\nconst isDev = () => process.env.NODE_ENV === 'development';\n\nconst buildErrorProps = (error: unknown) => {\n\tconst message = error instanceof Error ? error.message : String(error);\n\tconst stack = isDev() && error instanceof Error ? error.stack : undefined;\n\n\treturn { error: { message, stack } };\n};\n\nexport const renderConventionError = async (\n\tframework: keyof ConventionsMap,\n\tpageName: string,\n\terror: unknown\n) => {\n\tconst conventionPath = resolveErrorConventionPath(framework, pageName);\n\tif (!conventionPath) return null;\n\n\tconst errorProps = buildErrorProps(error);\n\n\ttry {\n\t\tif (framework === 'react') {\n\t\t\tconst { createElement } = await import('react');\n\t\t\tconst { renderToReadableStream } = await import('react-dom/server');\n\t\t\tconst mod = await import(conventionPath);\n\t\t\tconst firstKey = Object.keys(mod)[0];\n\t\t\tconst ErrorComponent =\n\t\t\t\tmod.default ?? (firstKey ? mod[firstKey] : undefined);\n\t\t\tconst element = createElement(ErrorComponent, errorProps);\n\t\t\tconst stream = await renderToReadableStream(element);\n\n\t\t\treturn new Response(stream, {\n\t\t\t\theaders: { 'Content-Type': 'text/html' },\n\t\t\t\tstatus: 500\n\t\t\t});\n\t\t}\n\n\t\tif (framework === 'svelte') {\n\t\t\tconst { render } = await import('svelte/server');\n\t\t\tconst mod = await import(conventionPath);\n\t\t\tconst ErrorComponent = mod.default;\n\t\t\tconst { head, body } = render(ErrorComponent, {\n\t\t\t\tprops: errorProps\n\t\t\t});\n\t\t\tconst html = `<!DOCTYPE html><html><head>${head}</head><body>${body}</body></html>`;\n\n\t\t\treturn new Response(html, {\n\t\t\t\theaders: { 'Content-Type': 'text/html' },\n\t\t\t\tstatus: 500\n\t\t\t});\n\t\t}\n\n\t\tif (framework === 'vue') {\n\t\t\tconst { createSSRApp, h } = await import('vue');\n\t\t\tconst { renderToString } = await import('vue/server-renderer');\n\t\t\tconst mod = await import(conventionPath);\n\t\t\tconst ErrorComponent = mod.default;\n\t\t\tconst app = createSSRApp({\n\t\t\t\trender: () => h(ErrorComponent, errorProps)\n\t\t\t});\n\t\t\tlet body = await renderToString(app);\n\n\t\t\t// Vue SSR escapes quotes inside <component is=\"style\"> tags.\n\t\t\t// Extract style content, unescape it, and move to <head>.\n\t\t\tlet styles = '';\n\t\t\tbody = body.replace(\n\t\t\t\t/<style>([\\s\\S]*?)<\\/style>/g,\n\t\t\t\t(_, css: string) => {\n\t\t\t\t\tstyles += `<style>${css\n\t\t\t\t\t\t.replace(/&quot;/g, '\"')\n\t\t\t\t\t\t.replace(/&amp;/g, '&')\n\t\t\t\t\t\t.replace(/&lt;/g, '<')\n\t\t\t\t\t\t.replace(/&gt;/g, '>')}</style>`;\n\n\t\t\t\t\treturn '';\n\t\t\t\t}\n\t\t\t);\n\t\t\tconst html = `<!DOCTYPE html><html><head>${styles}</head><body><div id=\"root\">${body}</div></body></html>`;\n\n\t\t\treturn new Response(html, {\n\t\t\t\theaders: { 'Content-Type': 'text/html' },\n\t\t\t\tstatus: 500\n\t\t\t});\n\t\t}\n\n\t\tif (framework === 'angular') {\n\t\t\t// Angular error pages are rendered as plain HTML templates\n\t\t\t// since the full Angular SSR pipeline is too heavy for error pages\n\t\t\tconst mod = await import(conventionPath);\n\t\t\tconst renderError = mod.default ?? mod.renderError;\n\t\t\tif (typeof renderError === 'function') {\n\t\t\t\tconst html = renderError(errorProps);\n\n\t\t\t\treturn new Response(html, {\n\t\t\t\t\theaders: { 'Content-Type': 'text/html' },\n\t\t\t\t\tstatus: 500\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t} catch (renderError) {\n\t\tconst message = renderError instanceof Error ? renderError.message : '';\n\t\tif (\n\t\t\tmessage.includes('Cannot find module') ||\n\t\t\tmessage.includes('Cannot find package') ||\n\t\t\tmessage.includes('not found in module')\n\t\t) {\n\t\t\tconsole.error(\n\t\t\t\t`[SSR] Convention error page for ${framework} failed: missing framework package. ` +\n\t\t\t\t\t`Ensure the ${framework} runtime is installed (e.g. bun add ${framework === 'react' ? 'react react-dom' : framework}).`\n\t\t\t);\n\t\t} else {\n\t\t\tconsole.error(\n\t\t\t\t`[SSR] Failed to render ${framework} convention error page:`,\n\t\t\t\trenderError\n\t\t\t);\n\t\t}\n\t}\n\n\treturn null;\n};\n\nexport const renderConventionNotFound = async (\n\tframework: keyof ConventionsMap\n) => {\n\tconst conventionPath = resolveNotFoundConventionPath(framework);\n\tif (!conventionPath) return null;\n\n\ttry {\n\t\tif (framework === 'react') {\n\t\t\tconst { createElement } = await import('react');\n\t\t\tconst { renderToReadableStream } = await import('react-dom/server');\n\t\t\tconst mod = await import(conventionPath);\n\t\t\tconst nfKey = Object.keys(mod)[0];\n\t\t\tconst NotFoundComponent =\n\t\t\t\tmod.default ?? (nfKey ? mod[nfKey] : undefined);\n\t\t\tconst element = createElement(NotFoundComponent);\n\t\t\tconst stream = await renderToReadableStream(element);\n\n\t\t\treturn new Response(stream, {\n\t\t\t\theaders: { 'Content-Type': 'text/html' },\n\t\t\t\tstatus: 404\n\t\t\t});\n\t\t}\n\n\t\tif (framework === 'svelte') {\n\t\t\tconst { render } = await import('svelte/server');\n\t\t\tconst mod = await import(conventionPath);\n\t\t\tconst NotFoundComponent = mod.default;\n\t\t\tconst { head, body } = render(NotFoundComponent);\n\t\t\tconst html = `<!DOCTYPE html><html><head>${head}</head><body>${body}</body></html>`;\n\n\t\t\treturn new Response(html, {\n\t\t\t\theaders: { 'Content-Type': 'text/html' },\n\t\t\t\tstatus: 404\n\t\t\t});\n\t\t}\n\n\t\tif (framework === 'vue') {\n\t\t\tconst { createSSRApp, h } = await import('vue');\n\t\t\tconst { renderToString } = await import('vue/server-renderer');\n\t\t\tconst mod = await import(conventionPath);\n\t\t\tconst NotFoundComponent = mod.default;\n\t\t\tconst app = createSSRApp({\n\t\t\t\trender: () => h(NotFoundComponent)\n\t\t\t});\n\t\t\tlet body = await renderToString(app);\n\n\t\t\tlet styles = '';\n\t\t\tbody = body.replace(\n\t\t\t\t/<style>([\\s\\S]*?)<\\/style>/g,\n\t\t\t\t(_, css: string) => {\n\t\t\t\t\tstyles += `<style>${css\n\t\t\t\t\t\t.replace(/&quot;/g, '\"')\n\t\t\t\t\t\t.replace(/&amp;/g, '&')\n\t\t\t\t\t\t.replace(/&lt;/g, '<')\n\t\t\t\t\t\t.replace(/&gt;/g, '>')}</style>`;\n\n\t\t\t\t\treturn '';\n\t\t\t\t}\n\t\t\t);\n\t\t\tconst html = `<!DOCTYPE html><html><head>${styles}</head><body><div id=\"root\">${body}</div></body></html>`;\n\n\t\t\treturn new Response(html, {\n\t\t\t\theaders: { 'Content-Type': 'text/html' },\n\t\t\t\tstatus: 404\n\t\t\t});\n\t\t}\n\n\t\tif (framework === 'angular') {\n\t\t\tconst mod = await import(conventionPath);\n\t\t\tconst renderNotFound = mod.default ?? mod.renderNotFound;\n\t\t\tif (typeof renderNotFound === 'function') {\n\t\t\t\tconst html = renderNotFound();\n\n\t\t\t\treturn new Response(html, {\n\t\t\t\t\theaders: { 'Content-Type': 'text/html' },\n\t\t\t\t\tstatus: 404\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t} catch (renderError) {\n\t\tconst message = renderError instanceof Error ? renderError.message : '';\n\t\tif (\n\t\t\tmessage.includes('Cannot find module') ||\n\t\t\tmessage.includes('Cannot find package') ||\n\t\t\tmessage.includes('not found in module')\n\t\t) {\n\t\t\tconsole.error(\n\t\t\t\t`[SSR] Convention not-found page for ${framework} failed: missing framework package. ` +\n\t\t\t\t\t`Ensure the ${framework} runtime is installed (e.g. bun add ${framework === 'react' ? 'react react-dom' : framework}).`\n\t\t\t);\n\t\t} else {\n\t\t\tconsole.error(\n\t\t\t\t`[SSR] Failed to render ${framework} convention not-found page:`,\n\t\t\t\trenderError\n\t\t\t);\n\t\t}\n\t}\n\n\treturn null;\n};\n\nconst NOT_FOUND_PRIORITY: (keyof ConventionsMap)[] = [\n\t'react',\n\t'svelte',\n\t'vue',\n\t'angular'\n];\n\nexport const renderFirstNotFound = async () => {\n\tfor (const framework of NOT_FOUND_PRIORITY) {\n\t\tif (!getMap()[framework]?.defaults?.notFound) continue;\n\t\tconst response = await renderConventionNotFound(framework);\n\t\tif (response) return response;\n\t}\n\n\treturn null;\n};\n",
8
8
  "export const ANGULAR_INIT_TIMEOUT_MS = 500;\nexport const ANSI_ESCAPE_LENGTH = 3;\nexport const ASCII_SPACE = 32;\nexport const BASE_36_RADIX = 36;\nexport const BUN_BUILD_WARNING_SUPPRESSION =\n\t'wildcard sideEffects are not supported yet';\nexport const BODY_SLICE_LENGTH = 2000;\nexport const BYTES_PER_KILOBYTE = 1024;\nexport const CLI_ARGS_OFFSET = 3;\nexport const CSS_ERROR_RESOLVE_DELAY_MS = 50;\nexport const CSS_MAX_CHECK_ATTEMPTS = 10;\nexport const CSS_MAX_PARSE_TIMEOUT_MS = 500;\nexport const CSS_SHEET_READY_TIMEOUT_MS = 100;\nexport const DEFAULT_CHUNK_SIZE = 16_384;\nexport const DEFAULT_DEBOUNCE_MS = 15;\nexport const DEFAULT_PORT = 3000;\nexport const DEV_SERVER_RESTART_DEBOUNCE_MS = 100;\nexport const DOM_UPDATE_DELAY_MS = 50;\nexport const FILE_PROTOCOL_PREFIX_LENGTH = 7;\nexport const FOCUS_ID_PREFIX_LENGTH = 3;\nexport const FOCUS_IDX_PREFIX_LENGTH = 4;\nexport const FOCUS_NAME_PREFIX_LENGTH = 5;\nexport const HMR_UPDATE_TIMEOUT_MS = 2000;\nexport const HOOK_SIGNATURE_LENGTH = 12;\nexport const HOURS_IN_DAY = 24;\nexport const HOURS_IN_HALF_DAY = 12;\nexport const MAX_ERROR_LENGTH = 200;\nexport const MAX_RECONNECT_ATTEMPTS = 60;\nexport const MILLISECONDS_IN_A_SECOND = 1000;\nexport const MINUTES_IN_AN_HOUR = 60;\nexport const SECONDS_IN_A_MINUTE = 60;\nexport const MILLISECONDS_IN_A_MINUTE =\n\tMILLISECONDS_IN_A_SECOND * SECONDS_IN_A_MINUTE;\nexport const MILLISECONDS_IN_A_DAY =\n\tMILLISECONDS_IN_A_SECOND *\n\tSECONDS_IN_A_MINUTE *\n\tMINUTES_IN_AN_HOUR *\n\tHOURS_IN_DAY;\nexport const OVERLAY_FADE_DURATION_MS = 150;\nexport const PING_INTERVAL_MS = 30_000;\nexport const RAF_BATCH_COUNT = 3;\nexport const RANDOM_ID_END_INDEX = 11;\nexport const REBUILD_BATCH_DELAY_MS = 10;\nexport const REBUILD_RELOAD_DELAY_MS = 200;\nexport const RECONNECT_INITIAL_DELAY_MS = 500;\nexport const RECONNECT_POLL_INTERVAL_MS = 300;\nexport const SIGINT_EXIT_CODE = 130;\nexport const SIGTERM_EXIT_CODE = 143;\nexport const SVELTE_CSS_LOAD_TIMEOUT_MS = 500;\nexport const TIME_PRECISION = 2;\nexport const TWO_THIRDS = 2 / 3;\nexport const UNFOUND_INDEX = -1;\nexport const WEBSOCKET_NORMAL_CLOSURE = 1000;\n",
9
9
  "const ESCAPE_LOOKUP: Record<string, string> = {\n\t'\\u2028': '\\\\u2028',\n\t'\\u2029': '\\\\u2029',\n\t'&': '\\\\u0026',\n\t'<': '\\\\u003C',\n\t'>': '\\\\u003E'\n};\n\nconst ESCAPE_REGEX = /[&><\\u2028\\u2029]/g;\n\nexport const escapeScriptContent = (content: string) =>\n\tcontent.replace(ESCAPE_REGEX, (char) => {\n\t\tconst escaped = ESCAPE_LOOKUP[char];\n\n\t\treturn escaped !== undefined ? escaped : char;\n\t});\n",
10
10
  "import type { Component } from 'svelte';\nimport { DEFAULT_CHUNK_SIZE } from '../constants';\nimport { escapeScriptContent } from '../utils/escapeScriptContent';\n\nexport type RenderStreamOptions = {\n\tbootstrapScriptContent?: string;\n\tbootstrapScripts?: string[];\n\tbootstrapModules?: string[];\n\tnonce?: string;\n\tonError?: (error: unknown) => void;\n\tprogressiveChunkSize?: number;\n\tsignal?: AbortSignal;\n\theadContent?: string;\n\tbodyContent?: string;\n};\n\nexport const renderToReadableStream = async <\n\tProps extends Record<string, unknown> = Record<string, never>\n>(\n\tcomponent: Component<Props>,\n\tprops?: Props,\n\t{\n\t\tbootstrapScriptContent,\n\t\tbootstrapScripts = [],\n\t\tbootstrapModules = [],\n\t\tnonce,\n\t\tonError = console.error,\n\t\tprogressiveChunkSize = DEFAULT_CHUNK_SIZE,\n\t\tsignal,\n\t\theadContent,\n\t\tbodyContent\n\t}: RenderStreamOptions = {}\n) => {\n\ttry {\n\t\tconst { render } = await import('svelte/server');\n\t\tconst { head, body } =\n\t\t\ttypeof props === 'undefined'\n\t\t\t\t? // @ts-expect-error Svelte's render function can't determine which overload to choose when the component is generic\n\t\t\t\t\trender(component)\n\t\t\t\t: render(component, { props });\n\t\tconst nonceAttr = nonce ? ` nonce=\"${nonce}\"` : '';\n\t\tconst scripts =\n\t\t\t(bootstrapScriptContent\n\t\t\t\t? `<script${nonceAttr}>${escapeScriptContent(bootstrapScriptContent)}</script>`\n\t\t\t\t: '') +\n\t\t\tbootstrapScripts\n\t\t\t\t.map((src) => `<script${nonceAttr} src=\"${src}\"></script>`)\n\t\t\t\t.join('') +\n\t\t\tbootstrapModules\n\t\t\t\t.map(\n\t\t\t\t\t(src) =>\n\t\t\t\t\t\t`<script${nonceAttr} type=\"module\" src=\"${src}\"></script>`\n\t\t\t\t)\n\t\t\t\t.join('');\n\t\tconst encoder = new TextEncoder();\n\t\t// Warning: this encodes the entire document into memory in one buffer\n\t\tconst full = encoder.encode(\n\t\t\t`<!DOCTYPE html><html lang=\"en\"><head>${head}${headContent ?? ''}</head><body>${body}${scripts}${bodyContent ?? ''}</body></html>`\n\t\t);\n\n\t\tlet offset = 0;\n\n\t\treturn new ReadableStream<Uint8Array>({\n\t\t\ttype: 'bytes',\n\t\t\tcancel(reason) {\n\t\t\t\tonError?.(reason);\n\t\t\t},\n\t\t\tpull(controller) {\n\t\t\t\tif (signal?.aborted) {\n\t\t\t\t\tcontroller.close();\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (offset >= full.length) {\n\t\t\t\t\tcontroller.close();\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst end = Math.min(\n\t\t\t\t\toffset + progressiveChunkSize,\n\t\t\t\t\tfull.length\n\t\t\t\t);\n\t\t\t\tcontroller.enqueue(full.subarray(offset, end));\n\t\t\t\toffset = end;\n\t\t\t}\n\t\t});\n\t} catch (error) {\n\t\tonError?.(error);\n\t\tthrow error;\n\t}\n};\n",
11
11
  "import type { Component as SvelteComponent } from 'svelte';\nimport { ssrErrorPage } from '../utils/ssrErrorPage';\nimport {\n\tderivePageName,\n\trenderConventionError\n} from '../utils/resolveConvention';\n\nlet ssrDirty = false;\n\nconst buildDirtyResponse = (indexPath: string, props?: unknown) => {\n\tconst propsScript = `window.__INITIAL_PROPS__=${JSON.stringify(props)};`;\n\tconst dirtyFlag = 'window.__SSR_DIRTY__=true;';\n\tconst scriptTag = indexPath\n\t\t? `<script type=\"module\" src=\"${indexPath}\"></script>`\n\t\t: '';\n\tconst html = `<!DOCTYPE html><html><head></head><body><script>${propsScript}${dirtyFlag}</script>${scriptTag}</body></html>`;\n\n\treturn new Response(html, {\n\t\theaders: { 'Content-Type': 'text/html' }\n\t});\n};\n\nexport type HandleSveltePageRequest = {\n\t(\n\t\tPageComponent: SvelteComponent<Record<string, never>>,\n\t\tpagePath: string,\n\t\tindexPath: string\n\t): Promise<Response>;\n\t<P extends Record<string, unknown>>(\n\t\tPageComponent: SvelteComponent<P>,\n\t\tpagePath: string,\n\t\tindexPath: string,\n\t\tprops: NoInfer<P>\n\t): Promise<Response>;\n};\n\nexport const handleSveltePageRequest: HandleSveltePageRequest = async <\n\tP extends Record<string, unknown>\n>(\n\t_PageComponent: SvelteComponent<P>,\n\tpagePath: string,\n\tindexPath: string,\n\tprops?: P\n) => {\n\tif (ssrDirty) {\n\t\treturn buildDirtyResponse(indexPath, props);\n\t}\n\n\ttry {\n\t\tconst { default: ImportedPageComponent } = await import(pagePath);\n\t\tconst { renderToReadableStream } = await import(\n\t\t\t'./renderToReadableStream'\n\t\t);\n\n\t\tconst stream = await renderToReadableStream(\n\t\t\tImportedPageComponent,\n\t\t\tprops,\n\t\t\t{\n\t\t\t\tbootstrapModules: indexPath ? [indexPath] : [],\n\t\t\t\tbootstrapScriptContent: `window.__INITIAL_PROPS__=${JSON.stringify(\n\t\t\t\t\tprops\n\t\t\t\t)}`\n\t\t\t}\n\t\t);\n\n\t\treturn new Response(stream, {\n\t\t\theaders: { 'Content-Type': 'text/html' }\n\t\t});\n\t} catch (error) {\n\t\tconsole.error('[SSR] Svelte render error:', error);\n\n\t\tconst pageName = derivePageName(pagePath);\n\t\tconst conventionResponse = await renderConventionError(\n\t\t\t'svelte',\n\t\t\tpageName,\n\t\t\terror\n\t\t);\n\t\tif (conventionResponse) return conventionResponse;\n\n\t\treturn new Response(ssrErrorPage('svelte', error), {\n\t\t\theaders: { 'Content-Type': 'text/html' },\n\t\t\tstatus: 500\n\t\t});\n\t}\n};\n\nexport const invalidateSvelteSsrCache = () => {\n\tssrDirty = true;\n};\n",
12
12
  "export { handleSveltePageRequest } from './pageHandler';\nexport { renderToReadableStream } from './renderToReadableStream';\n"
13
13
  ],
14
- "mappings": "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",
15
- "debugId": "4D7C796F850384E664756E2164756E21",
14
+ "mappings": "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",
15
+ "debugId": "87E0FB52AEE31D1064756E2164756E21",
16
16
  "names": []
17
17
  }
@@ -0,0 +1,188 @@
1
+ export type AIUsage = {
2
+ inputTokens: number;
3
+ outputTokens: number;
4
+ };
5
+ export type AITextChunk = {
6
+ type: 'text';
7
+ content: string;
8
+ };
9
+ export type AIToolUseChunk = {
10
+ type: 'tool_use';
11
+ id: string;
12
+ name: string;
13
+ input: unknown;
14
+ };
15
+ export type AIDoneChunk = {
16
+ type: 'done';
17
+ usage?: AIUsage;
18
+ };
19
+ export type AIChunk = AITextChunk | AIToolUseChunk | AIDoneChunk;
20
+ export type AIProviderStreamParams = {
21
+ model: string;
22
+ messages: AIProviderMessage[];
23
+ tools?: AIProviderToolDefinition[];
24
+ systemPrompt?: string;
25
+ signal?: AbortSignal;
26
+ };
27
+ export type AIProviderMessage = {
28
+ role: 'user' | 'assistant' | 'system';
29
+ content: string | AIProviderContentBlock[];
30
+ };
31
+ export type AIProviderContentBlock = {
32
+ type: 'text';
33
+ content: string;
34
+ } | {
35
+ type: 'tool_use';
36
+ id: string;
37
+ name: string;
38
+ input: unknown;
39
+ } | {
40
+ type: 'tool_result';
41
+ tool_use_id: string;
42
+ content: string;
43
+ };
44
+ export type AIProviderToolDefinition = {
45
+ name: string;
46
+ description: string;
47
+ input_schema: Record<string, unknown>;
48
+ };
49
+ export type AIProviderConfig = {
50
+ stream: (params: AIProviderStreamParams) => AsyncIterable<AIChunk>;
51
+ };
52
+ export type AIToolDefinition = {
53
+ description: string;
54
+ input: Record<string, unknown>;
55
+ handler: (input: unknown) => Promise<string> | string;
56
+ };
57
+ export type AIToolMap = Record<string, AIToolDefinition>;
58
+ export type AIMessageRequest = {
59
+ type: 'message';
60
+ content: string;
61
+ conversationId?: string;
62
+ };
63
+ export type AICancelRequest = {
64
+ type: 'cancel';
65
+ conversationId: string;
66
+ };
67
+ export type AIBranchRequest = {
68
+ type: 'branch';
69
+ messageId: string;
70
+ content: string;
71
+ conversationId: string;
72
+ };
73
+ export type AIClientMessage = AIMessageRequest | AICancelRequest | AIBranchRequest;
74
+ export type AIChunkMessage = {
75
+ type: 'chunk';
76
+ content: string;
77
+ messageId: string;
78
+ conversationId: string;
79
+ };
80
+ export type AIToolStatusMessage = {
81
+ type: 'tool_status';
82
+ name: string;
83
+ status: 'running' | 'complete';
84
+ input?: unknown;
85
+ result?: string;
86
+ messageId: string;
87
+ conversationId: string;
88
+ };
89
+ export type AICompleteMessage = {
90
+ type: 'complete';
91
+ messageId: string;
92
+ conversationId: string;
93
+ usage?: AIUsage;
94
+ };
95
+ export type AIErrorMessage = {
96
+ type: 'error';
97
+ message: string;
98
+ messageId?: string;
99
+ conversationId?: string;
100
+ };
101
+ export type AIServerMessage = AIChunkMessage | AIToolStatusMessage | AICompleteMessage | AIErrorMessage;
102
+ export type AIRole = 'user' | 'assistant' | 'system';
103
+ export type AIToolCall = {
104
+ id: string;
105
+ name: string;
106
+ input: unknown;
107
+ result?: string;
108
+ };
109
+ export type AIMessage = {
110
+ id: string;
111
+ role: AIRole;
112
+ content: string;
113
+ conversationId: string;
114
+ parentId?: string;
115
+ toolCalls?: AIToolCall[];
116
+ isStreaming?: boolean;
117
+ timestamp: number;
118
+ };
119
+ export type AIConversation = {
120
+ id: string;
121
+ messages: AIMessage[];
122
+ activeStreamAbort?: AbortController;
123
+ };
124
+ export type StreamAIOptions = {
125
+ provider: AIProviderConfig;
126
+ model: string;
127
+ messages?: AIProviderMessage[];
128
+ systemPrompt?: string;
129
+ tools?: AIToolMap;
130
+ onChunk?: (chunk: AITextChunk) => AITextChunk | void;
131
+ onComplete?: (fullResponse: string, usage?: AIUsage) => void;
132
+ onToolUse?: (name: string, input: unknown, result: string) => void;
133
+ maxTurns?: number;
134
+ signal?: AbortSignal;
135
+ };
136
+ export type AIStreamState = {
137
+ conversations: Map<string, AIConversation>;
138
+ activeConversationId: string | null;
139
+ isStreaming: boolean;
140
+ error: string | null;
141
+ };
142
+ export type AIStoreAction = {
143
+ type: 'chunk';
144
+ conversationId: string;
145
+ messageId: string;
146
+ content: string;
147
+ } | {
148
+ type: 'tool_status';
149
+ conversationId: string;
150
+ messageId: string;
151
+ name: string;
152
+ status: 'running' | 'complete';
153
+ input?: unknown;
154
+ result?: string;
155
+ } | {
156
+ type: 'complete';
157
+ conversationId: string;
158
+ messageId: string;
159
+ usage?: AIUsage;
160
+ } | {
161
+ type: 'error';
162
+ message: string;
163
+ } | {
164
+ type: 'send';
165
+ content: string;
166
+ conversationId: string;
167
+ messageId: string;
168
+ } | {
169
+ type: 'cancel';
170
+ } | {
171
+ type: 'branch';
172
+ oldConversationId: string;
173
+ newConversationId: string;
174
+ fromMessageId: string;
175
+ } | {
176
+ type: 'set_conversation';
177
+ conversationId: string;
178
+ };
179
+ export type AIWebSocket = {
180
+ send(data: string): void;
181
+ readyState: number;
182
+ };
183
+ export type AIConnectionOptions = {
184
+ protocols?: string[];
185
+ reconnect?: boolean;
186
+ pingInterval?: number;
187
+ maxReconnectAttempts?: number;
188
+ };
@@ -0,0 +1,18 @@
1
+ export type AnthropicConfig = {
2
+ apiKey: string;
3
+ baseUrl?: string;
4
+ };
5
+ export type AnthropicMessage = {
6
+ content: string | Array<Record<string, unknown>>;
7
+ role: 'user' | 'assistant';
8
+ };
9
+ export type AnthropicSSEState = {
10
+ buffer: string;
11
+ currentToolId: string;
12
+ currentToolName: string;
13
+ toolInputJson: string;
14
+ usage: {
15
+ inputTokens: number;
16
+ outputTokens: number;
17
+ } | undefined;
18
+ };
@@ -1,3 +1,4 @@
1
+ export * from './ai';
1
2
  export * from './angular';
2
3
  export * from './conventions';
3
4
  export * from './build';
@@ -1,2 +1,5 @@
1
+ import type { AIClientMessage, AIServerMessage } from './ai';
1
2
  import type { HMRClientMessage } from './messages';
3
+ export declare const isValidAIClientMessage: (data: unknown) => data is AIClientMessage;
4
+ export declare const isValidAIServerMessage: (data: unknown) => data is AIServerMessage;
2
5
  export declare const isValidHMRClientMessage: (data: unknown) => data is HMRClientMessage;