@inkeep/open-knowledge 0.75.0 → 0.76.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/skills/project/SKILL.md +1 -1
- package/dist/{chunk-XKWWSDBF-CiyukTrj.mjs → chunk-XKWWSDBF-D2uvTQ0O.mjs} +2 -2
- package/dist/cli.mjs +56 -56
- package/dist/constants-CqleiXu2.mjs +1 -0
- package/dist/dist-BYaz0taZ.mjs +1 -0
- package/dist/{dist-CwMAFvDv.mjs → dist-D0pUzrgW.mjs} +467 -467
- package/dist/{flag-coverage-6JEX67RU-Byy8DkC9.mjs → flag-coverage-6JEX67RU-DTi4Xp7_.mjs} +1 -1
- package/dist/index.mjs +55 -55
- package/dist/init-CzdH5YhF.mjs +1 -0
- package/dist/{init-DLDxilxo.mjs → init-D35_7qCz.mjs} +14 -14
- package/dist/{js-exec-VXN6TZ7U-D--44jnh.mjs → js-exec-VXN6TZ7U-CMKRxSof.mjs} +3 -3
- package/dist/{js-exec-VXN6TZ7U-Z8_USGOo.mjs → js-exec-VXN6TZ7U-DW1z0_f3.mjs} +4 -4
- package/dist/{launch-json-removal-Dne2MJOy.mjs → launch-json-removal-DfVWRHc2.mjs} +1 -1
- package/dist/{loader-0uPLVRGr.mjs → loader-Il_r9h-s.mjs} +1 -1
- package/dist/loader-TircuzL8.mjs +1 -0
- package/dist/{md-manager-BGnqyqi1-Bwg54lLG.mjs → md-manager-BGnqyqi1-BZhj8566.mjs} +1 -1
- package/dist/{open-browser-BhyyMblU.mjs → open-browser-5wS5161m.mjs} +1 -1
- package/dist/parse-worker.mjs +1 -1
- package/dist/{preview-Bs9fHq-d.mjs → preview-B_F6SpZs.mjs} +1 -1
- package/dist/preview-D14ciGsV.mjs +1 -0
- package/dist/public/assets/{ActivityModeContent-CzSm_J9T.js → ActivityModeContent-CdOOmDnv.js} +1 -1
- package/dist/public/assets/{AddPropertiesButton-BSIajwKD.js → AddPropertiesButton-D94DERhh.js} +2 -2
- package/dist/public/assets/{AgentDiffPane-Vp3earvv.js → AgentDiffPane-BYWv05nU.js} +1 -1
- package/dist/public/assets/{AgentIconCluster-CfR3DGT6.js → AgentIconCluster-BjhMMJvg.js} +1 -1
- package/dist/public/assets/AgentThreadClientBinder-9BUeCC2i.js +1 -0
- package/dist/public/assets/{BugReportHistory-wGv5lBCh.js → BugReportHistory-DRk2wfmX.js} +1 -1
- package/dist/public/assets/{BugReportHistoryDialog-BO-UIVXb.js → BugReportHistoryDialog-BRt_mvxb.js} +1 -1
- package/dist/public/assets/{CodeMirrorPropInput-s4NvdTOo.js → CodeMirrorPropInput-BfFHUIPT.js} +1 -1
- package/dist/public/assets/{ConsentDialogBody-Bf0K9cnD.js → ConsentDialogBody-LH1oK-K1.js} +1 -1
- package/dist/public/assets/{DiffViewBoundary-DBwmHY1V.js → DiffViewBoundary-CHGMiI3o.js} +1 -1
- package/dist/public/assets/{DocumentContext-VTBMqEb0.js → DocumentContext-CmobwhDV.js} +1 -1
- package/dist/public/assets/{EditorModeToggle-Cpv-xFsl.js → EditorModeToggle-Ceb7UENC.js} +1 -1
- package/dist/public/assets/{EnableSyncConfirmDialog-rknOqm6H.js → EnableSyncConfirmDialog-3Y8YTBbR.js} +1 -1
- package/dist/public/assets/{ExcalidrawDocEditor-CBg9Pna8.js → ExcalidrawDocEditor-BGifKKc5.js} +1 -1
- package/dist/public/assets/FeedbackForm-DcQmM7vN.js +1 -0
- package/dist/public/assets/{GraphPanel-m6aQydCS.js → GraphPanel-7OJGN-lc.js} +1 -1
- package/dist/public/assets/{ImageAttachments-D7kmZzVk.js → ImageAttachments-NcjC3Vh7.js} +1 -1
- package/dist/public/assets/{ImportSkillDialog-BI9tnsOw.js → ImportSkillDialog-uibV-E0W.js} +1 -1
- package/dist/public/assets/{LintConfigEditor-CfOGOym9.js → LintConfigEditor-oHvdt6bD.js} +1 -1
- package/dist/public/assets/ManagedArtifactProperties-BPFT0XnN.js +1 -0
- package/dist/public/assets/{ManagedArtifactProperties-DRTI5JKU.js → ManagedArtifactProperties-DYixzgyO.js} +1 -1
- package/dist/public/assets/{MermaidDocEditor-QKcOaTIl.js → MermaidDocEditor-BAXy9Wq3.js} +1 -1
- package/dist/public/assets/{OpenInAgentMenuItem-eAQLnvt7.js → OpenInAgentMenuItem-BOkiSyJj.js} +1 -1
- package/dist/public/assets/{PropertyDisplayRow-C9msjkJt.js → PropertyDisplayRow-CpY_83p_.js} +1 -1
- package/dist/public/assets/{RegisteredAgentIcon-Dgk7CcwE.js → RegisteredAgentIcon-wza-YtV5.js} +1 -1
- package/dist/public/assets/{ReportBugDialogBody-BveANp3B.js → ReportBugDialogBody-DzspPXQX.js} +1 -1
- package/dist/public/assets/{ReportBugMenuTrigger-NLoVL3Gm.js → ReportBugMenuTrigger-lEPMbjE8.js} +2 -2
- package/dist/public/assets/{SchemaConfigEditor-bEeFeqG6.js → SchemaConfigEditor-eP12D_vE.js} +1 -1
- package/dist/public/assets/SessionsHost-CzyeLm35.js +2 -0
- package/dist/public/assets/{SettingsDialogBody-DFXMWMS1.js → SettingsDialogBody-C2rIl4ig.js} +1 -1
- package/dist/public/assets/{ShareBranchSwitchDialog-jrcdgIkL.js → ShareBranchSwitchDialog-Cf-6mqfV.js} +1 -1
- package/dist/public/assets/{ShareReceiveDialog-CDTgu8xc.js → ShareReceiveDialog-BhARlQ5y.js} +1 -1
- package/dist/public/assets/{ShareReceiveMissDialog-BykGxE_N.js → ShareReceiveMissDialog-gQIfuuKz.js} +1 -1
- package/dist/public/assets/{SkillCostValue-r8mvVMOq.js → SkillCostValue-yjmq3zbE.js} +1 -1
- package/dist/public/assets/{SkillEditBanner-c7ur7sSM.js → SkillEditBanner-Dm70GN3t.js} +1 -1
- package/dist/public/assets/{SkillForkDialog-Ic7tntCg.js → SkillForkDialog-C11FyNmp.js} +1 -1
- package/dist/public/assets/{SkillInstallMenu-BGASnDM4.js → SkillInstallMenu-B6dyzecr.js} +1 -1
- package/dist/public/assets/{SkillOriginInline-DwtGd5e7.js → SkillOriginInline-DE7ODwX7.js} +1 -1
- package/dist/public/assets/{SkillToolbarControls-B8D29s9Q.js → SkillToolbarControls-BIaHc8_B.js} +1 -1
- package/dist/public/assets/{SlidesToolbarControls-BgRd-P2G.js → SlidesToolbarControls-DFQKJb27.js} +1 -1
- package/dist/public/assets/{SourceEditor-Ctz1tHsS.js → SourceEditor-CFRWKhn6.js} +1 -1
- package/dist/public/assets/{TerminalPanel-BJyuuxKR.js → TerminalPanel-DJScfB1V.js} +1 -1
- package/dist/public/assets/{TerminalWindowApp-Y7aeyyGV.js → TerminalWindowApp-BeR-4EEA.js} +1 -1
- package/dist/public/assets/{TextDocEditor-BLQhPeRb.js → TextDocEditor-DzoiPoBH.js} +1 -1
- package/dist/public/assets/ThreadView-NfCjKVQa.js +18 -0
- package/dist/public/assets/{TimelineDiffPane-wNltJ4Ra.js → TimelineDiffPane-BY_OH8iK.js} +1 -1
- package/dist/public/assets/{agent-connection-status-B2_APHCy.js → agent-connection-status-GVtpWcVR.js} +1 -1
- package/dist/public/assets/{auth-state-cache-DCTSUKSp.js → auth-state-cache-DjjuYX83.js} +1 -1
- package/dist/public/assets/{bug-report-send-manager-Bo0jFt7g.js → bug-report-send-manager-nPQrCST0.js} +1 -1
- package/dist/public/assets/client-version-BEkfNJSO.js +1 -0
- package/dist/public/assets/{comment-chips-Ow_-FlnX.js → comment-chips-Bk3eU3-K.js} +1 -1
- package/dist/public/assets/{config-provider-C_s4gZBL.js → config-provider-CMsrN7B5.js} +1 -1
- package/dist/public/assets/{css-color-to-hex-B5CKvtuo.js → css-color-to-hex-SSX32gXw.js} +1 -1
- package/dist/public/assets/{dist-C7TUqndm.js → dist-868Gd8gd.js} +1 -1
- package/dist/public/assets/{doc-paths-DVIJKJSX.js → doc-paths-ZgPMU9hv.js} +1 -1
- package/dist/public/assets/{doc-undo-manager-Djgkf6Ty.js → doc-undo-manager-B9iAscTZ.js} +1 -1
- package/dist/public/assets/{documents-events-Bns9VJKK.js → documents-events-DyVmV0Qo.js} +1 -1
- package/dist/public/assets/{file-tree-adapter-BmZKZ3bW.js → file-tree-adapter-gYa-13I5.js} +1 -1
- package/dist/public/assets/{file-tree-utils-C1D_vfHU.js → file-tree-utils-Cz4iVcHq.js} +1 -1
- package/dist/public/assets/{folder-config-api-BfxvdHun.js → folder-config-api-CL7I86xK.js} +1 -1
- package/dist/public/assets/{index-BnGYK33w.js → index-CqL8TQF5.js} +8 -8
- package/dist/public/assets/{launch-agent-thread-BwjhT4xd.js → launch-agent-thread-CssNYKh8.js} +1 -1
- package/dist/public/assets/{lint-config-client-CGzxmNPs.js → lint-config-client-DkLK3D4G.js} +1 -1
- package/dist/public/assets/{markdownlint-rule-browser-DMrzttBP.js → markdownlint-rule-browser-D9Z_1KbZ.js} +1 -1
- package/dist/public/assets/messages-BAMdRODV.js +1 -0
- package/dist/public/assets/messages-BAY3MkPp.js +1 -0
- package/dist/public/assets/messages-BDdtHSCo.js +1 -0
- package/dist/public/assets/messages-BEF3wxiG.js +1 -0
- package/dist/public/assets/messages-BT0aZGab.js +1 -0
- package/dist/public/assets/messages-BmlevpVU.js +1 -0
- package/dist/public/assets/messages-CR-7ufDn.js +1 -0
- package/dist/public/assets/messages-CYKphHSL.js +1 -0
- package/dist/public/assets/messages-DiEzyUul.js +1 -0
- package/dist/public/assets/messages-gadlKE8F.js +1 -0
- package/dist/public/assets/messages-phBEtaqq.js +1 -0
- package/dist/public/assets/messages-q0qKAdXk.js +1 -0
- package/dist/public/assets/{navigation-targets-BgJZCIoO.js → navigation-targets-Dz7Mj6yW.js} +1 -1
- package/dist/public/assets/{page-list-cache-BZw1nTat.js → page-list-cache-CLQGWEib.js} +1 -1
- package/dist/public/assets/{pending-receive-nav-store-BdbD8RKg.js → pending-receive-nav-store-BIPhAGuN.js} +1 -1
- package/dist/public/assets/{progress-aeBz2HU-.js → progress-65clsNyb.js} +1 -1
- package/dist/public/assets/{project-paths-DuOPax72.js → project-paths-BXwPEPQG.js} +1 -1
- package/dist/public/assets/{prop-types-Dftq6RlG.js → prop-types-xcUPxUpJ.js} +1 -1
- package/dist/public/assets/{receive-store-BbICc2Yx.js → receive-store-C_l3XIQE.js} +1 -1
- package/dist/public/assets/{selection-context-DP-78Xcc.js → selection-context-Daqo73OD.js} +1 -1
- package/dist/public/assets/{skill-scope-CkRSHwP9.js → skill-scope-BUi8busH.js} +1 -1
- package/dist/public/assets/{skills-api-GG_S3DLj.js → skills-api-Cx2rJHH9.js} +1 -1
- package/dist/public/assets/{src-Ct05JYMM.js → src-CsTdoUyS.js} +1 -1
- package/dist/public/assets/{startup-marks-CKAHlbx0.js → startup-marks-C-4hCO0g.js} +1 -1
- package/dist/public/assets/{tag-pill-input-A3lclZkc.js → tag-pill-input-nlqSiq7s.js} +1 -1
- package/dist/public/assets/{target-navigation-intent-DQczLMCj.js → target-navigation-intent-B26HXIhC.js} +1 -1
- package/dist/public/assets/{telemetry-impl-FpJNQg4h.js → telemetry-impl-D_RVw4yU.js} +1 -1
- package/dist/public/assets/{telemetry-startup-Djr7mtRi.js → telemetry-startup-DP4JWcg4.js} +1 -1
- package/dist/public/assets/{terminal-cli-display-BJNZ23_x.js → terminal-cli-display-OF8nDzxb.js} +1 -1
- package/dist/public/assets/{terminal-command-events-D8Y8z7dv.js → terminal-command-events-DQbD5--h.js} +1 -1
- package/dist/public/assets/{terminal-launch-events-QgAdHjFE.js → terminal-launch-events-BI8c6JIE.js} +1 -1
- package/dist/public/assets/{terminal-telemetry-CRewSDIM.js → terminal-telemetry-BiZK7c9d.js} +1 -1
- package/dist/public/assets/thread-client-CIJy1Jbh.js +4 -0
- package/dist/public/assets/{typing-burst-detector-CgSdfwf_.js → typing-burst-detector-CoSim2VF.js} +1 -1
- package/dist/public/assets/{uninstall-DUiCf7pq.js → uninstall-DxE_1wQZ.js} +1 -1
- package/dist/public/assets/{use-activity-panel-DyfkOyNE.js → use-activity-panel-BMVu95Hl.js} +1 -1
- package/dist/public/assets/{use-apply-config-language-CVLULaMd.js → use-apply-config-language-DmbZDqgv.js} +2 -2
- package/dist/public/assets/{use-collab-url-DwsJjcme.js → use-collab-url-Bm6gv2VZ.js} +1 -1
- package/dist/public/assets/{use-conflicts-DA5fcbwd.js → use-conflicts-D-6loWer.js} +1 -1
- package/dist/public/assets/{use-live-xterm-theme-CD1keqML.js → use-live-xterm-theme-BSNONOSQ.js} +1 -1
- package/dist/public/assets/{use-open-skill-DTAAdX5Q.js → use-open-skill-DpbstiSZ.js} +1 -1
- package/dist/public/assets/{use-settings-route-1U5FeWiG.js → use-settings-route-Dmjvvjxd.js} +1 -1
- package/dist/public/assets/{use-skill-origin-B5IZoMvy.js → use-skill-origin-BJ_uQdjo.js} +1 -1
- package/dist/public/assets/{use-skills-BBxerxq6.js → use-skills-CpkfrpBl.js} +1 -1
- package/dist/public/assets/{use-terminal-enabled-BpShfZnI.js → use-terminal-enabled-3W1PH2lM.js} +1 -1
- package/dist/public/assets/{use-timeline-entry-diff-B64sKe7y.js → use-timeline-entry-diff-CmQbpKDX.js} +1 -1
- package/dist/public/assets/{use-workspace-Bs75Zv0f.js → use-workspace-uVXshHxD.js} +1 -1
- package/dist/public/index.html +56 -56
- package/dist/public/uninstall.html +4 -4
- package/dist/{python3-DNGS4G3E-CixyRGKv.mjs → python3-DNGS4G3E-DSWx_2Ia.mjs} +3 -3
- package/dist/{python3-DNGS4G3E-CRyO5yp1.mjs → python3-DNGS4G3E-Dpff_XiH.mjs} +2 -2
- package/dist/{registry-probes-CExYC4JQ.mjs → registry-probes-DNinJw94.mjs} +9 -9
- package/dist/{removal-file-path-C4FKyv5P.mjs → removal-file-path-dEH5rj0t.mjs} +1 -1
- package/dist/{repair-launch-json-q0aPdNfe.mjs → repair-launch-json-C_rI6C8x.mjs} +1 -1
- package/dist/{repair-mcp-configs-B_953vzu.mjs → repair-mcp-configs-CrbbtGdf.mjs} +1 -1
- package/dist/{sqlite3-TE5AIOTF-BK092fD6.mjs → sqlite3-TE5AIOTF-ButYCorg.mjs} +1 -1
- package/dist/{sqlite3-TE5AIOTF-DVwda1Ow.mjs → sqlite3-TE5AIOTF-D4yhY7wL.mjs} +3 -3
- package/dist/{src-CW_nJTbi.mjs → src-B76XllMS.mjs} +5 -5
- package/dist/src-BRZrtrdn.mjs +1 -0
- package/dist/start-BJfBxH26.mjs +5 -0
- package/dist/start-Dyk3zIJw.mjs +1 -0
- package/package.json +4 -4
- package/dist/constants-DKYqY2-e.mjs +0 -1
- package/dist/dist-Cv5tSkiZ.mjs +0 -1
- package/dist/init-CbL29jRL.mjs +0 -1
- package/dist/loader-CI812yys.mjs +0 -1
- package/dist/preview-OfoLn7xp.mjs +0 -1
- package/dist/public/assets/AgentThreadClientBinder-CdZPAsLH.js +0 -1
- package/dist/public/assets/FeedbackForm-Du0fmw9j.js +0 -1
- package/dist/public/assets/ManagedArtifactProperties-DaAHI3fg.js +0 -1
- package/dist/public/assets/SessionsHost-B_1YvEBI.js +0 -2
- package/dist/public/assets/ThreadView-0u0o8ib8.js +0 -18
- package/dist/public/assets/client-version-f7m94OcB.js +0 -1
- package/dist/public/assets/messages-B1nSTUib.js +0 -1
- package/dist/public/assets/messages-Bpy2LxD1.js +0 -1
- package/dist/public/assets/messages-CX7QlbB5.js +0 -1
- package/dist/public/assets/messages-ChaFm4nX.js +0 -1
- package/dist/public/assets/messages-ClP1rPcb.js +0 -1
- package/dist/public/assets/messages-DSWauZRi.js +0 -1
- package/dist/public/assets/messages-DYZGu9n6.js +0 -1
- package/dist/public/assets/messages-DZlA_YKm.js +0 -1
- package/dist/public/assets/messages-Dg6rGsBw.js +0 -1
- package/dist/public/assets/messages-DrhSLGBr.js +0 -1
- package/dist/public/assets/messages-M06K4cBB.js +0 -1
- package/dist/public/assets/messages-ZbMG_CHm.js +0 -1
- package/dist/public/assets/thread-client-B90HGYWT.js +0 -4
- package/dist/src-D2iK9raE.mjs +0 -1
- package/dist/start-2RZWW7tN.mjs +0 -1
- package/dist/start-BbiKYI_Y.mjs +0 -5
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./chunk-CYidjpOJ.js";import{t}from"./react-f2sANaYj.js";import{t as n}from"./compiler-runtime-BfE3aGVn.js";import{n as r}from"./dist-CJhtNlOm2.js";import{t as i}from"./dist-Cr4-nBVI.js";var a=e(t(),1),o=n();function s(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:{}}function c(e,t){let n=e[t];return typeof n==`string`&&n!==``?n:null}function ee(e){if(typeof e!=`object`||!e)return null;let t=e,n=c(t,`tool`)??c(t,`name`),r=t;if(typeof t.arguments==`object`&&t.arguments!==null)r=t.arguments;else if(typeof t.arguments==`string`)try{let e=JSON.parse(t.arguments);typeof e==`object`&&e&&(r=e)}catch{}return{tool:n,args:r}}var l=9e4,u=`ok-acp-agent-settings-v1`;function d(e){return`${e.source}:${e.id}`}function f(){try{let e=localStorage.getItem(u);if(e===null)return{};let t=JSON.parse(e);return typeof t==`object`&&t?t:{}}catch{return{}}}function p(e){try{localStorage.setItem(u,JSON.stringify(e))}catch(e){console.warn(`[acp-settings] could not persist agent settings`,e)}}function m(e,t,n){let r=f(),i=r[e]??{};r[e]={...i,config:{...i.config,[t]:n}},p(r)}function h(e){let t=f()[e]?.config;if(typeof t!=`object`||!t)return;let n={};for(let[e,r]of Object.entries(t))(typeof r==`string`||typeof r==`boolean`)&&(n[e]=r);return Object.keys(n).length>0?n:void 0}function g(e,t){if(t===``)return;let n=f();n[e]={...n[e]??{},modeId:t},p(n)}function _(e){let t=f()[e]?.modeId;return typeof t==`string`&&t!==``?t:void 0}var v=`codex-acp`,y=[`Warning: `,`Config warning: `],te=`
|
|
2
|
-
|
|
3
|
-
`;function b(e,t){if(t==null||t.source!==`registry`||t.id!==v||typeof e!=`object`||!e)return!1;let n=e;if(n.sessionUpdate!==`agent_message_chunk`||n.messageId!==void 0)return!1;let r=n.content;if(typeof r!=`object`||!r)return!1;let i=r;if(i.type!==`text`||typeof i.text!=`string`)return!1;let a=i.text;return a.endsWith(te)?y.some(e=>a.startsWith(e)):!1}var ne=72,re=/^(?:\/bin\/|\/usr\/bin\/|\/usr\/local\/bin\/)?(?:ba|da|z)?sh$/,ie=/^[\w@%+=:,./-]+$/,x=/^[ \t]*$/,ae=/[^ \t\n]/,S=/^[ \t]+|[ \t]+$/g,C=/(?![\t\n])[\p{Cc}\p{Cf}\p{Zl}\p{Zp}]/gu,w=/[ \t;&|()<>]/;function T(e,t,n){if(!e.comment){if(e.escaped){e.escaped=!1;return}if(t===`\\`&&e.quote!==`'`){e.escaped=!0;return}if(e.quote!==null){t===e.quote&&(e.quote=null);return}if(t===`'`||t===`"`){e.quote=t;return}if(E(e)&&t===`#`&&(n===void 0||w.test(n))){e.comment=!0;return}t==="`"?e.backtick=!e.backtick:t===`(`?e.depth+=1:t===`)`?e.depth=Math.max(0,e.depth-1):t===`{`&&n===`$`?e.braces+=1:t===`}`&&e.braces>0&&--e.braces}}function E(e){return e.quote===null&&e.depth===0&&e.braces===0&&!e.backtick&&!e.comment&&!e.escaped}function D(e){let t=e.split(`
|
|
4
|
-
`);for(;t.length>0&&x.test(t[0]??``);)t.shift();for(;t.length>0&&x.test(t[t.length-1]??``);)t.pop();return t.length===1?O(t[0]??``):t.map(e=>({text:e,continuation:!1}))}function O(e){let t=[],n={quote:null,depth:0,braces:0,backtick:!1,comment:!1,escaped:!1},r=``,i=!1,a=e=>{let n=r.replace(S,``);r=``,n!==``&&t.push({text:n,continuation:e})};for(let t=0;t<e.length;t+=1){let o=e[t],s=e[t+1];if(E(n)&&(o===`&`||o===`|`)&&s===o){r+=o+s,t+=1,a(i),i=!1;continue}if(E(n)&&o===`;`){r+=o,a(i),i=!1;continue}if(E(n)&&o===`|`&&s!==`|`&&r.length>=ne){r+=o,a(i),i=!0;continue}r+=o,T(n,o,e[t-1])}return a(i),t}function k(e){return e.replace(C,e=>`⟨U+${(e.codePointAt(0)??0).toString(16).toUpperCase().padStart(4,`0`)}⟩`)}function A(e){let t=s(e).command,n=Array.isArray(t)?j(t):t;return typeof n==`string`&&ae.test(n)?n:null}function j(e){if(e.length===0||!e.every(e=>typeof e==`string`))return null;let[t=``,n,r=``]=e;return e.length===3&&re.test(t)&&(n===`-c`||n===`-lc`)?r:e.map(M).join(` `)}function M(e){return ie.test(e)?e:`'${e.replaceAll(`'`,`'\\''`)}'`}var N=64e3;function P(e){if(typeof e!=`object`||!e)return null;let t=e;return t.type===`text`&&typeof t.text==`string`?t.text:null}function F(e,t){return e===`execute`?A(t):null}function I(e){return e!==null&&(e.reason===`connect`||e.reason===`session-setup`||e.reason===`auth-required`)}var L=class{agent;constructor(e){this.agent=e}items=[];plan=[];turnActive=!1;tokenUsage=null;terminals={};toolCallIndex=new Map;permissionIndex=new Map;permissionByToolCall=new Map;permissionsByToolCall={};messageIndex=new Map;runtimeConsentIndex=new Map;piBridgeIndex=new Map;lastConsentIndex=null;appliedCount=0;dirty=!1;snapshot={items:[],plan:[],turnActive:!1,tokenUsage:null,terminals:{},permissionsByToolCall:{}};sync(e){e.length<this.appliedCount&&this.reset();for(let t=this.appliedCount;t<e.length;t++)this.applyEvent(e[t],t);return this.appliedCount=e.length,this.dirty&&=(this.snapshot={items:[...this.items],plan:this.plan,turnActive:this.turnActive,tokenUsage:this.tokenUsage,terminals:{...this.terminals},permissionsByToolCall:{...this.permissionsByToolCall}},!1),this.snapshot}reset(){this.items=[],this.plan=[],this.turnActive=!1,this.tokenUsage=null,this.terminals={},this.toolCallIndex=new Map,this.permissionIndex=new Map,this.permissionByToolCall=new Map,this.permissionsByToolCall={},this.messageIndex=new Map,this.runtimeConsentIndex=new Map,this.piBridgeIndex=new Map,this.lastConsentIndex=null,this.appliedCount=0,this.dirty=!0}applyEvent(e,t){switch(this.dirty=!0,e.kind){case`user_message`:{let t={kind:`message`,role:`user`,text:e.content,messageId:`user-${this.items.length}`,sentAt:e.ts};e.attachments!==void 0&&e.attachments.length>0&&(t.attachments=e.attachments),this.items.push(t),this.messageIndex.clear();break}case`turn_started`:this.turnActive=!0;break;case`turn_ended`:this.turnActive=!1,this.messageIndex.clear();break;case`status`:if(e.status===`exited`&&(this.turnActive=!1),this.lastConsentIndex!==null){let t=this.items[this.lastConsentIndex];t?.kind===`runtime_consent`&&t.install===`running`&&(e.status===`spawning`||e.status===`ready`||e.status===`running`?this.items[this.lastConsentIndex]={...t,install:`done`}:(e.status===`error`||e.status===`exited`)&&(this.items[this.lastConsentIndex]={...t,install:`failed`}))}if(e.status===`ready`)for(let e=0;e<this.items.length;e+=1){let t=this.items[e];t?.kind===`notice`&&t.superseded!==!0&&I(t.failure)&&(this.items[e]={...t,superseded:!0})}if((e.status===`error`||e.status===`auth_required`)&&(e.failure!==void 0||(e.detail??``)!==``)){let t={kind:`notice`,text:e.detail??``,tone:e.status===`error`?`error`:`info`,failure:e.failure??null,attempts:1},n=this.items[this.items.length-1];n?.kind===`notice`&&n.superseded!==!0&&V(n,t)?this.items[this.items.length-1]={...n,attempts:n.attempts+1}:this.items.push(t)}break;case`permission_request`:{let t=e.toolCall.toolCallId??null,n=t===null?void 0:this.toolCallIndex.get(t),r=n===void 0?void 0:this.items[n],a=r?.kind===`tool_call`?r.toolKind:void 0,o=e.toolCall.kind??a??`other`,s={kind:`permission`,requestId:e.requestId,title:e.toolCall.title??i._({id:`Ya3PlJ`}),toolKind:o,command:F(o,e.toolCall.rawInput)??F(o,r?.kind===`tool_call`?r.rawInput:void 0),options:e.options,resolved:null,toolCallId:t,mergedIntoToolCall:n!==void 0};this.permissionIndex.set(e.requestId,this.items.length),t!==null&&(this.permissionByToolCall.set(t,this.items.length),this.permissionsByToolCall[t]=s),this.items.push(s);break}case`permission_resolved`:{let t=this.permissionIndex.get(e.requestId);if(t===void 0)break;let n=this.items[t];if(n.kind!==`permission`)break;let r={...n,resolved:{optionId:e.optionId,auto:e.auto}};this.items[t]=r,r.toolCallId!==null&&(this.permissionsByToolCall[r.toolCallId]=r);break}case`runtime_consent_request`:this.runtimeConsentIndex.set(e.requestId,this.items.length),this.lastConsentIndex=this.items.length,this.items.push({kind:`runtime_consent`,requestId:e.requestId,runtime:e.runtime,displayName:e.displayName,provides:e.provides,version:e.version,approxSizeMB:e.approxSizeMB,sourceHost:e.sourceHost,agentName:e.agentName,reason:e.reason??`missing`,resolved:null,install:null,progress:null});break;case`runtime_consent_resolved`:{let t=this.runtimeConsentIndex.get(e.requestId);if(t===void 0)break;let n=this.items[t];if(n.kind!==`runtime_consent`)break;this.items[t]={...n,resolved:e.decision,install:e.decision===`granted`?`running`:null};break}case`pi_bridge_consent_request`:this.piBridgeIndex.set(e.requestId,this.items.length),this.items.push({kind:`pi_bridge`,row:`prompted`,prompt:{requestId:e.requestId,agentName:e.agentName,cwd:e.cwd,otherExtensions:e.otherExtensions??[]},bridgePath:e.bridgePath,decision:null,outcome:null});break;case`pi_bridge_consent_resolved`:{let t=this.piBridgeIndex.get(e.requestId);if(t===void 0)break;let n=this.items[t];if(n.kind!==`pi_bridge`)break;this.items[t]={...n,decision:e.decision};break}case`pi_bridge_status`:{let t={state:e.state,detail:e.detail??null},n=e.requestId===void 0?void 0:this.piBridgeIndex.get(e.requestId),r=n===void 0?void 0:this.items[n];if(n!==void 0&&r?.kind===`pi_bridge`){this.items[n]={...r,outcome:t};break}this.items.push({kind:`pi_bridge`,row:`notice`,prompt:null,bridgePath:e.bridgePath,decision:null,outcome:t});break}case`runtime_install_progress`:{if(this.lastConsentIndex===null)break;let t=this.items[this.lastConsentIndex];if(t===void 0||t.kind!==`runtime_consent`)break;this.items[this.lastConsentIndex]={...t,progress:{receivedBytes:e.receivedBytes??0,totalBytes:e.totalBytes??null}};break}case`terminal_created`:this.terminals[e.terminalId]={terminalId:e.terminalId,command:e.command,args:e.args,output:``,truncated:!1,exit:null};break;case`terminal_output`:{let t=this.terminals[e.terminalId];if(t===void 0)break;let n=t.output+e.chunk,r=t.truncated;n.length>N&&(n=n.slice(-N),r=!0),this.terminals[e.terminalId]={...t,output:n,truncated:r};break}case`terminal_exit`:{let t=this.terminals[e.terminalId];if(t===void 0)break;this.terminals[e.terminalId]={...t,exit:{exitCode:e.exitCode,signal:e.signal}};break}case`session_update`:this.applyUpdate(e.update,t);break;default:break}}mergePermissionInto(e){let t=this.permissionByToolCall.get(e);if(t===void 0)return;let n=this.items[t];if(n===void 0||n.kind!==`permission`||n.mergedIntoToolCall)return;let r={...n,mergedIntoToolCall:!0};this.items[t]=r,this.permissionsByToolCall[e]=r}fillPermissionCommand(e,t,n){let r=this.permissionByToolCall.get(e);if(r===void 0)return;let i=this.items[r];if(i?.kind!==`permission`||i.command!==null)return;let a=F(i.toolKind===`other`?t:i.toolKind,n);if(a===null)return;let o={...i,command:a};this.items[r]=o,this.permissionsByToolCall[e]=o}pushMessageChunk(e,t,n){let r=`${e}:${t}`,i=this.messageIndex.get(r);if(i!==void 0&&i===this.items.length-1){let e=this.items[i];this.items[i]={...e,text:e.text+n};return}this.messageIndex.set(r,this.items.length),this.items.push({kind:`message`,role:e,text:n,messageId:t})}applyUpdate(e,t){switch(e.sessionUpdate){case`agent_message_chunk`:{let n=P(e.content);if(n===null)break;if(b(e,this.agent)){this.items.push({kind:`agent_notice`,source:`codex_legacy`,severity:`warning`,text:n,seq:t});break}this.pushMessageChunk(`agent`,z(e),n);break}case`agent_thought_chunk`:{let t=P(e.content);t!==null&&this.pushMessageChunk(`thought`,z(e),t);break}case`user_message_chunk`:{let t=P(e.content);t!==null&&this.pushMessageChunk(`user`,z(e),t);break}case`tool_call`:{let t={kind:`tool_call`,toolCallId:e.toolCallId,title:e.title??i._({id:`EvIJVD`}),toolKind:e.kind??`other`,status:e.status??`pending`,diffs:[],terminalIds:[],content:[],locations:B(e.locations),rawInput:e.rawInput};H(t,e.content),this.toolCallIndex.set(e.toolCallId,this.items.length),this.items.push(t),this.mergePermissionInto(e.toolCallId),this.fillPermissionCommand(e.toolCallId,t.toolKind,t.rawInput);break}case`tool_call_update`:{let t=this.toolCallIndex.get(e.toolCallId);if(t===void 0)break;let n=this.items[t];if(n.kind!==`tool_call`)break;let r={...n,diffs:[...n.diffs],terminalIds:[...n.terminalIds],content:[...n.content]};e.status&&(r.status=e.status),e.title&&(r.title=e.title),e.locations&&(r.locations=B(e.locations));let i=e.rawInput;i!==void 0&&(r.rawInput=i,this.fillPermissionCommand(e.toolCallId,r.toolKind,i)),H(r,e.content),this.items[t]=r;break}case`plan`:{let t=e.entries;Array.isArray(t)&&(this.plan=t.map(e=>e).filter(e=>typeof e.content==`string`).map(e=>({content:e.content,priority:typeof e.priority==`string`?e.priority:void 0,status:typeof e.status==`string`?e.status:void 0})));break}case`usage_update`:{let t=e;this.tokenUsage={used:typeof t.used==`number`?t.used:void 0,size:typeof t.size==`number`?t.size:void 0};break}default:{let t=e.usage;t!==void 0&&(this.tokenUsage={used:t.used,size:t.size});break}}}};function R(e){let t=e.resolved;if(t===null)return null;if(t.optionId===null)return t.auto?{kind:`dismissed`}:{kind:`denied`,auto:!1,optionName:null};let n=e.options.find(e=>e.optionId===t.optionId);if(n===void 0)return{kind:`dismissed`};let r=n.kind.startsWith(`reject`),i=n.kind.startsWith(`allow`);return!r&&!i?{kind:`dismissed`}:{kind:r?`denied`:`approved`,auto:t.auto,optionName:n.name}}function z(e){let t=e.messageId;return typeof t==`string`?t:`default`}function B(e){return Array.isArray(e)?e.map(e=>e).filter(e=>typeof e.path==`string`).map(e=>({path:e.path,line:typeof e.line==`number`?e.line:void 0})):[]}function V(e,t){return!(e.tone!==t.tone||e.text!==t.text||e.failure===null!=(t.failure===null)||e.failure!==null&&t.failure!==null&&(e.failure.reason!==t.failure.reason||(e.failure.agentMessage??``)!==(t.failure.agentMessage??``)||(e.failure.machineDetail??``)!==(t.failure.machineDetail??``)))}function H(e,t){if(Array.isArray(t))for(let n of t){let t=n;if(t.type===`diff`&&typeof t.path==`string`&&typeof t.newText==`string`)e.diffs.push({path:t.path,oldText:typeof t.oldText==`string`?t.oldText:null,newText:t.newText});else if(t.type===`terminal`&&typeof t.terminalId==`string`)e.terminalIds.includes(t.terminalId)||e.terminalIds.push(t.terminalId);else if(t.type===`content`){let n=P(t.content);n!==null&&e.content.push(n)}else{let n=P(t);n!==null&&e.content.push(n)}}}var U=Object.freeze({kind:`agent_stderr`,line:`[missing log entry]`,ts:0}),W=500,G=15e3,K=3e4,q=l,J=l,oe=33e4,Y=8e3,se=1e4,X=class extends Error{code;constructor(e,t){super(t),this.name=`ThreadResumeError`,this.code=e}},Z=class extends Error{constructor(){super(`agent-thread channel is not connected`),this.name=`ThreadChannelUnavailableError`}},ce=class{url=null;ws=null;reconnectDelay=W;reconnectTimer=null;threads=new Map;listeners=new Set;pendingCreates=new Map;pendingResumes=new Map;pendingRetries=new Map;pendingAuths=new Map;pendingQueueEdits=new Map;openedArchived=new Set;lastViewedByThread=new Map;resumingThreads=new Set;reqCounter=0;status=`idle`;version=0;initialRosterIds=null;markThreadViewed=e=>{let t=this.threads.get(e);if(t===void 0||t.info.status!==`ready`)return;let n=t.info.lastActivityAt;this.lastViewedByThread.get(e)!==n&&(this.lastViewedByThread.set(e,n),this.bump())};getThreadUnread=e=>{let t=this.threads.get(e);if(t===void 0||t.info.status!==`ready`)return!1;let n=this.lastViewedByThread.get(e);return n===void 0?!1:t.info.lastActivityAt>n};setUrl(e){e!==this.url&&(this.url=e,this.initialRosterIds!==null&&(this.initialRosterIds=null,this.bump()),this.teardownSocket(),e===null?this.setStatus(`idle`):this.connect())}subscribe=e=>(this.listeners.add(e),()=>this.listeners.delete(e));threadsSnapshot=[];threadsSnapshotVersion=-1;getThreads=()=>(this.threadsSnapshotVersion!==this.version&&(this.threadsSnapshot=[...this.threads.values()].map(e=>e.info).sort((e,t)=>e.createdAt-t.createdAt),this.threadsSnapshotVersion=this.version),this.threadsSnapshot);openTabsSnapshot=[];openTabsSnapshotVersion=-1;getOpenTabs=()=>(this.openTabsSnapshotVersion!==this.version&&(this.openTabsSnapshot=[...this.threads.values()].map(e=>e.info).filter(e=>e.archived!==!0||this.openedArchived.has(e.threadId)).sort((e,t)=>e.createdAt-t.createdAt),this.openTabsSnapshotVersion=this.version),this.openTabsSnapshot);archivedSnapshot=[];archivedSnapshotVersion=-1;getArchivedThreads=()=>(this.archivedSnapshotVersion!==this.version&&(this.archivedSnapshot=[...this.threads.values()].map(e=>e.info).filter(e=>e.archived===!0).sort((e,t)=>t.lastActivityAt-e.lastActivityAt),this.archivedSnapshotVersion=this.version),this.archivedSnapshot);getThread=e=>this.threads.get(e)??null;getInitialRosterThreadIds=()=>this.initialRosterIds;modelBuilders=new Map;getThreadModel=e=>{let t=this.threads.get(e);if(t===void 0)return null;let n=this.modelBuilders.get(e);return n===void 0&&(n=new L(t.info.agent),this.modelBuilders.set(e,n)),n.sync(t.events)};getConnectionStatus=()=>this.status;async createThread(e){this.connectNow(),await this.waitForOpen(Y),this.reqCounter+=1;let t=`create-${this.reqCounter}`,n=new Promise((e,n)=>{let r=setTimeout(()=>{this.pendingCreates.delete(t),n(Error(`thread creation timed out`))},K);this.pendingCreates.set(t,{resolve:e,reject:n,timer:r})}),r=d(e.agent),i=h(r),a=_(r),o=i!==void 0||a!==void 0?{...i===void 0?{}:{config:i},...a===void 0?{}:{modeId:a}}:void 0;return this.send({op:`create`,reqId:t,...e,...o===void 0?{}:{settings:o}}),n}prompt(e,t,n){let r=t.trim(),i=n!==void 0&&n.length>0;r===``&&!i||(this.reqCounter+=1,this.send({op:`prompt`,threadId:e,reqId:`prompt-${this.reqCounter}`,content:r,...i?{attachments:n}:{}}))}steer(e,t,n){let r=t.trim(),i=n!==void 0&&n.length>0;r===``&&!i||(this.reqCounter+=1,this.send({op:`steer`,threadId:e,reqId:`steer-${this.reqCounter}`,content:r,...i?{attachments:n}:{}}))}editQueued(e,t,n){let r=n.trim();if(r===``)return Promise.resolve();this.reqCounter+=1;let i=`queue-edit-${this.reqCounter}`,a=new Promise((e,t)=>{let n=setTimeout(()=>{this.pendingQueueEdits.delete(i),e()},se);this.pendingQueueEdits.set(i,{resolve:e,reject:t,timer:n})});return this.send({op:`queue_edit`,threadId:e,id:t,content:r,reqId:i}),a}holdQueued(e,t,n){this.send({op:`queue_hold`,threadId:e,id:t,held:n})}removeQueued(e,t){this.send({op:`queue_remove`,threadId:e,id:t})}respondPermission(e,t,n){this.send({op:`permission_response`,threadId:e,requestId:t,outcome:n})}respondRuntimeConsent(e,t,n){this.send({op:`runtime_consent_response`,threadId:e,requestId:t,outcome:n})}respondPiBridgeConsent(e,t,n){this.send({op:`pi_bridge_consent_response`,threadId:e,requestId:t,outcome:n})}cancel(e){this.send({op:`cancel`,threadId:e})}setMode(e,t){this.send({op:`set_mode`,threadId:e,modeId:t})}renameThread(e,t){let n=t.trim();n!==``&&this.send({op:`rename`,threadId:e,title:n})}setConfigOption(e,t,n){this.send({op:`set_config_option`,threadId:e,configId:t,value:n})}closeThread(e){let t=this.threads.get(e);if(t?.info.archived===!0){this.send({op:`unsubscribe`,threadId:e}),this.openedArchived.delete(e),this.modelBuilders.delete(e),this.threads.set(e,{info:t.info,events:[],lastSeq:-1,replayThroughSeq:1/0}),this.bump();return}this.send({op:`close`,threadId:e}),this.openedArchived.delete(e),this.modelBuilders.delete(e),this.threads.delete(e)&&this.bump()}openArchivedThread(e){let t=this.threads.get(e);t===void 0||t.info.archived!==!0||this.openedArchived.has(e)||(this.openedArchived.add(e),this.send({op:`subscribe`,threadId:e,sinceSeq:t.lastSeq+1}),this.bump())}deleteThread(e){this.send({op:`delete`,threadId:e}),this.openedArchived.delete(e),this.resumingThreads.delete(e),this.modelBuilders.delete(e),this.threads.delete(e)&&this.bump()}async resumeThread(e,t,n){this.connectNow(),await this.waitForOpen(Y),this.reqCounter+=1;let r=`resume-${this.reqCounter}`,i=new Promise((e,t)=>{let n=setTimeout(()=>{this.pendingResumes.delete(r),t(new X(`timeout`,`resume timed out`))},q);this.pendingResumes.set(r,{resolve:e,reject:t,timer:n})});return this.resumingThreads.add(e),this.send({op:`resume`,threadId:e,reqId:r,prompt:t,...n!==void 0&&n.length>0?{attachments:n}:{}}),i}async retryThread(e){this.connectNow(),await this.waitForOpen(Y),this.reqCounter+=1;let t=`retry-${this.reqCounter}`,n=new Promise((e,n)=>{let r=setTimeout(()=>{this.pendingRetries.delete(t),n(Error(`retry timed out`))},J);this.pendingRetries.set(t,{resolve:e,reject:n,timer:r})});return this.send({op:`retry`,threadId:e,reqId:t}),n}async authenticateThread(e,t){this.connectNow(),await this.waitForOpen(Y),this.reqCounter+=1;let n=`authenticate-${this.reqCounter}`,r=new Promise((e,t)=>{let r=setTimeout(()=>{this.pendingAuths.delete(n),t(Error(`sign-in timed out`))},oe);this.pendingAuths.set(n,{resolve:e,reject:t,timer:r})});return this.send({op:`authenticate`,threadId:e,reqId:n,methodId:t}),r}connectNow(){this.url===null||this.ws!==null||(this.reconnectTimer!==null&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null),this.reconnectDelay=W,this.connect())}waitForOpen(e){return this.ws!==null&&this.ws.readyState===WebSocket.OPEN?Promise.resolve():new Promise((t,n)=>{let r=e=>{clearTimeout(a),i(),e?t():n(new Z)},i=this.subscribe(()=>{this.ws!==null&&this.ws.readyState===WebSocket.OPEN&&r(!0)}),a=setTimeout(()=>r(!1),e)})}connect(){if(this.url===null)return;this.setStatus(`connecting`);let e;try{e=new WebSocket(this.url)}catch{this.scheduleReconnect();return}this.ws=e,e.onopen=()=>{if(this.ws===e){this.reconnectDelay=W,this.setStatus(`open`),this.send({op:`list`});for(let[e,t]of this.threads)t.info.archived===!0&&!this.openedArchived.has(e)||this.send({op:`subscribe`,threadId:e,sinceSeq:t.lastSeq+1})}},e.onmessage=t=>{this.ws===e&&typeof t.data==`string`&&this.receiveServerFrame(t.data)},e.onclose=()=>{this.ws===e&&(this.ws=null,this.setStatus(`closed`),this.scheduleReconnect())},e.onerror=()=>{}}teardownSocket(){this.reconnectTimer!==null&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null);for(let e of this.pendingCreates.values())clearTimeout(e.timer),e.reject(new Z);this.pendingCreates.clear();for(let e of this.pendingResumes.values())clearTimeout(e.timer),e.reject(new Z);this.pendingResumes.clear(),this.resumingThreads.clear();for(let e of this.pendingRetries.values())clearTimeout(e.timer),e.reject(new Z);this.pendingRetries.clear();for(let e of this.pendingAuths.values())clearTimeout(e.timer),e.reject(new Z);this.pendingAuths.clear();for(let e of this.pendingQueueEdits.values())clearTimeout(e.timer),e.resolve();this.pendingQueueEdits.clear();let e=this.ws;if(this.ws=null,e!==null)try{e.close()}catch{}}scheduleReconnect(){if(this.url===null||this.reconnectTimer!==null)return;let e=this.reconnectDelay;this.reconnectDelay=Math.min(this.reconnectDelay*2,G),this.reconnectTimer=setTimeout(()=>{this.reconnectTimer=null,this.connect()},e)}send(e){let t=this.ws;if(!(t===null||t.readyState!==WebSocket.OPEN))try{t.send(JSON.stringify(e))}catch{}}receiveServerFrame(e){let t;try{t=JSON.parse(e)}catch{return}this.handleFrame(t)}handleFrame(e){switch(e.op){case`created`:{let t=this.pendingCreates.get(e.reqId);t!==void 0&&(this.pendingCreates.delete(e.reqId),clearTimeout(t.timer),t.resolve(e.info)),this.upsertInfo(e.info);return}case`threads`:{this.initialRosterIds===null&&(this.initialRosterIds=new Set(e.threads.filter(e=>e.archived!==!0).map(e=>e.threadId)),this.bump());let t=new Set;for(let n of e.threads){t.add(n.threadId);let e=this.threads.has(n.threadId);this.upsertInfo(n),!e&&n.archived!==!0&&this.send({op:`subscribe`,threadId:n.threadId,sinceSeq:0})}let n=!1;for(let e of Array.from(this.threads.keys()))t.has(e)||(this.threads.delete(e),this.modelBuilders.delete(e),this.openedArchived.delete(e),this.resumingThreads.delete(e),n=!0);n&&this.bump();return}case`resumed`:{this.resumingThreads.delete(e.info.threadId);let t=this.pendingResumes.get(e.reqId);t!==void 0&&(this.pendingResumes.delete(e.reqId),clearTimeout(t.timer),t.resolve(e.info)),this.upsertInfo(e.info);return}case`retried`:{let t=this.pendingRetries.get(e.reqId);t!==void 0&&(this.pendingRetries.delete(e.reqId),clearTimeout(t.timer),t.resolve(e.info)),this.upsertInfo(e.info);return}case`authenticated`:{let t=this.pendingAuths.get(e.reqId);t!==void 0&&(this.pendingAuths.delete(e.reqId),clearTimeout(t.timer),t.resolve(e.info)),this.upsertInfo(e.info);return}case`subscribed`:{this.upsertInfo(e.info);let t=this.threads.get(e.threadId);t!==void 0&&(this.threads.set(e.threadId,{...t,replayThroughSeq:e.info.lastSeq}),this.bump());return}case`queue_edited`:{let t=this.pendingQueueEdits.get(e.reqId);t!==void 0&&(this.pendingQueueEdits.delete(e.reqId),clearTimeout(t.timer),t.resolve());return}case`info`:this.upsertInfo(e.info);return;case`event`:this.appendEvents(e.threadId,e.seq,[e.event]);return;case`events`:this.appendEvents(e.threadId,e.fromSeq,e.events);return;case`error`:if(e.reqId!==void 0){e.reqId.startsWith(`resume-`)&&e.threadId!==void 0&&this.resumingThreads.delete(e.threadId);let t=this.pendingCreates.get(e.reqId);if(t!==void 0){this.pendingCreates.delete(e.reqId),clearTimeout(t.timer),t.reject(Error(e.message));return}let n=this.pendingResumes.get(e.reqId);if(n!==void 0){this.pendingResumes.delete(e.reqId),clearTimeout(n.timer),n.reject(new X(e.code,e.message));return}let a=this.pendingRetries.get(e.reqId);if(a!==void 0){this.pendingRetries.delete(e.reqId),clearTimeout(a.timer),a.reject(Error(e.message));return}let o=this.pendingAuths.get(e.reqId);if(o!==void 0){this.pendingAuths.delete(e.reqId),clearTimeout(o.timer),o.reject(Error(e.message));return}let s=this.pendingQueueEdits.get(e.reqId);if(s!==void 0){this.pendingQueueEdits.delete(e.reqId),clearTimeout(s.timer),s.reject(Error(e.message));return}if(e.reqId.startsWith(`prompt-`)||e.reqId.startsWith(`steer-`)){r.error(i._({id:`XNBGZw`,values:{0:e.message}}));return}}console.warn(`[agent-threads] server error frame:`,e.code,e.message);return;default:return}}appendEvents(e,t,n){let r=this.threads.get(e);if(r===void 0||n.length===0)return;let i=Math.max(r.lastSeq+1-t,0);if(i>=n.length)return;let a=i===0?n:n.slice(i),o=Math.max(t-(r.lastSeq+1),0);o>0&&console.warn(`[agent-threads] replay opened above the transcript tail`,{threadId:e,fromSeq:t,have:r.lastSeq});let s=r.info;for(let e of a)s=le(s,e);this.threads.set(e,{info:s,events:[...r.events,...o>0?Array(o).fill(U):[],...a],lastSeq:t+n.length-1,replayThroughSeq:r.replayThroughSeq}),this.bump()}upsertInfo(e){let t=this.threads.get(e.threadId);t===void 0?(this.threads.set(e.threadId,{info:e,events:[],lastSeq:-1,replayThroughSeq:1/0}),this.lastViewedByThread.has(e.threadId)||this.lastViewedByThread.set(e.threadId,e.lastActivityAt)):e.archived===!0&&t.info.archived!==!0&&!this.resumingThreads.has(e.threadId)?(this.openedArchived.delete(e.threadId),this.modelBuilders.delete(e.threadId),this.threads.set(e.threadId,{info:e,events:[],lastSeq:-1,replayThroughSeq:1/0})):this.threads.set(e.threadId,{...t,info:e}),this.bump()}setStatus(e){this.status!==e&&(this.status=e,this.bump())}bump(){this.version+=1;for(let e of this.listeners)e()}};function le(e,t){switch(t.kind){case`status`:return{...e,status:t.status,lastActivityAt:t.ts};case`title_changed`:return{...e,title:t.title,lastActivityAt:t.ts};default:return{...e,lastActivityAt:t.ts}}}var Q=new ce;function ue(){return Q}function de(){return(0,a.useSyncExternalStore)(Q.subscribe,Q.getOpenTabs,Q.getOpenTabs)}function fe(){return(0,a.useSyncExternalStore)(Q.subscribe,Q.getInitialRosterThreadIds,Q.getInitialRosterThreadIds)}function pe(){return(0,a.useSyncExternalStore)(Q.subscribe,Q.getArchivedThreads,Q.getArchivedThreads)}function $(e){let t=(0,o.c)(2),n;t[0]===e?n=t[1]:(n=()=>Q.getThread(e),t[0]=e,t[1]=n);let r=n;return(0,a.useSyncExternalStore)(Q.subscribe,r,r)}function me(e){let t=(0,o.c)(2),n;t[0]===e?n=t[1]:(n=()=>Q.getThreadModel(e),t[0]=e,t[1]=n);let r=n;return(0,a.useSyncExternalStore)(Q.subscribe,r,r)}function he(e){let t=(0,o.c)(2),n;t[0]===e?n=t[1]:(n=()=>Q.getThreadUnread(e),t[0]=e,t[1]=n);let r=n;return(0,a.useSyncExternalStore)(Q.subscribe,r,r)}function ge(){return(0,a.useSyncExternalStore)(Q.subscribe,Q.getConnectionStatus,Q.getConnectionStatus)}function _e(e){if(e===null)return null;try{let t=new URL(e);return t.pathname=`/collab/thread`,t.search=``,t.toString()}catch{return null}}export{g as _,$ as a,ee as b,he as c,de as d,R as f,m as g,d as h,_e as i,pe as l,k as m,X as n,ge as o,D as p,ue as r,me as s,Z as t,fe as u,s as v,c as y};
|
package/dist/src-D2iK9raE.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./md-manager-BGnqyqi1-Bwg54lLG.mjs";import"./init-DLDxilxo.mjs";import"./registry-probes-CExYC4JQ.mjs";import"./src-CW_nJTbi.mjs";import"./start-BbiKYI_Y.mjs";import{n as e}from"./loader-0uPLVRGr.mjs";import"./preview-Bs9fHq-d.mjs";import"./cli.mjs";import"./repair-mcp-configs-B_953vzu.mjs";export{e as loadConfig};
|
package/dist/start-2RZWW7tN.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{S as e,m as t,p as n,r}from"./start-BbiKYI_Y.mjs";export{r as bootStartServer,n as resolveBundledReactShellDir,t as resolveHost,e as startCommand};
|
package/dist/start-BbiKYI_Y.mjs
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import{Fc as e,Fs as t,Hu as n,Md as r,No as i,Rs as a,_t as o,da as s}from"./md-manager-BGnqyqi1-Bwg54lLG.mjs";import{Ao as c,O as l,Oo as u,Ur as d,Vo as f,_i as p,ei as m,ii as h}from"./dist-CwMAFvDv.mjs";import{Ct as g,I as _,R as v,St as y,Y as b,b as x,lt as S,wt as C,y as w}from"./init-DLDxilxo.mjs";import{a as T,c as E,d as D,f as O,i as ee,n as k,o as A,p as j,r as M,s as N,t as te,u as P,v as F}from"./registry-probes-CExYC4JQ.mjs";import{n as ne}from"./constants-DKYqY2-e.mjs";import{execFileSync as I,spawn as L}from"node:child_process";import{basename as R,dirname as z,join as re,resolve as B}from"node:path";import{existsSync as V,realpathSync as ie}from"node:fs";import{homedir as ae,tmpdir as oe}from"node:os";import{rm as se}from"node:fs/promises";import{setTimeout as ce}from"node:timers/promises";const le=[`/opt/homebrew/bin/gh`,`/usr/local/bin/gh`,`/opt/local/bin/gh`,`/snap/bin/gh`,`/usr/bin/gh`],ue={encoding:`utf-8`,stdio:[`ignore`,`pipe`,`pipe`],timeout:5e3,windowsHide:!0};function H(e,t={}){let{login:n}=t,r=t._exec??I,i=U(t._fileExists??V),a=e?[`--hostname`,e]:[];if(n){let e=W(r,i,[`auth`,`token`,...a,`--user`,n]);if(e)return{available:!0,token:e,resolvedLogin:n,fallback:!1}}let o=W(r,i,[`auth`,`token`,...a]);return o?n?{available:!0,token:o,fallback:!0}:{available:!0,token:o}:{available:!1}}function U(e){return[`gh`,...le.filter(e)]}function W(e,t,n){for(let r of t)try{let t=e(r,n,ue).toString().trim();if(t.length>0)return t}catch{}}function de(e,t={}){let n=t._exec??I,r=U(t._fileExists??V),i=[`auth`,`status`,...e?[`--hostname`,e]:[]],a=W(n,r,[...i,`--json`,`hosts`]);if(a!==void 0){let t=fe(a,e);if(t)return t}let o=W(n,r,i);if(o!==void 0){let e=_e(o);if(e.length>0)return e}}function G(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:void 0}function fe(e,t){let n;try{n=JSON.parse(e)}catch{return}let r=G(G(n)?.hosts);if(!r||t!==void 0&&r[t]===void 0)return;let i=t===void 0?Object.values(r):[r[t]],a=[];for(let e of i){if(!Array.isArray(e))return;for(let t of e){let e=G(t);if(!e)continue;let n=e.login;typeof n==`string`&&n.length!==0&&a.push({login:n,active:e.active===!0})}}return a}const pe=/Logged in to \S+ account (\S+) \(/,me=/(?:Failed to log in to|Timeout trying to log in to) \S+/,he=/^\s*-\s*Active account:\s*true\s*$/,ge=/\u001b\[[0-9;]*m/g;function _e(e){let t=[],n;for(let r of e.split(`
|
|
2
|
-
`)){let e=r.replace(ge,``),i=pe.exec(e)?.[1];if(i){n={login:i,active:!1},t.push(n);continue}if(me.test(e)){n=void 0;continue}n&&he.test(e)&&(n.active=!0)}return t}const ve={mode:`published`,skipAvailabilityCheck:!0,replaceEntry:!0};function K(){return{action:`failed`,errorId:`write-failed`}}function q(){return{action:`skipped-missing`,errorId:`surface-missing`}}function J(e,t,n){f(`agent-integrations-apply`).warn({editor:e,path:t,reason:n},`skill write failed`)}function Y(){return{action:`skipped-unsupported`,errorId:`no-writer`}}function ye(e){switch(e){case`removed`:return{action:`removed`};case`not-present`:return{action:`no-op`};case`left-foreign`:return{action:`skipped-foreign`,errorId:`foreign-artifact`};case`declined`:return{action:`declined`,errorId:`write-declined`}}}function be(e,t,n,r,i){let a=b[e];try{let o=A(a,t,n,r,i);return o.kind===`removed`&&o.trustDetail&&f(`agent-integrations-apply`).warn({editor:e,path:r??a.configPath(t,n),trust:o.trust,trustDetail:o.trustDetail},`MCP config removal retained Pi folder trust`),ye(o.kind)}catch(i){return f(`agent-integrations-apply`).warn({editor:e,path:r??a.configPath(t,n),reason:i instanceof Error?i.message:String(i)},`MCP config removal failed`),K()}}async function xe(e,t,n){if(b[e].scope!==`global`)return q();if(n===`absent`)return be(e,``,t.home,void 0,t.env);let r=(await x({editors:[e],home:t.home,replaceEntry:!0})).find(t=>t.editorId===e);if(r===void 0)return K();switch(r.action){case`written`:case`overwritten`:return{action:r.action};case`declined`:return{action:`declined`,errorId:`write-declined`};case`skipped-missing`:return q();case`skipped-flag`:return Y();default:return K()}}function Se(e,t,n){let i=r[e];if(i===null)return q();let a=re(t.cwd,i);if(n===`absent`)return be(e,t.cwd,t.home,a,t.env);let o=w(b[e],t.cwd,ve,void 0,a);switch(o.action){case`written`:case`overwritten`:return{action:o.action};case`declined`:return{action:`declined`,errorId:`write-declined`};default:return K()}}function Ce(e,t,n){let r=t.home??ae();if(n===`absent`){let t=M(e,r);switch(t.action){case`removed`:return{action:`removed`};case`not-present`:return{action:`no-op`};case`skipped-unsupported`:return q();case`failed`:return J(e,t.path,t.error),K()}}let i=T(e,r);switch(i.action){case`written`:return{action:`written`};case`overwritten`:return{action:`overwritten`};case`skipped-unsupported`:return q();case`failed`:return J(e,i.path,i.error),K()}}function we(e,t,n){if(n===`absent`){let n=_(b[e],t.cwd);switch(n.action){case`removed`:return{action:`removed`};case`not-present`:return{action:`no-op`};case`skipped-unsupported`:return q();case`failed`:return J(e,n.path,n.error),K()}}let r=v(b[e],t.cwd);switch(r.action){case`written`:return{action:`written`};case`overwritten`:return{action:`overwritten`};case`skipped-unsupported`:return q();case`skipped-prerequisite`:return{action:`skipped-prerequisite`,errorId:`dependency-failed`};case`failed`:return J(e,r.path,r.error),K()}}function Te(e){return t=>{if(t.pathId===void 0)return Y();let r=n(t.pathId);if(r===null||r.kind===`central-skill-store`)return Y();switch(r.kind){case`editor-user-config`:return xe(r.editor,e,t.desired);case`editor-project-config`:return Se(r.editor,e,t.desired);case`editor-project-skill-root`:return we(r.editor,e,t.desired);case`editor-user-skill-root`:return Ce(r.editor,e,t.desired)}}}function Ee(e,t){return e.bind?.[0]??t.HOST??`127.0.0.1`}function De(e){if(e===`server`)return e;throw new g(`--only must be 'server'`)}function Oe(e=V){let t=import.meta.dirname??new URL(`.`,import.meta.url).pathname;return[B(t,`public`),B(t,`../../app/dist`),B(t,`../../../app/dist`)].find(t=>e(t))}function ke(e){if(e.explicitDir!==void 0)return{dir:e.explicitDir,missingBundle:!1};if(e.only===`server`)return{dir:void 0,missingBundle:!1};let t=e.findBundledDir();return{dir:t,missingBundle:t===void 0}}function Ae(t){if(t===`off`)return`off`;if(!e.test(t))throw new g(`--idle-shutdown must be 'off' or a duration like 90s, 30m, 2h`);return t}function je(e){return e===`localhost`||e===`::1`||e===`[::1]`||e.startsWith(`127.`)}function Me(e){return!e.flagBindSet&&!e.okBindSet&&e.hostEnvSet&&e.fileBindCount>1}function Ne(e){return!e.openBrowser||e.ephemeral||e.only===`server`||!e.servesUi?!1:(e.explicitOn||je(e.host))&&e.isTTY}function Pe(e,t){let n;try{n=new URL(t)}catch{throw new g(`${e} is not a valid URL: ${t}`)}if(n.protocol!==`http:`&&n.protocol!==`https:`)throw new g(`${e} must be an http(s) origin (got: ${t})`);return t}function Fe(e){return Pe(`--external-url`,e)}function Ie(e){let t=R(e).replace(/[^\x20-\x7E]/g,``).trim().slice(0,64);return`open-knowledge-server ${t.length>0?t:`unknown`}`}var X=class extends Error{cwd;constructor(e){super("This directory isn't set up yet. Run `ok init` first, then `ok start` again."),this.name=`OkDirMissingError`,this.cwd=e}},Z=class extends Error{projectDir;constructor(e){super(`--project-dir must be a throwaway ${l}* directory under the OS temp dir. Refusing to write ephemeral session state into ${e}. Omit --project-dir to let ok start create (and clean up) its own.`),this.name=`EphemeralProjectDirNotThrowawayError`,this.projectDir=e}};function Q(e,t={}){let n=t.tmpdirFn??oe,r=t.realpathFn??ie,i=e=>{try{return r(e)}catch(t){return t.code===`ENOENT`?B(e):null}},a=B(e),o;try{o=r(a)}catch(e){if(e.code===`ENOENT`){let e=i(z(a));o=e===null?null:B(e,R(a))}else o=null}if(o===null)return!1;let s=i(n());return s!==null&&z(o)===s&&R(o).startsWith(`ok-ephemeral-`)}function Le(e,t,n=e=>se(e,{recursive:!0,force:!0})){return async()=>{try{await e()}finally{if(Q(t))try{await n(t)}catch(e){process.stderr.write(`[start] ephemeral temp dir reap failed for ${t}: ${e instanceof Error?e.message:String(e)}\n`)}else process.stderr.write(`[start] leaving ${t} in place: only ${l}* dirs under the OS temp dir are removed on ephemeral teardown\n`)}}}function $(e,t={}){let n=t.exit??(e=>process.exit(e)),r=t.getActiveHandles??(()=>{let e=process._getActiveHandles;return e?e.call(process):null});return async()=>{let i=!1;try{await e()}catch(e){i=!0,t.log?.error({err:e},`idle-shutdown: destroy failed — exiting anyway`)}finally{let e=null;try{let t=r();if(t!==null){e={};for(let n of t){let t=n?.constructor?.name??`unknown`;e[t]=(e[t]??0)+1}}}catch{e=null}t.log?.info({event:`idle-shutdown-exit`,exitCode:+!!i,openHandles:e??{},handlesAvailable:e!==null},`idle-shutdown: teardown finished — exiting process`),n(+!!i)}}}async function Re(e){let{config:t,cwd:n,host:r}=e,i=e.skipAutoInit??!1,a=e.idleThresholdMs===void 0?18e5:e.idleThresholdMs,{existsSync:o,mkdirSync:s}=await import(`node:fs`),{basename:c,dirname:l,resolve:u}=await import(`node:path`),{bootServer:f,createEphemeralProjectDir:m,getLogger:g,resolveContentDir:_,resolveLockDir:v,seedEphemeralProjectDir:y,waitForServerLockDrain:b}=await import(`./dist-Cv5tSkiZ.mjs`),x=e.log??g(`start`),C=e.singleFile!==void 0,w=C?p(e.singleFile).canonicalFilePath:void 0,T=w?l(w):void 0,D=w?c(w):void 0,O,A=!1;if(T!==void 0){if(e.projectDir!==void 0){if(O=e.projectDir,!Q(O))throw new Z(O);o(u(O,`.ok`,`config.yml`))||y(O,T)}else O=m(T),A=!0}let j=async()=>{if(!(!A||O===void 0)){if(!Q(O)){x.warn({ephemeralProjectDir:O},`[start] refusing to reap self-provisioned ephemeral dir: no longer resolves to an ok-ephemeral-* temp dir`);return}try{await se(O,{recursive:!0,force:!0})}catch(e){x.warn({err:e,ephemeralProjectDir:O},`[start] failed to reap self-provisioned ephemeral temp dir`)}}},M=O;if(!C){if(!i&&!d(n))throw new X(n);let t=process.env.OK_RECLAIM_DISABLE??null,r=e=>{e.severity===`info`?x.debug({event:e},`[start] reclaim sweep event`):x.warn({event:e},`[start] reclaim sweep reported a problem`)};try{let i=(e.repairMcpConfigsFn??(await import(`./repair-mcp-configs-B_953vzu.mjs`)).repairMcpConfigs)({projectDir:n,reclaimDisableEnv:t,logger:r}).outcomes.filter(e=>e.outcome!==`no-entry`&&e.outcome!==`canonical`&&e.outcome!==`repaired`&&e.outcome!==`foreign`);i.length>0&&x.warn({unhealed:i},`[start] reclaim sweep left entries it could not heal`)}catch(e){x.warn({err:e},`[start] mcp-config repair sweep failed; continuing`)}try{(e.repairLaunchJsonFn??(await import(`./repair-launch-json-q0aPdNfe.mjs`)).repairLaunchJson)({projectDir:n,reclaimDisableEnv:t,logger:r})}catch(e){x.warn({err:e},`[start] launch.json repair sweep failed; continuing`)}}let P=T??_(t,n);!C&&!o(P)&&(s(P,{recursive:!0}),x.info({contentDir:P},`Created content directory`));let ne=F(),I=h(),L;try{{let e=v(O??n),t=Date.now(),r=await b(e);r!==`no-drain`&&x.info({event:`start-waited-for-draining-predecessor`,outcome:r,waitedMs:Date.now()-t,drainLockDir:e},r===`released`?`[start] predecessor server finished draining — proceeding`:`[start] predecessor server still draining after wait — proceeding to collide`)}L=await f({config:t,contentDir:P,projectDir:O??n,contentRoot:C?void 0:t.content.dir,port:e.port,host:r,quiet:!1,detectGh:H,detectGhAccounts:de,tokenStore:ne,embeddingsKeyStore:I,mcpTomlEditor:S(),...C?{ephemeral:!0,singleDocRelPath:D,gitEnabled:!1,gitPreflight:()=>({ok:!0,version:`0.0.0`,resolvedPath:`git`,source:`PATH`})}:{},localOpCliArgs:[process.execPath,process.argv[1]],probeHarnessManagedMcpEntry:(e,t)=>k(e,t),probePiAcpBridge:e=>E(e),ensurePiAcpBridge:(e,t)=>N(e,void 0,void 0,void 0,t),agentIntegrations:(()=>{let e={cwd:O??n,home:ae(),env:process.env};return{probe:te(e),execute:Te(e),userSkillPresentAnywhere:ee}})(),idleShutdownMs:a,...e.serverRuntime===void 0?{}:{serverRuntime:e.serverRuntime},...e.bind===void 0?{}:{bind:e.bind},skipAutoInit:!0,idleShutdownHandler:t=>{let n=t;return $(M===void 0?n:Le(n,M),{log:x,exit:e.idleExit})},log:x,...e.serveContentAssets===void 0?{}:{serveContentAssets:e.serveContentAssets},...e.reactShellDistDir?{reactShellDistDir:e.reactShellDistDir}:{}})}catch(e){throw await j(),e}let R=L.destroy,z=A?async()=>{try{await R()}finally{await j()}}:R;return{httpServer:L.httpServer,destroy:z,lockDir:L.lockDir,contentDir:P,port:L.port,ready:L.ready,degraded:L.degraded}}function ze(e,t,n=()=>u({absPath:c(`user`,process.cwd()),sideline:!1,warn:()=>{}}).value){return t===void 0?e:n()}function Be(e){if(e===`browser`||e===`app`)return e;throw new g(`--mode must be 'browser' or 'app'`)}function Ve(e){return e.OK_CONSOLE_LEVEL!==void 0||e.LOG_LEVEL!==void 0?null:`warn`}function He(e){let t=[`Stopping OpenKnowledge…`,`Saving pending changes and releasing the server lock — this can take a few seconds.`];return e===`SIGINT`&&t.push(`Press Ctrl+C again to force quit.`),t}async function Ue(e,n){let r=ze(e,n.singleFile),c=Ve(process.env);c!==null&&(process.env.OK_CONSOLE_LEVEL=c);let{renderBanner:l}=await import(`./banner-kywHhVaC.mjs`),{accent:u,dim:d,error:f,warning:p}=await import(`./colors-SgU3JHQu.mjs`),m=process.cwd();process.title=Ie(m);let h;try{h=t(process.env)}catch(e){throw e instanceof o&&(console.error(f(e.message)),process.exit(78)),e}for(let e of h.diagnostics)console.warn(p(`[config] ${e.message}`));let g=s(r,h.layer),_=h.overrides.some(e=>e.envVar===`OK_BIND`),v=n.bind!==void 0&&n.bind.length>0?n.bind:void 0,y=process.env.HOST,b=y!==void 0&&y.trim()!==``?y:void 0,x=a(g),S=v??(_||b===void 0?[...x.bind]:[b]);Me({flagBindSet:v!==void 0,okBindSet:_,hostEnvSet:b!==void 0,fileBindCount:x.bind.length})&&console.warn(p(`[config] HOST=${b} overrides server.bind — dropping the file-configured addresses (${x.bind.join(`, `)}). Use OK_BIND with a space-separated list to keep multiple binds.`));let C=S[0]??`127.0.0.1`,w=S,T=n.externalUrl,E=a(s(g,{server:{bind:w,...T===void 0?{}:{externalUrl:T}}}));if(E.allowExternal&&(!E.loopbackOnly||E.externalUrl)){let e=E.externalUrl??E.bind.join(`, `);console.warn(p([``,`⚠ EXTERNAL ACCESS ENABLED (server.allowExternal) — no server-side authentication.`,` This server is reachable beyond this machine (${e}). Anyone who can`,` reach it has FULL control of this knowledge base — sync, publishing, GitHub`,` credentials, and local operations (clone, sign-in, repo spawn).`,` Restrict who can reach it at the edge: a Tailscale ACL, a reverse proxy with`,` auth (Cloudflare Access, oauth2-proxy), or a firewall.`,``].join(`
|
|
3
|
-
`)))}let D=n.port===void 0?void 0:Number(n.port),O=h.overrides.find(e=>e.envVar===`PORT`)?.value,ee=D??O??r.server?.port,k=ke({explicitDir:n.reactShellDistDir,only:n.only,findBundledDir:Oe}),A=k.dir;k.missingBundle&&console.warn(`bundled web UI not found — serving /api and /mcp only. Reinstall @inkeep/open-knowledge, or build packages/app in a source checkout.`);let j;try{j=await Re({config:r,cwd:m,host:C,port:ee,bind:w,...n.serveContentAssets===void 0?{}:{serveContentAssets:n.serveContentAssets},...A?{reactShellDistDir:A}:{},idleThresholdMs:i(n.idleShutdown??E.idleShutdown),serverRuntime:E,...n.singleFile?{singleFile:n.singleFile}:{},...n.projectDir?{projectDir:n.projectDir}:{}})}catch(e){e instanceof X&&(console.error(f(e.message)),process.exit(1)),e instanceof Z&&(console.error(f(e.message)),process.exit(1));let t=await import(`./dist-Cv5tSkiZ.mjs`);if((e instanceof t.GitNotAvailableError||e instanceof t.GitTooOldError)&&process.exit(78),e instanceof t.ExposureConsentError&&(console.error(f(e.message)),process.exit(78)),(e instanceof t.SingleFileNotFoundError||e instanceof t.SingleFileNotAFileError||e instanceof t.SingleFileNotMarkdownError)&&(console.error(f(e.message)),process.exit(1)),(e instanceof t.MissingOkConfigError||e instanceof t.DocumentDurabilityStateError)&&(console.error(f(e.message)),process.exit(1)),Ke(e,t)){let e=t.resolveLockDir(m),n=null;try{n=await We({readServerLock:()=>t.readServerLock(e),now:Date.now,sleep:e=>ce(e),timeoutMs:3e3,pollIntervalMs:50})}catch(e){process.stderr.write(`[start] spawn-or-reuse: lock poll failed (${e instanceof Error?e.message:String(e)}) — falling back to the collision message\n`)}if(n!==null){let[e,...t]=Ge(n);console.log(u(e));for(let e of t)console.log(d(e));process.exit(0)}}let n=qe(e,m,t);n!==null&&(console.error(f(n)),process.exit(1)),console.error(`${f(`Failed to start:`)} ${e instanceof Error?e.stack??e.message:String(e)}`),process.exit(1)}let M=!1,N=async e=>{if(M)return;M=!0;let[t,...n]=He(e);console.log(u(`\n${t}`));for(let e of n)console.log(d(` ${e}`));try{await j.destroy(`external-signal`)}catch(e){console.error(`${f(`destroy() failed:`)} ${e instanceof Error?e.stack??e.message:String(e)}`),process.exitCode=1}process.exit(process.exitCode??0)};process.once(`SIGINT`,()=>{N(`SIGINT`)}),process.once(`SIGTERM`,()=>{N(`SIGTERM`)});let te=`http://${C.includes(`:`)&&!C.startsWith(`[`)?`[${C}]`:C}:${j.port}`,P=C===`0.0.0.0`||C===`::`?`http://0.0.0.0:${j.port}`:void 0,F=te;console.log(l({name:`open-knowledge`,version:ne,localUrl:F,networkUrl:P,nextSteps:[`Open the Editor URL in your browser to start editing.`]}));let I={"shadow-repo":`Version history and branch-switch safety unavailable`,"file-watcher":`External file changes will not sync to the editor`,"head-watcher":`Git branch switches may cause document inconsistency`};j.ready.then(async()=>{if(j.degraded.length>0){console.log();for(let e of j.degraded){let t=I[e]??`${e} (check server logs for details)`;console.warn(` ${p(`⚠`)} ${p(e)}: ${d(t)}`)}console.log()}if(Ne({openBrowser:n.openBrowser!==!1&&E.openBrowser,explicitOn:n.openBrowser!==!1&&g.server?.openBrowser===!0,host:C,isTTY:process.stdout.isTTY===!0,ephemeral:n.singleFile!==void 0,only:n.only,servesUi:A!==void 0})){let{openBrowser:e}=await import(`./open-browser-BhyyMblU.mjs`);e(F)}}).catch(e=>{console.error(` ${f(`Server initialization failed:`)} ${e instanceof Error?e.message:String(e)}`)})}async function We(e){let t=e.now()+e.timeoutMs,n=e.readServerLock();for(;n!==null&&n.draining!==!0&&n.port<=0&&e.now()<t;)await e.sleep(e.pollIntervalMs),n=e.readServerLock();return n===null||n.draining===!0||n.port<=0?null:m(n)&&n.url!==void 0?{url:n.url,kind:n.kind,pid:n.pid,servesUi:!0}:{url:n.url??`http://127.0.0.1:${n.port}`,kind:n.kind,pid:n.pid,servesUi:!1}}function Ge(e){return[`${e.kind===`mcp-spawned`?`An MCP-spawned OpenKnowledge server is already running on this project`:`OpenKnowledge is already running on this project`} (pid ${e.pid}).`,` ${e.url}`,"Leaving it running — run `ok stop` first if you want a fresh server."]}function Ke(e,t){let n=t.ServerLockCollisionError;return n!==void 0&&e instanceof n}function qe(e,t,n){let r=n.ServerLockCollisionError;if(r===void 0||!(e instanceof r))return null;try{let e=n.readServerLock(n.resolveLockDir(t));return e&&e.kind===`mcp-spawned`?"An MCP-spawned server holds this lock; it should release on idle-shutdown (~30 min). Or run `ok stop`.":"OpenKnowledge server is already running on this project — check `ok status` or `ok stop`."}catch{return null}}function Je(e){return new y(`start`).description(`Start the OpenKnowledge server (UI + API + MCP + collab on one port)`).option(`-p, --port <port>`,`Server port`,void 0).option(`--bind <address>`,`Bind address (repeatable; default 127.0.0.1 — loopback only)`,(e,t)=>[...t??[],e]).option(`--no-open-browser`,`Do not open the browser after start (interactive loopback starts open it by default)`).option(`--only <module>`,`Serve one module: 'server' (API + MCP only, no shell or browser)`,De).option(`--idle-shutdown <duration>`,`Shut the server down after this long with no connected clients ('off', or a duration like 90s, 30m, 2h; default 30m)`,Ae).option(`--mode <mode>`,`Force dispatch mode: 'browser' or 'app'`,Be).option(`--serve-content-assets`,`Serve content assets from this server (now the default; kept for compatibility)`).option(`--react-shell-dist-dir <path>`,`Serve React shell from <path>`).addOption(new C(`--single-file <path>`,`No-project ephemeral single-file mode: scope the server to one markdown file (git + MCP off)`).hideHelp()).addOption(new C(`--project-dir <dir>`,`Throwaway project root for --single-file (where ephemeral .ok/ state lives)`).hideHelp()).option(`--external-url <url>`,`Canonical external origin clients dial (sets server.externalUrl for this run) — its host joins the Host/Origin allowlists (CORS + external-Host admission). External exposure additionally requires consent (OK_ALLOW_EXTERNAL=1 or server.allowExternal).`,Fe).action(async t=>{let n=e();if(t.only===`server`&&t.reactShellDistDir!==void 0&&(process.stderr.write(`error: option '--only server' cannot be combined with '--react-shell-dist-dir'
|
|
4
|
-
`),process.exit(2)),t.projectDir!==void 0&&t.singleFile===void 0&&(process.stderr.write(`error: option '--project-dir' requires '--single-file'
|
|
5
|
-
`),process.exit(2)),t.mode===`app`){let e=[];if(t.port!==void 0&&e.push(`--port`),t.bind!==void 0&&e.push(`--bind`),t.only!==void 0&&e.push(`--only`),t.idleShutdown!==void 0&&e.push(`--idle-shutdown`),t.openBrowser===!1&&e.push(`--no-open-browser`),t.externalUrl!==void 0&&e.push(`--external-url`),e.length>0){let t=process.env.OK_LOG_LEVEL??`info`;(t===`debug`||t===`trace`)&&console.error(`--mode=app: ignoring ${e.join(`, `)}`)}let n=D(P());if(n.available){O({spawn:L},n);return}console.error(j(n.reason)),process.exit(1)}await Ue(n,t)})}export{qe as C,de as D,H as E,Je as S,$ as T,Ve as _,Ge as a,Ne as b,Q as c,Ae as d,De as f,ze as g,We as h,Ie as i,Ke as l,Ee as m,X as n,He as o,Oe as p,Re as r,je as s,Z as t,Fe as u,ke as v,Le as w,Me as x,Ue as y};
|