@inkeep/open-knowledge 0.63.0-beta.0 → 0.63.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/{acp-harness-probe-BLxtOeJP.mjs → acp-harness-probe-BeVA4QCv.mjs} +2 -2
- package/dist/cli.mjs +6 -6
- package/dist/constants-CEGzcEPZ.mjs +2 -0
- package/dist/index.d.mts +17 -17
- package/dist/index.mjs +1 -1
- package/dist/{init-CFBWWVL6.mjs → init-BL11-Hop.mjs} +3 -3
- package/dist/init-BTzcYdGV.mjs +1 -0
- package/dist/{launch-json-removal-BiR8TkdA.mjs → launch-json-removal-CNUQzFC3.mjs} +2 -2
- package/dist/loader-CrYIrZtG.mjs +1 -0
- package/dist/{loader-BTqWazXb.mjs → loader-DNOkatxt.mjs} +2 -2
- package/dist/preview-CzyYnG5S.mjs +1 -0
- package/dist/{preview-bcFQvR8X.mjs → preview-Dtusj3WX.mjs} +2 -2
- package/dist/public/assets/{ActivityModeContent-DKNTU3xF.js → ActivityModeContent-BJkv-wtf.js} +1 -1
- package/dist/public/assets/{AddPropertiesButton-DqpU3aSu.js → AddPropertiesButton-DZrj-WbN.js} +1 -1
- package/dist/public/assets/{AgentDiffPane-9yWEGSlA.js → AgentDiffPane-DdTUH5Iy.js} +1 -1
- package/dist/public/assets/{CodeMirrorPropInput-BkPz1S4U.js → CodeMirrorPropInput-BQbWlwTu.js} +1 -1
- package/dist/public/assets/DocumentContext-DQusF2ho.js +38 -0
- package/dist/public/assets/{ExcalidrawDocEditor-DBz9XgPR.js → ExcalidrawDocEditor-DJV8Vr7i.js} +1 -1
- package/dist/public/assets/FeedbackForm-CzfpNEYX.js +1 -0
- package/dist/public/assets/{ImportSkillDialog-DoECJCyD.js → ImportSkillDialog-BhUc9wrT.js} +1 -1
- package/dist/public/assets/{ManagedArtifactProperties-gZ33ParZ.js → ManagedArtifactProperties-DeJMraIa.js} +1 -1
- package/dist/public/assets/ManagedArtifactProperties-ToX26_H8.js +1 -0
- package/dist/public/assets/{MermaidDocEditor-BLuA0Zbi.js → MermaidDocEditor-CLd3gDFx.js} +1 -1
- package/dist/public/assets/{PropertyDisplayRow-CQC5Z0n6.js → PropertyDisplayRow-BqNNqtQq.js} +1 -1
- package/dist/public/assets/{SessionsHost-zVHqq9cr.js → SessionsHost-C0KNjtqL.js} +2 -2
- package/dist/public/assets/{SettingsDialogBody-CHR0gEF6.js → SettingsDialogBody-eG4WwStf.js} +1 -1
- package/dist/public/assets/{SkillInstallMenu-B06AbDvI.js → SkillInstallMenu-CK7w8oqi.js} +1 -1
- package/dist/public/assets/{SkillToolbarControls-D53zgCnN.js → SkillToolbarControls-mIxMbZvN.js} +1 -1
- package/dist/public/assets/{SourceEditor--mA47noe.js → SourceEditor-D61sV5zD.js} +1 -1
- package/dist/public/assets/{TerminalWindowApp-DuCRqNRC.js → TerminalWindowApp-8SJJG0FH.js} +1 -1
- package/dist/public/assets/{TextDocEditor-Bll9nONn.js → TextDocEditor-YEyv9FD3.js} +1 -1
- package/dist/public/assets/{ThreadView-CZ-jRmGS.js → ThreadView-DusalK06.js} +1 -1
- package/dist/public/assets/{TimelineDiffPane-BQAeLDdZ.js → TimelineDiffPane-CuowvgxZ.js} +1 -1
- package/dist/public/assets/{agent-diff-store-BqTBnCD3.js → agent-diff-store-B3q363Zs.js} +1 -1
- package/dist/public/assets/{auth-state-cache-CFoMX9IK.js → auth-state-cache-Cy2yuigh.js} +1 -1
- package/dist/public/assets/{comment-chips-vycRkjQG.js → comment-chips-B11UWYP_.js} +1 -1
- package/dist/public/assets/index-D1NhpG7M.js +2196 -0
- package/dist/public/assets/progress-Bsmo7TE1.js +9 -0
- package/dist/public/assets/{selection-context-C2jhGMgO.js → selection-context-Bjtq9RIN.js} +1 -1
- package/dist/public/assets/{src-COmrouI5.js → src-M-32C9_n.js} +1 -1
- package/dist/public/assets/{typing-burst-detector-D8opQPVA.js → typing-burst-detector-B2N-OjvB.js} +3 -3
- package/dist/public/assets/use-activity-panel-DDPT7XZw.js +1 -0
- package/dist/public/assets/{use-open-skill-DggswBlG.js → use-open-skill-BfEbXDC8.js} +1 -1
- package/dist/public/assets/{use-timeline-entry-diff-CDYxwT8Z.js → use-timeline-entry-diff-Bj-dtOq4.js} +2 -2
- package/dist/public/index.html +14 -14
- package/dist/{repair-launch-json-DAAbCvvm.mjs → repair-launch-json-CqCRoktk.mjs} +2 -2
- package/dist/{repair-mcp-configs-BN-aQmcz.mjs → repair-mcp-configs-B_aiRtDB.mjs} +2 -2
- package/dist/src-Cx0Dzeiy.mjs +1 -0
- package/dist/{src-DYGvbcXO.mjs → src-D2HreckB.mjs} +2 -2
- package/dist/{start-CXzNBszs.mjs → start-BFK9ARf5.mjs} +2 -2
- package/dist/start-CA4bN-GR.mjs +1 -0
- package/package.json +5 -5
- package/dist/constants-CXrNCX02.mjs +0 -2
- package/dist/init-B-JC6toB.mjs +0 -1
- package/dist/loader-CpTJ3qxR.mjs +0 -1
- package/dist/preview-D6sAAZcw.mjs +0 -1
- package/dist/public/assets/DocumentContext-uEkPWsfu.js +0 -38
- package/dist/public/assets/FeedbackForm-jEEgxvE6.js +0 -1
- package/dist/public/assets/ManagedArtifactProperties-BPM5-upl.js +0 -1
- package/dist/public/assets/index-uWwSanPO.js +0 -2196
- package/dist/public/assets/progress-Cfh7jhIR.js +0 -9
- package/dist/public/assets/use-activity-panel-Cob7wbER.js +0 -1
- package/dist/src-CEwAgAUS.mjs +0 -1
- package/dist/start-DCYQqoBl.mjs +0 -1
package/dist/public/index.html
CHANGED
|
@@ -94,7 +94,7 @@
|
|
|
94
94
|
-->
|
|
95
95
|
<script>(() => { try { const raw = localStorage.getItem('ok-language-v1'); if (!raw) return; const o = JSON.parse(raw); if (typeof o?.locale !== 'string' || !/^[a-zA-Z]{2,8}(-[a-zA-Z0-9]{2,8})*$/.test(o.locale)) return; document.documentElement.lang = o.locale; document.documentElement.dir = o.dir === 'rtl' ? 'rtl' : 'ltr'; } catch {} })();</script>
|
|
96
96
|
<style>html { background-color: #fafafa } html.dark { background-color: #171717 }</style>
|
|
97
|
-
<script type="module" crossorigin src="./assets/index-
|
|
97
|
+
<script type="module" crossorigin src="./assets/index-D1NhpG7M.js"></script>
|
|
98
98
|
<link rel="modulepreload" crossorigin href="./assets/chunk-CYidjpOJ.js">
|
|
99
99
|
<link rel="modulepreload" crossorigin href="./assets/react-f2sANaYj.js">
|
|
100
100
|
<link rel="modulepreload" crossorigin href="./assets/react-dom-DPxgxlDT.js">
|
|
@@ -178,7 +178,7 @@
|
|
|
178
178
|
<link rel="modulepreload" crossorigin href="./assets/external-link-DGqXfQJy.js">
|
|
179
179
|
<link rel="modulepreload" crossorigin href="./assets/documents-fetch-Bw4lKnRN.js">
|
|
180
180
|
<link rel="modulepreload" crossorigin href="./assets/note-window-mode-J_lykVfh.js">
|
|
181
|
-
<link rel="modulepreload" crossorigin href="./assets/CodeMirrorPropInput-
|
|
181
|
+
<link rel="modulepreload" crossorigin href="./assets/CodeMirrorPropInput-BQbWlwTu.js">
|
|
182
182
|
<link rel="modulepreload" crossorigin href="./assets/git-branch-BEl3Boky.js">
|
|
183
183
|
<link rel="modulepreload" crossorigin href="./assets/triangle-alert-CJVfCxE0.js">
|
|
184
184
|
<link rel="modulepreload" crossorigin href="./assets/Mermaid-NYQ6RsUB.js">
|
|
@@ -201,34 +201,34 @@
|
|
|
201
201
|
<link rel="modulepreload" crossorigin href="./assets/use-collab-url-CLES09HL.js">
|
|
202
202
|
<link rel="modulepreload" crossorigin href="./assets/skills-api-Bk-f3oIn.js">
|
|
203
203
|
<link rel="modulepreload" crossorigin href="./assets/skill-scope-CSgNqFEM.js">
|
|
204
|
-
<link rel="modulepreload" crossorigin href="./assets/DocumentContext-
|
|
204
|
+
<link rel="modulepreload" crossorigin href="./assets/DocumentContext-DQusF2ho.js">
|
|
205
205
|
<link rel="modulepreload" crossorigin href="./assets/workspace-paths-CD0W1etA.js">
|
|
206
|
-
<link rel="modulepreload" crossorigin href="./assets/progress-
|
|
206
|
+
<link rel="modulepreload" crossorigin href="./assets/progress-Bsmo7TE1.js">
|
|
207
207
|
<link rel="modulepreload" crossorigin href="./assets/radio-group-BsZGGl8l.js">
|
|
208
208
|
<link rel="modulepreload" crossorigin href="./assets/toggle-group-BlEg4yJE.js">
|
|
209
209
|
<link rel="modulepreload" crossorigin href="./assets/useQuery-ZeEDLtxh.js">
|
|
210
210
|
<link rel="modulepreload" crossorigin href="./assets/format-CyaLi0or.js">
|
|
211
211
|
<link rel="modulepreload" crossorigin href="./assets/braces-okUwnkYm.js">
|
|
212
|
-
<link rel="modulepreload" crossorigin href="./assets/PropertyDisplayRow-
|
|
212
|
+
<link rel="modulepreload" crossorigin href="./assets/PropertyDisplayRow-BqNNqtQq.js">
|
|
213
213
|
<link rel="modulepreload" crossorigin href="./assets/folder-config-api-CCs-JTL1.js">
|
|
214
|
-
<link rel="modulepreload" crossorigin href="./assets/comment-chips-
|
|
214
|
+
<link rel="modulepreload" crossorigin href="./assets/comment-chips-B11UWYP_.js">
|
|
215
215
|
<link rel="modulepreload" crossorigin href="./assets/SkillCostValue-_Y5l2XwJ.js">
|
|
216
216
|
<link rel="modulepreload" crossorigin href="./assets/textarea-BoMa_3jF.js">
|
|
217
|
-
<link rel="modulepreload" crossorigin href="./assets/selection-context-
|
|
217
|
+
<link rel="modulepreload" crossorigin href="./assets/selection-context-Bjtq9RIN.js">
|
|
218
218
|
<link rel="modulepreload" crossorigin href="./assets/lint-config-client-sUKnaDfE.js">
|
|
219
219
|
<link rel="modulepreload" crossorigin href="./assets/use-skills-X0D5g-_u.js">
|
|
220
|
-
<link rel="modulepreload" crossorigin href="./assets/ManagedArtifactProperties-
|
|
220
|
+
<link rel="modulepreload" crossorigin href="./assets/ManagedArtifactProperties-DeJMraIa.js">
|
|
221
221
|
<link rel="modulepreload" crossorigin href="./assets/EnableSyncConfirmDialog-BI3oSfND.js">
|
|
222
222
|
<link rel="modulepreload" crossorigin href="./assets/arrow-up-right-CXMA4cr5.js">
|
|
223
223
|
<link rel="modulepreload" crossorigin href="./assets/RegisteredAgentIcon-D_jDwJpu.js">
|
|
224
|
-
<link rel="modulepreload" crossorigin href="./assets/use-open-skill-
|
|
224
|
+
<link rel="modulepreload" crossorigin href="./assets/use-open-skill-BfEbXDC8.js">
|
|
225
225
|
<link rel="modulepreload" crossorigin href="./assets/mascot-outline-CtS592mc.js">
|
|
226
|
-
<link rel="modulepreload" crossorigin href="./assets/SkillInstallMenu-
|
|
226
|
+
<link rel="modulepreload" crossorigin href="./assets/SkillInstallMenu-CK7w8oqi.js">
|
|
227
227
|
<link rel="modulepreload" crossorigin href="./assets/list-plus-1_iMFVqs.js">
|
|
228
228
|
<link rel="modulepreload" crossorigin href="./assets/use-settings-route-1RDLdzh1.js">
|
|
229
229
|
<link rel="modulepreload" crossorigin href="./assets/platform-labels-CTgi7sF6.js">
|
|
230
230
|
<link rel="modulepreload" crossorigin href="./assets/use-workspace-BuKQ4WE6.js">
|
|
231
|
-
<link rel="modulepreload" crossorigin href="./assets/AddPropertiesButton-
|
|
231
|
+
<link rel="modulepreload" crossorigin href="./assets/AddPropertiesButton-DZrj-WbN.js">
|
|
232
232
|
<link rel="modulepreload" crossorigin href="./assets/case-sensitive-B9mhUnHr.js">
|
|
233
233
|
<link rel="modulepreload" crossorigin href="./assets/chevron-left-B1wYSm9K.js">
|
|
234
234
|
<link rel="modulepreload" crossorigin href="./assets/lint-plugin-meta-C15NfeTq.js">
|
|
@@ -236,10 +236,10 @@
|
|
|
236
236
|
<link rel="modulepreload" crossorigin href="./assets/wrench-JX3g_hHJ.js">
|
|
237
237
|
<link rel="modulepreload" crossorigin href="./assets/panel-DNPki55m.js">
|
|
238
238
|
<link rel="modulepreload" crossorigin href="./assets/skeleton-BZIHOzZH.js">
|
|
239
|
-
<link rel="modulepreload" crossorigin href="./assets/typing-burst-detector-
|
|
239
|
+
<link rel="modulepreload" crossorigin href="./assets/typing-burst-detector-B2N-OjvB.js">
|
|
240
240
|
<link rel="modulepreload" crossorigin href="./assets/download-Bdmlj4Jo.js">
|
|
241
241
|
<link rel="modulepreload" crossorigin href="./assets/field-CtUgODi9.js">
|
|
242
|
-
<link rel="modulepreload" crossorigin href="./assets/auth-state-cache-
|
|
242
|
+
<link rel="modulepreload" crossorigin href="./assets/auth-state-cache-Cy2yuigh.js">
|
|
243
243
|
<link rel="modulepreload" crossorigin href="./assets/miss-dialog-store-CdkrAlK3.js">
|
|
244
244
|
<link rel="modulepreload" crossorigin href="./assets/pending-receive-nav-store-DY4RHmGg.js">
|
|
245
245
|
<link rel="modulepreload" crossorigin href="./assets/target-navigation-intent-B6pF65mo.js">
|
|
@@ -260,7 +260,7 @@
|
|
|
260
260
|
<link rel="modulepreload" crossorigin href="./assets/app-menubar-gate-q1nJIutw.js">
|
|
261
261
|
<link rel="modulepreload" crossorigin href="./assets/file-tree-adapter-QHHr7v_y.js">
|
|
262
262
|
<link rel="modulepreload" crossorigin href="./assets/terminal-command-events-CaYhHIDg.js">
|
|
263
|
-
<link rel="modulepreload" crossorigin href="./assets/agent-diff-store-
|
|
263
|
+
<link rel="modulepreload" crossorigin href="./assets/agent-diff-store-B3q363Zs.js">
|
|
264
264
|
<link rel="modulepreload" crossorigin href="./assets/use-live-xterm-theme-BeGlZWUx.js">
|
|
265
265
|
<link rel="modulepreload" crossorigin href="./assets/input-group-BG4x9Co0.js">
|
|
266
266
|
<link rel="modulepreload" crossorigin href="./assets/use-installed-clis-t29XGX_x.js">
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{t as e}from"./launch-json-removal-
|
|
2
|
-
//# sourceMappingURL=repair-launch-json-
|
|
1
|
+
import{t as e}from"./launch-json-removal-CNUQzFC3.mjs";import{join as t}from"node:path";function n(n){let i=n.logger??r,a=t(n.projectDir,`.claude`,`launch.json`);if(n.reclaimDisableEnv===`1`)return i({event:`launch-json-repair-skipped`,reason:`reclaim-disabled`}),{outcome:{configPath:a,outcome:`skipped-reclaim-disabled`},repairedCount:0};let o;try{o=e(n.projectDir)}catch(e){let t=e instanceof Error?e.message:String(e);return i({event:`launch-json-repair-write-failed`,configPath:a}),{outcome:{configPath:a,outcome:`write-failed`,error:t},repairedCount:0}}let s=o.kind===`removed`;return s&&i({event:`launch-json-repair-removed`,configPath:a}),{outcome:{configPath:a,outcome:o.kind},repairedCount:+!!s}}function r(e){process.stderr.write(`${JSON.stringify(e)}\n`)}export{n as repairLaunchJson};
|
|
2
|
+
//# sourceMappingURL=repair-launch-json-CqCRoktk.mjs.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Cs as e}from"./src-BOzh5nAU.mjs";import{a as t,m as n,s as r}from"./resolve-project-root-Bc1ADd86.mjs";import{d as i,v as a}from"./init-
|
|
2
|
-
//# sourceMappingURL=repair-mcp-configs-
|
|
1
|
+
import{Cs as e}from"./src-BOzh5nAU.mjs";import{a as t,m as n,s as r}from"./resolve-project-root-Bc1ADd86.mjs";import{d as i,v as a}from"./init-BL11-Hop.mjs";import{t as o}from"./mcp-migrate-event-9DFnNzHa.mjs";import{homedir as s}from"node:os";function c(e){let n=e.logger??d,i=e.home??s(),a=[];if(e.reclaimDisableEnv===`1`)return n({event:`mcp-config-repair-skipped`,reason:`reclaim-disabled`}),{outcomes:a,repairedCount:0};for(let o of t){let t=r[o],s=l(()=>t.configPath(``,i));if(s!==null&&a.push(u({scope:`user`,editorId:o,target:t,home:i,cwd:``,configPath:s,configPathOverride:void 0,logger:n})),t.projectConfigPath){let r=t.projectConfigPath,i=l(()=>r(e.projectDir));i!==null&&a.push(u({scope:`project`,editorId:o,target:t,home:void 0,cwd:e.projectDir,configPath:i,configPathOverride:i,logger:n}))}}return{outcomes:a,repairedCount:a.filter(e=>e.outcome===`repaired`).length}}function l(e){try{return e()}catch{return null}}function u(t){let r={scope:t.scope,editorId:t.editorId,configPath:t.configPath},s=i(t.target,t.cwd,t.home,t.configPathOverride);if(s===null)return{...r,outcome:`no-entry`};if(t.editorId===`pi`){if(n(s))return{...r,outcome:`canonical`}}else{let n=e(s);if(n.kind===`recognized`&&n.disposition===`keep`)return{...r,outcome:`canonical`};if(n.kind===`declined`&&t.scope===`project`)return t.logger({event:`mcp-config-repair-declined`,scope:t.scope,editorId:t.editorId,configPath:t.configPath,reason:n.reason}),{...r,outcome:`declined`,reason:n.reason}}t.logger(o({scope:t.scope,surface:`cli-repair`,editorId:t.editorId,configPath:t.configPath,priorEntry:s}));let c=a(t.target,t.cwd,{mode:`published`,skipAvailabilityCheck:!0},t.home,t.configPathOverride);if(c.action===`failed`){let e=c.error??`unknown write failure`;return t.logger({event:`mcp-config-repair-write-failed`,scope:t.scope,editorId:t.editorId,configPath:t.configPath,error:e}),{...r,outcome:`write-failed`,error:e}}return c.action===`declined`?(t.logger({event:`mcp-config-repair-declined`,scope:t.scope,editorId:t.editorId,configPath:t.configPath,reason:c.declineReason}),{...r,outcome:`declined`}):{...r,outcome:`repaired`}}function d(e){process.stderr.write(`${JSON.stringify(e)}\n`)}export{c as repairMcpConfigs};
|
|
2
|
+
//# sourceMappingURL=repair-mcp-configs-B_aiRtDB.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./src-BOzh5nAU.mjs";import"./resolve-project-root-Bc1ADd86.mjs";import"./src-D2HreckB.mjs";import"./acp-harness-probe-BeVA4QCv.mjs";import"./init-BL11-Hop.mjs";import{n as e}from"./loader-DNOkatxt.mjs";import"./skill-teardown-D6lPMY6n.mjs";import"./preview-Dtusj3WX.mjs";import"./mcp-migrate-event-9DFnNzHa.mjs";export{e as loadConfig};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{o as e}from"./chunk-DTipWd-i.mjs";import{K as t,pt as n,q as r}from"./sleep-D4NlDISj.mjs";import{Ac as i,Co as a,Fc as o,Ic as s,jc as c,lt as l,ut as u}from"./src-BOzh5nAU.mjs";import{Ri as d,ct as f,di as p,kn as m,lt as h,ot as g,st as ee}from"./src-BqTdx7nf.mjs";import{D as _,F as v,I as y,k as b}from"./fs-traced-Dm4NQ6S5.mjs";import{C as x,S,_ as C,f as w,r as T}from"./server-lock-DmHwX0B4.mjs";import{t as E}from"./yazl-DejPO9b3.mjs";import{h as D,m as te,x as ne}from"./resolve-project-root-Bc1ADd86.mjs";import{c as O}from"./colors-DSyAT9Cz.mjs";import{a as k,i as re}from"./acp-harness-probe-
|
|
1
|
+
import{o as e}from"./chunk-DTipWd-i.mjs";import{K as t,pt as n,q as r}from"./sleep-D4NlDISj.mjs";import{Ac as i,Co as a,Fc as o,Ic as s,jc as c,lt as l,ut as u}from"./src-BOzh5nAU.mjs";import{Ri as d,ct as f,di as p,kn as m,lt as h,ot as g,st as ee}from"./src-BqTdx7nf.mjs";import{D as _,F as v,I as y,k as b}from"./fs-traced-Dm4NQ6S5.mjs";import{C as x,S,_ as C,f as w,r as T}from"./server-lock-DmHwX0B4.mjs";import{t as E}from"./yazl-DejPO9b3.mjs";import{h as D,m as te,x as ne}from"./resolve-project-root-Bc1ADd86.mjs";import{c as O}from"./colors-DSyAT9Cz.mjs";import{a as k,i as re}from"./acp-harness-probe-BeVA4QCv.mjs";import{D as ie,E as A,S as ae,T as j,_ as oe,b as se,o as ce}from"./init-BL11-Hop.mjs";import{n as le}from"./constants-CEGzcEPZ.mjs";import{t as M}from"./is-object-Bw0-z8qH.mjs";import"./loader-DNOkatxt.mjs";import"./skill-teardown-D6lPMY6n.mjs";import"./preview-Dtusj3WX.mjs";import{execSync as ue,spawnSync as de}from"node:child_process";import{basename as N,dirname as P,join as F,relative as fe,resolve as I,sep as pe}from"node:path";import{cpSync as me,createWriteStream as he,existsSync as L,lstatSync as ge,mkdirSync as R,mkdtempSync as _e,readFileSync as z,readdirSync as B,readlinkSync as ve,rmSync as ye,statSync as be,writeFileSync as V}from"node:fs";import{arch as xe,freemem as Se,homedir as H,hostname as Ce,platform as we,release as Te,tmpdir as Ee,totalmem as De,type as Oe,uptime as ke}from"node:os";import"node:fs/promises";import{createHash as Ae}from"node:crypto";var je=n();const Me=new Set([`start`,`stop`,`status`,`clean`,`ui`,`mcp`,`preview`,`lint`,`deinit`,`auth`]);function Ne(e,t,n=m){if(e!==void 0&&!Me.has(e))return null;let r=n(t);return r===null||r.distance===0?null:r.rootPath}let Pe=null;function Fe(e){Pe=e}function Ie(){return Pe??process.cwd()}function U(){return F(H(),`.ok`,`bug-reports`)}function Le(e=new Date){let t=e.toISOString().replace(/[:.]/g,`-`),n=U(),r=`${t}-bugreport`,i=F(n,`${r}.zip`);for(let e=2;L(i);e+=1)i=F(n,`${r}-${e}.zip`);return i}function Re(e,t){let n=F(e,`.ok`,`config.yml`);if(L(n))try{let e=z(n,`utf8`).match(/^\s*name:\s*['"]?(.+?)['"]?\s*$/m);if(e?.[1])return e[1]}catch(e){t?.warn({configPath:n,err:e},`bug-report: failed to read .ok/config.yml for project slug; using path-hash fallback`)}return L(F(e,`.ok`))?Ae(`sha256`).update(I(e)).digest(`hex`).slice(0,12):null}function ze(){let e={timestamp:new Date().toISOString(),platform:we(),osType:Oe(),osRelease:Te(),hostname:`[redacted]`,uptime:ke(),freeMem:Se(),totalMem:De(),nodeVersion:process.version,bunVersion:process.versions.bun??null,v8Version:process.versions.v8??null,pid:process.pid};try{e.macosVersion=ue(`sw_vers -productVersion 2>/dev/null`,d({encoding:`utf8`})).trim()}catch{}try{let t=F(__dirname,`..`,`..`,`package.json`);L(t)&&(e.okVersion=JSON.parse(z(t,`utf8`)).version)}catch{}return e}const Be=[{prefix:`cli`,projectTagged:!0},{prefix:`desktop`,projectTagged:!1},{prefix:`mcp`,projectTagged:!1}];function Ve(e){let t=N(e);return Be.some(e=>e.projectTagged&&t.startsWith(`${e.prefix}.`))}function He(e,t){return Ke(e,t).files}const Ue=[`ShipIt_stderr.log`,`ShipIt_stdout.log`];function We(e,t=k){let n=F(e,`${t}.ShipIt`);return L(n)?Ue.map(e=>F(n,e)).filter(e=>L(e)):[]}function Ge(e){if(!L(e))return[];try{let t=new Map;for(let n of B(e).filter(e=>e.endsWith(`.yaml`)).sort()){let e=n.endsWith(`.sent.yaml`)?n.slice(0,-o.length):n.slice(0,-5),r=t.get(e);r===void 0?t.set(e,[n]):r.push(n)}return[...t.values()].slice(-25).flat().map(t=>F(e,t))}catch{return[]}}function Ke(e,t){if(!L(t))return{files:[],excludedByProjectSlug:0};let n=B(t).filter(e=>e.endsWith(`.log`)||/\.log\.\d+$/.test(e)).map(e=>F(t,e));if(!e)return{files:n,excludedByProjectSlug:0};let r=n.filter(Ve),i=[],a=r.filter(t=>{try{return z(t,`utf8`).includes(`"project":"${e}"`)}catch{return i.push(t),!1}});if(a.length===0)return{files:n,excludedByProjectSlug:0};let o=new Set([...a,...i]);return{files:n.filter(e=>!Ve(e)||o.has(e)),excludedByProjectSlug:r.length-o.size}}function qe(e){let t=F(e,`.ok`,`local`);return L(t)?{files:[`server.lock`,`last-spawn-error.log`,l].map(e=>F(t,e)).filter(e=>L(e))}:{files:[]}}function Je(e){let t=F(e,`.ok`,`local`,`logs`);return L(t)?{files:[`server-current.jsonl`,`server-prev.jsonl`].map(e=>F(t,e)).filter(e=>L(e))}:{files:[]}}function Ye(e){if(e.redact){let{redacted:t,patterns:n,lineCount:r}=c(e.content);e.zipfile.addBuffer(Buffer.from(t,`utf8`),e.name),e.bundleFiles.push(e.name),n.length>0&&e.redactions.push({file:e.name,lineCount:r,patterns:n})}else e.zipfile.addBuffer(Buffer.from(e.content,`utf8`),e.name),e.bundleFiles.push(e.name)}function W(e){for(let t of e.files)try{Ye({zipfile:e.zipfile,name:`${e.prefix}/${N(t)}`,content:z(t,`utf8`),redact:e.redact,bundleFiles:e.bundleFiles,redactions:e.redactions})}catch(n){e.logger?.warn({file:t,prefix:e.prefix,err:n},`bug-report: skipped unreadable file`)}}async function Xe(t){let{redact:n,outputPath:r,logger:a}=t,o=t.userLogsDir??F(H(),`.ok`,`logs`),c=t.projectDir?Re(t.projectDir,a):null;R(P(r),{recursive:!0}),a?.info({projectSlug:c},`gathering diagnostic data`);let l=ze();l.desktop=t.desktop??null,l.language=t.language??null;let{files:u,excludedByProjectSlug:d}=Ke(c,o),{files:f}=t.projectDir?qe(t.projectDir):{files:[]},{files:p}=t.projectDir?Je(t.projectDir):{files:[]},m=t.shipItLogFiles??[];a?.info({logFileCount:u.length,logFilesExcludedByProjectSlug:d,lockFileCount:f.length,localSinkFileCount:p.length,shipItLogFileCount:m.length},`files collected`);let h=[],g=[],{ZipFile:ee}=await import(`./yazl-BwMlCqRQ.mjs`).then(t=>e(t.default,1)),_=new ee;W({zipfile:_,files:[...u,...m],prefix:`logs`,redact:n,bundleFiles:g,redactions:h,logger:a}),W({zipfile:_,files:f,prefix:`lockdir`,redact:n,bundleFiles:g,redactions:h,logger:a}),W({zipfile:_,files:p,prefix:`local-logs`,redact:n,bundleFiles:g,redactions:h,logger:a}),W({zipfile:_,files:t.bugReportLedgerFiles??[],prefix:s,redact:n,bundleFiles:g,redactions:h,logger:a});for(let e of t.extraFiles??[])try{let t=z(e.sourcePath),n=`extra/${e.zipName??N(e.sourcePath)}`;_.addBuffer(t,n),g.push(n)}catch(t){a?.warn({sourcePath:e.sourcePath,err:t},`extra file unreadable; omitted from bundle`)}t.note&&Ye({zipfile:_,name:`note.txt`,content:t.note,redact:n,bundleFiles:g,redactions:h});let v=JSON.stringify(l,null,2);_.addBuffer(Buffer.from(v,`utf8`),`sysinfo.json`),g.push(`sysinfo.json`);let y={generatedAt:new Date().toISOString(),disciplineVersion:`1.0.0`,projectSlug:c,files:g,redactions:h,sysinfo:l};_.addBuffer(Buffer.from(JSON.stringify(y,null,2),`utf8`),`MANIFEST.json`);let b=h.reduce((e,t)=>e+t.lineCount,0),x=new Set(m.map(e=>`logs/${N(e)}`)),S=g.filter(e=>x.has(e)),C=new Set((t.bugReportLedgerFiles??[]).map(e=>`${s}/${N(e)}`)),w=g.filter(e=>C.has(e)),T=c?g.filter(e=>e.startsWith(`logs/`)&&!Ve(e)&&!x.has(e)):[],E=[`# Bug Report Bundle`,``,`Generated: ${y.generatedAt}`,`Project: ${c??`(unscoped)`}`,`Discipline version: ${y.disciplineVersion}`,``,`## Contents`,``,...g.map(e=>`- ${e}`),``,`## Privacy`,``,...T.length>0?[`Scope: some collected logs are user-wide rather than project-scoped.`,`These are written once per machine per day and can contain activity`,`from other projects open on this machine, including captured console`,`output:`,...T.map(e=>`- ${e}`),``]:[],...S.length>0?[`Installer logs: written by the macOS update helper rather than by`,`OpenKnowledge itself, and machine-wide rather than scoped to any one`,`project. They record the install and update history of this app on`,`this machine. Only this app is collected, never other applications`,`that use the same update mechanism:`,...S.map(e=>`- ${e}`),``]:[],...w.length>0?[`Send history: a small record for each bug report previously generated`,`on this machine — when it was generated, whether sending it`,`succeeded, and why it failed if it did. This is what makes a failed`,`send diagnosable at all. It is machine-wide rather than scoped to`,`this project, so it names the other projects reports were filed`,`from. It carries no document content:`,...w.map(e=>`- ${e}`),``]:[],...n?[`This bundle was auto-redacted before packaging.`,`Patterns checked: ${i.join(`, `)}`,b>0?`${b} line(s) were scrubbed across ${h.length} file(s).`:`No redactions were needed.`,`See MANIFEST.json for the full redaction audit report.`,``,`This bundle is safe to attach to a GitHub issue.`]:[`Redaction was disabled for this bundle; file contents are unmodified.`]].join(`
|
|
2
2
|
`);_.addBuffer(Buffer.from(E,`utf8`),`README.md`),_.end();let D=he(r);return _.outputStream.pipe(D),await new Promise((e,t)=>{D.on(`close`,e),D.on(`error`,t)}),a?.info({bundlePath:r,fileCount:g.length,redactionCount:b},`bundle written`),{zipPath:r,summary:{projectSlug:c,files:g,redactions:h,redactedLineCount:b,generatedAt:y.generatedAt}}}var Ze=e(E(),1),G=e(O(),1);function Qe(e){return y({absPath:b(`user`,e,e),sideline:!1,warn:()=>{}}).value.appearance?.language??`system`}function $e({home:e=H(),env:n=process.env}={}){let i=Qe(e),{override:o,preferenceList:s}=_(n),{locale:c,source:l}=a({override:o,storedPreference:i,supportedLocales:r,preferenceList:s,autoDetectableLocales:t});return{preference:i,locale:c,source:l,systemLanguages:s}}function et(e,t){return t.length===0||!e.includes(t)?e:e.split(t).join(`<CONTENT_DIR>`)}function tt(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function K(e,t){if(typeof e==`string`)return et(e,t.contentDir);if(Array.isArray(e))return e.map(e=>K(e,t));if(!tt(e))return e;let n={};for(let[r,i]of Object.entries(e))n[r]=K(i,t);return n}function nt(e,t){let n=z(e,`utf-8`);if(n.length===0)return;let r=n.endsWith(`
|
|
3
3
|
`),i=n.split(`
|
|
4
4
|
`),a=[];for(let e=0;e<i.length;e++){let n=i[e]??``;if(!(e===i.length-1&&n===``)){if(n.length===0){a.push(``);continue}try{let e=K(JSON.parse(n),t);a.push(JSON.stringify(e))}catch{a.push(n)}}}V(e,r?`${a.join(`
|
|
@@ -17,4 +17,4 @@ import{o as e}from"./chunk-DTipWd-i.mjs";import{K as t,pt as n,q as r}from"./sle
|
|
|
17
17
|
`).replace(/\n/g,`\r
|
|
18
18
|
`));let u=`${i?``:``}${l}`;return u!==r&&v(e,u,{mode:j(e)}),{kind:`removed`}}function gn(e){return e==null?!1:e.includes(`--type=utility`)&&e.includes(`--utility-sub-type=node.mojom.NodeService`)}function _n(e,t=Date.now()){let n=new Date(e).getTime();if(Number.isNaN(n))return`—`;let r=t-n,i=Math.floor(r/1e3);if(i<60)return`${i}s`;let a=Math.floor(i/60);if(a<60)return`${a}m ago`;let o=Math.floor(a/60);return o<24?`${o}h ago`:`${Math.floor(o/24)}d ago`}function vn(e,t,n,r){if(t.status===`missing`||t.status===`corrupt`)return null;let i=t.lock,a=t.status===`alive`&&T(i)?{port:i.port,status:t.status,pid:i.pid,startedAt:i.startedAt,usage:r}:null;return{directory:i.worktreeRoot,server:{port:i.port,status:t.status,pid:i.pid,startedAt:i.startedAt,usage:r},ui:a,hostname:i.hostname,lockPath:t.lockPath,binary:n==null?null:ee(n),command:n,isDesktop:gn(n)}}function Q(e){let t=e.server.status;return t===`alive`||t===`foreign-host`?e.isDesktop?`desktop`:t===`alive`?`running`:`foreign`:`stale`}const yn=new Set([`running`,`desktop`,`foreign`]);function bn(e){switch(e){case`running`:return G.default.green(e);case`desktop`:return G.default.blue(e);case`foreign`:return G.default.cyan(e);case`stale`:return G.default.yellow(e)}}function xn(e){return e==null?`—`:`${e.cpuPercent.toFixed(1)}% / ${e.memPercent.toFixed(1)}%`}function Sn(e){return`${xn(e.server.usage)} | ${xn(e.ui?.usage??null)}`}function Cn(e){return`${e.server.port===0?`(starting)`:String(e.server.port)} / ${e.ui==null?`—`:String(e.ui.port)}`}function wn(e){if(e.length===0)return`No open-knowledge servers found.`;let t=[`DIRECTORY`,`PORTS (API/UI)`,`CPU/MEM (API | UI)`,`STATUS`,`PID`,`STARTED`,`BINARY`],n=e.map(e=>[e.directory,Cn(e),Sn(e),Q(e),String(e.server.pid),_n(e.server.startedAt),e.binary??`—`]),r=t.length,i=t.map(e=>e.length);for(let e of n)for(let t=0;t<r;t++)i[t]=Math.max(i[t]??0,(e[t]??``).length);let a=t.map((e,t)=>e.padEnd(i[t]??0)).join(` `).trimEnd(),o=e.map((e,t)=>{let a=n[t]??[],o=[];for(let t=0;t<r;t++){let n=(a[t]??``).padEnd(i[t]??0);if(t===3){let r=a[t]??``;n=bn(Q(e))+` `.repeat(Math.max(0,(i[t]??0)-r.length))}o.push(n)}return o.join(` `).trimEnd()}),s=G.default.dim(`To stop a server: ok stop <port|pid|directory|all>`);return[a,...o,``,s].join(`
|
|
19
19
|
`)}async function Tn(e={}){let t=e.discover??g,n=e.inspect??X,r=e.log??(e=>console.log(e)),i=e.resolveCommand??f,a=e.resolveUsage??h,o=await t(),s=[];for(let e of o){let t=n(e,`server`),r=vn(e,t,t.status===`missing`||t.status===`corrupt`?null:i(t.lock.pid),t.status===`missing`||t.status===`corrupt`?null:a(t.lock.pid));r!=null&&s.push(r)}if(e.json){let e=s.map(e=>({...e,displayStatus:Q(e)}));r(JSON.stringify(e,null,2));return}r(wn(e.all?s:s.filter(e=>yn.has(Q(e)))))}function En(){return new ne(`ps`).description(`List all running open-knowledge servers`).argument(`[modifier]`,`"all" to include stale (dead-pid) entries`).option(`--all`,`Include stale (dead-pid) entries (foreign-host shows by default)`).option(`--json`,`Emit structured JSON (always includes all statuses)`).action(async(e,t)=>{await Tn({all:t.all===!0||e===`all`,json:t.json===!0})})}function Dn(e,t,n={}){let r=n.isAlive??S,i=[];for(let[n,a]of[[`server`,e],[`ui`,t]])(a.status===`alive`||a.status===`foreign-host`&&r(a.lock.pid))&&i.push({name:n,pid:a.lock.pid,port:a.lock.port});return{targets:i}}function On(e){let t=e.inspect??(t=>t===`ui`?Z(e.lockDir):X(e.lockDir,t)),n=e.kill??((e,t)=>process.kill(e,t)),r=e.log??(e=>console.log(e)),i=e.error??(e=>console.error(e)),a=Dn(t(`server`),t(`ui`),{isAlive:e.isAlive});if(a.targets.length===0)return r(`No running open-knowledge processes.`),{stopped:[],failed:[],hadTargets:!1};let o=[],s=[];for(let e of a.targets)try{n(e.pid,`SIGTERM`),o.push(e)}catch(t){s.push({target:e,error:t instanceof Error?t.message:String(t)})}return o.length>0&&r(`Stopped: ${o.map(e=>`${e.name} (pid=${e.pid}, port=${e.port})`).join(`, `)}`),s.length>0&&i(`Failed to stop: ${s.map(({target:e,error:t})=>`${e.name} (pid=${e.pid}): ${t}`).join(`; `)}`),{stopped:o,failed:s,hadTargets:!0}}function $(e,t){return e.status===`alive`?!0:e.status===`foreign-host`?t(e.lock.pid):!1}async function kn(e,t=S){let n=await g(),r=null;for(let i of n){let n=X(i,`server`),a=Z(i);if($(n,t)&&n.lock.port===e||$(a,t)&&a.lock.port===e)return i;r===null&&($(n,t)&&n.lock.pid===e||$(a,t)&&a.lock.pid===e)&&(r=i)}return r}function An(e){let t=On({lockDir:e});return t.failed.length>0&&(process.exitCode=1),t}function jn(e){return new ne(`stop`).description(`Stop open-knowledge server(s). With no argument: stops the server for the current directory. Pass a port number, a directory path, or "all" to target globally.`).argument(`[target...]`,`port number, directory path (spaces OK), or "all"`).action(async t=>{let n=t.length===0?void 0:t.join(` `);if(n===void 0){e();let t=On({lockDir:p(process.cwd()),log:()=>{}});if(t.hadTargets){if(t.stopped.length>0){let e=t.stopped.map(e=>`${e.name} (pid=${e.pid}, port=${e.port})`).join(`, `);console.log(`Stopped: ${e}`)}t.failed.length>0&&(process.exitCode=1)}else await Tn({});return}if(n===`all`){let e=await g();if(e.length===0){console.log(`No running open-knowledge servers found.`);return}let t=0;for(let n of e){let e=X(n,`server`),r=Z(n);!$(e,S)&&!$(r,S)||(An(n),t++)}t===0&&console.log(`No running open-knowledge servers found.`);return}if(/^\d+$/.test(n)){let e=Number.parseInt(n,10),t=await kn(e);if(t===null){console.log(`No running open-knowledge server found with port or PID ${e}.`);return}An(t);return}An(p(I(Ie(),n)))})}export{U as _,rn as a,Ne as b,sn as c,Z as d,X as f,Le as g,Xt as h,fn as i,cn as l,Yt as m,jn as n,ln as o,$t as p,En as r,an as s,On as t,nn as u,Ie as v,Fe as y};
|
|
20
|
-
//# sourceMappingURL=src-
|
|
20
|
+
//# sourceMappingURL=src-D2HreckB.mjs.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import{j as e}from"./sleep-D4NlDISj.mjs";import{Cc as t,Tc as n,gc as r,wc as i,yc as a}from"./src-BOzh5nAU.mjs";import{An as o,Qr as s,o as c,t as l}from"./src-BqTdx7nf.mjs";import{I as u,k as d}from"./fs-traced-Dm4NQ6S5.mjs";import{r as f}from"./server-lock-DmHwX0B4.mjs";import{C as p,S as m,x as h}from"./resolve-project-root-Bc1ADd86.mjs";import{c as g,f as _,g as v,l as y,n as b,o as x,p as S,r as C,s as w,t as T}from"./acp-harness-probe-
|
|
1
|
+
import{j as e}from"./sleep-D4NlDISj.mjs";import{Cc as t,Tc as n,gc as r,wc as i,yc as a}from"./src-BOzh5nAU.mjs";import{An as o,Qr as s,o as c,t as l}from"./src-BqTdx7nf.mjs";import{I as u,k as d}from"./fs-traced-Dm4NQ6S5.mjs";import{r as f}from"./server-lock-DmHwX0B4.mjs";import{C as p,S as m,x as h}from"./resolve-project-root-Bc1ADd86.mjs";import{c as g,f as _,g as v,l as y,n as b,o as x,p as S,r as C,s as w,t as T}from"./acp-harness-probe-BeVA4QCv.mjs";import{y as E}from"./init-BL11-Hop.mjs";import{n as D}from"./constants-CEGzcEPZ.mjs";import{spawn as O}from"node:child_process";import{basename as k,dirname as A,resolve as j}from"node:path";import{existsSync as M,realpathSync as N}from"node:fs";import{tmpdir as P}from"node:os";import{rm as F}from"node:fs/promises";import{setTimeout as I}from"node:timers/promises";function L(e,t){return e.bind?.[0]??t.HOST??`127.0.0.1`}function R(e){if(e===`server`)return e;throw new m(`--only must be 'server'`)}function z(e=M){let t=import.meta.dirname??new URL(`.`,import.meta.url).pathname;return[j(t,`public`),j(t,`../../app/dist`),j(t,`../../../app/dist`)].find(t=>e(t))}function B(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 V(t){if(t===`off`)return`off`;if(!e.test(t))throw new m(`--idle-shutdown must be 'off' or a duration like 90s, 30m, 2h`);return t}function H(e){return e===`localhost`||e===`::1`||e===`[::1]`||e.startsWith(`127.`)}function U(e){return!e.flagBindSet&&!e.okBindSet&&e.hostEnvSet&&e.fileBindCount>1}function W(e){return!e.openBrowser||e.ephemeral||e.only===`server`||!e.servesUi?!1:(e.explicitOn||H(e.host))&&e.isTTY}function ee(e,t){let n;try{n=new URL(t)}catch{throw new m(`${e} is not a valid URL: ${t}`)}if(n.protocol!==`http:`&&n.protocol!==`https:`)throw new m(`${e} must be an http(s) origin (got: ${t})`);return t}function G(e){return ee(`--external-url`,e)}function K(e){let t=k(e).replace(/[^\x20-\x7E]/g,``).trim().slice(0,64);return`open-knowledge-server ${t.length>0?t:`unknown`}`}var q=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}},J=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 Y(e,t={}){let n=t.tmpdirFn??P,r=t.realpathFn??N,i=e=>{try{return r(e)}catch(t){return t.code===`ENOENT`?j(e):null}},a=j(e),o;try{o=r(a)}catch(e){if(e.code===`ENOENT`){let e=i(A(a));o=e===null?null:j(e,k(a))}else o=null}if(o===null)return!1;let s=i(n());return s===null?!1:A(o)===s&&k(o).startsWith(`ok-ephemeral-`)}function X(e,t,n=e=>F(e,{recursive:!0,force:!0})){return async()=>{try{await e()}finally{if(Y(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 Z(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 Q(e){let{config:t,cwd:n,host:r}=e,i=e.skipAutoInit??!1,a=e.idleThresholdMs===void 0?18e5:e.idleThresholdMs,{existsSync:l,mkdirSync:u}=await import(`node:fs`),{basename:d,dirname:f,resolve:p}=await import(`node:path`),{bootServer:m,createEphemeralProjectDir:h,getLogger:g,resolveContentDir:y,resolveLockDir:x,seedEphemeralProjectDir:w,waitForServerLockDrain:D}=await import(`./src-CzJVDa-w.mjs`),O=e.log??g(`start`),k=e.singleFile!==void 0,A=k?c(e.singleFile).canonicalFilePath:void 0,j=A?f(A):void 0,M=A?d(A):void 0,N,P=!1;if(j!==void 0)if(e.projectDir!==void 0){if(N=e.projectDir,!Y(N))throw new J(N);l(p(N,`.ok`,`config.yml`))||w(N,j)}else N=h(j),P=!0;let I=async()=>{if(!(!P||N===void 0)){if(!Y(N)){O.warn({ephemeralProjectDir:N},`[start] refusing to reap self-provisioned ephemeral dir: no longer resolves to an ok-ephemeral-* temp dir`);return}try{await F(N,{recursive:!0,force:!0})}catch(e){O.warn({err:e,ephemeralProjectDir:N},`[start] failed to reap self-provisioned ephemeral temp dir`)}}},L=N;if(!k){if(!i&&!o(n))throw new q(n);let t=process.env.OK_RECLAIM_DISABLE??null,r=e=>{let t=typeof e.event==`string`?e.event:``;(t.endsWith(`-failed`)||t.endsWith(`-error`)||t.endsWith(`-missing`))&&O.warn({event:e},`[start] reclaim sweep reported a problem`)};try{(e.repairMcpConfigsFn??(await import(`./repair-mcp-configs-B_aiRtDB.mjs`)).repairMcpConfigs)({projectDir:n,reclaimDisableEnv:t,logger:r})}catch(e){O.warn({err:e},`[start] mcp-config repair sweep failed; continuing`)}try{(e.repairLaunchJsonFn??(await import(`./repair-launch-json-CqCRoktk.mjs`)).repairLaunchJson)({projectDir:n,reclaimDisableEnv:t,logger:r})}catch(e){O.warn({err:e},`[start] launch.json repair sweep failed; continuing`)}try{await(e.repairSkillsFn??(await import(`./repair-skills-DnJVC8BQ.mjs`)).repairSkills)({projectDir:n,reclaimDisableEnv:t,logger:r})}catch(e){O.warn({err:e},`[start] skill repair sweep failed; continuing`)}}let R=j??y(t,n);!k&&!l(R)&&(u(R,{recursive:!0}),O.info({contentDir:R},`Created content directory`));let z=v(),B=s(),V;try{{let e=x(N??n),t=Date.now(),r=await D(e);r!==`no-drain`&&O.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`)}V=await m({config:t,contentDir:R,projectDir:N??n,contentRoot:k?void 0:t.content.dir,port:e.port,host:r,quiet:!1,detectGh:_,detectGhAccounts:S,tokenStore:z,embeddingsKeyStore:B,mcpTomlEditor:E(),...k?{ephemeral:!0,singleDocRelPath:M,gitEnabled:!1,gitPreflight:()=>({ok:!0,version:`0.0.0`,resolvedPath:`git`,source:`PATH`})}:{},localOpCliArgs:[process.execPath,process.argv[1]],probeHarnessManagedMcpEntry:(e,t)=>T(e,t),probePiAcpBridge:e=>C(e),ensurePiAcpBridge:e=>b(e),idleShutdownMs:a,...e.serverRuntime===void 0?{}:{serverRuntime:e.serverRuntime},...e.bind===void 0?{}:{bind:e.bind},skipAutoInit:!0,idleShutdownHandler:t=>{let n=t;return Z(L===void 0?n:X(n,L),{log:O,exit:e.idleExit})},log:O,...e.serveContentAssets===void 0?{}:{serveContentAssets:e.serveContentAssets},...e.reactShellDistDir?{reactShellDistDir:e.reactShellDistDir}:{}})}catch(e){throw await I(),e}let H=V.destroy,U=P?async()=>{try{await H()}finally{await I()}}:H;return{httpServer:V.httpServer,destroy:U,lockDir:V.lockDir,contentDir:R,port:V.port,ready:V.ready,degraded:V.degraded}}function $(e,t,n=()=>u({absPath:d(`user`,process.cwd()),sideline:!1,warn:()=>{}}).value){return t===void 0?e:n()}function te(e){if(e===`browser`||e===`app`)return e;throw new m(`--mode must be 'browser' or 'app'`)}function ne(e){return e.OK_CONSOLE_LEVEL!==void 0||e.LOG_LEVEL!==void 0?null:`warn`}function re(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 ie(e,o){let s=$(e,o.singleFile),c=ne(process.env);c!==null&&(process.env.OK_CONSOLE_LEVEL=c);let{renderBanner:l}=await import(`./banner-B14xalho.mjs`),{accent:u,dim:d,error:f,warning:p}=await import(`./colors-CpP5E4wV.mjs`),m=process.cwd();process.title=K(m);let h;try{h=n(process.env)}catch(e){throw e instanceof t&&(console.error(f(e.message)),process.exit(78)),e}for(let e of h.diagnostics)console.warn(p(`[config] ${e.message}`));let g=i(s,h.layer),_=h.overrides.some(e=>e.envVar===`OK_BIND`),v=o.bind!==void 0&&o.bind.length>0?o.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]);U({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=o.externalUrl,E=a(i(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(`
|
|
2
2
|
`)))}let O=o.port===void 0?void 0:Number(o.port),k=h.overrides.find(e=>e.envVar===`PORT`)?.value,A=O??k??s.server?.port,j=B({explicitDir:o.reactShellDistDir,only:o.only,findBundledDir:z}),M=j.dir;j.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 N;try{N=await Q({config:s,cwd:m,host:C,port:A,bind:w,...o.serveContentAssets===void 0?{}:{serveContentAssets:o.serveContentAssets},...M?{reactShellDistDir:M}:{},idleThresholdMs:r(o.idleShutdown??E.idleShutdown),serverRuntime:E,...o.singleFile?{singleFile:o.singleFile}:{},...o.projectDir?{projectDir:o.projectDir}:{}})}catch(e){e instanceof q&&(console.error(f(e.message)),process.exit(1)),e instanceof J&&(console.error(f(e.message)),process.exit(1));let t=await import(`./src-CzJVDa-w.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&&(console.error(f(e.message)),process.exit(1)),se(e,t)){let e=t.resolveLockDir(m),n=null;try{n=await ae({readServerLock:()=>t.readServerLock(e),now:Date.now,sleep:e=>I(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]=oe(n);console.log(u(e));for(let e of t)console.log(d(e));process.exit(0)}}let n=ce(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 P=!1,F=async e=>{if(P)return;P=!0;let[t,...n]=re(e);console.log(u(`\n${t}`));for(let e of n)console.log(d(` ${e}`));try{await N.destroy()}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`,()=>{F(`SIGINT`)}),process.once(`SIGTERM`,()=>{F(`SIGTERM`)});let L=`http://${C.includes(`:`)&&!C.startsWith(`[`)?`[${C}]`:C}:${N.port}`,R=C===`0.0.0.0`||C===`::`?`http://0.0.0.0:${N.port}`:void 0,V=L;console.log(l({name:`open-knowledge`,version:D,localUrl:V,networkUrl:R,nextSteps:[`Open the Editor URL in your browser to start editing.`]}));let H={"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`};N.ready.then(async()=>{if(N.degraded.length>0){console.log();for(let e of N.degraded){let t=H[e]??`${e} (check server logs for details)`;console.warn(` ${p(`⚠`)} ${p(e)}: ${d(t)}`)}console.log()}if(W({openBrowser:o.openBrowser!==!1&&E.openBrowser,explicitOn:o.openBrowser!==!1&&g.server?.openBrowser===!0,host:C,isTTY:process.stdout.isTTY===!0,ephemeral:o.singleFile!==void 0,only:o.only,servesUi:M!==void 0})){let{openBrowser:e}=await import(`./open-browser-ycZBGuNV.mjs`);e(V)}}).catch(e=>{console.error(` ${f(`Server initialization failed:`)} ${e instanceof Error?e.message:String(e)}`)})}async function ae(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:f(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 oe(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 se(e,t){let n=t.ServerLockCollisionError;return n!==void 0&&e instanceof n}function ce(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 le(e){return new h(`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)`,R).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)`,V).option(`--mode <mode>`,`Force dispatch mode: 'browser' or 'app'`,te).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 p(`--single-file <path>`,`No-project ephemeral single-file mode: scope the server to one markdown file (git + MCP off)`).hideHelp()).addOption(new p(`--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).`,G).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'
|
|
3
3
|
`),process.exit(2)),t.projectDir!==void 0&&t.singleFile===void 0&&(process.stderr.write(`error: option '--project-dir' requires '--single-file'
|
|
4
4
|
`),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=w(x());if(n.available){g({spawn:O},n);return}console.error(y(n.reason)),process.exit(1)}await ie(n,t)})}export{ce as C,le as S,Z as T,ne as _,oe as a,W as b,Y as c,V as d,R as f,$ as g,ae as h,K as i,se as l,L as m,q as n,re as o,z as p,Q as r,H as s,J as t,G as u,B as v,X as w,U as x,ie as y};
|
|
5
|
-
//# sourceMappingURL=start-
|
|
5
|
+
//# sourceMappingURL=start-BFK9ARf5.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{S as e,m as t,p as n,r}from"./start-BFK9ARf5.mjs";export{r as bootStartServer,n as resolveBundledReactShellDir,t as resolveHost,e as startCommand};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@inkeep/open-knowledge",
|
|
3
|
-
"version": "0.63.0-beta.
|
|
3
|
+
"version": "0.63.0-beta.1",
|
|
4
4
|
"description": "Local-first, agent-friendly Markdown knowledge base with a cross-platform CLI and web editor",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"knowledge-base",
|
|
@@ -71,10 +71,10 @@
|
|
|
71
71
|
"ajv-formats": "^3.0.1",
|
|
72
72
|
"tsdown": "^0.21.7",
|
|
73
73
|
"typescript": "^5.9.3",
|
|
74
|
-
"@inkeep/open-knowledge-app": "0.63.0-beta.
|
|
75
|
-
"@inkeep/open-knowledge-core": "0.63.0-beta.
|
|
76
|
-
"@inkeep/open-knowledge-
|
|
77
|
-
"@inkeep/open-knowledge-
|
|
74
|
+
"@inkeep/open-knowledge-app": "0.63.0-beta.1",
|
|
75
|
+
"@inkeep/open-knowledge-core": "0.63.0-beta.1",
|
|
76
|
+
"@inkeep/open-knowledge-native-config": "0.0.0",
|
|
77
|
+
"@inkeep/open-knowledge-server": "0.63.0-beta.1"
|
|
78
78
|
},
|
|
79
79
|
"scripts": {
|
|
80
80
|
"build:cli": "rm -rf dist && tsdown",
|
package/dist/init-B-JC6toB.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./src-BqTdx7nf.mjs";import{g as e}from"./init-CFBWWVL6.mjs";export{e as runInit};
|
package/dist/loader-CpTJ3qxR.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./loader-BTqWazXb.mjs";export{e as loadConfig};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e,t}from"./preview-bcFQvR8X.mjs";export{t as formatPreviewBlock,e as previewContent};
|