sparkecoder 0.1.134 → 0.1.135
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/web/.next/BUILD_ID +1 -1
- package/web/.next/standalone/web/.next/BUILD_ID +1 -1
- package/web/.next/standalone/web/.next/build-manifest.json +2 -2
- package/web/.next/standalone/web/.next/prerender-manifest.json +3 -3
- package/web/.next/standalone/web/.next/server/app/_global-error.html +2 -2
- package/web/.next/standalone/web/.next/server/app/_global-error.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/_not-found.html +1 -1
- package/web/.next/standalone/web/.next/server/app/_not-found.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/agents.html +1 -1
- package/web/.next/standalone/web/.next/server/app/agents.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/agents.segments/!KG1haW4p/agents/__PAGE__.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/agents.segments/!KG1haW4p/agents.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/agents.segments/!KG1haW4p.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/agents.segments/_full.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/agents.segments/_head.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/agents.segments/_index.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/agents.segments/_tree.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/api/config/route.js +1 -1
- package/web/.next/standalone/web/.next/server/app/api/config/route.js.nft.json +1 -1
- package/web/.next/standalone/web/.next/server/app/api/health/route.js +1 -1
- package/web/.next/standalone/web/.next/server/app/api/health/route.js.nft.json +1 -1
- package/web/.next/standalone/web/.next/server/app/docs/installation.html +2 -2
- package/web/.next/standalone/web/.next/server/app/docs/installation.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/docs/installation.segments/_full.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/docs/installation.segments/_head.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/docs/installation.segments/_index.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/docs/installation.segments/_tree.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/docs/installation.segments/docs/installation/__PAGE__.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/docs/installation.segments/docs/installation.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/docs/installation.segments/docs.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/docs/skills.html +2 -2
- package/web/.next/standalone/web/.next/server/app/docs/skills.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/docs/skills.segments/_full.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/docs/skills.segments/_head.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/docs/skills.segments/_index.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/docs/skills.segments/_tree.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/docs/skills.segments/docs/skills/__PAGE__.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/docs/skills.segments/docs/skills.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/docs/skills.segments/docs.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/docs/tools.html +2 -2
- package/web/.next/standalone/web/.next/server/app/docs/tools.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/docs/tools.segments/_full.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/docs/tools.segments/_head.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/docs/tools.segments/_index.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/docs/tools.segments/_tree.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/docs/tools.segments/docs/tools/__PAGE__.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/docs/tools.segments/docs/tools.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/docs/tools.segments/docs.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/docs.html +2 -2
- package/web/.next/standalone/web/.next/server/app/docs.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/docs.segments/_full.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/docs.segments/_head.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/docs.segments/_index.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/docs.segments/_tree.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/docs.segments/docs/__PAGE__.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/docs.segments/docs.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/index.html +1 -1
- package/web/.next/standalone/web/.next/server/app/index.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/index.segments/!KG1haW4p/__PAGE__.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/index.segments/!KG1haW4p.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/index.segments/_full.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/index.segments/_index.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/settings.html +1 -1
- package/web/.next/standalone/web/.next/server/app/settings.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/settings.segments/!KG1haW4p/settings/__PAGE__.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/settings.segments/!KG1haW4p/settings.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/settings.segments/!KG1haW4p.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/settings.segments/_full.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/settings.segments/_head.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/settings.segments/_index.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/sfapi/[...path]/route.js +1 -1
- package/web/.next/standalone/web/.next/server/app/sfapi/[...path]/route.js.nft.json +1 -1
- package/web/.next/standalone/web/.next/server/chunks/[root-of-the-server]__78517719._.js +3 -0
- package/web/.next/standalone/web/.next/server/chunks/[root-of-the-server]__9d50fe63._.js +3 -0
- package/web/.next/standalone/web/.next/server/chunks/[root-of-the-server]__ce44139a._.js +3 -0
- package/web/.next/standalone/web/.next/server/pages/404.html +1 -1
- package/web/.next/standalone/web/.next/server/pages/500.html +2 -2
- package/web/.next/standalone/web/.next/server/server-reference-manifest.js +1 -1
- package/web/.next/standalone/web/.next/server/server-reference-manifest.json +1 -1
- package/web/.next/standalone/web/src/app/api/config/route.ts +4 -38
- package/web/.next/standalone/web/src/app/api/health/route.ts +3 -33
- package/web/.next/standalone/web/src/app/sfapi/[...path]/route.ts +2 -32
- package/web/.next/standalone/web/src/lib/local-api.ts +42 -0
- package/web/.next/standalone/web/.next/server/chunks/[root-of-the-server]__36edac7c._.js +0 -3
- package/web/.next/standalone/web/.next/server/chunks/[root-of-the-server]__74ebc442._.js +0 -3
- package/web/.next/standalone/web/.next/server/chunks/[root-of-the-server]__912d97d3._.js +0 -3
- /package/web/.next/standalone/web/.next/static/{7Ho139n0laRpntkO8v0DI → X_TnGNSMsK4hjzA1W-_Gz}/_buildManifest.js +0 -0
- /package/web/.next/standalone/web/.next/static/{7Ho139n0laRpntkO8v0DI → X_TnGNSMsK4hjzA1W-_Gz}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/standalone/web/.next/static/{7Ho139n0laRpntkO8v0DI → X_TnGNSMsK4hjzA1W-_Gz}/_ssgManifest.js +0 -0
- /package/web/.next/standalone/web/.next/static/static/{7Ho139n0laRpntkO8v0DI → X_TnGNSMsK4hjzA1W-_Gz}/_buildManifest.js +0 -0
- /package/web/.next/standalone/web/.next/static/static/{7Ho139n0laRpntkO8v0DI → X_TnGNSMsK4hjzA1W-_Gz}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/standalone/web/.next/static/static/{7Ho139n0laRpntkO8v0DI → X_TnGNSMsK4hjzA1W-_Gz}/_ssgManifest.js +0 -0
- /package/web/.next/static/{7Ho139n0laRpntkO8v0DI → X_TnGNSMsK4hjzA1W-_Gz}/_buildManifest.js +0 -0
- /package/web/.next/static/{7Ho139n0laRpntkO8v0DI → X_TnGNSMsK4hjzA1W-_Gz}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/static/{7Ho139n0laRpntkO8v0DI → X_TnGNSMsK4hjzA1W-_Gz}/_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/status`,{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,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";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><!--X_TnGNSMsK4hjzA1W__Gz--><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,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";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\":\"X_TnGNSMsK4hjzA1W-_Gz\",\"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><!--
|
|
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\":\"
|
|
1
|
+
<!DOCTYPE html><!--X_TnGNSMsK4hjzA1W__Gz--><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,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";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\":\"X_TnGNSMsK4hjzA1W-_Gz\",\"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\": \"
|
|
1
|
+
self.__RSC_SERVER_MANIFEST="{\n \"node\": {},\n \"edge\": {},\n \"encryptionKey\": \"UDN4cdsm53P+kFuTQMxW3Nt3rwrUsRXYSlzqHHcSU1o=\"\n}"
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { NextResponse } from 'next/server';
|
|
2
|
-
import
|
|
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
|
-
|
|
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,45 +1,15 @@
|
|
|
1
1
|
import { NextResponse } from 'next/server';
|
|
2
|
-
import
|
|
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 =
|
|
12
|
+
const apiBaseUrl = getLocalApiBaseUrl();
|
|
43
13
|
|
|
44
14
|
try {
|
|
45
15
|
// Add timeout to prevent hanging
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { NextRequest } from 'next/server';
|
|
2
|
-
import
|
|
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 =
|
|
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
|
+
}
|
|
@@ -1,3 +0,0 @@
|
|
|
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"))},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),h=e.i(502144),f=e.i(833599),x=e.i(536497),g=e.i(193695);e.i(779178);var v=e.i(396717),R=e.i(23480),m=e.i(522734),w=e.i(814747);let C=[{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"}],E=[{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=function(){let e=process.cwd();for(let t of[w.join(e,"runtime-config.json"),w.join(e,"..","runtime-config.json"),w.join(e,"..","..","runtime-config.json"),w.join(e,"..","..","..","runtime-config.json")])try{if(m.existsSync(t)){let e=m.readFileSync(t,"utf-8"),r=JSON.parse(e);if(r.apiBaseUrl)return r.apiBaseUrl}}catch{}return"http://localhost:3141"}();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:C,availableTools:E,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:C,availableTools:E,defaultModel:"gpt-5.5",defaultToolApprovals:{},serverConnected:!1,apiKeyConfigured:!1,apiBaseUrl:e})}}e.s(["GET",()=>y,"dynamic",0,"force-dynamic"],518232);var b=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:b}),{workAsyncStorage:T,workUnitAsyncStorage:j,serverHooks:N}=A;function k(){return(0,a.patchFetch)({workAsyncStorage:T,workUnitAsyncStorage:j})}async function O(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:E,parsedUrl:y,isDraftMode:b,prerenderManifest:T,routerServerContext:j,isOnDemandRevalidate:N,revalidateOnlyGenerated:k,resolvedPathname:O,clientReferenceManifest:P,serverActionsManifest:S}=m,_=(0,s.normalizeAppPath)(R),q=!!(T.dynamicRoutes[_]||T.routes[O]),M=async()=>((null==j?void 0:j.render404)?await j.render404(e,t,y,!1):t.end("This page could not be found"),null);if(q&&!b){let e=!!T.routes[O],t=T.dynamicRoutes[_];if(t&&!1===t.fallback&&!e){if(E.experimental.adapterPath)return await M();throw new g.NoFallbackError}}let U=null;!q||A.isDev||b||(U="/index"===(U=O)?"/":U);let H=!0===A.isDev||!q,I=q&&!H;S&&P&&(0,i.setManifestsSingleton)({page:R,clientReferenceManifest:P,serverActionsManifest:S});let D=e.method||"GET",F=(0,o.getTracer)(),K=F.getActiveScopeSpan(),$={params:C,prerenderManifest:T,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts},cacheComponents:!!E.cacheComponents,supportsDynamicResponse:H,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:E.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}},B=new l.NodeNextRequest(e),L=new l.NodeNextResponse(t),G=d.NextRequestAdapter.fromNodeNextRequest(B,(0,d.signalFromNodeResponse)(t));try{let i=async e=>A.handle(G,$).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=F.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=`${D} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${D} ${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=$.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)(B,L,o,$.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!==$.renderOpts.collectedRevalidate&&!($.renderOpts.collectedRevalidate>=x.INFINITE_CACHE)&&$.renderOpts.collectedRevalidate,a=void 0===$.renderOpts.collectedExpire||$.renderOpts.collectedExpire>=x.INFINITE_CACHE?void 0:$.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:E,cacheKey:U,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:T,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:k,responseGenerator:d,waitUntil:a.waitUntil,isMinimalMode:s});if(!q)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 g=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return s&&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,c.sendResponse)(B,L,new Response(u.value.body,{headers:g,status:u.value.status||200})),null};K?await l(K):await F.withPropagatedContext(e.headers,()=>F.trace(u.BaseServerSpan.handleRequest,{spanName:`${D} ${R}`,kind:o.SpanKind.SERVER,attributes:{"http.method":D,"http.target":e.url}},l))}catch(t){if(t instanceof g.NoFallbackError||await A.onRequestError(e,t,{routerKind:"App Router",routePath:_,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:I,isOnDemandRevalidate:N})},!1,j),q)throw t;return await (0,c.sendResponse)(B,L,new Response(null,{status:500})),null}}e.s(["handler",()=>O,"patchFetch",()=>k,"routeModule",()=>A,"serverHooks",()=>N,"workAsyncStorage",()=>T,"workUnitAsyncStorage",()=>j],604575)}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__36edac7c._.js.map
|