@inkeep/open-knowledge 0.25.0-beta.23 → 0.25.0-beta.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/dist/assets/skills/discovery/SKILL.md +1 -1
  2. package/dist/assets/skills/project/SKILL.md +1 -1
  3. package/dist/cli.mjs +66 -66
  4. package/dist/constants-iWbPQkJK.mjs +2 -0
  5. package/dist/{dist-TG9U-N9P.mjs → dist-AG4Gq9ev.mjs} +7 -7
  6. package/dist/dist-BWUwqOdN.mjs +1 -0
  7. package/dist/{gh-detect-agW-_3XF.mjs → gh-detect-DD9zzsz3.mjs} +2 -2
  8. package/dist/index.d.mts +28 -1
  9. package/dist/index.mjs +1 -1
  10. package/dist/init-CEm6nwzJ.mjs +321 -0
  11. package/dist/init-DdHMBZQv.mjs +1 -0
  12. package/dist/{loader-CSvhwjWc.mjs → loader-0b2ck7Bf.mjs} +3 -3
  13. package/dist/loader-CscZPyku.mjs +1 -0
  14. package/dist/{preview-Ca2ZjZ3C.mjs → preview-7rLEAzm9.mjs} +2 -2
  15. package/dist/preview-C1m5cGjJ.mjs +1 -0
  16. package/dist/public/assets/{ActivityModeContent-Bq2-szSy.js → ActivityModeContent-BiGyPtzs.js} +1 -1
  17. package/dist/public/assets/{DocumentContext-Cp5LrwUt.js → DocumentContext-DzW0Hd8f.js} +1 -1
  18. package/dist/public/assets/{EnableSyncConfirmDialog-D6td4gmM.js → EnableSyncConfirmDialog-DjDTAYSx.js} +1 -1
  19. package/dist/public/assets/{GraphPanel-CzvW16mF.js → GraphPanel-BRea0zG5.js} +1 -1
  20. package/dist/public/assets/{ManagedArtifactProperties-7tx2h5fh.js → ManagedArtifactProperties-Bvb-RQEJ.js} +1 -1
  21. package/dist/public/assets/McpConsentDialogBody-C5k8PPDu.js +1 -0
  22. package/dist/public/assets/{PropertyPanel-BYMeaHwv.js → PropertyPanel-BL6tDKwT.js} +1 -1
  23. package/dist/public/assets/{SettingsDialogBody-C4TH7Apf.js → SettingsDialogBody-CqgTnPy8.js} +1 -1
  24. package/dist/public/assets/{ShareBranchSwitchDialog-CAYidTth.js → ShareBranchSwitchDialog-1U2vVhQb.js} +1 -1
  25. package/dist/public/assets/{ShareReceiveDialog-B_g3WoKU.js → ShareReceiveDialog-Dxk-LrDr.js} +1 -1
  26. package/dist/public/assets/{ShareReceiveMissDialog-Bi8yB_Er.js → ShareReceiveMissDialog-Dr6VnJNL.js} +1 -1
  27. package/dist/public/assets/{SkillEditorActions-zGJNqarO.js → SkillEditorActions-BE4zpvxO.js} +1 -1
  28. package/dist/public/assets/{SourceEditor-z66BI1TW.js → SourceEditor-B76IS9B5.js} +1 -1
  29. package/dist/public/assets/{TerminalPanel-vd5LQunA.js → TerminalPanel-CuIUVEfX.js} +1 -1
  30. package/dist/public/assets/{auth-state-cache-CBnUAJVI.js → auth-state-cache-Dl3ZiBZL.js} +1 -1
  31. package/dist/public/assets/{config-provider-VM6ptPr5.js → config-provider-NM1p9Zm_.js} +1 -1
  32. package/dist/public/assets/{dist-BGXCkPeI.js → dist-BkxMNfFN.js} +1 -1
  33. package/dist/public/assets/{doc-hash-CyR3apuv.js → doc-hash-DYyNsXAD.js} +1 -1
  34. package/dist/public/assets/{documents-events-Bsq-Lwvc.js → documents-events-DFqHwl8q.js} +1 -1
  35. package/dist/public/assets/{file-tree-adapter-CI7t-Quy.js → file-tree-adapter-BarjCzXT.js} +1 -1
  36. package/dist/public/assets/{index-BuvV9Y-n.js → index-0Zv6gs2U.js} +7 -7
  37. package/dist/public/assets/{keyboard-shortcuts-BeQiNPv5.js → keyboard-shortcuts-DyCddAiu.js} +1 -1
  38. package/dist/public/assets/{open-managed-artifact-tab-C0CwefFo.js → open-managed-artifact-tab-D3bPW_N7.js} +1 -1
  39. package/dist/public/assets/{pending-receive-nav-store-BPFyzD9L.js → pending-receive-nav-store-CLwh-9nE.js} +1 -1
  40. package/dist/public/assets/{prop-types-DgIMu1uN.js → prop-types-BEZe0Mr0.js} +1 -1
  41. package/dist/public/assets/{receive-store-EKQrlEsf.js → receive-store-BZp1qikL.js} +1 -1
  42. package/dist/public/assets/{selection-context-B7L1o08O.js → selection-context-DDtYeIS_.js} +1 -1
  43. package/dist/public/assets/{skill-actions-BWXoXFJf.js → skill-actions-UwN9vpAE.js} +1 -1
  44. package/dist/public/assets/{skills-api-C8U58cr0.js → skills-api-CJJjd5CV.js} +1 -1
  45. package/dist/public/assets/{target-navigation-intent-D0W-SiFr.js → target-navigation-intent-B_RqIRfv.js} +1 -1
  46. package/dist/public/assets/{typing-burst-detector-g8ADg4Q2.js → typing-burst-detector-8OH-dz6h.js} +1 -1
  47. package/dist/public/index.html +20 -20
  48. package/dist/{repair-launch-json-BdS0KA96.mjs → repair-launch-json-DM2fj4uH.mjs} +2 -2
  49. package/dist/{repair-mcp-configs-YekheR94.mjs → repair-mcp-configs-BTOMQ_a_.mjs} +2 -2
  50. package/dist/repair-skills-BJsTibpj.mjs +3 -0
  51. package/dist/repair-skills-DClA9KZj.mjs +1 -0
  52. package/dist/server-lock-LsXsWtim-BrcDoV-6.mjs +1 -0
  53. package/dist/{server-lock-ltHt39S2-FrJuEUby.mjs → server-lock-ltHt39S2-p0c2u2YF.mjs} +5 -5
  54. package/dist/{src-DVqpkZBo.mjs → src-D3WEfqQJ.mjs} +3 -3
  55. package/dist/{start-CxeFUd5x.mjs → start-DLHNVT7P.mjs} +2 -2
  56. package/dist/start-DPJ4OwpP.mjs +1 -0
  57. package/dist/write-project-skill-DK3lBBLD.mjs +36 -0
  58. package/package.json +1 -1
  59. package/dist/constants-CzBmH11i.mjs +0 -2
  60. package/dist/dist-CDX3FPEf.mjs +0 -1
  61. package/dist/init-BXDoVLHF.mjs +0 -1
  62. package/dist/init-Cel6eyMR.mjs +0 -321
  63. package/dist/loader-Cv-fyaiJ.mjs +0 -1
  64. package/dist/preview-DF3xntXn.mjs +0 -1
  65. package/dist/public/assets/McpConsentDialogBody-BNMbefiw.js +0 -1
  66. package/dist/repair-skills-BEfm4X9B.mjs +0 -3
  67. package/dist/repair-skills-Bz8yC6_P.mjs +0 -1
  68. package/dist/server-lock-LsXsWtim-BLIrqdzC.mjs +0 -1
  69. package/dist/start-DxuxuT3n.mjs +0 -1
  70. package/dist/write-project-skill-qMcfR4xG.mjs +0 -36
@@ -0,0 +1 @@
1
+ import{An as e,J as t,Ri as n,Tn as r,Vt as i,a,c as o,d as s,f as c,fn as l,g as u,h as d,i as f,ji as p,l as m,m as h,n as g,o as _,oa as v,on as y,p as b,r as x,s as S,si as C,t as w,tn as T,u as E}from"./server-lock-ltHt39S2-p0c2u2YF.mjs";import{$ as D,$i as O,$n as k,$r as A,$t as j,A as M,Ai as N,An as P,Ar as F,At as I,B as L,Bi as R,Bn as z,Br as B,Bt as V,C as H,Ci as U,Cn as W,Cr as G,Ct as K,D as q,Di as J,Dn as Y,Dr as X,Dt as Z,E as Q,Ei as $,En as ee,Er as te,Et as ne,F as re,Fi as ie,Fn as ae,Fr as oe,Ft as se,G as ce,Gi as le,Gn as ue,Gr as de,Gt as fe,H as pe,Hi as me,Hn as he,Hr as ge,Ht as _e,I as ve,Ii as ye,In as be,Ir as xe,It as Se,J as Ce,Ji as we,Jn as Te,Jr as Ee,Jt as De,K as Oe,Ki as ke,Kn as Ae,Kr as je,Kt as Me,L as Ne,Li as Pe,Ln as Fe,Lr as Ie,Lt as Le,M as Re,Mi as ze,Mn as Be,Mr as Ve,Mt as He,N as Ue,Ni as We,Nn as Ge,Nr as Ke,Nt as qe,O as Je,Oi as Ye,On as Xe,Or as Ze,Ot as Qe,P as $e,Pi as et,Pn as tt,Pr as nt,Pt as rt,Q as it,Qi as at,Qn as ot,Qr as st,Qt as ct,R as lt,Ri as ut,Rn as dt,Rr as ft,Rt as pt,S as mt,Si as ht,Sn as gt,Sr as _t,St as vt,T as yt,Ti as bt,Tn as xt,Tr as St,Tt as Ct,U as wt,Ui as Tt,Un as Et,Ur as Dt,Ut as Ot,V as kt,Vi as At,Vn as jt,Vr as Mt,Vt as Nt,W as Pt,Wi as Ft,Wn as It,Wr as Lt,Wt as Rt,X as zt,Xi as Bt,Xn as Vt,Xr as Ht,Xt as Ut,Y as Wt,Yi as Gt,Yn as Kt,Yr as qt,Yt as Jt,Z as Yt,Zi as Xt,Zn as Zt,Zr as Qt,Zt as $t,_ as en,_i as tn,_n as nn,_r as rn,_t as an,a as on,aa as sn,ai as cn,an as ln,ar as un,at as dn,b as fn,ba as pn,bi as mn,bn as hn,br as gn,bt as _n,c as vn,ci as yn,cn as bn,cr as xn,ct as Sn,d as Cn,di as wn,dn as Tn,dr as En,dt as Dn,ea as On,ei as kn,en as An,er as jn,et as Mn,f as Nn,fi as Pn,fn as Fn,fr as In,ft as Ln,g as Rn,gi as zn,gn as Bn,gr as Vn,gt as Hn,h as Un,hi as Wn,hn as Gn,hr as Kn,ht as qn,i as Jn,ia as Yn,ii as Xn,in as Zn,ir as Qn,it as $n,j as er,ji as tr,jn as nr,jr as rr,jt as ir,k as ar,ki as or,kn as sr,kr as cr,kt as lr,l as ur,li as dr,ln as fr,lr as pr,lt as mr,m as hr,mi as gr,mn as _r,mr as vr,mt as yr,n as br,na as xr,ni as Sr,nn as Cr,nr as wr,nt as Tr,o as Er,oa as Dr,oi as Or,on as kr,or as Ar,ot as jr,p as Mr,pi as Nr,pn as Pr,pr as Fr,pt as Ir,q as Lr,qi as Rr,qn as zr,qr as Br,qt as Vr,r as Hr,ra as Ur,ri as Wr,rn as Gr,rr as Kr,rt as qr,s as Jr,sa as Yr,si as Xr,sn as Zr,sr as Qr,st as $r,t as ei,ta as ti,ti as ni,tn as ri,tr as ii,tt as ai,u as oi,ui as si,un as ci,ur as li,ut as ui,v as di,vi as fi,vn as pi,vr as mi,vt as hi,w as gi,wi as _i,wn as vi,wr as yi,wt as bi,x as xi,xi as Si,xn as Ci,xr as wi,xt as Ti,y as Ei,ya as Di,yi as Oi,yn as ki,yr as Ai,yt as ji,z as Mi,zi as Ni,zn as Pi,zr as Fi,zt as Ii}from"./dist-AG4Gq9ev.mjs";export{ei as AGENT_ID_MAX_LEN,br as AGENT_ID_RE,Hr as AGENT_WRITE_ORIGIN,Jn as AgentFocusBroadcaster,on as AgentPresenceBroadcaster,Er as AgentSessionCapacityError,Jr as AgentSessionManager,vn as AutoStartDisabledError,ur as BUNDLE_IDS,oi as BUNDLE_SCOPE,Cn as BUNDLE_SKILL_NAME,Nn as BacklinkIndex,Mr as CC1Broadcaster,t as CC1_CONTRACT_VERSION,hr as CONFIG_FILENAME,Un as CONFLICT_MARKER_RE,Rn as CURSOR_BUNDLE_PATHS_BY_PLATFORM,en as ConfigSchema,di as DEFAULT_CHECKPOINT_RETENTION,Ei as DEFAULT_EMBEDDINGS_DIMENSIONS,fn as DEFAULT_PACK_ID,xi as EMBEDDINGS_API_KEY_ENV,mt as FILE_SYSTEM_WRITER,H as FILE_WATCHER_ORIGIN,gi as FileEmbeddingsBackend,yt as GIT_PREFLIGHT_FAIL_SPAN_NAME,Q as GIT_UPSTREAM_WRITER,Di as GitDirAccessError,q as GitNotAvailableError,Je as GitTooOldError,ar as HOCUSPOCUS_AUTH_REJECTION_REASONS,M as HocuspocusAuthRejection,er as HocuspocusAuthTokenSchema,Re as INSTALLED_AGENTS_SCHEMES,i as LINEAGE_EPOCH_KEY,Ue as LIVE_DERIVED_INDEX_DEBOUNCE_MS,$e as LOG_MD_TEMPLATE,re as MANAGED_RENAME_ORIGIN,ve as MAX_AGENT_SESSIONS,Ne as MCP_CONNECTION_ID_HEADER,T as MCP_SERVER_NAME,lt as MIN_GIT_VERSION,Mi as MISSING_OK_CONFIG_MESSAGE,pn as MalformedGitPointerError,L as McpLogger,kt as MissingOkConfigError,pe as OBSERVER_SYNC_ORIGIN,wt as OK_OKIGNORE_TEMPLATE,y as ORPHAN_MODES,Pt as PANE_TARGET_TTL_MS,l as PROTOCOL_VERSION,ce as PinoLogger,w as ProcessLockCollisionError,Oe as ProjectGitInitError,Lr as ROLLBACK_ORIGIN,Ce as ROOT_GITIGNORE_TEMPLATE,g as RUNTIME_VERSION,Wt as SERVICE_WRITER,zt as SKILL_INSTALL_EVENTS_FILE_REL,r as SKILL_STATE_TARGETS,Yt as STARTER_FOLDERS,it as STARTER_FOLDER_FRONTMATTER_FILENAME,D as STARTER_PACKS,Mn as STARTER_PACK_IDS,ai as STARTER_TEMPLATES,Tr as STATE_MANIFEST_FILENAME,x as STATE_SCHEMA_VERSION,e as SYSTEM_DOC_NAME,qr as SeedPrerequisiteError,$n as SeedRootDirError,f as ServerLockCollisionError,dn as SingleFileNotAFileError,jr as SingleFileNotFoundError,$r as SingleFileNotMarkdownError,Sn as StateManifestError,mr as TagIndex,ui as USER_GLOBAL_BUNDLE_IDS,Dn as UiLockCollisionError,Ln as __getShowAllWalkStatsForTesting,Ir as __resetShowAllWalkStatsForTesting,a as acquireProcessLock,_ as acquireServerLock,yr as acquireUiLock,qn as applyAgentMarkdownWrite,Hn as applyExternalChange,an as applySeed,hi as armPaneTarget,ji as assertCompatibleStateManifest,_n as assertGitAvailable,Ti as assertNeverDiskEvent,vt as attachIdleShutdown,K as bootServer,bi as buildAndOpenSkill,Ct as buildConfigYmlContent,ne as buildExecResult,Z as buildSkillZip,Qe as buildStarterFolderFrontmatterYaml,lr as buildWipTree,I as bundleSkillMdPath,ir as classifyEvents,He as classifyFsPath,qe as clearArmedPaneTarget,rt as clearContributors,se as clearEmbeddingsKeyFromAllBackends,Se as coercePackId,C as colorFromSeed,Le as commitUpstreamImport,pt as commitWip,Ii as commitWipFromTree,V as compareSemver,Nt as containsConflictMarkers,_e as contentHash,Ot as contributorCount,Rt as countShadowObjects,fe as countStaleAgentWipRefs,Me as countWipRefs,Vr as createApiExtension,De as createAssetServeMiddleware,Jt as createContentFilter,Ut as createContentFilterAsync,$t as createEmbeddingsSecretStore,ct as createEphemeralProjectDir,j as createExternalChangeHandler,An as createFileLogger,ri as createLiveDerivedIndexExtension,Cr as createMcpHttpHandler,Gr as createOsProbe,Zn as createPersistenceExtension,ln as createServer,kr as createServerObserverExtension,Zr as createStreamingErrorWriter,bn as createTestLogger,fr as describeStoredEmbeddingsKey,ci as detectClaudeDesktopPresence,Tn as detectGit,Fn as detectProjectShape,Pr as discoverLockDirs,_r as emitPreflightFailureSpan,Gn as encodeDocName,Bn as encodeFolderRoute,nn as encodeSkillRoute,pi as ensureProjectGit,ki as errorResponse,hn as evictStaleTrackerEntries,Ci as extractOkBinaryPath,gt as extractWikiLinksFromMarkdown,W as fallbackPaths,vi as findEnclosingGitRoot,xt as findEnclosingProjectRoot,ee as flushFileLogger,Y as formatAuthRejectionWire,Xe as formatContributors,sr as formatContributorsFrom,P as formatPackRationale,nr as gcCheckpointRefs,Be as getCurrentMcpLogger,Ge as getLocalDir,tt as getLogFilePath,ae as getLogger,be as getLogsDir,Fe as getMeter,dt as getMetrics,Pi as getTracer,z as handleCollabSocketError,jt as handleSpawnCursor,he as hasGcLogLatch,p as iconFromClientName,Et as incrementCollabSocketFilteredError,It as incrementServerObserverFire,ue as initContent,Ae as initShadowRepo,zr as initTelemetry,Te as initToleranceTelemetryWriter,Kt as installPrettyZodErrors,Vt as installTestLoggers,Zt as installUserSkill,ot as isAllowedApiOrigin,k as isAllowedWorkspaceHostHeader,jn as isConfigDoc,ii as isHocuspocusAuthRejectionReason,wr as isKnownPackId,Kr as isLinkIndexExcludedDoc,Qn as isLoopbackAddress,un as isManagedArtifactDoc,n as isOrphanMode,Ar as isPairedWriteOrigin,Qr as isPathWithinDir,S as isProcessAlive,xn as isProjectRoot,pr as isProjectSkillManaged,li as isReservedForUserTree,En as isSelfWrite,In as isSystemDoc,Fr as isToleranceTelemetryEnabled,o as isValidLockPid,vr as lastKnownHash,Kn as listRescueCheckpoints,Vn as listStarterPacks,rn as loadPrincipal,m as lockFilePath,mi as loggerFactory,Ai as logsCurrentPath,gn as logsPreviousPath,wi as makeLazyEmbeddingsKeyStore,_t as mountMcpAndApi,G as normalizeFsPath,yi as packageVersionMajorMinor,St as parseAuthRejectionWire,te as parseGitVersion,X as parseHocuspocusAuthToken,Ze as parseKeepaliveConnectionId,cr as pathToDocName,F as planSeed,rr as prepareSingleFileOpen,Ve as processCommand,Ke as processUsage,nt as readAllTargets,oe as readArmedPaneTarget,xe as readBranchFromHead,Ie as readBundleDecision,E as readProcessLock,s as readProcessLockDetailed,ft as readProjectLocalSemanticConfig,c as readServerLock,Fi as readServerPackageVersion,B as readSkillInstallStateSnapshot,Mt as readSkillManagement,ge as readStateManifest,Dt as readTargetRecordedAt,Lt as readTargetVersion,de as readUiLock,je as reconcile,Br as recordContributor,Ee as recordSkillInstallEvent,qt as registerAllTools,Ht as registerWrite,b as releaseProcessLock,h as releaseServerLock,Qt as releaseUiLock,st as removeLastKnownHash,A as resetMetrics,v as resolveBundleEnabled,kn as resolveBundledSkillDir,ni as resolveContentDir,Sr as resolveCursorBinaryDefault,Wr as resolveCursorSpawnInvocation,Xn as resolveLockDir,cn as resolvePack,Or as resolvePackageVersion,Xr as resolveUiInfo,yn as restoreContributors,dr as restoreLifecycleFromConflictsJson,si as rewriteMarkdownLinksForDocumentRename,wn as rewriteWikiLinksForDocumentRename,Pn as runAuthReposSubprocess,Nr as runAuthStatusSubprocess,gr as runCloneSubprocess,Wn as runDeviceFlowSubprocess,zn as runWithMcpLogger,tn as safeContentPath,fi as safeSubdir,Oi as safetyCheckpoint,mn as sanitizeClientName,Si as saveInMemoryCheckpoint,ht as saveVersion,U as seedBasenameIndex,_i as serializeError,bt as setActiveSpanAttributes,$ as shadowGit,J as shutdownTelemetry,Ye as skillManagementPath,or as spansCurrentPath,N as spansPreviousPath,tr as spawnDetached,ze as splitMarkdownBlocks,We as startWatcher,et as streamingProblemEvent,ie as swapContributors,ye as teardownToleranceTelemetryWriter,Pe as toBroadcasterKey,ut as tracedAppendFileSync,Ni as tracedLinkSync,R as tracedMkdir,At as tracedMkdirSync,me as tracedRename,Tt as tracedRenameSync,Ft as tracedRmSync,le as tracedRmdirSync,ke as tracedUnlinkSync,Rr as tracedWriteFile,we as tracedWriteFileSync,Gt as updateLastKnownHash,d as updateProcessLockPort,u as updateServerLockPort,Bt as updateUiLockPort,Xt as validateAgentId,at as validateCloneInputs,O as validateSkillZip,On as withSpan,ti as withSpanSync,xr as writeBundleDecision,Ur as writeRootGitignoreForNewRepo,Yn as writeSkillManagement,sn as writeStateManifest,Dr as writeTargetVersion,Yr as writeTracker};
@@ -1,3 +1,3 @@
1
- import{zo as e}from"./server-lock-ltHt39S2-FrJuEUby.mjs";import{execFileSync as t}from"node:child_process";import{dirname as n,join as r}from"node:path";import{homedir as i}from"node:os";import{existsSync as a,mkdirSync as o,readFileSync as s,writeFileSync as c}from"node:fs";var l=e();const u=`open-knowledge`;function d(e){try{e()}catch{}}var f=class{backend=`keyring`;constructor(e){this.onKeychainRead=e}async get(e){let{Entry:t}=await import(`@napi-rs/keyring`),n;try{n=new t(u,e).getPassword()}catch(t){return d(()=>this.onKeychainRead?.({kind:`read-error`,host:e,error:t instanceof Error?t.name:`unknown`})),null}if(n==null)return d(()=>this.onKeychainRead?.({kind:`absent`,host:e})),null;try{return JSON.parse(n)}catch{return d(()=>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(u,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(u,e).deletePassword()}catch{}}},p=class{backend=`file`;authFile;constructor(e){this.authFile=e??r(i(),`.ok`,`auth.yml`)}read(){if(!a(this.authFile))return{};try{return(0,l.parse)(s(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=n(this.authFile);a(t)||o(t,{recursive:!0,mode:448}),c(this.authFile,(0,l.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)}},m=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 h(e,t){try{let{Entry:n}=await import(`@napi-rs/keyring`);return new n(u,`__probe__`),process.stderr.write(`[auth] token storage: OS keychain
1
+ import{Bo as e}from"./server-lock-ltHt39S2-p0c2u2YF.mjs";import{execFileSync as t}from"node:child_process";import{dirname as n,join as r}from"node:path";import{homedir as i}from"node:os";import{existsSync as a,mkdirSync as o,readFileSync as s,writeFileSync as c}from"node:fs";var l=e();const u=`open-knowledge`;function d(e){try{e()}catch{}}var f=class{backend=`keyring`;constructor(e){this.onKeychainRead=e}async get(e){let{Entry:t}=await import(`@napi-rs/keyring`),n;try{n=new t(u,e).getPassword()}catch(t){return d(()=>this.onKeychainRead?.({kind:`read-error`,host:e,error:t instanceof Error?t.name:`unknown`})),null}if(n==null)return d(()=>this.onKeychainRead?.({kind:`absent`,host:e})),null;try{return JSON.parse(n)}catch{return d(()=>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(u,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(u,e).deletePassword()}catch{}}},p=class{backend=`file`;authFile;constructor(e){this.authFile=e??r(i(),`.ok`,`auth.yml`)}read(){if(!a(this.authFile))return{};try{return(0,l.parse)(s(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=n(this.authFile);a(t)||o(t,{recursive:!0,mode:448}),c(this.authFile,(0,l.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)}},m=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 h(e,t){try{let{Entry:n}=await import(`@napi-rs/keyring`);return new n(u,`__probe__`),process.stderr.write(`[auth] token storage: OS keychain
2
2
  `),d(()=>t?.onBackendSelected?.({backend:`keyring`})),new m(new f(t?.onKeychainRead),new p(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`),d(()=>t?.onBackendSelected?.({backend:`file`,reason:r})),new p(e)}}function g(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 p(e))},n)});try{return await Promise.race([h(e),r])}catch{return new p(e)}finally{t!==null&&clearTimeout(t)}})(),t}}function _(e){let t=g(e);return{async get(e){let n=await(await t()).get(e);return n===null?null:{token:n.token}}}}function v(e){let t=g(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 y(e,t){let n=[],r=new p(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(u,`__probe__`);let r,a=await new f(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(u,e).deletePassword(),n.push(`keychain`)}catch(e){i=e instanceof Error?e.name:`delete-error`}}catch{}return{touched:n,keychainError:i}}const b=[`/opt/homebrew/bin/gh`,`/usr/local/bin/gh`,`/opt/local/bin/gh`,`/snap/bin/gh`,`/usr/bin/gh`];function x(e,n={}){let r=n._exec??t,i=n._fileExists??a,o=[`auth`,`token`,...e?[`--hostname`,e]:[]],s=[`gh`,...b.filter(i)];for(let e of s)try{let t=r(e,o,{encoding:`utf-8`,stdio:[`ignore`,`pipe`,`pipe`],timeout:5e3}).toString().trim();if(t.length>0)return{available:!0,token:t}}catch{}return{available:!1}}export{v as a,_ as i,y as n,h as r,x as t};
3
- //# sourceMappingURL=gh-detect-agW-_3XF.mjs.map
3
+ //# sourceMappingURL=gh-detect-DD9zzsz3.mjs.map
package/dist/index.d.mts CHANGED
@@ -1125,6 +1125,33 @@ interface ResolveProjectRootOptions {
1125
1125
  */
1126
1126
  declare function resolveProjectRoot(cwd: string, opts?: ResolveProjectRootOptions): ResolveProjectRootResult;
1127
1127
  //#endregion
1128
+ //#region src/integrations/skill-teardown.d.ts
1129
+ interface SkillBundleTarget {
1130
+ /** Absolute path of the bundle directory to remove. */
1131
+ path: string;
1132
+ /** Which built-in user-global bundle this directory holds. */
1133
+ bundleId: BundleId;
1134
+ /** `central` = the shared `~/.agents/skills` store; `host` = a per-editor dir. */
1135
+ scope: 'central' | 'host';
1136
+ /** The editor host dir (e.g. `.claude`) for `host`-scope targets. */
1137
+ hostDir?: string;
1138
+ }
1139
+ /**
1140
+ * Every user-global built-in skill-bundle directory OK installs, for the given
1141
+ * home dir. Ordered central-first per bundle so plan output reads bundle by
1142
+ * bundle.
1143
+ */
1144
+ declare function userGlobalSkillBundleTargets(home: string): SkillBundleTarget[];
1145
+ /**
1146
+ * Remove ONE user-global bundle's directories (central + every per-host copy)
1147
+ * from disk. Used by the opt-out paths (dialog decline, `ok init --no-skills`,
1148
+ * the reclaim/sweep gate) so an unchecked bundle actually leaves — the exact
1149
+ * reverse of `installUserBundleToHostDirs`. Tolerant of already-absent dirs
1150
+ * (`rmSync` with `force`). Only the specific `open-knowledge-*` dirs, never the
1151
+ * shared `~/.agents/skills` root.
1152
+ */
1153
+ declare function removeUserGlobalSkillBundle(home: string, bundleId: BundleId): void;
1154
+ //#endregion
1128
1155
  //#region src/integrations/write-project-ai-integrations.d.ts
1129
1156
  interface ProjectAiIntegrationsResult {
1130
1157
  /** Per-(editor × integration) outcomes — MCP config and the project-local
@@ -1136,5 +1163,5 @@ interface ProjectAiIntegrationsResult {
1136
1163
  }
1137
1164
  declare function writeProjectAiIntegrations(projectDir: string, selectedEditorIds: readonly EditorId[], installOptions?: McpInstallOptions): ProjectAiIntegrationsResult;
1138
1165
  //#endregion
1139
- export { ALL_EDITOR_IDS, EDITOR_LABELS, EDITOR_TARGETS, type EditorId, type EditorMcpResult, type EditorMcpTarget, type ExcludeWriteResult, type ExpectedShareRepo, type GhDetectResult, HOSTS_WITH_USER_SKILL_DIR, type IntegrationWriteOutcome, LAUNCH_CONFIG_NAME, LAUNCH_UI_CHAIN_SENTINEL, LAUNCH_UI_CHAIN_V1, type LaunchJsonResult, type LoadConfigResult, type McpConfigDeclineEvent, type McpConfigDeclineScope, type McpConfigMigrateEvent, type McpConfigMigrateScope, type McpDeclineReason, type McpEntryClassification, type McpInstallOptions, PATH_SHIM_BEGIN, PATH_SHIM_BLOCK_RE, PATH_SHIM_END, type ParsedGitHubBlobUrl, type ParsedGitHubShareTarget, type ParsedGitHubTreeUrl, type PathDiscovery, type PathInstallConsent, type PathInstallMarker, type PreviewResult, type ProjectAiIntegrationsResult, type ResolveProjectRootOptions, type ResolveProjectRootResult, type ShareFolderValidationResult, type SharingMode, type TokenStore, type TrackedRefusal, type UserMcpConfigsOptions, addOkPathsToGitExclude, assertProjectPathSafe, buildManagedServerEntry, buildMcpConfigDeclineEvent, buildMcpConfigMigrateEvent, classifyExistingMcpEntry, createTokenStore, detectGh, detectInstalledEditors, formatTrackedRemediation, getExcludedOkPaths, getOkArtifactPaths, isEntryUpToDate, isOwnManagedEntry, loadConfig, makeLazyProbeTokenStore, parseGitHubBlobUrl, parseGitHubShareUrl, parseGitHubTreeUrl, parseGitUrl, pathInstallMarkerPath, previewContent, probeTrackedOkPaths, readExistingMcpEntry, readSharingMode, removeOkPathsFromGitExclude, resolveProjectRoot, runStop, scaffoldLaunchJson, truncatePriorEntry, validateLocalFolderForShare, writeEditorMcpConfig, writeProjectAiIntegrations, writeUserMcpConfigs };
1166
+ export { ALL_EDITOR_IDS, EDITOR_LABELS, EDITOR_TARGETS, type EditorId, type EditorMcpResult, type EditorMcpTarget, type ExcludeWriteResult, type ExpectedShareRepo, type GhDetectResult, HOSTS_WITH_USER_SKILL_DIR, type IntegrationWriteOutcome, LAUNCH_CONFIG_NAME, LAUNCH_UI_CHAIN_SENTINEL, LAUNCH_UI_CHAIN_V1, type LaunchJsonResult, type LoadConfigResult, type McpConfigDeclineEvent, type McpConfigDeclineScope, type McpConfigMigrateEvent, type McpConfigMigrateScope, type McpDeclineReason, type McpEntryClassification, type McpInstallOptions, PATH_SHIM_BEGIN, PATH_SHIM_BLOCK_RE, PATH_SHIM_END, type ParsedGitHubBlobUrl, type ParsedGitHubShareTarget, type ParsedGitHubTreeUrl, type PathDiscovery, type PathInstallConsent, type PathInstallMarker, type PreviewResult, type ProjectAiIntegrationsResult, type ResolveProjectRootOptions, type ResolveProjectRootResult, type ShareFolderValidationResult, type SharingMode, type SkillBundleTarget, type TokenStore, type TrackedRefusal, type UserMcpConfigsOptions, addOkPathsToGitExclude, assertProjectPathSafe, buildManagedServerEntry, buildMcpConfigDeclineEvent, buildMcpConfigMigrateEvent, classifyExistingMcpEntry, createTokenStore, detectGh, detectInstalledEditors, formatTrackedRemediation, getExcludedOkPaths, getOkArtifactPaths, isEntryUpToDate, isOwnManagedEntry, loadConfig, makeLazyProbeTokenStore, parseGitHubBlobUrl, parseGitHubShareUrl, parseGitHubTreeUrl, parseGitUrl, pathInstallMarkerPath, previewContent, probeTrackedOkPaths, readExistingMcpEntry, readSharingMode, removeOkPathsFromGitExclude, removeUserGlobalSkillBundle, resolveProjectRoot, runStop, scaffoldLaunchJson, truncatePriorEntry, userGlobalSkillBundleTargets, validateLocalFolderForShare, writeEditorMcpConfig, writeProjectAiIntegrations, writeUserMcpConfigs };
1140
1167
  //# sourceMappingURL=index.d.mts.map
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- import{i as e,r as t,t as n}from"./gh-detect-agW-_3XF.mjs";import{F as r,I as i,L as a,M as o,N as s,P as c,a as l,b as u,c as d,i as f,j as p,l as m,n as h,p as g,v as _,w as v,x as y}from"./init-Cel6eyMR.mjs";import{_ as b,d as x,g as S,i as C,l as w,n as T,p as E,r as D,t as O,u as k,v as A,y as j}from"./src-DVqpkZBo.mjs";import{c as M,d as N,l as P,o as F,r as I,s as L,t as R,u as z}from"./write-project-skill-qMcfR4xG.mjs";import{n as B}from"./loader-CSvhwjWc.mjs";import{n as V}from"./preview-Ca2ZjZ3C.mjs";import{n as H,t as U}from"./mcp-migrate-event-D0NrGjvc.mjs";export{I as ALL_EDITOR_IDS,F as EDITOR_LABELS,L as EDITOR_TARGETS,M as HOSTS_WITH_USER_SKILL_DIR,h as LAUNCH_CONFIG_NAME,f as LAUNCH_UI_CHAIN_SENTINEL,l as LAUNCH_UI_CHAIN_V1,w as PATH_SHIM_BEGIN,k as PATH_SHIM_BLOCK_RE,x as PATH_SHIM_END,p as addOkPathsToGitExclude,R as assertProjectPathSafe,P as buildManagedServerEntry,D as buildMcpConfigDeclineEvent,U as buildMcpConfigMigrateEvent,d as classifyExistingMcpEntry,t as createTokenStore,n as detectGh,m as detectInstalledEditors,o as formatTrackedRemediation,s as getExcludedOkPaths,c as getOkArtifactPaths,z as isEntryUpToDate,N as isOwnManagedEntry,B as loadConfig,e as makeLazyProbeTokenStore,S as parseGitHubBlobUrl,b as parseGitHubShareUrl,A as parseGitHubTreeUrl,j as parseGitUrl,E as pathInstallMarkerPath,V as previewContent,r as probeTrackedOkPaths,g as readExistingMcpEntry,i as readSharingMode,a as removeOkPathsFromGitExclude,v as resolveProjectRoot,C as runStop,_ as scaffoldLaunchJson,H as truncatePriorEntry,T as validateLocalFolderForShare,u as writeEditorMcpConfig,O as writeProjectAiIntegrations,y as writeUserMcpConfigs};
1
+ import{i as e,r as t,t as n}from"./gh-detect-DD9zzsz3.mjs";import{F as r,I as i,L as a,M as o,N as s,P as c,R as l,S as u,T as d,a as f,c as p,i as m,l as h,n as g,p as _,x as v,y}from"./init-CEm6nwzJ.mjs";import{_ as b,d as x,g as S,i as C,l as w,n as T,p as E,r as D,t as O,u as k,v as A,y as j}from"./src-D3WEfqQJ.mjs";import{a as M,c as N,d as P,f as F,i as I,l as L,p as R,r as z,t as B,u as V}from"./write-project-skill-DK3lBBLD.mjs";import{n as H}from"./loader-0b2ck7Bf.mjs";import{n as U}from"./preview-7rLEAzm9.mjs";import{n as W,t as G}from"./mcp-migrate-event-D0NrGjvc.mjs";export{M as ALL_EDITOR_IDS,N as EDITOR_LABELS,L as EDITOR_TARGETS,V as HOSTS_WITH_USER_SKILL_DIR,g as LAUNCH_CONFIG_NAME,m as LAUNCH_UI_CHAIN_SENTINEL,f as LAUNCH_UI_CHAIN_V1,w as PATH_SHIM_BEGIN,k as PATH_SHIM_BLOCK_RE,x as PATH_SHIM_END,o as addOkPathsToGitExclude,B as assertProjectPathSafe,P as buildManagedServerEntry,D as buildMcpConfigDeclineEvent,G as buildMcpConfigMigrateEvent,p as classifyExistingMcpEntry,t as createTokenStore,n as detectGh,h as detectInstalledEditors,s as formatTrackedRemediation,c as getExcludedOkPaths,r as getOkArtifactPaths,F as isEntryUpToDate,R as isOwnManagedEntry,H as loadConfig,e as makeLazyProbeTokenStore,S as parseGitHubBlobUrl,b as parseGitHubShareUrl,A as parseGitHubTreeUrl,j as parseGitUrl,E as pathInstallMarkerPath,U as previewContent,i as probeTrackedOkPaths,_ as readExistingMcpEntry,a as readSharingMode,l as removeOkPathsFromGitExclude,z as removeUserGlobalSkillBundle,d as resolveProjectRoot,C as runStop,y as scaffoldLaunchJson,W as truncatePriorEntry,I as userGlobalSkillBundleTargets,T as validateLocalFolderForShare,v as writeEditorMcpConfig,O as writeProjectAiIntegrations,u as writeUserMcpConfigs};