@seanhogg/builderforce-agents 2026.10.3 → 2026.10.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (143) hide show
  1. package/dist/{agent-CxhUn-aN.js → agent-Cu57zjv6.js} +1 -1
  2. package/dist/{agent-CiEaiH-p.js → agent-LoZ_09Jv.js} +1 -1
  3. package/dist/{agents-DkKFDcYq.js → agents-Dgrr6E7S.js} +1 -1
  4. package/dist/{agents-IZrPoZIi.js → agents-DiRof4zA.js} +1 -1
  5. package/dist/{audio-preflight-COZAlqnx.js → audio-preflight-Cg4vjX8I.js} +1 -1
  6. package/dist/{auth-choice-CrYQF7zX.js → auth-choice-BJmosINc.js} +1 -1
  7. package/dist/{auth-choice-DhUBmu6y.js → auth-choice-CDoW8QDy.js} +1 -1
  8. package/dist/{auth-choice.apply-Botyf6Sg.js → auth-choice.apply-25j_lhua.js} +1 -1
  9. package/dist/{auth-choice.apply-k9tk1hGj.js → auth-choice.apply-CE1TC_Ts.js} +1 -1
  10. package/dist/{auth-choice.apply-Cch5UXis.js → auth-choice.apply-DSHzvYNu.js} +1 -1
  11. package/dist/{auth-choice.apply-CXRcLO-h.js → auth-choice.apply-ND2C2oSe.js} +1 -1
  12. package/dist/{auth-choice.apply.transformers-BkN8HlZJ.js → auth-choice.apply.transformers-BF-qyu2L.js} +1 -1
  13. package/dist/{auth-choice.apply.transformers-B9SieNNk.js → auth-choice.apply.transformers-CBQbUAwr.js} +1 -1
  14. package/dist/{auth-choice.apply.transformers-D02W3zy7.js → auth-choice.apply.transformers-DE9QrzbX.js} +1 -1
  15. package/dist/{auth-choice.apply.transformers-Dnr7Izx1.js → auth-choice.apply.transformers-vr05ATPq.js} +1 -1
  16. package/dist/{banner-Bd45EXyp.js → banner-Bx4c92N8.js} +1 -1
  17. package/dist/build-info.json +3 -3
  18. package/dist/{builderforce-BxVfTQsc.js → builderforce-DHU87PJG.js} +1 -1
  19. package/dist/{builderforce-C86noipf.js → builderforce-DgYCZ3Up.js} +1 -1
  20. package/dist/bundled/boot-md/handler.js +1 -1
  21. package/dist/bundled/session-memory/handler.js +1 -1
  22. package/dist/{channel-options-BHetVK54.js → channel-options-BZoCW2EZ.js} +1 -1
  23. package/dist/{channel-options-D5PmuxT-.js → channel-options-DAkHvC-x.js} +1 -1
  24. package/dist/{channel-web-B5QgCj6B.js → channel-web-BWEX1FnI.js} +1 -1
  25. package/dist/{channels-cli-sHtDH37K.js → channels-cli-DHFIXbTT.js} +1 -1
  26. package/dist/{channels-cli-CgZqXqUm.js → channels-cli-DvkQEBwz.js} +1 -1
  27. package/dist/chrome-CbBg1ngA.js +4 -0
  28. package/dist/{cli-DKoe6Ywl.js → cli-C9bsC2UP.js} +1 -1
  29. package/dist/{cli-DlaHihmr.js → cli-DnMFuBeA.js} +1 -1
  30. package/dist/{command-registry-FQIQbQAx.js → command-registry-DUOpdtcT.js} +1 -1
  31. package/dist/{command-registry-BhyY4aXy.js → command-registry-DrRz6Wgg.js} +1 -1
  32. package/dist/{completion-cli-D86ydD3X.js → completion-cli-BtLeKqh_.js} +1 -1
  33. package/dist/{completion-cli-H4iKy2_f.js → completion-cli-Cq33pQdJ.js} +1 -1
  34. package/dist/{completion-cli-CoFRiwNp.js → completion-cli-EbyCUnCP.js} +1 -1
  35. package/dist/{completion-cli-DF6vmGRs.js → completion-cli-mzQa8oTd.js} +1 -1
  36. package/dist/{config-cli-D6KAk3vw.js → config-cli-BIQl_nrn.js} +1 -1
  37. package/dist/{config-cli-9HoPtGDR.js → config-cli-Dw1pr9MW.js} +1 -1
  38. package/dist/{configure-B_FvthXy.js → configure-B1HJIRSM.js} +1 -1
  39. package/dist/{configure-CYwCU0Hw.js → configure-BPX5i4at.js} +1 -1
  40. package/dist/{configure-BgZGeNXf.js → configure-CKm9_xkS.js} +1 -1
  41. package/dist/{configure-6QCgecON.js → configure-CQPFd8N9.js} +1 -1
  42. package/dist/{deps-jUQM2eq1.js → deps-DN7fhGiB.js} +1 -1
  43. package/dist/{doctor-completion-CZrfkBfj.js → doctor-completion-B7JXY8EJ.js} +1 -1
  44. package/dist/{doctor-completion-BSbAN5p1.js → doctor-completion-BEVC1EV7.js} +1 -1
  45. package/dist/{embedded-CA0n2tyG.js → embedded-BBM-usEa.js} +7 -7
  46. package/dist/{embedded-SSuKQ6Yc.js → embedded-CIuP-6Ex.js} +2 -2
  47. package/dist/entry.js +1 -1
  48. package/dist/extensionAPI.js +1 -1
  49. package/dist/{gateway-cli-8SuDvuCq.js → gateway-cli-CvdguqNO.js} +2 -2
  50. package/dist/{gateway-cli-D5pW1jLs.js → gateway-cli-DvMzpFIF.js} +2 -2
  51. package/dist/{health-BLW40WUJ.js → health-Bd0YvHPq.js} +1 -1
  52. package/dist/{health-DqZB_jd8.js → health-CcUquV5P.js} +1 -1
  53. package/dist/{health-Cggr6c-2.js → health-CoTbsx1p.js} +1 -1
  54. package/dist/{hooks-cli-BQZjt-Fk.js → hooks-cli-D1mx0_F_.js} +1 -1
  55. package/dist/{hooks-cli-D5Zt0sN4.js → hooks-cli-Dr0hMOiz.js} +1 -1
  56. package/dist/index.js +2 -2
  57. package/dist/llm-slug-generator.js +1 -1
  58. package/dist/{models-DH9Vrv7O.js → models-D3MukbTO.js} +1 -1
  59. package/dist/{models-cli-DLZZwy_m.js → models-cli-CBUEjJ_T.js} +1 -1
  60. package/dist/{models-cli-CAaWi4TX.js → models-cli-nD2MyRO3.js} +1 -1
  61. package/dist/{models-bp562zNz.js → models-px2EtCBB.js} +1 -1
  62. package/dist/{onboard-pzmSj6MG.js → onboard-CelRLEbD.js} +1 -1
  63. package/dist/{onboard-CpFQ-bpz.js → onboard-D_Ja6cJL.js} +1 -1
  64. package/dist/{onboard-channels-BsMS0Ehd.js → onboard-channels-C5v3gxTE.js} +1 -1
  65. package/dist/{onboard-channels-D1FMu5M8.js → onboard-channels-CEMtoVzX.js} +1 -1
  66. package/dist/{onboard-channels-CKWKLbTn.js → onboard-channels-DIvxrZLb.js} +1 -1
  67. package/dist/{onboard-channels-CqXCWPaQ.js → onboard-channels-pPjt4AF5.js} +1 -1
  68. package/dist/{onboard-interactive-BAcb1Yd8.js → onboard-interactive-BIVMtUaZ.js} +1 -1
  69. package/dist/{onboard-interactive-COTt-hGf.js → onboard-interactive-CeQp6fAt.js} +1 -1
  70. package/dist/{onboard-interactive-B_YG0JwA.js → onboard-interactive-D3YgFz9n.js} +1 -1
  71. package/dist/{onboard-interactive-BdwTeKJ2.js → onboard-interactive-tVpsWM3V.js} +1 -1
  72. package/dist/{onboarding-C8IDtM8O.js → onboarding-B9P9Rocf.js} +2 -2
  73. package/dist/{onboarding-BhMZqtBx.js → onboarding-DXxufSuN.js} +2 -2
  74. package/dist/{onboarding.finalize-DpyMh92r.js → onboarding.finalize-BJbv33Sa.js} +1 -1
  75. package/dist/{onboarding.finalize-DEhEHZPV.js → onboarding.finalize-CiIdxWgH.js} +1 -1
  76. package/dist/{outbound-send-deps-CKOfRpqk.js → outbound-send-deps-DL5n0r7v.js} +1 -1
  77. package/dist/{plugin-registry-Bi-9AQMd.js → plugin-registry-B5gTbK3m.js} +1 -1
  78. package/dist/{plugin-registry-nxUQWv6l.js → plugin-registry-CBXZbshG.js} +1 -1
  79. package/dist/{plugin-registry-BlKyKAq2.js → plugin-registry-DEWbh_9i.js} +1 -1
  80. package/dist/{plugin-registry-CqGq9jzk.js → plugin-registry-Glc-xriO.js} +1 -1
  81. package/dist/plugin-sdk/{channel-web-C3UtHX6b.js → channel-web-CW5s6vEZ.js} +1 -1
  82. package/dist/plugin-sdk/index.js +1 -1
  83. package/dist/plugin-sdk/{reply-BTKDKB2t.js → reply-pngAtrhW.js} +2 -2
  84. package/dist/plugin-sdk/{web-CsPSK9U2.js → web-DfrDkFj_.js} +1 -1
  85. package/dist/{plugins-CUhWH9-E.js → plugins-BJNBD6Si.js} +1 -1
  86. package/dist/{plugins-B8Lge-oB.js → plugins-BZnMash4.js} +1 -1
  87. package/dist/{plugins-cli-c36MSKiX.js → plugins-cli-Cv_bwpr4.js} +1 -1
  88. package/dist/{plugins-cli-CgjC_YvF.js → plugins-cli-DkFN_JgK.js} +1 -1
  89. package/dist/{program-QMtnfrM_.js → program-DYU1raxm.js} +2 -2
  90. package/dist/{program-context-BgCNjcCh.js → program-context-D4S-3zNt.js} +1 -1
  91. package/dist/{prompt-select-styled-CWG9o2CX.js → prompt-select-styled-BhKY5Oj4.js} +1 -1
  92. package/dist/{prompt-select-styled-m1_NXutn.js → prompt-select-styled-D1StbM6j.js} +1 -1
  93. package/dist/{provider-auth-helpers-BFCTgzr_.js → provider-auth-helpers-5ZQb3SEz.js} +1 -1
  94. package/dist/{provider-auth-helpers-D0eiRpeb.js → provider-auth-helpers-Cibq8oDi.js} +1 -1
  95. package/dist/{provider-dispatcher-Djomkp5i.js → provider-dispatcher-Bwaplzm8.js} +1 -1
  96. package/dist/{provider-dispatcher-B6kumPDM.js → provider-dispatcher-kL8Yl9XU.js} +1 -1
  97. package/dist/{push-apns-DalSFp-6.js → push-apns-BXmSvfvx.js} +1 -1
  98. package/dist/{push-apns-DwSjHMuA.js → push-apns-C9hsLIBU.js} +1 -1
  99. package/dist/{pw-ai-1DyAPekE.js → pw-ai-BLyUwyRC.js} +1 -1
  100. package/dist/{register.agent-BZn434eF.js → register.agent-C4x77WJe.js} +1 -1
  101. package/dist/{register.agent-DNaHcARI.js → register.agent-CbP_v3k5.js} +1 -1
  102. package/dist/{register.configure-GTH7BPIx.js → register.configure-B-j2lVkz.js} +1 -1
  103. package/dist/{register.configure-Bflad790.js → register.configure-BsBerk8U.js} +1 -1
  104. package/dist/{register.maintenance-Dl7P66Jm.js → register.maintenance-B83yzc-P.js} +1 -1
  105. package/dist/{register.maintenance-B1XK1zeY.js → register.maintenance-WLPWJ7vr.js} +1 -1
  106. package/dist/{register.message-CJS3PPCy.js → register.message-BVo8xLbS.js} +1 -1
  107. package/dist/{register.message-CA5LiG16.js → register.message-DZ9zcORn.js} +1 -1
  108. package/dist/{register.onboard-Bj6wFSzC.js → register.onboard-CWCqKyU7.js} +1 -1
  109. package/dist/{register.onboard-4y1mzgCn.js → register.onboard-D9mB9MLj.js} +1 -1
  110. package/dist/{register.setup-Cvk8SB1q.js → register.setup-BMFb9IC4.js} +1 -1
  111. package/dist/{register.setup-zLIWO_nF.js → register.setup-C22fWTFR.js} +1 -1
  112. package/dist/{register.status-health-sessions-CjxA4ATI.js → register.status-health-sessions-BqMqFeMA.js} +1 -1
  113. package/dist/{register.status-health-sessions-CIYKmgKO.js → register.status-health-sessions-C-jqKRZ5.js} +1 -1
  114. package/dist/{register.subclis-Ua7PkPpv.js → register.subclis-Ceyv8kgc.js} +1 -1
  115. package/dist/{register.subclis-Ct4QBaKi.js → register.subclis-DxcQwaQg.js} +1 -1
  116. package/dist/{reply-gZ_yr2mJ.js → reply-BeKidf2F.js} +4 -4
  117. package/dist/{run-main-Cyc_C0B-.js → run-main-EhlBxGJB.js} +1 -1
  118. package/dist/{runner-C1sy_uJN.js → runner-P3IfAnSL.js} +3 -3
  119. package/dist/{server-node-events-CSsH-eIF.js → server-node-events-BZuSkcbo.js} +1 -1
  120. package/dist/{server-node-events-Bz_Qo5BV.js → server-node-events-CIsEZSfR.js} +1 -1
  121. package/dist/{session-dirs-fh5kvbyH.js → session-dirs-DH7k5ehu.js} +1 -1
  122. package/dist/{session-dirs-DVL9vHmq.js → session-dirs-DgwMogyJ.js} +1 -1
  123. package/dist/{status-sAc6yoa3.js → status-BY0kS_wo.js} +1 -1
  124. package/dist/{status-SPonEO1J.js → status-B_SXw9W4.js} +1 -1
  125. package/dist/{status-DZYF4S6_.js → status-BqEzSHhZ.js} +1 -1
  126. package/dist/{status-ChEjU5un.js → status-Ca-hgLW_.js} +1 -1
  127. package/dist/{status-CpxCM8BO.js → status-_KIJcQH-.js} +1 -1
  128. package/dist/{subagent-registry-BHP3_ka8.js → subagent-registry-98yia-RN.js} +4 -4
  129. package/dist/{subagent-registry-BYK0Wq_w.js → subagent-registry-Ch9dN-TR.js} +1 -1
  130. package/dist/{subagent-registry-DR5M5QUP.js → subagent-registry-CiYeuaym.js} +1 -1
  131. package/dist/{tui-Ujq2bTco.js → tui-BIpdEy5i.js} +2 -2
  132. package/dist/{tui-BsMw6I4Y.js → tui-DeG1am8h.js} +2 -2
  133. package/dist/{tui-cli-CLYxMYyC.js → tui-cli-3mxSu-O0.js} +1 -1
  134. package/dist/{tui-cli-BBKMdwDt.js → tui-cli-CXRFHYWv.js} +1 -1
  135. package/dist/{update-cli-uQLI7RCN.js → update-cli-BYhJHTZ0.js} +1 -1
  136. package/dist/{update-cli-BKcCNOzz.js → update-cli-DkgHl95y.js} +1 -1
  137. package/dist/{web-Bkk568P6.js → web--D7qJmx6.js} +1 -1
  138. package/dist/{web-wR7gzEVJ.js → web-CgypI7gs.js} +1 -1
  139. package/dist/{web-CGo9DnE4.js → web-DKmwaw7q.js} +1 -1
  140. package/dist/{web-DktK5vCb.js → web-Dvcfg5Kd.js} +1 -1
  141. package/extensions/memory-lancedb/package.json +2 -2
  142. package/package.json +1 -1
  143. package/dist/chrome-CAuboFG7.js +0 -4
@@ -1 +1 @@
1
- import"./paths-BHg-VHB4.js";import"./registry-Cv7CoWAs.js";import{D as danger,O as info,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"./auth-profiles-BcStSGQ1.js";import{t as formatCliCommand}from"./command-format-DTMaGKs7.js";import"./logger-AbH8mdkv.js";import"./session-key-D--2AEus.js";import"./builderforce-root-D3-p8W2n.js";import"./exec-CGuYALEs.js";import"./agent-scope-BcoQBOwz.js";import"./env-file-BIKVpYUN.js";import"./src-DMo2gLcR.js";import{a as readConfigFileSnapshot,c as writeConfigFile}from"./io-wLHeSE2L.js";import"./manifest-registry-DZdPjBqs.js";import"./config-DBrFbWRm.js";import{t as formatDocsLink}from"./links-B6LU5cXN.js";import JSON5 from"json5";function isIndexSegment(raw){return/^[0-9]+$/.test(raw)}function parsePath(raw){let trimmed=raw.trim();if(!trimmed)return[];let parts=[],current=``,i=0;for(;i<trimmed.length;){let ch=trimmed[i];if(ch===`\\`){let next=trimmed[i+1];next&&(current+=next),i+=2;continue}if(ch===`.`){current&&parts.push(current),current=``,i+=1;continue}if(ch===`[`){current&&parts.push(current),current=``;let close=trimmed.indexOf(`]`,i);if(close===-1)throw Error(`Invalid path (missing "]"): ${raw}`);let inside=trimmed.slice(i+1,close).trim();if(!inside)throw Error(`Invalid path (empty "[]"): ${raw}`);parts.push(inside),i=close+1;continue}current+=ch,i+=1}return current&&parts.push(current),parts.map(part=>part.trim()).filter(Boolean)}function parseValue(raw,opts){let trimmed=raw.trim();if(opts.json)try{return JSON5.parse(trimmed)}catch(err){throw Error(`Failed to parse JSON5 value: ${String(err)}`,{cause:err})}try{return JSON5.parse(trimmed)}catch{return raw}}function getAtPath(root,path){let current=root;for(let segment of path){if(!current||typeof current!=`object`)return{found:!1};if(Array.isArray(current)){if(!isIndexSegment(segment))return{found:!1};let index=Number.parseInt(segment,10);if(!Number.isFinite(index)||index<0||index>=current.length)return{found:!1};current=current[index];continue}let record=current;if(!(segment in record))return{found:!1};current=record[segment]}return{found:!0,value:current}}function setAtPath(root,path,value){let current=root;for(let i=0;i<path.length-1;i+=1){let segment=path[i],next=path[i+1],nextIsIndex=!!(next&&isIndexSegment(next));if(Array.isArray(current)){if(!isIndexSegment(segment))throw Error(`Expected numeric index for array segment "${segment}"`);let index=Number.parseInt(segment,10),existing=current[index];(!existing||typeof existing!=`object`)&&(current[index]=nextIsIndex?[]:{}),current=current[index];continue}if(!current||typeof current!=`object`)throw Error(`Cannot traverse into "${segment}" (not an object)`);let record=current,existing=record[segment];(!existing||typeof existing!=`object`)&&(record[segment]=nextIsIndex?[]:{}),current=record[segment]}let last=path[path.length-1];if(Array.isArray(current)){if(!isIndexSegment(last))throw Error(`Expected numeric index for array segment "${last}"`);let index=Number.parseInt(last,10);current[index]=value;return}if(!current||typeof current!=`object`)throw Error(`Cannot set "${last}" (parent is not an object)`);current[last]=value}function unsetAtPath(root,path){let current=root;for(let i=0;i<path.length-1;i+=1){let segment=path[i];if(!current||typeof current!=`object`)return!1;if(Array.isArray(current)){if(!isIndexSegment(segment))return!1;let index=Number.parseInt(segment,10);if(!Number.isFinite(index)||index<0||index>=current.length)return!1;current=current[index];continue}let record=current;if(!(segment in record))return!1;current=record[segment]}let last=path[path.length-1];if(Array.isArray(current)){if(!isIndexSegment(last))return!1;let index=Number.parseInt(last,10);return!Number.isFinite(index)||index<0||index>=current.length?!1:(current.splice(index,1),!0)}if(!current||typeof current!=`object`)return!1;let record=current;return last in record?(delete record[last],!0):!1}async function loadValidConfig(runtime=defaultRuntime){let snapshot=await readConfigFileSnapshot();if(snapshot.valid)return snapshot;runtime.error(`Config invalid at ${shortenHomePath(snapshot.path)}.`);for(let issue of snapshot.issues)runtime.error(`- ${issue.path||`<root>`}: ${issue.message}`);return runtime.error(`Run \`${formatCliCommand(`builderforce doctor`)}\` to repair, then retry.`),runtime.exit(1),snapshot}function parseRequiredPath(path){let parsedPath=parsePath(path);if(parsedPath.length===0)throw Error(`Path is empty.`);return parsedPath}async function runConfigGet(opts){let runtime=opts.runtime??defaultRuntime;try{let parsedPath=parseRequiredPath(opts.path),res=getAtPath((await loadValidConfig(runtime)).config,parsedPath);if(!res.found){runtime.error(danger(`Config path not found: ${opts.path}`)),runtime.exit(1);return}if(opts.json){runtime.log(JSON.stringify(res.value??null,null,2));return}if(typeof res.value==`string`||typeof res.value==`number`||typeof res.value==`boolean`){runtime.log(String(res.value));return}runtime.log(JSON.stringify(res.value??null,null,2))}catch(err){runtime.error(danger(String(err))),runtime.exit(1)}}async function runConfigUnset(opts){let runtime=opts.runtime??defaultRuntime;try{let parsedPath=parseRequiredPath(opts.path),snapshot=await loadValidConfig(runtime),next=structuredClone(snapshot.resolved);if(!unsetAtPath(next,parsedPath)){runtime.error(danger(`Config path not found: ${opts.path}`)),runtime.exit(1);return}await writeConfigFile(next),runtime.log(info(`Removed ${opts.path}. Restart the gateway to apply.`))}catch(err){runtime.error(danger(String(err))),runtime.exit(1)}}function registerConfigCli(program){let cmd=program.command(`config`).description(`Non-interactive config helpers (get/set/unset). Run without subcommand for the setup wizard.`).addHelpText(`after`,()=>`\n${theme.muted(`Docs:`)} ${formatDocsLink(`/cli/config`,`docs.builderforce.ai/cli/config`)}\n`).option(`--section <section>`,`Configure wizard sections (repeatable). Use with no subcommand.`,(value,previous)=>[...previous,value],[]).action(async opts=>{let{configureCommandFromSectionsArg}=await import(`./configure-BgZGeNXf.js`);await configureCommandFromSectionsArg(opts.section,defaultRuntime)});cmd.command(`get`).description(`Get a config value by dot path`).argument(`<path>`,`Config path (dot or bracket notation)`).option(`--json`,`Output JSON`,!1).action(async(path,opts)=>{await runConfigGet({path,json:!!opts.json})}),cmd.command(`set`).description(`Set a config value by dot path`).argument(`<path>`,`Config path (dot or bracket notation)`).argument(`<value>`,`Value (JSON5 or raw string)`).option(`--json`,`Parse value as JSON5 (required)`,!1).action(async(path,value,opts)=>{try{let parsedPath=parsePath(path);if(parsedPath.length===0)throw Error(`Path is empty.`);let parsedValue=parseValue(value,opts),snapshot=await loadValidConfig(),next=structuredClone(snapshot.resolved);setAtPath(next,parsedPath,parsedValue),await writeConfigFile(next),defaultRuntime.log(info(`Updated ${path}. Restart the gateway to apply.`))}catch(err){defaultRuntime.error(danger(String(err))),defaultRuntime.exit(1)}}),cmd.command(`unset`).description(`Remove a config value by dot path`).argument(`<path>`,`Config path (dot or bracket notation)`).action(async path=>{await runConfigUnset({path})})}export{registerConfigCli,runConfigGet,runConfigUnset};
1
+ import"./paths-BHg-VHB4.js";import"./registry-Cv7CoWAs.js";import{D as danger,O as info,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"./auth-profiles-BcStSGQ1.js";import{t as formatCliCommand}from"./command-format-DTMaGKs7.js";import"./logger-AbH8mdkv.js";import"./session-key-D--2AEus.js";import"./builderforce-root-D3-p8W2n.js";import"./exec-CGuYALEs.js";import"./agent-scope-BcoQBOwz.js";import"./env-file-BIKVpYUN.js";import"./src-DMo2gLcR.js";import{a as readConfigFileSnapshot,c as writeConfigFile}from"./io-wLHeSE2L.js";import"./manifest-registry-DZdPjBqs.js";import"./config-DBrFbWRm.js";import{t as formatDocsLink}from"./links-B6LU5cXN.js";import JSON5 from"json5";function isIndexSegment(raw){return/^[0-9]+$/.test(raw)}function parsePath(raw){let trimmed=raw.trim();if(!trimmed)return[];let parts=[],current=``,i=0;for(;i<trimmed.length;){let ch=trimmed[i];if(ch===`\\`){let next=trimmed[i+1];next&&(current+=next),i+=2;continue}if(ch===`.`){current&&parts.push(current),current=``,i+=1;continue}if(ch===`[`){current&&parts.push(current),current=``;let close=trimmed.indexOf(`]`,i);if(close===-1)throw Error(`Invalid path (missing "]"): ${raw}`);let inside=trimmed.slice(i+1,close).trim();if(!inside)throw Error(`Invalid path (empty "[]"): ${raw}`);parts.push(inside),i=close+1;continue}current+=ch,i+=1}return current&&parts.push(current),parts.map(part=>part.trim()).filter(Boolean)}function parseValue(raw,opts){let trimmed=raw.trim();if(opts.json)try{return JSON5.parse(trimmed)}catch(err){throw Error(`Failed to parse JSON5 value: ${String(err)}`,{cause:err})}try{return JSON5.parse(trimmed)}catch{return raw}}function getAtPath(root,path){let current=root;for(let segment of path){if(!current||typeof current!=`object`)return{found:!1};if(Array.isArray(current)){if(!isIndexSegment(segment))return{found:!1};let index=Number.parseInt(segment,10);if(!Number.isFinite(index)||index<0||index>=current.length)return{found:!1};current=current[index];continue}let record=current;if(!(segment in record))return{found:!1};current=record[segment]}return{found:!0,value:current}}function setAtPath(root,path,value){let current=root;for(let i=0;i<path.length-1;i+=1){let segment=path[i],next=path[i+1],nextIsIndex=!!(next&&isIndexSegment(next));if(Array.isArray(current)){if(!isIndexSegment(segment))throw Error(`Expected numeric index for array segment "${segment}"`);let index=Number.parseInt(segment,10),existing=current[index];(!existing||typeof existing!=`object`)&&(current[index]=nextIsIndex?[]:{}),current=current[index];continue}if(!current||typeof current!=`object`)throw Error(`Cannot traverse into "${segment}" (not an object)`);let record=current,existing=record[segment];(!existing||typeof existing!=`object`)&&(record[segment]=nextIsIndex?[]:{}),current=record[segment]}let last=path[path.length-1];if(Array.isArray(current)){if(!isIndexSegment(last))throw Error(`Expected numeric index for array segment "${last}"`);let index=Number.parseInt(last,10);current[index]=value;return}if(!current||typeof current!=`object`)throw Error(`Cannot set "${last}" (parent is not an object)`);current[last]=value}function unsetAtPath(root,path){let current=root;for(let i=0;i<path.length-1;i+=1){let segment=path[i];if(!current||typeof current!=`object`)return!1;if(Array.isArray(current)){if(!isIndexSegment(segment))return!1;let index=Number.parseInt(segment,10);if(!Number.isFinite(index)||index<0||index>=current.length)return!1;current=current[index];continue}let record=current;if(!(segment in record))return!1;current=record[segment]}let last=path[path.length-1];if(Array.isArray(current)){if(!isIndexSegment(last))return!1;let index=Number.parseInt(last,10);return!Number.isFinite(index)||index<0||index>=current.length?!1:(current.splice(index,1),!0)}if(!current||typeof current!=`object`)return!1;let record=current;return last in record?(delete record[last],!0):!1}async function loadValidConfig(runtime=defaultRuntime){let snapshot=await readConfigFileSnapshot();if(snapshot.valid)return snapshot;runtime.error(`Config invalid at ${shortenHomePath(snapshot.path)}.`);for(let issue of snapshot.issues)runtime.error(`- ${issue.path||`<root>`}: ${issue.message}`);return runtime.error(`Run \`${formatCliCommand(`builderforce doctor`)}\` to repair, then retry.`),runtime.exit(1),snapshot}function parseRequiredPath(path){let parsedPath=parsePath(path);if(parsedPath.length===0)throw Error(`Path is empty.`);return parsedPath}async function runConfigGet(opts){let runtime=opts.runtime??defaultRuntime;try{let parsedPath=parseRequiredPath(opts.path),res=getAtPath((await loadValidConfig(runtime)).config,parsedPath);if(!res.found){runtime.error(danger(`Config path not found: ${opts.path}`)),runtime.exit(1);return}if(opts.json){runtime.log(JSON.stringify(res.value??null,null,2));return}if(typeof res.value==`string`||typeof res.value==`number`||typeof res.value==`boolean`){runtime.log(String(res.value));return}runtime.log(JSON.stringify(res.value??null,null,2))}catch(err){runtime.error(danger(String(err))),runtime.exit(1)}}async function runConfigUnset(opts){let runtime=opts.runtime??defaultRuntime;try{let parsedPath=parseRequiredPath(opts.path),snapshot=await loadValidConfig(runtime),next=structuredClone(snapshot.resolved);if(!unsetAtPath(next,parsedPath)){runtime.error(danger(`Config path not found: ${opts.path}`)),runtime.exit(1);return}await writeConfigFile(next),runtime.log(info(`Removed ${opts.path}. Restart the gateway to apply.`))}catch(err){runtime.error(danger(String(err))),runtime.exit(1)}}function registerConfigCli(program){let cmd=program.command(`config`).description(`Non-interactive config helpers (get/set/unset). Run without subcommand for the setup wizard.`).addHelpText(`after`,()=>`\n${theme.muted(`Docs:`)} ${formatDocsLink(`/cli/config`,`docs.builderforce.ai/cli/config`)}\n`).option(`--section <section>`,`Configure wizard sections (repeatable). Use with no subcommand.`,(value,previous)=>[...previous,value],[]).action(async opts=>{let{configureCommandFromSectionsArg}=await import(`./configure-CKm9_xkS.js`);await configureCommandFromSectionsArg(opts.section,defaultRuntime)});cmd.command(`get`).description(`Get a config value by dot path`).argument(`<path>`,`Config path (dot or bracket notation)`).option(`--json`,`Output JSON`,!1).action(async(path,opts)=>{await runConfigGet({path,json:!!opts.json})}),cmd.command(`set`).description(`Set a config value by dot path`).argument(`<path>`,`Config path (dot or bracket notation)`).argument(`<value>`,`Value (JSON5 or raw string)`).option(`--json`,`Parse value as JSON5 (required)`,!1).action(async(path,value,opts)=>{try{let parsedPath=parsePath(path);if(parsedPath.length===0)throw Error(`Path is empty.`);let parsedValue=parseValue(value,opts),snapshot=await loadValidConfig(),next=structuredClone(snapshot.resolved);setAtPath(next,parsedPath,parsedValue),await writeConfigFile(next),defaultRuntime.log(info(`Updated ${path}. Restart the gateway to apply.`))}catch(err){defaultRuntime.error(danger(String(err))),defaultRuntime.exit(1)}}),cmd.command(`unset`).description(`Remove a config value by dot path`).argument(`<path>`,`Config path (dot or bracket notation)`).action(async path=>{await runConfigUnset({path})})}export{registerConfigCli,runConfigGet,runConfigUnset};
@@ -1,4 +1,4 @@
1
- import{t as CONFIG_PATH,u as resolveGatewayPort}from"./paths-5FcIFMsj.js";import{C as shortenHomePath,b as resolveUserPath}from"./utils-DbaBVFaK.js";import{i as defaultRuntime}from"./subsystem-B3TqcCrZ.js";import{qt as ensureAuthProfileStore}from"./model-selection-DlYajIzF.js";import{t as formatCliCommand}from"./command-format-Dd7BgZsg.js";import{a as readConfigFileSnapshot,c as writeConfigFile,r as loadConfig}from"./io-DhUMGsxN.js";import{a as findTailscaleBinary}from"./tailscale-0ey4P_at.js";import{n as listChannelPlugins,t as getChannelPlugin}from"./plugins-C0lu7LGS.js";import{n as withProgress}from"./progress-OKwbfa23.js";import{a as ensureWorkspaceAndSessions,b as waitForGatewayReachable,f as printWizardHeader,g as resolveControlUiLinks,m as randomToken,n as applyWizardMetadata,p as probeGatewayReachable,s as guardCancel,t as DEFAULT_WORKSPACE,u as normalizeGatewayTokenInput,v as summarizeExistingConfig,y as validateGatewayPasswordInput}from"./onboard-helpers-DHGeaHZA.js";import{n as stylePromptMessage,r as stylePromptTitle,t as stylePromptHint}from"./prompt-style-BwwmGo3-.js";import{t as note$1}from"./note-CvzMolLy.js";import{t as WizardCancelledError}from"./prompts-Yv4eTTSo.js";import{t as createClackPrompter}from"./clack-prompter-6Booc-eg.js";import{n as setupChannels,t as noteChannelStatus}from"./onboard-channels-CKWKLbTn.js";import{a as gatewayInstallErrorHint,i as buildGatewayInstallPlan,n as GATEWAY_DAEMON_RUNTIME_OPTIONS,t as DEFAULT_GATEWAY_DAEMON_RUNTIME}from"./daemon-runtime-CWFj-hSG.js";import{t as resolveGatewayService}from"./service-BXrSjb3e.js";import{r as healthCommand}from"./health-Cggr6c-2.js";import{t as ensureControlUiAssetsBuilt}from"./control-ui-assets-CAmSpVpE.js";import{n as logConfigUpdated}from"./logging-9jbJihk2.js";import{t as promptAuthChoiceGrouped}from"./auth-choice-prompt-D_tSFWQL.js";import{t as applyAuthChoice}from"./auth-choice.apply-Botyf6Sg.js";import{a as promptModelAllowlist,i as promptDefaultModel,n as applyModelFallbacksFromSelection,r as applyPrimaryModel,t as applyModelAllowlist}from"./model-picker-DWc0Kexq.js";import{t as resolvePreferredProviderForAuthChoice}from"./auth-choice-DvKzhGrY.js";import{t as ensureSystemdUserLingerInteractive}from"./systemd-linger-RhNkOjuf.js";import{i as promptCustomApiConfig}from"./onboard-custom-DT2eDgHk.js";import{i as TAILSCALE_MISSING_BIN_NOTE_LINES,n as TAILSCALE_DOCS_LINES,r as TAILSCALE_EXPOSURE_OPTIONS,t as validateIPv4AddressInput}from"./ipv4-DJDmQRim.js";import{t as formatHealthCheckFailure}from"./health-format-COHxl9I_.js";import{t as promptRemoteGatewayConfig}from"./onboard-remote-CdnyqVyt.js";import{t as setupSkills}from"./onboard-skills-CAnj-Bi_.js";import{confirm,intro,outro,select,text}from"@clack/prompts";const CONFIGURE_WIZARD_SECTIONS=[`workspace`,`model`,`web`,`gateway`,`daemon`,`channels`,`skills`,`health`];function parseConfigureWizardSections(raw){let sectionsRaw=Array.isArray(raw)?raw.map(value=>typeof value==`string`?value.trim():``).filter(Boolean):[];if(sectionsRaw.length===0)return{sections:[],invalid:[]};let invalid=sectionsRaw.filter(s=>!CONFIGURE_WIZARD_SECTIONS.includes(s));return{sections:sectionsRaw.filter(s=>CONFIGURE_WIZARD_SECTIONS.includes(s)),invalid}}const CONFIGURE_SECTION_OPTIONS=[{value:`workspace`,label:`Workspace`,hint:`Set workspace + sessions`},{value:`model`,label:`Model`,hint:`Pick provider + credentials`},{value:`web`,label:`Web tools`,hint:`Configure Brave search + fetch`},{value:`gateway`,label:`Gateway`,hint:`Port, bind, auth, tailscale`},{value:`daemon`,label:`Daemon`,hint:`Install/manage the background service`},{value:`channels`,label:`Channels`,hint:`Link WhatsApp/Telegram/etc and defaults`},{value:`skills`,label:`Skills`,hint:`Install/enable workspace skills`},{value:`health`,label:`Health check`,hint:`Run gateway + channel checks`}],intro$1=message=>intro(stylePromptTitle(message)??message),outro$1=message=>outro(stylePromptTitle(message)??message),text$1=params=>text({...params,message:stylePromptMessage(params.message)}),confirm$1=params=>confirm({...params,message:stylePromptMessage(params.message)}),select$1=params=>select({...params,message:stylePromptMessage(params.message),options:params.options.map(opt=>opt.hint===void 0?opt:{...opt,hint:stylePromptHint(opt.hint)})});async function removeChannelConfigWizard(cfg,runtime){let next={...cfg},listConfiguredChannels=()=>listChannelPlugins().map(plugin=>plugin.meta).filter(meta=>next.channels?.[meta.id]!==void 0);for(;;){let configured=listConfiguredChannels();if(configured.length===0)return note$1([`No channel config found in builderforce.json.`,`Tip: \`${formatCliCommand(`builderforce channels status`)}\` shows what is configured and enabled.`].join(`
1
+ import{t as CONFIG_PATH,u as resolveGatewayPort}from"./paths-5FcIFMsj.js";import{C as shortenHomePath,b as resolveUserPath}from"./utils-DbaBVFaK.js";import{i as defaultRuntime}from"./subsystem-B3TqcCrZ.js";import{qt as ensureAuthProfileStore}from"./model-selection-DlYajIzF.js";import{t as formatCliCommand}from"./command-format-Dd7BgZsg.js";import{a as readConfigFileSnapshot,c as writeConfigFile,r as loadConfig}from"./io-DhUMGsxN.js";import{a as findTailscaleBinary}from"./tailscale-0ey4P_at.js";import{n as listChannelPlugins,t as getChannelPlugin}from"./plugins-C0lu7LGS.js";import{n as withProgress}from"./progress-OKwbfa23.js";import{a as ensureWorkspaceAndSessions,b as waitForGatewayReachable,f as printWizardHeader,g as resolveControlUiLinks,m as randomToken,n as applyWizardMetadata,p as probeGatewayReachable,s as guardCancel,t as DEFAULT_WORKSPACE,u as normalizeGatewayTokenInput,v as summarizeExistingConfig,y as validateGatewayPasswordInput}from"./onboard-helpers-DHGeaHZA.js";import{n as stylePromptMessage,r as stylePromptTitle,t as stylePromptHint}from"./prompt-style-BwwmGo3-.js";import{t as note$1}from"./note-CvzMolLy.js";import{t as WizardCancelledError}from"./prompts-Yv4eTTSo.js";import{t as createClackPrompter}from"./clack-prompter-6Booc-eg.js";import{n as setupChannels,t as noteChannelStatus}from"./onboard-channels-DIvxrZLb.js";import{a as gatewayInstallErrorHint,i as buildGatewayInstallPlan,n as GATEWAY_DAEMON_RUNTIME_OPTIONS,t as DEFAULT_GATEWAY_DAEMON_RUNTIME}from"./daemon-runtime-CWFj-hSG.js";import{t as resolveGatewayService}from"./service-BXrSjb3e.js";import{r as healthCommand}from"./health-CoTbsx1p.js";import{t as ensureControlUiAssetsBuilt}from"./control-ui-assets-CAmSpVpE.js";import{n as logConfigUpdated}from"./logging-9jbJihk2.js";import{t as promptAuthChoiceGrouped}from"./auth-choice-prompt-D_tSFWQL.js";import{t as applyAuthChoice}from"./auth-choice.apply-25j_lhua.js";import{a as promptModelAllowlist,i as promptDefaultModel,n as applyModelFallbacksFromSelection,r as applyPrimaryModel,t as applyModelAllowlist}from"./model-picker-DWc0Kexq.js";import{t as resolvePreferredProviderForAuthChoice}from"./auth-choice-DvKzhGrY.js";import{t as ensureSystemdUserLingerInteractive}from"./systemd-linger-RhNkOjuf.js";import{i as promptCustomApiConfig}from"./onboard-custom-DT2eDgHk.js";import{i as TAILSCALE_MISSING_BIN_NOTE_LINES,n as TAILSCALE_DOCS_LINES,r as TAILSCALE_EXPOSURE_OPTIONS,t as validateIPv4AddressInput}from"./ipv4-DJDmQRim.js";import{t as formatHealthCheckFailure}from"./health-format-COHxl9I_.js";import{t as promptRemoteGatewayConfig}from"./onboard-remote-CdnyqVyt.js";import{t as setupSkills}from"./onboard-skills-CAnj-Bi_.js";import{confirm,intro,outro,select,text}from"@clack/prompts";const CONFIGURE_WIZARD_SECTIONS=[`workspace`,`model`,`web`,`gateway`,`daemon`,`channels`,`skills`,`health`];function parseConfigureWizardSections(raw){let sectionsRaw=Array.isArray(raw)?raw.map(value=>typeof value==`string`?value.trim():``).filter(Boolean):[];if(sectionsRaw.length===0)return{sections:[],invalid:[]};let invalid=sectionsRaw.filter(s=>!CONFIGURE_WIZARD_SECTIONS.includes(s));return{sections:sectionsRaw.filter(s=>CONFIGURE_WIZARD_SECTIONS.includes(s)),invalid}}const CONFIGURE_SECTION_OPTIONS=[{value:`workspace`,label:`Workspace`,hint:`Set workspace + sessions`},{value:`model`,label:`Model`,hint:`Pick provider + credentials`},{value:`web`,label:`Web tools`,hint:`Configure Brave search + fetch`},{value:`gateway`,label:`Gateway`,hint:`Port, bind, auth, tailscale`},{value:`daemon`,label:`Daemon`,hint:`Install/manage the background service`},{value:`channels`,label:`Channels`,hint:`Link WhatsApp/Telegram/etc and defaults`},{value:`skills`,label:`Skills`,hint:`Install/enable workspace skills`},{value:`health`,label:`Health check`,hint:`Run gateway + channel checks`}],intro$1=message=>intro(stylePromptTitle(message)??message),outro$1=message=>outro(stylePromptTitle(message)??message),text$1=params=>text({...params,message:stylePromptMessage(params.message)}),confirm$1=params=>confirm({...params,message:stylePromptMessage(params.message)}),select$1=params=>select({...params,message:stylePromptMessage(params.message),options:params.options.map(opt=>opt.hint===void 0?opt:{...opt,hint:stylePromptHint(opt.hint)})});async function removeChannelConfigWizard(cfg,runtime){let next={...cfg},listConfiguredChannels=()=>listChannelPlugins().map(plugin=>plugin.meta).filter(meta=>next.channels?.[meta.id]!==void 0);for(;;){let configured=listConfiguredChannels();if(configured.length===0)return note$1([`No channel config found in builderforce.json.`,`Tip: \`${formatCliCommand(`builderforce channels status`)}\` shows what is configured and enabled.`].join(`
2
2
  `),`Remove channel`),next;let channel=guardCancel(await select$1({message:`Remove which channel config?`,options:[...configured.map(meta=>({value:meta.id,label:meta.label,hint:`Deletes tokens + settings from config (credentials stay on disk)`})),{value:`done`,label:`Done`}]}),runtime);if(channel===`done`)return next;let label=getChannelPlugin(channel)?.meta.label??channel;if(!guardCancel(await confirm$1({message:`Delete ${label} configuration from ${shortenHomePath(CONFIG_PATH)}?`,initialValue:!1}),runtime))continue;let nextChannels={...next.channels};delete nextChannels[channel],next={...next,channels:Object.keys(nextChannels).length?nextChannels:void 0},note$1([`${label} removed from config.`,`Note: credentials/sessions on disk are unchanged.`].join(`
3
3
  `),`Channel removed`)}}async function maybeInstallDaemon(params){let service=resolveGatewayService(),loaded=await service.isLoaded({env:process.env}),shouldCheckLinger=!1,shouldInstall=!0,daemonRuntime=params.daemonRuntime??DEFAULT_GATEWAY_DAEMON_RUNTIME;if(loaded){let action=guardCancel(await select$1({message:`Gateway service already installed`,options:[{value:`restart`,label:`Restart`},{value:`reinstall`,label:`Reinstall`},{value:`skip`,label:`Skip`}]}),params.runtime);if(action===`restart`&&(await withProgress({label:`Gateway service`,indeterminate:!0,delayMs:0},async progress=>{progress.setLabel(`Restarting Gateway service…`),await service.restart({env:process.env,stdout:process.stdout}),progress.setLabel(`Gateway service restarted.`)}),shouldCheckLinger=!0,shouldInstall=!1),action===`skip`)return;action===`reinstall`&&await withProgress({label:`Gateway service`,indeterminate:!0,delayMs:0},async progress=>{progress.setLabel(`Uninstalling Gateway service…`),await service.uninstall({env:process.env,stdout:process.stdout}),progress.setLabel(`Gateway service uninstalled.`)})}if(shouldInstall){let installError=null;if(params.daemonRuntime||(daemonRuntime=GATEWAY_DAEMON_RUNTIME_OPTIONS.length===1?GATEWAY_DAEMON_RUNTIME_OPTIONS[0]?.value??DEFAULT_GATEWAY_DAEMON_RUNTIME:guardCancel(await select$1({message:`Gateway service runtime`,options:GATEWAY_DAEMON_RUNTIME_OPTIONS,initialValue:DEFAULT_GATEWAY_DAEMON_RUNTIME}),params.runtime)),await withProgress({label:`Gateway service`,indeterminate:!0,delayMs:0},async progress=>{progress.setLabel(`Preparing Gateway service…`);let cfg=loadConfig(),{programArguments,workingDirectory,environment}=await buildGatewayInstallPlan({env:process.env,port:params.port,token:params.gatewayToken,runtime:daemonRuntime,warn:(message,title)=>note$1(message,title),config:cfg});progress.setLabel(`Installing Gateway service…`);try{await service.install({env:process.env,stdout:process.stdout,programArguments,workingDirectory,environment}),progress.setLabel(`Gateway service installed.`)}catch(err){installError=err instanceof Error?err.message:String(err),progress.setLabel(`Gateway service install failed.`)}}),installError){note$1(`Gateway service install failed: `+installError,`Gateway`),note$1(gatewayInstallErrorHint(),`Gateway`);return}shouldCheckLinger=!0}shouldCheckLinger&&await ensureSystemdUserLingerInteractive({runtime:params.runtime,prompter:{confirm:async p=>guardCancel(await confirm$1(p),params.runtime),note:note$1},reason:`Linux installs use a systemd user service. Without lingering, systemd stops the user session on logout/idle and kills the Gateway.`,requireConfirm:!0})}function sanitizeTokenValue(value){if(typeof value!=`string`)return;let trimmed=value.trim();if(!(!trimmed||trimmed===`undefined`||trimmed===`null`))return trimmed}const ANTHROPIC_OAUTH_MODEL_KEYS=[`anthropic/claude-sonnet-4-6`,`anthropic/claude-opus-4-6`,`anthropic/claude-opus-4-5`,`anthropic/claude-sonnet-4-5`,`anthropic/claude-haiku-4-5`];function buildGatewayAuthConfig(params){let allowTailscale=params.existing?.allowTailscale,base={};if(typeof allowTailscale==`boolean`&&(base.allowTailscale=allowTailscale),params.mode===`token`){let token=sanitizeTokenValue(params.token)??randomToken();return{...base,mode:`token`,token}}if(params.mode===`password`){let password=params.password?.trim();return{...base,mode:`password`,...password&&{password}}}if(params.mode===`trusted-proxy`){if(!params.trustedProxy)throw Error(`trustedProxy config is required when mode is trusted-proxy`);return{...base,mode:`trusted-proxy`,trustedProxy:params.trustedProxy}}return base}async function promptAuthConfig(cfg,runtime,prompter){let authChoice=await promptAuthChoiceGrouped({prompter,store:await ensureAuthProfileStore(void 0,{allowKeychainPrompt:!1}),includeSkip:!0}),next=cfg;if(authChoice===`custom-api-key`)next=(await promptCustomApiConfig({prompter,runtime,config:next})).config;else if(authChoice!==`skip`)next=(await applyAuthChoice({authChoice,config:next,prompter,runtime,setDefaultModel:!0})).config;else{let modelSelection=await promptDefaultModel({config:next,prompter,allowKeep:!0,ignoreAllowlist:!0,preferredProvider:resolvePreferredProviderForAuthChoice(authChoice)});modelSelection.config&&(next=modelSelection.config),modelSelection.model&&(next=applyPrimaryModel(next,modelSelection.model))}let anthropicOAuth=authChoice===`setup-token`||authChoice===`token`||authChoice===`oauth`;if(authChoice!==`custom-api-key`){let allowlistSelection=await promptModelAllowlist({config:next,prompter,allowedKeys:anthropicOAuth?ANTHROPIC_OAUTH_MODEL_KEYS:void 0,initialSelections:anthropicOAuth?[`anthropic/claude-sonnet-4-6`]:void 0,message:anthropicOAuth?`Anthropic OAuth models`:void 0});allowlistSelection.models&&(next=applyModelAllowlist(next,allowlistSelection.models),next=applyModelFallbacksFromSelection(next,allowlistSelection.models))}return next}async function promptGatewayConfig(cfg,runtime){let portRaw=guardCancel(await text$1({message:`Gateway port`,initialValue:String(resolveGatewayPort(cfg)),validate:value=>Number.isFinite(Number(value))?void 0:`Invalid port`}),runtime),port=Number.parseInt(String(portRaw),10),bind=guardCancel(await select$1({message:`Gateway bind mode`,options:[{value:`loopback`,label:`Loopback (Local only)`,hint:`Bind to 127.0.0.1 - secure, local-only access`},{value:`tailnet`,label:`Tailnet (Tailscale IP)`,hint:`Bind to your Tailscale IP only (100.x.x.x)`},{value:`auto`,label:`Auto (Loopback → LAN)`,hint:`Prefer loopback; fall back to all interfaces if unavailable`},{value:`lan`,label:`LAN (All interfaces)`,hint:`Bind to 0.0.0.0 - accessible from anywhere on your network`},{value:`custom`,label:`Custom IP`,hint:`Specify a specific IP address, with 0.0.0.0 fallback if unavailable`}]}),runtime),customBindHost;if(bind===`custom`){let input=guardCancel(await text$1({message:`Custom IP address`,placeholder:`192.168.1.100`,validate:validateIPv4AddressInput}),runtime);customBindHost=typeof input==`string`?input:void 0}let authMode=guardCancel(await select$1({message:`Gateway auth`,options:[{value:`token`,label:`Token`,hint:`Recommended default`},{value:`password`,label:`Password`},{value:`trusted-proxy`,label:`Trusted Proxy`,hint:`Behind reverse proxy (Pomerium, Caddy, Traefik, etc.)`}],initialValue:`token`}),runtime),tailscaleMode=guardCancel(await select$1({message:`Tailscale exposure`,options:[...TAILSCALE_EXPOSURE_OPTIONS]}),runtime);tailscaleMode!==`off`&&(await findTailscaleBinary()||note$1(TAILSCALE_MISSING_BIN_NOTE_LINES.join(`
4
4
  `),`Tailscale Warning`));let tailscaleResetOnExit=!1;tailscaleMode!==`off`&&(note$1(TAILSCALE_DOCS_LINES.join(`
@@ -1,4 +1,4 @@
1
- import{t as CONFIG_PATH,u as resolveGatewayPort}from"./paths-BHg-VHB4.js";import{S as shortenHomePath,y as resolveUserPath}from"./utils-BP60e80M.js";import{p as defaultRuntime}from"./subsystem-C4b1Von0.js";import{b as ensureAuthProfileStore}from"./auth-profiles-BcStSGQ1.js";import{t as formatCliCommand}from"./command-format-DTMaGKs7.js";import{a as readConfigFileSnapshot,c as writeConfigFile,r as loadConfig}from"./io-wLHeSE2L.js";import{n as listChannelPlugins,t as getChannelPlugin}from"./plugins-DJGW_fnS.js";import{a as findTailscaleBinary}from"./tailscale-CgCG7AVQ.js";import{n as withProgress}from"./progress-BQMO_-7I.js";import{a as ensureWorkspaceAndSessions,b as waitForGatewayReachable,f as printWizardHeader,g as resolveControlUiLinks,m as randomToken,n as applyWizardMetadata,p as probeGatewayReachable,s as guardCancel,t as DEFAULT_WORKSPACE,u as normalizeGatewayTokenInput,v as summarizeExistingConfig,y as validateGatewayPasswordInput}from"./onboard-helpers-Xl1gvLzt.js";import{n as stylePromptMessage,r as stylePromptTitle,t as stylePromptHint}from"./prompt-style-CZOeG0sw.js";import{t as note$1}from"./note-BvXfFmlu.js";import{t as WizardCancelledError}from"./prompts-BUDxN7ef.js";import{t as createClackPrompter}from"./clack-prompter-ZmHdfPGJ.js";import{n as setupChannels,t as noteChannelStatus}from"./onboard-channels-D1FMu5M8.js";import{a as gatewayInstallErrorHint,i as buildGatewayInstallPlan,n as GATEWAY_DAEMON_RUNTIME_OPTIONS,t as DEFAULT_GATEWAY_DAEMON_RUNTIME}from"./daemon-runtime-Cw90ZSZ3.js";import{t as resolveGatewayService}from"./service-ugwM110q.js";import{r as healthCommand}from"./health-BLW40WUJ.js";import{t as ensureControlUiAssetsBuilt}from"./control-ui-assets-BweA3rDY.js";import{n as logConfigUpdated}from"./logging-CRzk-5ye.js";import{t as promptAuthChoiceGrouped}from"./auth-choice-prompt-DvWWxKmC.js";import{t as applyAuthChoice}from"./auth-choice.apply-k9tk1hGj.js";import{a as promptModelAllowlist,i as promptDefaultModel,n as applyModelFallbacksFromSelection,r as applyPrimaryModel,t as applyModelAllowlist}from"./model-picker-Dz1ecLd0.js";import{t as resolvePreferredProviderForAuthChoice}from"./auth-choice-BMeBDEfj.js";import{t as ensureSystemdUserLingerInteractive}from"./systemd-linger-CuzOv-tn.js";import{i as promptCustomApiConfig}from"./onboard-custom-D2zVBKVf.js";import{i as TAILSCALE_MISSING_BIN_NOTE_LINES,n as TAILSCALE_DOCS_LINES,r as TAILSCALE_EXPOSURE_OPTIONS,t as validateIPv4AddressInput}from"./ipv4-hAhGHbHe.js";import{t as formatHealthCheckFailure}from"./health-format-CtcXvo40.js";import{t as promptRemoteGatewayConfig}from"./onboard-remote-CFao-x7W.js";import{t as setupSkills}from"./onboard-skills-CZNKHsWB.js";import{confirm,intro,outro,select,text}from"@clack/prompts";const CONFIGURE_WIZARD_SECTIONS=[`workspace`,`model`,`web`,`gateway`,`daemon`,`channels`,`skills`,`health`];function parseConfigureWizardSections(raw){let sectionsRaw=Array.isArray(raw)?raw.map(value=>typeof value==`string`?value.trim():``).filter(Boolean):[];if(sectionsRaw.length===0)return{sections:[],invalid:[]};let invalid=sectionsRaw.filter(s=>!CONFIGURE_WIZARD_SECTIONS.includes(s));return{sections:sectionsRaw.filter(s=>CONFIGURE_WIZARD_SECTIONS.includes(s)),invalid}}const CONFIGURE_SECTION_OPTIONS=[{value:`workspace`,label:`Workspace`,hint:`Set workspace + sessions`},{value:`model`,label:`Model`,hint:`Pick provider + credentials`},{value:`web`,label:`Web tools`,hint:`Configure Brave search + fetch`},{value:`gateway`,label:`Gateway`,hint:`Port, bind, auth, tailscale`},{value:`daemon`,label:`Daemon`,hint:`Install/manage the background service`},{value:`channels`,label:`Channels`,hint:`Link WhatsApp/Telegram/etc and defaults`},{value:`skills`,label:`Skills`,hint:`Install/enable workspace skills`},{value:`health`,label:`Health check`,hint:`Run gateway + channel checks`}],intro$1=message=>intro(stylePromptTitle(message)??message),outro$1=message=>outro(stylePromptTitle(message)??message),text$1=params=>text({...params,message:stylePromptMessage(params.message)}),confirm$1=params=>confirm({...params,message:stylePromptMessage(params.message)}),select$1=params=>select({...params,message:stylePromptMessage(params.message),options:params.options.map(opt=>opt.hint===void 0?opt:{...opt,hint:stylePromptHint(opt.hint)})});async function removeChannelConfigWizard(cfg,runtime){let next={...cfg},listConfiguredChannels=()=>listChannelPlugins().map(plugin=>plugin.meta).filter(meta=>next.channels?.[meta.id]!==void 0);for(;;){let configured=listConfiguredChannels();if(configured.length===0)return note$1([`No channel config found in builderforce.json.`,`Tip: \`${formatCliCommand(`builderforce channels status`)}\` shows what is configured and enabled.`].join(`
1
+ import{t as CONFIG_PATH,u as resolveGatewayPort}from"./paths-BHg-VHB4.js";import{S as shortenHomePath,y as resolveUserPath}from"./utils-BP60e80M.js";import{p as defaultRuntime}from"./subsystem-C4b1Von0.js";import{b as ensureAuthProfileStore}from"./auth-profiles-BcStSGQ1.js";import{t as formatCliCommand}from"./command-format-DTMaGKs7.js";import{a as readConfigFileSnapshot,c as writeConfigFile,r as loadConfig}from"./io-wLHeSE2L.js";import{n as listChannelPlugins,t as getChannelPlugin}from"./plugins-DJGW_fnS.js";import{a as findTailscaleBinary}from"./tailscale-CgCG7AVQ.js";import{n as withProgress}from"./progress-BQMO_-7I.js";import{a as ensureWorkspaceAndSessions,b as waitForGatewayReachable,f as printWizardHeader,g as resolveControlUiLinks,m as randomToken,n as applyWizardMetadata,p as probeGatewayReachable,s as guardCancel,t as DEFAULT_WORKSPACE,u as normalizeGatewayTokenInput,v as summarizeExistingConfig,y as validateGatewayPasswordInput}from"./onboard-helpers-Xl1gvLzt.js";import{n as stylePromptMessage,r as stylePromptTitle,t as stylePromptHint}from"./prompt-style-CZOeG0sw.js";import{t as note$1}from"./note-BvXfFmlu.js";import{t as WizardCancelledError}from"./prompts-BUDxN7ef.js";import{t as createClackPrompter}from"./clack-prompter-ZmHdfPGJ.js";import{n as setupChannels,t as noteChannelStatus}from"./onboard-channels-CEMtoVzX.js";import{a as gatewayInstallErrorHint,i as buildGatewayInstallPlan,n as GATEWAY_DAEMON_RUNTIME_OPTIONS,t as DEFAULT_GATEWAY_DAEMON_RUNTIME}from"./daemon-runtime-Cw90ZSZ3.js";import{t as resolveGatewayService}from"./service-ugwM110q.js";import{r as healthCommand}from"./health-Bd0YvHPq.js";import{t as ensureControlUiAssetsBuilt}from"./control-ui-assets-BweA3rDY.js";import{n as logConfigUpdated}from"./logging-CRzk-5ye.js";import{t as promptAuthChoiceGrouped}from"./auth-choice-prompt-DvWWxKmC.js";import{t as applyAuthChoice}from"./auth-choice.apply-CE1TC_Ts.js";import{a as promptModelAllowlist,i as promptDefaultModel,n as applyModelFallbacksFromSelection,r as applyPrimaryModel,t as applyModelAllowlist}from"./model-picker-Dz1ecLd0.js";import{t as resolvePreferredProviderForAuthChoice}from"./auth-choice-BMeBDEfj.js";import{t as ensureSystemdUserLingerInteractive}from"./systemd-linger-CuzOv-tn.js";import{i as promptCustomApiConfig}from"./onboard-custom-D2zVBKVf.js";import{i as TAILSCALE_MISSING_BIN_NOTE_LINES,n as TAILSCALE_DOCS_LINES,r as TAILSCALE_EXPOSURE_OPTIONS,t as validateIPv4AddressInput}from"./ipv4-hAhGHbHe.js";import{t as formatHealthCheckFailure}from"./health-format-CtcXvo40.js";import{t as promptRemoteGatewayConfig}from"./onboard-remote-CFao-x7W.js";import{t as setupSkills}from"./onboard-skills-CZNKHsWB.js";import{confirm,intro,outro,select,text}from"@clack/prompts";const CONFIGURE_WIZARD_SECTIONS=[`workspace`,`model`,`web`,`gateway`,`daemon`,`channels`,`skills`,`health`];function parseConfigureWizardSections(raw){let sectionsRaw=Array.isArray(raw)?raw.map(value=>typeof value==`string`?value.trim():``).filter(Boolean):[];if(sectionsRaw.length===0)return{sections:[],invalid:[]};let invalid=sectionsRaw.filter(s=>!CONFIGURE_WIZARD_SECTIONS.includes(s));return{sections:sectionsRaw.filter(s=>CONFIGURE_WIZARD_SECTIONS.includes(s)),invalid}}const CONFIGURE_SECTION_OPTIONS=[{value:`workspace`,label:`Workspace`,hint:`Set workspace + sessions`},{value:`model`,label:`Model`,hint:`Pick provider + credentials`},{value:`web`,label:`Web tools`,hint:`Configure Brave search + fetch`},{value:`gateway`,label:`Gateway`,hint:`Port, bind, auth, tailscale`},{value:`daemon`,label:`Daemon`,hint:`Install/manage the background service`},{value:`channels`,label:`Channels`,hint:`Link WhatsApp/Telegram/etc and defaults`},{value:`skills`,label:`Skills`,hint:`Install/enable workspace skills`},{value:`health`,label:`Health check`,hint:`Run gateway + channel checks`}],intro$1=message=>intro(stylePromptTitle(message)??message),outro$1=message=>outro(stylePromptTitle(message)??message),text$1=params=>text({...params,message:stylePromptMessage(params.message)}),confirm$1=params=>confirm({...params,message:stylePromptMessage(params.message)}),select$1=params=>select({...params,message:stylePromptMessage(params.message),options:params.options.map(opt=>opt.hint===void 0?opt:{...opt,hint:stylePromptHint(opt.hint)})});async function removeChannelConfigWizard(cfg,runtime){let next={...cfg},listConfiguredChannels=()=>listChannelPlugins().map(plugin=>plugin.meta).filter(meta=>next.channels?.[meta.id]!==void 0);for(;;){let configured=listConfiguredChannels();if(configured.length===0)return note$1([`No channel config found in builderforce.json.`,`Tip: \`${formatCliCommand(`builderforce channels status`)}\` shows what is configured and enabled.`].join(`
2
2
  `),`Remove channel`),next;let channel=guardCancel(await select$1({message:`Remove which channel config?`,options:[...configured.map(meta=>({value:meta.id,label:meta.label,hint:`Deletes tokens + settings from config (credentials stay on disk)`})),{value:`done`,label:`Done`}]}),runtime);if(channel===`done`)return next;let label=getChannelPlugin(channel)?.meta.label??channel;if(!guardCancel(await confirm$1({message:`Delete ${label} configuration from ${shortenHomePath(CONFIG_PATH)}?`,initialValue:!1}),runtime))continue;let nextChannels={...next.channels};delete nextChannels[channel],next={...next,channels:Object.keys(nextChannels).length?nextChannels:void 0},note$1([`${label} removed from config.`,`Note: credentials/sessions on disk are unchanged.`].join(`
3
3
  `),`Channel removed`)}}async function maybeInstallDaemon(params){let service=resolveGatewayService(),loaded=await service.isLoaded({env:process.env}),shouldCheckLinger=!1,shouldInstall=!0,daemonRuntime=params.daemonRuntime??DEFAULT_GATEWAY_DAEMON_RUNTIME;if(loaded){let action=guardCancel(await select$1({message:`Gateway service already installed`,options:[{value:`restart`,label:`Restart`},{value:`reinstall`,label:`Reinstall`},{value:`skip`,label:`Skip`}]}),params.runtime);if(action===`restart`&&(await withProgress({label:`Gateway service`,indeterminate:!0,delayMs:0},async progress=>{progress.setLabel(`Restarting Gateway service…`),await service.restart({env:process.env,stdout:process.stdout}),progress.setLabel(`Gateway service restarted.`)}),shouldCheckLinger=!0,shouldInstall=!1),action===`skip`)return;action===`reinstall`&&await withProgress({label:`Gateway service`,indeterminate:!0,delayMs:0},async progress=>{progress.setLabel(`Uninstalling Gateway service…`),await service.uninstall({env:process.env,stdout:process.stdout}),progress.setLabel(`Gateway service uninstalled.`)})}if(shouldInstall){let installError=null;if(params.daemonRuntime||(daemonRuntime=GATEWAY_DAEMON_RUNTIME_OPTIONS.length===1?GATEWAY_DAEMON_RUNTIME_OPTIONS[0]?.value??DEFAULT_GATEWAY_DAEMON_RUNTIME:guardCancel(await select$1({message:`Gateway service runtime`,options:GATEWAY_DAEMON_RUNTIME_OPTIONS,initialValue:DEFAULT_GATEWAY_DAEMON_RUNTIME}),params.runtime)),await withProgress({label:`Gateway service`,indeterminate:!0,delayMs:0},async progress=>{progress.setLabel(`Preparing Gateway service…`);let cfg=loadConfig(),{programArguments,workingDirectory,environment}=await buildGatewayInstallPlan({env:process.env,port:params.port,token:params.gatewayToken,runtime:daemonRuntime,warn:(message,title)=>note$1(message,title),config:cfg});progress.setLabel(`Installing Gateway service…`);try{await service.install({env:process.env,stdout:process.stdout,programArguments,workingDirectory,environment}),progress.setLabel(`Gateway service installed.`)}catch(err){installError=err instanceof Error?err.message:String(err),progress.setLabel(`Gateway service install failed.`)}}),installError){note$1(`Gateway service install failed: `+installError,`Gateway`),note$1(gatewayInstallErrorHint(),`Gateway`);return}shouldCheckLinger=!0}shouldCheckLinger&&await ensureSystemdUserLingerInteractive({runtime:params.runtime,prompter:{confirm:async p=>guardCancel(await confirm$1(p),params.runtime),note:note$1},reason:`Linux installs use a systemd user service. Without lingering, systemd stops the user session on logout/idle and kills the Gateway.`,requireConfirm:!0})}function sanitizeTokenValue(value){if(typeof value!=`string`)return;let trimmed=value.trim();if(!(!trimmed||trimmed===`undefined`||trimmed===`null`))return trimmed}const ANTHROPIC_OAUTH_MODEL_KEYS=[`anthropic/claude-sonnet-4-6`,`anthropic/claude-opus-4-6`,`anthropic/claude-opus-4-5`,`anthropic/claude-sonnet-4-5`,`anthropic/claude-haiku-4-5`];function buildGatewayAuthConfig(params){let allowTailscale=params.existing?.allowTailscale,base={};if(typeof allowTailscale==`boolean`&&(base.allowTailscale=allowTailscale),params.mode===`token`){let token=sanitizeTokenValue(params.token)??randomToken();return{...base,mode:`token`,token}}if(params.mode===`password`){let password=params.password?.trim();return{...base,mode:`password`,...password&&{password}}}if(params.mode===`trusted-proxy`){if(!params.trustedProxy)throw Error(`trustedProxy config is required when mode is trusted-proxy`);return{...base,mode:`trusted-proxy`,trustedProxy:params.trustedProxy}}return base}async function promptAuthConfig(cfg,runtime,prompter){let authChoice=await promptAuthChoiceGrouped({prompter,store:await ensureAuthProfileStore(void 0,{allowKeychainPrompt:!1}),includeSkip:!0}),next=cfg;if(authChoice===`custom-api-key`)next=(await promptCustomApiConfig({prompter,runtime,config:next})).config;else if(authChoice!==`skip`)next=(await applyAuthChoice({authChoice,config:next,prompter,runtime,setDefaultModel:!0})).config;else{let modelSelection=await promptDefaultModel({config:next,prompter,allowKeep:!0,ignoreAllowlist:!0,preferredProvider:resolvePreferredProviderForAuthChoice(authChoice)});modelSelection.config&&(next=modelSelection.config),modelSelection.model&&(next=applyPrimaryModel(next,modelSelection.model))}let anthropicOAuth=authChoice===`setup-token`||authChoice===`token`||authChoice===`oauth`;if(authChoice!==`custom-api-key`){let allowlistSelection=await promptModelAllowlist({config:next,prompter,allowedKeys:anthropicOAuth?ANTHROPIC_OAUTH_MODEL_KEYS:void 0,initialSelections:anthropicOAuth?[`anthropic/claude-sonnet-4-6`]:void 0,message:anthropicOAuth?`Anthropic OAuth models`:void 0});allowlistSelection.models&&(next=applyModelAllowlist(next,allowlistSelection.models),next=applyModelFallbacksFromSelection(next,allowlistSelection.models))}return next}async function promptGatewayConfig(cfg,runtime){let portRaw=guardCancel(await text$1({message:`Gateway port`,initialValue:String(resolveGatewayPort(cfg)),validate:value=>Number.isFinite(Number(value))?void 0:`Invalid port`}),runtime),port=Number.parseInt(String(portRaw),10),bind=guardCancel(await select$1({message:`Gateway bind mode`,options:[{value:`loopback`,label:`Loopback (Local only)`,hint:`Bind to 127.0.0.1 - secure, local-only access`},{value:`tailnet`,label:`Tailnet (Tailscale IP)`,hint:`Bind to your Tailscale IP only (100.x.x.x)`},{value:`auto`,label:`Auto (Loopback → LAN)`,hint:`Prefer loopback; fall back to all interfaces if unavailable`},{value:`lan`,label:`LAN (All interfaces)`,hint:`Bind to 0.0.0.0 - accessible from anywhere on your network`},{value:`custom`,label:`Custom IP`,hint:`Specify a specific IP address, with 0.0.0.0 fallback if unavailable`}]}),runtime),customBindHost;if(bind===`custom`){let input=guardCancel(await text$1({message:`Custom IP address`,placeholder:`192.168.1.100`,validate:validateIPv4AddressInput}),runtime);customBindHost=typeof input==`string`?input:void 0}let authMode=guardCancel(await select$1({message:`Gateway auth`,options:[{value:`token`,label:`Token`,hint:`Recommended default`},{value:`password`,label:`Password`},{value:`trusted-proxy`,label:`Trusted Proxy`,hint:`Behind reverse proxy (Pomerium, Caddy, Traefik, etc.)`}],initialValue:`token`}),runtime),tailscaleMode=guardCancel(await select$1({message:`Tailscale exposure`,options:[...TAILSCALE_EXPOSURE_OPTIONS]}),runtime);tailscaleMode!==`off`&&(await findTailscaleBinary()||note$1(TAILSCALE_MISSING_BIN_NOTE_LINES.join(`
4
4
  `),`Tailscale Warning`));let tailscaleResetOnExit=!1;tailscaleMode!==`off`&&(note$1(TAILSCALE_DOCS_LINES.join(`
@@ -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"./warning-filter-nSTjpMIH.js";import"./auth-profiles-BcStSGQ1.js";import"./logger-AbH8mdkv.js";import"./session-key-D--2AEus.js";import"./builderforce-root-D3-p8W2n.js";import"./exec-CGuYALEs.js";import"./agent-scope-BcoQBOwz.js";import"./env-file-BIKVpYUN.js";import"./src-DMo2gLcR.js";import"./io-wLHeSE2L.js";import"./manifest-registry-DZdPjBqs.js";import"./config-DBrFbWRm.js";import"./model-discovery-CfknTieh.js";import"./model-catalog-CVRB77_N.js";import"./frontmatter-CoaI_oW6.js";import"./skills-CC5ozaMz.js";import"./plugin-skills-DUy_aY2T.js";import"./skills-status-DILzO06u.js";import"./refresh-B38IMhwx.js";import"./client-BlsvYCEu.js";import"./call-Gj5Bi_oV.js";import"./message-channel-BjZV4RTT.js";import"./subagent-registry-BHP3_ka8.js";import"./sessions-C5jAGWOS.js";import"./project-context-store-BFOv5caq.js";import"./tokens-BNwTTeJb.js";import"./plugins-DJGW_fnS.js";import"./accounts-Z5bJpNrG.js";import"./bindings-D0uket3l.js";import"./send-CgMJqDBP.js";import"./send-DfpZ9T_M.js";import"./with-timeout-ftXvzlo8.js";import"./deliver-DDFTiLT4.js";import"./accounts-DoJYLMfS.js";import"./send-5Vokn3Uv.js";import"./image-ops-Bg9yFwjX.js";import"./redact-bWj_-q3j.js";import"./errors-t5wHPcwh.js";import"./embedded-helpers-CsRjxr3I.js";import"./sandbox-bEma8jFA.js";import"./chrome-Kt4wxGF2.js";import"./tailscale-CgCG7AVQ.js";import"./auth-BNeS9xde.js";import"./server-context-0vSm_r2R.js";import"./routes-BLhXC8oU.js";import"./paths-GamzES41.js";import"./ssrf-BiSQzdcA.js";import"./store-C5LmVaEC.js";import"./ports-LqFTyTSK.js";import"./trash-zs6gNxed.js";import"./accounts-BT-NzzBc.js";import"./paths-BQ9W7Bs0.js";import"./tool-images-DV2HMmx4.js";import"./workspace-BnrYivUM.js";import"./reply-prefix-9hmbzubX.js";import"./sqlite-BEgCClMz.js";import"./memory-cli-BBsTN63-.js";import"./manager-BXMwSRz1.js";import"./gemini-auth-qrDeJkh5.js";import"./retry-Cc6xusE8.js";import"./common-BRdxH-uH.js";import"./runner-qhKGerma.js";import"./tool-display-BIswnHaq.js";import"./chunk-hYck1V5_.js";import"./markdown-tables-CpqWBduK.js";import"./fetch-guard-CoGEds8D.js";import"./fetch-CUsKv8oj.js";import"./ir-CTE1iR41.js";import"./render-1ABBE2Y6.js";import"./builderforcellm-syscheck-BTolQUtx.js";import"./session-utils-DDDkCdFF.js";import"./coding-tools.policy-CtBT-KXm.js";import"./pairing-store-sCqmKjk2.js";import"./fetch-CrbOFvsL.js";import"./exec-approvals-Cn0K-HtJ.js";import"./nodes-screen-OI7tHqlU.js";import"./session-cost-usage-BgZfN_WR.js";import"./provider-usage-nRVDmUHj.js";import"./send-COUZMiIL.js";import"./outbound-attachment-Bed_0M10.js";import"./delivery-queue-DQXq7KUU.js";import"./project-context-De5-TWPH.js";import"./control-service-DYVIKl0J.js";import"./stagger-CUH5rlmS.js";import"./channel-selection-CLFizn8u.js";import"./send-CWzV8Zdx.js";import"./resolve-route-D3X-bXU-.js";import"./channel-activity-By7lsk7N.js";import"./tables-XzBUkZcJ.js";import"./links-B6LU5cXN.js";import"./cli-utils-ByV85M53.js";import"./help-format-DIDk_7gh.js";import"./progress-BQMO_-7I.js";import"./replies-CiPwT32C.js";import"./onboard-helpers-Xl1gvLzt.js";import"./prompt-style-CZOeG0sw.js";import"./pairing-labels-DVbgCApx.js";import"./active-listener-BC31MA4v.js";import"./mamba-state-engine-CViPpwyy.js";import"./transformers-stream-nSL4Xu31.js";import"./catalog-myy00TyP.js";import"./note-BvXfFmlu.js";import"./clack-prompter-ZmHdfPGJ.js";import"./helpers-DDS6DSK4.js";import"./plugin-auto-enable-Cxqw7Sa6.js";import"./install-safe-path-BxCb3BJW.js";import"./npm-registry-spec-DXx5hKYJ.js";import"./skill-scanner-B9E9x-dj.js";import"./installs-DwlFaoUO.js";import"./onboard-channels-D1FMu5M8.js";import"./daemon-runtime-Cw90ZSZ3.js";import"./runtime-guard-BThrXAmT.js";import"./systemd-DpT8tcbh.js";import"./service-ugwM110q.js";import"./widearea-dns-wtz3t7f_.js";import"./bonjour-discovery-CTTLB5JP.js";import"./health-BLW40WUJ.js";import"./control-ui-assets-BweA3rDY.js";import"./skills-install-C9AUUMNg.js";import"./shared-WIJmFKqL.js";import"./onboard-auth.credentials-f-xn5D4D.js";import"./auth-token-DGYih1b5.js";import"./logging-CRzk-5ye.js";import"./provider-auth-helpers-D0eiRpeb.js";import"./auth-choice.apply-k9tk1hGj.js";import"./openai-model-default-C9iQBo_x.js";import"./model-picker-Dz1ecLd0.js";import"./auth-choice.apply.transformers-B9SieNNk.js";import"./auth-choice-BMeBDEfj.js";import{n as configureCommandFromSectionsArg}from"./configure-CYwCU0Hw.js";import"./systemd-linger-CuzOv-tn.js";import"./onboard-custom-D2zVBKVf.js";import"./health-format-CtcXvo40.js";import"./onboard-remote-CFao-x7W.js";import"./onboard-skills-CZNKHsWB.js";export{configureCommandFromSectionsArg};
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"./warning-filter-nSTjpMIH.js";import"./auth-profiles-BcStSGQ1.js";import"./logger-AbH8mdkv.js";import"./session-key-D--2AEus.js";import"./builderforce-root-D3-p8W2n.js";import"./exec-CGuYALEs.js";import"./agent-scope-BcoQBOwz.js";import"./env-file-BIKVpYUN.js";import"./src-DMo2gLcR.js";import"./io-wLHeSE2L.js";import"./manifest-registry-DZdPjBqs.js";import"./config-DBrFbWRm.js";import"./model-discovery-CfknTieh.js";import"./model-catalog-CVRB77_N.js";import"./frontmatter-CoaI_oW6.js";import"./skills-CC5ozaMz.js";import"./plugin-skills-DUy_aY2T.js";import"./skills-status-DILzO06u.js";import"./refresh-B38IMhwx.js";import"./client-BlsvYCEu.js";import"./call-Gj5Bi_oV.js";import"./message-channel-BjZV4RTT.js";import"./subagent-registry-98yia-RN.js";import"./sessions-C5jAGWOS.js";import"./project-context-store-BFOv5caq.js";import"./tokens-BNwTTeJb.js";import"./plugins-DJGW_fnS.js";import"./accounts-Z5bJpNrG.js";import"./bindings-D0uket3l.js";import"./send-CgMJqDBP.js";import"./send-DfpZ9T_M.js";import"./with-timeout-ftXvzlo8.js";import"./deliver-DDFTiLT4.js";import"./accounts-DoJYLMfS.js";import"./send-5Vokn3Uv.js";import"./image-ops-Bg9yFwjX.js";import"./redact-bWj_-q3j.js";import"./errors-t5wHPcwh.js";import"./embedded-helpers-CsRjxr3I.js";import"./sandbox-bEma8jFA.js";import"./chrome-Kt4wxGF2.js";import"./tailscale-CgCG7AVQ.js";import"./auth-BNeS9xde.js";import"./server-context-0vSm_r2R.js";import"./routes-BLhXC8oU.js";import"./paths-GamzES41.js";import"./ssrf-BiSQzdcA.js";import"./store-C5LmVaEC.js";import"./ports-LqFTyTSK.js";import"./trash-zs6gNxed.js";import"./accounts-BT-NzzBc.js";import"./paths-BQ9W7Bs0.js";import"./tool-images-DV2HMmx4.js";import"./workspace-BnrYivUM.js";import"./reply-prefix-9hmbzubX.js";import"./sqlite-BEgCClMz.js";import"./memory-cli-BBsTN63-.js";import"./manager-BXMwSRz1.js";import"./gemini-auth-qrDeJkh5.js";import"./retry-Cc6xusE8.js";import"./common-BRdxH-uH.js";import"./runner-qhKGerma.js";import"./tool-display-BIswnHaq.js";import"./chunk-hYck1V5_.js";import"./markdown-tables-CpqWBduK.js";import"./fetch-guard-CoGEds8D.js";import"./fetch-CUsKv8oj.js";import"./ir-CTE1iR41.js";import"./render-1ABBE2Y6.js";import"./builderforcellm-syscheck-BTolQUtx.js";import"./session-utils-DDDkCdFF.js";import"./coding-tools.policy-CtBT-KXm.js";import"./pairing-store-sCqmKjk2.js";import"./fetch-CrbOFvsL.js";import"./exec-approvals-Cn0K-HtJ.js";import"./nodes-screen-OI7tHqlU.js";import"./session-cost-usage-BgZfN_WR.js";import"./provider-usage-nRVDmUHj.js";import"./send-COUZMiIL.js";import"./outbound-attachment-Bed_0M10.js";import"./delivery-queue-DQXq7KUU.js";import"./project-context-De5-TWPH.js";import"./control-service-DYVIKl0J.js";import"./stagger-CUH5rlmS.js";import"./channel-selection-CLFizn8u.js";import"./send-CWzV8Zdx.js";import"./resolve-route-D3X-bXU-.js";import"./channel-activity-By7lsk7N.js";import"./tables-XzBUkZcJ.js";import"./links-B6LU5cXN.js";import"./cli-utils-ByV85M53.js";import"./help-format-DIDk_7gh.js";import"./progress-BQMO_-7I.js";import"./replies-CiPwT32C.js";import"./onboard-helpers-Xl1gvLzt.js";import"./prompt-style-CZOeG0sw.js";import"./pairing-labels-DVbgCApx.js";import"./active-listener-BC31MA4v.js";import"./mamba-state-engine-CViPpwyy.js";import"./transformers-stream-nSL4Xu31.js";import"./catalog-myy00TyP.js";import"./note-BvXfFmlu.js";import"./clack-prompter-ZmHdfPGJ.js";import"./helpers-DDS6DSK4.js";import"./plugin-auto-enable-Cxqw7Sa6.js";import"./install-safe-path-BxCb3BJW.js";import"./npm-registry-spec-DXx5hKYJ.js";import"./skill-scanner-B9E9x-dj.js";import"./installs-DwlFaoUO.js";import"./onboard-channels-CEMtoVzX.js";import"./daemon-runtime-Cw90ZSZ3.js";import"./runtime-guard-BThrXAmT.js";import"./systemd-DpT8tcbh.js";import"./service-ugwM110q.js";import"./widearea-dns-wtz3t7f_.js";import"./bonjour-discovery-CTTLB5JP.js";import"./health-Bd0YvHPq.js";import"./control-ui-assets-BweA3rDY.js";import"./skills-install-C9AUUMNg.js";import"./shared-WIJmFKqL.js";import"./onboard-auth.credentials-f-xn5D4D.js";import"./auth-token-DGYih1b5.js";import"./logging-CRzk-5ye.js";import"./provider-auth-helpers-Cibq8oDi.js";import"./auth-choice.apply-CE1TC_Ts.js";import"./openai-model-default-C9iQBo_x.js";import"./model-picker-Dz1ecLd0.js";import"./auth-choice.apply.transformers-CBQbUAwr.js";import"./auth-choice-BMeBDEfj.js";import{n as configureCommandFromSectionsArg}from"./configure-BPX5i4at.js";import"./systemd-linger-CuzOv-tn.js";import"./onboard-custom-D2zVBKVf.js";import"./health-format-CtcXvo40.js";import"./onboard-remote-CFao-x7W.js";import"./onboard-skills-CZNKHsWB.js";export{configureCommandFromSectionsArg};
@@ -1 +1 @@
1
- import"./paths-5FcIFMsj.js";import"./utils-DbaBVFaK.js";import"./embedded-helpers-DHfhLu2W.js";import"./reply-gZ_yr2mJ.js";import"./session-key-EoB0qaG9.js";import"./builderforce-root-D64_sXEi.js";import"./subsystem-B3TqcCrZ.js";import"./registry-TdK-aV05.js";import"./logger-Bch0bx9c.js";import"./exec-DdcIjeyn.js";import"./agent-scope-DPtjOxzp.js";import"./model-selection-DlYajIzF.js";import"./env-file-BI2jpOmF.js";import"./boolean-Cn4K2fc9.js";import"./env-BHP32i7Q.js";import"./src-CQLQD-1r.js";import"./io-DhUMGsxN.js";import"./manifest-registry-CBVaj2md.js";import"./config-lGOyM6Kq.js";import"./runner-CDpBWK3-.js";import"./model-catalog-BQUEoIev.js";import"./sandbox-Cq6rH4hg.js";import"./chrome-BW8dGyxs.js";import"./tailscale-0ey4P_at.js";import"./auth-C4PxZEj8.js";import"./server-context-1YSNvKDs.js";import"./frontmatter-DpzOtLJz.js";import"./skills-vjE49XV9.js";import"./plugin-skills-RFjYtysK.js";import"./routes-DsdK6VOy.js";import"./redact-BT5hARuQ.js";import"./errors-BK3rMW8O.js";import"./paths-CejDLFxE.js";import"./ssrf-DHJTyOuH.js";import"./image-ops-D7Ex-H05.js";import"./store-Nf9BxXC7.js";import"./ports-B-SXoPqJ.js";import"./trash-DlNzpifq.js";import"./sessions-Dv212g1O.js";import"./message-channel-BW_q2nVi.js";import"./plugins-C0lu7LGS.js";import"./accounts-2InvZDx2.js";import"./accounts-CrKsbGuP.js";import"./accounts-BnsrG5TA.js";import"./bindings-qYFdqpJ3.js";import"./send-DSwQqUiD.js";import"./send-BGZYkspG.js";import"./paths-DCzWXtSj.js";import"./tool-images-CR9Y0R5I.js";import"./tool-display-Dx-rz3CF.js";import"./fetch-guard-DxN_CtRp.js";import"./api-key-rotation-BbNoamfM.js";import"./fetch-CMEvVIy8.js";import"./sqlite-BxinAVYp.js";import"./tokens-Ct4DyfhX.js";import"./project-context-store-BPhHGfFl.js";import"./with-timeout-DTcvZn3s.js";import"./deliver-CrB451sO.js";import"./send-ZCmcplsV.js";import"./workspace-eFrsAV2Q.js";import"./reply-prefix-BwtP84WV.js";import"./memory-cli-Dgqoendm.js";import"./manager-pjodgk3H.js";import"./retry-Jis-ZZfm.js";import"./client-BxPDO8Ed.js";import"./call-DLeUWFtQ.js";import"./common-W8GhA4hE.js";import"./chunk-B9aj7NGY.js";import"./markdown-tables-iDNbGky8.js";import"./ir-EgWVNCXR.js";import"./render-CSLaFZoy.js";import"./builderforcellm-syscheck-BpNlQ4Rx.js";import"./send-iQicMwPr.js";import"./outbound-attachment-BR2FQu7J.js";import"./fetch-B6_hd7w9.js";import"./delivery-queue-BZWZDdpJ.js";import"./channel-activity-GeHNfvd4.js";import"./tables-D5WcKZWq.js";import"./pairing-store-PKyjZas4.js";import"./links-CYRGsVCu.js";import"./cli-utils-BLNnV_WG.js";import"./help-format-NhTn4dWd.js";import"./progress-OKwbfa23.js";import"./resolve-route-EE2-ObOq.js";import"./replies-BhjI7rPj.js";import"./refresh-Cyy0oi_E.js";import"./coding-tools.policy-DQxeoYmD.js";import"./send-C9xXqEqr.js";import"./onboard-helpers-DHGeaHZA.js";import"./prompt-style-BwwmGo3-.js";import"./pairing-labels-BpeDWVFP.js";import"./session-cost-usage-BDkGtjt9.js";import"./provider-usage-BqXFLAwn.js";import"./active-listener-DBdxNyOd.js";import"./exec-approvals-kmxxyvIe.js";import"./nodes-screen-BWDONgPE.js";import"./project-context-Dp8w9r_P.js";import"./control-service-Bkbx5ybP.js";import"./stagger-NaB6u1z1.js";import"./channel-selection-BjcuqdFb.js";import"./mamba-state-engine-DPAATSLG.js";import"./transformers-stream-QS2dnQob.js";import"./runtime-guard-BiPTd1ED.js";import"./catalog-BIdILD-k.js";import"./skills-status-U_k3Ca5B.js";import"./note-CvzMolLy.js";import"./clack-prompter-6Booc-eg.js";import"./helpers-_XD3UAOf.js";import"./plugin-auto-enable-CWK7KiRF.js";import"./install-safe-path-BUT0oL1h.js";import"./npm-registry-spec-BKmYHCba.js";import"./skill-scanner-CN9z0hSY.js";import"./installs-D4ygbqdx.js";import"./onboard-channels-CKWKLbTn.js";import"./daemon-runtime-CWFj-hSG.js";import"./systemd-CTHIdkg9.js";import"./service-BXrSjb3e.js";import"./widearea-dns-Dc2di-mD.js";import"./bonjour-discovery-BpFETe_g.js";import"./health-Cggr6c-2.js";import"./control-ui-assets-CAmSpVpE.js";import"./skills-install-DXm4y2QA.js";import"./shared-BMSboHpU.js";import"./onboard-auth.credentials-Dt_yky3w.js";import"./auth-token-CeCyq7Zg.js";import"./logging-9jbJihk2.js";import"./provider-auth-helpers-BFCTgzr_.js";import"./auth-choice.apply-Botyf6Sg.js";import"./openai-model-default-DqkGItdN.js";import"./model-picker-DWc0Kexq.js";import"./auth-choice.apply.transformers-D02W3zy7.js";import"./auth-choice-DvKzhGrY.js";import{n as configureCommandFromSectionsArg}from"./configure-B_FvthXy.js";import"./systemd-linger-RhNkOjuf.js";import"./onboard-custom-DT2eDgHk.js";import"./health-format-COHxl9I_.js";import"./onboard-remote-CdnyqVyt.js";import"./onboard-skills-CAnj-Bi_.js";export{configureCommandFromSectionsArg};
1
+ import"./paths-5FcIFMsj.js";import"./utils-DbaBVFaK.js";import"./embedded-helpers-DHfhLu2W.js";import"./reply-BeKidf2F.js";import"./session-key-EoB0qaG9.js";import"./builderforce-root-D64_sXEi.js";import"./subsystem-B3TqcCrZ.js";import"./registry-TdK-aV05.js";import"./logger-Bch0bx9c.js";import"./exec-DdcIjeyn.js";import"./agent-scope-DPtjOxzp.js";import"./model-selection-DlYajIzF.js";import"./env-file-BI2jpOmF.js";import"./boolean-Cn4K2fc9.js";import"./env-BHP32i7Q.js";import"./src-CQLQD-1r.js";import"./io-DhUMGsxN.js";import"./manifest-registry-CBVaj2md.js";import"./config-lGOyM6Kq.js";import"./runner-CDpBWK3-.js";import"./model-catalog-BQUEoIev.js";import"./sandbox-Cq6rH4hg.js";import"./chrome-BW8dGyxs.js";import"./tailscale-0ey4P_at.js";import"./auth-C4PxZEj8.js";import"./server-context-1YSNvKDs.js";import"./frontmatter-DpzOtLJz.js";import"./skills-vjE49XV9.js";import"./plugin-skills-RFjYtysK.js";import"./routes-DsdK6VOy.js";import"./redact-BT5hARuQ.js";import"./errors-BK3rMW8O.js";import"./paths-CejDLFxE.js";import"./ssrf-DHJTyOuH.js";import"./image-ops-D7Ex-H05.js";import"./store-Nf9BxXC7.js";import"./ports-B-SXoPqJ.js";import"./trash-DlNzpifq.js";import"./sessions-Dv212g1O.js";import"./message-channel-BW_q2nVi.js";import"./plugins-C0lu7LGS.js";import"./accounts-2InvZDx2.js";import"./accounts-CrKsbGuP.js";import"./accounts-BnsrG5TA.js";import"./bindings-qYFdqpJ3.js";import"./send-DSwQqUiD.js";import"./send-BGZYkspG.js";import"./paths-DCzWXtSj.js";import"./tool-images-CR9Y0R5I.js";import"./tool-display-Dx-rz3CF.js";import"./fetch-guard-DxN_CtRp.js";import"./api-key-rotation-BbNoamfM.js";import"./fetch-CMEvVIy8.js";import"./sqlite-BxinAVYp.js";import"./tokens-Ct4DyfhX.js";import"./project-context-store-BPhHGfFl.js";import"./with-timeout-DTcvZn3s.js";import"./deliver-CrB451sO.js";import"./send-ZCmcplsV.js";import"./workspace-eFrsAV2Q.js";import"./reply-prefix-BwtP84WV.js";import"./memory-cli-Dgqoendm.js";import"./manager-pjodgk3H.js";import"./retry-Jis-ZZfm.js";import"./client-BxPDO8Ed.js";import"./call-DLeUWFtQ.js";import"./common-W8GhA4hE.js";import"./chunk-B9aj7NGY.js";import"./markdown-tables-iDNbGky8.js";import"./ir-EgWVNCXR.js";import"./render-CSLaFZoy.js";import"./builderforcellm-syscheck-BpNlQ4Rx.js";import"./send-iQicMwPr.js";import"./outbound-attachment-BR2FQu7J.js";import"./fetch-B6_hd7w9.js";import"./delivery-queue-BZWZDdpJ.js";import"./channel-activity-GeHNfvd4.js";import"./tables-D5WcKZWq.js";import"./pairing-store-PKyjZas4.js";import"./links-CYRGsVCu.js";import"./cli-utils-BLNnV_WG.js";import"./help-format-NhTn4dWd.js";import"./progress-OKwbfa23.js";import"./resolve-route-EE2-ObOq.js";import"./replies-BhjI7rPj.js";import"./refresh-Cyy0oi_E.js";import"./coding-tools.policy-DQxeoYmD.js";import"./send-C9xXqEqr.js";import"./onboard-helpers-DHGeaHZA.js";import"./prompt-style-BwwmGo3-.js";import"./pairing-labels-BpeDWVFP.js";import"./session-cost-usage-BDkGtjt9.js";import"./provider-usage-BqXFLAwn.js";import"./active-listener-DBdxNyOd.js";import"./exec-approvals-kmxxyvIe.js";import"./nodes-screen-BWDONgPE.js";import"./project-context-Dp8w9r_P.js";import"./control-service-Bkbx5ybP.js";import"./stagger-NaB6u1z1.js";import"./channel-selection-BjcuqdFb.js";import"./mamba-state-engine-DPAATSLG.js";import"./transformers-stream-QS2dnQob.js";import"./runtime-guard-BiPTd1ED.js";import"./catalog-BIdILD-k.js";import"./skills-status-U_k3Ca5B.js";import"./note-CvzMolLy.js";import"./clack-prompter-6Booc-eg.js";import"./helpers-_XD3UAOf.js";import"./plugin-auto-enable-CWK7KiRF.js";import"./install-safe-path-BUT0oL1h.js";import"./npm-registry-spec-BKmYHCba.js";import"./skill-scanner-CN9z0hSY.js";import"./installs-D4ygbqdx.js";import"./onboard-channels-DIvxrZLb.js";import"./daemon-runtime-CWFj-hSG.js";import"./systemd-CTHIdkg9.js";import"./service-BXrSjb3e.js";import"./widearea-dns-Dc2di-mD.js";import"./bonjour-discovery-BpFETe_g.js";import"./health-CoTbsx1p.js";import"./control-ui-assets-CAmSpVpE.js";import"./skills-install-DXm4y2QA.js";import"./shared-BMSboHpU.js";import"./onboard-auth.credentials-Dt_yky3w.js";import"./auth-token-CeCyq7Zg.js";import"./logging-9jbJihk2.js";import"./provider-auth-helpers-5ZQb3SEz.js";import"./auth-choice.apply-25j_lhua.js";import"./openai-model-default-DqkGItdN.js";import"./model-picker-DWc0Kexq.js";import"./auth-choice.apply.transformers-DE9QrzbX.js";import"./auth-choice-DvKzhGrY.js";import{n as configureCommandFromSectionsArg}from"./configure-B1HJIRSM.js";import"./systemd-linger-RhNkOjuf.js";import"./onboard-custom-DT2eDgHk.js";import"./health-format-COHxl9I_.js";import"./onboard-remote-CdnyqVyt.js";import"./onboard-skills-CAnj-Bi_.js";export{configureCommandFromSectionsArg};
@@ -1 +1 @@
1
- function createDefaultDeps(){return{sendMessageWhatsApp:async(...args)=>{let{sendMessageWhatsApp}=await import(`./web-Bkk568P6.js`);return await sendMessageWhatsApp(...args)},sendMessageTelegram:async(...args)=>{let{sendMessageTelegram}=await import(`./send-DXy9dWtL.js`);return await sendMessageTelegram(...args)},sendMessageDiscord:async(...args)=>{let{sendMessageDiscord}=await import(`./send-BhSfq3WG.js`);return await sendMessageDiscord(...args)},sendMessageSlack:async(...args)=>{let{sendMessageSlack}=await import(`./send-Cn0D6XB2.js`);return await sendMessageSlack(...args)},sendMessageSignal:async(...args)=>{let{sendMessageSignal}=await import(`./send-D1r6YVQR.js`);return await sendMessageSignal(...args)},sendMessageIMessage:async(...args)=>{let{sendMessageIMessage}=await import(`./send-M0wKIFJk.js`);return await sendMessageIMessage(...args)}}}function createOutboundSendDeps(deps){return{sendWhatsApp:deps.sendMessageWhatsApp,sendTelegram:deps.sendMessageTelegram,sendDiscord:deps.sendMessageDiscord,sendSlack:deps.sendMessageSlack,sendSignal:deps.sendMessageSignal,sendIMessage:deps.sendMessageIMessage}}export{createOutboundSendDeps as n,createDefaultDeps as t};
1
+ function createDefaultDeps(){return{sendMessageWhatsApp:async(...args)=>{let{sendMessageWhatsApp}=await import(`./web--D7qJmx6.js`);return await sendMessageWhatsApp(...args)},sendMessageTelegram:async(...args)=>{let{sendMessageTelegram}=await import(`./send-DXy9dWtL.js`);return await sendMessageTelegram(...args)},sendMessageDiscord:async(...args)=>{let{sendMessageDiscord}=await import(`./send-BhSfq3WG.js`);return await sendMessageDiscord(...args)},sendMessageSlack:async(...args)=>{let{sendMessageSlack}=await import(`./send-Cn0D6XB2.js`);return await sendMessageSlack(...args)},sendMessageSignal:async(...args)=>{let{sendMessageSignal}=await import(`./send-D1r6YVQR.js`);return await sendMessageSignal(...args)},sendMessageIMessage:async(...args)=>{let{sendMessageIMessage}=await import(`./send-M0wKIFJk.js`);return await sendMessageIMessage(...args)}}}function createOutboundSendDeps(deps){return{sendWhatsApp:deps.sendMessageWhatsApp,sendTelegram:deps.sendMessageTelegram,sendDiscord:deps.sendMessageDiscord,sendSlack:deps.sendMessageSlack,sendSignal:deps.sendMessageSignal,sendIMessage:deps.sendMessageIMessage}}export{createOutboundSendDeps as n,createDefaultDeps as t};
@@ -1 +1 @@
1
- import{r as resolveCliName}from"./command-format-DTMaGKs7.js";import{t as resolveBuilderForceAgentsPackageRoot}from"./builderforce-root-D3-p8W2n.js";import{t as note}from"./note-BvXfFmlu.js";import{a as resolveCompletionCachePath,n as installCompletion,o as resolveShellFromEnv,r as isCompletionInstalled,s as usesSlowDynamicCompletion,t as completionCacheExists}from"./completion-cli-DF6vmGRs.js";import{spawnSync}from"node:child_process";import path from"node:path";async function generateCompletionCache(){let root=await resolveBuilderForceAgentsPackageRoot({moduleUrl:import.meta.url,argv1:process.argv[1],cwd:process.cwd()});if(!root)return!1;let binPath=path.join(root,`builderforce.mjs`);return spawnSync(process.execPath,[binPath,`completion`,`--write-state`],{cwd:root,env:process.env,encoding:`utf-8`}).status===0}async function checkShellCompletionStatus(binName=`builderforce`){let shell=resolveShellFromEnv();return{shell,profileInstalled:await isCompletionInstalled(shell,binName),cacheExists:await completionCacheExists(shell,binName),cachePath:resolveCompletionCachePath(shell,binName),usesSlowPattern:await usesSlowDynamicCompletion(shell,binName)}}async function doctorShellCompletion(runtime,prompter,options={}){let cliName=resolveCliName(),status=await checkShellCompletionStatus(cliName);if(status.usesSlowPattern){if(note(`Your ${status.shell} profile uses slow dynamic completion (source <(...)).\nUpgrading to cached completion for faster shell startup...`,`Shell completion`),!status.cacheExists&&!await generateCompletionCache()){note(`Failed to generate completion cache. Run \`${cliName} completion --write-state\` manually.`,`Shell completion`);return}await installCompletion(status.shell,!0,cliName),note(`Shell completion upgraded. Restart your shell or run: source ~/.${status.shell===`zsh`?`zshrc`:status.shell===`bash`?`bashrc`:`config/fish/config.fish`}`,`Shell completion`);return}if(status.profileInstalled&&!status.cacheExists){note(`Shell completion is configured in your ${status.shell} profile but the cache is missing.\nRegenerating cache...`,`Shell completion`),await generateCompletionCache()?note(`Completion cache regenerated at ${status.cachePath}`,`Shell completion`):note(`Failed to regenerate completion cache. Run \`${cliName} completion --write-state\` manually.`,`Shell completion`);return}if(!status.profileInstalled){if(options.nonInteractive)return;if(await prompter.confirm({message:`Enable ${status.shell} shell completion for ${cliName}?`,initialValue:!0})){if(!await generateCompletionCache()){note(`Failed to generate completion cache. Run \`${cliName} completion --write-state\` manually.`,`Shell completion`);return}await installCompletion(status.shell,!0,cliName),note(`Shell completion installed. Restart your shell or run: source ~/.${status.shell===`zsh`?`zshrc`:status.shell===`bash`?`bashrc`:`config/fish/config.fish`}`,`Shell completion`)}}}async function ensureCompletionCacheExists(binName=`builderforce`){return await completionCacheExists(resolveShellFromEnv(),binName)?!0:generateCompletionCache()}export{doctorShellCompletion as n,ensureCompletionCacheExists as r,checkShellCompletionStatus as t};
1
+ import{r as resolveCliName}from"./command-format-DTMaGKs7.js";import{t as resolveBuilderForceAgentsPackageRoot}from"./builderforce-root-D3-p8W2n.js";import{t as note}from"./note-BvXfFmlu.js";import{a as resolveCompletionCachePath,n as installCompletion,o as resolveShellFromEnv,r as isCompletionInstalled,s as usesSlowDynamicCompletion,t as completionCacheExists}from"./completion-cli-mzQa8oTd.js";import{spawnSync}from"node:child_process";import path from"node:path";async function generateCompletionCache(){let root=await resolveBuilderForceAgentsPackageRoot({moduleUrl:import.meta.url,argv1:process.argv[1],cwd:process.cwd()});if(!root)return!1;let binPath=path.join(root,`builderforce.mjs`);return spawnSync(process.execPath,[binPath,`completion`,`--write-state`],{cwd:root,env:process.env,encoding:`utf-8`}).status===0}async function checkShellCompletionStatus(binName=`builderforce`){let shell=resolveShellFromEnv();return{shell,profileInstalled:await isCompletionInstalled(shell,binName),cacheExists:await completionCacheExists(shell,binName),cachePath:resolveCompletionCachePath(shell,binName),usesSlowPattern:await usesSlowDynamicCompletion(shell,binName)}}async function doctorShellCompletion(runtime,prompter,options={}){let cliName=resolveCliName(),status=await checkShellCompletionStatus(cliName);if(status.usesSlowPattern){if(note(`Your ${status.shell} profile uses slow dynamic completion (source <(...)).\nUpgrading to cached completion for faster shell startup...`,`Shell completion`),!status.cacheExists&&!await generateCompletionCache()){note(`Failed to generate completion cache. Run \`${cliName} completion --write-state\` manually.`,`Shell completion`);return}await installCompletion(status.shell,!0,cliName),note(`Shell completion upgraded. Restart your shell or run: source ~/.${status.shell===`zsh`?`zshrc`:status.shell===`bash`?`bashrc`:`config/fish/config.fish`}`,`Shell completion`);return}if(status.profileInstalled&&!status.cacheExists){note(`Shell completion is configured in your ${status.shell} profile but the cache is missing.\nRegenerating cache...`,`Shell completion`),await generateCompletionCache()?note(`Completion cache regenerated at ${status.cachePath}`,`Shell completion`):note(`Failed to regenerate completion cache. Run \`${cliName} completion --write-state\` manually.`,`Shell completion`);return}if(!status.profileInstalled){if(options.nonInteractive)return;if(await prompter.confirm({message:`Enable ${status.shell} shell completion for ${cliName}?`,initialValue:!0})){if(!await generateCompletionCache()){note(`Failed to generate completion cache. Run \`${cliName} completion --write-state\` manually.`,`Shell completion`);return}await installCompletion(status.shell,!0,cliName),note(`Shell completion installed. Restart your shell or run: source ~/.${status.shell===`zsh`?`zshrc`:status.shell===`bash`?`bashrc`:`config/fish/config.fish`}`,`Shell completion`)}}}async function ensureCompletionCacheExists(binName=`builderforce`){return await completionCacheExists(resolveShellFromEnv(),binName)?!0:generateCompletionCache()}export{doctorShellCompletion as n,ensureCompletionCacheExists as r,checkShellCompletionStatus as t};
@@ -1 +1 @@
1
- import{t as resolveBuilderForceAgentsPackageRoot}from"./builderforce-root-D64_sXEi.js";import{r as resolveCliName}from"./command-format-Dd7BgZsg.js";import{t as note}from"./note-CvzMolLy.js";import{a as resolveCompletionCachePath,n as installCompletion,o as resolveShellFromEnv,r as isCompletionInstalled,s as usesSlowDynamicCompletion,t as completionCacheExists}from"./completion-cli-CoFRiwNp.js";import path from"node:path";import{spawnSync}from"node:child_process";async function generateCompletionCache(){let root=await resolveBuilderForceAgentsPackageRoot({moduleUrl:import.meta.url,argv1:process.argv[1],cwd:process.cwd()});if(!root)return!1;let binPath=path.join(root,`builderforce.mjs`);return spawnSync(process.execPath,[binPath,`completion`,`--write-state`],{cwd:root,env:process.env,encoding:`utf-8`}).status===0}async function checkShellCompletionStatus(binName=`builderforce`){let shell=resolveShellFromEnv();return{shell,profileInstalled:await isCompletionInstalled(shell,binName),cacheExists:await completionCacheExists(shell,binName),cachePath:resolveCompletionCachePath(shell,binName),usesSlowPattern:await usesSlowDynamicCompletion(shell,binName)}}async function doctorShellCompletion(runtime,prompter,options={}){let cliName=resolveCliName(),status=await checkShellCompletionStatus(cliName);if(status.usesSlowPattern){if(note(`Your ${status.shell} profile uses slow dynamic completion (source <(...)).\nUpgrading to cached completion for faster shell startup...`,`Shell completion`),!status.cacheExists&&!await generateCompletionCache()){note(`Failed to generate completion cache. Run \`${cliName} completion --write-state\` manually.`,`Shell completion`);return}await installCompletion(status.shell,!0,cliName),note(`Shell completion upgraded. Restart your shell or run: source ~/.${status.shell===`zsh`?`zshrc`:status.shell===`bash`?`bashrc`:`config/fish/config.fish`}`,`Shell completion`);return}if(status.profileInstalled&&!status.cacheExists){note(`Shell completion is configured in your ${status.shell} profile but the cache is missing.\nRegenerating cache...`,`Shell completion`),await generateCompletionCache()?note(`Completion cache regenerated at ${status.cachePath}`,`Shell completion`):note(`Failed to regenerate completion cache. Run \`${cliName} completion --write-state\` manually.`,`Shell completion`);return}if(!status.profileInstalled){if(options.nonInteractive)return;if(await prompter.confirm({message:`Enable ${status.shell} shell completion for ${cliName}?`,initialValue:!0})){if(!await generateCompletionCache()){note(`Failed to generate completion cache. Run \`${cliName} completion --write-state\` manually.`,`Shell completion`);return}await installCompletion(status.shell,!0,cliName),note(`Shell completion installed. Restart your shell or run: source ~/.${status.shell===`zsh`?`zshrc`:status.shell===`bash`?`bashrc`:`config/fish/config.fish`}`,`Shell completion`)}}}async function ensureCompletionCacheExists(binName=`builderforce`){return await completionCacheExists(resolveShellFromEnv(),binName)?!0:generateCompletionCache()}export{doctorShellCompletion as n,ensureCompletionCacheExists as r,checkShellCompletionStatus as t};
1
+ import{t as resolveBuilderForceAgentsPackageRoot}from"./builderforce-root-D64_sXEi.js";import{r as resolveCliName}from"./command-format-Dd7BgZsg.js";import{t as note}from"./note-CvzMolLy.js";import{a as resolveCompletionCachePath,n as installCompletion,o as resolveShellFromEnv,r as isCompletionInstalled,s as usesSlowDynamicCompletion,t as completionCacheExists}from"./completion-cli-EbyCUnCP.js";import path from"node:path";import{spawnSync}from"node:child_process";async function generateCompletionCache(){let root=await resolveBuilderForceAgentsPackageRoot({moduleUrl:import.meta.url,argv1:process.argv[1],cwd:process.cwd()});if(!root)return!1;let binPath=path.join(root,`builderforce.mjs`);return spawnSync(process.execPath,[binPath,`completion`,`--write-state`],{cwd:root,env:process.env,encoding:`utf-8`}).status===0}async function checkShellCompletionStatus(binName=`builderforce`){let shell=resolveShellFromEnv();return{shell,profileInstalled:await isCompletionInstalled(shell,binName),cacheExists:await completionCacheExists(shell,binName),cachePath:resolveCompletionCachePath(shell,binName),usesSlowPattern:await usesSlowDynamicCompletion(shell,binName)}}async function doctorShellCompletion(runtime,prompter,options={}){let cliName=resolveCliName(),status=await checkShellCompletionStatus(cliName);if(status.usesSlowPattern){if(note(`Your ${status.shell} profile uses slow dynamic completion (source <(...)).\nUpgrading to cached completion for faster shell startup...`,`Shell completion`),!status.cacheExists&&!await generateCompletionCache()){note(`Failed to generate completion cache. Run \`${cliName} completion --write-state\` manually.`,`Shell completion`);return}await installCompletion(status.shell,!0,cliName),note(`Shell completion upgraded. Restart your shell or run: source ~/.${status.shell===`zsh`?`zshrc`:status.shell===`bash`?`bashrc`:`config/fish/config.fish`}`,`Shell completion`);return}if(status.profileInstalled&&!status.cacheExists){note(`Shell completion is configured in your ${status.shell} profile but the cache is missing.\nRegenerating cache...`,`Shell completion`),await generateCompletionCache()?note(`Completion cache regenerated at ${status.cachePath}`,`Shell completion`):note(`Failed to regenerate completion cache. Run \`${cliName} completion --write-state\` manually.`,`Shell completion`);return}if(!status.profileInstalled){if(options.nonInteractive)return;if(await prompter.confirm({message:`Enable ${status.shell} shell completion for ${cliName}?`,initialValue:!0})){if(!await generateCompletionCache()){note(`Failed to generate completion cache. Run \`${cliName} completion --write-state\` manually.`,`Shell completion`);return}await installCompletion(status.shell,!0,cliName),note(`Shell completion installed. Restart your shell or run: source ~/.${status.shell===`zsh`?`zshrc`:status.shell===`bash`?`bashrc`:`config/fish/config.fish`}`,`Shell completion`)}}}async function ensureCompletionCacheExists(binName=`builderforce`){return await completionCacheExists(resolveShellFromEnv(),binName)?!0:generateCompletionCache()}export{doctorShellCompletion as n,ensureCompletionCacheExists as r,checkShellCompletionStatus as t};