@inkeep/open-knowledge 0.58.4 → 0.58.6
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/README.md +43 -0
- package/dist/acp-harness-probe-DEQm0Br1.mjs +3 -0
- package/dist/cli.mjs +63 -63
- package/dist/constants-DvdDvomC.mjs +2 -0
- package/dist/index.d.mts +0 -27
- package/dist/index.mjs +202 -202
- package/dist/init-BVDvLU9L.mjs +1 -0
- package/dist/init-EhW5JPIO.mjs +638 -0
- package/dist/{launch-json-removal-CHt_-USW.mjs → launch-json-removal-Chb0Mac8.mjs} +2 -2
- package/dist/{loader-BQUB7-qM.mjs → loader-Cs_Rkp0K.mjs} +2 -2
- package/dist/loader-Cv3I0nwf.mjs +1 -0
- package/dist/{open-browser-CtfBqG33.mjs → open-browser-B-Kf-THH.mjs} +2 -2
- package/dist/{preview-nsZxaHZ-.mjs → preview-AQkB3qEL.mjs} +2 -2
- package/dist/preview-MbWqxt0X.mjs +1 -0
- package/dist/public/assets/{ActivityModeContent-DBbldt0k.js → ActivityModeContent-7I3FAqNa.js} +1 -1
- package/dist/public/assets/{AgentDiffPane-DwjS2yV9.js → AgentDiffPane-BQC85Rn1.js} +1 -1
- package/dist/public/assets/{AgentThreadClientBinder-DoFc7NfG.js → AgentThreadClientBinder-q7HjbS_V.js} +1 -1
- package/dist/public/assets/{BugReportHistory-Dj4DWBsG.js → BugReportHistory-DnmaPA_t.js} +1 -1
- package/dist/public/assets/{BugReportHistoryDialog-DNOoF0sF.js → BugReportHistoryDialog-BjRpH89b.js} +1 -1
- package/dist/public/assets/{CodeMirrorPropInput-Bbe8zInO.js → CodeMirrorPropInput-Bf5PV704.js} +3 -3
- package/dist/public/assets/{DiffView-BuSYMH4e.js → DiffView-B-B3fi5F.js} +1 -1
- package/dist/public/assets/DocumentContext-YI07j2yc.js +38 -0
- package/dist/public/assets/{EditorModeToggle-K2dlTUFw.js → EditorModeToggle-B3XSSPCP.js} +1 -1
- package/dist/public/assets/{EnableSyncConfirmDialog-Crl0PHbt.js → EnableSyncConfirmDialog-DrBUTfFU.js} +1 -1
- package/dist/public/assets/{ExcalidrawDocEditor-C89vengD.js → ExcalidrawDocEditor-T3TL3VQu.js} +1 -1
- package/dist/public/assets/FeedbackForm-bekuqqT1.js +1 -0
- package/dist/public/assets/{GraphPanel-BioJjRJE.js → GraphPanel-B_Mg9p1O.js} +1 -1
- package/dist/public/assets/{ImportSkillDialog-CTisXGKo.js → ImportSkillDialog-B5zHicwe.js} +1 -1
- package/dist/public/assets/{LintConfigEditor-2PX1Y8Gp.js → LintConfigEditor-D5Dg5HLZ.js} +1 -1
- package/dist/public/assets/ManagedArtifactProperties-DXXsE5wd.js +1 -0
- package/dist/public/assets/ManagedArtifactProperties-WOaAexG2.js +1 -0
- package/dist/public/assets/McpConsentDialogBody-CQXH8Lp7.js +1 -0
- package/dist/public/assets/{MermaidDocEditor-Q13CWidl.js → MermaidDocEditor-CwD8mOHB.js} +1 -1
- package/dist/public/assets/{PropertyDisplayRow-DVXahRWZ.js → PropertyDisplayRow-CKXJ3p74.js} +1 -1
- package/dist/public/assets/{ReportBugDialogBody-BTwtPNzB.js → ReportBugDialogBody-CVQgnZSP.js} +1 -1
- package/dist/public/assets/{SchemaConfigEditor-BzfcQ3Bd.js → SchemaConfigEditor-kvdPUUAX.js} +1 -1
- package/dist/public/assets/SessionsHost-x_FfXVKL.js +2 -0
- package/dist/public/assets/{SettingsDialogBody-CBraPHPP.js → SettingsDialogBody-CgHSjRrN.js} +4 -4
- package/dist/public/assets/{ShareReceiveMissDialog-CjolEfpx.js → ShareReceiveMissDialog-DBLKwZ22.js} +1 -1
- package/dist/public/assets/{SkillInstallMenu-CIrDCCxr.js → SkillInstallMenu-BXOomxqv.js} +2 -2
- package/dist/public/assets/{SkillOriginInline-9ArgS7v6.js → SkillOriginInline-B1B3kTSz.js} +1 -1
- package/dist/public/assets/{SkillToolbarControls-B9LFwwR_.js → SkillToolbarControls-NUcxAczC.js} +1 -1
- package/dist/public/assets/{SourceEditor-BwO15VQF.js → SourceEditor-DYdjbyzp.js} +1 -1
- package/dist/public/assets/{TerminalPanel-B4u8CA0m.js → TerminalPanel-DkxYnA6s.js} +1 -1
- package/dist/public/assets/{TerminalWindowApp-BgTVBGP9.js → TerminalWindowApp-CEKKfG52.js} +1 -1
- package/dist/public/assets/{TextDocEditor-DHilRKxH.js → TextDocEditor-CaNNKmLz.js} +1 -1
- package/dist/public/assets/ThreadView-Bt_MQTAE.js +14 -0
- package/dist/public/assets/{TimelineDiffPane-DBuwXW3c.js → TimelineDiffPane-yi7kMXSo.js} +1 -1
- package/dist/public/assets/{agent-diff-store-C3QOPAgw.js → agent-diff-store-SkFUI7rS.js} +1 -1
- package/dist/public/assets/{auth-state-cache-DBcpAYj1.js → auth-state-cache-DbD6wjBD.js} +1 -1
- package/dist/public/assets/{client-version-Cea4CPxm.js → client-version-p4OJ2Mf5.js} +1 -1
- package/dist/public/assets/{cm-theme-Da-a0GOT.js → cm-theme-Bi-g5j8J.js} +1 -1
- package/dist/public/assets/{comment-chips-PokDlHuL.js → comment-chips-DiZPWTPl.js} +1 -1
- package/dist/public/assets/{config-provider-C7t6oRiN.js → config-provider-USxiO_wH.js} +3 -3
- package/dist/public/assets/{dist-BpbQP0nJ.js → dist-8oXszleg.js} +1 -1
- package/dist/public/assets/{dist-DJO8o4ls2.js → dist-BJNERzM02.js} +1 -1
- package/dist/public/assets/{dist-DAvyu-Pu.js → dist-BLe6Laue.js} +1 -1
- package/dist/public/assets/{dist-DV5JQxhA.js → dist-BOvI9R-K.js} +1 -1
- package/dist/public/assets/{dist-RIwmEtSi.js → dist-CB_NMgy4.js} +1 -1
- package/dist/public/assets/{dist-9jLm2WMy.js → dist-CuMGVsog.js} +1 -1
- package/dist/public/assets/{dist-j8YNkBWX.js → dist-CyQvb_hJ.js} +1 -1
- package/dist/public/assets/{dist-CrpG6qZF.js → dist-DMk7rHfk.js} +1 -1
- package/dist/public/assets/{dist-DtBd-emT.js → dist-DpwTwWzy.js} +1 -1
- package/dist/public/assets/{dist-83_CVK0Y.js → dist-RP9GkCTw.js} +1 -1
- package/dist/public/assets/{dist-CIfqGNU5.js → dist-THE2PCU5.js} +1 -1
- package/dist/public/assets/{dist-CmZSQ_Dr.js → dist-TdeurvvU.js} +1 -1
- package/dist/public/assets/{file-tree-adapter-BAEEzFBR.js → file-tree-adapter-Bo3rGytc.js} +1 -1
- package/dist/public/assets/{follow-file-4OaGQKr8.js → follow-file-DWqYp0pE.js} +1 -1
- package/dist/public/assets/{globals-DMVk7DOF.css → globals-CStTfhCT.css} +1 -1
- package/dist/public/assets/i18n-DLbGfWG4.js +1 -0
- package/dist/public/assets/{index-DjHwk3he.js → index-C6Xk875v.js} +7 -7
- package/dist/public/assets/known-skill-dirs-toPil01C.js +1 -0
- package/dist/public/assets/{markdownlint-rule-browser-B4O09K7a.js → markdownlint-rule-browser-T68WxSIo.js} +1 -1
- package/dist/public/assets/messages-BFlTGREq.js +1 -0
- package/dist/public/assets/messages-BN7zDSVo.js +1 -0
- package/dist/public/assets/messages-BP5GGrRC.js +1 -0
- package/dist/public/assets/messages-Cdv9hd10.js +1 -0
- package/dist/public/assets/messages-CgyRKo5g.js +1 -0
- package/dist/public/assets/messages-D13EOsYw.js +1 -0
- package/dist/public/assets/messages-D2-S61MT.js +1 -0
- package/dist/public/assets/messages-DQkd1f5c.js +1 -0
- package/dist/public/assets/messages-D_5Iek_V.js +1 -0
- package/dist/public/assets/messages-Daexf5KZ.js +1 -0
- package/dist/public/assets/messages-DvC9XHhc.js +1 -0
- package/dist/public/assets/messages-Fy0K5qZm.js +1 -0
- package/dist/public/assets/navigation-targets-D6rHX3Pq.js +1 -0
- package/dist/public/assets/{pending-receive-nav-store-CUM2yGMy.js → pending-receive-nav-store-BaBTyiLf.js} +1 -1
- package/dist/public/assets/{prop-types-efgXxLQK.js → prop-types-CizsurD0.js} +1 -1
- package/dist/public/assets/{selection-context-0QPVSyyM.js → selection-context-DV36ssJQ.js} +1 -1
- package/dist/public/assets/skill-actions-ayyLVAw5.js +1 -0
- package/dist/public/assets/skills-api-DO54o34O.js +1 -0
- package/dist/public/assets/{src-C-kGu7U9.js → src-B3OD2BqU.js} +1 -1
- package/dist/public/assets/{tag-pill-input-BbNgNG5U.js → tag-pill-input-D2qVy9HA.js} +1 -1
- package/dist/public/assets/{target-navigation-intent-CQRrvMAa.js → target-navigation-intent-BqElNT05.js} +1 -1
- package/dist/public/assets/{telemetry-impl-B-PaTlR_.js → telemetry-impl-DhefnhPq.js} +1 -1
- package/dist/public/assets/{telemetry-startup-toj6ifVD.js → telemetry-startup--1E51CEj.js} +1 -1
- package/dist/public/assets/{terminal-cli-display-w0URjEKX.js → terminal-cli-display-BTQdEy1j.js} +1 -1
- package/dist/public/assets/{terminal-launch-events-CLm4Tujb.js → terminal-launch-events-DNmxO4ft.js} +1 -1
- package/dist/public/assets/{terminal-telemetry-Bwit7Ew2.js → terminal-telemetry-BC3JNC05.js} +1 -1
- package/dist/public/assets/{text-viewer-languages-BTH8XtqT.js → text-viewer-languages-CF6DiXgT.js} +2 -2
- package/dist/public/assets/{typing-burst-detector-BSBim2fh.js → typing-burst-detector-cZASYUag.js} +1 -1
- package/dist/public/assets/{uninstall-DjCmbDes.js → uninstall-D9_hPyyW.js} +1 -1
- package/dist/public/assets/{use-activity-panel-Dsk5r0Dh.js → use-activity-panel-Drw3hRT0.js} +1 -1
- package/dist/public/assets/use-open-skill-C-OW-Q9z.js +1 -0
- package/dist/public/assets/use-popular-skills-BIvBkMNA.js +1 -0
- package/dist/public/assets/use-skill-origin-FTbTIS5Y.js +1 -0
- package/dist/public/assets/{use-terminal-enabled-nco9YpDh.js → use-terminal-enabled-CSNDVdz8.js} +1 -1
- package/dist/public/assets/{use-timeline-entry-diff-C_A3TeSj.js → use-timeline-entry-diff-DGCq_9Hl.js} +1 -1
- package/dist/public/index.html +53 -53
- package/dist/public/uninstall.html +6 -6
- package/dist/{repair-launch-json-DV-4N-CH.mjs → repair-launch-json-76uIe_qp.mjs} +2 -2
- package/dist/repair-mcp-configs-DCGK6f2H.mjs +2 -0
- package/dist/repair-skills-CI9y4QbJ.mjs +4 -0
- package/dist/repair-skills-QaEJT3NL.mjs +1 -0
- package/dist/{write-project-skill-B7q9oxw9.mjs → resolve-project-root-CRcZU2OU.mjs} +7 -7
- package/dist/{skill-teardown-Cx7h3ooY.mjs → skill-teardown-DLV1OiQx.mjs} +2 -2
- package/dist/src-Bv3AQs0Q.mjs +1 -0
- package/dist/src-DCqESfWX.mjs +1 -0
- package/dist/{src-Cqh-Fhfh.mjs → src-_fp0S8Pp.mjs} +291 -285
- package/dist/src-oUs-bI25.mjs +20 -0
- package/dist/{start-DXiJn8Mq.mjs → start-fPBBfex-.mjs} +5 -5
- package/dist/start-o40el4J9.mjs +1 -0
- package/dist/{ui-C7ao4aMi.mjs → ui-DZeKrf4E.mjs} +3 -3
- package/package.json +16 -5
- package/scripts/verify-package-surface.mjs +57 -0
- package/dist/acp-harness-probe-DNOO15gu.mjs +0 -3
- package/dist/constants-DNRKbd5q.mjs +0 -2
- package/dist/init-BLeyELSU.mjs +0 -1
- package/dist/init-CFzjnMz4.mjs +0 -638
- package/dist/loader-Ddpe_96M.mjs +0 -1
- package/dist/preview-Dozh6AHh.mjs +0 -1
- package/dist/public/assets/DocumentContext-BC38uC8R.js +0 -38
- package/dist/public/assets/FeedbackForm-wyWA05iX.js +0 -1
- package/dist/public/assets/ManagedArtifactProperties-BkJurdY8.js +0 -1
- package/dist/public/assets/ManagedArtifactProperties-Bmcgejtj.js +0 -1
- package/dist/public/assets/McpConsentDialogBody-5ojAKZte.js +0 -1
- package/dist/public/assets/SessionsHost-Bn80i4wO.js +0 -2
- package/dist/public/assets/ThreadView-7sbMEVak.js +0 -14
- package/dist/public/assets/i18n-BzFVw6me.js +0 -1
- package/dist/public/assets/messages-7TQ4p_5e.js +0 -1
- package/dist/public/assets/messages-BAyOSOzR.js +0 -1
- package/dist/public/assets/messages-BLbXONgk.js +0 -1
- package/dist/public/assets/messages-BjIH4q0G.js +0 -1
- package/dist/public/assets/messages-BzRqDtdz.js +0 -1
- package/dist/public/assets/messages-Cimiq3nE.js +0 -1
- package/dist/public/assets/messages-Cn23SiIt.js +0 -1
- package/dist/public/assets/messages-Cpdcajhh.js +0 -1
- package/dist/public/assets/messages-DEperCf5.js +0 -1
- package/dist/public/assets/messages-Vju40UVv.js +0 -1
- package/dist/public/assets/messages-agMQw_WX.js +0 -1
- package/dist/public/assets/messages-pwWS2IL9.js +0 -1
- package/dist/public/assets/navigation-targets-saCskzOA.js +0 -1
- package/dist/public/assets/skill-actions-H0gbk5VS.js +0 -1
- package/dist/public/assets/skills-api-DriOKSSy.js +0 -1
- package/dist/public/assets/use-open-skill-BNgqZmZx.js +0 -1
- package/dist/public/assets/use-popular-skills-CfasFpLW.js +0 -1
- package/dist/public/assets/use-skill-origin-Bpi6sqBq.js +0 -1
- package/dist/public/assets/use-skills-DJ009sMa.js +0 -1
- package/dist/repair-mcp-configs-SHlFuxIK.mjs +0 -2
- package/dist/repair-skills-D7rSfppe.mjs +0 -4
- package/dist/repair-skills-aO5Yt4lm.mjs +0 -1
- package/dist/src-AGay8K3D.mjs +0 -1
- package/dist/src-CE47LOyE.mjs +0 -20
- package/dist/src-COqGK-op.mjs +0 -1
- package/dist/start-DUCWHC0m.mjs +0 -1
- /package/dist/public/assets/{asset-dispatch-KsnhYIM1.js → asset-dispatch-CdZ_--jl.js} +0 -0
- /package/dist/public/assets/{badge-BHNK6NBf.js → badge-BG5JKjNK.js} +0 -0
- /package/dist/public/assets/{dist-D9pOpWzq.js → dist-ZfIywMZM.js} +0 -0
- /package/dist/public/assets/{external-link-B0bVg1hn.js → external-link-B4qPZwve.js} +0 -0
- /package/dist/public/assets/{globals--kx1ORbr.js → globals-tNjN0wSq.js} +0 -0
- /package/dist/public/assets/{stex-BUFg5G8g.js → stex-Bh4EH31F.js} +0 -0
- /package/dist/public/assets/{use-collab-url-cmMNtL6Q.js → use-collab-url-B7oEo69p.js} +0 -0
package/README.md
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# @inkeep/open-knowledge
|
|
2
|
+
|
|
3
|
+
[OpenKnowledge](https://openknowledge.ai) is a local-first, agent-friendly Markdown knowledge base with a rich editor. It is available as a desktop app for **macOS, Windows, and Linux**, or as the same local web app served from your terminal.
|
|
4
|
+
|
|
5
|
+
This package installs the cross-platform `ok` / `open-knowledge` CLI and bundles the web app. Use it on Linux, Windows, macOS, an Intel Mac, or a server. The macOS desktop app currently requires Apple silicon, so Intel Mac users should use this CLI and the web app.
|
|
6
|
+
|
|
7
|
+
## Install
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm install -g @inkeep/open-knowledge
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Requires [Node.js 24+](https://nodejs.org) and Git.
|
|
14
|
+
|
|
15
|
+
To remove OpenKnowledge later, run `ok uninstall` (whole machine) or `ok deinit` (one project).
|
|
16
|
+
|
|
17
|
+
## Quick start
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
cd your-project
|
|
21
|
+
ok init # scaffold .ok/ and connect supported AI tools
|
|
22
|
+
ok start # serve the editor and open it in your browser
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
- `ok init` — turn a folder into an OpenKnowledge project and register the MCP server with supported AI tools.
|
|
26
|
+
- `ok start` — run the local server and web editor, then open it in your browser.
|
|
27
|
+
- `ok open <file.md>` — open a single Markdown file in the editor.
|
|
28
|
+
- `ok --help` — list every command.
|
|
29
|
+
|
|
30
|
+
## Desktop app
|
|
31
|
+
|
|
32
|
+
For the native desktop experience, [download OpenKnowledge](https://openknowledge.ai/download) for macOS, Windows, or Linux.
|
|
33
|
+
|
|
34
|
+
## Documentation
|
|
35
|
+
|
|
36
|
+
Full docs, integrations, and configuration: <https://openknowledge.ai/docs>.
|
|
37
|
+
|
|
38
|
+
- [CLI and web app guide](https://openknowledge.ai/docs/reference/cli)
|
|
39
|
+
- [Quickstart](https://openknowledge.ai/docs/get-started/quickstart)
|
|
40
|
+
|
|
41
|
+
## License
|
|
42
|
+
|
|
43
|
+
[GPL-3.0-or-later](https://github.com/inkeep/open-knowledge/blob/main/LICENSE).
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{pt as e}from"./sleep-B416PNUo.mjs";import{ai as t}from"./src-_fp0S8Pp.mjs";import{g as n,p as r,s as i}from"./resolve-project-root-CRcZU2OU.mjs";import{d as a}from"./init-EhW5JPIO.mjs";import{execFileSync as o,spawn as s}from"node:child_process";import{dirname as c,join as l,win32 as u}from"node:path";import{existsSync as d,mkdirSync as f,readFileSync as p,statSync as m,writeFileSync as h}from"node:fs";import{homedir as g}from"node:os";var _=e();const v=`open-knowledge`;function y(e){try{e()}catch{}}var b=class{backend=`keyring`;constructor(e){this.onKeychainRead=e}async get(e){let{Entry:t}=await import(`@napi-rs/keyring`),n;try{n=new t(v,e).getPassword()}catch(t){return y(()=>this.onKeychainRead?.({kind:`read-error`,host:e,error:t instanceof Error?t.name:`unknown`})),null}if(n==null)return y(()=>this.onKeychainRead?.({kind:`absent`,host:e})),null;try{return JSON.parse(n)}catch{return y(()=>this.onKeychainRead?.({kind:`corrupt-entry`,host:e,error:`corrupt-entry`})),null}}async set(e,t,n,r){let{Entry:i}=await import(`@napi-rs/keyring`),a=new i(v,e),o={login:t,token:n,...r};a.setPassword(JSON.stringify(o))}async clear(e){let{Entry:t}=await import(`@napi-rs/keyring`);try{new t(v,e).deletePassword()}catch{}}},x=class{backend=`file`;authFile;constructor(e){this.authFile=e??l(g(),`.ok`,`auth.yml`)}read(){if(!d(this.authFile))return{};try{return(0,_.parse)(p(this.authFile,`utf-8`))??{}}catch(e){let t=e instanceof Error?e.message:`unknown error`;return process.stderr.write(`[auth] Failed to parse ${this.authFile}: ${t}. Starting with empty credentials.\n`),{}}}write(e){let t=c(this.authFile);d(t)||f(t,{recursive:!0,mode:448}),h(this.authFile,(0,_.stringify)(e),{mode:384})}async get(e){return this.read()[e]??null}async set(e,t,n,r){let i=this.read();i[e]={login:t,token:n,...r},this.write(i)}async clear(e){let t=this.read();delete t[e],this.write(t)}},S=class{backend=`keyring`;constructor(e,t){this.keychain=e,this.file=t}async get(e){let t=await this.keychain.get(e);if(t!=null)return t;let n=await this.file.get(e);if(n==null)return null;try{await this.keychain.set(e,n.login,n.token,{gitProtocol:n.gitProtocol,name:n.name,email:n.email}),await this.file.clear(e),process.stderr.write(`[auth] migrated ${e} credential from ~/.ok/auth.yml to the OS keychain\n`)}catch{}return n}set(e,t,n,r){return this.keychain.set(e,t,n,r)}async clear(e){await this.keychain.clear(e),await this.file.get(e)!=null&&await this.file.clear(e)}};async function C(e,t){try{let{Entry:n}=await import(`@napi-rs/keyring`);return new n(v,`__probe__`),process.stderr.write(`[auth] token storage: OS keychain
|
|
2
|
+
`),y(()=>t?.onBackendSelected?.({backend:`keyring`})),new S(new b(t?.onKeychainRead),new x(e))}catch(n){let r=n instanceof Error?`${n.name}: ${n.message}`:String(n);return process.stderr.write(`[auth] token storage: file (~/.ok/auth.yml) — OS keychain unavailable: ${r}\n`),y(()=>t?.onBackendSelected?.({backend:`file`,reason:r})),new x(e)}}function w(e){let t=null;return function(){if(t)return t;let n=2e3;return t=(async()=>{let t=null,r=new Promise(r=>{t=setTimeout(()=>{process.stderr.write(`[auth] token storage: keyring init exceeded ${n}ms; falling back to file (~/.ok/auth.yml)\n`),r(new x(e))},n)});try{return await Promise.race([C(e),r])}catch{return new x(e)}finally{t!==null&&clearTimeout(t)}})(),t}}function T(e){let t=w(e);return{async get(e){let n=await(await t()).get(e);return n===null?null:{token:n.token}}}}function E(e){let t=w(e);return{backend:`file`,async get(e){return(await t()).get(e)},async set(e,n,r,i){return(await t()).set(e,n,r,i)},async clear(e){return(await t()).clear(e)}}}async function D(e,t){let n=[],r=new x(t);await r.get(e)!=null&&(await r.clear(e),n.push(`file`));let i;try{let{Entry:t}=await import(`@napi-rs/keyring`);new t(v,`__probe__`);let r,a=await new b(e=>{e.kind===`read-error`&&(r=e.error??`read-error`)}).get(e);if(r!==void 0)i=r;else if(a!=null)try{new t(v,e).deletePassword(),n.push(`keychain`)}catch(e){i=e instanceof Error?e.name:`delete-error`}}catch{}return{touched:n,keychainError:i}}const O=[`/opt/homebrew/bin/gh`,`/usr/local/bin/gh`,`/opt/local/bin/gh`,`/snap/bin/gh`,`/usr/bin/gh`],k={encoding:`utf-8`,stdio:[`ignore`,`pipe`,`pipe`],timeout:5e3,windowsHide:!0};function A(e,t={}){let n=t._exec??o,r=t._fileExists??d,i=[`auth`,`token`,...e?[`--hostname`,e]:[]],a=[`gh`,...O.filter(r)];for(let e of a)try{let t=n(e,i,k).toString().trim();if(t.length>0)return{available:!0,token:t}}catch{}return{available:!1}}function j(e){let t={...e};return delete t.ELECTRON_RUN_AS_NODE,t}function M(e){let t=e?.code;return t===`ENOENT`||t===`EACCES`||t===`EPERM`?{ok:!1,reason:`not-installed`}:{ok:!1,reason:`spawn-error`}}function N(e){return t({detached:!0,stdio:`ignore`,shell:!1,env:j(e)})}function P(e,t,n={}){let r=(n.spawn??s)(e,[...t],N(n.env??process.env));return r.unref(),r}function F(e,t,n={}){let r=n.spawn??s,i=n.timeoutMs??2e3;return new Promise(a=>{let o=!1,s=e=>{o||(o=!0,a(e))},c=setTimeout(()=>s({ok:!1,reason:`timeout`}),i);try{let i=r(e,[...t],N(n.env??process.env));i.once(`error`,e=>{clearTimeout(c),s(M(e))}),i.once(`spawn`,()=>{clearTimeout(c),s({ok:!0})});try{i.unref()}catch{}}catch(e){clearTimeout(c),s(M(e))}})}const I=`com.inkeep.open-knowledge`,L=`OpenKnowledge.app`,R=`/Applications/${L}`;function z(){return{platform:process.platform,env:process.env,execPath:process.execPath,isTTY:process.stdout.isTTY,statSync:e=>{try{return m(e,{throwIfNoEntry:!1})??null}catch{return null}}}}function B(e){if(e.env.ELECTRON_RUN_AS_NODE===`1`){let t=/(.+?\.app)\/Contents\/MacOS\//.exec(e.execPath);if(t?.[1])return t[1]}if(V(e,R))return R;let t=l(e.homeDir??g(),`Applications`,L);return V(e,t)?t:null}function V(e,t){return H(e,l(t,`Contents`,`MacOS`,`OpenKnowledge`))}function H(e,t){try{let n=e.statSync(t);return n&&typeof n.isFile==`function`?n.isFile():!1}catch{return!1}}const U=[`@inkeepopen-knowledge-desktop`,`OpenKnowledge`];function W(e){if(e.env.ELECTRON_RUN_AS_NODE===`1`&&/\\OpenKnowledge\.exe$/i.test(e.execPath))return e.execPath;let t=e.env.LOCALAPPDATA;if(t)for(let n of U){let r=u.join(t,`Programs`,n,`OpenKnowledge.exe`);if(H(e,r))return r}return null}function G(e){if(e.env.ELECTRON_RUN_AS_NODE===`1`&&e.execPath.endsWith(`/openknowledge`))return e.execPath;let t=`/opt/OpenKnowledge/openknowledge`;return H(e,t)?t:null}function K(e){if(e.env.OK_FORCE_BROWSER===`1`)return{available:!1,reason:`force-browser`};if(e.platform!==`darwin`&&e.platform!==`win32`&&e.platform!==`linux`)return{available:!1,reason:`unsupported-platform`};let t;try{t=e.platform===`darwin`?B(e):e.platform===`win32`?W(e):G(e)}catch{return{available:!1,reason:`stat-error`}}return t?e.env.OK_FORCE_DESKTOP===`1`?{available:!0,reason:`available`,bundlePath:t}:!(e.isTTY===!0||e.platform===`win32`&&e.isTTY===void 0&&!e.env.CI)||e.env.SSH_CONNECTION||e.env.SSH_TTY||e.platform===`linux`&&!e.env.DISPLAY&&!e.env.WAYLAND_DISPLAY?{available:!1,reason:`headless`,bundlePath:t}:{available:!0,reason:`available`,bundlePath:t}:{available:!1,reason:`no-bundle`}}function q(e,t){let n=e.log??(e=>console.error(e)),r=e.platform??process.platform;if(n("Launching OpenKnowledge desktop (use `ok start` for the browser server, or `OK_FORCE_BROWSER=1` to always skip)"),r===`darwin`){P(`open`,[`-b`,I],{spawn:e.spawn});return}let i=t?.bundlePath;if(!i){n(`Desktop launch skipped: no resolved desktop executable (caller bug).`);return}P(i,[],{spawn:e.spawn})}function J(e=`no-bundle`){switch(e){case`no-bundle`:return`Desktop app not found (checked the standard install locations for this OS). Install it from https://openknowledge.ai/download, or omit --mode for browser mode.`;case`darwin-only`:case`unsupported-platform`:return`Desktop app is not available on this platform. Use --mode=browser, or omit --mode for the server fallback.`;case`headless`:return`Desktop launch is gated in headless contexts (CI, SSH, non-TTY stdout). Set OK_FORCE_DESKTOP=1 to override, or use --mode=browser.`;case`force-browser`:return`OK_FORCE_BROWSER=1 is set — desktop dispatch is disabled. Unset it to use --mode=app.`;case`stat-error`:return`Failed to inspect the desktop install (filesystem error). Check permissions or use --mode=browser.`;case`available`:return`Desktop app appears available but launch dispatch did not fire (caller bug).`}}function Y(e,t,o){let s=i[e],c=e===`opencode`?n:r,l=[],u=s.projectConfigPath?.(t);u!==void 0&&l.push({scope:`project`,configPath:u});try{l.push({scope:`user`,configPath:s.configPath(t,o)})}catch{}for(let n of l){let r=a(s,t,o,n.configPath);if(r!==null&&c(r))return{editorId:e,scope:n.scope,configPath:n.configPath}}return null}export{q as a,F as c,C as d,T as f,K as i,A as l,I as n,J as o,E as p,z as r,P as s,Y as t,D as u};
|
|
3
|
+
//# sourceMappingURL=acp-harness-probe-DEQm0Br1.mjs.map
|