kanbaii 0.3.9 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dashboard/404.html +1 -1
- package/dashboard/index.html +1 -1
- package/dashboard/index.txt +1 -1
- package/dist/cli/index.js +1 -1
- package/dist/server/services/mcpConfig.js +6 -1
- package/dist/server/services/terminalManager.js +55 -7
- package/package.json +3 -2
- /package/dashboard/_next/static/{lhDcYC6hQiy79Fnp_eZqW → k3eq3Vr89K2vwr7X2Gdl2}/_buildManifest.js +0 -0
- /package/dashboard/_next/static/{lhDcYC6hQiy79Fnp_eZqW → k3eq3Vr89K2vwr7X2Gdl2}/_ssgManifest.js +0 -0
package/dashboard/404.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/735f5195647c6b5c.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-5c1d03322d6ecf76.js"/><script src="/_next/static/chunks/fd9d1056-1f1f859026f5f0fa.js" async=""></script><script src="/_next/static/chunks/117-749dc8b5f56031ab.js" async=""></script><script src="/_next/static/chunks/main-app-2f313c3206a6e049.js" async=""></script><script src="/_next/static/chunks/184-15d72b1991c86ab9.js" async=""></script><script src="/_next/static/chunks/23-4a72ba4a90f008a6.js" async=""></script><script src="/_next/static/chunks/app/layout-ccc8d24485f54bd6.js" async=""></script><meta name="robots" content="noindex"/><meta name="theme-color" content="#6366f1"/><title>KANBAII</title><meta name="description" content="Structure for your ideas. AI to move them forward."/><link rel="manifest" href="/manifest.json" crossorigin="use-credentials"/><link rel="icon" href="/favicon.svg" type="image/svg+xml"/><link rel="icon" href="/favicon-16x16.svg" sizes="16x16" type="image/svg+xml"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><script src="/_next/static/chunks/webpack-5c1d03322d6ecf76.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/css/735f5195647c6b5c.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"2:I[2846,[],\"\"]\n4:I[4707,[],\"\"]\n5:I[6423,[],\"\"]\n6:I[792,[\"184\",\"static/chunks/184-15d72b1991c86ab9.js\",\"23\",\"static/chunks/23-4a72ba4a90f008a6.js\",\"185\",\"static/chunks/app/layout-ccc8d24485f54bd6.js\"],\"AppShell\"]\nc:I[1060,[],\"\"]\n7:{\"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\"}\n8:{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"}\n9:{\"display\":\"inline-block\"}\na:{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0}\nd:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L2\",null,{\"buildId\":\"
|
|
1
|
+
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/735f5195647c6b5c.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-5c1d03322d6ecf76.js"/><script src="/_next/static/chunks/fd9d1056-1f1f859026f5f0fa.js" async=""></script><script src="/_next/static/chunks/117-749dc8b5f56031ab.js" async=""></script><script src="/_next/static/chunks/main-app-2f313c3206a6e049.js" async=""></script><script src="/_next/static/chunks/184-15d72b1991c86ab9.js" async=""></script><script src="/_next/static/chunks/23-4a72ba4a90f008a6.js" async=""></script><script src="/_next/static/chunks/app/layout-ccc8d24485f54bd6.js" async=""></script><meta name="robots" content="noindex"/><meta name="theme-color" content="#6366f1"/><title>KANBAII</title><meta name="description" content="Structure for your ideas. AI to move them forward."/><link rel="manifest" href="/manifest.json" crossorigin="use-credentials"/><link rel="icon" href="/favicon.svg" type="image/svg+xml"/><link rel="icon" href="/favicon-16x16.svg" sizes="16x16" type="image/svg+xml"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><script src="/_next/static/chunks/webpack-5c1d03322d6ecf76.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/css/735f5195647c6b5c.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"2:I[2846,[],\"\"]\n4:I[4707,[],\"\"]\n5:I[6423,[],\"\"]\n6:I[792,[\"184\",\"static/chunks/184-15d72b1991c86ab9.js\",\"23\",\"static/chunks/23-4a72ba4a90f008a6.js\",\"185\",\"static/chunks/app/layout-ccc8d24485f54bd6.js\"],\"AppShell\"]\nc:I[1060,[],\"\"]\n7:{\"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\"}\n8:{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"}\n9:{\"display\":\"inline-block\"}\na:{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0}\nd:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L2\",null,{\"buildId\":\"k3eq3Vr89K2vwr7X2Gdl2\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"_not-found\"],\"initialTree\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{},[[\"$L3\",[[\"$\",\"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.\"}]}]]}]}]],null],null],null]},[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"/_not-found\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/735f5195647c6b5c.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"children\":[\"$\",\"$L6\",null,{\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$7\",\"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\":\"$8\",\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":\"$9\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$a\",\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]}]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],\"$Lb\"],\"globalErrorComponent\":\"$c\",\"missingSlots\":\"$Wd\"}]\n"])</script><script>self.__next_f.push([1,"b:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"name\":\"theme-color\",\"content\":\"#6366f1\"}],[\"$\",\"meta\",\"2\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"3\",{\"children\":\"KANBAII\"}],[\"$\",\"meta\",\"4\",{\"name\":\"description\",\"content\":\"Structure for your ideas. AI to move them forward.\"}],[\"$\",\"link\",\"5\",{\"rel\":\"manifest\",\"href\":\"/manifest.json\",\"crossOrigin\":\"use-credentials\"}],[\"$\",\"link\",\"6\",{\"rel\":\"icon\",\"href\":\"/favicon.svg\",\"type\":\"image/svg+xml\"}],[\"$\",\"link\",\"7\",{\"rel\":\"icon\",\"href\":\"/favicon-16x16.svg\",\"sizes\":\"16x16\",\"type\":\"image/svg+xml\"}]]\n3:null\n"])</script></body></html>
|
package/dashboard/index.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/735f5195647c6b5c.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-5c1d03322d6ecf76.js"/><script src="/_next/static/chunks/fd9d1056-1f1f859026f5f0fa.js" async=""></script><script src="/_next/static/chunks/117-749dc8b5f56031ab.js" async=""></script><script src="/_next/static/chunks/main-app-2f313c3206a6e049.js" async=""></script><script src="/_next/static/chunks/184-15d72b1991c86ab9.js" async=""></script><script src="/_next/static/chunks/759-3d8fc7952548ec08.js" async=""></script><script src="/_next/static/chunks/23-4a72ba4a90f008a6.js" async=""></script><script src="/_next/static/chunks/app/page-7b3ca7e8c5d980ab.js" async=""></script><script src="/_next/static/chunks/app/layout-ccc8d24485f54bd6.js" async=""></script><meta name="theme-color" content="#6366f1"/><title>KANBAII</title><meta name="description" content="Structure for your ideas. AI to move them forward."/><link rel="manifest" href="/manifest.json" crossorigin="use-credentials"/><link rel="icon" href="/favicon.svg" type="image/svg+xml"/><link rel="icon" href="/favicon-16x16.svg" sizes="16x16" type="image/svg+xml"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><script src="/_next/static/chunks/webpack-5c1d03322d6ecf76.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/css/735f5195647c6b5c.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"2:I[2846,[],\"\"]\n4:I[9107,[],\"ClientPageRoot\"]\n5:I[2039,[\"184\",\"static/chunks/184-15d72b1991c86ab9.js\",\"759\",\"static/chunks/759-3d8fc7952548ec08.js\",\"23\",\"static/chunks/23-4a72ba4a90f008a6.js\",\"931\",\"static/chunks/app/page-7b3ca7e8c5d980ab.js\"],\"default\",1]\n6:I[792,[\"184\",\"static/chunks/184-15d72b1991c86ab9.js\",\"23\",\"static/chunks/23-4a72ba4a90f008a6.js\",\"185\",\"static/chunks/app/layout-ccc8d24485f54bd6.js\"],\"AppShell\"]\n7:I[4707,[],\"\"]\n8:I[6423,[],\"\"]\na:I[1060,[],\"\"]\nb:[]\n0:[\"$\",\"$L2\",null,{\"buildId\":\"
|
|
1
|
+
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/735f5195647c6b5c.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-5c1d03322d6ecf76.js"/><script src="/_next/static/chunks/fd9d1056-1f1f859026f5f0fa.js" async=""></script><script src="/_next/static/chunks/117-749dc8b5f56031ab.js" async=""></script><script src="/_next/static/chunks/main-app-2f313c3206a6e049.js" async=""></script><script src="/_next/static/chunks/184-15d72b1991c86ab9.js" async=""></script><script src="/_next/static/chunks/759-3d8fc7952548ec08.js" async=""></script><script src="/_next/static/chunks/23-4a72ba4a90f008a6.js" async=""></script><script src="/_next/static/chunks/app/page-7b3ca7e8c5d980ab.js" async=""></script><script src="/_next/static/chunks/app/layout-ccc8d24485f54bd6.js" async=""></script><meta name="theme-color" content="#6366f1"/><title>KANBAII</title><meta name="description" content="Structure for your ideas. AI to move them forward."/><link rel="manifest" href="/manifest.json" crossorigin="use-credentials"/><link rel="icon" href="/favicon.svg" type="image/svg+xml"/><link rel="icon" href="/favicon-16x16.svg" sizes="16x16" type="image/svg+xml"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><script src="/_next/static/chunks/webpack-5c1d03322d6ecf76.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/css/735f5195647c6b5c.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"2:I[2846,[],\"\"]\n4:I[9107,[],\"ClientPageRoot\"]\n5:I[2039,[\"184\",\"static/chunks/184-15d72b1991c86ab9.js\",\"759\",\"static/chunks/759-3d8fc7952548ec08.js\",\"23\",\"static/chunks/23-4a72ba4a90f008a6.js\",\"931\",\"static/chunks/app/page-7b3ca7e8c5d980ab.js\"],\"default\",1]\n6:I[792,[\"184\",\"static/chunks/184-15d72b1991c86ab9.js\",\"23\",\"static/chunks/23-4a72ba4a90f008a6.js\",\"185\",\"static/chunks/app/layout-ccc8d24485f54bd6.js\"],\"AppShell\"]\n7:I[4707,[],\"\"]\n8:I[6423,[],\"\"]\na:I[1060,[],\"\"]\nb:[]\n0:[\"$\",\"$L2\",null,{\"buildId\":\"k3eq3Vr89K2vwr7X2Gdl2\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"\"],\"initialTree\":[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"__PAGE__\",{},[[\"$L3\",[\"$\",\"$L4\",null,{\"props\":{\"params\":{},\"searchParams\":{}},\"Component\":\"$5\"}],null],null],null]},[[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/735f5195647c6b5c.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"children\":[\"$\",\"$L6\",null,{\"children\":[\"$\",\"$L7\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L8\",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\",\"pad"])</script><script>self.__next_f.push([1,"ding\":\"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.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]}]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[null,\"$L9\"],\"globalErrorComponent\":\"$a\",\"missingSlots\":\"$Wb\"}]\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"name\":\"theme-color\",\"content\":\"#6366f1\"}],[\"$\",\"meta\",\"2\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"3\",{\"children\":\"KANBAII\"}],[\"$\",\"meta\",\"4\",{\"name\":\"description\",\"content\":\"Structure for your ideas. AI to move them forward.\"}],[\"$\",\"link\",\"5\",{\"rel\":\"manifest\",\"href\":\"/manifest.json\",\"crossOrigin\":\"use-credentials\"}],[\"$\",\"link\",\"6\",{\"rel\":\"icon\",\"href\":\"/favicon.svg\",\"type\":\"image/svg+xml\"}],[\"$\",\"link\",\"7\",{\"rel\":\"icon\",\"href\":\"/favicon-16x16.svg\",\"sizes\":\"16x16\",\"type\":\"image/svg+xml\"}]]\n3:null\n"])</script></body></html>
|
package/dashboard/index.txt
CHANGED
|
@@ -3,6 +3,6 @@
|
|
|
3
3
|
4:I[792,["184","static/chunks/184-15d72b1991c86ab9.js","23","static/chunks/23-4a72ba4a90f008a6.js","185","static/chunks/app/layout-ccc8d24485f54bd6.js"],"AppShell"]
|
|
4
4
|
5:I[4707,[],""]
|
|
5
5
|
6:I[6423,[],""]
|
|
6
|
-
0:["
|
|
6
|
+
0:["k3eq3Vr89K2vwr7X2Gdl2",[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],["",{"children":["__PAGE__",{},[["$L1",["$","$L2",null,{"props":{"params":{},"searchParams":{}},"Component":"$3"}],null],null],null]},[[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/735f5195647c6b5c.css","precedence":"next","crossOrigin":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"children":["$","$L4",null,{"children":["$","$L5",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",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."}]}]]}]}]],"notFoundStyles":[]}]}]}]}]],null],null],["$L7",null]]]]
|
|
7
7
|
7:[["$","meta","0",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","1",{"name":"theme-color","content":"#6366f1"}],["$","meta","2",{"charSet":"utf-8"}],["$","title","3",{"children":"KANBAII"}],["$","meta","4",{"name":"description","content":"Structure for your ideas. AI to move them forward."}],["$","link","5",{"rel":"manifest","href":"/manifest.json","crossOrigin":"use-credentials"}],["$","link","6",{"rel":"icon","href":"/favicon.svg","type":"image/svg+xml"}],["$","link","7",{"rel":"icon","href":"/favicon-16x16.svg","sizes":"16x16","type":"image/svg+xml"}]]
|
|
8
8
|
1:null
|
package/dist/cli/index.js
CHANGED
|
@@ -13,7 +13,7 @@ const path_1 = __importDefault(require("path"));
|
|
|
13
13
|
const fs_1 = __importDefault(require("fs"));
|
|
14
14
|
// Check for updates (runs in background, shows banner on next run)
|
|
15
15
|
const pkg = JSON.parse(fs_1.default.readFileSync(path_1.default.join(__dirname, '..', '..', 'package.json'), 'utf-8'));
|
|
16
|
-
(0, update_notifier_1.default)({ pkg, updateCheckInterval: 1000 * 60 * 60 *
|
|
16
|
+
(0, update_notifier_1.default)({ pkg, updateCheckInterval: 1000 * 60 * 60 * 24 }).notify();
|
|
17
17
|
const program = new commander_1.Command();
|
|
18
18
|
program
|
|
19
19
|
.name('kanbaii')
|
|
@@ -13,8 +13,10 @@ exports.getPresets = getPresets;
|
|
|
13
13
|
exports.testServer = testServer;
|
|
14
14
|
exports.generateMcpConfigForClaude = generateMcpConfigForClaude;
|
|
15
15
|
const fs_1 = __importDefault(require("fs"));
|
|
16
|
+
const os_1 = __importDefault(require("os"));
|
|
16
17
|
const path_1 = __importDefault(require("path"));
|
|
17
18
|
const DATA_DIR = path_1.default.resolve(process.env.KANBAII_DATA_DIR || path_1.default.join(process.cwd(), 'data', 'projects'));
|
|
19
|
+
const KANBAII_ROOT = path_1.default.resolve(__dirname, '..', '..', '..');
|
|
18
20
|
const CONFIG_FILE = path_1.default.join(DATA_DIR, '..', '.mcp-config.json');
|
|
19
21
|
function ensureFile() {
|
|
20
22
|
const dir = path_1.default.dirname(CONFIG_FILE);
|
|
@@ -167,7 +169,10 @@ function generateMcpConfigForClaude(onlyKanbaii = true) {
|
|
|
167
169
|
};
|
|
168
170
|
}
|
|
169
171
|
}
|
|
170
|
-
const
|
|
172
|
+
const runtimeDir = path_1.default.join(os_1.default.tmpdir(), 'kanbaii');
|
|
173
|
+
if (!fs_1.default.existsSync(runtimeDir))
|
|
174
|
+
fs_1.default.mkdirSync(runtimeDir, { recursive: true });
|
|
175
|
+
const tmpFile = path_1.default.join(runtimeDir, onlyKanbaii ? '.mcp-runtime-minimal.json' : '.mcp-runtime.json');
|
|
171
176
|
fs_1.default.writeFileSync(tmpFile, JSON.stringify({ mcpServers: mcpConfig }, null, 2), 'utf-8');
|
|
172
177
|
return tmpFile;
|
|
173
178
|
}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.getSessionState = getSessionState;
|
|
4
7
|
exports.spawnPty = spawnPty;
|
|
@@ -7,7 +10,8 @@ exports.resizeTerminal = resizeTerminal;
|
|
|
7
10
|
exports.killSession = killSession;
|
|
8
11
|
exports.resetSession = resetSession;
|
|
9
12
|
const typedEmit_1 = require("../lib/typedEmit");
|
|
10
|
-
const
|
|
13
|
+
const fs_1 = __importDefault(require("fs"));
|
|
14
|
+
const path_1 = __importDefault(require("path"));
|
|
11
15
|
let pty = null;
|
|
12
16
|
try {
|
|
13
17
|
pty = require('node-pty');
|
|
@@ -15,6 +19,47 @@ try {
|
|
|
15
19
|
catch {
|
|
16
20
|
console.warn('[terminal] node-pty not available');
|
|
17
21
|
}
|
|
22
|
+
/**
|
|
23
|
+
* Write a .mcp.json in the project's workingDir so Claude auto-discovers
|
|
24
|
+
* KANBAII's MCP server. Removed on session kill.
|
|
25
|
+
*/
|
|
26
|
+
function ensureProjectMcp(workingDir) {
|
|
27
|
+
const mcpPath = path_1.default.join(workingDir, '.mcp.json');
|
|
28
|
+
if (fs_1.default.existsSync(mcpPath))
|
|
29
|
+
return; // don't overwrite user's existing config
|
|
30
|
+
const kanbaiiMcpServer = path_1.default.resolve(__dirname, '..', 'mcp', 'kanbaii-mcp-server.js');
|
|
31
|
+
if (!fs_1.default.existsSync(kanbaiiMcpServer))
|
|
32
|
+
return;
|
|
33
|
+
const config = {
|
|
34
|
+
mcpServers: {
|
|
35
|
+
kanbaii: {
|
|
36
|
+
command: 'node',
|
|
37
|
+
args: [kanbaiiMcpServer],
|
|
38
|
+
env: {
|
|
39
|
+
KANBAII_PORT: process.env.KANBAII_PORT || '5555',
|
|
40
|
+
KANBAII_HOST: 'localhost',
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
};
|
|
45
|
+
try {
|
|
46
|
+
fs_1.default.writeFileSync(mcpPath, JSON.stringify(config, null, 2), 'utf-8');
|
|
47
|
+
}
|
|
48
|
+
catch { /* silent — non-critical */ }
|
|
49
|
+
}
|
|
50
|
+
function cleanupProjectMcp(workingDir) {
|
|
51
|
+
const mcpPath = path_1.default.join(workingDir, '.mcp.json');
|
|
52
|
+
try {
|
|
53
|
+
if (!fs_1.default.existsSync(mcpPath))
|
|
54
|
+
return;
|
|
55
|
+
const content = JSON.parse(fs_1.default.readFileSync(mcpPath, 'utf-8'));
|
|
56
|
+
// Only remove if it's ours (has kanbaii server and nothing else)
|
|
57
|
+
if (content?.mcpServers?.kanbaii && Object.keys(content.mcpServers).length === 1) {
|
|
58
|
+
fs_1.default.unlinkSync(mcpPath);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
catch { /* silent */ }
|
|
62
|
+
}
|
|
18
63
|
const sessions = new Map();
|
|
19
64
|
function stripAnsi(str) {
|
|
20
65
|
return str.replace(/\x1B\[[0-9;]*[a-zA-Z]/g, '');
|
|
@@ -37,9 +82,9 @@ function spawnPty(projectSlug, workingDir, opts) {
|
|
|
37
82
|
const shell = isWindows ? 'cmd.exe' : '/bin/bash';
|
|
38
83
|
const validModels = ['opus', 'sonnet', 'haiku'];
|
|
39
84
|
const model = opts?.model && validModels.includes(opts.model) ? opts.model : undefined;
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
const claudeCmd = `claude${model ? ` --model ${model}` : ''}
|
|
85
|
+
// Drop .mcp.json in project dir so Claude auto-discovers KANBAII tools
|
|
86
|
+
ensureProjectMcp(workingDir);
|
|
87
|
+
const claudeCmd = `claude${model ? ` --model ${model}` : ''}`;
|
|
43
88
|
const shellArgs = isWindows ? ['/c', claudeCmd] : ['-c', claudeCmd];
|
|
44
89
|
const cleanEnv = { ...process.env };
|
|
45
90
|
delete cleanEnv.CLAUDECODE;
|
|
@@ -77,9 +122,12 @@ function resizeTerminal(projectSlug, cols, rows) {
|
|
|
77
122
|
}
|
|
78
123
|
function killSession(projectSlug) {
|
|
79
124
|
const session = sessions.get(projectSlug);
|
|
80
|
-
if (session
|
|
81
|
-
session.
|
|
82
|
-
session.proc
|
|
125
|
+
if (session) {
|
|
126
|
+
cleanupProjectMcp(session.workingDir);
|
|
127
|
+
if (session.proc) {
|
|
128
|
+
session.proc.kill();
|
|
129
|
+
session.proc = null;
|
|
130
|
+
}
|
|
83
131
|
session.status = 'idle';
|
|
84
132
|
}
|
|
85
133
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "kanbaii",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "Visual cockpit for Claude Code. Plan visually, track progress, let AI execute. Same engine, better cockpit.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"kanban",
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
"build:cli": "tsc -p tsconfig.cli.json && node -e \"const fs=require('fs'),p=require('path');const s='src/server/mcp',d='dist/server/mcp';fs.mkdirSync(d,{recursive:true});fs.readdirSync(s).filter(f=>f.endsWith('.js')).forEach(f=>fs.copyFileSync(p.join(s,f),p.join(d,f)));\"",
|
|
57
57
|
"build:frontend": "cd frontend && npm install && npm run build && node -e \"const fs=require('fs');fs.rmSync('../dashboard',{recursive:true,force:true});fs.cpSync('out','../dashboard',{recursive:true});\"",
|
|
58
58
|
"build": "npm run build:cli && npm run build:frontend",
|
|
59
|
-
"rebuild": "npm run build:cli && npm run build:frontend && echo '✓
|
|
59
|
+
"rebuild": "npm run build:server && npm run build:cli && npm run build:frontend && echo '✓ Full rebuild done. Restart kanbaii start to see changes.'",
|
|
60
60
|
"postbuild": "node -e \"require('fs').chmodSync('dist/cli/index.js', '755')\"",
|
|
61
61
|
"prepublishOnly": "echo 'Build handled by CI'",
|
|
62
62
|
"start": "node dist/server/index.js",
|
|
@@ -70,6 +70,7 @@
|
|
|
70
70
|
"cors": "^2.8.5",
|
|
71
71
|
"express": "^4.21.0",
|
|
72
72
|
"express-rate-limit": "^8.3.1",
|
|
73
|
+
"helmet": "^8.1.0",
|
|
73
74
|
"socket.io": "^4.7.5",
|
|
74
75
|
"update-notifier": "^6.0.2",
|
|
75
76
|
"zod": "^3.25.76"
|
/package/dashboard/_next/static/{lhDcYC6hQiy79Fnp_eZqW → k3eq3Vr89K2vwr7X2Gdl2}/_buildManifest.js
RENAMED
|
File without changes
|
/package/dashboard/_next/static/{lhDcYC6hQiy79Fnp_eZqW → k3eq3Vr89K2vwr7X2Gdl2}/_ssgManifest.js
RENAMED
|
File without changes
|