sparkecoder 0.1.32 → 0.1.34

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/dist/agent/index.d.ts +2 -2
  2. package/dist/agent/index.js +10 -10
  3. package/dist/agent/index.js.map +1 -1
  4. package/dist/cli.js +48 -17
  5. package/dist/cli.js.map +1 -1
  6. package/dist/{index-CsZVebwZ.d.ts → index-BSbFzE22.d.ts} +2 -2
  7. package/dist/index.d.ts +3 -3
  8. package/dist/index.js +10 -10
  9. package/dist/index.js.map +1 -1
  10. package/dist/{search-Bk0sOPXw.d.ts → search-CrICQDSa.d.ts} +4 -4
  11. package/dist/server/index.js +10 -10
  12. package/dist/server/index.js.map +1 -1
  13. package/dist/tools/index.d.ts +3 -3
  14. package/dist/tools/index.js +4 -4
  15. package/dist/tools/index.js.map +1 -1
  16. package/package.json +1 -1
  17. package/web/.next/BUILD_ID +1 -1
  18. package/web/.next/standalone/web/.next/BUILD_ID +1 -1
  19. package/web/.next/standalone/web/.next/build-manifest.json +2 -2
  20. package/web/.next/standalone/web/.next/prerender-manifest.json +3 -3
  21. package/web/.next/standalone/web/.next/server/app/(main)/session/[id]/page_client-reference-manifest.js +1 -1
  22. package/web/.next/standalone/web/.next/server/app/_global-error.html +2 -2
  23. package/web/.next/standalone/web/.next/server/app/_global-error.rsc +1 -1
  24. package/web/.next/standalone/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  25. package/web/.next/standalone/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  26. package/web/.next/standalone/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  27. package/web/.next/standalone/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  28. package/web/.next/standalone/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  29. package/web/.next/standalone/web/.next/server/app/_not-found.html +1 -1
  30. package/web/.next/standalone/web/.next/server/app/_not-found.rsc +1 -1
  31. package/web/.next/standalone/web/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  32. package/web/.next/standalone/web/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  33. package/web/.next/standalone/web/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  34. package/web/.next/standalone/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  35. package/web/.next/standalone/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  36. package/web/.next/standalone/web/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  37. package/web/.next/standalone/web/.next/server/app/docs/installation.html +2 -2
  38. package/web/.next/standalone/web/.next/server/app/docs/installation.rsc +1 -1
  39. package/web/.next/standalone/web/.next/server/app/docs/installation.segments/_full.segment.rsc +1 -1
  40. package/web/.next/standalone/web/.next/server/app/docs/installation.segments/_head.segment.rsc +1 -1
  41. package/web/.next/standalone/web/.next/server/app/docs/installation.segments/_index.segment.rsc +1 -1
  42. package/web/.next/standalone/web/.next/server/app/docs/installation.segments/_tree.segment.rsc +1 -1
  43. package/web/.next/standalone/web/.next/server/app/docs/installation.segments/docs/installation/__PAGE__.segment.rsc +1 -1
  44. package/web/.next/standalone/web/.next/server/app/docs/installation.segments/docs/installation.segment.rsc +1 -1
  45. package/web/.next/standalone/web/.next/server/app/docs/installation.segments/docs.segment.rsc +1 -1
  46. package/web/.next/standalone/web/.next/server/app/docs/skills.html +2 -2
  47. package/web/.next/standalone/web/.next/server/app/docs/skills.rsc +1 -1
  48. package/web/.next/standalone/web/.next/server/app/docs/skills.segments/_full.segment.rsc +1 -1
  49. package/web/.next/standalone/web/.next/server/app/docs/skills.segments/_head.segment.rsc +1 -1
  50. package/web/.next/standalone/web/.next/server/app/docs/skills.segments/_index.segment.rsc +1 -1
  51. package/web/.next/standalone/web/.next/server/app/docs/skills.segments/_tree.segment.rsc +1 -1
  52. package/web/.next/standalone/web/.next/server/app/docs/skills.segments/docs/skills/__PAGE__.segment.rsc +1 -1
  53. package/web/.next/standalone/web/.next/server/app/docs/skills.segments/docs/skills.segment.rsc +1 -1
  54. package/web/.next/standalone/web/.next/server/app/docs/skills.segments/docs.segment.rsc +1 -1
  55. package/web/.next/standalone/web/.next/server/app/docs/tools.html +7 -7
  56. package/web/.next/standalone/web/.next/server/app/docs/tools.rsc +5 -5
  57. package/web/.next/standalone/web/.next/server/app/docs/tools.segments/_full.segment.rsc +5 -5
  58. package/web/.next/standalone/web/.next/server/app/docs/tools.segments/_head.segment.rsc +1 -1
  59. package/web/.next/standalone/web/.next/server/app/docs/tools.segments/_index.segment.rsc +1 -1
  60. package/web/.next/standalone/web/.next/server/app/docs/tools.segments/_tree.segment.rsc +1 -1
  61. package/web/.next/standalone/web/.next/server/app/docs/tools.segments/docs/tools/__PAGE__.segment.rsc +5 -5
  62. package/web/.next/standalone/web/.next/server/app/docs/tools.segments/docs/tools.segment.rsc +1 -1
  63. package/web/.next/standalone/web/.next/server/app/docs/tools.segments/docs.segment.rsc +1 -1
  64. package/web/.next/standalone/web/.next/server/app/docs.html +3 -3
  65. package/web/.next/standalone/web/.next/server/app/docs.rsc +2 -2
  66. package/web/.next/standalone/web/.next/server/app/docs.segments/_full.segment.rsc +2 -2
  67. package/web/.next/standalone/web/.next/server/app/docs.segments/_head.segment.rsc +1 -1
  68. package/web/.next/standalone/web/.next/server/app/docs.segments/_index.segment.rsc +1 -1
  69. package/web/.next/standalone/web/.next/server/app/docs.segments/_tree.segment.rsc +1 -1
  70. package/web/.next/standalone/web/.next/server/app/docs.segments/docs/__PAGE__.segment.rsc +2 -2
  71. package/web/.next/standalone/web/.next/server/app/docs.segments/docs.segment.rsc +1 -1
  72. package/web/.next/standalone/web/.next/server/app/index.html +1 -1
  73. package/web/.next/standalone/web/.next/server/app/index.rsc +1 -1
  74. package/web/.next/standalone/web/.next/server/app/index.segments/!KG1haW4p/__PAGE__.segment.rsc +1 -1
  75. package/web/.next/standalone/web/.next/server/app/index.segments/!KG1haW4p.segment.rsc +1 -1
  76. package/web/.next/standalone/web/.next/server/app/index.segments/_full.segment.rsc +1 -1
  77. package/web/.next/standalone/web/.next/server/app/index.segments/_head.segment.rsc +1 -1
  78. package/web/.next/standalone/web/.next/server/app/index.segments/_index.segment.rsc +1 -1
  79. package/web/.next/standalone/web/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  80. package/web/.next/standalone/web/.next/server/chunks/ssr/[root-of-the-server]__2dbf511a._.js +1 -1
  81. package/web/.next/standalone/web/.next/server/chunks/ssr/[root-of-the-server]__397fadd4._.js +1 -1
  82. package/web/.next/standalone/web/.next/server/chunks/ssr/[root-of-the-server]__f764bebe._.js +1 -1
  83. package/web/.next/standalone/web/.next/server/pages/404.html +1 -1
  84. package/web/.next/standalone/web/.next/server/pages/500.html +2 -2
  85. package/web/.next/standalone/web/.next/server/server-reference-manifest.js +1 -1
  86. package/web/.next/standalone/web/.next/server/server-reference-manifest.json +1 -1
  87. package/web/.next/standalone/web/.next/static/chunks/{ce505264d78c8eff.js → 9e2f49d8736aeb05.js} +1 -1
  88. package/web/.next/standalone/web/.next/static/static/chunks/{ce505264d78c8eff.js → 9e2f49d8736aeb05.js} +1 -1
  89. package/web/.next/standalone/web/src/app/docs/page.mdx +1 -1
  90. package/web/.next/standalone/web/src/app/docs/tools/page.mdx +5 -5
  91. package/web/.next/standalone/web/src/components/ai-elements/search-tool.tsx +4 -4
  92. package/web/.next/standalone/web/src/components/chat-interface.tsx +36 -36
  93. package/web/.next/static/chunks/{ce505264d78c8eff.js → 9e2f49d8736aeb05.js} +1 -1
  94. /package/web/.next/standalone/web/.next/static/{4Qd7gbyP-9Akkkk8I1vrs → bk6IEoUxuLyCjrNYkiMkB}/_buildManifest.js +0 -0
  95. /package/web/.next/standalone/web/.next/static/{4Qd7gbyP-9Akkkk8I1vrs → bk6IEoUxuLyCjrNYkiMkB}/_clientMiddlewareManifest.json +0 -0
  96. /package/web/.next/standalone/web/.next/static/{4Qd7gbyP-9Akkkk8I1vrs → bk6IEoUxuLyCjrNYkiMkB}/_ssgManifest.js +0 -0
  97. /package/web/.next/standalone/web/.next/static/static/{4Qd7gbyP-9Akkkk8I1vrs → bk6IEoUxuLyCjrNYkiMkB}/_buildManifest.js +0 -0
  98. /package/web/.next/standalone/web/.next/static/static/{4Qd7gbyP-9Akkkk8I1vrs → bk6IEoUxuLyCjrNYkiMkB}/_clientMiddlewareManifest.json +0 -0
  99. /package/web/.next/standalone/web/.next/static/static/{4Qd7gbyP-9Akkkk8I1vrs → bk6IEoUxuLyCjrNYkiMkB}/_ssgManifest.js +0 -0
  100. /package/web/.next/static/{4Qd7gbyP-9Akkkk8I1vrs → bk6IEoUxuLyCjrNYkiMkB}/_buildManifest.js +0 -0
  101. /package/web/.next/static/{4Qd7gbyP-9Akkkk8I1vrs → bk6IEoUxuLyCjrNYkiMkB}/_clientMiddlewareManifest.json +0 -0
  102. /package/web/.next/static/{4Qd7gbyP-9Akkkk8I1vrs → bk6IEoUxuLyCjrNYkiMkB}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
- module.exports=[193695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},353587,a=>{a.n(a.i(540183))},493510,a=>{a.n(a.i(47576))},616077,a=>{a.n(a.i(756733))},382884,a=>{a.n(a.i(654333))},375868,a=>{a.n(a.i(937271))},221752,a=>{a.n(a.i(412632))},624128,a=>{a.n(a.i(289664))},708532,a=>{a.n(a.i(262647))},350918,a=>{a.n(a.i(958781))},814874,a=>{a.n(a.i(971850))},805981,a=>{"use strict";var b=a.i(280516),c=a.i(803184);let d={h1:({children:a})=>(0,b.jsx)("h1",{className:"text-4xl font-bold mt-8 mb-4 text-foreground",children:a}),h2:({children:a})=>(0,b.jsx)("h2",{className:"text-3xl font-semibold mt-8 mb-3 text-foreground border-b border-border pb-2",children:a}),h3:({children:a})=>(0,b.jsx)("h3",{className:"text-2xl font-semibold mt-6 mb-2 text-foreground",children:a}),h4:({children:a})=>(0,b.jsx)("h4",{className:"text-xl font-medium mt-4 mb-2 text-foreground",children:a}),p:({children:a})=>(0,b.jsx)("p",{className:"my-4 text-muted-foreground leading-7",children:a}),a:({href:a,children:d})=>a?.startsWith("http")?(0,b.jsx)("a",{href:a,target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:d}):(0,b.jsx)(c.default,{href:a||"#",className:"text-primary hover:underline",children:d}),pre:({children:a})=>(0,b.jsx)("pre",{className:"bg-muted rounded-lg p-4 overflow-x-auto my-4 text-sm",children:a}),code:({children:a,className:c})=>c?.includes("language-")?(0,b.jsx)("code",{className:c,children:a}):(0,b.jsx)("code",{className:"bg-muted px-1.5 py-0.5 rounded text-sm font-mono",children:a}),ul:({children:a})=>(0,b.jsx)("ul",{className:"list-disc list-inside my-4 space-y-2 text-muted-foreground",children:a}),ol:({children:a})=>(0,b.jsx)("ol",{className:"list-decimal list-inside my-4 space-y-2 text-muted-foreground",children:a}),li:({children:a})=>(0,b.jsx)("li",{className:"leading-7",children:a}),blockquote:({children:a})=>(0,b.jsx)("blockquote",{className:"border-l-4 border-primary pl-4 my-4 italic text-muted-foreground",children:a}),table:({children:a})=>(0,b.jsx)("div",{className:"overflow-x-auto my-4",children:(0,b.jsx)("table",{className:"min-w-full border-collapse border border-border",children:a})}),th:({children:a})=>(0,b.jsx)("th",{className:"border border-border bg-muted px-4 py-2 text-left font-semibold",children:a}),td:({children:a})=>(0,b.jsx)("td",{className:"border border-border px-4 py-2",children:a}),hr:()=>(0,b.jsx)("hr",{className:"my-8 border-border"}),strong:({children:a})=>(0,b.jsx)("strong",{className:"font-semibold text-foreground",children:a}),em:({children:a})=>(0,b.jsx)("em",{className:"italic",children:a})};function e(){return d}a.s(["useMDXComponents",()=>e])},664793,a=>{"use strict";var b=a.i(280516),c=a.i(805981);function d(a){let d={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,c.useMDXComponents)(),...a.components};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(d.h1,{children:"SparkECoder Documentation"}),"\n",(0,b.jsx)(d.p,{children:"SparkECoder is a powerful AI coding agent that helps developers write, debug, and improve code. It runs locally and provides an intelligent assistant for your development workflow."}),"\n",(0,b.jsx)(d.h2,{children:"Features"}),"\n",(0,b.jsxs)(d.ul,{children:["\n",(0,b.jsxs)(d.li,{children:[(0,b.jsx)(d.strong,{children:"Interactive Chat Interface"})," - Converse naturally with the AI to get coding help"]}),"\n",(0,b.jsxs)(d.li,{children:[(0,b.jsx)(d.strong,{children:"Tool Integration"})," - Read files, write code, run terminal commands, and more"]}),"\n",(0,b.jsxs)(d.li,{children:[(0,b.jsx)(d.strong,{children:"Agent Skills"})," - Extend capabilities with custom skills and rules"]}),"\n",(0,b.jsxs)(d.li,{children:[(0,b.jsx)(d.strong,{children:"Session Management"})," - Resume conversations and track progress across sessions"]}),"\n",(0,b.jsxs)(d.li,{children:[(0,b.jsx)(d.strong,{children:"Checkpoints"})," - Save and restore file states during development"]}),"\n"]}),"\n",(0,b.jsx)(d.h2,{children:"Getting Started"}),"\n",(0,b.jsx)(d.h3,{children:"Installation"}),"\n",(0,b.jsx)(d.pre,{children:(0,b.jsx)(d.code,{className:"language-bash",children:"npm install -g sparkecoder\n"})}),"\n",(0,b.jsx)(d.h3,{children:"Quick Start"}),"\n",(0,b.jsxs)(d.ol,{children:["\n",(0,b.jsxs)(d.li,{children:["\n",(0,b.jsx)(d.p,{children:(0,b.jsx)(d.strong,{children:"Set up your API key:"})}),"\n",(0,b.jsx)(d.pre,{children:(0,b.jsx)(d.code,{className:"language-bash",children:"export AI_GATEWAY_API_KEY=your_api_key\n"})}),"\n"]}),"\n",(0,b.jsxs)(d.li,{children:["\n",(0,b.jsx)(d.p,{children:(0,b.jsx)(d.strong,{children:"Start the agent:"})}),"\n",(0,b.jsx)(d.pre,{children:(0,b.jsx)(d.code,{className:"language-bash",children:"sparkecoder\n"})}),"\n"]}),"\n",(0,b.jsxs)(d.li,{children:["\n",(0,b.jsxs)(d.p,{children:[(0,b.jsx)(d.strong,{children:"Start chatting!"})," Ask the agent to help with code, explain concepts, or perform tasks."]}),"\n"]}),"\n"]}),"\n",(0,b.jsx)(d.h2,{children:"Core Concepts"}),"\n",(0,b.jsx)(d.h3,{children:"Sessions"}),"\n",(0,b.jsx)(d.p,{children:"Each conversation is a session. Sessions persist your chat history, tool executions, and context. You can resume sessions later:"}),"\n",(0,b.jsx)(d.pre,{children:(0,b.jsx)(d.code,{className:"language-bash",children:"sparkecoder --session <session-id>\n"})}),"\n",(0,b.jsx)(d.h3,{children:"Tools"}),"\n",(0,b.jsx)(d.p,{children:"The agent has access to several built-in tools:"}),"\n",(0,b.jsxs)(d.p,{children:["| Tool | Description |\n|------|-------------|\n| ",(0,b.jsx)(d.code,{children:"bash"})," | Execute terminal commands |\n| ",(0,b.jsx)(d.code,{children:"read_file"})," | Read file contents |\n| ",(0,b.jsx)(d.code,{children:"write_file"})," | Create or modify files |\n| ",(0,b.jsx)(d.code,{children:"linter"})," | Check for type errors and lint issues |\n| ",(0,b.jsx)(d.code,{children:"todo"})," | Track tasks and progress |\n| ",(0,b.jsx)(d.code,{children:"load_skill"})," | Load specialized knowledge |\n| ",(0,b.jsx)(d.code,{children:"search"})," | Explore agent for semantic discovery across codebase |"]}),"\n",(0,b.jsx)(d.h3,{children:"Skills"}),"\n",(0,b.jsx)(d.p,{children:"Skills are reusable instructions that extend the agent's capabilities. They can be:"}),"\n",(0,b.jsxs)(d.ul,{children:["\n",(0,b.jsxs)(d.li,{children:[(0,b.jsx)(d.strong,{children:"Always loaded"})," - Injected into every conversation"]}),"\n",(0,b.jsxs)(d.li,{children:[(0,b.jsx)(d.strong,{children:"On-demand"})," - Loaded when needed via the ",(0,b.jsx)(d.code,{children:"load_skill"})," tool"]}),"\n",(0,b.jsxs)(d.li,{children:[(0,b.jsx)(d.strong,{children:"Glob-matched"})," - Auto-loaded when working with specific file types"]}),"\n"]}),"\n",(0,b.jsx)(d.p,{children:(0,b.jsx)(d.a,{href:"/docs/skills",children:"Learn more about skills →"})}),"\n",(0,b.jsx)(d.h2,{children:"Configuration"}),"\n",(0,b.jsxs)(d.p,{children:["Create a ",(0,b.jsx)(d.code,{children:"sparkecoder.config.json"})," in your project:"]}),"\n",(0,b.jsx)(d.pre,{children:(0,b.jsx)(d.code,{className:"language-json",children:'{\n "defaultModel": "anthropic/claude-opus-4-5",\n "workingDirectory": ".",\n "toolApprovals": {\n "bash": true,\n "write_file": false\n },\n "skills": {\n "directory": "./skills"\n }\n}\n'})}),"\n",(0,b.jsx)(d.h2,{children:"Next Steps"}),"\n",(0,b.jsxs)(d.ul,{children:["\n",(0,b.jsxs)(d.li,{children:[(0,b.jsx)(d.a,{href:"/docs/skills",children:"Configure Agent Skills"})," - Create custom skills for your workflow"]}),"\n",(0,b.jsxs)(d.li,{children:[(0,b.jsx)(d.a,{href:"/docs/tools",children:"Explore Tools"})," - Learn about available tools"]}),"\n",(0,b.jsxs)(d.li,{children:[(0,b.jsx)(d.a,{href:"/docs/api",children:"API Reference"})," - Integrate SparkECoder programmatically"]}),"\n"]})]})}function e(a={}){let{wrapper:f}={...(0,c.useMDXComponents)(),...a.components};return f?(0,b.jsx)(f,{...a,children:(0,b.jsx)(d,{...a})}):d(a)}a.s(["default",()=>e])}];
1
+ module.exports=[193695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},353587,a=>{a.n(a.i(540183))},493510,a=>{a.n(a.i(47576))},616077,a=>{a.n(a.i(756733))},382884,a=>{a.n(a.i(654333))},375868,a=>{a.n(a.i(937271))},221752,a=>{a.n(a.i(412632))},624128,a=>{a.n(a.i(289664))},708532,a=>{a.n(a.i(262647))},350918,a=>{a.n(a.i(958781))},814874,a=>{a.n(a.i(971850))},805981,a=>{"use strict";var b=a.i(280516),c=a.i(803184);let d={h1:({children:a})=>(0,b.jsx)("h1",{className:"text-4xl font-bold mt-8 mb-4 text-foreground",children:a}),h2:({children:a})=>(0,b.jsx)("h2",{className:"text-3xl font-semibold mt-8 mb-3 text-foreground border-b border-border pb-2",children:a}),h3:({children:a})=>(0,b.jsx)("h3",{className:"text-2xl font-semibold mt-6 mb-2 text-foreground",children:a}),h4:({children:a})=>(0,b.jsx)("h4",{className:"text-xl font-medium mt-4 mb-2 text-foreground",children:a}),p:({children:a})=>(0,b.jsx)("p",{className:"my-4 text-muted-foreground leading-7",children:a}),a:({href:a,children:d})=>a?.startsWith("http")?(0,b.jsx)("a",{href:a,target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:d}):(0,b.jsx)(c.default,{href:a||"#",className:"text-primary hover:underline",children:d}),pre:({children:a})=>(0,b.jsx)("pre",{className:"bg-muted rounded-lg p-4 overflow-x-auto my-4 text-sm",children:a}),code:({children:a,className:c})=>c?.includes("language-")?(0,b.jsx)("code",{className:c,children:a}):(0,b.jsx)("code",{className:"bg-muted px-1.5 py-0.5 rounded text-sm font-mono",children:a}),ul:({children:a})=>(0,b.jsx)("ul",{className:"list-disc list-inside my-4 space-y-2 text-muted-foreground",children:a}),ol:({children:a})=>(0,b.jsx)("ol",{className:"list-decimal list-inside my-4 space-y-2 text-muted-foreground",children:a}),li:({children:a})=>(0,b.jsx)("li",{className:"leading-7",children:a}),blockquote:({children:a})=>(0,b.jsx)("blockquote",{className:"border-l-4 border-primary pl-4 my-4 italic text-muted-foreground",children:a}),table:({children:a})=>(0,b.jsx)("div",{className:"overflow-x-auto my-4",children:(0,b.jsx)("table",{className:"min-w-full border-collapse border border-border",children:a})}),th:({children:a})=>(0,b.jsx)("th",{className:"border border-border bg-muted px-4 py-2 text-left font-semibold",children:a}),td:({children:a})=>(0,b.jsx)("td",{className:"border border-border px-4 py-2",children:a}),hr:()=>(0,b.jsx)("hr",{className:"my-8 border-border"}),strong:({children:a})=>(0,b.jsx)("strong",{className:"font-semibold text-foreground",children:a}),em:({children:a})=>(0,b.jsx)("em",{className:"italic",children:a})};function e(){return d}a.s(["useMDXComponents",()=>e])},664793,a=>{"use strict";var b=a.i(280516),c=a.i(805981);function d(a){let d={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,c.useMDXComponents)(),...a.components};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(d.h1,{children:"SparkECoder Documentation"}),"\n",(0,b.jsx)(d.p,{children:"SparkECoder is a powerful AI coding agent that helps developers write, debug, and improve code. It runs locally and provides an intelligent assistant for your development workflow."}),"\n",(0,b.jsx)(d.h2,{children:"Features"}),"\n",(0,b.jsxs)(d.ul,{children:["\n",(0,b.jsxs)(d.li,{children:[(0,b.jsx)(d.strong,{children:"Interactive Chat Interface"})," - Converse naturally with the AI to get coding help"]}),"\n",(0,b.jsxs)(d.li,{children:[(0,b.jsx)(d.strong,{children:"Tool Integration"})," - Read files, write code, run terminal commands, and more"]}),"\n",(0,b.jsxs)(d.li,{children:[(0,b.jsx)(d.strong,{children:"Agent Skills"})," - Extend capabilities with custom skills and rules"]}),"\n",(0,b.jsxs)(d.li,{children:[(0,b.jsx)(d.strong,{children:"Session Management"})," - Resume conversations and track progress across sessions"]}),"\n",(0,b.jsxs)(d.li,{children:[(0,b.jsx)(d.strong,{children:"Checkpoints"})," - Save and restore file states during development"]}),"\n"]}),"\n",(0,b.jsx)(d.h2,{children:"Getting Started"}),"\n",(0,b.jsx)(d.h3,{children:"Installation"}),"\n",(0,b.jsx)(d.pre,{children:(0,b.jsx)(d.code,{className:"language-bash",children:"npm install -g sparkecoder\n"})}),"\n",(0,b.jsx)(d.h3,{children:"Quick Start"}),"\n",(0,b.jsxs)(d.ol,{children:["\n",(0,b.jsxs)(d.li,{children:["\n",(0,b.jsx)(d.p,{children:(0,b.jsx)(d.strong,{children:"Set up your API key:"})}),"\n",(0,b.jsx)(d.pre,{children:(0,b.jsx)(d.code,{className:"language-bash",children:"export AI_GATEWAY_API_KEY=your_api_key\n"})}),"\n"]}),"\n",(0,b.jsxs)(d.li,{children:["\n",(0,b.jsx)(d.p,{children:(0,b.jsx)(d.strong,{children:"Start the agent:"})}),"\n",(0,b.jsx)(d.pre,{children:(0,b.jsx)(d.code,{className:"language-bash",children:"sparkecoder\n"})}),"\n"]}),"\n",(0,b.jsxs)(d.li,{children:["\n",(0,b.jsxs)(d.p,{children:[(0,b.jsx)(d.strong,{children:"Start chatting!"})," Ask the agent to help with code, explain concepts, or perform tasks."]}),"\n"]}),"\n"]}),"\n",(0,b.jsx)(d.h2,{children:"Core Concepts"}),"\n",(0,b.jsx)(d.h3,{children:"Sessions"}),"\n",(0,b.jsx)(d.p,{children:"Each conversation is a session. Sessions persist your chat history, tool executions, and context. You can resume sessions later:"}),"\n",(0,b.jsx)(d.pre,{children:(0,b.jsx)(d.code,{className:"language-bash",children:"sparkecoder --session <session-id>\n"})}),"\n",(0,b.jsx)(d.h3,{children:"Tools"}),"\n",(0,b.jsx)(d.p,{children:"The agent has access to several built-in tools:"}),"\n",(0,b.jsxs)(d.p,{children:["| Tool | Description |\n|------|-------------|\n| ",(0,b.jsx)(d.code,{children:"bash"})," | Execute terminal commands |\n| ",(0,b.jsx)(d.code,{children:"read_file"})," | Read file contents |\n| ",(0,b.jsx)(d.code,{children:"write_file"})," | Create or modify files |\n| ",(0,b.jsx)(d.code,{children:"linter"})," | Check for type errors and lint issues |\n| ",(0,b.jsx)(d.code,{children:"todo"})," | Track tasks and progress |\n| ",(0,b.jsx)(d.code,{children:"load_skill"})," | Load specialized knowledge |\n| ",(0,b.jsx)(d.code,{children:"explore_agent"})," | Explore agent for semantic discovery across codebase |"]}),"\n",(0,b.jsx)(d.h3,{children:"Skills"}),"\n",(0,b.jsx)(d.p,{children:"Skills are reusable instructions that extend the agent's capabilities. They can be:"}),"\n",(0,b.jsxs)(d.ul,{children:["\n",(0,b.jsxs)(d.li,{children:[(0,b.jsx)(d.strong,{children:"Always loaded"})," - Injected into every conversation"]}),"\n",(0,b.jsxs)(d.li,{children:[(0,b.jsx)(d.strong,{children:"On-demand"})," - Loaded when needed via the ",(0,b.jsx)(d.code,{children:"load_skill"})," tool"]}),"\n",(0,b.jsxs)(d.li,{children:[(0,b.jsx)(d.strong,{children:"Glob-matched"})," - Auto-loaded when working with specific file types"]}),"\n"]}),"\n",(0,b.jsx)(d.p,{children:(0,b.jsx)(d.a,{href:"/docs/skills",children:"Learn more about skills →"})}),"\n",(0,b.jsx)(d.h2,{children:"Configuration"}),"\n",(0,b.jsxs)(d.p,{children:["Create a ",(0,b.jsx)(d.code,{children:"sparkecoder.config.json"})," in your project:"]}),"\n",(0,b.jsx)(d.pre,{children:(0,b.jsx)(d.code,{className:"language-json",children:'{\n "defaultModel": "anthropic/claude-opus-4-5",\n "workingDirectory": ".",\n "toolApprovals": {\n "bash": true,\n "write_file": false\n },\n "skills": {\n "directory": "./skills"\n }\n}\n'})}),"\n",(0,b.jsx)(d.h2,{children:"Next Steps"}),"\n",(0,b.jsxs)(d.ul,{children:["\n",(0,b.jsxs)(d.li,{children:[(0,b.jsx)(d.a,{href:"/docs/skills",children:"Configure Agent Skills"})," - Create custom skills for your workflow"]}),"\n",(0,b.jsxs)(d.li,{children:[(0,b.jsx)(d.a,{href:"/docs/tools",children:"Explore Tools"})," - Learn about available tools"]}),"\n",(0,b.jsxs)(d.li,{children:[(0,b.jsx)(d.a,{href:"/docs/api",children:"API Reference"})," - Integrate SparkECoder programmatically"]}),"\n"]})]})}function e(a={}){let{wrapper:f}={...(0,c.useMDXComponents)(),...a.components};return f?(0,b.jsx)(f,{...a,children:(0,b.jsx)(d,{...a})}):d(a)}a.s(["default",()=>e])}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__397fadd4._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[193695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},353587,a=>{a.n(a.i(540183))},493510,a=>{a.n(a.i(47576))},616077,a=>{a.n(a.i(756733))},382884,a=>{a.n(a.i(654333))},375868,a=>{a.n(a.i(937271))},221752,a=>{a.n(a.i(412632))},624128,a=>{a.n(a.i(289664))},708532,a=>{a.n(a.i(262647))},350918,a=>{a.n(a.i(958781))},814874,a=>{a.n(a.i(971850))},805981,a=>{"use strict";var b=a.i(280516),c=a.i(803184);let d={h1:({children:a})=>(0,b.jsx)("h1",{className:"text-4xl font-bold mt-8 mb-4 text-foreground",children:a}),h2:({children:a})=>(0,b.jsx)("h2",{className:"text-3xl font-semibold mt-8 mb-3 text-foreground border-b border-border pb-2",children:a}),h3:({children:a})=>(0,b.jsx)("h3",{className:"text-2xl font-semibold mt-6 mb-2 text-foreground",children:a}),h4:({children:a})=>(0,b.jsx)("h4",{className:"text-xl font-medium mt-4 mb-2 text-foreground",children:a}),p:({children:a})=>(0,b.jsx)("p",{className:"my-4 text-muted-foreground leading-7",children:a}),a:({href:a,children:d})=>a?.startsWith("http")?(0,b.jsx)("a",{href:a,target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:d}):(0,b.jsx)(c.default,{href:a||"#",className:"text-primary hover:underline",children:d}),pre:({children:a})=>(0,b.jsx)("pre",{className:"bg-muted rounded-lg p-4 overflow-x-auto my-4 text-sm",children:a}),code:({children:a,className:c})=>c?.includes("language-")?(0,b.jsx)("code",{className:c,children:a}):(0,b.jsx)("code",{className:"bg-muted px-1.5 py-0.5 rounded text-sm font-mono",children:a}),ul:({children:a})=>(0,b.jsx)("ul",{className:"list-disc list-inside my-4 space-y-2 text-muted-foreground",children:a}),ol:({children:a})=>(0,b.jsx)("ol",{className:"list-decimal list-inside my-4 space-y-2 text-muted-foreground",children:a}),li:({children:a})=>(0,b.jsx)("li",{className:"leading-7",children:a}),blockquote:({children:a})=>(0,b.jsx)("blockquote",{className:"border-l-4 border-primary pl-4 my-4 italic text-muted-foreground",children:a}),table:({children:a})=>(0,b.jsx)("div",{className:"overflow-x-auto my-4",children:(0,b.jsx)("table",{className:"min-w-full border-collapse border border-border",children:a})}),th:({children:a})=>(0,b.jsx)("th",{className:"border border-border bg-muted px-4 py-2 text-left font-semibold",children:a}),td:({children:a})=>(0,b.jsx)("td",{className:"border border-border px-4 py-2",children:a}),hr:()=>(0,b.jsx)("hr",{className:"my-8 border-border"}),strong:({children:a})=>(0,b.jsx)("strong",{className:"font-semibold text-foreground",children:a}),em:({children:a})=>(0,b.jsx)("em",{className:"italic",children:a})};function e(){return d}a.s(["useMDXComponents",()=>e])},480064,a=>{"use strict";var b=a.i(280516),c=a.i(805981);function d(a){let d={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",hr:"hr",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,c.useMDXComponents)(),...a.components};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(d.h1,{children:"Tools"}),"\n",(0,b.jsx)(d.p,{children:"SparkECoder comes with a powerful set of built-in tools that enable the agent to interact with your development environment."}),"\n",(0,b.jsx)(d.h2,{children:"Available Tools"}),"\n",(0,b.jsx)(d.h3,{children:"bash"}),"\n",(0,b.jsx)(d.p,{children:"Execute terminal commands in your working directory."}),"\n",(0,b.jsx)(d.p,{children:(0,b.jsx)(d.strong,{children:"Capabilities:"})}),"\n",(0,b.jsxs)(d.ul,{children:["\n",(0,b.jsx)(d.li,{children:"Run any shell command"}),"\n",(0,b.jsx)(d.li,{children:"Background long-running processes"}),"\n",(0,b.jsx)(d.li,{children:"Send input to interactive prompts"}),"\n",(0,b.jsx)(d.li,{children:"Stream output in real-time"}),"\n"]}),"\n",(0,b.jsx)(d.p,{children:(0,b.jsx)(d.strong,{children:"Examples:"})}),"\n",(0,b.jsx)(d.pre,{children:(0,b.jsx)(d.code,{children:'# Run a command\nbash({ command: "npm install" })\n\n# Run in background (for dev servers)\nbash({ command: "npm run dev", background: true })\n→ Returns { id: "abc123" }\n\n# Check background process\nbash({ id: "abc123" })\nbash({ id: "abc123", tail: 50 }) # Last 50 lines\n\n# Stop a background process\nbash({ id: "abc123", kill: true })\n\n# Send input to prompts\nbash({ id: "abc123", key: "y" }) # Send \'y\'\nbash({ id: "abc123", input: "text" }) # Send text\n'})}),"\n",(0,b.jsx)(d.p,{children:(0,b.jsx)(d.strong,{children:"Best Practices:"})}),"\n",(0,b.jsxs)(d.ul,{children:["\n",(0,b.jsxs)(d.li,{children:["Use ",(0,b.jsx)(d.code,{children:"--yes"})," or ",(0,b.jsx)(d.code,{children:"-y"})," flags for non-interactive execution"]}),"\n",(0,b.jsx)(d.li,{children:"Run dev servers in background mode"}),"\n",(0,b.jsxs)(d.li,{children:["Use ",(0,b.jsx)(d.code,{children:"tail"})," option for large outputs"]}),"\n"]}),"\n",(0,b.jsx)(d.hr,{}),"\n",(0,b.jsx)(d.h3,{children:"read_file"}),"\n",(0,b.jsx)(d.p,{children:"Read the contents of files."}),"\n",(0,b.jsx)(d.p,{children:(0,b.jsx)(d.strong,{children:"Capabilities:"})}),"\n",(0,b.jsxs)(d.ul,{children:["\n",(0,b.jsx)(d.li,{children:"Read any text file"}),"\n",(0,b.jsx)(d.li,{children:"Specify line ranges for large files"}),"\n",(0,b.jsx)(d.li,{children:"Returns content with line numbers"}),"\n"]}),"\n",(0,b.jsx)(d.p,{children:(0,b.jsx)(d.strong,{children:"Examples:"})}),"\n",(0,b.jsx)(d.pre,{children:(0,b.jsx)(d.code,{children:'# Read entire file\nread_file({ path: "src/app.ts" })\n\n# Read specific lines\nread_file({ \n path: "src/app.ts", \n offset: 100, \n limit: 50 \n})\n'})}),"\n",(0,b.jsx)(d.hr,{}),"\n",(0,b.jsx)(d.h3,{children:"write_file"}),"\n",(0,b.jsx)(d.p,{children:"Create new files or modify existing ones."}),"\n",(0,b.jsx)(d.p,{children:(0,b.jsx)(d.strong,{children:"Capabilities:"})}),"\n",(0,b.jsxs)(d.ul,{children:["\n",(0,b.jsx)(d.li,{children:"Create new files"}),"\n",(0,b.jsx)(d.li,{children:"Replace entire file contents"}),"\n",(0,b.jsx)(d.li,{children:"Make targeted string replacements"}),"\n",(0,b.jsx)(d.li,{children:"Automatically detects file type for linting"}),"\n"]}),"\n",(0,b.jsx)(d.p,{children:(0,b.jsx)(d.strong,{children:"Examples:"})}),"\n",(0,b.jsx)(d.pre,{children:(0,b.jsx)(d.code,{children:'# Create a new file\nwrite_file({\n path: "src/utils.ts",\n mode: "full",\n content: "export function hello() { return \'world\'; }"\n})\n\n# Make a targeted edit\nwrite_file({\n path: "src/app.ts",\n mode: "str_replace",\n old_str: "const x = 1",\n new_str: "const x = 2"\n})\n'})}),"\n",(0,b.jsx)(d.p,{children:(0,b.jsx)(d.strong,{children:"Modes:"})}),"\n",(0,b.jsxs)(d.ul,{children:["\n",(0,b.jsxs)(d.li,{children:[(0,b.jsx)(d.code,{children:"full"})," - Replace entire file (for new files or complete rewrites)"]}),"\n",(0,b.jsxs)(d.li,{children:[(0,b.jsx)(d.code,{children:"str_replace"})," - Replace specific strings (preferred for edits)"]}),"\n"]}),"\n",(0,b.jsx)(d.hr,{}),"\n",(0,b.jsx)(d.h3,{children:"linter"}),"\n",(0,b.jsx)(d.p,{children:"Check files for type errors and lint issues using LSP."}),"\n",(0,b.jsx)(d.p,{children:(0,b.jsx)(d.strong,{children:"Capabilities:"})}),"\n",(0,b.jsxs)(d.ul,{children:["\n",(0,b.jsx)(d.li,{children:"TypeScript/JavaScript type checking"}),"\n",(0,b.jsx)(d.li,{children:"TSX/JSX support"}),"\n",(0,b.jsx)(d.li,{children:"Check specific files or directories"}),"\n",(0,b.jsx)(d.li,{children:"Returns diagnostics with line numbers"}),"\n"]}),"\n",(0,b.jsx)(d.p,{children:(0,b.jsx)(d.strong,{children:"Examples:"})}),"\n",(0,b.jsx)(d.pre,{children:(0,b.jsx)(d.code,{children:'# Check recently edited files\nlinter({})\n\n# Check specific file\nlinter({ paths: ["src/app.ts"] })\n\n# Check entire directory\nlinter({ paths: ["src/"] })\n'})}),"\n",(0,b.jsx)(d.hr,{}),"\n",(0,b.jsx)(d.h3,{children:"todo"}),"\n",(0,b.jsx)(d.p,{children:"Manage a task list for complex operations."}),"\n",(0,b.jsx)(d.p,{children:(0,b.jsx)(d.strong,{children:"Capabilities:"})}),"\n",(0,b.jsxs)(d.ul,{children:["\n",(0,b.jsx)(d.li,{children:"Create, update, and complete tasks"}),"\n",(0,b.jsx)(d.li,{children:"Track progress across multi-step operations"}),"\n",(0,b.jsx)(d.li,{children:"Persist across conversation turns"}),"\n"]}),"\n",(0,b.jsx)(d.p,{children:(0,b.jsx)(d.strong,{children:"Examples:"})}),"\n",(0,b.jsx)(d.pre,{children:(0,b.jsx)(d.code,{children:'# Create tasks\ntodo({\n action: "add",\n items: [\n { id: "1", content: "Research API structure", status: "pending" },\n { id: "2", content: "Implement endpoints", status: "pending" }\n ]\n})\n\n# Update task status\ntodo({\n action: "update",\n items: [\n { id: "1", status: "completed" }\n ]\n})\n\n# Clear all tasks\ntodo({ action: "clear" })\n'})}),"\n",(0,b.jsx)(d.p,{children:(0,b.jsx)(d.strong,{children:"Statuses:"})}),"\n",(0,b.jsxs)(d.ul,{children:["\n",(0,b.jsxs)(d.li,{children:[(0,b.jsx)(d.code,{children:"pending"})," - Not started"]}),"\n",(0,b.jsxs)(d.li,{children:[(0,b.jsx)(d.code,{children:"in_progress"})," - Currently working on"]}),"\n",(0,b.jsxs)(d.li,{children:[(0,b.jsx)(d.code,{children:"completed"})," - Finished"]}),"\n",(0,b.jsxs)(d.li,{children:[(0,b.jsx)(d.code,{children:"cancelled"})," - No longer needed"]}),"\n"]}),"\n",(0,b.jsx)(d.hr,{}),"\n",(0,b.jsx)(d.h3,{children:"load_skill"}),"\n",(0,b.jsx)(d.p,{children:"Load specialized knowledge documents."}),"\n",(0,b.jsx)(d.p,{children:(0,b.jsx)(d.strong,{children:"Capabilities:"})}),"\n",(0,b.jsxs)(d.ul,{children:["\n",(0,b.jsx)(d.li,{children:"List available skills"}),"\n",(0,b.jsx)(d.li,{children:"Load skill content into context"}),"\n",(0,b.jsx)(d.li,{children:"Tracks loaded skills to prevent duplicates"}),"\n"]}),"\n",(0,b.jsx)(d.p,{children:(0,b.jsx)(d.strong,{children:"Examples:"})}),"\n",(0,b.jsx)(d.pre,{children:(0,b.jsx)(d.code,{children:'# List available skills\nload_skill({ action: "list" })\n\n# Load a specific skill\nload_skill({ \n action: "load", \n name: "React Performance" \n})\n'})}),"\n",(0,b.jsx)(d.hr,{}),"\n",(0,b.jsx)(d.h3,{children:"search"}),"\n",(0,b.jsx)(d.p,{children:"Explore agent for semantic discovery across your codebase."}),"\n",(0,b.jsx)(d.p,{children:(0,b.jsx)(d.strong,{children:"Capabilities:"})}),"\n",(0,b.jsxs)(d.ul,{children:["\n",(0,b.jsx)(d.li,{children:"Find code by meaning, not just text"}),"\n",(0,b.jsx)(d.li,{children:"Understand how features are implemented"}),"\n",(0,b.jsx)(d.li,{children:"Explore unfamiliar code"}),"\n",(0,b.jsx)(d.li,{children:"Returns summarized findings"}),"\n"]}),"\n",(0,b.jsx)(d.p,{children:(0,b.jsx)(d.strong,{children:"Examples:"})}),"\n",(0,b.jsx)(d.pre,{children:(0,b.jsx)(d.code,{children:'# Exploratory search (Explore agent)\nsearch({ query: "How does authentication work?" })\n\n# Find specific patterns\nsearch({ query: "Where is user data validated?" })\n'})}),"\n",(0,b.jsx)(d.p,{children:(0,b.jsx)(d.strong,{children:"When to use search (Explore agent) vs grep:"})}),"\n",(0,b.jsxs)(d.ul,{children:["\n",(0,b.jsxs)(d.li,{children:[(0,b.jsx)(d.strong,{children:"search"}),' - "How does X work?", "Where is Y implemented?"']}),"\n",(0,b.jsxs)(d.li,{children:[(0,b.jsx)(d.strong,{children:"grep/rg"})," - Exact string matches, symbol names"]}),"\n"]}),"\n",(0,b.jsx)(d.h2,{children:"Tool Approvals"}),"\n",(0,b.jsxs)(d.p,{children:["Some tools require user approval before execution. Configure in ",(0,b.jsx)(d.code,{children:"sparkecoder.config.json"}),":"]}),"\n",(0,b.jsx)(d.pre,{children:(0,b.jsx)(d.code,{className:"language-json",children:'{\n "toolApprovals": {\n "bash": true, // Require approval\n "write_file": false // Auto-approve\n }\n}\n'})}),"\n",(0,b.jsx)(d.p,{children:"When a tool requires approval, you'll see a prompt in the chat interface."}),"\n",(0,b.jsx)(d.h2,{children:"Tool Output"}),"\n",(0,b.jsx)(d.p,{children:"Tool results are displayed in the chat with expandable details:"}),"\n",(0,b.jsxs)(d.ul,{children:["\n",(0,b.jsxs)(d.li,{children:[(0,b.jsx)(d.strong,{children:"Success"})," - Green indicator with output"]}),"\n",(0,b.jsxs)(d.li,{children:[(0,b.jsx)(d.strong,{children:"Error"})," - Red indicator with error message"]}),"\n",(0,b.jsxs)(d.li,{children:[(0,b.jsx)(d.strong,{children:"Pending"})," - Yellow indicator waiting for approval"]}),"\n"]}),"\n",(0,b.jsx)(d.h2,{children:"Best Practices"}),"\n",(0,b.jsx)(d.h3,{children:"1. Read Before Writing"}),"\n",(0,b.jsx)(d.p,{children:"Always read relevant files before making changes:"}),"\n",(0,b.jsx)(d.pre,{children:(0,b.jsx)(d.code,{children:'1. read_file({ path: "src/component.tsx" })\n2. Analyze the code\n3. write_file({ path: "src/component.tsx", mode: "str_replace", ... })\n'})}),"\n",(0,b.jsx)(d.h3,{children:"2. Use Targeted Edits"}),"\n",(0,b.jsxs)(d.p,{children:["Prefer ",(0,b.jsx)(d.code,{children:"str_replace"})," mode over ",(0,b.jsx)(d.code,{children:"full"})," mode when editing:"]}),"\n",(0,b.jsx)(d.pre,{children:(0,b.jsx)(d.code,{children:'# Good - targeted change\nwrite_file({\n mode: "str_replace",\n old_str: "function oldName",\n new_str: "function newName"\n})\n\n# Avoid - rewrites entire file\nwrite_file({\n mode: "full",\n content: "...entire file..."\n})\n'})}),"\n",(0,b.jsx)(d.h3,{children:"3. Check for Errors"}),"\n",(0,b.jsx)(d.p,{children:"Run the linter after making changes:"}),"\n",(0,b.jsx)(d.pre,{children:(0,b.jsx)(d.code,{children:'1. write_file({ ... })\n2. linter({ paths: ["src/changed-file.ts"] })\n3. Fix any errors\n'})}),"\n",(0,b.jsx)(d.h3,{children:"4. Use Background for Long Processes"}),"\n",(0,b.jsx)(d.p,{children:"Don't block the chat with long-running commands:"}),"\n",(0,b.jsx)(d.pre,{children:(0,b.jsx)(d.code,{children:'# Start dev server\nbash({ command: "npm run dev", background: true })\n\n# Check output later\nbash({ id: "...", tail: 20 })\n'})}),"\n",(0,b.jsx)(d.h2,{children:"Extending Tools"}),"\n",(0,b.jsx)(d.p,{children:"Tools are extensible through the agent's skill system. Create custom workflows by combining tools with skills."}),"\n",(0,b.jsxs)(d.p,{children:["See ",(0,b.jsx)(d.a,{href:"/docs/skills",children:"Agent Skills"})," for more information."]})]})}function e(a={}){let{wrapper:f}={...(0,c.useMDXComponents)(),...a.components};return f?(0,b.jsx)(f,{...a,children:(0,b.jsx)(d,{...a})}):d(a)}a.s(["default",()=>e])}];
1
+ module.exports=[193695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},353587,a=>{a.n(a.i(540183))},493510,a=>{a.n(a.i(47576))},616077,a=>{a.n(a.i(756733))},382884,a=>{a.n(a.i(654333))},375868,a=>{a.n(a.i(937271))},221752,a=>{a.n(a.i(412632))},624128,a=>{a.n(a.i(289664))},708532,a=>{a.n(a.i(262647))},350918,a=>{a.n(a.i(958781))},814874,a=>{a.n(a.i(971850))},805981,a=>{"use strict";var b=a.i(280516),c=a.i(803184);let d={h1:({children:a})=>(0,b.jsx)("h1",{className:"text-4xl font-bold mt-8 mb-4 text-foreground",children:a}),h2:({children:a})=>(0,b.jsx)("h2",{className:"text-3xl font-semibold mt-8 mb-3 text-foreground border-b border-border pb-2",children:a}),h3:({children:a})=>(0,b.jsx)("h3",{className:"text-2xl font-semibold mt-6 mb-2 text-foreground",children:a}),h4:({children:a})=>(0,b.jsx)("h4",{className:"text-xl font-medium mt-4 mb-2 text-foreground",children:a}),p:({children:a})=>(0,b.jsx)("p",{className:"my-4 text-muted-foreground leading-7",children:a}),a:({href:a,children:d})=>a?.startsWith("http")?(0,b.jsx)("a",{href:a,target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:d}):(0,b.jsx)(c.default,{href:a||"#",className:"text-primary hover:underline",children:d}),pre:({children:a})=>(0,b.jsx)("pre",{className:"bg-muted rounded-lg p-4 overflow-x-auto my-4 text-sm",children:a}),code:({children:a,className:c})=>c?.includes("language-")?(0,b.jsx)("code",{className:c,children:a}):(0,b.jsx)("code",{className:"bg-muted px-1.5 py-0.5 rounded text-sm font-mono",children:a}),ul:({children:a})=>(0,b.jsx)("ul",{className:"list-disc list-inside my-4 space-y-2 text-muted-foreground",children:a}),ol:({children:a})=>(0,b.jsx)("ol",{className:"list-decimal list-inside my-4 space-y-2 text-muted-foreground",children:a}),li:({children:a})=>(0,b.jsx)("li",{className:"leading-7",children:a}),blockquote:({children:a})=>(0,b.jsx)("blockquote",{className:"border-l-4 border-primary pl-4 my-4 italic text-muted-foreground",children:a}),table:({children:a})=>(0,b.jsx)("div",{className:"overflow-x-auto my-4",children:(0,b.jsx)("table",{className:"min-w-full border-collapse border border-border",children:a})}),th:({children:a})=>(0,b.jsx)("th",{className:"border border-border bg-muted px-4 py-2 text-left font-semibold",children:a}),td:({children:a})=>(0,b.jsx)("td",{className:"border border-border px-4 py-2",children:a}),hr:()=>(0,b.jsx)("hr",{className:"my-8 border-border"}),strong:({children:a})=>(0,b.jsx)("strong",{className:"font-semibold text-foreground",children:a}),em:({children:a})=>(0,b.jsx)("em",{className:"italic",children:a})};function e(){return d}a.s(["useMDXComponents",()=>e])},480064,a=>{"use strict";var b=a.i(280516),c=a.i(805981);function d(a){let d={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",hr:"hr",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,c.useMDXComponents)(),...a.components};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(d.h1,{children:"Tools"}),"\n",(0,b.jsx)(d.p,{children:"SparkECoder comes with a powerful set of built-in tools that enable the agent to interact with your development environment."}),"\n",(0,b.jsx)(d.h2,{children:"Available Tools"}),"\n",(0,b.jsx)(d.h3,{children:"bash"}),"\n",(0,b.jsx)(d.p,{children:"Execute terminal commands in your working directory."}),"\n",(0,b.jsx)(d.p,{children:(0,b.jsx)(d.strong,{children:"Capabilities:"})}),"\n",(0,b.jsxs)(d.ul,{children:["\n",(0,b.jsx)(d.li,{children:"Run any shell command"}),"\n",(0,b.jsx)(d.li,{children:"Background long-running processes"}),"\n",(0,b.jsx)(d.li,{children:"Send input to interactive prompts"}),"\n",(0,b.jsx)(d.li,{children:"Stream output in real-time"}),"\n"]}),"\n",(0,b.jsx)(d.p,{children:(0,b.jsx)(d.strong,{children:"Examples:"})}),"\n",(0,b.jsx)(d.pre,{children:(0,b.jsx)(d.code,{children:'# Run a command\nbash({ command: "npm install" })\n\n# Run in background (for dev servers)\nbash({ command: "npm run dev", background: true })\n→ Returns { id: "abc123" }\n\n# Check background process\nbash({ id: "abc123" })\nbash({ id: "abc123", tail: 50 }) # Last 50 lines\n\n# Stop a background process\nbash({ id: "abc123", kill: true })\n\n# Send input to prompts\nbash({ id: "abc123", key: "y" }) # Send \'y\'\nbash({ id: "abc123", input: "text" }) # Send text\n'})}),"\n",(0,b.jsx)(d.p,{children:(0,b.jsx)(d.strong,{children:"Best Practices:"})}),"\n",(0,b.jsxs)(d.ul,{children:["\n",(0,b.jsxs)(d.li,{children:["Use ",(0,b.jsx)(d.code,{children:"--yes"})," or ",(0,b.jsx)(d.code,{children:"-y"})," flags for non-interactive execution"]}),"\n",(0,b.jsx)(d.li,{children:"Run dev servers in background mode"}),"\n",(0,b.jsxs)(d.li,{children:["Use ",(0,b.jsx)(d.code,{children:"tail"})," option for large outputs"]}),"\n"]}),"\n",(0,b.jsx)(d.hr,{}),"\n",(0,b.jsx)(d.h3,{children:"read_file"}),"\n",(0,b.jsx)(d.p,{children:"Read the contents of files."}),"\n",(0,b.jsx)(d.p,{children:(0,b.jsx)(d.strong,{children:"Capabilities:"})}),"\n",(0,b.jsxs)(d.ul,{children:["\n",(0,b.jsx)(d.li,{children:"Read any text file"}),"\n",(0,b.jsx)(d.li,{children:"Specify line ranges for large files"}),"\n",(0,b.jsx)(d.li,{children:"Returns content with line numbers"}),"\n"]}),"\n",(0,b.jsx)(d.p,{children:(0,b.jsx)(d.strong,{children:"Examples:"})}),"\n",(0,b.jsx)(d.pre,{children:(0,b.jsx)(d.code,{children:'# Read entire file\nread_file({ path: "src/app.ts" })\n\n# Read specific lines\nread_file({ \n path: "src/app.ts", \n offset: 100, \n limit: 50 \n})\n'})}),"\n",(0,b.jsx)(d.hr,{}),"\n",(0,b.jsx)(d.h3,{children:"write_file"}),"\n",(0,b.jsx)(d.p,{children:"Create new files or modify existing ones."}),"\n",(0,b.jsx)(d.p,{children:(0,b.jsx)(d.strong,{children:"Capabilities:"})}),"\n",(0,b.jsxs)(d.ul,{children:["\n",(0,b.jsx)(d.li,{children:"Create new files"}),"\n",(0,b.jsx)(d.li,{children:"Replace entire file contents"}),"\n",(0,b.jsx)(d.li,{children:"Make targeted string replacements"}),"\n",(0,b.jsx)(d.li,{children:"Automatically detects file type for linting"}),"\n"]}),"\n",(0,b.jsx)(d.p,{children:(0,b.jsx)(d.strong,{children:"Examples:"})}),"\n",(0,b.jsx)(d.pre,{children:(0,b.jsx)(d.code,{children:'# Create a new file\nwrite_file({\n path: "src/utils.ts",\n mode: "full",\n content: "export function hello() { return \'world\'; }"\n})\n\n# Make a targeted edit\nwrite_file({\n path: "src/app.ts",\n mode: "str_replace",\n old_str: "const x = 1",\n new_str: "const x = 2"\n})\n'})}),"\n",(0,b.jsx)(d.p,{children:(0,b.jsx)(d.strong,{children:"Modes:"})}),"\n",(0,b.jsxs)(d.ul,{children:["\n",(0,b.jsxs)(d.li,{children:[(0,b.jsx)(d.code,{children:"full"})," - Replace entire file (for new files or complete rewrites)"]}),"\n",(0,b.jsxs)(d.li,{children:[(0,b.jsx)(d.code,{children:"str_replace"})," - Replace specific strings (preferred for edits)"]}),"\n"]}),"\n",(0,b.jsx)(d.hr,{}),"\n",(0,b.jsx)(d.h3,{children:"linter"}),"\n",(0,b.jsx)(d.p,{children:"Check files for type errors and lint issues using LSP."}),"\n",(0,b.jsx)(d.p,{children:(0,b.jsx)(d.strong,{children:"Capabilities:"})}),"\n",(0,b.jsxs)(d.ul,{children:["\n",(0,b.jsx)(d.li,{children:"TypeScript/JavaScript type checking"}),"\n",(0,b.jsx)(d.li,{children:"TSX/JSX support"}),"\n",(0,b.jsx)(d.li,{children:"Check specific files or directories"}),"\n",(0,b.jsx)(d.li,{children:"Returns diagnostics with line numbers"}),"\n"]}),"\n",(0,b.jsx)(d.p,{children:(0,b.jsx)(d.strong,{children:"Examples:"})}),"\n",(0,b.jsx)(d.pre,{children:(0,b.jsx)(d.code,{children:'# Check recently edited files\nlinter({})\n\n# Check specific file\nlinter({ paths: ["src/app.ts"] })\n\n# Check entire directory\nlinter({ paths: ["src/"] })\n'})}),"\n",(0,b.jsx)(d.hr,{}),"\n",(0,b.jsx)(d.h3,{children:"todo"}),"\n",(0,b.jsx)(d.p,{children:"Manage a task list for complex operations."}),"\n",(0,b.jsx)(d.p,{children:(0,b.jsx)(d.strong,{children:"Capabilities:"})}),"\n",(0,b.jsxs)(d.ul,{children:["\n",(0,b.jsx)(d.li,{children:"Create, update, and complete tasks"}),"\n",(0,b.jsx)(d.li,{children:"Track progress across multi-step operations"}),"\n",(0,b.jsx)(d.li,{children:"Persist across conversation turns"}),"\n"]}),"\n",(0,b.jsx)(d.p,{children:(0,b.jsx)(d.strong,{children:"Examples:"})}),"\n",(0,b.jsx)(d.pre,{children:(0,b.jsx)(d.code,{children:'# Create tasks\ntodo({\n action: "add",\n items: [\n { id: "1", content: "Research API structure", status: "pending" },\n { id: "2", content: "Implement endpoints", status: "pending" }\n ]\n})\n\n# Update task status\ntodo({\n action: "update",\n items: [\n { id: "1", status: "completed" }\n ]\n})\n\n# Clear all tasks\ntodo({ action: "clear" })\n'})}),"\n",(0,b.jsx)(d.p,{children:(0,b.jsx)(d.strong,{children:"Statuses:"})}),"\n",(0,b.jsxs)(d.ul,{children:["\n",(0,b.jsxs)(d.li,{children:[(0,b.jsx)(d.code,{children:"pending"})," - Not started"]}),"\n",(0,b.jsxs)(d.li,{children:[(0,b.jsx)(d.code,{children:"in_progress"})," - Currently working on"]}),"\n",(0,b.jsxs)(d.li,{children:[(0,b.jsx)(d.code,{children:"completed"})," - Finished"]}),"\n",(0,b.jsxs)(d.li,{children:[(0,b.jsx)(d.code,{children:"cancelled"})," - No longer needed"]}),"\n"]}),"\n",(0,b.jsx)(d.hr,{}),"\n",(0,b.jsx)(d.h3,{children:"load_skill"}),"\n",(0,b.jsx)(d.p,{children:"Load specialized knowledge documents."}),"\n",(0,b.jsx)(d.p,{children:(0,b.jsx)(d.strong,{children:"Capabilities:"})}),"\n",(0,b.jsxs)(d.ul,{children:["\n",(0,b.jsx)(d.li,{children:"List available skills"}),"\n",(0,b.jsx)(d.li,{children:"Load skill content into context"}),"\n",(0,b.jsx)(d.li,{children:"Tracks loaded skills to prevent duplicates"}),"\n"]}),"\n",(0,b.jsx)(d.p,{children:(0,b.jsx)(d.strong,{children:"Examples:"})}),"\n",(0,b.jsx)(d.pre,{children:(0,b.jsx)(d.code,{children:'# List available skills\nload_skill({ action: "list" })\n\n# Load a specific skill\nload_skill({ \n action: "load", \n name: "React Performance" \n})\n'})}),"\n",(0,b.jsx)(d.hr,{}),"\n",(0,b.jsx)(d.h3,{children:"explore_agent"}),"\n",(0,b.jsx)(d.p,{children:"Explore agent for semantic discovery across your codebase."}),"\n",(0,b.jsx)(d.p,{children:(0,b.jsx)(d.strong,{children:"Capabilities:"})}),"\n",(0,b.jsxs)(d.ul,{children:["\n",(0,b.jsx)(d.li,{children:"Find code by meaning, not just text"}),"\n",(0,b.jsx)(d.li,{children:"Understand how features are implemented"}),"\n",(0,b.jsx)(d.li,{children:"Explore unfamiliar code"}),"\n",(0,b.jsx)(d.li,{children:"Returns summarized findings"}),"\n"]}),"\n",(0,b.jsx)(d.p,{children:(0,b.jsx)(d.strong,{children:"Examples:"})}),"\n",(0,b.jsx)(d.pre,{children:(0,b.jsx)(d.code,{children:'# Exploratory search (Explore agent)\nexplore_agent({ query: "How does authentication work?" })\n\n# Find specific patterns\nexplore_agent({ query: "Where is user data validated?" })\n'})}),"\n",(0,b.jsx)(d.p,{children:(0,b.jsx)(d.strong,{children:"When to use explore_agent (Explore agent) vs grep:"})}),"\n",(0,b.jsxs)(d.ul,{children:["\n",(0,b.jsxs)(d.li,{children:[(0,b.jsx)(d.strong,{children:"explore_agent"}),' - "How does X work?", "Where is Y implemented?"']}),"\n",(0,b.jsxs)(d.li,{children:[(0,b.jsx)(d.strong,{children:"grep/rg"})," - Exact string matches, symbol names"]}),"\n"]}),"\n",(0,b.jsx)(d.h2,{children:"Tool Approvals"}),"\n",(0,b.jsxs)(d.p,{children:["Some tools require user approval before execution. Configure in ",(0,b.jsx)(d.code,{children:"sparkecoder.config.json"}),":"]}),"\n",(0,b.jsx)(d.pre,{children:(0,b.jsx)(d.code,{className:"language-json",children:'{\n "toolApprovals": {\n "bash": true, // Require approval\n "write_file": false // Auto-approve\n }\n}\n'})}),"\n",(0,b.jsx)(d.p,{children:"When a tool requires approval, you'll see a prompt in the chat interface."}),"\n",(0,b.jsx)(d.h2,{children:"Tool Output"}),"\n",(0,b.jsx)(d.p,{children:"Tool results are displayed in the chat with expandable details:"}),"\n",(0,b.jsxs)(d.ul,{children:["\n",(0,b.jsxs)(d.li,{children:[(0,b.jsx)(d.strong,{children:"Success"})," - Green indicator with output"]}),"\n",(0,b.jsxs)(d.li,{children:[(0,b.jsx)(d.strong,{children:"Error"})," - Red indicator with error message"]}),"\n",(0,b.jsxs)(d.li,{children:[(0,b.jsx)(d.strong,{children:"Pending"})," - Yellow indicator waiting for approval"]}),"\n"]}),"\n",(0,b.jsx)(d.h2,{children:"Best Practices"}),"\n",(0,b.jsx)(d.h3,{children:"1. Read Before Writing"}),"\n",(0,b.jsx)(d.p,{children:"Always read relevant files before making changes:"}),"\n",(0,b.jsx)(d.pre,{children:(0,b.jsx)(d.code,{children:'1. read_file({ path: "src/component.tsx" })\n2. Analyze the code\n3. write_file({ path: "src/component.tsx", mode: "str_replace", ... })\n'})}),"\n",(0,b.jsx)(d.h3,{children:"2. Use Targeted Edits"}),"\n",(0,b.jsxs)(d.p,{children:["Prefer ",(0,b.jsx)(d.code,{children:"str_replace"})," mode over ",(0,b.jsx)(d.code,{children:"full"})," mode when editing:"]}),"\n",(0,b.jsx)(d.pre,{children:(0,b.jsx)(d.code,{children:'# Good - targeted change\nwrite_file({\n mode: "str_replace",\n old_str: "function oldName",\n new_str: "function newName"\n})\n\n# Avoid - rewrites entire file\nwrite_file({\n mode: "full",\n content: "...entire file..."\n})\n'})}),"\n",(0,b.jsx)(d.h3,{children:"3. Check for Errors"}),"\n",(0,b.jsx)(d.p,{children:"Run the linter after making changes:"}),"\n",(0,b.jsx)(d.pre,{children:(0,b.jsx)(d.code,{children:'1. write_file({ ... })\n2. linter({ paths: ["src/changed-file.ts"] })\n3. Fix any errors\n'})}),"\n",(0,b.jsx)(d.h3,{children:"4. Use Background for Long Processes"}),"\n",(0,b.jsx)(d.p,{children:"Don't block the chat with long-running commands:"}),"\n",(0,b.jsx)(d.pre,{children:(0,b.jsx)(d.code,{children:'# Start dev server\nbash({ command: "npm run dev", background: true })\n\n# Check output later\nbash({ id: "...", tail: 20 })\n'})}),"\n",(0,b.jsx)(d.h2,{children:"Extending Tools"}),"\n",(0,b.jsx)(d.p,{children:"Tools are extensible through the agent's skill system. Create custom workflows by combining tools with skills."}),"\n",(0,b.jsxs)(d.p,{children:["See ",(0,b.jsx)(d.a,{href:"/docs/skills",children:"Agent Skills"})," for more information."]})]})}function e(a={}){let{wrapper:f}={...(0,c.useMDXComponents)(),...a.components};return f?(0,b.jsx)(f,{...a,children:(0,b.jsx)(d,{...a})}):d(a)}a.s(["default",()=>e])}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__f764bebe._.js.map
@@ -1 +1 @@
1
- <!DOCTYPE html><!--4Qd7gbyP_9Akkkk8I1vrs--><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/2473c16c0c2f6b5f.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/chunks/af22745850132107.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/651e187cc15d66de.js"/><script src="/_next/static/chunks/b9ad1584d4e11d12.js" async=""></script><script src="/_next/static/chunks/a14243261b055626.js" async=""></script><script src="/_next/static/chunks/186e0c1b3ff43c9c.js" async=""></script><script src="/_next/static/chunks/862ced58ce21a270.js" async=""></script><script src="/_next/static/chunks/turbopack-597558bb7b6982f6.js" async=""></script><script src="/_next/static/chunks/2110d26bc24ed542.js" async=""></script><script src="/_next/static/chunks/9b5512fb633ef95d.js" async=""></script><script src="/_next/static/chunks/0f1cf11540868e42.js" async=""></script><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><title>404: This page could not be found.</title><meta name="theme-color" media="(prefers-color-scheme: light)" content="#ffffff"/><meta name="theme-color" media="(prefers-color-scheme: dark)" content="#0a0a0a"/><title>SparkeCoder - AI-Powered Coding Agent</title><meta name="description" content="SparkeCoder is your AI-powered coding assistant. Build, debug, and ship code faster with intelligent automation and natural language programming."/><meta name="author" content="SparkeCoder Team"/><link rel="manifest" href="/manifest.json"/><meta name="keywords" content="AI coding assistant,code automation,AI programming,developer tools,coding agent,SparkeCoder,AI pair programming"/><meta name="creator" content="SparkeCoder"/><meta name="publisher" content="SparkeCoder"/><meta name="robots" content="index, follow"/><meta name="googlebot" content="index, follow, max-video-preview:-1, max-image-preview:large, max-snippet:-1"/><meta name="category" content="technology"/><meta name="format-detection" content="telephone=no"/><meta name="mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-title" content="SparkeCoder"/><meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"/><meta property="og:title" content="SparkeCoder - AI-Powered Coding Agent"/><meta property="og:description" content="Build, debug, and ship code faster with intelligent AI automation and natural language programming."/><meta property="og:site_name" content="SparkeCoder"/><meta property="og:locale" content="en_US"/><meta property="og:image" content="http://localhost:3001/opengraph-image.png?opengraph-image.ce342317.png"/><meta property="og:image:width" content="512"/><meta property="og:image:height" content="512"/><meta property="og:image:type" content="image/png"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="SparkeCoder - AI-Powered Coding Agent"/><meta name="twitter:description" content="Build, debug, and ship code faster with intelligent AI automation and natural language programming."/><meta name="twitter:image" content="http://localhost:3001/twitter-image.png?twitter-image.ce342317.png"/><meta name="twitter:image:width" content="512"/><meta name="twitter:image:height" content="512"/><meta name="twitter:image:type" content="image/png"/><link rel="icon" href="/favicon.ico?favicon.e3cbed1b.ico" sizes="256x256" type="image/x-icon"/><link rel="icon" href="/icon.png?icon.fdefec0f.png" sizes="32x32" type="image/png"/><link rel="apple-touch-icon" href="/apple-icon.png?apple-icon.d6d14cbd.png" sizes="180x180" type="image/png"/><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body class="geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable antialiased"><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/651e187cc15d66de.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[760800,[\"/_next/static/chunks/2110d26bc24ed542.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/2473c16c0c2f6b5f.css\",\"style\"]\n:HL[\"/_next/static/chunks/af22745850132107.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"4Qd7gbyP-9Akkkk8I1vrs\",\"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/2473c16c0c2f6b5f.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/af22745850132107.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/2110d26bc24ed542.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><!--bk6IEoUxuLyCjrNYkiMkB--><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/2473c16c0c2f6b5f.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/chunks/af22745850132107.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/651e187cc15d66de.js"/><script src="/_next/static/chunks/b9ad1584d4e11d12.js" async=""></script><script src="/_next/static/chunks/a14243261b055626.js" async=""></script><script src="/_next/static/chunks/186e0c1b3ff43c9c.js" async=""></script><script src="/_next/static/chunks/862ced58ce21a270.js" async=""></script><script src="/_next/static/chunks/turbopack-597558bb7b6982f6.js" async=""></script><script src="/_next/static/chunks/2110d26bc24ed542.js" async=""></script><script src="/_next/static/chunks/9b5512fb633ef95d.js" async=""></script><script src="/_next/static/chunks/0f1cf11540868e42.js" async=""></script><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><title>404: This page could not be found.</title><meta name="theme-color" media="(prefers-color-scheme: light)" content="#ffffff"/><meta name="theme-color" media="(prefers-color-scheme: dark)" content="#0a0a0a"/><title>SparkeCoder - AI-Powered Coding Agent</title><meta name="description" content="SparkeCoder is your AI-powered coding assistant. Build, debug, and ship code faster with intelligent automation and natural language programming."/><meta name="author" content="SparkeCoder Team"/><link rel="manifest" href="/manifest.json"/><meta name="keywords" content="AI coding assistant,code automation,AI programming,developer tools,coding agent,SparkeCoder,AI pair programming"/><meta name="creator" content="SparkeCoder"/><meta name="publisher" content="SparkeCoder"/><meta name="robots" content="index, follow"/><meta name="googlebot" content="index, follow, max-video-preview:-1, max-image-preview:large, max-snippet:-1"/><meta name="category" content="technology"/><meta name="format-detection" content="telephone=no"/><meta name="mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-title" content="SparkeCoder"/><meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"/><meta property="og:title" content="SparkeCoder - AI-Powered Coding Agent"/><meta property="og:description" content="Build, debug, and ship code faster with intelligent AI automation and natural language programming."/><meta property="og:site_name" content="SparkeCoder"/><meta property="og:locale" content="en_US"/><meta property="og:image" content="http://localhost:3001/opengraph-image.png?opengraph-image.ce342317.png"/><meta property="og:image:width" content="512"/><meta property="og:image:height" content="512"/><meta property="og:image:type" content="image/png"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="SparkeCoder - AI-Powered Coding Agent"/><meta name="twitter:description" content="Build, debug, and ship code faster with intelligent AI automation and natural language programming."/><meta name="twitter:image" content="http://localhost:3001/twitter-image.png?twitter-image.ce342317.png"/><meta name="twitter:image:width" content="512"/><meta name="twitter:image:height" content="512"/><meta name="twitter:image:type" content="image/png"/><link rel="icon" href="/favicon.ico?favicon.e3cbed1b.ico" sizes="256x256" type="image/x-icon"/><link rel="icon" href="/icon.png?icon.fdefec0f.png" sizes="32x32" type="image/png"/><link rel="apple-touch-icon" href="/apple-icon.png?apple-icon.d6d14cbd.png" sizes="180x180" type="image/png"/><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body class="geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable antialiased"><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/651e187cc15d66de.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[760800,[\"/_next/static/chunks/2110d26bc24ed542.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/2473c16c0c2f6b5f.css\",\"style\"]\n:HL[\"/_next/static/chunks/af22745850132107.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"bk6IEoUxuLyCjrNYkiMkB\",\"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/2473c16c0c2f6b5f.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/af22745850132107.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/2110d26bc24ed542.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><!--4Qd7gbyP_9Akkkk8I1vrs--><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/b9ad1584d4e11d12.js" async=""></script><script src="/_next/static/chunks/a14243261b055626.js" async=""></script><script src="/_next/static/chunks/186e0c1b3ff43c9c.js" async=""></script><script src="/_next/static/chunks/862ced58ce21a270.js" async=""></script><script src="/_next/static/chunks/turbopack-597558bb7b6982f6.js" async=""></script><script src="/_next/static/chunks/9b5512fb633ef95d.js" async=""></script><script src="/_next/static/chunks/0f1cf11540868e42.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: Internal Server Error.</title><link rel="icon" href="/favicon.ico?favicon.e3cbed1b.ico" sizes="256x256" type="image/x-icon"/><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}
2
- @media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/651e187cc15d66de.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[488287,[\"/_next/static/chunks/9b5512fb633ef95d.js\",\"/_next/static/chunks/0f1cf11540868e42.js\"],\"default\"]\n3:I[174895,[\"/_next/static/chunks/9b5512fb633ef95d.js\",\"/_next/static/chunks/0f1cf11540868e42.js\"],\"default\"]\n4:I[151858,[\"/_next/static/chunks/9b5512fb633ef95d.js\",\"/_next/static/chunks/0f1cf11540868e42.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n7:I[151858,[\"/_next/static/chunks/9b5512fb633ef95d.js\",\"/_next/static/chunks/0f1cf11540868e42.js\"],\"ViewportBoundary\"]\n9:I[151858,[\"/_next/static/chunks/9b5512fb633ef95d.js\",\"/_next/static/chunks/0f1cf11540868e42.js\"],\"MetadataBoundary\"]\nb:I[552576,[\"/_next/static/chunks/9b5512fb633ef95d.js\",\"/_next/static/chunks/0f1cf11540868e42.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"4Qd7gbyP-9Akkkk8I1vrs\",\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"title\",null,{\"children\":\"500: Internal Server Error.\"}]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"lineHeight\":\"48px\"},\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}\\n@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"paddingRight\":23,\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\"},\"children\":\"500\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"28px\"},\"children\":\"Internal Server Error.\"}]}]]}]}]}]]}],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L7\",null,{\"children\":\"$L8\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L9\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$La\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$b\",\"$undefined\"],\"S\":true}\n"])</script><script>self.__next_f.push([1,"8:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"c:I[349310,[\"/_next/static/chunks/9b5512fb633ef95d.js\",\"/_next/static/chunks/0f1cf11540868e42.js\"],\"IconMark\"]\n6:null\na:[[\"$\",\"link\",\"0\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.e3cbed1b.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"$Lc\",\"1\",{}]]\n"])</script></body></html>
1
+ <!DOCTYPE html><!--bk6IEoUxuLyCjrNYkiMkB--><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/b9ad1584d4e11d12.js" async=""></script><script src="/_next/static/chunks/a14243261b055626.js" async=""></script><script src="/_next/static/chunks/186e0c1b3ff43c9c.js" async=""></script><script src="/_next/static/chunks/862ced58ce21a270.js" async=""></script><script src="/_next/static/chunks/turbopack-597558bb7b6982f6.js" async=""></script><script src="/_next/static/chunks/9b5512fb633ef95d.js" async=""></script><script src="/_next/static/chunks/0f1cf11540868e42.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: Internal Server Error.</title><link rel="icon" href="/favicon.ico?favicon.e3cbed1b.ico" sizes="256x256" type="image/x-icon"/><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}
2
+ @media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/651e187cc15d66de.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[488287,[\"/_next/static/chunks/9b5512fb633ef95d.js\",\"/_next/static/chunks/0f1cf11540868e42.js\"],\"default\"]\n3:I[174895,[\"/_next/static/chunks/9b5512fb633ef95d.js\",\"/_next/static/chunks/0f1cf11540868e42.js\"],\"default\"]\n4:I[151858,[\"/_next/static/chunks/9b5512fb633ef95d.js\",\"/_next/static/chunks/0f1cf11540868e42.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n7:I[151858,[\"/_next/static/chunks/9b5512fb633ef95d.js\",\"/_next/static/chunks/0f1cf11540868e42.js\"],\"ViewportBoundary\"]\n9:I[151858,[\"/_next/static/chunks/9b5512fb633ef95d.js\",\"/_next/static/chunks/0f1cf11540868e42.js\"],\"MetadataBoundary\"]\nb:I[552576,[\"/_next/static/chunks/9b5512fb633ef95d.js\",\"/_next/static/chunks/0f1cf11540868e42.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"bk6IEoUxuLyCjrNYkiMkB\",\"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\": \"eWKI0VMayFvx0ejmg86BY8my1zqxWvZyYIt+sAXX2PY=\"\n}"
1
+ self.__RSC_SERVER_MANIFEST="{\n \"node\": {},\n \"edge\": {},\n \"encryptionKey\": \"k0OVgNmT9n3rUZoi/xWXZRRFyGpCutCQgE2SMpiu3BI=\"\n}"
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "node": {},
3
3
  "edge": {},
4
- "encryptionKey": "eWKI0VMayFvx0ejmg86BY8my1zqxWvZyYIt+sAXX2PY="
4
+ "encryptionKey": "k0OVgNmT9n3rUZoi/xWXZRRFyGpCutCQgE2SMpiu3BI="
5
5
  }