@seanhogg/builderforce-agents 2026.10.8 → 2026.10.10
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/dist/{audio-preflight-hAkEddaf.js → audio-preflight-CBZJKBS8.js} +1 -1
- package/dist/build-info.json +3 -3
- package/dist/{builderforce-wxtgU9xu.js → builderforce-2EpP2M8q.js} +3 -3
- package/dist/{builderforce-BWCp-M9e.js → builderforce-Cyg20uU8.js} +3 -3
- package/dist/{builderforce-onboarding-DuUfZ6oL.js → builderforce-onboarding-C89jVb-9.js} +1 -1
- package/dist/{builderforce-onboarding-Dq6VUSKZ.js → builderforce-onboarding-D5A-wEs-.js} +1 -1
- package/dist/bundled/boot-md/handler.js +1 -1
- package/dist/bundled/session-memory/handler.js +1 -1
- package/dist/chrome-CtTMuhww.js +4 -0
- package/dist/{command-registry-D_LkOB4n.js → command-registry-CDcuHGpx.js} +1 -1
- package/dist/{command-registry-CiR8PUQY.js → command-registry-hHegQvBn.js} +1 -1
- package/dist/{completion-cli-C7munVvb.js → completion-cli-Bqr0W4L6.js} +1 -1
- package/dist/{completion-cli-CBES884A.js → completion-cli-Ch9ozmkg.js} +1 -1
- package/dist/{completion-cli-B72GX2so.js → completion-cli-Ck0FTqPT.js} +1 -1
- package/dist/{completion-cli-CijodCzU.js → completion-cli-Do4vXo1k.js} +1 -1
- package/dist/{doctor-completion-FErwMP3Y.js → doctor-completion-BjBTLcoC.js} +1 -1
- package/dist/{doctor-completion-Bv2ztEeW.js → doctor-completion-Ccs-JEvV.js} +1 -1
- package/dist/{embedded-DXDHduG1.js → embedded-BcHzh_y8.js} +6 -6
- package/dist/entry.js +1 -1
- package/dist/{gateway-cli-DpJjgVYH.js → gateway-cli-CiHNwzdS.js} +3 -3
- package/dist/{gateway-cli-U8RlUIuT.js → gateway-cli-z47dfosr.js} +3 -3
- package/dist/index.js +2 -2
- package/dist/llm-slug-generator.js +1 -1
- package/dist/{onboard-O2gyfB4L.js → onboard-D4uXN5Ec.js} +1 -1
- package/dist/{onboard-7JGHJRfj.js → onboard-cB37uVxy.js} +1 -1
- package/dist/{onboard-interactive-FWIy0HTu.js → onboard-interactive-CnXgQrpI.js} +1 -1
- package/dist/{onboard-interactive-DboEcFKf.js → onboard-interactive-CoFFuSJT.js} +1 -1
- package/dist/{onboard-interactive-Gl5J4kVC.js → onboard-interactive-gvfRcLOt.js} +1 -1
- package/dist/{onboard-interactive-DqpGicxB.js → onboard-interactive-vwqLS6pe.js} +1 -1
- package/dist/{onboarding-Ctq_bdkC.js → onboarding-B9GqKO5L.js} +2 -2
- package/dist/{onboarding-hPRXZReM.js → onboarding-DdKW5K8Y.js} +2 -2
- package/dist/{onboarding.finalize-Db6smxZL.js → onboarding.finalize-CcuO4Yxw.js} +1 -1
- package/dist/{onboarding.finalize-B4Tc4IDN.js → onboarding.finalize-D3mTpOdc.js} +1 -1
- package/dist/plugin-sdk/{accounts-Cy3WCbWg.js → accounts-BwreSNAR.js} +1 -1
- package/dist/plugin-sdk/{active-listener-DVWVNlT9.js → active-listener-DpQ7aGYd.js} +1 -1
- package/dist/plugin-sdk/{agent-scope-DgKN27hJ.js → agent-scope-BQByW0cD.js} +1 -1
- package/dist/plugin-sdk/{api-key-rotation-ftXf7mBZ.js → api-key-rotation-7YdImWrh.js} +1 -1
- package/dist/plugin-sdk/{audio-preflight-CfTmmeS-.js → audio-preflight-EbkaATDO.js} +1 -1
- package/dist/plugin-sdk/{auth-json-BrNBg87n.js → auth-json-DK6qod1_.js} +1 -1
- package/dist/plugin-sdk/{bindings-CH-YLOLC.js → bindings-CDEzl4kl.js} +1 -1
- package/dist/plugin-sdk/{channel-web-B6rg0Rbf.js → channel-web-D2KuONp0.js} +1 -1
- package/dist/plugin-sdk/{chrome-CuXP-hes.js → chrome-SOXFIkUM.js} +1 -1
- package/dist/plugin-sdk/{chunk-C94IAOuf.js → chunk-cW0POl22.js} +1 -1
- package/dist/plugin-sdk/{command-format-B3XMq_73.js → command-format-CAX9XFjI.js} +1 -1
- package/dist/plugin-sdk/{common-n0l_XN-S.js → common-BxEWhN2X.js} +1 -1
- package/dist/plugin-sdk/{config-DsXZsCkJ.js → config-v1EU9Ll8.js} +2 -2
- package/dist/plugin-sdk/{fetch-B-GxSYRO.js → fetch-DH0Y8iyO.js} +1 -1
- package/dist/plugin-sdk/index.js +1 -1
- package/dist/plugin-sdk/{login-_my8QwPP.js → login-d1zBgykF.js} +1 -1
- package/dist/plugin-sdk/{login-qr-BaePtXuG.js → login-qr-B6exvQnN.js} +1 -1
- package/dist/plugin-sdk/{manager-BsC-4ymy.js → manager-BH_bmGds.js} +1 -1
- package/dist/plugin-sdk/{markdown-tables-BUfhHgfs.js → markdown-tables-Epim9b-0.js} +1 -1
- package/dist/plugin-sdk/{message-channel-CuZ2xOAM.js → message-channel-sBPQc_-T.js} +1 -1
- package/dist/plugin-sdk/{model-catalog-yuiXVcmw.js → model-catalog-cXsza5GU.js} +1 -1
- package/dist/plugin-sdk/{model-selection-BtgvnqB5.js → model-selection-K82MAGlL.js} +1 -1
- package/dist/plugin-sdk/{outbound-D_attiyO.js → outbound-Chn_H1O7.js} +1 -1
- package/dist/plugin-sdk/{plugins-BdkC9v5E.js → plugins-CaUOZBVb.js} +1 -1
- package/dist/plugin-sdk/{pw-ai-A7Rathx6.js → pw-ai-BIiJF7ZD.js} +1 -1
- package/dist/plugin-sdk/{qmd-manager-Dxn0jCpE.js → qmd-manager-BRe5fGZw.js} +1 -1
- package/dist/plugin-sdk/{registry-CZHRcH-q.js → registry-DJq2Cvo9.js} +1 -1
- package/dist/plugin-sdk/{render-CuA_WRX5.js → render-BUCRXPIk.js} +1 -1
- package/dist/plugin-sdk/{replies-DmLfO-pg.js → replies-Cz5OD3qN.js} +1 -1
- package/dist/plugin-sdk/{reply-3-ne-N_7.js → reply-D5Uk7pUv.js} +9 -9
- package/dist/plugin-sdk/{reply-prefix-w7kAvH11.js → reply-prefix-CCymsmsP.js} +1 -1
- package/dist/plugin-sdk/{resolve-route-0sbvl4ZN.js → resolve-route-DN1J7Wyc.js} +1 -1
- package/dist/plugin-sdk/{runner-4UfrAQnx.js → runner-CYkuO7Fh.js} +4 -4
- package/dist/plugin-sdk/{session-BB-yfDWx.js → session-D5jHDo78.js} +1 -1
- package/dist/plugin-sdk/{sqlite-JjFgDV-H.js → sqlite-BlMLqMl8.js} +1 -1
- package/dist/plugin-sdk/{subsystem-D0Ril4rt.js → subsystem-COTa5Ly_.js} +1 -1
- package/dist/plugin-sdk/{tool-images-WRTP95FT.js → tool-images-DSpchb4x.js} +1 -1
- package/dist/plugin-sdk/{tool-loop-detection-sC_rhJfb.js → tool-loop-detection-BP6u-mbh.js} +1 -1
- package/dist/plugin-sdk/web-BbganhKi.js +1 -0
- package/dist/plugin-sdk/{whatsapp-actions-ThxQ5niy.js → whatsapp-actions-CZUqxmP1.js} +1 -1
- package/dist/{program-DHWSgdol.js → program-BgDciyOQ.js} +2 -2
- package/dist/{program-context-7XUznN5J.js → program-context-CpxTJP1m.js} +1 -1
- package/dist/{prompt-select-styled-Depbcbpw.js → prompt-select-styled-Bu7WPMzB.js} +1 -1
- package/dist/{prompt-select-styled-Cy70lEMU.js → prompt-select-styled-Qb0DubNy.js} +1 -1
- package/dist/{pw-ai-UGketqfG.js → pw-ai-CsJmJcNk.js} +1 -1
- package/dist/{register.maintenance-ohxXhvKX.js → register.maintenance-CPnm6L-m.js} +1 -1
- package/dist/{register.maintenance-BmnagkdH.js → register.maintenance-D8WmeEaD.js} +1 -1
- package/dist/{register.onboard-C2Cnd-e9.js → register.onboard-BoUicPRh.js} +1 -1
- package/dist/{register.onboard-FSaweh3A.js → register.onboard-DMfqe2nX.js} +1 -1
- package/dist/{register.setup-CyTZQLXP.js → register.setup-BK6OEvY3.js} +1 -1
- package/dist/{register.setup-Dk9hBOkZ.js → register.setup-CtcAR3JR.js} +1 -1
- package/dist/{register.subclis-lGgi7ATb.js → register.subclis-Dl6jPPsc.js} +1 -1
- package/dist/{register.subclis-DqO3Ciiv.js → register.subclis-EScCVgbV.js} +1 -1
- package/dist/{run-main-BipfHjUR.js → run-main-C3lmcvyV.js} +1 -1
- package/dist/{runner-B70PGCqP.js → runner-D7af_RBH.js} +3 -3
- package/dist/{tui-DHjIJOFN.js → tui-D2sTsa4p.js} +1 -1
- package/dist/{tui-C5ChWpBg.js → tui-DY2oYbxk.js} +1 -1
- package/dist/{tui-cli-BeFWcUWU.js → tui-cli-GW-qybY6.js} +1 -1
- package/dist/{tui-cli-wPseN93O.js → tui-cli-wn3DmvUG.js} +1 -1
- package/dist/{update-cli-CRkZnN_N.js → update-cli-CN0oxZ_A.js} +1 -1
- package/dist/{update-cli-DekV-CP_.js → update-cli-K5dGZmg8.js} +1 -1
- package/dist/{web-D44jKC1F.js → web-DPGGHIc_.js} +1 -1
- package/package.json +1 -1
- package/dist/chrome-Blk2Jftn.js +0 -4
- package/dist/plugin-sdk/web-CThgoHQp.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{g as resolveStateDir,i as isNixMode,m as resolveOAuthDir,o as resolveConfigPath,u as resolveGatewayPort}from"./paths-BHg-VHB4.js";import"./registry-Cv7CoWAs.js";import{_ as resolveHomeDir,x as shortenHomeInString,y as resolveUserPath,z as theme}from"./utils-BP60e80M.js";import{p as defaultRuntime}from"./subsystem-C4b1Von0.js";import"./boolean-ssGoaBPk.js";import"./env-BoE8QSib.js";import"./warning-filter-nSTjpMIH.js";import"./auth-profiles-C1VbcUOm.js";import{t as formatCliCommand}from"./command-format-DTMaGKs7.js";import"./src-DvWaTze9.js";import"./logger-wuOr7HKl.js";import"./session-key-CksCYipj.js";import"./builderforce-root-DY1qbWNX.js";import"./exec-COgsU9ql.js";import{k as resolveDefaultAgentWorkspaceDir}from"./agent-scope-CufEmNj_.js";import"./env-file-DeS6x2OL.js";import"./src-HrLX5bhG.js";import{a as readConfigFileSnapshot,r as loadConfig}from"./io-CohJffHG.js";import"./manifest-registry-009gLJ4l.js";import"./config-toczWD3q.js";import"./model-discovery-C9Xm95uL.js";import"./model-catalog-CiiFJX77.js";import"./frontmatter-CaY7feZm.js";import"./skills-D3MwwPOH.js";import"./plugin-skills-pSFUbhg_.js";import"./skills-status-CGlKz1D1.js";import"./refresh-C4vwneXT.js";import"./client-CGgp3zkQ.js";import"./call-DmAU4cRX.js";import"./message-channel-z5YRpR2d.js";import"./subagent-registry-CyGxu3kP.js";import"./sessions-Bl1wwotX.js";import"./project-context-store-CIUcwUP_.js";import"./tokens-CFKkpUIu.js";import"./plugins-1Mn6RiNf.js";import"./accounts-BkTLjSrD.js";import"./bindings-CKSDlQ1i.js";import"./send-BvroeIQ6.js";import"./send-CceNWtYE.js";import"./with-timeout-T07SJo4N.js";import"./deliver-BuZu68tp.js";import"./accounts-Cx82nj4E.js";import"./send-ByCVQQVz.js";import"./image-ops-CotJhwRR.js";import"./redact-CgO7wehS.js";import"./errors-tAt19c1E.js";import"./embedded-helpers-DK8_apW0.js";import"./sandbox-z9t_PRf9.js";import"./chrome-BnEbJV3D.js";import"./tailscale-DV-yOmYe.js";import"./auth-ChecwOXS.js";import"./server-context-owOmmyUM.js";import"./routes-lclJHOYY.js";import"./paths-BnOjueoX.js";import"./ssrf-DJXLYZ0d.js";import"./store-DHD2IEgd.js";import"./ports-DTku9NSx.js";import"./trash-C3zmJ_O7.js";import"./accounts-DcoaLXKI.js";import"./paths-ClsbsPQP.js";import"./tool-images-CCpqFtrL.js";import"./workspace-waBqRxiy.js";import"./reply-prefix-Cg7AqaK0.js";import"./sqlite-CIGM1WKg.js";import"./memory-cli-ivAs7q7v.js";import"./manager-CRba8roB.js";import"./gemini-auth-CkD5jCPh.js";import"./retry-B151Hej5.js";import"./common-BfwMxpLu.js";import"./runner-DwWmciCt.js";import"./tool-display-Cs4hDP1f.js";import"./chunk-Dly7lM4r.js";import"./markdown-tables-B1Rx8hv6.js";import"./fetch-guard-DnXqPKae.js";import"./fetch-Cn_THzz8.js";import"./ir-CSdQJPqu.js";import"./render-DlHYsbvQ.js";import"./builderforcellm-syscheck-CprBhARf.js";import"./session-utils-GMvum00v.js";import"./coding-tools.policy-NEPm7Mz1.js";import"./pairing-store-QDb6lhIU.js";import"./fetch-DnWD6ydH.js";import"./exec-approvals-D7ZPAZpt.js";import"./nodes-screen-D6GHv_S0.js";import"./session-cost-usage-S0nkbPoW.js";import"./usage-format-5sp5AMSu.js";import"./provider-usage-Bn4ZrnU7.js";import"./send-B_1BtyfA.js";import"./outbound-attachment-BaTYE4qp.js";import"./delivery-queue-Cp3t4Upn.js";import"./project-context-D3Mx4maV.js";import"./control-service-CJuuqNOE.js";import"./stagger-CRe77dWL.js";import"./channel-selection-BLwXhb9t.js";import"./send-UFtylOiq.js";import"./resolve-route-DEIW5uKy.js";import"./channel-activity-DX36RadH.js";import"./tables-CojSfTth.js";import{t as formatDocsLink}from"./links-BKzP7VVP.js";import{n as runCommandWithRuntime}from"./cli-utils-C9pW69LF.js";import"./help-format-CfFf-w62.js";import"./progress-Cqb-jAjT.js";import"./replies-DbkT_5BV.js";import{d as openUrl,g as resolveControlUiLinks,i as detectBrowserOpenSupport,o as formatControlUiSshHint}from"./onboard-helpers-CckrS8_K.js";import{n as stylePromptMessage,r as stylePromptTitle,t as stylePromptHint}from"./prompt-style-BMWmaqSC.js";import"./pairing-labels-3j_iRYOO.js";import"./active-listener-Di9e1YAD.js";import"./mamba-state-engine-CV4nDcCk.js";import"./transformers-stream-Buj40qHl.js";import{t as copyToClipboard}from"./clipboard-BuWqKeWo.js";import"./catalog-li4bSIE2.js";import"./note-DgDXuE0F.js";import"./helpers-DPPVplyk.js";import"./plugin-auto-enable-BV9K9Vhr.js";import"./channels-status-issues-NLYb8w9i.js";import"./register.subclis-DqO3Ciiv.js";import"./command-registry-D_LkOB4n.js";import"./program-context-Wpc-6CdI.js";import"./completion-cli-CijodCzU.js";import"./daemon-runtime-B4UjqdyJ.js";import"./runtime-guard-Bi8k55v9.js";import"./systemd-DdVd5Yet.js";import{t as resolveGatewayService}from"./service-EKJG69M3.js";import"./lifecycle-core-BpMvDXy1.js";import"./diagnostics-DamNPi4e.js";import{c as runDaemonStop}from"./daemon-cli-DyVsMf8p.js";import"./health-DVo8a9yg.js";import"./control-ui-assets-BxgWcomx.js";import"./update-check-B0YqSZJr.js";import"./dm-policy-shared-CRZpjRv0.js";import"./session-dirs-OxQuIvJW.js";import"./logging-ayt7F7vy.js";import"./systemd-linger-CPKngdUf.js";import"./health-format-D4MaIjaG.js";import{n as doctorCommand,t as selectStyled}from"./prompt-select-styled-Depbcbpw.js";import"./doctor-completion-FErwMP3Y.js";import path from"node:path";import fs from"node:fs";import fs$1 from"node:fs/promises";import{cancel,confirm,isCancel,multiselect}from"@clack/prompts";async function dashboardCommand(runtime=defaultRuntime,options={}){let snapshot=await readConfigFileSnapshot(),cfg=snapshot.valid?snapshot.config:{},port=resolveGatewayPort(cfg),bind=cfg.gateway?.bind??`loopback`,basePath=cfg.gateway?.controlUi?.basePath,customBindHost=cfg.gateway?.customBindHost,token=cfg.gateway?.auth?.token??process.env.BUILDERFORCE_AGENTS_GATEWAY_TOKEN??``,links=resolveControlUiLinks({port,bind:bind===`lan`?`loopback`:bind,customBindHost,basePath}),dashboardUrl=token?`${links.httpUrl}#token=${encodeURIComponent(token)}`:links.httpUrl;runtime.log(`Dashboard URL: ${dashboardUrl}`);let copied=await copyToClipboard(dashboardUrl).catch(()=>!1);runtime.log(copied?`Copied to clipboard.`:`Copy to clipboard unavailable.`);let opened=!1,hint;options.noOpen?hint=`Browser launch disabled (--no-open). Use the URL above.`:((await detectBrowserOpenSupport()).ok&&(opened=await openUrl(dashboardUrl)),opened||(hint=formatControlUiSshHint({port,basePath,token:token||void 0}))),opened?runtime.log(`Opened in your browser. Keep that tab to control BuilderForceAgents.`):hint&&runtime.log(hint)}function collectWorkspaceDirs(cfg){let dirs=new Set,defaults=cfg?.agents?.defaults;typeof defaults?.workspace==`string`&&defaults.workspace.trim()&&dirs.add(resolveUserPath(defaults.workspace));let list=Array.isArray(cfg?.agents?.list)?cfg?.agents?.list:[];for(let agent of list){let workspace=agent.workspace;typeof workspace==`string`&&workspace.trim()&&dirs.add(resolveUserPath(workspace))}return dirs.size===0&&dirs.add(resolveDefaultAgentWorkspaceDir()),[...dirs]}function buildCleanupPlan(params){return{configInsideState:isPathWithin(params.configPath,params.stateDir),oauthInsideState:isPathWithin(params.oauthDir,params.stateDir),workspaceDirs:collectWorkspaceDirs(params.cfg)}}function isPathWithin(child,parent){let relative=path.relative(parent,child);return relative===``||!relative.startsWith(`..`)&&!path.isAbsolute(relative)}function isUnsafeRemovalTarget(target){if(!target.trim())return!0;let resolved=path.resolve(target);if(resolved===path.parse(resolved).root)return!0;let home=resolveHomeDir();return!!(home&&resolved===path.resolve(home))}async function removePath(target,runtime,opts){if(!target?.trim())return{ok:!1,skipped:!0};let resolved=path.resolve(target),displayLabel=shortenHomeInString(opts?.label??resolved);if(isUnsafeRemovalTarget(resolved))return runtime.error(`Refusing to remove unsafe path: ${displayLabel}`),{ok:!1};if(opts?.dryRun)return runtime.log(`[dry-run] remove ${displayLabel}`),{ok:!0,skipped:!0};try{return await fs$1.rm(resolved,{recursive:!0,force:!0}),runtime.log(`Removed ${displayLabel}`),{ok:!0}}catch(err){return runtime.error(`Failed to remove ${displayLabel}: ${String(err)}`),{ok:!1}}}async function listAgentSessionDirs(stateDir){let root=path.join(stateDir,`agents`);try{return(await fs$1.readdir(root,{withFileTypes:!0})).filter(entry=>entry.isDirectory()).map(entry=>path.join(root,entry.name,`sessions`))}catch{return[]}}function resolveCleanupPlanFromDisk(){let cfg=loadConfig(),stateDir=resolveStateDir(),configPath=resolveConfigPath(),oauthDir=resolveOAuthDir();return{cfg,stateDir,configPath,oauthDir,...buildCleanupPlan({cfg,stateDir,configPath,oauthDir})}}async function stopGatewayIfRunning(runtime){if(isNixMode)return;let service=resolveGatewayService(),loaded=!1;try{loaded=await service.isLoaded({env:process.env})}catch(err){runtime.error(`Gateway service check failed: ${String(err)}`);return}if(loaded)try{await service.stop({env:process.env,stdout:process.stdout})}catch(err){runtime.error(`Gateway stop failed: ${String(err)}`)}}async function resetCommand(runtime,opts){let interactive=!opts.nonInteractive;if(!interactive&&!opts.yes){runtime.error(`Non-interactive mode requires --yes.`),runtime.exit(1);return}let scope=opts.scope;if(!scope){if(!interactive){runtime.error(`Non-interactive mode requires --scope.`),runtime.exit(1);return}let selection=await selectStyled({message:`Reset scope`,options:[{value:`config`,label:`Config only`,hint:`builderforce.json`},{value:`config+creds+sessions`,label:`Config + credentials + sessions`,hint:`keeps workspace + auth profiles`},{value:`full`,label:`Full reset`,hint:`state dir + workspace`}],initialValue:`config+creds+sessions`});if(isCancel(selection)){cancel(stylePromptTitle(`Reset cancelled.`)??`Reset cancelled.`),runtime.exit(0);return}scope=selection}if(![`config`,`config+creds+sessions`,`full`].includes(scope)){runtime.error(`Invalid --scope. Expected "config", "config+creds+sessions", or "full".`),runtime.exit(1);return}if(interactive&&!opts.yes){let ok=await confirm({message:stylePromptMessage(`Proceed with ${scope} reset?`)});if(isCancel(ok)||!ok){cancel(stylePromptTitle(`Reset cancelled.`)??`Reset cancelled.`),runtime.exit(0);return}}let dryRun=!!opts.dryRun,{stateDir,configPath,oauthDir,configInsideState,oauthInsideState,workspaceDirs}=resolveCleanupPlanFromDisk();if(scope!==`config`&&(dryRun?runtime.log(`[dry-run] stop gateway service`):await stopGatewayIfRunning(runtime)),scope===`config`){await removePath(configPath,runtime,{dryRun,label:configPath});return}if(scope===`config+creds+sessions`){await removePath(configPath,runtime,{dryRun,label:configPath}),await removePath(oauthDir,runtime,{dryRun,label:oauthDir});let sessionDirs=await listAgentSessionDirs(stateDir);for(let dir of sessionDirs)await removePath(dir,runtime,{dryRun,label:dir});runtime.log(`Next: ${formatCliCommand(`builderforce onboard --install-daemon`)}`);return}if(scope===`full`){await removePath(stateDir,runtime,{dryRun,label:stateDir}),configInsideState||await removePath(configPath,runtime,{dryRun,label:configPath}),oauthInsideState||await removePath(oauthDir,runtime,{dryRun,label:oauthDir});for(let workspace of workspaceDirs)await removePath(workspace,runtime,{dryRun,label:workspace});runtime.log(`Next: ${formatCliCommand(`builderforce onboard --install-daemon`)}`);return}}const multiselectStyled=params=>multiselect({...params,message:stylePromptMessage(params.message),options:params.options.map(opt=>opt.hint===void 0?opt:{...opt,hint:stylePromptHint(opt.hint)})});function buildScopeSelection(opts){let hadExplicit=!!(opts.all||opts.service||opts.state||opts.workspace||opts.app),scopes=new Set;return(opts.all||opts.service)&&scopes.add(`service`),(opts.all||opts.state)&&scopes.add(`state`),(opts.all||opts.workspace)&&scopes.add(`workspace`),(opts.all||opts.app)&&scopes.add(`app`),{scopes,hadExplicit}}async function stopAndUninstallService(runtime){if(isNixMode)return runtime.error(`Nix mode detected; service uninstall is disabled.`),!1;let service=resolveGatewayService(),loaded=!1;try{loaded=await service.isLoaded({env:process.env})}catch(err){return runtime.error(`Gateway service check failed: ${String(err)}`),!1}if(!loaded)return runtime.log(`Gateway service ${service.notLoadedText}.`),!0;try{await service.stop({env:process.env,stdout:process.stdout})}catch(err){runtime.error(`Gateway stop failed: ${String(err)}`)}try{return await service.uninstall({env:process.env,stdout:process.stdout}),!0}catch(err){return runtime.error(`Gateway uninstall failed: ${String(err)}`),!1}}const MAC_APP_PATH=`/Applications/Builderforce.app`,LEGACY_MAC_APP_PATH=`/Applications/BuilderForceAgents.app`;async function removeMacApp(runtime,dryRun){process.platform===`darwin`&&(await removePath(MAC_APP_PATH,runtime,{dryRun,label:MAC_APP_PATH}),fs.existsSync(LEGACY_MAC_APP_PATH)&&await removePath(LEGACY_MAC_APP_PATH,runtime,{dryRun,label:LEGACY_MAC_APP_PATH}))}async function uninstallCommand(runtime,opts){let{scopes,hadExplicit}=buildScopeSelection(opts),interactive=!opts.nonInteractive;if(!interactive&&!opts.yes){runtime.error(`Non-interactive mode requires --yes.`),runtime.exit(1);return}if(!hadExplicit){if(!interactive){runtime.error(`Non-interactive mode requires explicit scopes (use --all).`),runtime.exit(1);return}let selection=await multiselectStyled({message:`Uninstall which components?`,options:[{value:`service`,label:`Gateway service`,hint:`launchd / systemd / schtasks`},{value:`state`,label:`State + config`,hint:`~/.builderforce`},{value:`workspace`,label:`Workspace`,hint:`agent files`},{value:`app`,label:`macOS app`,hint:MAC_APP_PATH}],initialValues:[`service`,`state`,`workspace`]});if(isCancel(selection)){cancel(stylePromptTitle(`Uninstall cancelled.`)??`Uninstall cancelled.`),runtime.exit(0);return}for(let value of selection)scopes.add(value)}if(scopes.size===0){runtime.log(`Nothing selected.`);return}if(interactive&&!opts.yes){let ok=await confirm({message:stylePromptMessage(`Proceed with uninstall?`)});if(isCancel(ok)||!ok){cancel(stylePromptTitle(`Uninstall cancelled.`)??`Uninstall cancelled.`),runtime.exit(0);return}}let dryRun=!!opts.dryRun,{stateDir,configPath,oauthDir,configInsideState,oauthInsideState,workspaceDirs}=resolveCleanupPlanFromDisk();if(scopes.has(`service`)&&(dryRun?runtime.log(`[dry-run] remove gateway service`):await stopAndUninstallService(runtime)),scopes.has(`state`)&&(await removePath(stateDir,runtime,{dryRun,label:stateDir}),configInsideState||await removePath(configPath,runtime,{dryRun,label:configPath}),oauthInsideState||await removePath(oauthDir,runtime,{dryRun,label:oauthDir})),scopes.has(`workspace`))for(let workspace of workspaceDirs)await removePath(workspace,runtime,{dryRun,label:workspace});if(scopes.has(`app`)&&await removeMacApp(runtime,dryRun),runtime.log(`CLI still installed. Remove via npm/pnpm if desired.`),scopes.has(`state`)&&!scopes.has(`workspace`)){let home=resolveHomeDir();home&&workspaceDirs.some(dir=>dir.startsWith(path.resolve(home)))&&runtime.log(`Tip: workspaces were preserved. Re-run with --workspace to remove them.`)}}function registerMaintenanceCommands(program){program.command(`doctor`).description(`Health checks + quick fixes for the gateway and channels`).addHelpText(`after`,()=>`\n${theme.muted(`Docs:`)} ${formatDocsLink(`/cli/doctor`,`docs.builderforce.ai/cli/doctor`)}\n`).option(`--no-workspace-suggestions`,`Disable workspace memory system suggestions`,!1).option(`--yes`,`Accept defaults without prompting`,!1).option(`--repair`,`Apply recommended repairs without prompting`,!1).option(`--fix`,`Apply recommended repairs (alias for --repair)`,!1).option(`--force`,`Apply aggressive repairs (overwrites custom service config)`,!1).option(`--non-interactive`,`Run without prompts (safe migrations only)`,!1).option(`--generate-gateway-token`,`Generate and configure a gateway token`,!1).option(`--deep`,`Scan system services for extra gateway installs`,!1).action(async opts=>{await runCommandWithRuntime(defaultRuntime,async()=>{await doctorCommand(defaultRuntime,{workspaceSuggestions:opts.workspaceSuggestions,yes:!!opts.yes,repair:!!opts.repair||!!opts.fix,force:!!opts.force,nonInteractive:!!opts.nonInteractive,generateGatewayToken:!!opts.generateGatewayToken,deep:!!opts.deep}),defaultRuntime.exit(0)})}),program.command(`dashboard`).description(`Open the Control UI with your current token`).addHelpText(`after`,()=>`\n${theme.muted(`Docs:`)} ${formatDocsLink(`/cli/dashboard`,`docs.builderforce.ai/cli/dashboard`)}\n`).option(`--no-open`,`Print URL but do not launch a browser`,!1).action(async opts=>{await runCommandWithRuntime(defaultRuntime,async()=>{await dashboardCommand(defaultRuntime,{noOpen:!!opts.noOpen})})}),program.command(`reset`).description(`Reset local config/state (keeps the CLI installed)`).addHelpText(`after`,()=>`\n${theme.muted(`Docs:`)} ${formatDocsLink(`/cli/reset`,`docs.builderforce.ai/cli/reset`)}\n`).option(`--scope <scope>`,`config|config+creds+sessions|full (default: interactive prompt)`).option(`--yes`,`Skip confirmation prompts`,!1).option(`--non-interactive`,`Disable prompts (requires --scope + --yes)`,!1).option(`--dry-run`,`Print actions without removing files`,!1).action(async opts=>{await runCommandWithRuntime(defaultRuntime,async()=>{await resetCommand(defaultRuntime,{scope:opts.scope,yes:!!opts.yes,nonInteractive:!!opts.nonInteractive,dryRun:!!opts.dryRun})})}),program.command(`uninstall`).description(`Uninstall the gateway service + local data (CLI remains)`).addHelpText(`after`,()=>`\n${theme.muted(`Docs:`)} ${formatDocsLink(`/cli/uninstall`,`docs.builderforce.ai/cli/uninstall`)}\n`).option(`--service`,`Remove the gateway service`,!1).option(`--state`,`Remove state + config`,!1).option(`--workspace`,`Remove workspace dirs`,!1).option(`--app`,`Remove the macOS app`,!1).option(`--all`,`Remove service + state + workspace + app`,!1).option(`--yes`,`Skip confirmation prompts`,!1).option(`--non-interactive`,`Disable prompts (requires --yes)`,!1).option(`--dry-run`,`Print actions without removing files`,!1).action(async opts=>{await runCommandWithRuntime(defaultRuntime,async()=>{await uninstallCommand(defaultRuntime,{service:!!opts.service,state:!!opts.state,workspace:!!opts.workspace,app:!!opts.app,all:!!opts.all,yes:!!opts.yes,nonInteractive:!!opts.nonInteractive,dryRun:!!opts.dryRun})})}),program.command(`stop`).description(`Stop the running gateway service (launchd/systemd/schtasks)`).addHelpText(`after`,()=>`\n${theme.muted(`Docs:`)} ${formatDocsLink(`/cli/gateway`,`docs.builderforce.ai/cli/gateway`)}\n`).option(`--json`,`Output JSON`,!1).action(async opts=>{await runCommandWithRuntime(defaultRuntime,async()=>{await runDaemonStop({json:!!opts.json})})})}export{registerMaintenanceCommands};
|
|
1
|
+
import{g as resolveStateDir,i as isNixMode,m as resolveOAuthDir,o as resolveConfigPath,u as resolveGatewayPort}from"./paths-BHg-VHB4.js";import"./registry-Cv7CoWAs.js";import{_ as resolveHomeDir,x as shortenHomeInString,y as resolveUserPath,z as theme}from"./utils-BP60e80M.js";import{p as defaultRuntime}from"./subsystem-C4b1Von0.js";import"./boolean-ssGoaBPk.js";import"./env-BoE8QSib.js";import"./warning-filter-nSTjpMIH.js";import"./auth-profiles-C1VbcUOm.js";import{t as formatCliCommand}from"./command-format-DTMaGKs7.js";import"./src-DvWaTze9.js";import"./logger-wuOr7HKl.js";import"./session-key-CksCYipj.js";import"./builderforce-root-DY1qbWNX.js";import"./exec-COgsU9ql.js";import{k as resolveDefaultAgentWorkspaceDir}from"./agent-scope-CufEmNj_.js";import"./env-file-DeS6x2OL.js";import"./src-HrLX5bhG.js";import{a as readConfigFileSnapshot,r as loadConfig}from"./io-CohJffHG.js";import"./manifest-registry-009gLJ4l.js";import"./config-toczWD3q.js";import"./model-discovery-C9Xm95uL.js";import"./model-catalog-CiiFJX77.js";import"./frontmatter-CaY7feZm.js";import"./skills-D3MwwPOH.js";import"./plugin-skills-pSFUbhg_.js";import"./skills-status-CGlKz1D1.js";import"./refresh-C4vwneXT.js";import"./client-CGgp3zkQ.js";import"./call-DmAU4cRX.js";import"./message-channel-z5YRpR2d.js";import"./subagent-registry-CyGxu3kP.js";import"./sessions-Bl1wwotX.js";import"./project-context-store-CIUcwUP_.js";import"./tokens-CFKkpUIu.js";import"./plugins-1Mn6RiNf.js";import"./accounts-BkTLjSrD.js";import"./bindings-CKSDlQ1i.js";import"./send-BvroeIQ6.js";import"./send-CceNWtYE.js";import"./with-timeout-T07SJo4N.js";import"./deliver-BuZu68tp.js";import"./accounts-Cx82nj4E.js";import"./send-ByCVQQVz.js";import"./image-ops-CotJhwRR.js";import"./redact-CgO7wehS.js";import"./errors-tAt19c1E.js";import"./embedded-helpers-DK8_apW0.js";import"./sandbox-z9t_PRf9.js";import"./chrome-BnEbJV3D.js";import"./tailscale-DV-yOmYe.js";import"./auth-ChecwOXS.js";import"./server-context-owOmmyUM.js";import"./routes-lclJHOYY.js";import"./paths-BnOjueoX.js";import"./ssrf-DJXLYZ0d.js";import"./store-DHD2IEgd.js";import"./ports-DTku9NSx.js";import"./trash-C3zmJ_O7.js";import"./accounts-DcoaLXKI.js";import"./paths-ClsbsPQP.js";import"./tool-images-CCpqFtrL.js";import"./workspace-waBqRxiy.js";import"./reply-prefix-Cg7AqaK0.js";import"./sqlite-CIGM1WKg.js";import"./memory-cli-ivAs7q7v.js";import"./manager-CRba8roB.js";import"./gemini-auth-CkD5jCPh.js";import"./retry-B151Hej5.js";import"./common-BfwMxpLu.js";import"./runner-DwWmciCt.js";import"./tool-display-Cs4hDP1f.js";import"./chunk-Dly7lM4r.js";import"./markdown-tables-B1Rx8hv6.js";import"./fetch-guard-DnXqPKae.js";import"./fetch-Cn_THzz8.js";import"./ir-CSdQJPqu.js";import"./render-DlHYsbvQ.js";import"./builderforcellm-syscheck-CprBhARf.js";import"./session-utils-GMvum00v.js";import"./coding-tools.policy-NEPm7Mz1.js";import"./pairing-store-QDb6lhIU.js";import"./fetch-DnWD6ydH.js";import"./exec-approvals-D7ZPAZpt.js";import"./nodes-screen-D6GHv_S0.js";import"./session-cost-usage-S0nkbPoW.js";import"./usage-format-5sp5AMSu.js";import"./provider-usage-Bn4ZrnU7.js";import"./send-B_1BtyfA.js";import"./outbound-attachment-BaTYE4qp.js";import"./delivery-queue-Cp3t4Upn.js";import"./project-context-D3Mx4maV.js";import"./control-service-CJuuqNOE.js";import"./stagger-CRe77dWL.js";import"./channel-selection-BLwXhb9t.js";import"./send-UFtylOiq.js";import"./resolve-route-DEIW5uKy.js";import"./channel-activity-DX36RadH.js";import"./tables-CojSfTth.js";import{t as formatDocsLink}from"./links-BKzP7VVP.js";import{n as runCommandWithRuntime}from"./cli-utils-C9pW69LF.js";import"./help-format-CfFf-w62.js";import"./progress-Cqb-jAjT.js";import"./replies-DbkT_5BV.js";import{d as openUrl,g as resolveControlUiLinks,i as detectBrowserOpenSupport,o as formatControlUiSshHint}from"./onboard-helpers-CckrS8_K.js";import{n as stylePromptMessage,r as stylePromptTitle,t as stylePromptHint}from"./prompt-style-BMWmaqSC.js";import"./pairing-labels-3j_iRYOO.js";import"./active-listener-Di9e1YAD.js";import"./mamba-state-engine-CV4nDcCk.js";import"./transformers-stream-Buj40qHl.js";import{t as copyToClipboard}from"./clipboard-BuWqKeWo.js";import"./catalog-li4bSIE2.js";import"./note-DgDXuE0F.js";import"./helpers-DPPVplyk.js";import"./plugin-auto-enable-BV9K9Vhr.js";import"./channels-status-issues-NLYb8w9i.js";import"./register.subclis-EScCVgbV.js";import"./command-registry-CDcuHGpx.js";import"./program-context-Wpc-6CdI.js";import"./completion-cli-Do4vXo1k.js";import"./daemon-runtime-B4UjqdyJ.js";import"./runtime-guard-Bi8k55v9.js";import"./systemd-DdVd5Yet.js";import{t as resolveGatewayService}from"./service-EKJG69M3.js";import"./lifecycle-core-BpMvDXy1.js";import"./diagnostics-DamNPi4e.js";import{c as runDaemonStop}from"./daemon-cli-DyVsMf8p.js";import"./health-DVo8a9yg.js";import"./control-ui-assets-BxgWcomx.js";import"./update-check-B0YqSZJr.js";import"./dm-policy-shared-CRZpjRv0.js";import"./session-dirs-OxQuIvJW.js";import"./logging-ayt7F7vy.js";import"./systemd-linger-CPKngdUf.js";import"./health-format-D4MaIjaG.js";import{n as doctorCommand,t as selectStyled}from"./prompt-select-styled-Bu7WPMzB.js";import"./doctor-completion-BjBTLcoC.js";import path from"node:path";import fs from"node:fs";import fs$1 from"node:fs/promises";import{cancel,confirm,isCancel,multiselect}from"@clack/prompts";async function dashboardCommand(runtime=defaultRuntime,options={}){let snapshot=await readConfigFileSnapshot(),cfg=snapshot.valid?snapshot.config:{},port=resolveGatewayPort(cfg),bind=cfg.gateway?.bind??`loopback`,basePath=cfg.gateway?.controlUi?.basePath,customBindHost=cfg.gateway?.customBindHost,token=cfg.gateway?.auth?.token??process.env.BUILDERFORCE_AGENTS_GATEWAY_TOKEN??``,links=resolveControlUiLinks({port,bind:bind===`lan`?`loopback`:bind,customBindHost,basePath}),dashboardUrl=token?`${links.httpUrl}#token=${encodeURIComponent(token)}`:links.httpUrl;runtime.log(`Dashboard URL: ${dashboardUrl}`);let copied=await copyToClipboard(dashboardUrl).catch(()=>!1);runtime.log(copied?`Copied to clipboard.`:`Copy to clipboard unavailable.`);let opened=!1,hint;options.noOpen?hint=`Browser launch disabled (--no-open). Use the URL above.`:((await detectBrowserOpenSupport()).ok&&(opened=await openUrl(dashboardUrl)),opened||(hint=formatControlUiSshHint({port,basePath,token:token||void 0}))),opened?runtime.log(`Opened in your browser. Keep that tab to control BuilderForceAgents.`):hint&&runtime.log(hint)}function collectWorkspaceDirs(cfg){let dirs=new Set,defaults=cfg?.agents?.defaults;typeof defaults?.workspace==`string`&&defaults.workspace.trim()&&dirs.add(resolveUserPath(defaults.workspace));let list=Array.isArray(cfg?.agents?.list)?cfg?.agents?.list:[];for(let agent of list){let workspace=agent.workspace;typeof workspace==`string`&&workspace.trim()&&dirs.add(resolveUserPath(workspace))}return dirs.size===0&&dirs.add(resolveDefaultAgentWorkspaceDir()),[...dirs]}function buildCleanupPlan(params){return{configInsideState:isPathWithin(params.configPath,params.stateDir),oauthInsideState:isPathWithin(params.oauthDir,params.stateDir),workspaceDirs:collectWorkspaceDirs(params.cfg)}}function isPathWithin(child,parent){let relative=path.relative(parent,child);return relative===``||!relative.startsWith(`..`)&&!path.isAbsolute(relative)}function isUnsafeRemovalTarget(target){if(!target.trim())return!0;let resolved=path.resolve(target);if(resolved===path.parse(resolved).root)return!0;let home=resolveHomeDir();return!!(home&&resolved===path.resolve(home))}async function removePath(target,runtime,opts){if(!target?.trim())return{ok:!1,skipped:!0};let resolved=path.resolve(target),displayLabel=shortenHomeInString(opts?.label??resolved);if(isUnsafeRemovalTarget(resolved))return runtime.error(`Refusing to remove unsafe path: ${displayLabel}`),{ok:!1};if(opts?.dryRun)return runtime.log(`[dry-run] remove ${displayLabel}`),{ok:!0,skipped:!0};try{return await fs$1.rm(resolved,{recursive:!0,force:!0}),runtime.log(`Removed ${displayLabel}`),{ok:!0}}catch(err){return runtime.error(`Failed to remove ${displayLabel}: ${String(err)}`),{ok:!1}}}async function listAgentSessionDirs(stateDir){let root=path.join(stateDir,`agents`);try{return(await fs$1.readdir(root,{withFileTypes:!0})).filter(entry=>entry.isDirectory()).map(entry=>path.join(root,entry.name,`sessions`))}catch{return[]}}function resolveCleanupPlanFromDisk(){let cfg=loadConfig(),stateDir=resolveStateDir(),configPath=resolveConfigPath(),oauthDir=resolveOAuthDir();return{cfg,stateDir,configPath,oauthDir,...buildCleanupPlan({cfg,stateDir,configPath,oauthDir})}}async function stopGatewayIfRunning(runtime){if(isNixMode)return;let service=resolveGatewayService(),loaded=!1;try{loaded=await service.isLoaded({env:process.env})}catch(err){runtime.error(`Gateway service check failed: ${String(err)}`);return}if(loaded)try{await service.stop({env:process.env,stdout:process.stdout})}catch(err){runtime.error(`Gateway stop failed: ${String(err)}`)}}async function resetCommand(runtime,opts){let interactive=!opts.nonInteractive;if(!interactive&&!opts.yes){runtime.error(`Non-interactive mode requires --yes.`),runtime.exit(1);return}let scope=opts.scope;if(!scope){if(!interactive){runtime.error(`Non-interactive mode requires --scope.`),runtime.exit(1);return}let selection=await selectStyled({message:`Reset scope`,options:[{value:`config`,label:`Config only`,hint:`builderforce.json`},{value:`config+creds+sessions`,label:`Config + credentials + sessions`,hint:`keeps workspace + auth profiles`},{value:`full`,label:`Full reset`,hint:`state dir + workspace`}],initialValue:`config+creds+sessions`});if(isCancel(selection)){cancel(stylePromptTitle(`Reset cancelled.`)??`Reset cancelled.`),runtime.exit(0);return}scope=selection}if(![`config`,`config+creds+sessions`,`full`].includes(scope)){runtime.error(`Invalid --scope. Expected "config", "config+creds+sessions", or "full".`),runtime.exit(1);return}if(interactive&&!opts.yes){let ok=await confirm({message:stylePromptMessage(`Proceed with ${scope} reset?`)});if(isCancel(ok)||!ok){cancel(stylePromptTitle(`Reset cancelled.`)??`Reset cancelled.`),runtime.exit(0);return}}let dryRun=!!opts.dryRun,{stateDir,configPath,oauthDir,configInsideState,oauthInsideState,workspaceDirs}=resolveCleanupPlanFromDisk();if(scope!==`config`&&(dryRun?runtime.log(`[dry-run] stop gateway service`):await stopGatewayIfRunning(runtime)),scope===`config`){await removePath(configPath,runtime,{dryRun,label:configPath});return}if(scope===`config+creds+sessions`){await removePath(configPath,runtime,{dryRun,label:configPath}),await removePath(oauthDir,runtime,{dryRun,label:oauthDir});let sessionDirs=await listAgentSessionDirs(stateDir);for(let dir of sessionDirs)await removePath(dir,runtime,{dryRun,label:dir});runtime.log(`Next: ${formatCliCommand(`builderforce onboard --install-daemon`)}`);return}if(scope===`full`){await removePath(stateDir,runtime,{dryRun,label:stateDir}),configInsideState||await removePath(configPath,runtime,{dryRun,label:configPath}),oauthInsideState||await removePath(oauthDir,runtime,{dryRun,label:oauthDir});for(let workspace of workspaceDirs)await removePath(workspace,runtime,{dryRun,label:workspace});runtime.log(`Next: ${formatCliCommand(`builderforce onboard --install-daemon`)}`);return}}const multiselectStyled=params=>multiselect({...params,message:stylePromptMessage(params.message),options:params.options.map(opt=>opt.hint===void 0?opt:{...opt,hint:stylePromptHint(opt.hint)})});function buildScopeSelection(opts){let hadExplicit=!!(opts.all||opts.service||opts.state||opts.workspace||opts.app),scopes=new Set;return(opts.all||opts.service)&&scopes.add(`service`),(opts.all||opts.state)&&scopes.add(`state`),(opts.all||opts.workspace)&&scopes.add(`workspace`),(opts.all||opts.app)&&scopes.add(`app`),{scopes,hadExplicit}}async function stopAndUninstallService(runtime){if(isNixMode)return runtime.error(`Nix mode detected; service uninstall is disabled.`),!1;let service=resolveGatewayService(),loaded=!1;try{loaded=await service.isLoaded({env:process.env})}catch(err){return runtime.error(`Gateway service check failed: ${String(err)}`),!1}if(!loaded)return runtime.log(`Gateway service ${service.notLoadedText}.`),!0;try{await service.stop({env:process.env,stdout:process.stdout})}catch(err){runtime.error(`Gateway stop failed: ${String(err)}`)}try{return await service.uninstall({env:process.env,stdout:process.stdout}),!0}catch(err){return runtime.error(`Gateway uninstall failed: ${String(err)}`),!1}}const MAC_APP_PATH=`/Applications/Builderforce.app`,LEGACY_MAC_APP_PATH=`/Applications/BuilderForceAgents.app`;async function removeMacApp(runtime,dryRun){process.platform===`darwin`&&(await removePath(MAC_APP_PATH,runtime,{dryRun,label:MAC_APP_PATH}),fs.existsSync(LEGACY_MAC_APP_PATH)&&await removePath(LEGACY_MAC_APP_PATH,runtime,{dryRun,label:LEGACY_MAC_APP_PATH}))}async function uninstallCommand(runtime,opts){let{scopes,hadExplicit}=buildScopeSelection(opts),interactive=!opts.nonInteractive;if(!interactive&&!opts.yes){runtime.error(`Non-interactive mode requires --yes.`),runtime.exit(1);return}if(!hadExplicit){if(!interactive){runtime.error(`Non-interactive mode requires explicit scopes (use --all).`),runtime.exit(1);return}let selection=await multiselectStyled({message:`Uninstall which components?`,options:[{value:`service`,label:`Gateway service`,hint:`launchd / systemd / schtasks`},{value:`state`,label:`State + config`,hint:`~/.builderforce`},{value:`workspace`,label:`Workspace`,hint:`agent files`},{value:`app`,label:`macOS app`,hint:MAC_APP_PATH}],initialValues:[`service`,`state`,`workspace`]});if(isCancel(selection)){cancel(stylePromptTitle(`Uninstall cancelled.`)??`Uninstall cancelled.`),runtime.exit(0);return}for(let value of selection)scopes.add(value)}if(scopes.size===0){runtime.log(`Nothing selected.`);return}if(interactive&&!opts.yes){let ok=await confirm({message:stylePromptMessage(`Proceed with uninstall?`)});if(isCancel(ok)||!ok){cancel(stylePromptTitle(`Uninstall cancelled.`)??`Uninstall cancelled.`),runtime.exit(0);return}}let dryRun=!!opts.dryRun,{stateDir,configPath,oauthDir,configInsideState,oauthInsideState,workspaceDirs}=resolveCleanupPlanFromDisk();if(scopes.has(`service`)&&(dryRun?runtime.log(`[dry-run] remove gateway service`):await stopAndUninstallService(runtime)),scopes.has(`state`)&&(await removePath(stateDir,runtime,{dryRun,label:stateDir}),configInsideState||await removePath(configPath,runtime,{dryRun,label:configPath}),oauthInsideState||await removePath(oauthDir,runtime,{dryRun,label:oauthDir})),scopes.has(`workspace`))for(let workspace of workspaceDirs)await removePath(workspace,runtime,{dryRun,label:workspace});if(scopes.has(`app`)&&await removeMacApp(runtime,dryRun),runtime.log(`CLI still installed. Remove via npm/pnpm if desired.`),scopes.has(`state`)&&!scopes.has(`workspace`)){let home=resolveHomeDir();home&&workspaceDirs.some(dir=>dir.startsWith(path.resolve(home)))&&runtime.log(`Tip: workspaces were preserved. Re-run with --workspace to remove them.`)}}function registerMaintenanceCommands(program){program.command(`doctor`).description(`Health checks + quick fixes for the gateway and channels`).addHelpText(`after`,()=>`\n${theme.muted(`Docs:`)} ${formatDocsLink(`/cli/doctor`,`docs.builderforce.ai/cli/doctor`)}\n`).option(`--no-workspace-suggestions`,`Disable workspace memory system suggestions`,!1).option(`--yes`,`Accept defaults without prompting`,!1).option(`--repair`,`Apply recommended repairs without prompting`,!1).option(`--fix`,`Apply recommended repairs (alias for --repair)`,!1).option(`--force`,`Apply aggressive repairs (overwrites custom service config)`,!1).option(`--non-interactive`,`Run without prompts (safe migrations only)`,!1).option(`--generate-gateway-token`,`Generate and configure a gateway token`,!1).option(`--deep`,`Scan system services for extra gateway installs`,!1).action(async opts=>{await runCommandWithRuntime(defaultRuntime,async()=>{await doctorCommand(defaultRuntime,{workspaceSuggestions:opts.workspaceSuggestions,yes:!!opts.yes,repair:!!opts.repair||!!opts.fix,force:!!opts.force,nonInteractive:!!opts.nonInteractive,generateGatewayToken:!!opts.generateGatewayToken,deep:!!opts.deep}),defaultRuntime.exit(0)})}),program.command(`dashboard`).description(`Open the Control UI with your current token`).addHelpText(`after`,()=>`\n${theme.muted(`Docs:`)} ${formatDocsLink(`/cli/dashboard`,`docs.builderforce.ai/cli/dashboard`)}\n`).option(`--no-open`,`Print URL but do not launch a browser`,!1).action(async opts=>{await runCommandWithRuntime(defaultRuntime,async()=>{await dashboardCommand(defaultRuntime,{noOpen:!!opts.noOpen})})}),program.command(`reset`).description(`Reset local config/state (keeps the CLI installed)`).addHelpText(`after`,()=>`\n${theme.muted(`Docs:`)} ${formatDocsLink(`/cli/reset`,`docs.builderforce.ai/cli/reset`)}\n`).option(`--scope <scope>`,`config|config+creds+sessions|full (default: interactive prompt)`).option(`--yes`,`Skip confirmation prompts`,!1).option(`--non-interactive`,`Disable prompts (requires --scope + --yes)`,!1).option(`--dry-run`,`Print actions without removing files`,!1).action(async opts=>{await runCommandWithRuntime(defaultRuntime,async()=>{await resetCommand(defaultRuntime,{scope:opts.scope,yes:!!opts.yes,nonInteractive:!!opts.nonInteractive,dryRun:!!opts.dryRun})})}),program.command(`uninstall`).description(`Uninstall the gateway service + local data (CLI remains)`).addHelpText(`after`,()=>`\n${theme.muted(`Docs:`)} ${formatDocsLink(`/cli/uninstall`,`docs.builderforce.ai/cli/uninstall`)}\n`).option(`--service`,`Remove the gateway service`,!1).option(`--state`,`Remove state + config`,!1).option(`--workspace`,`Remove workspace dirs`,!1).option(`--app`,`Remove the macOS app`,!1).option(`--all`,`Remove service + state + workspace + app`,!1).option(`--yes`,`Skip confirmation prompts`,!1).option(`--non-interactive`,`Disable prompts (requires --yes)`,!1).option(`--dry-run`,`Print actions without removing files`,!1).action(async opts=>{await runCommandWithRuntime(defaultRuntime,async()=>{await uninstallCommand(defaultRuntime,{service:!!opts.service,state:!!opts.state,workspace:!!opts.workspace,app:!!opts.app,all:!!opts.all,yes:!!opts.yes,nonInteractive:!!opts.nonInteractive,dryRun:!!opts.dryRun})})}),program.command(`stop`).description(`Stop the running gateway service (launchd/systemd/schtasks)`).addHelpText(`after`,()=>`\n${theme.muted(`Docs:`)} ${formatDocsLink(`/cli/gateway`,`docs.builderforce.ai/cli/gateway`)}\n`).option(`--json`,`Output JSON`,!1).action(async opts=>{await runCommandWithRuntime(defaultRuntime,async()=>{await runDaemonStop({json:!!opts.json})})})}export{registerMaintenanceCommands};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{g as resolveStateDir,i as isNixMode,m as resolveOAuthDir,o as resolveConfigPath,u as resolveGatewayPort}from"./paths-5FcIFMsj.js";import{B as theme,S as shortenHomeInString,b as resolveUserPath,v as resolveHomeDir}from"./utils-DbaBVFaK.js";import"./embedded-helpers-CEsr3aQ0.js";import"./reply-Cd3vVnD7.js";import"./session-key-EoB0qaG9.js";import"./builderforce-root-D64_sXEi.js";import{i as defaultRuntime}from"./subsystem-B3TqcCrZ.js";import"./registry-TdK-aV05.js";import"./logger-Bch0bx9c.js";import"./exec-DdcIjeyn.js";import{k as resolveDefaultAgentWorkspaceDir}from"./agent-scope-DPtjOxzp.js";import"./src-CA0fU67C.js";import"./model-selection-9bRFKBI_.js";import{t as formatCliCommand}from"./command-format-D806O2pt.js";import"./env-file-D1MDi-AM.js";import"./boolean-Cnh1KNl1.js";import"./env-BIdU5BAp.js";import"./src-DTFqOIQD.js";import{a as readConfigFileSnapshot,r as loadConfig}from"./io-3R_ZyUxB.js";import"./manifest-registry-BJCfNV1a.js";import"./config-_1Ca6jGb.js";import"./runner-SxCr9kXD.js";import"./model-catalog-C6UrZ0uG.js";import"./sandbox-BZibn6PX.js";import"./chrome-a3X9_-nf.js";import"./tailscale-DLkpGquM.js";import"./auth-lebUHrkd.js";import"./server-context-DJZT7Upf.js";import"./frontmatter-3D1EdC1L.js";import"./skills-Ba4ftrB-.js";import"./plugin-skills-B11rggZh.js";import"./routes-BzfLvF8W.js";import"./redact-BHdfp2MZ.js";import"./errors-B1MIg3g-.js";import"./paths-cR8ct-Y3.js";import"./ssrf-p9k-iapc.js";import"./image-ops-C8IUQKjn.js";import"./store-CmHBQ-yX.js";import"./ports-DgmEDNOm.js";import"./trash-DD2Hc5oq.js";import"./sessions-CdanN_ZI.js";import"./message-channel-D_jXxXQj.js";import"./plugins-D5zP6ENo.js";import"./accounts-o35LU_iy.js";import"./accounts-rmXEiebi.js";import"./accounts-BLueHgKj.js";import"./bindings-DR59065T.js";import"./send-DerUBvXW.js";import"./send-DyF1Xy9K.js";import"./paths-DJ6rztqJ.js";import"./tool-images-B7b_OiMz.js";import"./tool-display-ByOZtWvA.js";import"./fetch-guard-8mwt3-hm.js";import"./api-key-rotation-CHBjUwUJ.js";import"./fetch-BuOLY9KP.js";import"./sqlite-C39E12XS.js";import"./tokens-CCU3zO-D.js";import"./project-context-store-wcq7lXuI.js";import"./with-timeout-Bwq-GyUQ.js";import"./deliver-BpLm3ktn.js";import"./send-CBBziNqM.js";import"./workspace-D4LK4thI.js";import"./reply-prefix-zIMgi6K6.js";import"./memory-cli-DRz4wtHk.js";import"./manager-DwywI_5-.js";import"./retry-DlVhg5qu.js";import"./client-xfoidwPI.js";import"./call-BbRf8gFM.js";import"./common-BTbIhLyt.js";import"./chunk-FCBlVOyo.js";import"./markdown-tables-P6uoUSFa.js";import"./ir-5BNoIXZm.js";import"./render-D1dVTEB1.js";import"./builderforcellm-syscheck-DrFJ638L.js";import"./send-4d9NswaD.js";import"./outbound-attachment-C7wByQO5.js";import"./fetch-DnVtDecb.js";import"./delivery-queue-CXKynF1P.js";import"./channel-activity-CCNDbdD3.js";import"./tables-ERcoWFDp.js";import"./pairing-store-CbvMJhD3.js";import{t as formatDocsLink}from"./links-BgWWaaOT.js";import{n as runCommandWithRuntime}from"./cli-utils-LBYKdNFb.js";import"./help-format-Qfk2vDNX.js";import"./progress-BfOtdN6b.js";import"./resolve-route-D49haUnv.js";import"./replies-Bd2RPZwQ.js";import"./refresh-TiC_kLgE.js";import"./coding-tools.policy-6qh9acJy.js";import"./send-BJDzwYJN.js";import{d as openUrl,g as resolveControlUiLinks,i as detectBrowserOpenSupport,o as formatControlUiSshHint}from"./onboard-helpers-Cf5dNq7-.js";import{n as stylePromptMessage,r as stylePromptTitle,t as stylePromptHint}from"./prompt-style-BpVK43GK.js";import"./pairing-labels-BW5jQZlr.js";import"./session-cost-usage-BjH7mxVj.js";import"./usage-format-DGf8ZWPH.js";import"./provider-usage-BdrU4cIE.js";import"./active-listener-Dcg19lJG.js";import"./exec-approvals-BpVPDVtV.js";import"./nodes-screen-C3TDIi8d.js";import"./project-context-CJj0Inz-.js";import"./control-service-BbsswoMy.js";import"./stagger-8EkqkqJv.js";import"./channel-selection-DyAvzlY8.js";import"./mamba-state-engine-CoGqoBTH.js";import"./transformers-stream-D7nRu4Qu.js";import"./runtime-guard-DhksRHci.js";import"./program-context-7XUznN5J.js";import"./catalog-rgiY__UQ.js";import"./skills-status-vWC0PU8J.js";import{t as copyToClipboard}from"./clipboard-CGHe68at.js";import"./note-B6NtFdXt.js";import"./helpers-DTDCy17p.js";import"./plugin-auto-enable-DDry2fA6.js";import"./channels-status-issues-BlOu0Ul_.js";import"./completion-cli-CBES884A.js";import"./daemon-runtime-CtOr1ncS.js";import"./systemd-BG3_QT6W.js";import{t as resolveGatewayService}from"./service-D-NLDyK3.js";import"./lifecycle-core-Dwb4gHjZ.js";import"./diagnostics-DCjg0nBH.js";import{c as runDaemonStop}from"./daemon-cli-DlwOVDbt.js";import"./health-yS3NRKvY.js";import"./control-ui-assets-CWgH1Tda.js";import"./update-check-D6MvqVFE.js";import"./dm-policy-shared-Dhw9_6mi.js";import"./session-dirs-D_ARkyw0.js";import"./logging-DHa3jQN3.js";import"./systemd-linger-CT-VHPB3.js";import"./health-format-iE_KYEwP.js";import{n as doctorCommand,t as selectStyled}from"./prompt-select-styled-Cy70lEMU.js";import"./doctor-completion-Bv2ztEeW.js";import fs from"node:fs";import path from"node:path";import fs$1 from"node:fs/promises";import{cancel,confirm,isCancel,multiselect}from"@clack/prompts";async function dashboardCommand(runtime=defaultRuntime,options={}){let snapshot=await readConfigFileSnapshot(),cfg=snapshot.valid?snapshot.config:{},port=resolveGatewayPort(cfg),bind=cfg.gateway?.bind??`loopback`,basePath=cfg.gateway?.controlUi?.basePath,customBindHost=cfg.gateway?.customBindHost,token=cfg.gateway?.auth?.token??process.env.BUILDERFORCE_AGENTS_GATEWAY_TOKEN??``,links=resolveControlUiLinks({port,bind:bind===`lan`?`loopback`:bind,customBindHost,basePath}),dashboardUrl=token?`${links.httpUrl}#token=${encodeURIComponent(token)}`:links.httpUrl;runtime.log(`Dashboard URL: ${dashboardUrl}`);let copied=await copyToClipboard(dashboardUrl).catch(()=>!1);runtime.log(copied?`Copied to clipboard.`:`Copy to clipboard unavailable.`);let opened=!1,hint;options.noOpen?hint=`Browser launch disabled (--no-open). Use the URL above.`:((await detectBrowserOpenSupport()).ok&&(opened=await openUrl(dashboardUrl)),opened||(hint=formatControlUiSshHint({port,basePath,token:token||void 0}))),opened?runtime.log(`Opened in your browser. Keep that tab to control BuilderForceAgents.`):hint&&runtime.log(hint)}function collectWorkspaceDirs(cfg){let dirs=new Set,defaults=cfg?.agents?.defaults;typeof defaults?.workspace==`string`&&defaults.workspace.trim()&&dirs.add(resolveUserPath(defaults.workspace));let list=Array.isArray(cfg?.agents?.list)?cfg?.agents?.list:[];for(let agent of list){let workspace=agent.workspace;typeof workspace==`string`&&workspace.trim()&&dirs.add(resolveUserPath(workspace))}return dirs.size===0&&dirs.add(resolveDefaultAgentWorkspaceDir()),[...dirs]}function buildCleanupPlan(params){return{configInsideState:isPathWithin(params.configPath,params.stateDir),oauthInsideState:isPathWithin(params.oauthDir,params.stateDir),workspaceDirs:collectWorkspaceDirs(params.cfg)}}function isPathWithin(child,parent){let relative=path.relative(parent,child);return relative===``||!relative.startsWith(`..`)&&!path.isAbsolute(relative)}function isUnsafeRemovalTarget(target){if(!target.trim())return!0;let resolved=path.resolve(target);if(resolved===path.parse(resolved).root)return!0;let home=resolveHomeDir();return!!(home&&resolved===path.resolve(home))}async function removePath(target,runtime,opts){if(!target?.trim())return{ok:!1,skipped:!0};let resolved=path.resolve(target),displayLabel=shortenHomeInString(opts?.label??resolved);if(isUnsafeRemovalTarget(resolved))return runtime.error(`Refusing to remove unsafe path: ${displayLabel}`),{ok:!1};if(opts?.dryRun)return runtime.log(`[dry-run] remove ${displayLabel}`),{ok:!0,skipped:!0};try{return await fs$1.rm(resolved,{recursive:!0,force:!0}),runtime.log(`Removed ${displayLabel}`),{ok:!0}}catch(err){return runtime.error(`Failed to remove ${displayLabel}: ${String(err)}`),{ok:!1}}}async function listAgentSessionDirs(stateDir){let root=path.join(stateDir,`agents`);try{return(await fs$1.readdir(root,{withFileTypes:!0})).filter(entry=>entry.isDirectory()).map(entry=>path.join(root,entry.name,`sessions`))}catch{return[]}}function resolveCleanupPlanFromDisk(){let cfg=loadConfig(),stateDir=resolveStateDir(),configPath=resolveConfigPath(),oauthDir=resolveOAuthDir();return{cfg,stateDir,configPath,oauthDir,...buildCleanupPlan({cfg,stateDir,configPath,oauthDir})}}async function stopGatewayIfRunning(runtime){if(isNixMode)return;let service=resolveGatewayService(),loaded=!1;try{loaded=await service.isLoaded({env:process.env})}catch(err){runtime.error(`Gateway service check failed: ${String(err)}`);return}if(loaded)try{await service.stop({env:process.env,stdout:process.stdout})}catch(err){runtime.error(`Gateway stop failed: ${String(err)}`)}}async function resetCommand(runtime,opts){let interactive=!opts.nonInteractive;if(!interactive&&!opts.yes){runtime.error(`Non-interactive mode requires --yes.`),runtime.exit(1);return}let scope=opts.scope;if(!scope){if(!interactive){runtime.error(`Non-interactive mode requires --scope.`),runtime.exit(1);return}let selection=await selectStyled({message:`Reset scope`,options:[{value:`config`,label:`Config only`,hint:`builderforce.json`},{value:`config+creds+sessions`,label:`Config + credentials + sessions`,hint:`keeps workspace + auth profiles`},{value:`full`,label:`Full reset`,hint:`state dir + workspace`}],initialValue:`config+creds+sessions`});if(isCancel(selection)){cancel(stylePromptTitle(`Reset cancelled.`)??`Reset cancelled.`),runtime.exit(0);return}scope=selection}if(![`config`,`config+creds+sessions`,`full`].includes(scope)){runtime.error(`Invalid --scope. Expected "config", "config+creds+sessions", or "full".`),runtime.exit(1);return}if(interactive&&!opts.yes){let ok=await confirm({message:stylePromptMessage(`Proceed with ${scope} reset?`)});if(isCancel(ok)||!ok){cancel(stylePromptTitle(`Reset cancelled.`)??`Reset cancelled.`),runtime.exit(0);return}}let dryRun=!!opts.dryRun,{stateDir,configPath,oauthDir,configInsideState,oauthInsideState,workspaceDirs}=resolveCleanupPlanFromDisk();if(scope!==`config`&&(dryRun?runtime.log(`[dry-run] stop gateway service`):await stopGatewayIfRunning(runtime)),scope===`config`){await removePath(configPath,runtime,{dryRun,label:configPath});return}if(scope===`config+creds+sessions`){await removePath(configPath,runtime,{dryRun,label:configPath}),await removePath(oauthDir,runtime,{dryRun,label:oauthDir});let sessionDirs=await listAgentSessionDirs(stateDir);for(let dir of sessionDirs)await removePath(dir,runtime,{dryRun,label:dir});runtime.log(`Next: ${formatCliCommand(`builderforce onboard --install-daemon`)}`);return}if(scope===`full`){await removePath(stateDir,runtime,{dryRun,label:stateDir}),configInsideState||await removePath(configPath,runtime,{dryRun,label:configPath}),oauthInsideState||await removePath(oauthDir,runtime,{dryRun,label:oauthDir});for(let workspace of workspaceDirs)await removePath(workspace,runtime,{dryRun,label:workspace});runtime.log(`Next: ${formatCliCommand(`builderforce onboard --install-daemon`)}`);return}}const multiselectStyled=params=>multiselect({...params,message:stylePromptMessage(params.message),options:params.options.map(opt=>opt.hint===void 0?opt:{...opt,hint:stylePromptHint(opt.hint)})});function buildScopeSelection(opts){let hadExplicit=!!(opts.all||opts.service||opts.state||opts.workspace||opts.app),scopes=new Set;return(opts.all||opts.service)&&scopes.add(`service`),(opts.all||opts.state)&&scopes.add(`state`),(opts.all||opts.workspace)&&scopes.add(`workspace`),(opts.all||opts.app)&&scopes.add(`app`),{scopes,hadExplicit}}async function stopAndUninstallService(runtime){if(isNixMode)return runtime.error(`Nix mode detected; service uninstall is disabled.`),!1;let service=resolveGatewayService(),loaded=!1;try{loaded=await service.isLoaded({env:process.env})}catch(err){return runtime.error(`Gateway service check failed: ${String(err)}`),!1}if(!loaded)return runtime.log(`Gateway service ${service.notLoadedText}.`),!0;try{await service.stop({env:process.env,stdout:process.stdout})}catch(err){runtime.error(`Gateway stop failed: ${String(err)}`)}try{return await service.uninstall({env:process.env,stdout:process.stdout}),!0}catch(err){return runtime.error(`Gateway uninstall failed: ${String(err)}`),!1}}const MAC_APP_PATH=`/Applications/Builderforce.app`,LEGACY_MAC_APP_PATH=`/Applications/BuilderForceAgents.app`;async function removeMacApp(runtime,dryRun){process.platform===`darwin`&&(await removePath(MAC_APP_PATH,runtime,{dryRun,label:MAC_APP_PATH}),fs.existsSync(LEGACY_MAC_APP_PATH)&&await removePath(LEGACY_MAC_APP_PATH,runtime,{dryRun,label:LEGACY_MAC_APP_PATH}))}async function uninstallCommand(runtime,opts){let{scopes,hadExplicit}=buildScopeSelection(opts),interactive=!opts.nonInteractive;if(!interactive&&!opts.yes){runtime.error(`Non-interactive mode requires --yes.`),runtime.exit(1);return}if(!hadExplicit){if(!interactive){runtime.error(`Non-interactive mode requires explicit scopes (use --all).`),runtime.exit(1);return}let selection=await multiselectStyled({message:`Uninstall which components?`,options:[{value:`service`,label:`Gateway service`,hint:`launchd / systemd / schtasks`},{value:`state`,label:`State + config`,hint:`~/.builderforce`},{value:`workspace`,label:`Workspace`,hint:`agent files`},{value:`app`,label:`macOS app`,hint:MAC_APP_PATH}],initialValues:[`service`,`state`,`workspace`]});if(isCancel(selection)){cancel(stylePromptTitle(`Uninstall cancelled.`)??`Uninstall cancelled.`),runtime.exit(0);return}for(let value of selection)scopes.add(value)}if(scopes.size===0){runtime.log(`Nothing selected.`);return}if(interactive&&!opts.yes){let ok=await confirm({message:stylePromptMessage(`Proceed with uninstall?`)});if(isCancel(ok)||!ok){cancel(stylePromptTitle(`Uninstall cancelled.`)??`Uninstall cancelled.`),runtime.exit(0);return}}let dryRun=!!opts.dryRun,{stateDir,configPath,oauthDir,configInsideState,oauthInsideState,workspaceDirs}=resolveCleanupPlanFromDisk();if(scopes.has(`service`)&&(dryRun?runtime.log(`[dry-run] remove gateway service`):await stopAndUninstallService(runtime)),scopes.has(`state`)&&(await removePath(stateDir,runtime,{dryRun,label:stateDir}),configInsideState||await removePath(configPath,runtime,{dryRun,label:configPath}),oauthInsideState||await removePath(oauthDir,runtime,{dryRun,label:oauthDir})),scopes.has(`workspace`))for(let workspace of workspaceDirs)await removePath(workspace,runtime,{dryRun,label:workspace});if(scopes.has(`app`)&&await removeMacApp(runtime,dryRun),runtime.log(`CLI still installed. Remove via npm/pnpm if desired.`),scopes.has(`state`)&&!scopes.has(`workspace`)){let home=resolveHomeDir();home&&workspaceDirs.some(dir=>dir.startsWith(path.resolve(home)))&&runtime.log(`Tip: workspaces were preserved. Re-run with --workspace to remove them.`)}}function registerMaintenanceCommands(program){program.command(`doctor`).description(`Health checks + quick fixes for the gateway and channels`).addHelpText(`after`,()=>`\n${theme.muted(`Docs:`)} ${formatDocsLink(`/cli/doctor`,`docs.builderforce.ai/cli/doctor`)}\n`).option(`--no-workspace-suggestions`,`Disable workspace memory system suggestions`,!1).option(`--yes`,`Accept defaults without prompting`,!1).option(`--repair`,`Apply recommended repairs without prompting`,!1).option(`--fix`,`Apply recommended repairs (alias for --repair)`,!1).option(`--force`,`Apply aggressive repairs (overwrites custom service config)`,!1).option(`--non-interactive`,`Run without prompts (safe migrations only)`,!1).option(`--generate-gateway-token`,`Generate and configure a gateway token`,!1).option(`--deep`,`Scan system services for extra gateway installs`,!1).action(async opts=>{await runCommandWithRuntime(defaultRuntime,async()=>{await doctorCommand(defaultRuntime,{workspaceSuggestions:opts.workspaceSuggestions,yes:!!opts.yes,repair:!!opts.repair||!!opts.fix,force:!!opts.force,nonInteractive:!!opts.nonInteractive,generateGatewayToken:!!opts.generateGatewayToken,deep:!!opts.deep}),defaultRuntime.exit(0)})}),program.command(`dashboard`).description(`Open the Control UI with your current token`).addHelpText(`after`,()=>`\n${theme.muted(`Docs:`)} ${formatDocsLink(`/cli/dashboard`,`docs.builderforce.ai/cli/dashboard`)}\n`).option(`--no-open`,`Print URL but do not launch a browser`,!1).action(async opts=>{await runCommandWithRuntime(defaultRuntime,async()=>{await dashboardCommand(defaultRuntime,{noOpen:!!opts.noOpen})})}),program.command(`reset`).description(`Reset local config/state (keeps the CLI installed)`).addHelpText(`after`,()=>`\n${theme.muted(`Docs:`)} ${formatDocsLink(`/cli/reset`,`docs.builderforce.ai/cli/reset`)}\n`).option(`--scope <scope>`,`config|config+creds+sessions|full (default: interactive prompt)`).option(`--yes`,`Skip confirmation prompts`,!1).option(`--non-interactive`,`Disable prompts (requires --scope + --yes)`,!1).option(`--dry-run`,`Print actions without removing files`,!1).action(async opts=>{await runCommandWithRuntime(defaultRuntime,async()=>{await resetCommand(defaultRuntime,{scope:opts.scope,yes:!!opts.yes,nonInteractive:!!opts.nonInteractive,dryRun:!!opts.dryRun})})}),program.command(`uninstall`).description(`Uninstall the gateway service + local data (CLI remains)`).addHelpText(`after`,()=>`\n${theme.muted(`Docs:`)} ${formatDocsLink(`/cli/uninstall`,`docs.builderforce.ai/cli/uninstall`)}\n`).option(`--service`,`Remove the gateway service`,!1).option(`--state`,`Remove state + config`,!1).option(`--workspace`,`Remove workspace dirs`,!1).option(`--app`,`Remove the macOS app`,!1).option(`--all`,`Remove service + state + workspace + app`,!1).option(`--yes`,`Skip confirmation prompts`,!1).option(`--non-interactive`,`Disable prompts (requires --yes)`,!1).option(`--dry-run`,`Print actions without removing files`,!1).action(async opts=>{await runCommandWithRuntime(defaultRuntime,async()=>{await uninstallCommand(defaultRuntime,{service:!!opts.service,state:!!opts.state,workspace:!!opts.workspace,app:!!opts.app,all:!!opts.all,yes:!!opts.yes,nonInteractive:!!opts.nonInteractive,dryRun:!!opts.dryRun})})}),program.command(`stop`).description(`Stop the running gateway service (launchd/systemd/schtasks)`).addHelpText(`after`,()=>`\n${theme.muted(`Docs:`)} ${formatDocsLink(`/cli/gateway`,`docs.builderforce.ai/cli/gateway`)}\n`).option(`--json`,`Output JSON`,!1).action(async opts=>{await runCommandWithRuntime(defaultRuntime,async()=>{await runDaemonStop({json:!!opts.json})})})}export{registerMaintenanceCommands};
|
|
1
|
+
import{g as resolveStateDir,i as isNixMode,m as resolveOAuthDir,o as resolveConfigPath,u as resolveGatewayPort}from"./paths-5FcIFMsj.js";import{B as theme,S as shortenHomeInString,b as resolveUserPath,v as resolveHomeDir}from"./utils-DbaBVFaK.js";import"./embedded-helpers-CEsr3aQ0.js";import"./reply-Cd3vVnD7.js";import"./session-key-EoB0qaG9.js";import"./builderforce-root-D64_sXEi.js";import{i as defaultRuntime}from"./subsystem-B3TqcCrZ.js";import"./registry-TdK-aV05.js";import"./logger-Bch0bx9c.js";import"./exec-DdcIjeyn.js";import{k as resolveDefaultAgentWorkspaceDir}from"./agent-scope-DPtjOxzp.js";import"./src-CA0fU67C.js";import"./model-selection-9bRFKBI_.js";import{t as formatCliCommand}from"./command-format-D806O2pt.js";import"./env-file-D1MDi-AM.js";import"./boolean-Cnh1KNl1.js";import"./env-BIdU5BAp.js";import"./src-DTFqOIQD.js";import{a as readConfigFileSnapshot,r as loadConfig}from"./io-3R_ZyUxB.js";import"./manifest-registry-BJCfNV1a.js";import"./config-_1Ca6jGb.js";import"./runner-SxCr9kXD.js";import"./model-catalog-C6UrZ0uG.js";import"./sandbox-BZibn6PX.js";import"./chrome-a3X9_-nf.js";import"./tailscale-DLkpGquM.js";import"./auth-lebUHrkd.js";import"./server-context-DJZT7Upf.js";import"./frontmatter-3D1EdC1L.js";import"./skills-Ba4ftrB-.js";import"./plugin-skills-B11rggZh.js";import"./routes-BzfLvF8W.js";import"./redact-BHdfp2MZ.js";import"./errors-B1MIg3g-.js";import"./paths-cR8ct-Y3.js";import"./ssrf-p9k-iapc.js";import"./image-ops-C8IUQKjn.js";import"./store-CmHBQ-yX.js";import"./ports-DgmEDNOm.js";import"./trash-DD2Hc5oq.js";import"./sessions-CdanN_ZI.js";import"./message-channel-D_jXxXQj.js";import"./plugins-D5zP6ENo.js";import"./accounts-o35LU_iy.js";import"./accounts-rmXEiebi.js";import"./accounts-BLueHgKj.js";import"./bindings-DR59065T.js";import"./send-DerUBvXW.js";import"./send-DyF1Xy9K.js";import"./paths-DJ6rztqJ.js";import"./tool-images-B7b_OiMz.js";import"./tool-display-ByOZtWvA.js";import"./fetch-guard-8mwt3-hm.js";import"./api-key-rotation-CHBjUwUJ.js";import"./fetch-BuOLY9KP.js";import"./sqlite-C39E12XS.js";import"./tokens-CCU3zO-D.js";import"./project-context-store-wcq7lXuI.js";import"./with-timeout-Bwq-GyUQ.js";import"./deliver-BpLm3ktn.js";import"./send-CBBziNqM.js";import"./workspace-D4LK4thI.js";import"./reply-prefix-zIMgi6K6.js";import"./memory-cli-DRz4wtHk.js";import"./manager-DwywI_5-.js";import"./retry-DlVhg5qu.js";import"./client-xfoidwPI.js";import"./call-BbRf8gFM.js";import"./common-BTbIhLyt.js";import"./chunk-FCBlVOyo.js";import"./markdown-tables-P6uoUSFa.js";import"./ir-5BNoIXZm.js";import"./render-D1dVTEB1.js";import"./builderforcellm-syscheck-DrFJ638L.js";import"./send-4d9NswaD.js";import"./outbound-attachment-C7wByQO5.js";import"./fetch-DnVtDecb.js";import"./delivery-queue-CXKynF1P.js";import"./channel-activity-CCNDbdD3.js";import"./tables-ERcoWFDp.js";import"./pairing-store-CbvMJhD3.js";import{t as formatDocsLink}from"./links-BgWWaaOT.js";import{n as runCommandWithRuntime}from"./cli-utils-LBYKdNFb.js";import"./help-format-Qfk2vDNX.js";import"./progress-BfOtdN6b.js";import"./resolve-route-D49haUnv.js";import"./replies-Bd2RPZwQ.js";import"./refresh-TiC_kLgE.js";import"./coding-tools.policy-6qh9acJy.js";import"./send-BJDzwYJN.js";import{d as openUrl,g as resolveControlUiLinks,i as detectBrowserOpenSupport,o as formatControlUiSshHint}from"./onboard-helpers-Cf5dNq7-.js";import{n as stylePromptMessage,r as stylePromptTitle,t as stylePromptHint}from"./prompt-style-BpVK43GK.js";import"./pairing-labels-BW5jQZlr.js";import"./session-cost-usage-BjH7mxVj.js";import"./usage-format-DGf8ZWPH.js";import"./provider-usage-BdrU4cIE.js";import"./active-listener-Dcg19lJG.js";import"./exec-approvals-BpVPDVtV.js";import"./nodes-screen-C3TDIi8d.js";import"./project-context-CJj0Inz-.js";import"./control-service-BbsswoMy.js";import"./stagger-8EkqkqJv.js";import"./channel-selection-DyAvzlY8.js";import"./mamba-state-engine-CoGqoBTH.js";import"./transformers-stream-D7nRu4Qu.js";import"./runtime-guard-DhksRHci.js";import"./program-context-CpxTJP1m.js";import"./catalog-rgiY__UQ.js";import"./skills-status-vWC0PU8J.js";import{t as copyToClipboard}from"./clipboard-CGHe68at.js";import"./note-B6NtFdXt.js";import"./helpers-DTDCy17p.js";import"./plugin-auto-enable-DDry2fA6.js";import"./channels-status-issues-BlOu0Ul_.js";import"./completion-cli-Ch9ozmkg.js";import"./daemon-runtime-CtOr1ncS.js";import"./systemd-BG3_QT6W.js";import{t as resolveGatewayService}from"./service-D-NLDyK3.js";import"./lifecycle-core-Dwb4gHjZ.js";import"./diagnostics-DCjg0nBH.js";import{c as runDaemonStop}from"./daemon-cli-DlwOVDbt.js";import"./health-yS3NRKvY.js";import"./control-ui-assets-CWgH1Tda.js";import"./update-check-D6MvqVFE.js";import"./dm-policy-shared-Dhw9_6mi.js";import"./session-dirs-D_ARkyw0.js";import"./logging-DHa3jQN3.js";import"./systemd-linger-CT-VHPB3.js";import"./health-format-iE_KYEwP.js";import{n as doctorCommand,t as selectStyled}from"./prompt-select-styled-Qb0DubNy.js";import"./doctor-completion-Ccs-JEvV.js";import fs from"node:fs";import path from"node:path";import fs$1 from"node:fs/promises";import{cancel,confirm,isCancel,multiselect}from"@clack/prompts";async function dashboardCommand(runtime=defaultRuntime,options={}){let snapshot=await readConfigFileSnapshot(),cfg=snapshot.valid?snapshot.config:{},port=resolveGatewayPort(cfg),bind=cfg.gateway?.bind??`loopback`,basePath=cfg.gateway?.controlUi?.basePath,customBindHost=cfg.gateway?.customBindHost,token=cfg.gateway?.auth?.token??process.env.BUILDERFORCE_AGENTS_GATEWAY_TOKEN??``,links=resolveControlUiLinks({port,bind:bind===`lan`?`loopback`:bind,customBindHost,basePath}),dashboardUrl=token?`${links.httpUrl}#token=${encodeURIComponent(token)}`:links.httpUrl;runtime.log(`Dashboard URL: ${dashboardUrl}`);let copied=await copyToClipboard(dashboardUrl).catch(()=>!1);runtime.log(copied?`Copied to clipboard.`:`Copy to clipboard unavailable.`);let opened=!1,hint;options.noOpen?hint=`Browser launch disabled (--no-open). Use the URL above.`:((await detectBrowserOpenSupport()).ok&&(opened=await openUrl(dashboardUrl)),opened||(hint=formatControlUiSshHint({port,basePath,token:token||void 0}))),opened?runtime.log(`Opened in your browser. Keep that tab to control BuilderForceAgents.`):hint&&runtime.log(hint)}function collectWorkspaceDirs(cfg){let dirs=new Set,defaults=cfg?.agents?.defaults;typeof defaults?.workspace==`string`&&defaults.workspace.trim()&&dirs.add(resolveUserPath(defaults.workspace));let list=Array.isArray(cfg?.agents?.list)?cfg?.agents?.list:[];for(let agent of list){let workspace=agent.workspace;typeof workspace==`string`&&workspace.trim()&&dirs.add(resolveUserPath(workspace))}return dirs.size===0&&dirs.add(resolveDefaultAgentWorkspaceDir()),[...dirs]}function buildCleanupPlan(params){return{configInsideState:isPathWithin(params.configPath,params.stateDir),oauthInsideState:isPathWithin(params.oauthDir,params.stateDir),workspaceDirs:collectWorkspaceDirs(params.cfg)}}function isPathWithin(child,parent){let relative=path.relative(parent,child);return relative===``||!relative.startsWith(`..`)&&!path.isAbsolute(relative)}function isUnsafeRemovalTarget(target){if(!target.trim())return!0;let resolved=path.resolve(target);if(resolved===path.parse(resolved).root)return!0;let home=resolveHomeDir();return!!(home&&resolved===path.resolve(home))}async function removePath(target,runtime,opts){if(!target?.trim())return{ok:!1,skipped:!0};let resolved=path.resolve(target),displayLabel=shortenHomeInString(opts?.label??resolved);if(isUnsafeRemovalTarget(resolved))return runtime.error(`Refusing to remove unsafe path: ${displayLabel}`),{ok:!1};if(opts?.dryRun)return runtime.log(`[dry-run] remove ${displayLabel}`),{ok:!0,skipped:!0};try{return await fs$1.rm(resolved,{recursive:!0,force:!0}),runtime.log(`Removed ${displayLabel}`),{ok:!0}}catch(err){return runtime.error(`Failed to remove ${displayLabel}: ${String(err)}`),{ok:!1}}}async function listAgentSessionDirs(stateDir){let root=path.join(stateDir,`agents`);try{return(await fs$1.readdir(root,{withFileTypes:!0})).filter(entry=>entry.isDirectory()).map(entry=>path.join(root,entry.name,`sessions`))}catch{return[]}}function resolveCleanupPlanFromDisk(){let cfg=loadConfig(),stateDir=resolveStateDir(),configPath=resolveConfigPath(),oauthDir=resolveOAuthDir();return{cfg,stateDir,configPath,oauthDir,...buildCleanupPlan({cfg,stateDir,configPath,oauthDir})}}async function stopGatewayIfRunning(runtime){if(isNixMode)return;let service=resolveGatewayService(),loaded=!1;try{loaded=await service.isLoaded({env:process.env})}catch(err){runtime.error(`Gateway service check failed: ${String(err)}`);return}if(loaded)try{await service.stop({env:process.env,stdout:process.stdout})}catch(err){runtime.error(`Gateway stop failed: ${String(err)}`)}}async function resetCommand(runtime,opts){let interactive=!opts.nonInteractive;if(!interactive&&!opts.yes){runtime.error(`Non-interactive mode requires --yes.`),runtime.exit(1);return}let scope=opts.scope;if(!scope){if(!interactive){runtime.error(`Non-interactive mode requires --scope.`),runtime.exit(1);return}let selection=await selectStyled({message:`Reset scope`,options:[{value:`config`,label:`Config only`,hint:`builderforce.json`},{value:`config+creds+sessions`,label:`Config + credentials + sessions`,hint:`keeps workspace + auth profiles`},{value:`full`,label:`Full reset`,hint:`state dir + workspace`}],initialValue:`config+creds+sessions`});if(isCancel(selection)){cancel(stylePromptTitle(`Reset cancelled.`)??`Reset cancelled.`),runtime.exit(0);return}scope=selection}if(![`config`,`config+creds+sessions`,`full`].includes(scope)){runtime.error(`Invalid --scope. Expected "config", "config+creds+sessions", or "full".`),runtime.exit(1);return}if(interactive&&!opts.yes){let ok=await confirm({message:stylePromptMessage(`Proceed with ${scope} reset?`)});if(isCancel(ok)||!ok){cancel(stylePromptTitle(`Reset cancelled.`)??`Reset cancelled.`),runtime.exit(0);return}}let dryRun=!!opts.dryRun,{stateDir,configPath,oauthDir,configInsideState,oauthInsideState,workspaceDirs}=resolveCleanupPlanFromDisk();if(scope!==`config`&&(dryRun?runtime.log(`[dry-run] stop gateway service`):await stopGatewayIfRunning(runtime)),scope===`config`){await removePath(configPath,runtime,{dryRun,label:configPath});return}if(scope===`config+creds+sessions`){await removePath(configPath,runtime,{dryRun,label:configPath}),await removePath(oauthDir,runtime,{dryRun,label:oauthDir});let sessionDirs=await listAgentSessionDirs(stateDir);for(let dir of sessionDirs)await removePath(dir,runtime,{dryRun,label:dir});runtime.log(`Next: ${formatCliCommand(`builderforce onboard --install-daemon`)}`);return}if(scope===`full`){await removePath(stateDir,runtime,{dryRun,label:stateDir}),configInsideState||await removePath(configPath,runtime,{dryRun,label:configPath}),oauthInsideState||await removePath(oauthDir,runtime,{dryRun,label:oauthDir});for(let workspace of workspaceDirs)await removePath(workspace,runtime,{dryRun,label:workspace});runtime.log(`Next: ${formatCliCommand(`builderforce onboard --install-daemon`)}`);return}}const multiselectStyled=params=>multiselect({...params,message:stylePromptMessage(params.message),options:params.options.map(opt=>opt.hint===void 0?opt:{...opt,hint:stylePromptHint(opt.hint)})});function buildScopeSelection(opts){let hadExplicit=!!(opts.all||opts.service||opts.state||opts.workspace||opts.app),scopes=new Set;return(opts.all||opts.service)&&scopes.add(`service`),(opts.all||opts.state)&&scopes.add(`state`),(opts.all||opts.workspace)&&scopes.add(`workspace`),(opts.all||opts.app)&&scopes.add(`app`),{scopes,hadExplicit}}async function stopAndUninstallService(runtime){if(isNixMode)return runtime.error(`Nix mode detected; service uninstall is disabled.`),!1;let service=resolveGatewayService(),loaded=!1;try{loaded=await service.isLoaded({env:process.env})}catch(err){return runtime.error(`Gateway service check failed: ${String(err)}`),!1}if(!loaded)return runtime.log(`Gateway service ${service.notLoadedText}.`),!0;try{await service.stop({env:process.env,stdout:process.stdout})}catch(err){runtime.error(`Gateway stop failed: ${String(err)}`)}try{return await service.uninstall({env:process.env,stdout:process.stdout}),!0}catch(err){return runtime.error(`Gateway uninstall failed: ${String(err)}`),!1}}const MAC_APP_PATH=`/Applications/Builderforce.app`,LEGACY_MAC_APP_PATH=`/Applications/BuilderForceAgents.app`;async function removeMacApp(runtime,dryRun){process.platform===`darwin`&&(await removePath(MAC_APP_PATH,runtime,{dryRun,label:MAC_APP_PATH}),fs.existsSync(LEGACY_MAC_APP_PATH)&&await removePath(LEGACY_MAC_APP_PATH,runtime,{dryRun,label:LEGACY_MAC_APP_PATH}))}async function uninstallCommand(runtime,opts){let{scopes,hadExplicit}=buildScopeSelection(opts),interactive=!opts.nonInteractive;if(!interactive&&!opts.yes){runtime.error(`Non-interactive mode requires --yes.`),runtime.exit(1);return}if(!hadExplicit){if(!interactive){runtime.error(`Non-interactive mode requires explicit scopes (use --all).`),runtime.exit(1);return}let selection=await multiselectStyled({message:`Uninstall which components?`,options:[{value:`service`,label:`Gateway service`,hint:`launchd / systemd / schtasks`},{value:`state`,label:`State + config`,hint:`~/.builderforce`},{value:`workspace`,label:`Workspace`,hint:`agent files`},{value:`app`,label:`macOS app`,hint:MAC_APP_PATH}],initialValues:[`service`,`state`,`workspace`]});if(isCancel(selection)){cancel(stylePromptTitle(`Uninstall cancelled.`)??`Uninstall cancelled.`),runtime.exit(0);return}for(let value of selection)scopes.add(value)}if(scopes.size===0){runtime.log(`Nothing selected.`);return}if(interactive&&!opts.yes){let ok=await confirm({message:stylePromptMessage(`Proceed with uninstall?`)});if(isCancel(ok)||!ok){cancel(stylePromptTitle(`Uninstall cancelled.`)??`Uninstall cancelled.`),runtime.exit(0);return}}let dryRun=!!opts.dryRun,{stateDir,configPath,oauthDir,configInsideState,oauthInsideState,workspaceDirs}=resolveCleanupPlanFromDisk();if(scopes.has(`service`)&&(dryRun?runtime.log(`[dry-run] remove gateway service`):await stopAndUninstallService(runtime)),scopes.has(`state`)&&(await removePath(stateDir,runtime,{dryRun,label:stateDir}),configInsideState||await removePath(configPath,runtime,{dryRun,label:configPath}),oauthInsideState||await removePath(oauthDir,runtime,{dryRun,label:oauthDir})),scopes.has(`workspace`))for(let workspace of workspaceDirs)await removePath(workspace,runtime,{dryRun,label:workspace});if(scopes.has(`app`)&&await removeMacApp(runtime,dryRun),runtime.log(`CLI still installed. Remove via npm/pnpm if desired.`),scopes.has(`state`)&&!scopes.has(`workspace`)){let home=resolveHomeDir();home&&workspaceDirs.some(dir=>dir.startsWith(path.resolve(home)))&&runtime.log(`Tip: workspaces were preserved. Re-run with --workspace to remove them.`)}}function registerMaintenanceCommands(program){program.command(`doctor`).description(`Health checks + quick fixes for the gateway and channels`).addHelpText(`after`,()=>`\n${theme.muted(`Docs:`)} ${formatDocsLink(`/cli/doctor`,`docs.builderforce.ai/cli/doctor`)}\n`).option(`--no-workspace-suggestions`,`Disable workspace memory system suggestions`,!1).option(`--yes`,`Accept defaults without prompting`,!1).option(`--repair`,`Apply recommended repairs without prompting`,!1).option(`--fix`,`Apply recommended repairs (alias for --repair)`,!1).option(`--force`,`Apply aggressive repairs (overwrites custom service config)`,!1).option(`--non-interactive`,`Run without prompts (safe migrations only)`,!1).option(`--generate-gateway-token`,`Generate and configure a gateway token`,!1).option(`--deep`,`Scan system services for extra gateway installs`,!1).action(async opts=>{await runCommandWithRuntime(defaultRuntime,async()=>{await doctorCommand(defaultRuntime,{workspaceSuggestions:opts.workspaceSuggestions,yes:!!opts.yes,repair:!!opts.repair||!!opts.fix,force:!!opts.force,nonInteractive:!!opts.nonInteractive,generateGatewayToken:!!opts.generateGatewayToken,deep:!!opts.deep}),defaultRuntime.exit(0)})}),program.command(`dashboard`).description(`Open the Control UI with your current token`).addHelpText(`after`,()=>`\n${theme.muted(`Docs:`)} ${formatDocsLink(`/cli/dashboard`,`docs.builderforce.ai/cli/dashboard`)}\n`).option(`--no-open`,`Print URL but do not launch a browser`,!1).action(async opts=>{await runCommandWithRuntime(defaultRuntime,async()=>{await dashboardCommand(defaultRuntime,{noOpen:!!opts.noOpen})})}),program.command(`reset`).description(`Reset local config/state (keeps the CLI installed)`).addHelpText(`after`,()=>`\n${theme.muted(`Docs:`)} ${formatDocsLink(`/cli/reset`,`docs.builderforce.ai/cli/reset`)}\n`).option(`--scope <scope>`,`config|config+creds+sessions|full (default: interactive prompt)`).option(`--yes`,`Skip confirmation prompts`,!1).option(`--non-interactive`,`Disable prompts (requires --scope + --yes)`,!1).option(`--dry-run`,`Print actions without removing files`,!1).action(async opts=>{await runCommandWithRuntime(defaultRuntime,async()=>{await resetCommand(defaultRuntime,{scope:opts.scope,yes:!!opts.yes,nonInteractive:!!opts.nonInteractive,dryRun:!!opts.dryRun})})}),program.command(`uninstall`).description(`Uninstall the gateway service + local data (CLI remains)`).addHelpText(`after`,()=>`\n${theme.muted(`Docs:`)} ${formatDocsLink(`/cli/uninstall`,`docs.builderforce.ai/cli/uninstall`)}\n`).option(`--service`,`Remove the gateway service`,!1).option(`--state`,`Remove state + config`,!1).option(`--workspace`,`Remove workspace dirs`,!1).option(`--app`,`Remove the macOS app`,!1).option(`--all`,`Remove service + state + workspace + app`,!1).option(`--yes`,`Skip confirmation prompts`,!1).option(`--non-interactive`,`Disable prompts (requires --yes)`,!1).option(`--dry-run`,`Print actions without removing files`,!1).action(async opts=>{await runCommandWithRuntime(defaultRuntime,async()=>{await uninstallCommand(defaultRuntime,{service:!!opts.service,state:!!opts.state,workspace:!!opts.workspace,app:!!opts.app,all:!!opts.all,yes:!!opts.yes,nonInteractive:!!opts.nonInteractive,dryRun:!!opts.dryRun})})}),program.command(`stop`).description(`Stop the running gateway service (launchd/systemd/schtasks)`).addHelpText(`after`,()=>`\n${theme.muted(`Docs:`)} ${formatDocsLink(`/cli/gateway`,`docs.builderforce.ai/cli/gateway`)}\n`).option(`--json`,`Output JSON`,!1).action(async opts=>{await runCommandWithRuntime(defaultRuntime,async()=>{await runDaemonStop({json:!!opts.json})})})}export{registerMaintenanceCommands};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./paths-5FcIFMsj.js";import{B as theme}from"./utils-DbaBVFaK.js";import"./embedded-helpers-CEsr3aQ0.js";import"./reply-Cd3vVnD7.js";import"./session-key-EoB0qaG9.js";import"./builderforce-root-D64_sXEi.js";import{i as defaultRuntime}from"./subsystem-B3TqcCrZ.js";import"./registry-TdK-aV05.js";import"./logger-Bch0bx9c.js";import"./exec-DdcIjeyn.js";import"./agent-scope-DPtjOxzp.js";import"./src-CA0fU67C.js";import"./model-selection-9bRFKBI_.js";import"./env-file-D1MDi-AM.js";import"./boolean-Cnh1KNl1.js";import"./env-BIdU5BAp.js";import"./src-DTFqOIQD.js";import"./io-3R_ZyUxB.js";import"./manifest-registry-BJCfNV1a.js";import"./config-_1Ca6jGb.js";import"./runner-SxCr9kXD.js";import"./model-catalog-C6UrZ0uG.js";import"./sandbox-BZibn6PX.js";import"./chrome-a3X9_-nf.js";import"./tailscale-DLkpGquM.js";import"./auth-lebUHrkd.js";import"./server-context-DJZT7Upf.js";import"./frontmatter-3D1EdC1L.js";import"./skills-Ba4ftrB-.js";import"./plugin-skills-B11rggZh.js";import"./routes-BzfLvF8W.js";import"./redact-BHdfp2MZ.js";import"./errors-B1MIg3g-.js";import"./paths-cR8ct-Y3.js";import"./ssrf-p9k-iapc.js";import"./image-ops-C8IUQKjn.js";import"./store-CmHBQ-yX.js";import"./ports-DgmEDNOm.js";import"./trash-DD2Hc5oq.js";import"./sessions-CdanN_ZI.js";import"./message-channel-D_jXxXQj.js";import"./plugins-D5zP6ENo.js";import"./accounts-o35LU_iy.js";import"./accounts-rmXEiebi.js";import"./accounts-BLueHgKj.js";import"./bindings-DR59065T.js";import"./send-DerUBvXW.js";import"./send-DyF1Xy9K.js";import"./paths-DJ6rztqJ.js";import"./tool-images-B7b_OiMz.js";import"./tool-display-ByOZtWvA.js";import"./fetch-guard-8mwt3-hm.js";import"./api-key-rotation-CHBjUwUJ.js";import"./fetch-BuOLY9KP.js";import"./sqlite-C39E12XS.js";import"./tokens-CCU3zO-D.js";import"./project-context-store-wcq7lXuI.js";import"./with-timeout-Bwq-GyUQ.js";import"./deliver-BpLm3ktn.js";import"./send-CBBziNqM.js";import"./workspace-D4LK4thI.js";import"./reply-prefix-zIMgi6K6.js";import"./memory-cli-DRz4wtHk.js";import"./manager-DwywI_5-.js";import"./retry-DlVhg5qu.js";import"./client-xfoidwPI.js";import"./call-BbRf8gFM.js";import"./common-BTbIhLyt.js";import"./chunk-FCBlVOyo.js";import"./markdown-tables-P6uoUSFa.js";import"./ir-5BNoIXZm.js";import"./render-D1dVTEB1.js";import"./builderforcellm-syscheck-DrFJ638L.js";import"./send-4d9NswaD.js";import"./outbound-attachment-C7wByQO5.js";import"./fetch-DnVtDecb.js";import"./delivery-queue-CXKynF1P.js";import"./channel-activity-CCNDbdD3.js";import"./tables-ERcoWFDp.js";import"./pairing-store-CbvMJhD3.js";import{t as formatDocsLink}from"./links-BgWWaaOT.js";import{n as runCommandWithRuntime}from"./cli-utils-LBYKdNFb.js";import"./help-format-Qfk2vDNX.js";import"./progress-BfOtdN6b.js";import"./resolve-route-D49haUnv.js";import"./replies-Bd2RPZwQ.js";import"./refresh-TiC_kLgE.js";import"./coding-tools.policy-6qh9acJy.js";import"./send-BJDzwYJN.js";import"./onboard-helpers-Cf5dNq7-.js";import"./prompt-style-BpVK43GK.js";import"./pairing-labels-BW5jQZlr.js";import"./session-cost-usage-BjH7mxVj.js";import"./usage-format-DGf8ZWPH.js";import"./provider-usage-BdrU4cIE.js";import"./active-listener-Dcg19lJG.js";import"./exec-approvals-BpVPDVtV.js";import"./nodes-screen-C3TDIi8d.js";import"./project-context-CJj0Inz-.js";import"./control-service-BbsswoMy.js";import"./stagger-8EkqkqJv.js";import"./channel-selection-DyAvzlY8.js";import"./mamba-state-engine-CoGqoBTH.js";import"./transformers-stream-D7nRu4Qu.js";import"./runtime-guard-DhksRHci.js";import"./note-B6NtFdXt.js";import"./clack-prompter-Dg23_riR.js";import"./helpers-DTDCy17p.js";import"./daemon-runtime-CtOr1ncS.js";import"./systemd-BG3_QT6W.js";import"./service-D-NLDyK3.js";import"./health-yS3NRKvY.js";import"./onboarding-
|
|
1
|
+
import"./paths-5FcIFMsj.js";import{B as theme}from"./utils-DbaBVFaK.js";import"./embedded-helpers-CEsr3aQ0.js";import"./reply-Cd3vVnD7.js";import"./session-key-EoB0qaG9.js";import"./builderforce-root-D64_sXEi.js";import{i as defaultRuntime}from"./subsystem-B3TqcCrZ.js";import"./registry-TdK-aV05.js";import"./logger-Bch0bx9c.js";import"./exec-DdcIjeyn.js";import"./agent-scope-DPtjOxzp.js";import"./src-CA0fU67C.js";import"./model-selection-9bRFKBI_.js";import"./env-file-D1MDi-AM.js";import"./boolean-Cnh1KNl1.js";import"./env-BIdU5BAp.js";import"./src-DTFqOIQD.js";import"./io-3R_ZyUxB.js";import"./manifest-registry-BJCfNV1a.js";import"./config-_1Ca6jGb.js";import"./runner-SxCr9kXD.js";import"./model-catalog-C6UrZ0uG.js";import"./sandbox-BZibn6PX.js";import"./chrome-a3X9_-nf.js";import"./tailscale-DLkpGquM.js";import"./auth-lebUHrkd.js";import"./server-context-DJZT7Upf.js";import"./frontmatter-3D1EdC1L.js";import"./skills-Ba4ftrB-.js";import"./plugin-skills-B11rggZh.js";import"./routes-BzfLvF8W.js";import"./redact-BHdfp2MZ.js";import"./errors-B1MIg3g-.js";import"./paths-cR8ct-Y3.js";import"./ssrf-p9k-iapc.js";import"./image-ops-C8IUQKjn.js";import"./store-CmHBQ-yX.js";import"./ports-DgmEDNOm.js";import"./trash-DD2Hc5oq.js";import"./sessions-CdanN_ZI.js";import"./message-channel-D_jXxXQj.js";import"./plugins-D5zP6ENo.js";import"./accounts-o35LU_iy.js";import"./accounts-rmXEiebi.js";import"./accounts-BLueHgKj.js";import"./bindings-DR59065T.js";import"./send-DerUBvXW.js";import"./send-DyF1Xy9K.js";import"./paths-DJ6rztqJ.js";import"./tool-images-B7b_OiMz.js";import"./tool-display-ByOZtWvA.js";import"./fetch-guard-8mwt3-hm.js";import"./api-key-rotation-CHBjUwUJ.js";import"./fetch-BuOLY9KP.js";import"./sqlite-C39E12XS.js";import"./tokens-CCU3zO-D.js";import"./project-context-store-wcq7lXuI.js";import"./with-timeout-Bwq-GyUQ.js";import"./deliver-BpLm3ktn.js";import"./send-CBBziNqM.js";import"./workspace-D4LK4thI.js";import"./reply-prefix-zIMgi6K6.js";import"./memory-cli-DRz4wtHk.js";import"./manager-DwywI_5-.js";import"./retry-DlVhg5qu.js";import"./client-xfoidwPI.js";import"./call-BbRf8gFM.js";import"./common-BTbIhLyt.js";import"./chunk-FCBlVOyo.js";import"./markdown-tables-P6uoUSFa.js";import"./ir-5BNoIXZm.js";import"./render-D1dVTEB1.js";import"./builderforcellm-syscheck-DrFJ638L.js";import"./send-4d9NswaD.js";import"./outbound-attachment-C7wByQO5.js";import"./fetch-DnVtDecb.js";import"./delivery-queue-CXKynF1P.js";import"./channel-activity-CCNDbdD3.js";import"./tables-ERcoWFDp.js";import"./pairing-store-CbvMJhD3.js";import{t as formatDocsLink}from"./links-BgWWaaOT.js";import{n as runCommandWithRuntime}from"./cli-utils-LBYKdNFb.js";import"./help-format-Qfk2vDNX.js";import"./progress-BfOtdN6b.js";import"./resolve-route-D49haUnv.js";import"./replies-Bd2RPZwQ.js";import"./refresh-TiC_kLgE.js";import"./coding-tools.policy-6qh9acJy.js";import"./send-BJDzwYJN.js";import"./onboard-helpers-Cf5dNq7-.js";import"./prompt-style-BpVK43GK.js";import"./pairing-labels-BW5jQZlr.js";import"./session-cost-usage-BjH7mxVj.js";import"./usage-format-DGf8ZWPH.js";import"./provider-usage-BdrU4cIE.js";import"./active-listener-Dcg19lJG.js";import"./exec-approvals-BpVPDVtV.js";import"./nodes-screen-C3TDIi8d.js";import"./project-context-CJj0Inz-.js";import"./control-service-BbsswoMy.js";import"./stagger-8EkqkqJv.js";import"./channel-selection-DyAvzlY8.js";import"./mamba-state-engine-CoGqoBTH.js";import"./transformers-stream-D7nRu4Qu.js";import"./runtime-guard-DhksRHci.js";import"./note-B6NtFdXt.js";import"./clack-prompter-Dg23_riR.js";import"./helpers-DTDCy17p.js";import"./daemon-runtime-CtOr1ncS.js";import"./systemd-BG3_QT6W.js";import"./service-D-NLDyK3.js";import"./health-yS3NRKvY.js";import"./onboarding-DdKW5K8Y.js";import"./shared-BPN3qd7G.js";import"./onboard-auth.credentials-BuT-etnE.js";import"./auth-token-CyVfNEQb.js";import"./logging-DHa3jQN3.js";import{n as formatAuthChoiceChoicesForCli}from"./auth-choice-options-DUBsoO7H.js";import"./openai-model-default-Cp3nf21W.js";import"./model-picker-BUePD7Zg.js";import"./systemd-linger-CT-VHPB3.js";import"./onboard-custom-C_BI0ZXn.js";import{n as ONBOARD_PROVIDER_AUTH_FLAGS,t as onboardCommand}from"./onboard-cB37uVxy.js";import"./onboard-interactive-gvfRcLOt.js";function resolveInstallDaemonFlag(command,opts){if(!command||typeof command!=`object`)return;let getOptionValueSource=`getOptionValueSource`in command?command.getOptionValueSource:void 0;if(typeof getOptionValueSource==`function`){if(getOptionValueSource.call(command,`skipDaemon`)===`cli`)return!1;if(getOptionValueSource.call(command,`installDaemon`)===`cli`)return!!opts.installDaemon}}const AUTH_CHOICE_HELP=formatAuthChoiceChoicesForCli({includeLegacyAliases:!0,includeSkip:!0});function registerOnboardCommand(program){let command=program.command(`onboard`).description(`Interactive wizard to set up the gateway, workspace, and skills`).addHelpText(`after`,()=>`\n${theme.muted(`Docs:`)} ${formatDocsLink(`/cli/onboard`,`docs.builderforce.ai/cli/onboard`)}\n`).option(`--workspace <dir>`,`Agent workspace directory (default: ~/.builderforce/workspace)`).option(`--reset`,`Reset config + credentials + sessions + workspace before running wizard`).option(`--non-interactive`,`Run without prompts`,!1).option(`--accept-risk`,`Acknowledge that agents are powerful and full system access is risky (required for --non-interactive)`,!1).option(`--flow <flow>`,`Wizard flow: quickstart|advanced|manual`).option(`--mode <mode>`,`Wizard mode: local|remote`).option(`--auth-choice <choice>`,`Auth (default: builderforcellm): ${AUTH_CHOICE_HELP}`).option(`--token-provider <id>`,`Token provider id (non-interactive; used with --auth-choice token)`).option(`--token <token>`,`Token value (non-interactive; used with --auth-choice token)`).option(`--token-profile-id <id>`,`Auth profile id (non-interactive; default: <provider>:manual)`).option(`--token-expires-in <duration>`,`Optional token expiry duration (e.g. 365d, 12h)`).option(`--cloudflare-ai-gateway-account-id <id>`,`Cloudflare Account ID`).option(`--cloudflare-ai-gateway-gateway-id <id>`,`Cloudflare AI Gateway ID`);for(let providerFlag of ONBOARD_PROVIDER_AUTH_FLAGS)command.option(providerFlag.cliOption,providerFlag.description);command.option(`--custom-base-url <url>`,`Custom provider base URL`).option(`--custom-api-key <key>`,`Custom provider API key (optional)`).option(`--custom-model-id <id>`,`Custom provider model ID`).option(`--custom-provider-id <id>`,`Custom provider ID (optional; auto-derived by default)`).option(`--custom-compatibility <mode>`,`Custom provider API compatibility: openai|anthropic (default: openai)`).option(`--gateway-port <port>`,`Gateway port`).option(`--gateway-bind <mode>`,`Gateway bind: loopback|tailnet|lan|auto|custom`).option(`--gateway-auth <mode>`,`Gateway auth: token|password`).option(`--gateway-token <token>`,`Gateway token (token auth)`).option(`--gateway-password <password>`,`Gateway password (password auth)`).option(`--remote-url <url>`,`Remote Gateway WebSocket URL`).option(`--remote-token <token>`,`Remote Gateway token (optional)`).option(`--tailscale <mode>`,`Tailscale: off|serve|funnel`).option(`--tailscale-reset-on-exit`,`Reset tailscale serve/funnel on exit`).option(`--install-daemon`,`Install gateway service`).option(`--no-install-daemon`,`Skip gateway service install`).option(`--skip-daemon`,`Skip gateway service install`).option(`--daemon-runtime <runtime>`,`Daemon runtime: node|bun`).option(`--skip-channels`,`Skip channel setup`).option(`--skip-skills`,`Skip skills setup`).option(`--skip-health`,`Skip health check`).option(`--skip-ui`,`Skip Control UI/TUI prompts`).option(`--node-manager <name>`,`Node manager for skills: npm|pnpm|bun`).option(`--json`,`Output JSON summary`,!1),command.action(async(opts,commandRuntime)=>{await runCommandWithRuntime(defaultRuntime,async()=>{let installDaemon=resolveInstallDaemonFlag(commandRuntime,{installDaemon:!!opts.installDaemon}),gatewayPort=typeof opts.gatewayPort==`string`?Number.parseInt(opts.gatewayPort,10):void 0;await onboardCommand({workspace:opts.workspace,nonInteractive:!!opts.nonInteractive,acceptRisk:!!opts.acceptRisk,flow:opts.flow,mode:opts.mode,authChoice:opts.authChoice,tokenProvider:opts.tokenProvider,token:opts.token,tokenProfileId:opts.tokenProfileId,tokenExpiresIn:opts.tokenExpiresIn,anthropicApiKey:opts.anthropicApiKey,openaiApiKey:opts.openaiApiKey,openrouterApiKey:opts.openrouterApiKey,aiGatewayApiKey:opts.aiGatewayApiKey,cloudflareAiGatewayAccountId:opts.cloudflareAiGatewayAccountId,cloudflareAiGatewayGatewayId:opts.cloudflareAiGatewayGatewayId,cloudflareAiGatewayApiKey:opts.cloudflareAiGatewayApiKey,moonshotApiKey:opts.moonshotApiKey,kimiCodeApiKey:opts.kimiCodeApiKey,geminiApiKey:opts.geminiApiKey,zaiApiKey:opts.zaiApiKey,xiaomiApiKey:opts.xiaomiApiKey,qianfanApiKey:opts.qianfanApiKey,minimaxApiKey:opts.minimaxApiKey,syntheticApiKey:opts.syntheticApiKey,veniceApiKey:opts.veniceApiKey,togetherApiKey:opts.togetherApiKey,huggingfaceApiKey:opts.huggingfaceApiKey,opencodeZenApiKey:opts.opencodeZenApiKey,xaiApiKey:opts.xaiApiKey,litellmApiKey:opts.litellmApiKey,customBaseUrl:opts.customBaseUrl,customApiKey:opts.customApiKey,customModelId:opts.customModelId,customProviderId:opts.customProviderId,customCompatibility:opts.customCompatibility,gatewayPort:typeof gatewayPort==`number`&&Number.isFinite(gatewayPort)?gatewayPort:void 0,gatewayBind:opts.gatewayBind,gatewayAuth:opts.gatewayAuth,gatewayToken:opts.gatewayToken,gatewayPassword:opts.gatewayPassword,remoteUrl:opts.remoteUrl,remoteToken:opts.remoteToken,tailscale:opts.tailscale,tailscaleResetOnExit:!!opts.tailscaleResetOnExit,reset:!!opts.reset,installDaemon,daemonRuntime:opts.daemonRuntime,skipChannels:!!opts.skipChannels,skipSkills:!!opts.skipSkills,skipHealth:!!opts.skipHealth,skipUi:!!opts.skipUi,nodeManager:opts.nodeManager,json:!!opts.json},defaultRuntime)})})}export{registerOnboardCommand};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./paths-BHg-VHB4.js";import"./registry-Cv7CoWAs.js";import{z as theme}from"./utils-BP60e80M.js";import{p as defaultRuntime}from"./subsystem-C4b1Von0.js";import"./boolean-ssGoaBPk.js";import"./env-BoE8QSib.js";import"./warning-filter-nSTjpMIH.js";import"./auth-profiles-C1VbcUOm.js";import"./src-DvWaTze9.js";import"./logger-wuOr7HKl.js";import"./session-key-CksCYipj.js";import"./builderforce-root-DY1qbWNX.js";import"./exec-COgsU9ql.js";import"./agent-scope-CufEmNj_.js";import"./env-file-DeS6x2OL.js";import"./src-HrLX5bhG.js";import"./io-CohJffHG.js";import"./manifest-registry-009gLJ4l.js";import"./config-toczWD3q.js";import"./model-discovery-C9Xm95uL.js";import"./model-catalog-CiiFJX77.js";import"./frontmatter-CaY7feZm.js";import"./skills-D3MwwPOH.js";import"./plugin-skills-pSFUbhg_.js";import"./refresh-C4vwneXT.js";import"./client-CGgp3zkQ.js";import"./call-DmAU4cRX.js";import"./message-channel-z5YRpR2d.js";import"./subagent-registry-CyGxu3kP.js";import"./sessions-Bl1wwotX.js";import"./project-context-store-CIUcwUP_.js";import"./tokens-CFKkpUIu.js";import"./plugins-1Mn6RiNf.js";import"./accounts-BkTLjSrD.js";import"./bindings-CKSDlQ1i.js";import"./send-BvroeIQ6.js";import"./send-CceNWtYE.js";import"./with-timeout-T07SJo4N.js";import"./deliver-BuZu68tp.js";import"./accounts-Cx82nj4E.js";import"./send-ByCVQQVz.js";import"./image-ops-CotJhwRR.js";import"./redact-CgO7wehS.js";import"./errors-tAt19c1E.js";import"./embedded-helpers-DK8_apW0.js";import"./sandbox-z9t_PRf9.js";import"./chrome-BnEbJV3D.js";import"./tailscale-DV-yOmYe.js";import"./auth-ChecwOXS.js";import"./server-context-owOmmyUM.js";import"./routes-lclJHOYY.js";import"./paths-BnOjueoX.js";import"./ssrf-DJXLYZ0d.js";import"./store-DHD2IEgd.js";import"./ports-DTku9NSx.js";import"./trash-C3zmJ_O7.js";import"./accounts-DcoaLXKI.js";import"./paths-ClsbsPQP.js";import"./tool-images-CCpqFtrL.js";import"./workspace-waBqRxiy.js";import"./reply-prefix-Cg7AqaK0.js";import"./sqlite-CIGM1WKg.js";import"./memory-cli-ivAs7q7v.js";import"./manager-CRba8roB.js";import"./gemini-auth-CkD5jCPh.js";import"./retry-B151Hej5.js";import"./common-BfwMxpLu.js";import"./runner-DwWmciCt.js";import"./tool-display-Cs4hDP1f.js";import"./chunk-Dly7lM4r.js";import"./markdown-tables-B1Rx8hv6.js";import"./fetch-guard-DnXqPKae.js";import"./fetch-Cn_THzz8.js";import"./ir-CSdQJPqu.js";import"./render-DlHYsbvQ.js";import"./builderforcellm-syscheck-CprBhARf.js";import"./session-utils-GMvum00v.js";import"./coding-tools.policy-NEPm7Mz1.js";import"./pairing-store-QDb6lhIU.js";import"./fetch-DnWD6ydH.js";import"./exec-approvals-D7ZPAZpt.js";import"./nodes-screen-D6GHv_S0.js";import"./session-cost-usage-S0nkbPoW.js";import"./usage-format-5sp5AMSu.js";import"./provider-usage-Bn4ZrnU7.js";import"./send-B_1BtyfA.js";import"./outbound-attachment-BaTYE4qp.js";import"./delivery-queue-Cp3t4Upn.js";import"./project-context-D3Mx4maV.js";import"./control-service-CJuuqNOE.js";import"./stagger-CRe77dWL.js";import"./channel-selection-BLwXhb9t.js";import"./send-UFtylOiq.js";import"./resolve-route-DEIW5uKy.js";import"./channel-activity-DX36RadH.js";import"./tables-CojSfTth.js";import{t as formatDocsLink}from"./links-BKzP7VVP.js";import{n as runCommandWithRuntime}from"./cli-utils-C9pW69LF.js";import"./help-format-CfFf-w62.js";import"./progress-Cqb-jAjT.js";import"./replies-DbkT_5BV.js";import"./onboard-helpers-CckrS8_K.js";import"./prompt-style-BMWmaqSC.js";import"./pairing-labels-3j_iRYOO.js";import"./active-listener-Di9e1YAD.js";import"./mamba-state-engine-CV4nDcCk.js";import"./transformers-stream-Buj40qHl.js";import"./note-DgDXuE0F.js";import"./clack-prompter-B52CP7eY.js";import"./helpers-DPPVplyk.js";import"./daemon-runtime-B4UjqdyJ.js";import"./runtime-guard-Bi8k55v9.js";import"./systemd-DdVd5Yet.js";import"./service-EKJG69M3.js";import"./health-DVo8a9yg.js";import"./onboarding-Ctq_bdkC.js";import"./shared-xj-xaKFi.js";import"./onboard-auth.credentials-yagR-VMG.js";import"./auth-token-CoQ5ePPl.js";import"./logging-ayt7F7vy.js";import{n as formatAuthChoiceChoicesForCli}from"./auth-choice-options-CyKfoFNI.js";import"./openai-model-default-BMRrqTmH.js";import"./model-picker-swoSwauV.js";import"./systemd-linger-CPKngdUf.js";import"./onboard-custom-D1nd8Hlu.js";import{n as ONBOARD_PROVIDER_AUTH_FLAGS,t as onboardCommand}from"./onboard-O2gyfB4L.js";import"./onboard-interactive-DqpGicxB.js";function resolveInstallDaemonFlag(command,opts){if(!command||typeof command!=`object`)return;let getOptionValueSource=`getOptionValueSource`in command?command.getOptionValueSource:void 0;if(typeof getOptionValueSource==`function`){if(getOptionValueSource.call(command,`skipDaemon`)===`cli`)return!1;if(getOptionValueSource.call(command,`installDaemon`)===`cli`)return!!opts.installDaemon}}const AUTH_CHOICE_HELP=formatAuthChoiceChoicesForCli({includeLegacyAliases:!0,includeSkip:!0});function registerOnboardCommand(program){let command=program.command(`onboard`).description(`Interactive wizard to set up the gateway, workspace, and skills`).addHelpText(`after`,()=>`\n${theme.muted(`Docs:`)} ${formatDocsLink(`/cli/onboard`,`docs.builderforce.ai/cli/onboard`)}\n`).option(`--workspace <dir>`,`Agent workspace directory (default: ~/.builderforce/workspace)`).option(`--reset`,`Reset config + credentials + sessions + workspace before running wizard`).option(`--non-interactive`,`Run without prompts`,!1).option(`--accept-risk`,`Acknowledge that agents are powerful and full system access is risky (required for --non-interactive)`,!1).option(`--flow <flow>`,`Wizard flow: quickstart|advanced|manual`).option(`--mode <mode>`,`Wizard mode: local|remote`).option(`--auth-choice <choice>`,`Auth (default: builderforcellm): ${AUTH_CHOICE_HELP}`).option(`--token-provider <id>`,`Token provider id (non-interactive; used with --auth-choice token)`).option(`--token <token>`,`Token value (non-interactive; used with --auth-choice token)`).option(`--token-profile-id <id>`,`Auth profile id (non-interactive; default: <provider>:manual)`).option(`--token-expires-in <duration>`,`Optional token expiry duration (e.g. 365d, 12h)`).option(`--cloudflare-ai-gateway-account-id <id>`,`Cloudflare Account ID`).option(`--cloudflare-ai-gateway-gateway-id <id>`,`Cloudflare AI Gateway ID`);for(let providerFlag of ONBOARD_PROVIDER_AUTH_FLAGS)command.option(providerFlag.cliOption,providerFlag.description);command.option(`--custom-base-url <url>`,`Custom provider base URL`).option(`--custom-api-key <key>`,`Custom provider API key (optional)`).option(`--custom-model-id <id>`,`Custom provider model ID`).option(`--custom-provider-id <id>`,`Custom provider ID (optional; auto-derived by default)`).option(`--custom-compatibility <mode>`,`Custom provider API compatibility: openai|anthropic (default: openai)`).option(`--gateway-port <port>`,`Gateway port`).option(`--gateway-bind <mode>`,`Gateway bind: loopback|tailnet|lan|auto|custom`).option(`--gateway-auth <mode>`,`Gateway auth: token|password`).option(`--gateway-token <token>`,`Gateway token (token auth)`).option(`--gateway-password <password>`,`Gateway password (password auth)`).option(`--remote-url <url>`,`Remote Gateway WebSocket URL`).option(`--remote-token <token>`,`Remote Gateway token (optional)`).option(`--tailscale <mode>`,`Tailscale: off|serve|funnel`).option(`--tailscale-reset-on-exit`,`Reset tailscale serve/funnel on exit`).option(`--install-daemon`,`Install gateway service`).option(`--no-install-daemon`,`Skip gateway service install`).option(`--skip-daemon`,`Skip gateway service install`).option(`--daemon-runtime <runtime>`,`Daemon runtime: node|bun`).option(`--skip-channels`,`Skip channel setup`).option(`--skip-skills`,`Skip skills setup`).option(`--skip-health`,`Skip health check`).option(`--skip-ui`,`Skip Control UI/TUI prompts`).option(`--node-manager <name>`,`Node manager for skills: npm|pnpm|bun`).option(`--json`,`Output JSON summary`,!1),command.action(async(opts,commandRuntime)=>{await runCommandWithRuntime(defaultRuntime,async()=>{let installDaemon=resolveInstallDaemonFlag(commandRuntime,{installDaemon:!!opts.installDaemon}),gatewayPort=typeof opts.gatewayPort==`string`?Number.parseInt(opts.gatewayPort,10):void 0;await onboardCommand({workspace:opts.workspace,nonInteractive:!!opts.nonInteractive,acceptRisk:!!opts.acceptRisk,flow:opts.flow,mode:opts.mode,authChoice:opts.authChoice,tokenProvider:opts.tokenProvider,token:opts.token,tokenProfileId:opts.tokenProfileId,tokenExpiresIn:opts.tokenExpiresIn,anthropicApiKey:opts.anthropicApiKey,openaiApiKey:opts.openaiApiKey,openrouterApiKey:opts.openrouterApiKey,aiGatewayApiKey:opts.aiGatewayApiKey,cloudflareAiGatewayAccountId:opts.cloudflareAiGatewayAccountId,cloudflareAiGatewayGatewayId:opts.cloudflareAiGatewayGatewayId,cloudflareAiGatewayApiKey:opts.cloudflareAiGatewayApiKey,moonshotApiKey:opts.moonshotApiKey,kimiCodeApiKey:opts.kimiCodeApiKey,geminiApiKey:opts.geminiApiKey,zaiApiKey:opts.zaiApiKey,xiaomiApiKey:opts.xiaomiApiKey,qianfanApiKey:opts.qianfanApiKey,minimaxApiKey:opts.minimaxApiKey,syntheticApiKey:opts.syntheticApiKey,veniceApiKey:opts.veniceApiKey,togetherApiKey:opts.togetherApiKey,huggingfaceApiKey:opts.huggingfaceApiKey,opencodeZenApiKey:opts.opencodeZenApiKey,xaiApiKey:opts.xaiApiKey,litellmApiKey:opts.litellmApiKey,customBaseUrl:opts.customBaseUrl,customApiKey:opts.customApiKey,customModelId:opts.customModelId,customProviderId:opts.customProviderId,customCompatibility:opts.customCompatibility,gatewayPort:typeof gatewayPort==`number`&&Number.isFinite(gatewayPort)?gatewayPort:void 0,gatewayBind:opts.gatewayBind,gatewayAuth:opts.gatewayAuth,gatewayToken:opts.gatewayToken,gatewayPassword:opts.gatewayPassword,remoteUrl:opts.remoteUrl,remoteToken:opts.remoteToken,tailscale:opts.tailscale,tailscaleResetOnExit:!!opts.tailscaleResetOnExit,reset:!!opts.reset,installDaemon,daemonRuntime:opts.daemonRuntime,skipChannels:!!opts.skipChannels,skipSkills:!!opts.skipSkills,skipHealth:!!opts.skipHealth,skipUi:!!opts.skipUi,nodeManager:opts.nodeManager,json:!!opts.json},defaultRuntime)})})}export{registerOnboardCommand};
|
|
1
|
+
import"./paths-BHg-VHB4.js";import"./registry-Cv7CoWAs.js";import{z as theme}from"./utils-BP60e80M.js";import{p as defaultRuntime}from"./subsystem-C4b1Von0.js";import"./boolean-ssGoaBPk.js";import"./env-BoE8QSib.js";import"./warning-filter-nSTjpMIH.js";import"./auth-profiles-C1VbcUOm.js";import"./src-DvWaTze9.js";import"./logger-wuOr7HKl.js";import"./session-key-CksCYipj.js";import"./builderforce-root-DY1qbWNX.js";import"./exec-COgsU9ql.js";import"./agent-scope-CufEmNj_.js";import"./env-file-DeS6x2OL.js";import"./src-HrLX5bhG.js";import"./io-CohJffHG.js";import"./manifest-registry-009gLJ4l.js";import"./config-toczWD3q.js";import"./model-discovery-C9Xm95uL.js";import"./model-catalog-CiiFJX77.js";import"./frontmatter-CaY7feZm.js";import"./skills-D3MwwPOH.js";import"./plugin-skills-pSFUbhg_.js";import"./refresh-C4vwneXT.js";import"./client-CGgp3zkQ.js";import"./call-DmAU4cRX.js";import"./message-channel-z5YRpR2d.js";import"./subagent-registry-CyGxu3kP.js";import"./sessions-Bl1wwotX.js";import"./project-context-store-CIUcwUP_.js";import"./tokens-CFKkpUIu.js";import"./plugins-1Mn6RiNf.js";import"./accounts-BkTLjSrD.js";import"./bindings-CKSDlQ1i.js";import"./send-BvroeIQ6.js";import"./send-CceNWtYE.js";import"./with-timeout-T07SJo4N.js";import"./deliver-BuZu68tp.js";import"./accounts-Cx82nj4E.js";import"./send-ByCVQQVz.js";import"./image-ops-CotJhwRR.js";import"./redact-CgO7wehS.js";import"./errors-tAt19c1E.js";import"./embedded-helpers-DK8_apW0.js";import"./sandbox-z9t_PRf9.js";import"./chrome-BnEbJV3D.js";import"./tailscale-DV-yOmYe.js";import"./auth-ChecwOXS.js";import"./server-context-owOmmyUM.js";import"./routes-lclJHOYY.js";import"./paths-BnOjueoX.js";import"./ssrf-DJXLYZ0d.js";import"./store-DHD2IEgd.js";import"./ports-DTku9NSx.js";import"./trash-C3zmJ_O7.js";import"./accounts-DcoaLXKI.js";import"./paths-ClsbsPQP.js";import"./tool-images-CCpqFtrL.js";import"./workspace-waBqRxiy.js";import"./reply-prefix-Cg7AqaK0.js";import"./sqlite-CIGM1WKg.js";import"./memory-cli-ivAs7q7v.js";import"./manager-CRba8roB.js";import"./gemini-auth-CkD5jCPh.js";import"./retry-B151Hej5.js";import"./common-BfwMxpLu.js";import"./runner-DwWmciCt.js";import"./tool-display-Cs4hDP1f.js";import"./chunk-Dly7lM4r.js";import"./markdown-tables-B1Rx8hv6.js";import"./fetch-guard-DnXqPKae.js";import"./fetch-Cn_THzz8.js";import"./ir-CSdQJPqu.js";import"./render-DlHYsbvQ.js";import"./builderforcellm-syscheck-CprBhARf.js";import"./session-utils-GMvum00v.js";import"./coding-tools.policy-NEPm7Mz1.js";import"./pairing-store-QDb6lhIU.js";import"./fetch-DnWD6ydH.js";import"./exec-approvals-D7ZPAZpt.js";import"./nodes-screen-D6GHv_S0.js";import"./session-cost-usage-S0nkbPoW.js";import"./usage-format-5sp5AMSu.js";import"./provider-usage-Bn4ZrnU7.js";import"./send-B_1BtyfA.js";import"./outbound-attachment-BaTYE4qp.js";import"./delivery-queue-Cp3t4Upn.js";import"./project-context-D3Mx4maV.js";import"./control-service-CJuuqNOE.js";import"./stagger-CRe77dWL.js";import"./channel-selection-BLwXhb9t.js";import"./send-UFtylOiq.js";import"./resolve-route-DEIW5uKy.js";import"./channel-activity-DX36RadH.js";import"./tables-CojSfTth.js";import{t as formatDocsLink}from"./links-BKzP7VVP.js";import{n as runCommandWithRuntime}from"./cli-utils-C9pW69LF.js";import"./help-format-CfFf-w62.js";import"./progress-Cqb-jAjT.js";import"./replies-DbkT_5BV.js";import"./onboard-helpers-CckrS8_K.js";import"./prompt-style-BMWmaqSC.js";import"./pairing-labels-3j_iRYOO.js";import"./active-listener-Di9e1YAD.js";import"./mamba-state-engine-CV4nDcCk.js";import"./transformers-stream-Buj40qHl.js";import"./note-DgDXuE0F.js";import"./clack-prompter-B52CP7eY.js";import"./helpers-DPPVplyk.js";import"./daemon-runtime-B4UjqdyJ.js";import"./runtime-guard-Bi8k55v9.js";import"./systemd-DdVd5Yet.js";import"./service-EKJG69M3.js";import"./health-DVo8a9yg.js";import"./onboarding-B9GqKO5L.js";import"./shared-xj-xaKFi.js";import"./onboard-auth.credentials-yagR-VMG.js";import"./auth-token-CoQ5ePPl.js";import"./logging-ayt7F7vy.js";import{n as formatAuthChoiceChoicesForCli}from"./auth-choice-options-CyKfoFNI.js";import"./openai-model-default-BMRrqTmH.js";import"./model-picker-swoSwauV.js";import"./systemd-linger-CPKngdUf.js";import"./onboard-custom-D1nd8Hlu.js";import{n as ONBOARD_PROVIDER_AUTH_FLAGS,t as onboardCommand}from"./onboard-D4uXN5Ec.js";import"./onboard-interactive-vwqLS6pe.js";function resolveInstallDaemonFlag(command,opts){if(!command||typeof command!=`object`)return;let getOptionValueSource=`getOptionValueSource`in command?command.getOptionValueSource:void 0;if(typeof getOptionValueSource==`function`){if(getOptionValueSource.call(command,`skipDaemon`)===`cli`)return!1;if(getOptionValueSource.call(command,`installDaemon`)===`cli`)return!!opts.installDaemon}}const AUTH_CHOICE_HELP=formatAuthChoiceChoicesForCli({includeLegacyAliases:!0,includeSkip:!0});function registerOnboardCommand(program){let command=program.command(`onboard`).description(`Interactive wizard to set up the gateway, workspace, and skills`).addHelpText(`after`,()=>`\n${theme.muted(`Docs:`)} ${formatDocsLink(`/cli/onboard`,`docs.builderforce.ai/cli/onboard`)}\n`).option(`--workspace <dir>`,`Agent workspace directory (default: ~/.builderforce/workspace)`).option(`--reset`,`Reset config + credentials + sessions + workspace before running wizard`).option(`--non-interactive`,`Run without prompts`,!1).option(`--accept-risk`,`Acknowledge that agents are powerful and full system access is risky (required for --non-interactive)`,!1).option(`--flow <flow>`,`Wizard flow: quickstart|advanced|manual`).option(`--mode <mode>`,`Wizard mode: local|remote`).option(`--auth-choice <choice>`,`Auth (default: builderforcellm): ${AUTH_CHOICE_HELP}`).option(`--token-provider <id>`,`Token provider id (non-interactive; used with --auth-choice token)`).option(`--token <token>`,`Token value (non-interactive; used with --auth-choice token)`).option(`--token-profile-id <id>`,`Auth profile id (non-interactive; default: <provider>:manual)`).option(`--token-expires-in <duration>`,`Optional token expiry duration (e.g. 365d, 12h)`).option(`--cloudflare-ai-gateway-account-id <id>`,`Cloudflare Account ID`).option(`--cloudflare-ai-gateway-gateway-id <id>`,`Cloudflare AI Gateway ID`);for(let providerFlag of ONBOARD_PROVIDER_AUTH_FLAGS)command.option(providerFlag.cliOption,providerFlag.description);command.option(`--custom-base-url <url>`,`Custom provider base URL`).option(`--custom-api-key <key>`,`Custom provider API key (optional)`).option(`--custom-model-id <id>`,`Custom provider model ID`).option(`--custom-provider-id <id>`,`Custom provider ID (optional; auto-derived by default)`).option(`--custom-compatibility <mode>`,`Custom provider API compatibility: openai|anthropic (default: openai)`).option(`--gateway-port <port>`,`Gateway port`).option(`--gateway-bind <mode>`,`Gateway bind: loopback|tailnet|lan|auto|custom`).option(`--gateway-auth <mode>`,`Gateway auth: token|password`).option(`--gateway-token <token>`,`Gateway token (token auth)`).option(`--gateway-password <password>`,`Gateway password (password auth)`).option(`--remote-url <url>`,`Remote Gateway WebSocket URL`).option(`--remote-token <token>`,`Remote Gateway token (optional)`).option(`--tailscale <mode>`,`Tailscale: off|serve|funnel`).option(`--tailscale-reset-on-exit`,`Reset tailscale serve/funnel on exit`).option(`--install-daemon`,`Install gateway service`).option(`--no-install-daemon`,`Skip gateway service install`).option(`--skip-daemon`,`Skip gateway service install`).option(`--daemon-runtime <runtime>`,`Daemon runtime: node|bun`).option(`--skip-channels`,`Skip channel setup`).option(`--skip-skills`,`Skip skills setup`).option(`--skip-health`,`Skip health check`).option(`--skip-ui`,`Skip Control UI/TUI prompts`).option(`--node-manager <name>`,`Node manager for skills: npm|pnpm|bun`).option(`--json`,`Output JSON summary`,!1),command.action(async(opts,commandRuntime)=>{await runCommandWithRuntime(defaultRuntime,async()=>{let installDaemon=resolveInstallDaemonFlag(commandRuntime,{installDaemon:!!opts.installDaemon}),gatewayPort=typeof opts.gatewayPort==`string`?Number.parseInt(opts.gatewayPort,10):void 0;await onboardCommand({workspace:opts.workspace,nonInteractive:!!opts.nonInteractive,acceptRisk:!!opts.acceptRisk,flow:opts.flow,mode:opts.mode,authChoice:opts.authChoice,tokenProvider:opts.tokenProvider,token:opts.token,tokenProfileId:opts.tokenProfileId,tokenExpiresIn:opts.tokenExpiresIn,anthropicApiKey:opts.anthropicApiKey,openaiApiKey:opts.openaiApiKey,openrouterApiKey:opts.openrouterApiKey,aiGatewayApiKey:opts.aiGatewayApiKey,cloudflareAiGatewayAccountId:opts.cloudflareAiGatewayAccountId,cloudflareAiGatewayGatewayId:opts.cloudflareAiGatewayGatewayId,cloudflareAiGatewayApiKey:opts.cloudflareAiGatewayApiKey,moonshotApiKey:opts.moonshotApiKey,kimiCodeApiKey:opts.kimiCodeApiKey,geminiApiKey:opts.geminiApiKey,zaiApiKey:opts.zaiApiKey,xiaomiApiKey:opts.xiaomiApiKey,qianfanApiKey:opts.qianfanApiKey,minimaxApiKey:opts.minimaxApiKey,syntheticApiKey:opts.syntheticApiKey,veniceApiKey:opts.veniceApiKey,togetherApiKey:opts.togetherApiKey,huggingfaceApiKey:opts.huggingfaceApiKey,opencodeZenApiKey:opts.opencodeZenApiKey,xaiApiKey:opts.xaiApiKey,litellmApiKey:opts.litellmApiKey,customBaseUrl:opts.customBaseUrl,customApiKey:opts.customApiKey,customModelId:opts.customModelId,customProviderId:opts.customProviderId,customCompatibility:opts.customCompatibility,gatewayPort:typeof gatewayPort==`number`&&Number.isFinite(gatewayPort)?gatewayPort:void 0,gatewayBind:opts.gatewayBind,gatewayAuth:opts.gatewayAuth,gatewayToken:opts.gatewayToken,gatewayPassword:opts.gatewayPassword,remoteUrl:opts.remoteUrl,remoteToken:opts.remoteToken,tailscale:opts.tailscale,tailscaleResetOnExit:!!opts.tailscaleResetOnExit,reset:!!opts.reset,installDaemon,daemonRuntime:opts.daemonRuntime,skipChannels:!!opts.skipChannels,skipSkills:!!opts.skipSkills,skipHealth:!!opts.skipHealth,skipUi:!!opts.skipUi,nodeManager:opts.nodeManager,json:!!opts.json},defaultRuntime)})})}export{registerOnboardCommand};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./paths-BHg-VHB4.js";import"./registry-Cv7CoWAs.js";import{S as shortenHomePath,z as theme}from"./utils-BP60e80M.js";import{p as defaultRuntime}from"./subsystem-C4b1Von0.js";import"./boolean-ssGoaBPk.js";import"./env-BoE8QSib.js";import"./warning-filter-nSTjpMIH.js";import"./auth-profiles-C1VbcUOm.js";import"./src-DvWaTze9.js";import"./logger-wuOr7HKl.js";import"./session-key-CksCYipj.js";import"./builderforce-root-DY1qbWNX.js";import"./exec-COgsU9ql.js";import{m as DEFAULT_AGENT_WORKSPACE_DIR,w as ensureAgentWorkspace}from"./agent-scope-CufEmNj_.js";import"./env-file-DeS6x2OL.js";import"./src-HrLX5bhG.js";import{c as writeConfigFile,n as createConfigIO}from"./io-CohJffHG.js";import"./manifest-registry-009gLJ4l.js";import"./config-toczWD3q.js";import"./model-discovery-C9Xm95uL.js";import"./model-catalog-CiiFJX77.js";import"./frontmatter-CaY7feZm.js";import"./skills-D3MwwPOH.js";import"./plugin-skills-pSFUbhg_.js";import"./refresh-C4vwneXT.js";import"./client-CGgp3zkQ.js";import"./call-DmAU4cRX.js";import"./message-channel-z5YRpR2d.js";import"./subagent-registry-CyGxu3kP.js";import"./sessions-Bl1wwotX.js";import"./project-context-store-CIUcwUP_.js";import"./tokens-CFKkpUIu.js";import"./plugins-1Mn6RiNf.js";import"./accounts-BkTLjSrD.js";import"./bindings-CKSDlQ1i.js";import"./send-BvroeIQ6.js";import"./send-CceNWtYE.js";import"./with-timeout-T07SJo4N.js";import"./deliver-BuZu68tp.js";import"./accounts-Cx82nj4E.js";import"./send-ByCVQQVz.js";import"./image-ops-CotJhwRR.js";import"./redact-CgO7wehS.js";import"./errors-tAt19c1E.js";import"./embedded-helpers-DK8_apW0.js";import"./sandbox-z9t_PRf9.js";import"./chrome-BnEbJV3D.js";import"./tailscale-DV-yOmYe.js";import"./auth-ChecwOXS.js";import"./server-context-owOmmyUM.js";import"./routes-lclJHOYY.js";import"./paths-BnOjueoX.js";import"./ssrf-DJXLYZ0d.js";import"./store-DHD2IEgd.js";import"./ports-DTku9NSx.js";import"./trash-C3zmJ_O7.js";import"./accounts-DcoaLXKI.js";import{o as resolveSessionTranscriptsDir}from"./paths-ClsbsPQP.js";import"./tool-images-CCpqFtrL.js";import"./workspace-waBqRxiy.js";import"./reply-prefix-Cg7AqaK0.js";import"./sqlite-CIGM1WKg.js";import"./memory-cli-ivAs7q7v.js";import"./manager-CRba8roB.js";import"./gemini-auth-CkD5jCPh.js";import"./retry-B151Hej5.js";import"./common-BfwMxpLu.js";import"./runner-DwWmciCt.js";import"./tool-display-Cs4hDP1f.js";import"./chunk-Dly7lM4r.js";import"./markdown-tables-B1Rx8hv6.js";import"./fetch-guard-DnXqPKae.js";import"./fetch-Cn_THzz8.js";import"./ir-CSdQJPqu.js";import"./render-DlHYsbvQ.js";import"./builderforcellm-syscheck-CprBhARf.js";import"./session-utils-GMvum00v.js";import"./coding-tools.policy-NEPm7Mz1.js";import"./pairing-store-QDb6lhIU.js";import"./fetch-DnWD6ydH.js";import"./exec-approvals-D7ZPAZpt.js";import"./nodes-screen-D6GHv_S0.js";import"./session-cost-usage-S0nkbPoW.js";import"./usage-format-5sp5AMSu.js";import"./provider-usage-Bn4ZrnU7.js";import"./send-B_1BtyfA.js";import"./outbound-attachment-BaTYE4qp.js";import"./delivery-queue-Cp3t4Upn.js";import"./project-context-D3Mx4maV.js";import"./control-service-CJuuqNOE.js";import"./stagger-CRe77dWL.js";import"./channel-selection-BLwXhb9t.js";import"./send-UFtylOiq.js";import"./resolve-route-DEIW5uKy.js";import"./channel-activity-DX36RadH.js";import"./tables-CojSfTth.js";import{t as formatDocsLink}from"./links-BKzP7VVP.js";import{n as runCommandWithRuntime}from"./cli-utils-C9pW69LF.js";import"./help-format-CfFf-w62.js";import"./progress-Cqb-jAjT.js";import"./replies-DbkT_5BV.js";import"./onboard-helpers-CckrS8_K.js";import"./prompt-style-BMWmaqSC.js";import"./pairing-labels-3j_iRYOO.js";import"./active-listener-Di9e1YAD.js";import"./mamba-state-engine-CV4nDcCk.js";import"./transformers-stream-Buj40qHl.js";import{t as hasExplicitOptions}from"./command-options-DbMbMxM2.js";import"./note-DgDXuE0F.js";import"./clack-prompter-B52CP7eY.js";import"./helpers-DPPVplyk.js";import"./daemon-runtime-B4UjqdyJ.js";import"./runtime-guard-Bi8k55v9.js";import"./systemd-DdVd5Yet.js";import"./service-EKJG69M3.js";import"./health-DVo8a9yg.js";import"./onboarding-
|
|
1
|
+
import"./paths-BHg-VHB4.js";import"./registry-Cv7CoWAs.js";import{S as shortenHomePath,z as theme}from"./utils-BP60e80M.js";import{p as defaultRuntime}from"./subsystem-C4b1Von0.js";import"./boolean-ssGoaBPk.js";import"./env-BoE8QSib.js";import"./warning-filter-nSTjpMIH.js";import"./auth-profiles-C1VbcUOm.js";import"./src-DvWaTze9.js";import"./logger-wuOr7HKl.js";import"./session-key-CksCYipj.js";import"./builderforce-root-DY1qbWNX.js";import"./exec-COgsU9ql.js";import{m as DEFAULT_AGENT_WORKSPACE_DIR,w as ensureAgentWorkspace}from"./agent-scope-CufEmNj_.js";import"./env-file-DeS6x2OL.js";import"./src-HrLX5bhG.js";import{c as writeConfigFile,n as createConfigIO}from"./io-CohJffHG.js";import"./manifest-registry-009gLJ4l.js";import"./config-toczWD3q.js";import"./model-discovery-C9Xm95uL.js";import"./model-catalog-CiiFJX77.js";import"./frontmatter-CaY7feZm.js";import"./skills-D3MwwPOH.js";import"./plugin-skills-pSFUbhg_.js";import"./refresh-C4vwneXT.js";import"./client-CGgp3zkQ.js";import"./call-DmAU4cRX.js";import"./message-channel-z5YRpR2d.js";import"./subagent-registry-CyGxu3kP.js";import"./sessions-Bl1wwotX.js";import"./project-context-store-CIUcwUP_.js";import"./tokens-CFKkpUIu.js";import"./plugins-1Mn6RiNf.js";import"./accounts-BkTLjSrD.js";import"./bindings-CKSDlQ1i.js";import"./send-BvroeIQ6.js";import"./send-CceNWtYE.js";import"./with-timeout-T07SJo4N.js";import"./deliver-BuZu68tp.js";import"./accounts-Cx82nj4E.js";import"./send-ByCVQQVz.js";import"./image-ops-CotJhwRR.js";import"./redact-CgO7wehS.js";import"./errors-tAt19c1E.js";import"./embedded-helpers-DK8_apW0.js";import"./sandbox-z9t_PRf9.js";import"./chrome-BnEbJV3D.js";import"./tailscale-DV-yOmYe.js";import"./auth-ChecwOXS.js";import"./server-context-owOmmyUM.js";import"./routes-lclJHOYY.js";import"./paths-BnOjueoX.js";import"./ssrf-DJXLYZ0d.js";import"./store-DHD2IEgd.js";import"./ports-DTku9NSx.js";import"./trash-C3zmJ_O7.js";import"./accounts-DcoaLXKI.js";import{o as resolveSessionTranscriptsDir}from"./paths-ClsbsPQP.js";import"./tool-images-CCpqFtrL.js";import"./workspace-waBqRxiy.js";import"./reply-prefix-Cg7AqaK0.js";import"./sqlite-CIGM1WKg.js";import"./memory-cli-ivAs7q7v.js";import"./manager-CRba8roB.js";import"./gemini-auth-CkD5jCPh.js";import"./retry-B151Hej5.js";import"./common-BfwMxpLu.js";import"./runner-DwWmciCt.js";import"./tool-display-Cs4hDP1f.js";import"./chunk-Dly7lM4r.js";import"./markdown-tables-B1Rx8hv6.js";import"./fetch-guard-DnXqPKae.js";import"./fetch-Cn_THzz8.js";import"./ir-CSdQJPqu.js";import"./render-DlHYsbvQ.js";import"./builderforcellm-syscheck-CprBhARf.js";import"./session-utils-GMvum00v.js";import"./coding-tools.policy-NEPm7Mz1.js";import"./pairing-store-QDb6lhIU.js";import"./fetch-DnWD6ydH.js";import"./exec-approvals-D7ZPAZpt.js";import"./nodes-screen-D6GHv_S0.js";import"./session-cost-usage-S0nkbPoW.js";import"./usage-format-5sp5AMSu.js";import"./provider-usage-Bn4ZrnU7.js";import"./send-B_1BtyfA.js";import"./outbound-attachment-BaTYE4qp.js";import"./delivery-queue-Cp3t4Upn.js";import"./project-context-D3Mx4maV.js";import"./control-service-CJuuqNOE.js";import"./stagger-CRe77dWL.js";import"./channel-selection-BLwXhb9t.js";import"./send-UFtylOiq.js";import"./resolve-route-DEIW5uKy.js";import"./channel-activity-DX36RadH.js";import"./tables-CojSfTth.js";import{t as formatDocsLink}from"./links-BKzP7VVP.js";import{n as runCommandWithRuntime}from"./cli-utils-C9pW69LF.js";import"./help-format-CfFf-w62.js";import"./progress-Cqb-jAjT.js";import"./replies-DbkT_5BV.js";import"./onboard-helpers-CckrS8_K.js";import"./prompt-style-BMWmaqSC.js";import"./pairing-labels-3j_iRYOO.js";import"./active-listener-Di9e1YAD.js";import"./mamba-state-engine-CV4nDcCk.js";import"./transformers-stream-Buj40qHl.js";import{t as hasExplicitOptions}from"./command-options-DbMbMxM2.js";import"./note-DgDXuE0F.js";import"./clack-prompter-B52CP7eY.js";import"./helpers-DPPVplyk.js";import"./daemon-runtime-B4UjqdyJ.js";import"./runtime-guard-Bi8k55v9.js";import"./systemd-DdVd5Yet.js";import"./service-EKJG69M3.js";import"./health-DVo8a9yg.js";import"./onboarding-B9GqKO5L.js";import"./shared-xj-xaKFi.js";import"./onboard-auth.credentials-yagR-VMG.js";import"./auth-token-CoQ5ePPl.js";import{n as logConfigUpdated,t as formatConfigPath}from"./logging-ayt7F7vy.js";import"./openai-model-default-BMRrqTmH.js";import"./model-picker-swoSwauV.js";import"./systemd-linger-CPKngdUf.js";import"./onboard-custom-D1nd8Hlu.js";import{t as onboardCommand}from"./onboard-D4uXN5Ec.js";import"./onboard-interactive-vwqLS6pe.js";import JSON5 from"json5";import fs from"node:fs/promises";async function readConfigFileRaw(configPath){try{let raw=await fs.readFile(configPath,`utf-8`),parsed=JSON5.parse(raw);return parsed&&typeof parsed==`object`?{exists:!0,parsed}:{exists:!0,parsed:{}}}catch{return{exists:!1,parsed:{}}}}async function setupCommand(opts,runtime=defaultRuntime){let desiredWorkspace=typeof opts?.workspace==`string`&&opts.workspace.trim()?opts.workspace.trim():void 0,configPath=createConfigIO().configPath,existingRaw=await readConfigFileRaw(configPath),cfg=existingRaw.parsed,defaults=cfg.agents?.defaults??{},workspace=desiredWorkspace??defaults.workspace??DEFAULT_AGENT_WORKSPACE_DIR,next={...cfg,agents:{...cfg.agents,defaults:{...defaults,workspace}}};!existingRaw.exists||defaults.workspace!==workspace?(await writeConfigFile(next),existingRaw.exists?logConfigUpdated(runtime,{path:configPath,suffix:`(set agents.defaults.workspace)`}):runtime.log(`Wrote ${formatConfigPath(configPath)}`)):runtime.log(`Config OK: ${formatConfigPath(configPath)}`);let ws=await ensureAgentWorkspace({dir:workspace,ensureBootstrapFiles:!next.agents?.defaults?.skipBootstrap});runtime.log(`Workspace OK: ${shortenHomePath(ws.dir)}`);let sessionsDir=resolveSessionTranscriptsDir();await fs.mkdir(sessionsDir,{recursive:!0}),runtime.log(`Sessions OK: ${shortenHomePath(sessionsDir)}`)}function registerSetupCommand(program){program.command(`setup`).description(`Initialize ~/.builderforce/builderforce.json and the agent workspace`).addHelpText(`after`,()=>`\n${theme.muted(`Docs:`)} ${formatDocsLink(`/cli/setup`,`docs.builderforce.ai/cli/setup`)}\n`).option(`--workspace <dir>`,`Agent workspace directory (default: ~/.builderforce/workspace; stored as agents.defaults.workspace)`).option(`--wizard`,`Run the interactive onboarding wizard`,!1).option(`--non-interactive`,`Run the wizard without prompts`,!1).option(`--mode <mode>`,`Wizard mode: local|remote`).option(`--remote-url <url>`,`Remote Gateway WebSocket URL`).option(`--remote-token <token>`,`Remote Gateway token (optional)`).action(async(opts,command)=>{await runCommandWithRuntime(defaultRuntime,async()=>{let hasWizardFlags=hasExplicitOptions(command,[`wizard`,`nonInteractive`,`mode`,`remoteUrl`,`remoteToken`]);if(opts.wizard||hasWizardFlags){await onboardCommand({workspace:opts.workspace,nonInteractive:!!opts.nonInteractive,mode:opts.mode,remoteUrl:opts.remoteUrl,remoteToken:opts.remoteToken},defaultRuntime);return}await setupCommand({workspace:opts.workspace},defaultRuntime)})})}export{registerSetupCommand};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./paths-5FcIFMsj.js";import{B as theme,C as shortenHomePath}from"./utils-DbaBVFaK.js";import"./embedded-helpers-CEsr3aQ0.js";import"./reply-Cd3vVnD7.js";import"./session-key-EoB0qaG9.js";import"./builderforce-root-D64_sXEi.js";import{i as defaultRuntime}from"./subsystem-B3TqcCrZ.js";import"./registry-TdK-aV05.js";import"./logger-Bch0bx9c.js";import"./exec-DdcIjeyn.js";import{m as DEFAULT_AGENT_WORKSPACE_DIR,w as ensureAgentWorkspace}from"./agent-scope-DPtjOxzp.js";import"./src-CA0fU67C.js";import"./model-selection-9bRFKBI_.js";import"./env-file-D1MDi-AM.js";import"./boolean-Cnh1KNl1.js";import"./env-BIdU5BAp.js";import"./src-DTFqOIQD.js";import{c as writeConfigFile,n as createConfigIO}from"./io-3R_ZyUxB.js";import"./manifest-registry-BJCfNV1a.js";import"./config-_1Ca6jGb.js";import"./runner-SxCr9kXD.js";import"./model-catalog-C6UrZ0uG.js";import"./sandbox-BZibn6PX.js";import"./chrome-a3X9_-nf.js";import"./tailscale-DLkpGquM.js";import"./auth-lebUHrkd.js";import"./server-context-DJZT7Upf.js";import"./frontmatter-3D1EdC1L.js";import"./skills-Ba4ftrB-.js";import"./plugin-skills-B11rggZh.js";import"./routes-BzfLvF8W.js";import"./redact-BHdfp2MZ.js";import"./errors-B1MIg3g-.js";import"./paths-cR8ct-Y3.js";import"./ssrf-p9k-iapc.js";import"./image-ops-C8IUQKjn.js";import"./store-CmHBQ-yX.js";import"./ports-DgmEDNOm.js";import"./trash-DD2Hc5oq.js";import"./sessions-CdanN_ZI.js";import"./message-channel-D_jXxXQj.js";import"./plugins-D5zP6ENo.js";import"./accounts-o35LU_iy.js";import"./accounts-rmXEiebi.js";import"./accounts-BLueHgKj.js";import"./bindings-DR59065T.js";import"./send-DerUBvXW.js";import"./send-DyF1Xy9K.js";import{o as resolveSessionTranscriptsDir}from"./paths-DJ6rztqJ.js";import"./tool-images-B7b_OiMz.js";import"./tool-display-ByOZtWvA.js";import"./fetch-guard-8mwt3-hm.js";import"./api-key-rotation-CHBjUwUJ.js";import"./fetch-BuOLY9KP.js";import"./sqlite-C39E12XS.js";import"./tokens-CCU3zO-D.js";import"./project-context-store-wcq7lXuI.js";import"./with-timeout-Bwq-GyUQ.js";import"./deliver-BpLm3ktn.js";import"./send-CBBziNqM.js";import"./workspace-D4LK4thI.js";import"./reply-prefix-zIMgi6K6.js";import"./memory-cli-DRz4wtHk.js";import"./manager-DwywI_5-.js";import"./retry-DlVhg5qu.js";import"./client-xfoidwPI.js";import"./call-BbRf8gFM.js";import"./common-BTbIhLyt.js";import"./chunk-FCBlVOyo.js";import"./markdown-tables-P6uoUSFa.js";import"./ir-5BNoIXZm.js";import"./render-D1dVTEB1.js";import"./builderforcellm-syscheck-DrFJ638L.js";import"./send-4d9NswaD.js";import"./outbound-attachment-C7wByQO5.js";import"./fetch-DnVtDecb.js";import"./delivery-queue-CXKynF1P.js";import"./channel-activity-CCNDbdD3.js";import"./tables-ERcoWFDp.js";import"./pairing-store-CbvMJhD3.js";import{t as formatDocsLink}from"./links-BgWWaaOT.js";import{n as runCommandWithRuntime}from"./cli-utils-LBYKdNFb.js";import"./help-format-Qfk2vDNX.js";import"./progress-BfOtdN6b.js";import"./resolve-route-D49haUnv.js";import"./replies-Bd2RPZwQ.js";import"./refresh-TiC_kLgE.js";import"./coding-tools.policy-6qh9acJy.js";import"./send-BJDzwYJN.js";import"./onboard-helpers-Cf5dNq7-.js";import"./prompt-style-BpVK43GK.js";import"./pairing-labels-BW5jQZlr.js";import"./session-cost-usage-BjH7mxVj.js";import"./usage-format-DGf8ZWPH.js";import"./provider-usage-BdrU4cIE.js";import"./active-listener-Dcg19lJG.js";import"./exec-approvals-BpVPDVtV.js";import"./nodes-screen-C3TDIi8d.js";import"./project-context-CJj0Inz-.js";import"./control-service-BbsswoMy.js";import"./stagger-8EkqkqJv.js";import"./channel-selection-DyAvzlY8.js";import"./mamba-state-engine-CoGqoBTH.js";import"./transformers-stream-D7nRu4Qu.js";import"./runtime-guard-DhksRHci.js";import{t as hasExplicitOptions}from"./command-options-DzGFCQYs.js";import"./note-B6NtFdXt.js";import"./clack-prompter-Dg23_riR.js";import"./helpers-DTDCy17p.js";import"./daemon-runtime-CtOr1ncS.js";import"./systemd-BG3_QT6W.js";import"./service-D-NLDyK3.js";import"./health-yS3NRKvY.js";import"./onboarding-
|
|
1
|
+
import"./paths-5FcIFMsj.js";import{B as theme,C as shortenHomePath}from"./utils-DbaBVFaK.js";import"./embedded-helpers-CEsr3aQ0.js";import"./reply-Cd3vVnD7.js";import"./session-key-EoB0qaG9.js";import"./builderforce-root-D64_sXEi.js";import{i as defaultRuntime}from"./subsystem-B3TqcCrZ.js";import"./registry-TdK-aV05.js";import"./logger-Bch0bx9c.js";import"./exec-DdcIjeyn.js";import{m as DEFAULT_AGENT_WORKSPACE_DIR,w as ensureAgentWorkspace}from"./agent-scope-DPtjOxzp.js";import"./src-CA0fU67C.js";import"./model-selection-9bRFKBI_.js";import"./env-file-D1MDi-AM.js";import"./boolean-Cnh1KNl1.js";import"./env-BIdU5BAp.js";import"./src-DTFqOIQD.js";import{c as writeConfigFile,n as createConfigIO}from"./io-3R_ZyUxB.js";import"./manifest-registry-BJCfNV1a.js";import"./config-_1Ca6jGb.js";import"./runner-SxCr9kXD.js";import"./model-catalog-C6UrZ0uG.js";import"./sandbox-BZibn6PX.js";import"./chrome-a3X9_-nf.js";import"./tailscale-DLkpGquM.js";import"./auth-lebUHrkd.js";import"./server-context-DJZT7Upf.js";import"./frontmatter-3D1EdC1L.js";import"./skills-Ba4ftrB-.js";import"./plugin-skills-B11rggZh.js";import"./routes-BzfLvF8W.js";import"./redact-BHdfp2MZ.js";import"./errors-B1MIg3g-.js";import"./paths-cR8ct-Y3.js";import"./ssrf-p9k-iapc.js";import"./image-ops-C8IUQKjn.js";import"./store-CmHBQ-yX.js";import"./ports-DgmEDNOm.js";import"./trash-DD2Hc5oq.js";import"./sessions-CdanN_ZI.js";import"./message-channel-D_jXxXQj.js";import"./plugins-D5zP6ENo.js";import"./accounts-o35LU_iy.js";import"./accounts-rmXEiebi.js";import"./accounts-BLueHgKj.js";import"./bindings-DR59065T.js";import"./send-DerUBvXW.js";import"./send-DyF1Xy9K.js";import{o as resolveSessionTranscriptsDir}from"./paths-DJ6rztqJ.js";import"./tool-images-B7b_OiMz.js";import"./tool-display-ByOZtWvA.js";import"./fetch-guard-8mwt3-hm.js";import"./api-key-rotation-CHBjUwUJ.js";import"./fetch-BuOLY9KP.js";import"./sqlite-C39E12XS.js";import"./tokens-CCU3zO-D.js";import"./project-context-store-wcq7lXuI.js";import"./with-timeout-Bwq-GyUQ.js";import"./deliver-BpLm3ktn.js";import"./send-CBBziNqM.js";import"./workspace-D4LK4thI.js";import"./reply-prefix-zIMgi6K6.js";import"./memory-cli-DRz4wtHk.js";import"./manager-DwywI_5-.js";import"./retry-DlVhg5qu.js";import"./client-xfoidwPI.js";import"./call-BbRf8gFM.js";import"./common-BTbIhLyt.js";import"./chunk-FCBlVOyo.js";import"./markdown-tables-P6uoUSFa.js";import"./ir-5BNoIXZm.js";import"./render-D1dVTEB1.js";import"./builderforcellm-syscheck-DrFJ638L.js";import"./send-4d9NswaD.js";import"./outbound-attachment-C7wByQO5.js";import"./fetch-DnVtDecb.js";import"./delivery-queue-CXKynF1P.js";import"./channel-activity-CCNDbdD3.js";import"./tables-ERcoWFDp.js";import"./pairing-store-CbvMJhD3.js";import{t as formatDocsLink}from"./links-BgWWaaOT.js";import{n as runCommandWithRuntime}from"./cli-utils-LBYKdNFb.js";import"./help-format-Qfk2vDNX.js";import"./progress-BfOtdN6b.js";import"./resolve-route-D49haUnv.js";import"./replies-Bd2RPZwQ.js";import"./refresh-TiC_kLgE.js";import"./coding-tools.policy-6qh9acJy.js";import"./send-BJDzwYJN.js";import"./onboard-helpers-Cf5dNq7-.js";import"./prompt-style-BpVK43GK.js";import"./pairing-labels-BW5jQZlr.js";import"./session-cost-usage-BjH7mxVj.js";import"./usage-format-DGf8ZWPH.js";import"./provider-usage-BdrU4cIE.js";import"./active-listener-Dcg19lJG.js";import"./exec-approvals-BpVPDVtV.js";import"./nodes-screen-C3TDIi8d.js";import"./project-context-CJj0Inz-.js";import"./control-service-BbsswoMy.js";import"./stagger-8EkqkqJv.js";import"./channel-selection-DyAvzlY8.js";import"./mamba-state-engine-CoGqoBTH.js";import"./transformers-stream-D7nRu4Qu.js";import"./runtime-guard-DhksRHci.js";import{t as hasExplicitOptions}from"./command-options-DzGFCQYs.js";import"./note-B6NtFdXt.js";import"./clack-prompter-Dg23_riR.js";import"./helpers-DTDCy17p.js";import"./daemon-runtime-CtOr1ncS.js";import"./systemd-BG3_QT6W.js";import"./service-D-NLDyK3.js";import"./health-yS3NRKvY.js";import"./onboarding-DdKW5K8Y.js";import"./shared-BPN3qd7G.js";import"./onboard-auth.credentials-BuT-etnE.js";import"./auth-token-CyVfNEQb.js";import{n as logConfigUpdated,t as formatConfigPath}from"./logging-DHa3jQN3.js";import"./openai-model-default-Cp3nf21W.js";import"./model-picker-BUePD7Zg.js";import"./systemd-linger-CT-VHPB3.js";import"./onboard-custom-C_BI0ZXn.js";import{t as onboardCommand}from"./onboard-cB37uVxy.js";import"./onboard-interactive-gvfRcLOt.js";import JSON5 from"json5";import fs from"node:fs/promises";async function readConfigFileRaw(configPath){try{let raw=await fs.readFile(configPath,`utf-8`),parsed=JSON5.parse(raw);return parsed&&typeof parsed==`object`?{exists:!0,parsed}:{exists:!0,parsed:{}}}catch{return{exists:!1,parsed:{}}}}async function setupCommand(opts,runtime=defaultRuntime){let desiredWorkspace=typeof opts?.workspace==`string`&&opts.workspace.trim()?opts.workspace.trim():void 0,configPath=createConfigIO().configPath,existingRaw=await readConfigFileRaw(configPath),cfg=existingRaw.parsed,defaults=cfg.agents?.defaults??{},workspace=desiredWorkspace??defaults.workspace??DEFAULT_AGENT_WORKSPACE_DIR,next={...cfg,agents:{...cfg.agents,defaults:{...defaults,workspace}}};!existingRaw.exists||defaults.workspace!==workspace?(await writeConfigFile(next),existingRaw.exists?logConfigUpdated(runtime,{path:configPath,suffix:`(set agents.defaults.workspace)`}):runtime.log(`Wrote ${formatConfigPath(configPath)}`)):runtime.log(`Config OK: ${formatConfigPath(configPath)}`);let ws=await ensureAgentWorkspace({dir:workspace,ensureBootstrapFiles:!next.agents?.defaults?.skipBootstrap});runtime.log(`Workspace OK: ${shortenHomePath(ws.dir)}`);let sessionsDir=resolveSessionTranscriptsDir();await fs.mkdir(sessionsDir,{recursive:!0}),runtime.log(`Sessions OK: ${shortenHomePath(sessionsDir)}`)}function registerSetupCommand(program){program.command(`setup`).description(`Initialize ~/.builderforce/builderforce.json and the agent workspace`).addHelpText(`after`,()=>`\n${theme.muted(`Docs:`)} ${formatDocsLink(`/cli/setup`,`docs.builderforce.ai/cli/setup`)}\n`).option(`--workspace <dir>`,`Agent workspace directory (default: ~/.builderforce/workspace; stored as agents.defaults.workspace)`).option(`--wizard`,`Run the interactive onboarding wizard`,!1).option(`--non-interactive`,`Run the wizard without prompts`,!1).option(`--mode <mode>`,`Wizard mode: local|remote`).option(`--remote-url <url>`,`Remote Gateway WebSocket URL`).option(`--remote-token <token>`,`Remote Gateway token (optional)`).action(async(opts,command)=>{await runCommandWithRuntime(defaultRuntime,async()=>{let hasWizardFlags=hasExplicitOptions(command,[`wizard`,`nonInteractive`,`mode`,`remoteUrl`,`remoteToken`]);if(opts.wizard||hasWizardFlags){await onboardCommand({workspace:opts.workspace,nonInteractive:!!opts.nonInteractive,mode:opts.mode,remoteUrl:opts.remoteUrl,remoteToken:opts.remoteToken},defaultRuntime);return}await setupCommand({workspace:opts.workspace},defaultRuntime)})})}export{registerSetupCommand};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./paths-BHg-VHB4.js";import"./registry-Cv7CoWAs.js";import"./utils-BP60e80M.js";import"./subsystem-C4b1Von0.js";import"./boolean-ssGoaBPk.js";import"./env-BoE8QSib.js";import{r as registerSubCliByName}from"./register.subclis-
|
|
1
|
+
import"./paths-BHg-VHB4.js";import"./registry-Cv7CoWAs.js";import"./utils-BP60e80M.js";import"./subsystem-C4b1Von0.js";import"./boolean-ssGoaBPk.js";import"./env-BoE8QSib.js";import{r as registerSubCliByName}from"./register.subclis-EScCVgbV.js";export{registerSubCliByName};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as getPrimaryCommand,c as hasHelpOrVersion,t as buildParseArgv}from"./argv-BgQk38nl.js";import{t as isTruthyEnvValue}from"./env-BoE8QSib.js";import{r as resolveActionArgs}from"./helpers-DPw5_6PJ.js";async function reparseProgramFromActionArgs(program,actionArgs){let actionCommand=actionArgs.at(-1),rawArgs=(actionCommand?.parent??program).rawArgs,actionArgsList=resolveActionArgs(actionCommand),fallbackArgv=actionCommand?.name()?[actionCommand.name(),...actionArgsList]:actionArgsList,parseArgv=buildParseArgv({programName:program.name(),rawArgs,fallbackArgv});await program.parseAsync(parseArgv)}const shouldRegisterPrimaryOnly=argv=>!(isTruthyEnvValue(process.env.BUILDERFORCE_AGENTS_DISABLE_LAZY_SUBCOMMANDS)||hasHelpOrVersion(argv)),shouldEagerRegisterSubcommands=_argv=>isTruthyEnvValue(process.env.BUILDERFORCE_AGENTS_DISABLE_LAZY_SUBCOMMANDS),loadConfig=async()=>{let{loadConfig:_load}=await import(`./io-DSIGyPrT.js`);return _load()},entries=[{name:`acp`,description:`Agent Control Protocol tools`,hasSubcommands:!0,register:async program=>{(await import(`./acp-cli-BxH-eUDl.js`)).registerAcpCli(program)}},{name:`gateway`,description:`Run, inspect, and query the WebSocket Gateway`,hasSubcommands:!0,register:async program=>{(await import(`./gateway-cli-
|
|
1
|
+
import{a as getPrimaryCommand,c as hasHelpOrVersion,t as buildParseArgv}from"./argv-BgQk38nl.js";import{t as isTruthyEnvValue}from"./env-BoE8QSib.js";import{r as resolveActionArgs}from"./helpers-DPw5_6PJ.js";async function reparseProgramFromActionArgs(program,actionArgs){let actionCommand=actionArgs.at(-1),rawArgs=(actionCommand?.parent??program).rawArgs,actionArgsList=resolveActionArgs(actionCommand),fallbackArgv=actionCommand?.name()?[actionCommand.name(),...actionArgsList]:actionArgsList,parseArgv=buildParseArgv({programName:program.name(),rawArgs,fallbackArgv});await program.parseAsync(parseArgv)}const shouldRegisterPrimaryOnly=argv=>!(isTruthyEnvValue(process.env.BUILDERFORCE_AGENTS_DISABLE_LAZY_SUBCOMMANDS)||hasHelpOrVersion(argv)),shouldEagerRegisterSubcommands=_argv=>isTruthyEnvValue(process.env.BUILDERFORCE_AGENTS_DISABLE_LAZY_SUBCOMMANDS),loadConfig=async()=>{let{loadConfig:_load}=await import(`./io-DSIGyPrT.js`);return _load()},entries=[{name:`acp`,description:`Agent Control Protocol tools`,hasSubcommands:!0,register:async program=>{(await import(`./acp-cli-BxH-eUDl.js`)).registerAcpCli(program)}},{name:`gateway`,description:`Run, inspect, and query the WebSocket Gateway`,hasSubcommands:!0,register:async program=>{(await import(`./gateway-cli-z47dfosr.js`)).registerGatewayCli(program)}},{name:`daemon`,description:`Gateway service (legacy alias)`,hasSubcommands:!0,register:async program=>{(await import(`./daemon-cli-DmicpZED.js`)).registerDaemonCli(program)}},{name:`logs`,description:`Tail gateway file logs via RPC`,hasSubcommands:!1,register:async program=>{(await import(`./logs-cli-CdM5W3HE.js`)).registerLogsCli(program)}},{name:`usage`,description:`Show provider usage / quota (and workspace spend via gateway)`,hasSubcommands:!1,register:async program=>{(await import(`./usage-cli-CpbYMXxS.js`)).registerUsageCli(program)}},{name:`system`,description:`System events, heartbeat, and presence`,hasSubcommands:!0,register:async program=>{(await import(`./system-cli-C7YzJeP4.js`)).registerSystemCli(program)}},{name:`models`,description:`Discover, scan, and configure models`,hasSubcommands:!0,register:async program=>{(await import(`./models-cli-KokGgWeP.js`)).registerModelsCli(program)}},{name:`approvals`,description:`Manage exec approvals (gateway or node host)`,hasSubcommands:!0,register:async program=>{(await import(`./exec-approvals-cli-BPFi82B0.js`)).registerExecApprovalsCli(program)}},{name:`nodes`,description:`Manage gateway-owned node pairing and node commands`,hasSubcommands:!0,register:async program=>{(await import(`./nodes-cli-DyHovdAc.js`)).registerNodesCli(program)}},{name:`devices`,description:`Device pairing + token management`,hasSubcommands:!0,register:async program=>{(await import(`./devices-cli-B9G6YOsS.js`)).registerDevicesCli(program)}},{name:`node`,description:`Run and manage the headless node host service`,hasSubcommands:!0,register:async program=>{(await import(`./node-cli-DIMh3X2F.js`)).registerNodeCli(program)}},{name:`sandbox`,description:`Manage sandbox containers for agent isolation`,hasSubcommands:!0,register:async program=>{(await import(`./sandbox-cli-BtGs0dBR.js`)).registerSandboxCli(program)}},{name:`tui`,description:`Open a terminal UI connected to the Gateway`,hasSubcommands:!1,register:async program=>{(await import(`./tui-cli-wn3DmvUG.js`)).registerTuiCli(program)}},{name:`cron`,description:`Manage cron jobs via the Gateway scheduler`,hasSubcommands:!0,register:async program=>{(await import(`./cron-cli-BrOM4s6N.js`)).registerCronCli(program)}},{name:`workflow`,description:`Trigger Builderforce workflows from the CLI / CI`,hasSubcommands:!0,register:async program=>{(await import(`./workflow-cli-vR_1STp7.js`)).registerWorkflowCli(program)}},{name:`dns`,description:`DNS helpers for wide-area discovery (Tailscale + CoreDNS)`,hasSubcommands:!0,register:async program=>{(await import(`./dns-cli-CgZ7oMcT.js`)).registerDnsCli(program)}},{name:`docs`,description:`Search the live BuilderForceAgents docs`,hasSubcommands:!1,register:async program=>{(await import(`./docs-cli-CIGkic0F.js`)).registerDocsCli(program)}},{name:`hooks`,description:`Manage internal agent hooks`,hasSubcommands:!0,register:async program=>{(await import(`./hooks-cli-B0lVee-j.js`)).registerHooksCli(program)}},{name:`webhooks`,description:`Webhook helpers and integrations`,hasSubcommands:!0,register:async program=>{(await import(`./webhooks-cli-B_f61rq7.js`)).registerWebhooksCli(program)}},{name:`qr`,description:`Generate iOS pairing QR/setup code`,hasSubcommands:!1,register:async program=>{(await import(`./qr-cli-CySNSEFj.js`)).registerQrCli(program)}},{name:`agentbot`,description:`Legacy agentbot command aliases`,hasSubcommands:!0,register:async program=>{(await import(`./agentbot-cli-CTRvEfBp.js`)).registerAgentbotCli(program)}},{name:`pairing`,description:`Secure DM pairing (approve inbound requests)`,hasSubcommands:!0,register:async program=>{let{registerPluginCliCommands}=await import(`./cli-C5MbcECQ.js`);registerPluginCliCommands(program,await loadConfig()),(await import(`./pairing-cli-Dxfoni-F.js`)).registerPairingCli(program)}},{name:`plugins`,description:`Manage BuilderForceAgents plugins and extensions`,hasSubcommands:!0,register:async program=>{(await import(`./plugins-cli-CpaVUv_r.js`)).registerPluginsCli(program);let{registerPluginCliCommands}=await import(`./cli-C5MbcECQ.js`);registerPluginCliCommands(program,await loadConfig())}},{name:`channels`,description:`Manage connected chat channels (Telegram, Discord, etc.)`,hasSubcommands:!0,register:async program=>{(await import(`./channels-cli-nNW0ezPM.js`)).registerChannelsCli(program)}},{name:`directory`,description:`Lookup contact and group IDs (self, peers, groups) for supported chat channels`,hasSubcommands:!0,register:async program=>{(await import(`./directory-cli-BRCaiGOn.js`)).registerDirectoryCli(program)}},{name:`security`,description:`Security tools and local config audits`,hasSubcommands:!0,register:async program=>{(await import(`./security-cli-D8Q8I7fn.js`)).registerSecurityCli(program)}},{name:`skills`,description:`List and inspect available skills`,hasSubcommands:!0,register:async program=>{(await import(`./skills-cli-CIdnXa3B.js`)).registerSkillsCli(program)}},{name:`update`,description:`Update BuilderForceAgents and inspect update channel status`,hasSubcommands:!0,register:async program=>{(await import(`./update-cli-CN0oxZ_A.js`)).registerUpdateCli(program)}},{name:`completion`,description:`Generate shell completion script`,hasSubcommands:!1,register:async program=>{(await import(`./completion-cli-Ck0FTqPT.js`)).registerCompletionCli(program)}}];function getSubCliEntries(){return entries}function getSubCliCommandsWithSubcommands(){return entries.filter(entry=>entry.hasSubcommands).map(entry=>entry.name)}function removeCommand(program,command){let commands=program.commands,index=commands.indexOf(command);index>=0&&commands.splice(index,1)}async function registerSubCliByName(program,name){let entry=entries.find(candidate=>candidate.name===name);if(!entry)return!1;let existing=program.commands.find(cmd=>cmd.name()===entry.name);return existing&&removeCommand(program,existing),await entry.register(program),!0}function registerLazyCommand(program,entry){let placeholder=program.command(entry.name).description(entry.description);placeholder.allowUnknownOption(!0),placeholder.allowExcessArguments(!0),placeholder.action(async(...actionArgs)=>{removeCommand(program,placeholder),await entry.register(program),await reparseProgramFromActionArgs(program,actionArgs)})}function registerSubCliCommands(program,argv=process.argv){if(shouldEagerRegisterSubcommands(argv)){for(let entry of entries)entry.register(program);return}let primary=getPrimaryCommand(argv);if(primary&&shouldRegisterPrimaryOnly(argv)){let entry=entries.find(candidate=>candidate.name===primary);if(entry){registerLazyCommand(program,entry);return}}for(let candidate of entries)registerLazyCommand(program,candidate)}export{reparseProgramFromActionArgs as a,registerSubCliCommands as i,getSubCliEntries as n,registerSubCliByName as r,getSubCliCommandsWithSubcommands as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./paths-BHg-VHB4.js";import{a as getPrimaryCommand,c as hasHelpOrVersion,i as getPositiveIntFlagValue,n as getCommandPath,o as getVerboseFlag,r as getFlagValue,s as hasFlag}from"./argv-BgQk38nl.js";import{t as normalizeWindowsArgv}from"./windows-argv-ClCYQujd.js";import"./registry-Cv7CoWAs.js";import"./utils-BP60e80M.js";import{p as defaultRuntime,r as enableConsoleCapture}from"./subsystem-C4b1Von0.js";import"./boolean-ssGoaBPk.js";import{r as normalizeEnv,t as isTruthyEnvValue}from"./env-BoE8QSib.js";import"./warning-filter-nSTjpMIH.js";import"./auth-profiles-C1VbcUOm.js";import"./src-DvWaTze9.js";import"./logger-wuOr7HKl.js";import"./session-key-CksCYipj.js";import"./builderforce-root-DY1qbWNX.js";import"./exec-COgsU9ql.js";import"./agent-scope-CufEmNj_.js";import"./env-file-DeS6x2OL.js";import"./src-HrLX5bhG.js";import{G as loadDotEnv,U as VERSION}from"./io-CohJffHG.js";import"./manifest-registry-009gLJ4l.js";import"./config-toczWD3q.js";import"./model-discovery-C9Xm95uL.js";import"./model-catalog-CiiFJX77.js";import"./frontmatter-CaY7feZm.js";import"./skills-D3MwwPOH.js";import"./plugin-skills-pSFUbhg_.js";import"./refresh-C4vwneXT.js";import"./client-CGgp3zkQ.js";import"./call-DmAU4cRX.js";import"./message-channel-z5YRpR2d.js";import"./subagent-registry-CyGxu3kP.js";import"./sessions-Bl1wwotX.js";import"./project-context-store-CIUcwUP_.js";import"./tokens-CFKkpUIu.js";import"./plugins-1Mn6RiNf.js";import"./accounts-BkTLjSrD.js";import"./bindings-CKSDlQ1i.js";import"./send-BvroeIQ6.js";import"./send-CceNWtYE.js";import"./with-timeout-T07SJo4N.js";import"./deliver-BuZu68tp.js";import"./accounts-Cx82nj4E.js";import"./send-ByCVQQVz.js";import"./image-ops-CotJhwRR.js";import"./redact-CgO7wehS.js";import"./errors-tAt19c1E.js";import"./embedded-helpers-DK8_apW0.js";import"./sandbox-z9t_PRf9.js";import"./chrome-BnEbJV3D.js";import"./tailscale-DV-yOmYe.js";import"./auth-ChecwOXS.js";import"./server-context-owOmmyUM.js";import"./routes-lclJHOYY.js";import"./paths-BnOjueoX.js";import"./ssrf-DJXLYZ0d.js";import"./store-DHD2IEgd.js";import"./ports-DTku9NSx.js";import"./trash-C3zmJ_O7.js";import"./accounts-DcoaLXKI.js";import"./paths-ClsbsPQP.js";import"./tool-images-CCpqFtrL.js";import"./workspace-waBqRxiy.js";import"./reply-prefix-Cg7AqaK0.js";import"./sqlite-CIGM1WKg.js";import"./memory-cli-ivAs7q7v.js";import"./manager-CRba8roB.js";import"./gemini-auth-CkD5jCPh.js";import"./retry-B151Hej5.js";import"./common-BfwMxpLu.js";import{c as installUnhandledRejectionHandler,u as installUncaughtExceptionHandler}from"./runner-DwWmciCt.js";import"./tool-display-Cs4hDP1f.js";import"./chunk-Dly7lM4r.js";import"./markdown-tables-B1Rx8hv6.js";import"./fetch-guard-DnXqPKae.js";import"./fetch-Cn_THzz8.js";import"./ir-CSdQJPqu.js";import"./render-DlHYsbvQ.js";import"./builderforcellm-syscheck-CprBhARf.js";import"./session-utils-GMvum00v.js";import"./coding-tools.policy-NEPm7Mz1.js";import"./pairing-store-QDb6lhIU.js";import"./fetch-DnWD6ydH.js";import"./exec-approvals-D7ZPAZpt.js";import"./nodes-screen-D6GHv_S0.js";import"./session-cost-usage-S0nkbPoW.js";import"./usage-format-5sp5AMSu.js";import"./provider-usage-Bn4ZrnU7.js";import"./send-B_1BtyfA.js";import"./outbound-attachment-BaTYE4qp.js";import"./delivery-queue-Cp3t4Upn.js";import"./project-context-D3Mx4maV.js";import"./control-service-CJuuqNOE.js";import"./stagger-CRe77dWL.js";import"./channel-selection-BLwXhb9t.js";import"./send-UFtylOiq.js";import"./resolve-route-DEIW5uKy.js";import"./channel-activity-DX36RadH.js";import"./tables-CojSfTth.js";import"./links-BKzP7VVP.js";import"./cli-utils-C9pW69LF.js";import"./help-format-CfFf-w62.js";import"./progress-Cqb-jAjT.js";import"./replies-DbkT_5BV.js";import"./onboard-helpers-CckrS8_K.js";import"./prompt-style-BMWmaqSC.js";import"./pairing-labels-3j_iRYOO.js";import"./active-listener-Di9e1YAD.js";import"./mamba-state-engine-CV4nDcCk.js";import"./transformers-stream-Buj40qHl.js";import{t as ensureBuilderForceAgentsCliOnPath}from"./path-env-Gmzpaha-.js";import{t as ensurePluginRegistryLoaded}from"./plugin-registry-SAdxNUwm.js";import{t as assertSupportedRuntime}from"./runtime-guard-Bi8k55v9.js";import{t as emitCliBanner}from"./banner-DY-L7_eI.js";import{t as ensureConfigReady}from"./config-guard-ClVl2FvD.js";import process$1 from"node:process";import"node:url";const routeHealth={match:path=>path[0]===`health`,loadPlugins:!0,run:async argv=>{let json=hasFlag(argv,`--json`),verbose=getVerboseFlag(argv,{includeDebug:!0}),timeoutMs=getPositiveIntFlagValue(argv,`--timeout`);if(timeoutMs===null)return!1;let{healthCommand}=await import(`./health-GLcAfqDz.js`);return await healthCommand({json,timeoutMs,verbose},defaultRuntime),!0}},routeStatus={match:path=>path[0]===`status`,loadPlugins:!0,run:async argv=>{let json=hasFlag(argv,`--json`),deep=hasFlag(argv,`--deep`),all=hasFlag(argv,`--all`),usage=hasFlag(argv,`--usage`),verbose=getVerboseFlag(argv,{includeDebug:!0}),timeoutMs=getPositiveIntFlagValue(argv,`--timeout`);if(timeoutMs===null)return!1;let{statusCommand}=await import(`./status-BTYqHVha.js`);return await statusCommand({json,deep,all,usage,timeoutMs,verbose},defaultRuntime),!0}},routeSessions={match:path=>path[0]===`sessions`,run:async argv=>{let json=hasFlag(argv,`--json`),store=getFlagValue(argv,`--store`);if(store===null)return!1;let active=getFlagValue(argv,`--active`);if(active===null)return!1;let{sessionsCommand}=await import(`./sessions-B5dwRhUC.js`);return await sessionsCommand({json,store,active},defaultRuntime),!0}},routeAgentsList={match:path=>path[0]===`agents`&&path[1]===`list`,run:async argv=>{let json=hasFlag(argv,`--json`),bindings=hasFlag(argv,`--bindings`),{agentsListCommand}=await import(`./agents-DsZ5vLKE.js`);return await agentsListCommand({json,bindings},defaultRuntime),!0}},routeMemoryStatus={match:path=>path[0]===`memory`&&path[1]===`status`,run:async argv=>{let agent=getFlagValue(argv,`--agent`);if(agent===null)return!1;let json=hasFlag(argv,`--json`),deep=hasFlag(argv,`--deep`),index=hasFlag(argv,`--index`),verbose=hasFlag(argv,`--verbose`),{runMemoryStatus}=await import(`./memory-cli-BlayFTAM.js`);return await runMemoryStatus({agent,json,deep,index,verbose}),!0}};function getCommandPositionals(argv){let out=[],args=argv.slice(2);for(let arg of args){if(!arg||arg===`--`)break;arg.startsWith(`-`)||out.push(arg)}return out}function getFlagValues(argv,name){let values=[],args=argv.slice(2);for(let i=0;i<args.length;i+=1){let arg=args[i];if(!arg||arg===`--`)break;if(arg===name){let next=args[i+1];if(!next||next===`--`||next.startsWith(`-`))return null;values.push(next),i+=1;continue}if(arg.startsWith(`${name}=`)){let value=arg.slice(name.length+1).trim();if(!value)return null;values.push(value)}}return values}const routes=[routeHealth,routeStatus,routeSessions,routeAgentsList,routeMemoryStatus,{match:path=>path[0]===`config`&&path[1]===`get`,run:async argv=>{let pathArg=getCommandPositionals(argv)[2];if(!pathArg)return!1;let json=hasFlag(argv,`--json`),{runConfigGet}=await import(`./config-cli-CfczShaZ.js`);return await runConfigGet({path:pathArg,json}),!0}},{match:path=>path[0]===`config`&&path[1]===`unset`,run:async argv=>{let pathArg=getCommandPositionals(argv)[2];if(!pathArg)return!1;let{runConfigUnset}=await import(`./config-cli-CfczShaZ.js`);return await runConfigUnset({path:pathArg}),!0}},{match:path=>path[0]===`models`&&path[1]===`list`,run:async argv=>{let provider=getFlagValue(argv,`--provider`);if(provider===null)return!1;let all=hasFlag(argv,`--all`),local=hasFlag(argv,`--local`),json=hasFlag(argv,`--json`),plain=hasFlag(argv,`--plain`),{modelsListCommand}=await import(`./models-DQeSIY6M.js`);return await modelsListCommand({all,local,provider,json,plain},defaultRuntime),!0}},{match:path=>path[0]===`models`&&path[1]===`status`,run:async argv=>{let probeProvider=getFlagValue(argv,`--probe-provider`);if(probeProvider===null)return!1;let probeTimeout=getFlagValue(argv,`--probe-timeout`);if(probeTimeout===null)return!1;let probeConcurrency=getFlagValue(argv,`--probe-concurrency`);if(probeConcurrency===null)return!1;let probeMaxTokens=getFlagValue(argv,`--probe-max-tokens`);if(probeMaxTokens===null)return!1;let agent=getFlagValue(argv,`--agent`);if(agent===null)return!1;let probeProfileValues=getFlagValues(argv,`--probe-profile`);if(probeProfileValues===null)return!1;let probeProfile=probeProfileValues.length===0?void 0:probeProfileValues.length===1?probeProfileValues[0]:probeProfileValues,json=hasFlag(argv,`--json`),plain=hasFlag(argv,`--plain`),check=hasFlag(argv,`--check`),probe=hasFlag(argv,`--probe`),{modelsStatusCommand}=await import(`./models-DQeSIY6M.js`);return await modelsStatusCommand({json,plain,check,probe,probeProvider,probeProfile,probeTimeout,probeConcurrency,probeMaxTokens,agent},defaultRuntime),!0}}];function findRoutedCommand(path){for(let route of routes)if(route.match(path))return route;return null}async function prepareRoutedCommand(params){emitCliBanner(VERSION,{argv:params.argv}),await ensureConfigReady({runtime:defaultRuntime,commandPath:params.commandPath}),params.loadPlugins&&ensurePluginRegistryLoaded()}async function tryRouteCli(argv){if(isTruthyEnvValue(process.env.BUILDERFORCE_AGENTS_DISABLE_ROUTE_FIRST)||hasHelpOrVersion(argv))return!1;let path=getCommandPath(argv,2);if(!path[0])return!1;let route=findRoutedCommand(path);return route?(await prepareRoutedCommand({argv,commandPath:path,loadPlugins:route.loadPlugins}),route.run(argv)):!1}function rewriteUpdateFlagArgv(argv){let index=argv.indexOf(`--update`);if(index===-1)return argv;let next=[...argv];return next.splice(index,1,`update`),next}function shouldSkipPluginCommandRegistration(params){return params.hasBuiltinPrimary?!0:params.primary?!1:hasHelpOrVersion(params.argv)}function shouldEnsureCliPath(argv){if(hasHelpOrVersion(argv))return!1;let[primary,secondary]=getCommandPath(argv,2);return primary?!(primary===`status`||primary===`health`||primary===`sessions`||primary===`config`&&(secondary===`get`||secondary===`unset`)||primary===`models`&&(secondary===`list`||secondary===`status`)):!0}async function runCli(argv=process$1.argv){let normalizedArgv=normalizeWindowsArgv(argv);if(loadDotEnv({quiet:!0}),normalizeEnv(),shouldEnsureCliPath(normalizedArgv)&&ensureBuilderForceAgentsCliOnPath(),assertSupportedRuntime(),await tryRouteCli(normalizedArgv))return;enableConsoleCapture();let{buildProgram}=await import(`./program-DHWSgdol.js`),program=buildProgram();installUnhandledRejectionHandler(),installUncaughtExceptionHandler();let parseArgv=rewriteUpdateFlagArgv(normalizedArgv),primary=getPrimaryCommand(parseArgv);if(primary){let{getProgramContext}=await import(`./program-context-DvbyzP5Q.js`),ctx=getProgramContext(program);if(ctx){let{registerCoreCliByName}=await import(`./command-registry-CiR8PUQY.js`);await registerCoreCliByName(program,ctx,primary,parseArgv)}let{registerSubCliByName}=await import(`./register.subclis-lGgi7ATb.js`);await registerSubCliByName(program,primary)}if(!shouldSkipPluginCommandRegistration({argv:parseArgv,primary,hasBuiltinPrimary:primary!==null&&program.commands.some(command=>command.name()===primary)})){let{registerPluginCliCommands}=await import(`./cli-C5MbcECQ.js`),{loadConfig}=await import(`./config-27_FNba3.js`);registerPluginCliCommands(program,loadConfig())}await program.parseAsync(parseArgv)}export{runCli};
|
|
1
|
+
import"./paths-BHg-VHB4.js";import{a as getPrimaryCommand,c as hasHelpOrVersion,i as getPositiveIntFlagValue,n as getCommandPath,o as getVerboseFlag,r as getFlagValue,s as hasFlag}from"./argv-BgQk38nl.js";import{t as normalizeWindowsArgv}from"./windows-argv-ClCYQujd.js";import"./registry-Cv7CoWAs.js";import"./utils-BP60e80M.js";import{p as defaultRuntime,r as enableConsoleCapture}from"./subsystem-C4b1Von0.js";import"./boolean-ssGoaBPk.js";import{r as normalizeEnv,t as isTruthyEnvValue}from"./env-BoE8QSib.js";import"./warning-filter-nSTjpMIH.js";import"./auth-profiles-C1VbcUOm.js";import"./src-DvWaTze9.js";import"./logger-wuOr7HKl.js";import"./session-key-CksCYipj.js";import"./builderforce-root-DY1qbWNX.js";import"./exec-COgsU9ql.js";import"./agent-scope-CufEmNj_.js";import"./env-file-DeS6x2OL.js";import"./src-HrLX5bhG.js";import{G as loadDotEnv,U as VERSION}from"./io-CohJffHG.js";import"./manifest-registry-009gLJ4l.js";import"./config-toczWD3q.js";import"./model-discovery-C9Xm95uL.js";import"./model-catalog-CiiFJX77.js";import"./frontmatter-CaY7feZm.js";import"./skills-D3MwwPOH.js";import"./plugin-skills-pSFUbhg_.js";import"./refresh-C4vwneXT.js";import"./client-CGgp3zkQ.js";import"./call-DmAU4cRX.js";import"./message-channel-z5YRpR2d.js";import"./subagent-registry-CyGxu3kP.js";import"./sessions-Bl1wwotX.js";import"./project-context-store-CIUcwUP_.js";import"./tokens-CFKkpUIu.js";import"./plugins-1Mn6RiNf.js";import"./accounts-BkTLjSrD.js";import"./bindings-CKSDlQ1i.js";import"./send-BvroeIQ6.js";import"./send-CceNWtYE.js";import"./with-timeout-T07SJo4N.js";import"./deliver-BuZu68tp.js";import"./accounts-Cx82nj4E.js";import"./send-ByCVQQVz.js";import"./image-ops-CotJhwRR.js";import"./redact-CgO7wehS.js";import"./errors-tAt19c1E.js";import"./embedded-helpers-DK8_apW0.js";import"./sandbox-z9t_PRf9.js";import"./chrome-BnEbJV3D.js";import"./tailscale-DV-yOmYe.js";import"./auth-ChecwOXS.js";import"./server-context-owOmmyUM.js";import"./routes-lclJHOYY.js";import"./paths-BnOjueoX.js";import"./ssrf-DJXLYZ0d.js";import"./store-DHD2IEgd.js";import"./ports-DTku9NSx.js";import"./trash-C3zmJ_O7.js";import"./accounts-DcoaLXKI.js";import"./paths-ClsbsPQP.js";import"./tool-images-CCpqFtrL.js";import"./workspace-waBqRxiy.js";import"./reply-prefix-Cg7AqaK0.js";import"./sqlite-CIGM1WKg.js";import"./memory-cli-ivAs7q7v.js";import"./manager-CRba8roB.js";import"./gemini-auth-CkD5jCPh.js";import"./retry-B151Hej5.js";import"./common-BfwMxpLu.js";import{c as installUnhandledRejectionHandler,u as installUncaughtExceptionHandler}from"./runner-DwWmciCt.js";import"./tool-display-Cs4hDP1f.js";import"./chunk-Dly7lM4r.js";import"./markdown-tables-B1Rx8hv6.js";import"./fetch-guard-DnXqPKae.js";import"./fetch-Cn_THzz8.js";import"./ir-CSdQJPqu.js";import"./render-DlHYsbvQ.js";import"./builderforcellm-syscheck-CprBhARf.js";import"./session-utils-GMvum00v.js";import"./coding-tools.policy-NEPm7Mz1.js";import"./pairing-store-QDb6lhIU.js";import"./fetch-DnWD6ydH.js";import"./exec-approvals-D7ZPAZpt.js";import"./nodes-screen-D6GHv_S0.js";import"./session-cost-usage-S0nkbPoW.js";import"./usage-format-5sp5AMSu.js";import"./provider-usage-Bn4ZrnU7.js";import"./send-B_1BtyfA.js";import"./outbound-attachment-BaTYE4qp.js";import"./delivery-queue-Cp3t4Upn.js";import"./project-context-D3Mx4maV.js";import"./control-service-CJuuqNOE.js";import"./stagger-CRe77dWL.js";import"./channel-selection-BLwXhb9t.js";import"./send-UFtylOiq.js";import"./resolve-route-DEIW5uKy.js";import"./channel-activity-DX36RadH.js";import"./tables-CojSfTth.js";import"./links-BKzP7VVP.js";import"./cli-utils-C9pW69LF.js";import"./help-format-CfFf-w62.js";import"./progress-Cqb-jAjT.js";import"./replies-DbkT_5BV.js";import"./onboard-helpers-CckrS8_K.js";import"./prompt-style-BMWmaqSC.js";import"./pairing-labels-3j_iRYOO.js";import"./active-listener-Di9e1YAD.js";import"./mamba-state-engine-CV4nDcCk.js";import"./transformers-stream-Buj40qHl.js";import{t as ensureBuilderForceAgentsCliOnPath}from"./path-env-Gmzpaha-.js";import{t as ensurePluginRegistryLoaded}from"./plugin-registry-SAdxNUwm.js";import{t as assertSupportedRuntime}from"./runtime-guard-Bi8k55v9.js";import{t as emitCliBanner}from"./banner-DY-L7_eI.js";import{t as ensureConfigReady}from"./config-guard-ClVl2FvD.js";import process$1 from"node:process";import"node:url";const routeHealth={match:path=>path[0]===`health`,loadPlugins:!0,run:async argv=>{let json=hasFlag(argv,`--json`),verbose=getVerboseFlag(argv,{includeDebug:!0}),timeoutMs=getPositiveIntFlagValue(argv,`--timeout`);if(timeoutMs===null)return!1;let{healthCommand}=await import(`./health-GLcAfqDz.js`);return await healthCommand({json,timeoutMs,verbose},defaultRuntime),!0}},routeStatus={match:path=>path[0]===`status`,loadPlugins:!0,run:async argv=>{let json=hasFlag(argv,`--json`),deep=hasFlag(argv,`--deep`),all=hasFlag(argv,`--all`),usage=hasFlag(argv,`--usage`),verbose=getVerboseFlag(argv,{includeDebug:!0}),timeoutMs=getPositiveIntFlagValue(argv,`--timeout`);if(timeoutMs===null)return!1;let{statusCommand}=await import(`./status-BTYqHVha.js`);return await statusCommand({json,deep,all,usage,timeoutMs,verbose},defaultRuntime),!0}},routeSessions={match:path=>path[0]===`sessions`,run:async argv=>{let json=hasFlag(argv,`--json`),store=getFlagValue(argv,`--store`);if(store===null)return!1;let active=getFlagValue(argv,`--active`);if(active===null)return!1;let{sessionsCommand}=await import(`./sessions-B5dwRhUC.js`);return await sessionsCommand({json,store,active},defaultRuntime),!0}},routeAgentsList={match:path=>path[0]===`agents`&&path[1]===`list`,run:async argv=>{let json=hasFlag(argv,`--json`),bindings=hasFlag(argv,`--bindings`),{agentsListCommand}=await import(`./agents-DsZ5vLKE.js`);return await agentsListCommand({json,bindings},defaultRuntime),!0}},routeMemoryStatus={match:path=>path[0]===`memory`&&path[1]===`status`,run:async argv=>{let agent=getFlagValue(argv,`--agent`);if(agent===null)return!1;let json=hasFlag(argv,`--json`),deep=hasFlag(argv,`--deep`),index=hasFlag(argv,`--index`),verbose=hasFlag(argv,`--verbose`),{runMemoryStatus}=await import(`./memory-cli-BlayFTAM.js`);return await runMemoryStatus({agent,json,deep,index,verbose}),!0}};function getCommandPositionals(argv){let out=[],args=argv.slice(2);for(let arg of args){if(!arg||arg===`--`)break;arg.startsWith(`-`)||out.push(arg)}return out}function getFlagValues(argv,name){let values=[],args=argv.slice(2);for(let i=0;i<args.length;i+=1){let arg=args[i];if(!arg||arg===`--`)break;if(arg===name){let next=args[i+1];if(!next||next===`--`||next.startsWith(`-`))return null;values.push(next),i+=1;continue}if(arg.startsWith(`${name}=`)){let value=arg.slice(name.length+1).trim();if(!value)return null;values.push(value)}}return values}const routes=[routeHealth,routeStatus,routeSessions,routeAgentsList,routeMemoryStatus,{match:path=>path[0]===`config`&&path[1]===`get`,run:async argv=>{let pathArg=getCommandPositionals(argv)[2];if(!pathArg)return!1;let json=hasFlag(argv,`--json`),{runConfigGet}=await import(`./config-cli-CfczShaZ.js`);return await runConfigGet({path:pathArg,json}),!0}},{match:path=>path[0]===`config`&&path[1]===`unset`,run:async argv=>{let pathArg=getCommandPositionals(argv)[2];if(!pathArg)return!1;let{runConfigUnset}=await import(`./config-cli-CfczShaZ.js`);return await runConfigUnset({path:pathArg}),!0}},{match:path=>path[0]===`models`&&path[1]===`list`,run:async argv=>{let provider=getFlagValue(argv,`--provider`);if(provider===null)return!1;let all=hasFlag(argv,`--all`),local=hasFlag(argv,`--local`),json=hasFlag(argv,`--json`),plain=hasFlag(argv,`--plain`),{modelsListCommand}=await import(`./models-DQeSIY6M.js`);return await modelsListCommand({all,local,provider,json,plain},defaultRuntime),!0}},{match:path=>path[0]===`models`&&path[1]===`status`,run:async argv=>{let probeProvider=getFlagValue(argv,`--probe-provider`);if(probeProvider===null)return!1;let probeTimeout=getFlagValue(argv,`--probe-timeout`);if(probeTimeout===null)return!1;let probeConcurrency=getFlagValue(argv,`--probe-concurrency`);if(probeConcurrency===null)return!1;let probeMaxTokens=getFlagValue(argv,`--probe-max-tokens`);if(probeMaxTokens===null)return!1;let agent=getFlagValue(argv,`--agent`);if(agent===null)return!1;let probeProfileValues=getFlagValues(argv,`--probe-profile`);if(probeProfileValues===null)return!1;let probeProfile=probeProfileValues.length===0?void 0:probeProfileValues.length===1?probeProfileValues[0]:probeProfileValues,json=hasFlag(argv,`--json`),plain=hasFlag(argv,`--plain`),check=hasFlag(argv,`--check`),probe=hasFlag(argv,`--probe`),{modelsStatusCommand}=await import(`./models-DQeSIY6M.js`);return await modelsStatusCommand({json,plain,check,probe,probeProvider,probeProfile,probeTimeout,probeConcurrency,probeMaxTokens,agent},defaultRuntime),!0}}];function findRoutedCommand(path){for(let route of routes)if(route.match(path))return route;return null}async function prepareRoutedCommand(params){emitCliBanner(VERSION,{argv:params.argv}),await ensureConfigReady({runtime:defaultRuntime,commandPath:params.commandPath}),params.loadPlugins&&ensurePluginRegistryLoaded()}async function tryRouteCli(argv){if(isTruthyEnvValue(process.env.BUILDERFORCE_AGENTS_DISABLE_ROUTE_FIRST)||hasHelpOrVersion(argv))return!1;let path=getCommandPath(argv,2);if(!path[0])return!1;let route=findRoutedCommand(path);return route?(await prepareRoutedCommand({argv,commandPath:path,loadPlugins:route.loadPlugins}),route.run(argv)):!1}function rewriteUpdateFlagArgv(argv){let index=argv.indexOf(`--update`);if(index===-1)return argv;let next=[...argv];return next.splice(index,1,`update`),next}function shouldSkipPluginCommandRegistration(params){return params.hasBuiltinPrimary?!0:params.primary?!1:hasHelpOrVersion(params.argv)}function shouldEnsureCliPath(argv){if(hasHelpOrVersion(argv))return!1;let[primary,secondary]=getCommandPath(argv,2);return primary?!(primary===`status`||primary===`health`||primary===`sessions`||primary===`config`&&(secondary===`get`||secondary===`unset`)||primary===`models`&&(secondary===`list`||secondary===`status`)):!0}async function runCli(argv=process$1.argv){let normalizedArgv=normalizeWindowsArgv(argv);if(loadDotEnv({quiet:!0}),normalizeEnv(),shouldEnsureCliPath(normalizedArgv)&&ensureBuilderForceAgentsCliOnPath(),assertSupportedRuntime(),await tryRouteCli(normalizedArgv))return;enableConsoleCapture();let{buildProgram}=await import(`./program-BgDciyOQ.js`),program=buildProgram();installUnhandledRejectionHandler(),installUncaughtExceptionHandler();let parseArgv=rewriteUpdateFlagArgv(normalizedArgv),primary=getPrimaryCommand(parseArgv);if(primary){let{getProgramContext}=await import(`./program-context-DvbyzP5Q.js`),ctx=getProgramContext(program);if(ctx){let{registerCoreCliByName}=await import(`./command-registry-hHegQvBn.js`);await registerCoreCliByName(program,ctx,primary,parseArgv)}let{registerSubCliByName}=await import(`./register.subclis-Dl6jPPsc.js`);await registerSubCliByName(program,primary)}if(!shouldSkipPluginCommandRegistration({argv:parseArgv,primary,hasBuiltinPrimary:primary!==null&&program.commands.some(command=>command.name()===primary)})){let{registerPluginCliCommands}=await import(`./cli-C5MbcECQ.js`),{loadConfig}=await import(`./config-27_FNba3.js`);registerPluginCliCommands(program,loadConfig())}await program.parseAsync(parseArgv)}export{runCli};
|