1 line
6.3 KiB
JavaScript
1 line
6.3 KiB
JavaScript
"use strict";(globalThis.webpackChunkproject_public_docs=globalThis.webpackChunkproject_public_docs||[]).push([[413],{6785(e,r,t){t.r(r),t.d(r,{assets:()=>c,contentTitle:()=>i,default:()=>a,frontMatter:()=>d,metadata:()=>n,toc:()=>l});const n=JSON.parse('{"id":"overview","title":"CmdForge Overview","description":"A lightweight personal tool builder for AI-powered CLI commands.","source":"@site/docs/overview.md","sourceDirName":".","slug":"/","permalink":"/rob/CmdForge/","draft":false,"unlisted":false,"tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"slug":"/","sidebar_position":1},"sidebar":"docs","next":{"title":"CmdForge Architecture","permalink":"/rob/CmdForge/architecture"}}');var o=t(4848),s=t(8453);const d={slug:"/",sidebar_position:1},i="CmdForge Overview",c={},l=[{value:"Project Links",id:"project-links",level:2},{value:"Components",id:"components",level:2},{value:"Key Directories",id:"key-directories",level:2},{value:"Development (AI-Server)",id:"development-ai-server",level:3},{value:"Production (OpenMediaVault)",id:"production-openmediavault",level:3},{value:"Recent Changes",id:"recent-changes",level:2}];function h(e){const r={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,s.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(r.header,{children:(0,o.jsx)(r.h1,{id:"cmdforge-overview",children:"CmdForge Overview"})}),"\n",(0,o.jsx)(r.p,{children:"A lightweight personal tool builder for AI-powered CLI commands."}),"\n",(0,o.jsx)(r.h2,{id:"project-links",children:"Project Links"}),"\n",(0,o.jsxs)(r.table,{children:[(0,o.jsx)(r.thead,{children:(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.th,{children:"Resource"}),(0,o.jsx)(r.th,{children:"URL"})]})}),(0,o.jsxs)(r.tbody,{children:[(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:(0,o.jsx)(r.strong,{children:"Public Website"})}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://cmdforge.brrd.tech/",children:"https://cmdforge.brrd.tech/"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:(0,o.jsx)(r.strong,{children:"Git Repository"})}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://gitea.brrd.tech/rob/CmdForge",children:"https://gitea.brrd.tech/rob/CmdForge"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:(0,o.jsx)(r.strong,{children:"Registry Repo"})}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://gitea.brrd.tech/rob/CmdForge-Registry",children:"https://gitea.brrd.tech/rob/CmdForge-Registry"})})]})]})]}),"\n",(0,o.jsx)(r.h2,{id:"components",children:"Components"}),"\n",(0,o.jsx)(r.pre,{children:(0,o.jsx)(r.code,{children:"\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502 CmdForge \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 CLI Tool \u2502 Web UI \u2502 Registry \u2502\n\u2502 (cmdforge) \u2502 (Flask) \u2502 (API + DB) \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 Local install \u2502 cmdforge.brrd. \u2502 Tool publishing \u2502\n\u2502 ~/.cmdforge/ \u2502 tech \u2502 Search, download \u2502\n\u2502 ~/.local/bin/ \u2502 \u2502 User accounts \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n"})}),"\n",(0,o.jsx)(r.h2,{id:"key-directories",children:"Key Directories"}),"\n",(0,o.jsx)(r.h3,{id:"development-ai-server",children:"Development (AI-Server)"}),"\n",(0,o.jsx)(r.pre,{children:(0,o.jsx)(r.code,{children:"~/PycharmProjects/CmdForge/ # Source code\n~/.cmdforge/ # Local tools storage\n~/.local/bin/cmdforge # CLI symlink\n"})}),"\n",(0,o.jsx)(r.h3,{id:"production-openmediavault",children:"Production (OpenMediaVault)"}),"\n",(0,o.jsx)(r.pre,{children:(0,o.jsx)(r.code,{children:"/srv/mergerfs/data_pool/home/rob/cmdforge-registry/ # Deployed code\n/tmp/cmdforge-data/ # Runtime database\n"})}),"\n",(0,o.jsx)(r.h2,{id:"recent-changes",children:"Recent Changes"}),"\n",(0,o.jsxs)(r.ul,{children:["\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"2026-01-03"}),": Migrated from SmartTools to CmdForge"]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"2026-01-03"}),": Added source field support for Fabric imports"]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"2026-01-03"}),": Created systemd service for web UI"]}),"\n"]})]})}function a(e={}){const{wrapper:r}={...(0,s.R)(),...e.components};return r?(0,o.jsx)(r,{...e,children:(0,o.jsx)(h,{...e})}):h(e)}},8453(e,r,t){t.d(r,{R:()=>d,x:()=>i});var n=t(6540);const o={},s=n.createContext(o);function d(e){const r=n.useContext(s);return n.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:d(e.components),n.createElement(s.Provider,{value:r},e.children)}}}]); |