sparkecoder 0.1.134 → 0.1.136

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 (110) hide show
  1. package/package.json +1 -1
  2. package/web/.next/BUILD_ID +1 -1
  3. package/web/.next/standalone/web/.next/BUILD_ID +1 -1
  4. package/web/.next/standalone/web/.next/build-manifest.json +2 -2
  5. package/web/.next/standalone/web/.next/prerender-manifest.json +3 -3
  6. package/web/.next/standalone/web/.next/server/app/_global-error.html +2 -2
  7. package/web/.next/standalone/web/.next/server/app/_global-error.rsc +1 -1
  8. package/web/.next/standalone/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  9. package/web/.next/standalone/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  10. package/web/.next/standalone/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  11. package/web/.next/standalone/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  12. package/web/.next/standalone/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  13. package/web/.next/standalone/web/.next/server/app/_not-found.html +1 -1
  14. package/web/.next/standalone/web/.next/server/app/_not-found.rsc +1 -1
  15. package/web/.next/standalone/web/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  16. package/web/.next/standalone/web/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  17. package/web/.next/standalone/web/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  18. package/web/.next/standalone/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  19. package/web/.next/standalone/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  20. package/web/.next/standalone/web/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  21. package/web/.next/standalone/web/.next/server/app/agents.html +1 -1
  22. package/web/.next/standalone/web/.next/server/app/agents.rsc +1 -1
  23. package/web/.next/standalone/web/.next/server/app/agents.segments/!KG1haW4p/agents/__PAGE__.segment.rsc +1 -1
  24. package/web/.next/standalone/web/.next/server/app/agents.segments/!KG1haW4p/agents.segment.rsc +1 -1
  25. package/web/.next/standalone/web/.next/server/app/agents.segments/!KG1haW4p.segment.rsc +1 -1
  26. package/web/.next/standalone/web/.next/server/app/agents.segments/_full.segment.rsc +1 -1
  27. package/web/.next/standalone/web/.next/server/app/agents.segments/_head.segment.rsc +1 -1
  28. package/web/.next/standalone/web/.next/server/app/agents.segments/_index.segment.rsc +1 -1
  29. package/web/.next/standalone/web/.next/server/app/agents.segments/_tree.segment.rsc +1 -1
  30. package/web/.next/standalone/web/.next/server/app/api/config/route.js +1 -1
  31. package/web/.next/standalone/web/.next/server/app/api/config/route.js.nft.json +1 -1
  32. package/web/.next/standalone/web/.next/server/app/api/health/route.js +1 -1
  33. package/web/.next/standalone/web/.next/server/app/api/health/route.js.nft.json +1 -1
  34. package/web/.next/standalone/web/.next/server/app/docs/installation.html +2 -2
  35. package/web/.next/standalone/web/.next/server/app/docs/installation.rsc +1 -1
  36. package/web/.next/standalone/web/.next/server/app/docs/installation.segments/_full.segment.rsc +1 -1
  37. package/web/.next/standalone/web/.next/server/app/docs/installation.segments/_head.segment.rsc +1 -1
  38. package/web/.next/standalone/web/.next/server/app/docs/installation.segments/_index.segment.rsc +1 -1
  39. package/web/.next/standalone/web/.next/server/app/docs/installation.segments/_tree.segment.rsc +1 -1
  40. package/web/.next/standalone/web/.next/server/app/docs/installation.segments/docs/installation/__PAGE__.segment.rsc +1 -1
  41. package/web/.next/standalone/web/.next/server/app/docs/installation.segments/docs/installation.segment.rsc +1 -1
  42. package/web/.next/standalone/web/.next/server/app/docs/installation.segments/docs.segment.rsc +1 -1
  43. package/web/.next/standalone/web/.next/server/app/docs/skills.html +2 -2
  44. package/web/.next/standalone/web/.next/server/app/docs/skills.rsc +1 -1
  45. package/web/.next/standalone/web/.next/server/app/docs/skills.segments/_full.segment.rsc +1 -1
  46. package/web/.next/standalone/web/.next/server/app/docs/skills.segments/_head.segment.rsc +1 -1
  47. package/web/.next/standalone/web/.next/server/app/docs/skills.segments/_index.segment.rsc +1 -1
  48. package/web/.next/standalone/web/.next/server/app/docs/skills.segments/_tree.segment.rsc +1 -1
  49. package/web/.next/standalone/web/.next/server/app/docs/skills.segments/docs/skills/__PAGE__.segment.rsc +1 -1
  50. package/web/.next/standalone/web/.next/server/app/docs/skills.segments/docs/skills.segment.rsc +1 -1
  51. package/web/.next/standalone/web/.next/server/app/docs/skills.segments/docs.segment.rsc +1 -1
  52. package/web/.next/standalone/web/.next/server/app/docs/tools.html +2 -2
  53. package/web/.next/standalone/web/.next/server/app/docs/tools.rsc +1 -1
  54. package/web/.next/standalone/web/.next/server/app/docs/tools.segments/_full.segment.rsc +1 -1
  55. package/web/.next/standalone/web/.next/server/app/docs/tools.segments/_head.segment.rsc +1 -1
  56. package/web/.next/standalone/web/.next/server/app/docs/tools.segments/_index.segment.rsc +1 -1
  57. package/web/.next/standalone/web/.next/server/app/docs/tools.segments/_tree.segment.rsc +1 -1
  58. package/web/.next/standalone/web/.next/server/app/docs/tools.segments/docs/tools/__PAGE__.segment.rsc +1 -1
  59. package/web/.next/standalone/web/.next/server/app/docs/tools.segments/docs/tools.segment.rsc +1 -1
  60. package/web/.next/standalone/web/.next/server/app/docs/tools.segments/docs.segment.rsc +1 -1
  61. package/web/.next/standalone/web/.next/server/app/docs.html +2 -2
  62. package/web/.next/standalone/web/.next/server/app/docs.rsc +1 -1
  63. package/web/.next/standalone/web/.next/server/app/docs.segments/_full.segment.rsc +1 -1
  64. package/web/.next/standalone/web/.next/server/app/docs.segments/_head.segment.rsc +1 -1
  65. package/web/.next/standalone/web/.next/server/app/docs.segments/_index.segment.rsc +1 -1
  66. package/web/.next/standalone/web/.next/server/app/docs.segments/_tree.segment.rsc +1 -1
  67. package/web/.next/standalone/web/.next/server/app/docs.segments/docs/__PAGE__.segment.rsc +1 -1
  68. package/web/.next/standalone/web/.next/server/app/docs.segments/docs.segment.rsc +1 -1
  69. package/web/.next/standalone/web/.next/server/app/index.html +1 -1
  70. package/web/.next/standalone/web/.next/server/app/index.rsc +1 -1
  71. package/web/.next/standalone/web/.next/server/app/index.segments/!KG1haW4p/__PAGE__.segment.rsc +1 -1
  72. package/web/.next/standalone/web/.next/server/app/index.segments/!KG1haW4p.segment.rsc +1 -1
  73. package/web/.next/standalone/web/.next/server/app/index.segments/_full.segment.rsc +1 -1
  74. package/web/.next/standalone/web/.next/server/app/index.segments/_head.segment.rsc +1 -1
  75. package/web/.next/standalone/web/.next/server/app/index.segments/_index.segment.rsc +1 -1
  76. package/web/.next/standalone/web/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  77. package/web/.next/standalone/web/.next/server/app/settings.html +1 -1
  78. package/web/.next/standalone/web/.next/server/app/settings.rsc +1 -1
  79. package/web/.next/standalone/web/.next/server/app/settings.segments/!KG1haW4p/settings/__PAGE__.segment.rsc +1 -1
  80. package/web/.next/standalone/web/.next/server/app/settings.segments/!KG1haW4p/settings.segment.rsc +1 -1
  81. package/web/.next/standalone/web/.next/server/app/settings.segments/!KG1haW4p.segment.rsc +1 -1
  82. package/web/.next/standalone/web/.next/server/app/settings.segments/_full.segment.rsc +1 -1
  83. package/web/.next/standalone/web/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  84. package/web/.next/standalone/web/.next/server/app/settings.segments/_index.segment.rsc +1 -1
  85. package/web/.next/standalone/web/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
  86. package/web/.next/standalone/web/.next/server/app/sfapi/[...path]/route.js +1 -1
  87. package/web/.next/standalone/web/.next/server/app/sfapi/[...path]/route.js.nft.json +1 -1
  88. package/web/.next/standalone/web/.next/server/chunks/[root-of-the-server]__78517719._.js +3 -0
  89. package/web/.next/standalone/web/.next/server/chunks/[root-of-the-server]__9d50fe63._.js +3 -0
  90. package/web/.next/standalone/web/.next/server/chunks/[root-of-the-server]__ce44139a._.js +3 -0
  91. package/web/.next/standalone/web/.next/server/pages/404.html +1 -1
  92. package/web/.next/standalone/web/.next/server/pages/500.html +2 -2
  93. package/web/.next/standalone/web/.next/server/server-reference-manifest.js +1 -1
  94. package/web/.next/standalone/web/.next/server/server-reference-manifest.json +1 -1
  95. package/web/.next/standalone/web/src/app/api/config/route.ts +4 -38
  96. package/web/.next/standalone/web/src/app/api/health/route.ts +7 -34
  97. package/web/.next/standalone/web/src/app/sfapi/[...path]/route.ts +2 -32
  98. package/web/.next/standalone/web/src/lib/local-api.ts +42 -0
  99. package/web/.next/standalone/web/.next/server/chunks/[root-of-the-server]__36edac7c._.js +0 -3
  100. package/web/.next/standalone/web/.next/server/chunks/[root-of-the-server]__74ebc442._.js +0 -3
  101. package/web/.next/standalone/web/.next/server/chunks/[root-of-the-server]__912d97d3._.js +0 -3
  102. /package/web/.next/standalone/web/.next/static/{7Ho139n0laRpntkO8v0DI → BS3vhcmrlRmT39qDuhaJP}/_buildManifest.js +0 -0
  103. /package/web/.next/standalone/web/.next/static/{7Ho139n0laRpntkO8v0DI → BS3vhcmrlRmT39qDuhaJP}/_clientMiddlewareManifest.json +0 -0
  104. /package/web/.next/standalone/web/.next/static/{7Ho139n0laRpntkO8v0DI → BS3vhcmrlRmT39qDuhaJP}/_ssgManifest.js +0 -0
  105. /package/web/.next/standalone/web/.next/static/static/{7Ho139n0laRpntkO8v0DI → BS3vhcmrlRmT39qDuhaJP}/_buildManifest.js +0 -0
  106. /package/web/.next/standalone/web/.next/static/static/{7Ho139n0laRpntkO8v0DI → BS3vhcmrlRmT39qDuhaJP}/_clientMiddlewareManifest.json +0 -0
  107. /package/web/.next/standalone/web/.next/static/static/{7Ho139n0laRpntkO8v0DI → BS3vhcmrlRmT39qDuhaJP}/_ssgManifest.js +0 -0
  108. /package/web/.next/static/{7Ho139n0laRpntkO8v0DI → BS3vhcmrlRmT39qDuhaJP}/_buildManifest.js +0 -0
  109. /package/web/.next/static/{7Ho139n0laRpntkO8v0DI → BS3vhcmrlRmT39qDuhaJP}/_clientMiddlewareManifest.json +0 -0
  110. /package/web/.next/static/{7Ho139n0laRpntkO8v0DI → BS3vhcmrlRmT39qDuhaJP}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- {"version":1,"files":["../../../../../README.md","../../../../../components.json","../../../../../eslint.config.mjs","../../../../../mdx-components.tsx","../../../../../next.config.ts","../../../../../node_modules/@opentelemetry/api/build/src/api/context.js","../../../../../node_modules/@opentelemetry/api/build/src/api/diag.js","../../../../../node_modules/@opentelemetry/api/build/src/api/metrics.js","../../../../../node_modules/@opentelemetry/api/build/src/api/propagation.js","../../../../../node_modules/@opentelemetry/api/build/src/api/trace.js","../../../../../node_modules/@opentelemetry/api/build/src/baggage/context-helpers.js","../../../../../node_modules/@opentelemetry/api/build/src/baggage/internal/baggage-impl.js","../../../../../node_modules/@opentelemetry/api/build/src/baggage/internal/symbol.js","../../../../../node_modules/@opentelemetry/api/build/src/baggage/utils.js","../../../../../node_modules/@opentelemetry/api/build/src/context-api.js","../../../../../node_modules/@opentelemetry/api/build/src/context/NoopContextManager.js","../../../../../node_modules/@opentelemetry/api/build/src/context/context.js","../../../../../node_modules/@opentelemetry/api/build/src/diag-api.js","../../../../../node_modules/@opentelemetry/api/build/src/diag/ComponentLogger.js","../../../../../node_modules/@opentelemetry/api/build/src/diag/consoleLogger.js","../../../../../node_modules/@opentelemetry/api/build/src/diag/internal/logLevelLogger.js","../../../../../node_modules/@opentelemetry/api/build/src/diag/types.js","../../../../../node_modules/@opentelemetry/api/build/src/index.js","../../../../../node_modules/@opentelemetry/api/build/src/internal/global-utils.js","../../../../../node_modules/@opentelemetry/api/build/src/internal/semver.js","../../../../../node_modules/@opentelemetry/api/build/src/metrics-api.js","../../../../../node_modules/@opentelemetry/api/build/src/metrics/Metric.js","../../../../../node_modules/@opentelemetry/api/build/src/metrics/NoopMeter.js","../../../../../node_modules/@opentelemetry/api/build/src/metrics/NoopMeterProvider.js","../../../../../node_modules/@opentelemetry/api/build/src/platform/index.js","../../../../../node_modules/@opentelemetry/api/build/src/platform/node/globalThis.js","../../../../../node_modules/@opentelemetry/api/build/src/platform/node/index.js","../../../../../node_modules/@opentelemetry/api/build/src/propagation-api.js","../../../../../node_modules/@opentelemetry/api/build/src/propagation/NoopTextMapPropagator.js","../../../../../node_modules/@opentelemetry/api/build/src/propagation/TextMapPropagator.js","../../../../../node_modules/@opentelemetry/api/build/src/trace-api.js","../../../../../node_modules/@opentelemetry/api/build/src/trace/NonRecordingSpan.js","../../../../../node_modules/@opentelemetry/api/build/src/trace/NoopTracer.js","../../../../../node_modules/@opentelemetry/api/build/src/trace/NoopTracerProvider.js","../../../../../node_modules/@opentelemetry/api/build/src/trace/ProxyTracer.js","../../../../../node_modules/@opentelemetry/api/build/src/trace/ProxyTracerProvider.js","../../../../../node_modules/@opentelemetry/api/build/src/trace/SamplingResult.js","../../../../../node_modules/@opentelemetry/api/build/src/trace/context-utils.js","../../../../../node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-impl.js","../../../../../node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-validators.js","../../../../../node_modules/@opentelemetry/api/build/src/trace/internal/utils.js","../../../../../node_modules/@opentelemetry/api/build/src/trace/invalid-span-constants.js","../../../../../node_modules/@opentelemetry/api/build/src/trace/span_kind.js","../../../../../node_modules/@opentelemetry/api/build/src/trace/spancontext-utils.js","../../../../../node_modules/@opentelemetry/api/build/src/trace/status.js","../../../../../node_modules/@opentelemetry/api/build/src/trace/trace_flags.js","../../../../../node_modules/@opentelemetry/api/build/src/version.js","../../../../../node_modules/@opentelemetry/api/package.json","../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js","../../../../../node_modules/next/dist/compiled/next-server/app-route-turbo.runtime.prod.js","../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../node_modules/next/dist/lib/constants.js","../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../node_modules/next/dist/lib/is-error.js","../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../node_modules/next/package.json","../../../../../package-lock.json","../../../../../package.json","../../../../../postcss.config.mjs","../../../../../public/file.svg","../../../../../public/globe.svg","../../../../../public/icon-192.png","../../../../../public/icon-512.png","../../../../../public/manifest.json","../../../../../public/next.svg","../../../../../public/sparke-coder.png","../../../../../public/sparkecode.mp4","../../../../../public/vercel.svg","../../../../../public/window.svg","../../../../../runtime-config.json","../../../../../src/app/(main)/agents/page.tsx","../../../../../src/app/(main)/layout.tsx","../../../../../src/app/(main)/page.tsx","../../../../../src/app/(main)/session/[id]/page.tsx","../../../../../src/app/(main)/settings/page.tsx","../../../../../src/app/api/config/route.ts","../../../../../src/app/api/health/route.ts","../../../../../src/app/apple-icon.png","../../../../../src/app/docs/installation/page.mdx","../../../../../src/app/docs/layout.tsx","../../../../../src/app/docs/page.mdx","../../../../../src/app/docs/skills/page.mdx","../../../../../src/app/docs/tools/page.mdx","../../../../../src/app/favicon.ico","../../../../../src/app/globals.css","../../../../../src/app/icon.png","../../../../../src/app/layout.tsx","../../../../../src/app/opengraph-image.png","../../../../../src/app/sfapi/[...path]/route.ts","../../../../../src/app/twitter-image.png","../../../../../src/components/ai-elements/agent.tsx","../../../../../src/components/ai-elements/artifact.tsx","../../../../../src/components/ai-elements/attachments.tsx","../../../../../src/components/ai-elements/audio-player.tsx","../../../../../src/components/ai-elements/bash-tool.tsx","../../../../../src/components/ai-elements/browser-recording.tsx","../../../../../src/components/ai-elements/canvas.tsx","../../../../../src/components/ai-elements/chain-of-thought.tsx","../../../../../src/components/ai-elements/checkpoint.tsx","../../../../../src/components/ai-elements/code-block.tsx","../../../../../src/components/ai-elements/code-graph-tool.tsx","../../../../../src/components/ai-elements/commit.tsx","../../../../../src/components/ai-elements/complete-task-tool.tsx","../../../../../src/components/ai-elements/confirmation.tsx","../../../../../src/components/ai-elements/connection.tsx","../../../../../src/components/ai-elements/context.tsx","../../../../../src/components/ai-elements/controls.tsx","../../../../../src/components/ai-elements/conversation.tsx","../../../../../src/components/ai-elements/edge.tsx","../../../../../src/components/ai-elements/environment-variables.tsx","../../../../../src/components/ai-elements/file-tree.tsx","../../../../../src/components/ai-elements/image.tsx","../../../../../src/components/ai-elements/inline-citation.tsx","../../../../../src/components/ai-elements/linter-tool.tsx","../../../../../src/components/ai-elements/load-skill-tool.tsx","../../../../../src/components/ai-elements/loader.tsx","../../../../../src/components/ai-elements/mention-input.tsx","../../../../../src/components/ai-elements/message.tsx","../../../../../src/components/ai-elements/mic-selector.tsx","../../../../../src/components/ai-elements/model-selector.tsx","../../../../../src/components/ai-elements/node.tsx","../../../../../src/components/ai-elements/open-in-chat.tsx","../../../../../src/components/ai-elements/package-info.tsx","../../../../../src/components/ai-elements/panel.tsx","../../../../../src/components/ai-elements/persona.tsx","../../../../../src/components/ai-elements/plan.tsx","../../../../../src/components/ai-elements/prompt-input.tsx","../../../../../src/components/ai-elements/queue.tsx","../../../../../src/components/ai-elements/read-file-tool.tsx","../../../../../src/components/ai-elements/reasoning.tsx","../../../../../src/components/ai-elements/sandbox.tsx","../../../../../src/components/ai-elements/schema-display.tsx","../../../../../src/components/ai-elements/search-tool.tsx","../../../../../src/components/ai-elements/shimmer.tsx","../../../../../src/components/ai-elements/snippet.tsx","../../../../../src/components/ai-elements/sources.tsx","../../../../../src/components/ai-elements/speech-input.tsx","../../../../../src/components/ai-elements/stack-trace.tsx","../../../../../src/components/ai-elements/subagent-modal.tsx","../../../../../src/components/ai-elements/suggestion.tsx","../../../../../src/components/ai-elements/task.tsx","../../../../../src/components/ai-elements/terminal.tsx","../../../../../src/components/ai-elements/test-results.tsx","../../../../../src/components/ai-elements/todo-panel.tsx","../../../../../src/components/ai-elements/todo-tool.tsx","../../../../../src/components/ai-elements/tool.tsx","../../../../../src/components/ai-elements/toolbar.tsx","../../../../../src/components/ai-elements/transcription.tsx","../../../../../src/components/ai-elements/voice-selector.tsx","../../../../../src/components/ai-elements/web-preview.tsx","../../../../../src/components/ai-elements/write-file-tool.tsx","../../../../../src/components/api-init.tsx","../../../../../src/components/browser-preview.tsx","../../../../../src/components/chat-interface.tsx","../../../../../src/components/pending-question-banner.tsx","../../../../../src/components/sessions-sidebar.tsx","../../../../../src/components/ui/accordion.tsx","../../../../../src/components/ui/alert.tsx","../../../../../src/components/ui/avatar.tsx","../../../../../src/components/ui/badge.tsx","../../../../../src/components/ui/button-group.tsx","../../../../../src/components/ui/button.tsx","../../../../../src/components/ui/card.tsx","../../../../../src/components/ui/carousel.tsx","../../../../../src/components/ui/collapsible.tsx","../../../../../src/components/ui/command.tsx","../../../../../src/components/ui/dialog.tsx","../../../../../src/components/ui/dropdown-menu.tsx","../../../../../src/components/ui/hover-card.tsx","../../../../../src/components/ui/input-group.tsx","../../../../../src/components/ui/input.tsx","../../../../../src/components/ui/label.tsx","../../../../../src/components/ui/popover.tsx","../../../../../src/components/ui/progress.tsx","../../../../../src/components/ui/scroll-area.tsx","../../../../../src/components/ui/select.tsx","../../../../../src/components/ui/separator.tsx","../../../../../src/components/ui/sheet.tsx","../../../../../src/components/ui/sidebar.tsx","../../../../../src/components/ui/skeleton.tsx","../../../../../src/components/ui/switch.tsx","../../../../../src/components/ui/tabs.tsx","../../../../../src/components/ui/textarea.tsx","../../../../../src/components/ui/tooltip.tsx","../../../../../src/hooks/use-mobile.ts","../../../../../src/hooks/use-notification-sound.ts","../../../../../src/hooks/use-sessions.ts","../../../../../src/hooks/use-workspace-files.ts","../../../../../src/lib/api.ts","../../../../../src/lib/config.ts","../../../../../src/lib/utils.ts","../../../../../src/test/api.test.ts","../../../../../src/test/setup.ts","../../../../../tsconfig.json","../../../../../vitest.config.ts","../../../chunks/[root-of-the-server]__24426eb4._.js","../../../chunks/[root-of-the-server]__912d97d3._.js","../../../chunks/[turbopack]_runtime.js","../../../chunks/web__next-internal_server_app_sfapi_[___path]_route_actions_36c4ef97.js","./route_client-reference-manifest.js"]}
1
+ {"version":1,"files":["../../../../../README.md","../../../../../components.json","../../../../../eslint.config.mjs","../../../../../mdx-components.tsx","../../../../../next.config.ts","../../../../../node_modules/@opentelemetry/api/build/src/api/context.js","../../../../../node_modules/@opentelemetry/api/build/src/api/diag.js","../../../../../node_modules/@opentelemetry/api/build/src/api/metrics.js","../../../../../node_modules/@opentelemetry/api/build/src/api/propagation.js","../../../../../node_modules/@opentelemetry/api/build/src/api/trace.js","../../../../../node_modules/@opentelemetry/api/build/src/baggage/context-helpers.js","../../../../../node_modules/@opentelemetry/api/build/src/baggage/internal/baggage-impl.js","../../../../../node_modules/@opentelemetry/api/build/src/baggage/internal/symbol.js","../../../../../node_modules/@opentelemetry/api/build/src/baggage/utils.js","../../../../../node_modules/@opentelemetry/api/build/src/context-api.js","../../../../../node_modules/@opentelemetry/api/build/src/context/NoopContextManager.js","../../../../../node_modules/@opentelemetry/api/build/src/context/context.js","../../../../../node_modules/@opentelemetry/api/build/src/diag-api.js","../../../../../node_modules/@opentelemetry/api/build/src/diag/ComponentLogger.js","../../../../../node_modules/@opentelemetry/api/build/src/diag/consoleLogger.js","../../../../../node_modules/@opentelemetry/api/build/src/diag/internal/logLevelLogger.js","../../../../../node_modules/@opentelemetry/api/build/src/diag/types.js","../../../../../node_modules/@opentelemetry/api/build/src/index.js","../../../../../node_modules/@opentelemetry/api/build/src/internal/global-utils.js","../../../../../node_modules/@opentelemetry/api/build/src/internal/semver.js","../../../../../node_modules/@opentelemetry/api/build/src/metrics-api.js","../../../../../node_modules/@opentelemetry/api/build/src/metrics/Metric.js","../../../../../node_modules/@opentelemetry/api/build/src/metrics/NoopMeter.js","../../../../../node_modules/@opentelemetry/api/build/src/metrics/NoopMeterProvider.js","../../../../../node_modules/@opentelemetry/api/build/src/platform/index.js","../../../../../node_modules/@opentelemetry/api/build/src/platform/node/globalThis.js","../../../../../node_modules/@opentelemetry/api/build/src/platform/node/index.js","../../../../../node_modules/@opentelemetry/api/build/src/propagation-api.js","../../../../../node_modules/@opentelemetry/api/build/src/propagation/NoopTextMapPropagator.js","../../../../../node_modules/@opentelemetry/api/build/src/propagation/TextMapPropagator.js","../../../../../node_modules/@opentelemetry/api/build/src/trace-api.js","../../../../../node_modules/@opentelemetry/api/build/src/trace/NonRecordingSpan.js","../../../../../node_modules/@opentelemetry/api/build/src/trace/NoopTracer.js","../../../../../node_modules/@opentelemetry/api/build/src/trace/NoopTracerProvider.js","../../../../../node_modules/@opentelemetry/api/build/src/trace/ProxyTracer.js","../../../../../node_modules/@opentelemetry/api/build/src/trace/ProxyTracerProvider.js","../../../../../node_modules/@opentelemetry/api/build/src/trace/SamplingResult.js","../../../../../node_modules/@opentelemetry/api/build/src/trace/context-utils.js","../../../../../node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-impl.js","../../../../../node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-validators.js","../../../../../node_modules/@opentelemetry/api/build/src/trace/internal/utils.js","../../../../../node_modules/@opentelemetry/api/build/src/trace/invalid-span-constants.js","../../../../../node_modules/@opentelemetry/api/build/src/trace/span_kind.js","../../../../../node_modules/@opentelemetry/api/build/src/trace/spancontext-utils.js","../../../../../node_modules/@opentelemetry/api/build/src/trace/status.js","../../../../../node_modules/@opentelemetry/api/build/src/trace/trace_flags.js","../../../../../node_modules/@opentelemetry/api/build/src/version.js","../../../../../node_modules/@opentelemetry/api/package.json","../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js","../../../../../node_modules/next/dist/compiled/next-server/app-route-turbo.runtime.prod.js","../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../node_modules/next/dist/lib/constants.js","../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../node_modules/next/dist/lib/is-error.js","../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../node_modules/next/package.json","../../../../../package-lock.json","../../../../../package.json","../../../../../postcss.config.mjs","../../../../../public/file.svg","../../../../../public/globe.svg","../../../../../public/icon-192.png","../../../../../public/icon-512.png","../../../../../public/manifest.json","../../../../../public/next.svg","../../../../../public/sparke-coder.png","../../../../../public/sparkecode.mp4","../../../../../public/vercel.svg","../../../../../public/window.svg","../../../../../runtime-config.json","../../../../../src/app/(main)/agents/page.tsx","../../../../../src/app/(main)/layout.tsx","../../../../../src/app/(main)/page.tsx","../../../../../src/app/(main)/session/[id]/page.tsx","../../../../../src/app/(main)/settings/page.tsx","../../../../../src/app/api/config/route.ts","../../../../../src/app/api/health/route.ts","../../../../../src/app/apple-icon.png","../../../../../src/app/docs/installation/page.mdx","../../../../../src/app/docs/layout.tsx","../../../../../src/app/docs/page.mdx","../../../../../src/app/docs/skills/page.mdx","../../../../../src/app/docs/tools/page.mdx","../../../../../src/app/favicon.ico","../../../../../src/app/globals.css","../../../../../src/app/icon.png","../../../../../src/app/layout.tsx","../../../../../src/app/opengraph-image.png","../../../../../src/app/sfapi/[...path]/route.ts","../../../../../src/app/twitter-image.png","../../../../../src/components/ai-elements/agent.tsx","../../../../../src/components/ai-elements/artifact.tsx","../../../../../src/components/ai-elements/attachments.tsx","../../../../../src/components/ai-elements/audio-player.tsx","../../../../../src/components/ai-elements/bash-tool.tsx","../../../../../src/components/ai-elements/browser-recording.tsx","../../../../../src/components/ai-elements/canvas.tsx","../../../../../src/components/ai-elements/chain-of-thought.tsx","../../../../../src/components/ai-elements/checkpoint.tsx","../../../../../src/components/ai-elements/code-block.tsx","../../../../../src/components/ai-elements/code-graph-tool.tsx","../../../../../src/components/ai-elements/commit.tsx","../../../../../src/components/ai-elements/complete-task-tool.tsx","../../../../../src/components/ai-elements/confirmation.tsx","../../../../../src/components/ai-elements/connection.tsx","../../../../../src/components/ai-elements/context.tsx","../../../../../src/components/ai-elements/controls.tsx","../../../../../src/components/ai-elements/conversation.tsx","../../../../../src/components/ai-elements/edge.tsx","../../../../../src/components/ai-elements/environment-variables.tsx","../../../../../src/components/ai-elements/file-tree.tsx","../../../../../src/components/ai-elements/image.tsx","../../../../../src/components/ai-elements/inline-citation.tsx","../../../../../src/components/ai-elements/linter-tool.tsx","../../../../../src/components/ai-elements/load-skill-tool.tsx","../../../../../src/components/ai-elements/loader.tsx","../../../../../src/components/ai-elements/mention-input.tsx","../../../../../src/components/ai-elements/message.tsx","../../../../../src/components/ai-elements/mic-selector.tsx","../../../../../src/components/ai-elements/model-selector.tsx","../../../../../src/components/ai-elements/node.tsx","../../../../../src/components/ai-elements/open-in-chat.tsx","../../../../../src/components/ai-elements/package-info.tsx","../../../../../src/components/ai-elements/panel.tsx","../../../../../src/components/ai-elements/persona.tsx","../../../../../src/components/ai-elements/plan.tsx","../../../../../src/components/ai-elements/prompt-input.tsx","../../../../../src/components/ai-elements/queue.tsx","../../../../../src/components/ai-elements/read-file-tool.tsx","../../../../../src/components/ai-elements/reasoning.tsx","../../../../../src/components/ai-elements/sandbox.tsx","../../../../../src/components/ai-elements/schema-display.tsx","../../../../../src/components/ai-elements/search-tool.tsx","../../../../../src/components/ai-elements/shimmer.tsx","../../../../../src/components/ai-elements/snippet.tsx","../../../../../src/components/ai-elements/sources.tsx","../../../../../src/components/ai-elements/speech-input.tsx","../../../../../src/components/ai-elements/stack-trace.tsx","../../../../../src/components/ai-elements/subagent-modal.tsx","../../../../../src/components/ai-elements/suggestion.tsx","../../../../../src/components/ai-elements/task.tsx","../../../../../src/components/ai-elements/terminal.tsx","../../../../../src/components/ai-elements/test-results.tsx","../../../../../src/components/ai-elements/todo-panel.tsx","../../../../../src/components/ai-elements/todo-tool.tsx","../../../../../src/components/ai-elements/tool.tsx","../../../../../src/components/ai-elements/toolbar.tsx","../../../../../src/components/ai-elements/transcription.tsx","../../../../../src/components/ai-elements/voice-selector.tsx","../../../../../src/components/ai-elements/web-preview.tsx","../../../../../src/components/ai-elements/write-file-tool.tsx","../../../../../src/components/api-init.tsx","../../../../../src/components/browser-preview.tsx","../../../../../src/components/chat-interface.tsx","../../../../../src/components/pending-question-banner.tsx","../../../../../src/components/sessions-sidebar.tsx","../../../../../src/components/ui/accordion.tsx","../../../../../src/components/ui/alert.tsx","../../../../../src/components/ui/avatar.tsx","../../../../../src/components/ui/badge.tsx","../../../../../src/components/ui/button-group.tsx","../../../../../src/components/ui/button.tsx","../../../../../src/components/ui/card.tsx","../../../../../src/components/ui/carousel.tsx","../../../../../src/components/ui/collapsible.tsx","../../../../../src/components/ui/command.tsx","../../../../../src/components/ui/dialog.tsx","../../../../../src/components/ui/dropdown-menu.tsx","../../../../../src/components/ui/hover-card.tsx","../../../../../src/components/ui/input-group.tsx","../../../../../src/components/ui/input.tsx","../../../../../src/components/ui/label.tsx","../../../../../src/components/ui/popover.tsx","../../../../../src/components/ui/progress.tsx","../../../../../src/components/ui/scroll-area.tsx","../../../../../src/components/ui/select.tsx","../../../../../src/components/ui/separator.tsx","../../../../../src/components/ui/sheet.tsx","../../../../../src/components/ui/sidebar.tsx","../../../../../src/components/ui/skeleton.tsx","../../../../../src/components/ui/switch.tsx","../../../../../src/components/ui/tabs.tsx","../../../../../src/components/ui/textarea.tsx","../../../../../src/components/ui/tooltip.tsx","../../../../../src/hooks/use-mobile.ts","../../../../../src/hooks/use-notification-sound.ts","../../../../../src/hooks/use-sessions.ts","../../../../../src/hooks/use-workspace-files.ts","../../../../../src/lib/api.ts","../../../../../src/lib/config.ts","../../../../../src/lib/local-api.ts","../../../../../src/lib/utils.ts","../../../../../src/test/api.test.ts","../../../../../src/test/setup.ts","../../../../../tsconfig.json","../../../../../vitest.config.ts","../../../chunks/[root-of-the-server]__24426eb4._.js","../../../chunks/[root-of-the-server]__78517719._.js","../../../chunks/[turbopack]_runtime.js","../../../chunks/web__next-internal_server_app_sfapi_[___path]_route_actions_36c4ef97.js","./route_client-reference-manifest.js"]}
@@ -0,0 +1,3 @@
1
+ module.exports=[193695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},918622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},556704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},832319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},814747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},522734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},592628,e=>{"use strict";var t=e.i(522734),r=e.i(814747);function a(){let e=process.cwd();for(let a of[r.join(e,"runtime-config.json"),r.join(e,"..","runtime-config.json"),r.join(e,"..","..","runtime-config.json"),r.join(e,"..","..","..","runtime-config.json")])try{if(t.existsSync(a)){let e=JSON.parse(t.readFileSync(a,"utf-8"));if(e.localApiBaseUrl)return e.localApiBaseUrl;if("string"==typeof e.apiBaseUrl&&/^https?:\/\/(localhost|127\.0\.0\.1)/.test(e.apiBaseUrl))return e.apiBaseUrl}}catch{}return"http://127.0.0.1:3141"}e.s(["getLocalApiBaseUrl",()=>a])},447843,e=>{"use strict";var t=e.i(698490),r=e.i(618006),a=e.i(795912),n=e.i(772560),o=e.i(976852),s=e.i(738533),i=e.i(455822),l=e.i(754068),d=e.i(266843),u=e.i(699385),c=e.i(903050),p=e.i(475293),h=e.i(502144),f=e.i(833599),x=e.i(536497),g=e.i(193695);e.i(779178);var R=e.i(396717),m=e.i(592628);async function v(e,t){let r,{path:a=[]}=await t.params,n=(0,m.getLocalApiBaseUrl)().replace(/\/$/,""),o=e.nextUrl.search||"",s=`${n}/${a.join("/")}${o}`,i=new Headers,l=e.headers.get("content-type");l&&i.set("content-type",l);let d=e.headers.get("accept");d&&i.set("accept",d);let u={method:e.method,headers:i,redirect:"manual"};"GET"!==e.method&&"HEAD"!==e.method&&(u.body=await e.arrayBuffer());let c=new AbortController;u.signal=c.signal;let p=()=>c.abort();e.signal.addEventListener("abort",p);let h=setTimeout(()=>c.abort(),3e4);try{r=await fetch(s,u)}catch(r){e.signal.removeEventListener("abort",p);let t=r instanceof Error&&"AbortError"===r.name;return new Response(JSON.stringify({error:t?"local API timed out":"local API unreachable",target:s,detail:r instanceof Error?r.message:String(r)}),{status:t?504:502,headers:{"content-type":"application/json"}})}finally{clearTimeout(h)}let f=new Headers;for(let e of["content-type","cache-control","content-disposition"]){let t=r.headers.get(e);t&&f.set(e,t)}return new Response(r.body,{status:r.status,headers:f})}e.s(["DELETE",0,v,"GET",0,v,"HEAD",0,v,"OPTIONS",0,v,"PATCH",0,v,"POST",0,v,"PUT",0,v,"dynamic",0,"force-dynamic"],347729);var E=e.i(347729);let w=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/sfapi/[...path]/route",pathname:"/sfapi/[...path]",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/web/src/app/sfapi/[...path]/route.ts",nextConfigOutput:"standalone",userland:E}),{workAsyncStorage:y,workUnitAsyncStorage:A,serverHooks:b}=w;function C(){return(0,a.patchFetch)({workAsyncStorage:y,workUnitAsyncStorage:A})}async function T(e,t,a){w.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let m="/sfapi/[...path]/route";m=m.replace(/\/index$/,"")||"/";let v=await w.prepare(e,t,{srcPage:m,multiZoneDraftMode:!1});if(!v)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:E,params:y,nextConfig:A,parsedUrl:b,isDraftMode:C,prerenderManifest:T,routerServerContext:P,isOnDemandRevalidate:N,revalidateOnlyGenerated:O,resolvedPathname:S,clientReferenceManifest:j,serverActionsManifest:U}=v,H=(0,i.normalizeAppPath)(m),q=!!(T.dynamicRoutes[H]||T.routes[S]),_=async()=>((null==P?void 0:P.render404)?await P.render404(e,t,b,!1):t.end("This page could not be found"),null);if(q&&!C){let e=!!T.routes[S],t=T.dynamicRoutes[H];if(t&&!1===t.fallback&&!e){if(A.experimental.adapterPath)return await _();throw new g.NoFallbackError}}let k=null;!q||w.isDev||C||(k="/index"===(k=S)?"/":k);let I=!0===w.isDev||!q,D=q&&!I;U&&j&&(0,s.setManifestsSingleton)({page:m,clientReferenceManifest:j,serverActionsManifest:U});let B=e.method||"GET",$=(0,o.getTracer)(),M=$.getActiveScopeSpan(),L={params:y,prerenderManifest:T,renderOpts:{experimental:{authInterrupts:!!A.experimental.authInterrupts},cacheComponents:!!A.cacheComponents,supportsDynamicResponse:I,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:A.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>w.onRequestError(e,t,a,n,P)},sharedContext:{buildId:E}},F=new l.NodeNextRequest(e),K=new l.NodeNextResponse(t),G=d.NextRequestAdapter.fromNodeNextRequest(F,(0,d.signalFromNodeResponse)(t));try{let s=async e=>w.handle(G,L).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=$.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${B} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${B} ${m}`)}),i=!!(0,n.getRequestMeta)(e,"minimalMode"),l=async n=>{var o,l;let d=async({previousCacheEntry:r})=>{try{if(!i&&N&&O&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let o=await s(n);e.fetchMetrics=L.renderOpts.fetchMetrics;let l=L.renderOpts.pendingWaitUntil;l&&a.waitUntil&&(a.waitUntil(l),l=void 0);let d=L.renderOpts.collectedTags;if(!q)return await (0,p.sendResponse)(F,K,o,L.renderOpts.pendingWaitUntil),null;{let e=await o.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(o.headers);d&&(t[x.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==L.renderOpts.collectedRevalidate&&!(L.renderOpts.collectedRevalidate>=x.INFINITE_CACHE)&&L.renderOpts.collectedRevalidate,a=void 0===L.renderOpts.collectedExpire||L.renderOpts.collectedExpire>=x.INFINITE_CACHE?void 0:L.renderOpts.collectedExpire;return{value:{kind:R.CachedRouteKind.APP_ROUTE,status:o.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await w.onRequestError(e,t,{routerKind:"App Router",routePath:m,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:N})},!1,P),t}},u=await w.handleResponse({req:e,nextConfig:A,cacheKey:k,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:T,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:O,responseGenerator:d,waitUntil:a.waitUntil,isMinimalMode:i});if(!q)return null;if((null==u||null==(o=u.value)?void 0:o.kind)!==R.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(l=u.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});i||t.setHeader("x-nextjs-cache",N?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),C&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let g=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return i&&q||g.delete(x.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||g.get("Cache-Control")||g.set("Cache-Control",(0,f.getCacheControlHeader)(u.cacheControl)),await (0,p.sendResponse)(F,K,new Response(u.value.body,{headers:g,status:u.value.status||200})),null};M?await l(M):await $.withPropagatedContext(e.headers,()=>$.trace(u.BaseServerSpan.handleRequest,{spanName:`${B} ${m}`,kind:o.SpanKind.SERVER,attributes:{"http.method":B,"http.target":e.url}},l))}catch(t){if(t instanceof g.NoFallbackError||await w.onRequestError(e,t,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:N})},!1,P),q)throw t;return await (0,p.sendResponse)(F,K,new Response(null,{status:500})),null}}e.s(["handler",()=>T,"patchFetch",()=>C,"routeModule",()=>w,"serverHooks",()=>b,"workAsyncStorage",()=>y,"workUnitAsyncStorage",()=>A],447843)}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__78517719._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[193695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},918622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},556704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},832319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},324725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},814747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},522734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},592628,e=>{"use strict";var t=e.i(522734),r=e.i(814747);function a(){let e=process.cwd();for(let a of[r.join(e,"runtime-config.json"),r.join(e,"..","runtime-config.json"),r.join(e,"..","..","runtime-config.json"),r.join(e,"..","..","..","runtime-config.json")])try{if(t.existsSync(a)){let e=JSON.parse(t.readFileSync(a,"utf-8"));if(e.localApiBaseUrl)return e.localApiBaseUrl;if("string"==typeof e.apiBaseUrl&&/^https?:\/\/(localhost|127\.0\.0\.1)/.test(e.apiBaseUrl))return e.apiBaseUrl}}catch{}return"http://127.0.0.1:3141"}e.s(["getLocalApiBaseUrl",()=>a])},446535,e=>{"use strict";var t=e.i(698490),r=e.i(618006),a=e.i(795912),n=e.i(772560),s=e.i(976852),o=e.i(738533),i=e.i(455822),l=e.i(754068),d=e.i(266843),u=e.i(699385),p=e.i(903050),c=e.i(475293),h=e.i(502144),x=e.i(833599),f=e.i(536497),R=e.i(193695);e.i(779178);var v=e.i(396717),g=e.i(23480),m=e.i(592628);async function w(){let e=(0,m.getLocalApiBaseUrl)();try{let t=new AbortController,r=setTimeout(()=>t.abort(),3e3),a=await fetch(`${e}/health`,{cache:"no-store",signal:t.signal});clearTimeout(r);let n=await a.json();return g.NextResponse.json({...n,name:"sparkecoder-web"})}catch{return g.NextResponse.json({name:"sparkecoder-web",error:"Failed to connect to API server"},{status:503})}}e.s(["GET",()=>w,"dynamic",0,"force-dynamic"],807965);var E=e.i(807965);let y=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/health/route",pathname:"/api/health",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/web/src/app/api/health/route.ts",nextConfigOutput:"standalone",userland:E}),{workAsyncStorage:C,workUnitAsyncStorage:A,serverHooks:b}=y;function j(){return(0,a.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:A})}async function T(e,t,a){y.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let g="/api/health/route";g=g.replace(/\/index$/,"")||"/";let m=await y.prepare(e,t,{srcPage:g,multiZoneDraftMode:!1});if(!m)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:w,params:E,nextConfig:C,parsedUrl:A,isDraftMode:b,prerenderManifest:j,routerServerContext:T,isOnDemandRevalidate:N,revalidateOnlyGenerated:P,resolvedPathname:k,clientReferenceManifest:U,serverActionsManifest:O}=m,S=(0,i.normalizeAppPath)(g),q=!!(j.dynamicRoutes[S]||j.routes[k]),_=async()=>((null==T?void 0:T.render404)?await T.render404(e,t,A,!1):t.end("This page could not be found"),null);if(q&&!b){let e=!!j.routes[k],t=j.dynamicRoutes[S];if(t&&!1===t.fallback&&!e){if(C.experimental.adapterPath)return await _();throw new R.NoFallbackError}}let H=null;!q||y.isDev||b||(H="/index"===(H=k)?"/":H);let I=!0===y.isDev||!q,D=q&&!I;O&&U&&(0,o.setManifestsSingleton)({page:g,clientReferenceManifest:U,serverActionsManifest:O});let B=e.method||"GET",M=(0,s.getTracer)(),F=M.getActiveScopeSpan(),$={params:E,prerenderManifest:j,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts},cacheComponents:!!C.cacheComponents,supportsDynamicResponse:I,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:C.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>y.onRequestError(e,t,a,n,T)},sharedContext:{buildId:w}},K=new l.NodeNextRequest(e),L=new l.NodeNextResponse(t),G=d.NextRequestAdapter.fromNodeNextRequest(K,(0,d.signalFromNodeResponse)(t));try{let o=async e=>y.handle(G,$).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=M.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${B} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${B} ${g}`)}),i=!!(0,n.getRequestMeta)(e,"minimalMode"),l=async n=>{var s,l;let d=async({previousCacheEntry:r})=>{try{if(!i&&N&&P&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await o(n);e.fetchMetrics=$.renderOpts.fetchMetrics;let l=$.renderOpts.pendingWaitUntil;l&&a.waitUntil&&(a.waitUntil(l),l=void 0);let d=$.renderOpts.collectedTags;if(!q)return await (0,c.sendResponse)(K,L,s,$.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(s.headers);d&&(t[f.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==$.renderOpts.collectedRevalidate&&!($.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&$.renderOpts.collectedRevalidate,a=void 0===$.renderOpts.collectedExpire||$.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:$.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await y.onRequestError(e,t,{routerKind:"App Router",routePath:g,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:N})},!1,T),t}},u=await y.handleResponse({req:e,nextConfig:C,cacheKey:H,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:j,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:P,responseGenerator:d,waitUntil:a.waitUntil,isMinimalMode:i});if(!q)return null;if((null==u||null==(s=u.value)?void 0:s.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(l=u.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});i||t.setHeader("x-nextjs-cache",N?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),b&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let R=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return i&&q||R.delete(f.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||R.get("Cache-Control")||R.set("Cache-Control",(0,x.getCacheControlHeader)(u.cacheControl)),await (0,c.sendResponse)(K,L,new Response(u.value.body,{headers:R,status:u.value.status||200})),null};F?await l(F):await M.withPropagatedContext(e.headers,()=>M.trace(u.BaseServerSpan.handleRequest,{spanName:`${B} ${g}`,kind:s.SpanKind.SERVER,attributes:{"http.method":B,"http.target":e.url}},l))}catch(t){if(t instanceof R.NoFallbackError||await y.onRequestError(e,t,{routerKind:"App Router",routePath:S,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:N})},!1,T),q)throw t;return await (0,c.sendResponse)(K,L,new Response(null,{status:500})),null}}e.s(["handler",()=>T,"patchFetch",()=>j,"routeModule",()=>y,"serverHooks",()=>b,"workAsyncStorage",()=>C,"workUnitAsyncStorage",()=>A],446535)}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__9d50fe63._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[193695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},918622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},556704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},832319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},324725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},814747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},522734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},592628,e=>{"use strict";var t=e.i(522734),r=e.i(814747);function a(){let e=process.cwd();for(let a of[r.join(e,"runtime-config.json"),r.join(e,"..","runtime-config.json"),r.join(e,"..","..","runtime-config.json"),r.join(e,"..","..","..","runtime-config.json")])try{if(t.existsSync(a)){let e=JSON.parse(t.readFileSync(a,"utf-8"));if(e.localApiBaseUrl)return e.localApiBaseUrl;if("string"==typeof e.apiBaseUrl&&/^https?:\/\/(localhost|127\.0\.0\.1)/.test(e.apiBaseUrl))return e.apiBaseUrl}}catch{}return"http://127.0.0.1:3141"}e.s(["getLocalApiBaseUrl",()=>a])},604575,e=>{"use strict";var t=e.i(698490),r=e.i(618006),a=e.i(795912),n=e.i(772560),o=e.i(976852),i=e.i(738533),s=e.i(455822),l=e.i(754068),d=e.i(266843),u=e.i(699385),p=e.i(903050),c=e.i(475293),f=e.i(502144),h=e.i(833599),g=e.i(536497),x=e.i(193695);e.i(779178);var v=e.i(396717),R=e.i(23480),m=e.i(592628);let w=[{id:"claude-opus-4-8",name:"Claude Opus 4.8",provider:"Anthropic"},{id:"gpt-5.5",name:"GPT-5.5",provider:"OpenAI"},{id:"claude-fable-5",name:"Claude Fable 5",provider:"Anthropic"}],C=[{id:"bash",name:"Bash",description:"Execute shell commands",dangerous:!0},{id:"write_file",name:"Write File",description:"Create or edit files",dangerous:!0},{id:"read_file",name:"Read File",description:"Read file contents",dangerous:!1},{id:"todo",name:"Todo",description:"Manage task lists",dangerous:!1},{id:"load_skill",name:"Load Skill",description:"Load skills into context",dangerous:!1}];async function y(){let e=(0,m.getLocalApiBaseUrl)();try{let t=new AbortController,r=setTimeout(()=>t.abort(),3e3),a=await fetch(`${e}/health`,{cache:"no-store",signal:t.signal});clearTimeout(r);let n=await a.json();return R.NextResponse.json({availableModels:w,availableTools:C,defaultModel:n.config?.defaultModel||"gpt-5.5",defaultToolApprovals:n.config?.defaultToolApprovals||{},serverConnected:!0,apiKeyConfigured:n.apiKeyConfigured??!1,apiBaseUrl:e})}catch{return R.NextResponse.json({availableModels:w,availableTools:C,defaultModel:"gpt-5.5",defaultToolApprovals:{},serverConnected:!1,apiKeyConfigured:!1,apiBaseUrl:e})}}e.s(["GET",()=>y,"dynamic",0,"force-dynamic"],518232);var E=e.i(518232);let A=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/config/route",pathname:"/api/config",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/web/src/app/api/config/route.ts",nextConfigOutput:"standalone",userland:E}),{workAsyncStorage:b,workUnitAsyncStorage:T,serverHooks:j}=A;function N(){return(0,a.patchFetch)({workAsyncStorage:b,workUnitAsyncStorage:T})}async function k(e,t,a){A.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let R="/api/config/route";R=R.replace(/\/index$/,"")||"/";let m=await A.prepare(e,t,{srcPage:R,multiZoneDraftMode:!1});if(!m)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:w,params:C,nextConfig:y,parsedUrl:E,isDraftMode:b,prerenderManifest:T,routerServerContext:j,isOnDemandRevalidate:N,revalidateOnlyGenerated:k,resolvedPathname:O,clientReferenceManifest:P,serverActionsManifest:S}=m,U=(0,s.normalizeAppPath)(R),_=!!(T.dynamicRoutes[U]||T.routes[O]),q=async()=>((null==j?void 0:j.render404)?await j.render404(e,t,E,!1):t.end("This page could not be found"),null);if(_&&!b){let e=!!T.routes[O],t=T.dynamicRoutes[U];if(t&&!1===t.fallback&&!e){if(y.experimental.adapterPath)return await q();throw new x.NoFallbackError}}let M=null;!_||A.isDev||b||(M="/index"===(M=O)?"/":M);let H=!0===A.isDev||!_,I=_&&!H;S&&P&&(0,i.setManifestsSingleton)({page:R,clientReferenceManifest:P,serverActionsManifest:S});let B=e.method||"GET",D=(0,o.getTracer)(),F=D.getActiveScopeSpan(),K={params:C,prerenderManifest:T,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts},cacheComponents:!!y.cacheComponents,supportsDynamicResponse:H,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:y.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>A.onRequestError(e,t,a,n,j)},sharedContext:{buildId:w}},$=new l.NodeNextRequest(e),L=new l.NodeNextResponse(t),G=d.NextRequestAdapter.fromNodeNextRequest($,(0,d.signalFromNodeResponse)(t));try{let i=async e=>A.handle(G,K).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=D.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${B} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${B} ${R}`)}),s=!!(0,n.getRequestMeta)(e,"minimalMode"),l=async n=>{var o,l;let d=async({previousCacheEntry:r})=>{try{if(!s&&N&&k&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let o=await i(n);e.fetchMetrics=K.renderOpts.fetchMetrics;let l=K.renderOpts.pendingWaitUntil;l&&a.waitUntil&&(a.waitUntil(l),l=void 0);let d=K.renderOpts.collectedTags;if(!_)return await (0,c.sendResponse)($,L,o,K.renderOpts.pendingWaitUntil),null;{let e=await o.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(o.headers);d&&(t[g.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==K.renderOpts.collectedRevalidate&&!(K.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,a=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:o.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await A.onRequestError(e,t,{routerKind:"App Router",routePath:R,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:I,isOnDemandRevalidate:N})},!1,j),t}},u=await A.handleResponse({req:e,nextConfig:y,cacheKey:M,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:T,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:k,responseGenerator:d,waitUntil:a.waitUntil,isMinimalMode:s});if(!_)return null;if((null==u||null==(o=u.value)?void 0:o.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(l=u.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});s||t.setHeader("x-nextjs-cache",N?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),b&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let x=(0,f.fromNodeOutgoingHttpHeaders)(u.value.headers);return s&&_||x.delete(g.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||x.get("Cache-Control")||x.set("Cache-Control",(0,h.getCacheControlHeader)(u.cacheControl)),await (0,c.sendResponse)($,L,new Response(u.value.body,{headers:x,status:u.value.status||200})),null};F?await l(F):await D.withPropagatedContext(e.headers,()=>D.trace(u.BaseServerSpan.handleRequest,{spanName:`${B} ${R}`,kind:o.SpanKind.SERVER,attributes:{"http.method":B,"http.target":e.url}},l))}catch(t){if(t instanceof x.NoFallbackError||await A.onRequestError(e,t,{routerKind:"App Router",routePath:U,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:I,isOnDemandRevalidate:N})},!1,j),_)throw t;return await (0,c.sendResponse)($,L,new Response(null,{status:500})),null}}e.s(["handler",()=>k,"patchFetch",()=>N,"routeModule",()=>A,"serverHooks",()=>j,"workAsyncStorage",()=>b,"workUnitAsyncStorage",()=>T],604575)}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__ce44139a._.js.map
@@ -1 +1 @@
1
- <!DOCTYPE html><!--7Ho139n0laRpntkO8v0DI--><html lang="en" class="dark"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=5"/><link rel="stylesheet" href="/_next/static/chunks/34d933785a17edf3.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/chunks/acb0fc66f5414af6.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/651e187cc15d66de.js"/><script src="/_next/static/chunks/735a2408c315b2f0.js" async=""></script><script src="/_next/static/chunks/186e0c1b3ff43c9c.js" async=""></script><script src="/_next/static/chunks/a14243261b055626.js" async=""></script><script src="/_next/static/chunks/862ced58ce21a270.js" async=""></script><script src="/_next/static/chunks/turbopack-2c0905c7bbebae3f.js" async=""></script><script src="/_next/static/chunks/7a7abb7146d0a913.js" async=""></script><script src="/_next/static/chunks/9b5512fb633ef95d.js" async=""></script><script src="/_next/static/chunks/0f1cf11540868e42.js" async=""></script><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><title>404: This page could not be found.</title><meta name="theme-color" media="(prefers-color-scheme: light)" content="#ffffff"/><meta name="theme-color" media="(prefers-color-scheme: dark)" content="#0a0a0a"/><title>SparkeCoder - AI-Powered Coding Agent</title><meta name="description" content="SparkeCoder is your AI-powered coding assistant. Build, debug, and ship code faster with intelligent automation and natural language programming."/><meta name="author" content="SparkeCoder Team"/><link rel="manifest" href="/manifest.json"/><meta name="keywords" content="AI coding assistant,code automation,AI programming,developer tools,coding agent,SparkeCoder,AI pair programming"/><meta name="creator" content="SparkeCoder"/><meta name="publisher" content="SparkeCoder"/><meta name="robots" content="index, follow"/><meta name="googlebot" content="index, follow, max-video-preview:-1, max-image-preview:large, max-snippet:-1"/><meta name="category" content="technology"/><meta name="format-detection" content="telephone=no"/><meta name="mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-title" content="SparkeCoder"/><meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"/><meta property="og:title" content="SparkeCoder - AI-Powered Coding Agent"/><meta property="og:description" content="Build, debug, and ship code faster with intelligent AI automation and natural language programming."/><meta property="og:site_name" content="SparkeCoder"/><meta property="og:locale" content="en_US"/><meta property="og:image" content="http://localhost:3001/opengraph-image.png?opengraph-image.ce342317.png"/><meta property="og:image:width" content="512"/><meta property="og:image:height" content="512"/><meta property="og:image:type" content="image/png"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="SparkeCoder - AI-Powered Coding Agent"/><meta name="twitter:description" content="Build, debug, and ship code faster with intelligent AI automation and natural language programming."/><meta name="twitter:image" content="http://localhost:3001/twitter-image.png?twitter-image.ce342317.png"/><meta name="twitter:image:width" content="512"/><meta name="twitter:image:height" content="512"/><meta name="twitter:image:type" content="image/png"/><link rel="icon" href="/favicon.ico?favicon.e3cbed1b.ico" sizes="256x256" type="image/x-icon"/><link rel="icon" href="/icon.png?icon.fdefec0f.png" sizes="32x32" type="image/png"/><link rel="apple-touch-icon" href="/apple-icon.png?apple-icon.d6d14cbd.png" sizes="180x180" type="image/png"/><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body class="geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable antialiased"><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/651e187cc15d66de.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[760800,[\"/_next/static/chunks/7a7abb7146d0a913.js\"],\"ApiInit\"]\n3:I[488287,[\"/_next/static/chunks/9b5512fb633ef95d.js\",\"/_next/static/chunks/0f1cf11540868e42.js\"],\"default\"]\n4:I[174895,[\"/_next/static/chunks/9b5512fb633ef95d.js\",\"/_next/static/chunks/0f1cf11540868e42.js\"],\"default\"]\n5:I[151858,[\"/_next/static/chunks/9b5512fb633ef95d.js\",\"/_next/static/chunks/0f1cf11540868e42.js\"],\"OutletBoundary\"]\n6:\"$Sreact.suspense\"\n8:I[151858,[\"/_next/static/chunks/9b5512fb633ef95d.js\",\"/_next/static/chunks/0f1cf11540868e42.js\"],\"ViewportBoundary\"]\na:I[151858,[\"/_next/static/chunks/9b5512fb633ef95d.js\",\"/_next/static/chunks/0f1cf11540868e42.js\"],\"MetadataBoundary\"]\nc:I[552576,[\"/_next/static/chunks/9b5512fb633ef95d.js\",\"/_next/static/chunks/0f1cf11540868e42.js\"],\"default\"]\n:HL[\"/_next/static/chunks/34d933785a17edf3.css\",\"style\"]\n:HL[\"/_next/static/chunks/acb0fc66f5414af6.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"7Ho139n0laRpntkO8v0DI\",\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/34d933785a17edf3.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/acb0fc66f5414af6.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/7a7abb7146d0a913.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"dark\",\"children\":[\"$\",\"body\",null,{\"className\":\"geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable antialiased\",\"children\":[[\"$\",\"$L2\",null,{}],[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:props:children:1:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:f:0:1:0:props:children:1:props:children:props:children:1:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:props:children:1:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:props:children:1:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L5\",null,{\"children\":[\"$\",\"$6\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@7\"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$6\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",\"$undefined\"],\"S\":true}\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, maximum-scale=5\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"media\":\"(prefers-color-scheme: light)\",\"content\":\"#ffffff\"}],[\"$\",\"meta\",\"3\",{\"name\":\"theme-color\",\"media\":\"(prefers-color-scheme: dark)\",\"content\":\"#0a0a0a\"}]]\n"])</script><script>self.__next_f.push([1,"d:I[349310,[\"/_next/static/chunks/9b5512fb633ef95d.js\",\"/_next/static/chunks/0f1cf11540868e42.js\"],\"IconMark\"]\n7:null\n"])</script><script>self.__next_f.push([1,"b:[[\"$\",\"title\",\"0\",{\"children\":\"SparkeCoder - AI-Powered Coding Agent\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"SparkeCoder is your AI-powered coding assistant. Build, debug, and ship code faster with intelligent automation and natural language programming.\"}],[\"$\",\"meta\",\"2\",{\"name\":\"author\",\"content\":\"SparkeCoder Team\"}],[\"$\",\"link\",\"3\",{\"rel\":\"manifest\",\"href\":\"/manifest.json\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"meta\",\"4\",{\"name\":\"keywords\",\"content\":\"AI coding assistant,code automation,AI programming,developer tools,coding agent,SparkeCoder,AI pair programming\"}],[\"$\",\"meta\",\"5\",{\"name\":\"creator\",\"content\":\"SparkeCoder\"}],[\"$\",\"meta\",\"6\",{\"name\":\"publisher\",\"content\":\"SparkeCoder\"}],[\"$\",\"meta\",\"7\",{\"name\":\"robots\",\"content\":\"index, follow\"}],[\"$\",\"meta\",\"8\",{\"name\":\"googlebot\",\"content\":\"index, follow, max-video-preview:-1, max-image-preview:large, max-snippet:-1\"}],[\"$\",\"meta\",\"9\",{\"name\":\"category\",\"content\":\"technology\"}],[\"$\",\"meta\",\"10\",{\"name\":\"format-detection\",\"content\":\"telephone=no\"}],[\"$\",\"meta\",\"11\",{\"name\":\"mobile-web-app-capable\",\"content\":\"yes\"}],[\"$\",\"meta\",\"12\",{\"name\":\"apple-mobile-web-app-title\",\"content\":\"SparkeCoder\"}],[\"$\",\"meta\",\"13\",{\"name\":\"apple-mobile-web-app-status-bar-style\",\"content\":\"black-translucent\"}],[\"$\",\"meta\",\"14\",{\"property\":\"og:title\",\"content\":\"SparkeCoder - AI-Powered Coding Agent\"}],[\"$\",\"meta\",\"15\",{\"property\":\"og:description\",\"content\":\"Build, debug, and ship code faster with intelligent AI automation and natural language programming.\"}],[\"$\",\"meta\",\"16\",{\"property\":\"og:site_name\",\"content\":\"SparkeCoder\"}],[\"$\",\"meta\",\"17\",{\"property\":\"og:locale\",\"content\":\"en_US\"}],[\"$\",\"meta\",\"18\",{\"property\":\"og:image\",\"content\":\"http://localhost:3001/opengraph-image.png?opengraph-image.ce342317.png\"}],[\"$\",\"meta\",\"19\",{\"property\":\"og:image:width\",\"content\":\"512\"}],[\"$\",\"meta\",\"20\",{\"property\":\"og:image:height\",\"content\":\"512\"}],[\"$\",\"meta\",\"21\",{\"property\":\"og:image:type\",\"content\":\"image/png\"}],[\"$\",\"meta\",\"22\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"23\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"24\",{\"name\":\"twitter:title\",\"content\":\"SparkeCoder - AI-Powered Coding Agent\"}],[\"$\",\"meta\",\"25\",{\"name\":\"twitter:description\",\"content\":\"Build, debug, and ship code faster with intelligent AI automation and natural language programming.\"}],[\"$\",\"meta\",\"26\",{\"name\":\"twitter:image\",\"content\":\"http://localhost:3001/twitter-image.png?twitter-image.ce342317.png\"}],[\"$\",\"meta\",\"27\",{\"name\":\"twitter:image:width\",\"content\":\"512\"}],[\"$\",\"meta\",\"28\",{\"name\":\"twitter:image:height\",\"content\":\"512\"}],[\"$\",\"meta\",\"29\",{\"name\":\"twitter:image:type\",\"content\":\"image/png\"}],[\"$\",\"link\",\"30\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.e3cbed1b.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"link\",\"31\",{\"rel\":\"icon\",\"href\":\"/icon.png?icon.fdefec0f.png\",\"sizes\":\"32x32\",\"type\":\"image/png\"}],[\"$\",\"link\",\"32\",{\"rel\":\"apple-touch-icon\",\"href\":\"/apple-icon.png?apple-icon.d6d14cbd.png\",\"sizes\":\"180x180\",\"type\":\"image/png\"}],[\"$\",\"$Ld\",\"33\",{}]]\n"])</script></body></html>
1
+ <!DOCTYPE html><!--BS3vhcmrlRmT39qDuhaJP--><html lang="en" class="dark"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=5"/><link rel="stylesheet" href="/_next/static/chunks/34d933785a17edf3.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/chunks/acb0fc66f5414af6.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/651e187cc15d66de.js"/><script src="/_next/static/chunks/735a2408c315b2f0.js" async=""></script><script src="/_next/static/chunks/186e0c1b3ff43c9c.js" async=""></script><script src="/_next/static/chunks/a14243261b055626.js" async=""></script><script src="/_next/static/chunks/862ced58ce21a270.js" async=""></script><script src="/_next/static/chunks/turbopack-2c0905c7bbebae3f.js" async=""></script><script src="/_next/static/chunks/7a7abb7146d0a913.js" async=""></script><script src="/_next/static/chunks/9b5512fb633ef95d.js" async=""></script><script src="/_next/static/chunks/0f1cf11540868e42.js" async=""></script><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><title>404: This page could not be found.</title><meta name="theme-color" media="(prefers-color-scheme: light)" content="#ffffff"/><meta name="theme-color" media="(prefers-color-scheme: dark)" content="#0a0a0a"/><title>SparkeCoder - AI-Powered Coding Agent</title><meta name="description" content="SparkeCoder is your AI-powered coding assistant. Build, debug, and ship code faster with intelligent automation and natural language programming."/><meta name="author" content="SparkeCoder Team"/><link rel="manifest" href="/manifest.json"/><meta name="keywords" content="AI coding assistant,code automation,AI programming,developer tools,coding agent,SparkeCoder,AI pair programming"/><meta name="creator" content="SparkeCoder"/><meta name="publisher" content="SparkeCoder"/><meta name="robots" content="index, follow"/><meta name="googlebot" content="index, follow, max-video-preview:-1, max-image-preview:large, max-snippet:-1"/><meta name="category" content="technology"/><meta name="format-detection" content="telephone=no"/><meta name="mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-title" content="SparkeCoder"/><meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"/><meta property="og:title" content="SparkeCoder - AI-Powered Coding Agent"/><meta property="og:description" content="Build, debug, and ship code faster with intelligent AI automation and natural language programming."/><meta property="og:site_name" content="SparkeCoder"/><meta property="og:locale" content="en_US"/><meta property="og:image" content="http://localhost:3001/opengraph-image.png?opengraph-image.ce342317.png"/><meta property="og:image:width" content="512"/><meta property="og:image:height" content="512"/><meta property="og:image:type" content="image/png"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="SparkeCoder - AI-Powered Coding Agent"/><meta name="twitter:description" content="Build, debug, and ship code faster with intelligent AI automation and natural language programming."/><meta name="twitter:image" content="http://localhost:3001/twitter-image.png?twitter-image.ce342317.png"/><meta name="twitter:image:width" content="512"/><meta name="twitter:image:height" content="512"/><meta name="twitter:image:type" content="image/png"/><link rel="icon" href="/favicon.ico?favicon.e3cbed1b.ico" sizes="256x256" type="image/x-icon"/><link rel="icon" href="/icon.png?icon.fdefec0f.png" sizes="32x32" type="image/png"/><link rel="apple-touch-icon" href="/apple-icon.png?apple-icon.d6d14cbd.png" sizes="180x180" type="image/png"/><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body class="geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable antialiased"><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/651e187cc15d66de.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[760800,[\"/_next/static/chunks/7a7abb7146d0a913.js\"],\"ApiInit\"]\n3:I[488287,[\"/_next/static/chunks/9b5512fb633ef95d.js\",\"/_next/static/chunks/0f1cf11540868e42.js\"],\"default\"]\n4:I[174895,[\"/_next/static/chunks/9b5512fb633ef95d.js\",\"/_next/static/chunks/0f1cf11540868e42.js\"],\"default\"]\n5:I[151858,[\"/_next/static/chunks/9b5512fb633ef95d.js\",\"/_next/static/chunks/0f1cf11540868e42.js\"],\"OutletBoundary\"]\n6:\"$Sreact.suspense\"\n8:I[151858,[\"/_next/static/chunks/9b5512fb633ef95d.js\",\"/_next/static/chunks/0f1cf11540868e42.js\"],\"ViewportBoundary\"]\na:I[151858,[\"/_next/static/chunks/9b5512fb633ef95d.js\",\"/_next/static/chunks/0f1cf11540868e42.js\"],\"MetadataBoundary\"]\nc:I[552576,[\"/_next/static/chunks/9b5512fb633ef95d.js\",\"/_next/static/chunks/0f1cf11540868e42.js\"],\"default\"]\n:HL[\"/_next/static/chunks/34d933785a17edf3.css\",\"style\"]\n:HL[\"/_next/static/chunks/acb0fc66f5414af6.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"BS3vhcmrlRmT39qDuhaJP\",\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/34d933785a17edf3.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/acb0fc66f5414af6.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/7a7abb7146d0a913.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"dark\",\"children\":[\"$\",\"body\",null,{\"className\":\"geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable antialiased\",\"children\":[[\"$\",\"$L2\",null,{}],[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:props:children:1:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:f:0:1:0:props:children:1:props:children:props:children:1:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:props:children:1:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:props:children:1:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L5\",null,{\"children\":[\"$\",\"$6\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@7\"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$6\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",\"$undefined\"],\"S\":true}\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, maximum-scale=5\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"media\":\"(prefers-color-scheme: light)\",\"content\":\"#ffffff\"}],[\"$\",\"meta\",\"3\",{\"name\":\"theme-color\",\"media\":\"(prefers-color-scheme: dark)\",\"content\":\"#0a0a0a\"}]]\n"])</script><script>self.__next_f.push([1,"d:I[349310,[\"/_next/static/chunks/9b5512fb633ef95d.js\",\"/_next/static/chunks/0f1cf11540868e42.js\"],\"IconMark\"]\n7:null\n"])</script><script>self.__next_f.push([1,"b:[[\"$\",\"title\",\"0\",{\"children\":\"SparkeCoder - AI-Powered Coding Agent\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"SparkeCoder is your AI-powered coding assistant. Build, debug, and ship code faster with intelligent automation and natural language programming.\"}],[\"$\",\"meta\",\"2\",{\"name\":\"author\",\"content\":\"SparkeCoder Team\"}],[\"$\",\"link\",\"3\",{\"rel\":\"manifest\",\"href\":\"/manifest.json\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"meta\",\"4\",{\"name\":\"keywords\",\"content\":\"AI coding assistant,code automation,AI programming,developer tools,coding agent,SparkeCoder,AI pair programming\"}],[\"$\",\"meta\",\"5\",{\"name\":\"creator\",\"content\":\"SparkeCoder\"}],[\"$\",\"meta\",\"6\",{\"name\":\"publisher\",\"content\":\"SparkeCoder\"}],[\"$\",\"meta\",\"7\",{\"name\":\"robots\",\"content\":\"index, follow\"}],[\"$\",\"meta\",\"8\",{\"name\":\"googlebot\",\"content\":\"index, follow, max-video-preview:-1, max-image-preview:large, max-snippet:-1\"}],[\"$\",\"meta\",\"9\",{\"name\":\"category\",\"content\":\"technology\"}],[\"$\",\"meta\",\"10\",{\"name\":\"format-detection\",\"content\":\"telephone=no\"}],[\"$\",\"meta\",\"11\",{\"name\":\"mobile-web-app-capable\",\"content\":\"yes\"}],[\"$\",\"meta\",\"12\",{\"name\":\"apple-mobile-web-app-title\",\"content\":\"SparkeCoder\"}],[\"$\",\"meta\",\"13\",{\"name\":\"apple-mobile-web-app-status-bar-style\",\"content\":\"black-translucent\"}],[\"$\",\"meta\",\"14\",{\"property\":\"og:title\",\"content\":\"SparkeCoder - AI-Powered Coding Agent\"}],[\"$\",\"meta\",\"15\",{\"property\":\"og:description\",\"content\":\"Build, debug, and ship code faster with intelligent AI automation and natural language programming.\"}],[\"$\",\"meta\",\"16\",{\"property\":\"og:site_name\",\"content\":\"SparkeCoder\"}],[\"$\",\"meta\",\"17\",{\"property\":\"og:locale\",\"content\":\"en_US\"}],[\"$\",\"meta\",\"18\",{\"property\":\"og:image\",\"content\":\"http://localhost:3001/opengraph-image.png?opengraph-image.ce342317.png\"}],[\"$\",\"meta\",\"19\",{\"property\":\"og:image:width\",\"content\":\"512\"}],[\"$\",\"meta\",\"20\",{\"property\":\"og:image:height\",\"content\":\"512\"}],[\"$\",\"meta\",\"21\",{\"property\":\"og:image:type\",\"content\":\"image/png\"}],[\"$\",\"meta\",\"22\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"23\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"24\",{\"name\":\"twitter:title\",\"content\":\"SparkeCoder - AI-Powered Coding Agent\"}],[\"$\",\"meta\",\"25\",{\"name\":\"twitter:description\",\"content\":\"Build, debug, and ship code faster with intelligent AI automation and natural language programming.\"}],[\"$\",\"meta\",\"26\",{\"name\":\"twitter:image\",\"content\":\"http://localhost:3001/twitter-image.png?twitter-image.ce342317.png\"}],[\"$\",\"meta\",\"27\",{\"name\":\"twitter:image:width\",\"content\":\"512\"}],[\"$\",\"meta\",\"28\",{\"name\":\"twitter:image:height\",\"content\":\"512\"}],[\"$\",\"meta\",\"29\",{\"name\":\"twitter:image:type\",\"content\":\"image/png\"}],[\"$\",\"link\",\"30\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.e3cbed1b.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"link\",\"31\",{\"rel\":\"icon\",\"href\":\"/icon.png?icon.fdefec0f.png\",\"sizes\":\"32x32\",\"type\":\"image/png\"}],[\"$\",\"link\",\"32\",{\"rel\":\"apple-touch-icon\",\"href\":\"/apple-icon.png?apple-icon.d6d14cbd.png\",\"sizes\":\"180x180\",\"type\":\"image/png\"}],[\"$\",\"$Ld\",\"33\",{}]]\n"])</script></body></html>
@@ -1,2 +1,2 @@
1
- <!DOCTYPE html><!--7Ho139n0laRpntkO8v0DI--><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/651e187cc15d66de.js"/><script src="/_next/static/chunks/735a2408c315b2f0.js" async=""></script><script src="/_next/static/chunks/186e0c1b3ff43c9c.js" async=""></script><script src="/_next/static/chunks/a14243261b055626.js" async=""></script><script src="/_next/static/chunks/862ced58ce21a270.js" async=""></script><script src="/_next/static/chunks/turbopack-2c0905c7bbebae3f.js" async=""></script><script src="/_next/static/chunks/9b5512fb633ef95d.js" async=""></script><script src="/_next/static/chunks/0f1cf11540868e42.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: Internal Server Error.</title><link rel="icon" href="/favicon.ico?favicon.e3cbed1b.ico" sizes="256x256" type="image/x-icon"/><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}
2
- @media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/651e187cc15d66de.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[488287,[\"/_next/static/chunks/9b5512fb633ef95d.js\",\"/_next/static/chunks/0f1cf11540868e42.js\"],\"default\"]\n3:I[174895,[\"/_next/static/chunks/9b5512fb633ef95d.js\",\"/_next/static/chunks/0f1cf11540868e42.js\"],\"default\"]\n4:I[151858,[\"/_next/static/chunks/9b5512fb633ef95d.js\",\"/_next/static/chunks/0f1cf11540868e42.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n7:I[151858,[\"/_next/static/chunks/9b5512fb633ef95d.js\",\"/_next/static/chunks/0f1cf11540868e42.js\"],\"ViewportBoundary\"]\n9:I[151858,[\"/_next/static/chunks/9b5512fb633ef95d.js\",\"/_next/static/chunks/0f1cf11540868e42.js\"],\"MetadataBoundary\"]\nb:I[552576,[\"/_next/static/chunks/9b5512fb633ef95d.js\",\"/_next/static/chunks/0f1cf11540868e42.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"7Ho139n0laRpntkO8v0DI\",\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"title\",null,{\"children\":\"500: Internal Server Error.\"}]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"lineHeight\":\"48px\"},\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}\\n@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"paddingRight\":23,\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\"},\"children\":\"500\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"28px\"},\"children\":\"Internal Server Error.\"}]}]]}]}]}]]}],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L7\",null,{\"children\":\"$L8\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L9\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$La\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$b\",\"$undefined\"],\"S\":true}\n"])</script><script>self.__next_f.push([1,"8:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"c:I[349310,[\"/_next/static/chunks/9b5512fb633ef95d.js\",\"/_next/static/chunks/0f1cf11540868e42.js\"],\"IconMark\"]\n6:null\na:[[\"$\",\"link\",\"0\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.e3cbed1b.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"$Lc\",\"1\",{}]]\n"])</script></body></html>
1
+ <!DOCTYPE html><!--BS3vhcmrlRmT39qDuhaJP--><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/651e187cc15d66de.js"/><script src="/_next/static/chunks/735a2408c315b2f0.js" async=""></script><script src="/_next/static/chunks/186e0c1b3ff43c9c.js" async=""></script><script src="/_next/static/chunks/a14243261b055626.js" async=""></script><script src="/_next/static/chunks/862ced58ce21a270.js" async=""></script><script src="/_next/static/chunks/turbopack-2c0905c7bbebae3f.js" async=""></script><script src="/_next/static/chunks/9b5512fb633ef95d.js" async=""></script><script src="/_next/static/chunks/0f1cf11540868e42.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: Internal Server Error.</title><link rel="icon" href="/favicon.ico?favicon.e3cbed1b.ico" sizes="256x256" type="image/x-icon"/><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}
2
+ @media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/651e187cc15d66de.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[488287,[\"/_next/static/chunks/9b5512fb633ef95d.js\",\"/_next/static/chunks/0f1cf11540868e42.js\"],\"default\"]\n3:I[174895,[\"/_next/static/chunks/9b5512fb633ef95d.js\",\"/_next/static/chunks/0f1cf11540868e42.js\"],\"default\"]\n4:I[151858,[\"/_next/static/chunks/9b5512fb633ef95d.js\",\"/_next/static/chunks/0f1cf11540868e42.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n7:I[151858,[\"/_next/static/chunks/9b5512fb633ef95d.js\",\"/_next/static/chunks/0f1cf11540868e42.js\"],\"ViewportBoundary\"]\n9:I[151858,[\"/_next/static/chunks/9b5512fb633ef95d.js\",\"/_next/static/chunks/0f1cf11540868e42.js\"],\"MetadataBoundary\"]\nb:I[552576,[\"/_next/static/chunks/9b5512fb633ef95d.js\",\"/_next/static/chunks/0f1cf11540868e42.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"BS3vhcmrlRmT39qDuhaJP\",\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"title\",null,{\"children\":\"500: Internal Server Error.\"}]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"lineHeight\":\"48px\"},\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}\\n@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"paddingRight\":23,\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\"},\"children\":\"500\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"28px\"},\"children\":\"Internal Server Error.\"}]}]]}]}]}]]}],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L7\",null,{\"children\":\"$L8\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L9\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$La\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$b\",\"$undefined\"],\"S\":true}\n"])</script><script>self.__next_f.push([1,"8:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"c:I[349310,[\"/_next/static/chunks/9b5512fb633ef95d.js\",\"/_next/static/chunks/0f1cf11540868e42.js\"],\"IconMark\"]\n6:null\na:[[\"$\",\"link\",\"0\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.e3cbed1b.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"$Lc\",\"1\",{}]]\n"])</script></body></html>
@@ -1 +1 @@
1
- self.__RSC_SERVER_MANIFEST="{\n \"node\": {},\n \"edge\": {},\n \"encryptionKey\": \"Q36e4ZbQCMQRI7NEbzSwUVhHbrQwdWk9JeIPGZ3UypI=\"\n}"
1
+ self.__RSC_SERVER_MANIFEST="{\n \"node\": {},\n \"edge\": {},\n \"encryptionKey\": \"KKe28d+nMrtjf2LQekXf/nyQ0q1SIiEi5nHJp7lORbs=\"\n}"
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "node": {},
3
3
  "edge": {},
4
- "encryptionKey": "Q36e4ZbQCMQRI7NEbzSwUVhHbrQwdWk9JeIPGZ3UypI="
4
+ "encryptionKey": "KKe28d+nMrtjf2LQekXf/nyQ0q1SIiEi5nHJp7lORbs="
5
5
  }
@@ -1,6 +1,5 @@
1
1
  import { NextResponse } from 'next/server';
2
- import * as fs from 'fs';
3
- import * as path from 'path';
2
+ import { getLocalApiBaseUrl } from '@/lib/local-api';
4
3
 
5
4
  /**
6
5
  * Runtime configuration endpoint.
@@ -25,45 +24,12 @@ const AVAILABLE_TOOLS = [
25
24
  { id: 'load_skill', name: 'Load Skill', description: 'Load skills into context', dangerous: false },
26
25
  ];
27
26
 
28
- const DEFAULT_API_BASE = 'http://localhost:3141';
29
-
30
- /**
31
- * Read the API base URL from runtime-config.json
32
- * The CLI writes this file when starting the web server
33
- */
34
- function getApiBaseUrl(): string {
35
- const cwd = process.cwd();
36
- const possiblePaths = [
37
- // Development: web directory root
38
- path.join(cwd, 'runtime-config.json'),
39
- // Standalone: various relative locations
40
- path.join(cwd, '..', 'runtime-config.json'),
41
- path.join(cwd, '..', '..', 'runtime-config.json'),
42
- path.join(cwd, '..', '..', '..', 'runtime-config.json'),
43
- ];
44
-
45
- for (const configPath of possiblePaths) {
46
- try {
47
- if (fs.existsSync(configPath)) {
48
- const content = fs.readFileSync(configPath, 'utf-8');
49
- const config = JSON.parse(content);
50
- if (config.apiBaseUrl) {
51
- return config.apiBaseUrl;
52
- }
53
- }
54
- } catch {
55
- // Ignore errors, try next path
56
- }
57
- }
58
-
59
- // No env var fallback - always use config file or default
60
- return DEFAULT_API_BASE;
61
- }
62
-
63
27
  export const dynamic = 'force-dynamic';
64
28
 
65
29
  export async function GET() {
66
- const apiBaseUrl = getApiBaseUrl();
30
+ // Server-side must reach the API over loopback, never the public
31
+ // (Cloudflare Access-gated) api-<host> URL.
32
+ const apiBaseUrl = getLocalApiBaseUrl();
67
33
 
68
34
  try {
69
35
  // Add timeout to prevent hanging if backend is unreachable
@@ -1,52 +1,25 @@
1
1
  import { NextResponse } from 'next/server';
2
- import * as fs from 'fs';
3
- import * as path from 'path';
2
+ import { getLocalApiBaseUrl } from '@/lib/local-api';
4
3
 
5
4
  /**
6
5
  * Health check endpoint for the web app.
7
- * Proxies to the backend API and adds identifier for CLI detection.
6
+ * Proxies to the backend API (over loopback) and adds identifier for CLI detection.
8
7
  */
9
8
 
10
- const DEFAULT_API_BASE = 'http://localhost:3141';
11
-
12
- function getApiBaseUrl(): string {
13
- const cwd = process.cwd();
14
- const possiblePaths = [
15
- path.join(cwd, 'runtime-config.json'),
16
- path.join(cwd, '..', 'runtime-config.json'),
17
- path.join(cwd, '..', '..', 'runtime-config.json'),
18
- path.join(cwd, '..', '..', '..', 'runtime-config.json'),
19
- ];
20
-
21
- for (const configPath of possiblePaths) {
22
- try {
23
- if (fs.existsSync(configPath)) {
24
- const content = fs.readFileSync(configPath, 'utf-8');
25
- const config = JSON.parse(content);
26
- if (config.apiBaseUrl) {
27
- return config.apiBaseUrl;
28
- }
29
- }
30
- } catch {
31
- // Ignore errors
32
- }
33
- }
34
-
35
- // No env var fallback - always use config file or default
36
- return DEFAULT_API_BASE;
37
- }
38
-
39
9
  export const dynamic = 'force-dynamic';
40
10
 
41
11
  export async function GET() {
42
- const apiBaseUrl = getApiBaseUrl();
12
+ const apiBaseUrl = getLocalApiBaseUrl();
43
13
 
44
14
  try {
45
15
  // Add timeout to prevent hanging
46
16
  const controller = new AbortController();
47
17
  const timeout = setTimeout(() => controller.abort(), 3000);
48
18
 
49
- const res = await fetch(`${apiBaseUrl}/health/status`, {
19
+ // NOTE: the API exposes `/health` (not `/health/status`). Hitting a
20
+ // non-existent path 404s, and a non-JSON 404 body makes res.json() throw,
21
+ // which surfaces as a false "Failed to connect to API server".
22
+ const res = await fetch(`${apiBaseUrl}/health`, {
50
23
  cache: 'no-store',
51
24
  signal: controller.signal,
52
25
  });
@@ -1,6 +1,5 @@
1
1
  import { NextRequest } from 'next/server';
2
- import * as fs from 'fs';
3
- import * as path from 'path';
2
+ import { getLocalApiBaseUrl } from '@/lib/local-api';
4
3
 
5
4
  /**
6
5
  * Same-origin reverse proxy to the local sparkecoder API.
@@ -25,38 +24,9 @@ import * as path from 'path';
25
24
 
26
25
  export const dynamic = 'force-dynamic';
27
26
 
28
- const DEFAULT_LOCAL_API = 'http://127.0.0.1:3141';
29
-
30
- function getLocalApiBase(): string {
31
- const cwd = process.cwd();
32
- const candidates = [
33
- path.join(cwd, 'runtime-config.json'),
34
- path.join(cwd, '..', 'runtime-config.json'),
35
- path.join(cwd, '..', '..', 'runtime-config.json'),
36
- path.join(cwd, '..', '..', '..', 'runtime-config.json'),
37
- ];
38
- for (const p of candidates) {
39
- try {
40
- if (fs.existsSync(p)) {
41
- const cfg = JSON.parse(fs.readFileSync(p, 'utf-8'));
42
- // Prefer the explicit loopback URL; fall back to apiBaseUrl only if it
43
- // is itself a localhost URL (never proxy to a public api-<host>, that
44
- // would re-trigger the Access redirect server-side).
45
- if (cfg.localApiBaseUrl) return cfg.localApiBaseUrl;
46
- if (typeof cfg.apiBaseUrl === 'string' && /^https?:\/\/(localhost|127\.0\.0\.1)/.test(cfg.apiBaseUrl)) {
47
- return cfg.apiBaseUrl;
48
- }
49
- }
50
- } catch {
51
- // try next candidate
52
- }
53
- }
54
- return DEFAULT_LOCAL_API;
55
- }
56
-
57
27
  async function proxy(req: NextRequest, ctx: { params: Promise<{ path?: string[] }> }) {
58
28
  const { path: parts = [] } = await ctx.params;
59
- const base = getLocalApiBase().replace(/\/$/, '');
29
+ const base = getLocalApiBaseUrl().replace(/\/$/, '');
60
30
  const search = req.nextUrl.search || '';
61
31
  const target = `${base}/${parts.join('/')}${search}`;
62
32
 
@@ -0,0 +1,42 @@
1
+ import * as fs from 'fs';
2
+ import * as path from 'path';
3
+
4
+ /**
5
+ * Resolve the LOCAL sparkecoder API base URL for server-side use (Next route
6
+ * handlers running on the device).
7
+ *
8
+ * Server-side code must always reach the API over loopback — never the public
9
+ * `api-<host>` URL. When Cloudflare Access is enabled, the public URL is gated
10
+ * by Access and a server-side fetch (which carries no login cookie) gets
11
+ * redirected/blocked, surfacing as "Failed to connect to API server" / 502.
12
+ *
13
+ * Resolution order:
14
+ * 1. runtime-config.json `localApiBaseUrl` (written by the CLI: 127.0.0.1:<port>)
15
+ * 2. runtime-config.json `apiBaseUrl` ONLY if it's already a localhost URL
16
+ * 3. http://127.0.0.1:3141 (default)
17
+ */
18
+ const DEFAULT_LOCAL_API = 'http://127.0.0.1:3141';
19
+
20
+ export function getLocalApiBaseUrl(): string {
21
+ const cwd = process.cwd();
22
+ const candidates = [
23
+ path.join(cwd, 'runtime-config.json'),
24
+ path.join(cwd, '..', 'runtime-config.json'),
25
+ path.join(cwd, '..', '..', 'runtime-config.json'),
26
+ path.join(cwd, '..', '..', '..', 'runtime-config.json'),
27
+ ];
28
+ for (const configPath of candidates) {
29
+ try {
30
+ if (fs.existsSync(configPath)) {
31
+ const cfg = JSON.parse(fs.readFileSync(configPath, 'utf-8'));
32
+ if (cfg.localApiBaseUrl) return cfg.localApiBaseUrl;
33
+ if (typeof cfg.apiBaseUrl === 'string' && /^https?:\/\/(localhost|127\.0\.0\.1)/.test(cfg.apiBaseUrl)) {
34
+ return cfg.apiBaseUrl;
35
+ }
36
+ }
37
+ } catch {
38
+ // try next candidate
39
+ }
40
+ }
41
+ return DEFAULT_LOCAL_API;
42
+ }