@inkeep/open-knowledge 0.63.0-beta.14 → 0.63.0-beta.15

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 (76) hide show
  1. package/dist/{acp-harness-probe-DRbySBVr.mjs → acp-harness-probe-C4iHkeM8.mjs} +2 -2
  2. package/dist/cli.mjs +6 -6
  3. package/dist/constants-BRkzM7uA.mjs +2 -0
  4. package/dist/index.mjs +1 -1
  5. package/dist/init-CZpSLmdU.mjs +1 -0
  6. package/dist/{init-44bY7bDu.mjs → init-XMbWjso8.mjs} +3 -3
  7. package/dist/{launch-json-removal-NGM0vd0O.mjs → launch-json-removal-BiZLUU31.mjs} +2 -2
  8. package/dist/{loader-Bqy2LPc4.mjs → loader-CVDhU5xC.mjs} +2 -2
  9. package/dist/loader-DMPwRLmw.mjs +1 -0
  10. package/dist/{open-browser-CTBKeB6u.mjs → open-browser-gwcJC18V.mjs} +2 -2
  11. package/dist/{preview-CBcNW71i.mjs → preview-CdSoc1z2.mjs} +2 -2
  12. package/dist/preview-R0sdPHy_.mjs +1 -0
  13. package/dist/public/assets/{ActivityModeContent-DpSXlSDK.js → ActivityModeContent-CkdaznRM.js} +1 -1
  14. package/dist/public/assets/{AddPropertiesButton-D4JAaZQQ.js → AddPropertiesButton-CvM0BKAc.js} +1 -1
  15. package/dist/public/assets/{AgentDiffPane-CyDxOvCL.js → AgentDiffPane-Bnwlf1Li.js} +1 -1
  16. package/dist/public/assets/{AgentThreadClientBinder-0PMIVX8t.js → AgentThreadClientBinder-D3-u9JDY.js} +1 -1
  17. package/dist/public/assets/{CodeMirrorPropInput-DruAtwJ7.js → CodeMirrorPropInput-CG6EP7Wy.js} +1 -1
  18. package/dist/public/assets/{DocumentContext-BAge_zSA.js → DocumentContext-Bvx7mXXE.js} +2 -2
  19. package/dist/public/assets/{ExcalidrawDocEditor-CHNZnMVl.js → ExcalidrawDocEditor-bKvVPHEp.js} +1 -1
  20. package/dist/public/assets/FeedbackForm-BcWkKyUY.js +1 -0
  21. package/dist/public/assets/{ImportSkillDialog-BpdACb4T.js → ImportSkillDialog-DZ0eTUfk.js} +1 -1
  22. package/dist/public/assets/{ManagedArtifactProperties-CAjO5kPP.js → ManagedArtifactProperties-DOopSr77.js} +1 -1
  23. package/dist/public/assets/ManagedArtifactProperties-DyBKBJky.js +1 -0
  24. package/dist/public/assets/{MermaidDocEditor-sVFVDRu0.js → MermaidDocEditor-Bnr9cCBQ.js} +1 -1
  25. package/dist/public/assets/{PropertyDisplayRow-Zs1Dojtm.js → PropertyDisplayRow-Cqo45U9W.js} +1 -1
  26. package/dist/public/assets/SessionsHost-DPPwdpa6.js +2 -0
  27. package/dist/public/assets/{SettingsDialogBody-BMGAvrlE.js → SettingsDialogBody-DS5WxJ_c.js} +1 -1
  28. package/dist/public/assets/{SkillInstallMenu-BIQ8kFyt.js → SkillInstallMenu-Ekfu2KMU.js} +1 -1
  29. package/dist/public/assets/{SkillToolbarControls-NfRRvRVu.js → SkillToolbarControls-CNe6pc04.js} +1 -1
  30. package/dist/public/assets/{SourceEditor-D2uTTlMz.js → SourceEditor-kFqRpbcx.js} +1 -1
  31. package/dist/public/assets/{TerminalWindowApp-C7BK93wZ.js → TerminalWindowApp-D0UuAi49.js} +1 -1
  32. package/dist/public/assets/{TextDocEditor-Cv822TBa.js → TextDocEditor-BDYvjXou.js} +1 -1
  33. package/dist/public/assets/{ThreadView-BrcLsj4M.js → ThreadView-Ca9jMAPt.js} +4 -4
  34. package/dist/public/assets/{TimelineDiffPane-COkWCc-p.js → TimelineDiffPane-CXMGhQWd.js} +1 -1
  35. package/dist/public/assets/{agent-diff-store-BzoWerAN.js → agent-diff-store-BWKp12gT.js} +1 -1
  36. package/dist/public/assets/{auth-state-cache-BY_HBQxD.js → auth-state-cache-CE8T6IzT.js} +1 -1
  37. package/dist/public/assets/{comment-chips-ENEVohZ7.js → comment-chips-lFGydPzB.js} +1 -1
  38. package/dist/public/assets/globals-Br_tCgC1.css +1 -0
  39. package/dist/public/assets/{index-BxqdFknQ.js → index-BbMnlVFR.js} +7 -7
  40. package/dist/public/assets/{progress-BpDlLX4d.js → progress-0OtpqQCi.js} +1 -1
  41. package/dist/public/assets/{selection-context-vyl25V2m.js → selection-context-DpPu_Xh_.js} +1 -1
  42. package/dist/public/assets/{src-CXCKDhky.js → src-DbondUJS.js} +1 -1
  43. package/dist/public/assets/thread-client-Dd5imB2t.js +1 -0
  44. package/dist/public/assets/{typing-burst-detector-Dr0Uop8d.js → typing-burst-detector-BRCl1pVd.js} +1 -1
  45. package/dist/public/assets/{uninstall-CXQd-im6.js → uninstall-buWlLaEV.js} +1 -1
  46. package/dist/public/assets/{use-activity-panel-GiVhJhnJ.js → use-activity-panel-7QCLjFWD.js} +1 -1
  47. package/dist/public/assets/{use-open-skill-D21lvadY.js → use-open-skill-Cb6nVVrt.js} +1 -1
  48. package/dist/public/assets/{use-timeline-entry-diff-uDSMtgCJ.js → use-timeline-entry-diff-DRN0Y_os.js} +1 -1
  49. package/dist/public/index.html +16 -16
  50. package/dist/public/uninstall.html +3 -3
  51. package/dist/{repair-launch-json-pD-V682S.mjs → repair-launch-json-CGiiCy_y.mjs} +2 -2
  52. package/dist/{repair-mcp-configs-BztWuczT.mjs → repair-mcp-configs-DJluMHvw.mjs} +2 -2
  53. package/dist/repair-skills-B6gZ9sOT.mjs +1 -0
  54. package/dist/{repair-skills-DD0pO9KG.mjs → repair-skills-DjaHfS6E.mjs} +2 -2
  55. package/dist/{resolve-project-root-BmEYZjtQ.mjs → resolve-project-root-CPytwxzP.mjs} +2 -2
  56. package/dist/{skill-teardown-DJadYmS9.mjs → skill-teardown-D9VvS5qp.mjs} +2 -2
  57. package/dist/src-BWl-Pf3T.mjs +1 -0
  58. package/dist/{src-CNBY5GiX.mjs → src-BvV3skiE.mjs} +2 -2
  59. package/dist/{src-DifwZnFy.mjs → src-Cgbvt9_P.mjs} +342 -342
  60. package/dist/{src-Db2adcph.mjs → src-Y4R4Qtqe.mjs} +1 -1
  61. package/dist/{start-D6zGIr_Q.mjs → start-CR2CT-vo.mjs} +3 -3
  62. package/dist/start-m2eSE7Im.mjs +1 -0
  63. package/package.json +4 -4
  64. package/dist/constants-C7GcNmeI.mjs +0 -2
  65. package/dist/init-JcBDV_oY.mjs +0 -1
  66. package/dist/loader-B56L22Gi.mjs +0 -1
  67. package/dist/preview-CD2IbfNk.mjs +0 -1
  68. package/dist/public/assets/FeedbackForm-zVLbVP8X.js +0 -1
  69. package/dist/public/assets/ManagedArtifactProperties-BLA-YQZP.js +0 -1
  70. package/dist/public/assets/SessionsHost-DDc_pyiu.js +0 -2
  71. package/dist/public/assets/globals-DG05ucI2.css +0 -1
  72. package/dist/public/assets/thread-client-BpWutFry.js +0 -1
  73. package/dist/repair-skills-BKbFH2b2.mjs +0 -1
  74. package/dist/src-qYDMEf4S.mjs +0 -1
  75. package/dist/start-D8D6GD4Q.mjs +0 -1
  76. /package/dist/public/assets/{globals-CuEz5zF0.js → globals-DWxOaSHQ.js} +0 -0
@@ -1 +1 @@
1
- import{J as e,Ms as t,Os as n,Qs as r,Rc as i,W as a,Xs as o,cc as s,js as c,x as l,y as u}from"./src-B5PnzP5L.mjs";import{$ as d,$i as f,$n as p,$r as m,$t as h,A as g,Aa as _,Ai as v,An as y,At as b,B as x,Bi as S,Bn as C,Br as w,Bt as T,C as E,Ca as D,Ci as O,Cn as k,Cr as A,Ct as j,D as M,Da as N,Di as P,Dn as F,Dr as I,Dt as L,E as R,Ea as z,Ei as B,En as V,Er as H,Et as U,F as W,Fi as G,Fn as K,Fr as q,Ft as J,G as Y,Gi as X,Gn as Z,Gr as Q,Gt as $,H as ee,Hi as te,Hn as ne,Hr as re,Ht as ie,I as ae,Ii as oe,In as se,Ir as ce,It as le,J as ue,Ji as de,Jn as fe,Jr as pe,Jt as me,K as he,Ki as ge,Kn as _e,Kr as ve,Kt as ye,L as be,Li as xe,Ln as Se,Lr as Ce,Lt as we,M as Te,Ma as Ee,Mi as De,Mn as Oe,Mt as ke,N as Ae,Ni as je,Nn as Me,Nr as Ne,Nt as Pe,O as Fe,Oa as Ie,Oi as Le,On as Re,Ot as ze,P as Be,Pi as Ve,Pn as He,Pr as Ue,Pt as We,Q as Ge,Qi as Ke,Qn as qe,Qr as Je,Qt as Ye,R as Xe,Ri as Ze,Rn as Qe,Rr as $e,Rt as et,S as tt,Sa as nt,Si as rt,Sn as it,Sr as at,St as ot,T as st,Ta as ct,Ti as lt,Tn as ut,Tr as dt,Tt as ft,U as pt,Ui as mt,Un as ht,Ur as gt,Ut as _t,V as vt,Vi as yt,Vn as bt,Vr as xt,Vt as St,W as Ct,Wi as wt,Wn as Tt,Wr as Et,Wt as Dt,X as Ot,Xi as kt,Xn as At,Xr as jt,Xt as Mt,Y as Nt,Yi as Pt,Yn as Ft,Yr as It,Yt as Lt,Z as Rt,Zi as zt,Zn as Bt,Zr as Vt,Zt as Ht,_ as Ut,_a as Wt,_i as Gt,_n as Kt,_r as qt,a as Jt,aa as Yt,ai as Xt,an as Zt,ar as Qt,at as $t,b as en,ba as tn,bi as nn,bn as rn,br as an,bt as on,c as sn,ca as cn,ci as ln,cn as un,cr as dn,ct as fn,d as pn,da as mn,di as hn,dn as gn,dr as _n,dt as vn,ea as yn,ei as bn,en as xn,er as Sn,et as Cn,f as wn,fa as Tn,fi as En,fn as Dn,fr as On,ft as kn,g as An,ga as jn,gi as Mn,gn as Nn,gr as Pn,h as Fn,ha as In,hi as Ln,hn as Rn,hr as zn,i as Bn,ia as Vn,ii as Hn,in as Un,ir as Wn,it as Gn,j as Kn,ja as qn,ji as Jn,jn as Yn,jt as Xn,k as Zn,ka as Qn,ki as $n,kn as er,kt as tr,l as nr,la as rr,li as ir,ln as ar,lr as or,lt as sr,m as cr,ma as lr,mi as ur,mn as dr,mr as fr,n as pr,na as mr,ni as hr,nn as gr,nr as _r,nt as vr,o as yr,oa as br,oi as xr,on as Sr,or as Cr,ot as wr,p as Tr,pa as Er,pi as Dr,pn as Or,pr as kr,q as Ar,qi as jr,qn as Mr,qr as Nr,qt as Pr,r as Fr,ra as Ir,ri as Lr,rn as Rr,rr as zr,rt as Br,s as Vr,sa as Hr,si as Ur,sn as Wr,sr as Gr,st as Kr,t as qr,ta as Jr,ti as Yr,tn as Xr,tr as Zr,tt as Qr,u as $r,ua as ei,ui as ti,un as ni,ur as ri,ut as ii,v as ai,va as oi,vi as si,vn as ci,vr as li,w as ui,wa as di,wi as fi,wn as pi,wr as mi,wt as hi,x as gi,xa as _i,xn as vi,xr as yi,xt as bi,y as xi,ya as Si,yi as Ci,yn as wi,yr as Ti,yt as Ei,z as Di,zi as Oi,zn as ki,zr as Ai,zt as ji}from"./src-DifwZnFy.mjs";import{C as Mi,E as Ni,T as Pi,_ as Fi,b as Ii,c as Li,d as Ri,g as zi,i as Bi,l as Vi,m as Hi,n as Ui,p as Wi,s as Gi,t as Ki,u as qi,v as Ji,w as Yi,x as Xi,y as Zi}from"./fs-traced-Cu6kXy54.mjs";import{a as Qi,d as $i,f as ea,i as ta,l as na,n as ra,r as ia,t as aa,u as oa}from"./logger-Dq-cRhcP.mjs";import{C as sa,S as ca,_ as la,a as ua,b as da,c as fa,d as pa,f as ma,g as ha,h as ga,i as _a,l as va,m as ya,n as ba,o as xa,p as Sa,r as Ca,s as wa,t as Ta,u as Ea,x as Da}from"./server-lock-_XWgcmNh.mjs";export{D as AGENT_ID_MAX_LEN,di as AGENT_ID_RE,Oi as AGENT_WRITE_ORIGIN,_ as AcpPermissionStore,N as AcpRegistry,lt as AcpThreadManager,O as AgentFocusBroadcaster,rt as AgentPresenceBroadcaster,S as AgentSessionCapacityError,yt as AgentSessionManager,on as AutoStartDisabledError,Ln as BUNDLE_IDS,Mn as BUNDLE_SCOPE,Gt as BUNDLE_SKILL_NAME,Bt as BacklinkIndex,zt as CC1Broadcaster,r as CC1_CONTRACT_VERSION,Wr as CONFIG_FILENAME,Z as CONFLICT_MARKER_RE,q as CURSOR_BUNDLE_PATHS_BY_PLATFORM,xi as ConfigSchema,Ir as DEFAULT_CHECKPOINT_RETENTION,m as DEFAULT_EMBEDDINGS_DIMENSIONS,T as DEFAULT_PACK_ID,Ct as DocumentDurabilityState,bn as EMBEDDINGS_API_KEY_ENV,qr as EPHEMERAL_PROJECT_DIR_PREFIX,wi as ExposureConsentError,Ie as FEATURED_AGENT_IDS,Vn as FILE_SYSTEM_WRITER,Ft as FILE_WATCHER_ORIGIN,Nr as FileEmbeddingsBackend,gr as GIT_PREFLIGHT_FAIL_SPAN_NAME,Yt as GIT_UPSTREAM_WRITER,qn as GitDirAccessError,v as GitNotAvailableError,Jn as GitTooOldError,bi as HOCUSPOCUS_AUTH_REJECTION_REASONS,ot as HocuspocusAuthRejection,j as HocuspocusAuthTokenSchema,Rn as HomeProjectRootError,xt as INSTALLED_AGENTS_SCHEMES,vn as JSON_SCHEMA_DIALECT_2020_12,o as LINEAGE_EPOCH_KEY,vt as LIVE_DERIVED_INDEX_DEBOUNCE_MS,St as LOG_MD_TEMPLATE,b as MANAGED_RENAME_ORIGIN,B as MAX_ACP_THREADS,te as MAX_AGENT_SESSIONS,Le as MCP_CONNECTION_ID_HEADER,n as MCP_SERVER_NAME,mt as MIN_EVICTABLE_IDLE_MS,De as MIN_GIT_VERSION,Y as MISSING_OK_CONFIG_MESSAGE,Ee as MalformedGitPointerError,Br as McpLogger,he as MissingOkConfigError,X as OBSERVER_SYNC_ORIGIN,un as OK_OKIGNORE_TEMPLATE,si as ONBOARDING_BUNDLE_IDS,c as ORPHAN_MODES,i as PROTOCOL_VERSION,aa as PinoLogger,va as ProcessLockCollisionError,pn as ProjectGitInitError,Xn as ROLLBACK_ORIGIN,ar as ROOT_GITIGNORE_TEMPLATE,da as RUNTIME_VERSION,br as SERVICE_WRITER,kr as SKILL_INSTALL_EVENTS_FILE_REL,a as SKILL_STATE_TARGETS,ie as STARTER_FOLDERS,_t as STARTER_FOLDER_FRONTMATTER_FILENAME,Dt as STARTER_PACKS,$ as STARTER_PACK_IDS,ye as STARTER_TEMPLATES,Fe as STATE_MANIFEST_FILENAME,Da as STATE_SCHEMA_VERSION,s as SYSTEM_DOC_NAME,Ye as SeedPrerequisiteError,h as SeedRootDirError,Ta as ServerLockCollisionError,pr as SingleFileNotAFileError,Fr as SingleFileNotFoundError,Bn as SingleFileNotMarkdownError,Zn as StateManifestError,At as TagIndex,Ci as USER_GLOBAL_BUNDLE_IDS,ke as __getShowAllWalkStatsForTesting,Pe as __resetShowAllWalkStatsForTesting,Ea as acquireProcessLock,ba as acquireServerLock,wt as applyAgentMarkdownWrite,ht as applyExternalChange,ji as applySeed,g as assertCompatibleStateManifest,je as assertGitAvailable,Yn as assertNeverDiskEvent,Nn as assertNotHomeProjectRoot,fi as attachAcpThreadSocket,Ei as attachIdleShutdown,en as bootServer,p as buildAndOpenSkill,ni as buildConfigYmlContent,Ge as buildExecResult,rn as buildIngressPolicy,P as buildOkMcpStdioCommand,En as buildSkillZip,Pr as buildStarterFolderFrontmatterYaml,Hr as buildWipTree,nn as bundleSkillMdPath,pe as canonicalProjectKey,Kt as canonicalizeForCompare,Oe as classifyEvents,Ki as classifyFsPath,It as clearAllEmbeddingsKeys,hr as clearContributors,me as coercePackId,u as colorFromSeed,cn as commitUpstreamImport,rr as commitWip,ei as commitWipFromTree,Ve as compareSemver,an as composeEffectiveLinterConfig,yi as composeFrontmatterSchemasConfig,_e as containsConflictMarkers,Me as contentHash,Lr as contributorCount,be as countShadowObjects,Xe as countStaleAgentWipRefs,Di as countWipRefs,We as createApiExtension,tr as createAssetServeMiddleware,ue as createCollaborationHost,Ne as createContentFilter,Ue as createContentFilterAsync,jt as createEmbeddingsSecretStore,Jt as createEphemeralProjectDir,Tt as createExternalChangeHandler,cr as createFileLogger,ee as createLiveDerivedIndexExtension,Ot as createMcpHttpHandler,re as createOsProbe,ae as createPersistenceExtension,st as createServer,Be as createServerObserverExtension,de as createStreamingErrorWriter,ra as createTestLogger,Vt as describeStoredEmbeddingsKey,ai as detectClaudeDesktopPresence,G as detectGit,Kn as detectProjectShape,Sn as detectUserSkillHosts,wr as discoverLockDirs,mi as discoverMarkdownlintConfig,Rr as emitPreflightFailureSpan,d as encodeDocName,Cn as encodeFolderRoute,Qr as encodeSkillRoute,wn as ensureProjectGit,gn as ensureProjectSkillGitignore,Pt as errorResponse,He as evictStaleTrackerEntries,J as extractHeadings,Kr as extractOkBinaryPath,qe as extractWikiLinksFromMarkdown,oe as fallbackPaths,Tr as findEnclosingGitRoot,er as findEnclosingProjectRoot,dt as findNativeMarkdownlintFile,Fn as flushFileLogger,hi as formatAuthRejectionWire,Hn as formatContributors,Xt as formatContributorsFrom,we as formatPackRationale,mn as gcCheckpointRefs,Gn as getCurrentMcpLogger,vi as getIngressContext,ir as getLocalDir,An as getLogFilePath,ia as getLogger,Ut as getLogsDir,la as getMachineId,Zi as getMeter,oi as getMetrics,Ii as getTracer,Si as handleCollabSocketError,ce as handleSpawnCursor,it as hasForwardingHeaders,x as hasGcLogLatch,l as iconFromClientName,tn as incrementCollabSocketFilteredError,_i as incrementServerObserverFire,Dn as initContent,Tn as initShadowRepo,Xi as initTelemetry,tt as initToleranceTelemetryWriter,kn as installJsonSchemaDialect,ii as installPrettyZodErrors,ta as installTestLoggers,Zr as installUserSkill,Re as isAllowedApiOrigin,V as isAllowedWorkspaceHostHeader,Ke as isConfigDoc,ft as isHocuspocusAuthRejectionReason,ci as isHomeDir,k as isHostAdmitted,Lt as isKnownPackId,f as isLinkIndexExcludedDoc,F as isLoopbackAddress,yn as isManagedArtifactDoc,pi as isOriginAdmitted,t as isOrphanMode,ge as isPairedWriteOrigin,Ce as isPathWithinDir,ut as isPeerAdmitted,ca as isProcessAlive,y as isProjectRoot,Jr as isReservedForUserTree,K as isSelfWrite,mr as isSystemDoc,E as isToleranceTelemetryEnabled,sa as isValidLockPid,se as lastKnownHash,Er as listRescueCheckpoints,Mt as listStarterPacks,Qn as loadCustomAgents,W as loadPrincipal,Ca as lockAdvertisesUi,pa as lockBaseUrl,ma as lockFilePath,Qi as loggerFactory,Pn as loginShapedUserinfoUser,na as logsCurrentPath,oa as logsPreviousPath,Je as makeLazyEmbeddingsKeyStore,_a as markServerLockDraining,Ar as mountMcpAndApi,Ui as normalizeFsPath,qt as originGitHubHost,Or as packageVersionMajorMinor,U as parseAuthRejectionWire,xe as parseGitVersion,L as parseHocuspocusAuthToken,Nt as parseKeepaliveConnectionId,Se as pathToDocName,et as planSeed,yr as prepareSingleFileOpen,fn as processCommand,sr as processUsage,Wn as readAllTargets,Qt as readBundleDecision,H as readOwnNativeRules,Sa as readProcessLock,ya as readProcessLockDetailed,pt as readProjectHeadState,ve as readProjectLocalSemanticConfig,ua as readServerLock,Cr as readServerPackageVersion,Gr as readSkillInstallStateSnapshot,Te as readStateManifest,dn as readTargetRecordedAt,or as readTargetVersion,Mr as reconcile,xr as recordContributor,fr as recordSkillInstallEvent,zn as redactShareSubprocessStderr,Rt as registerAllTools,Qe as registerWrite,ga as releaseProcessLock,xa as releaseServerLock,ki as removeLastKnownHash,zr as reportSkillInstall,nt as resetMetrics,_r as resolveBuiltinSkillHosts,e as resolveBundleEnabled,Dr as resolveBundledSkillDir,ti as resolveContentDir,$e as resolveCursorBinaryDefault,Ai as resolveCursorSpawnInvocation,at as resolveEffectiveLinterConfig,Yr as resolveEmbeddingsCredential,M as resolveGitHubAccountFromUrl,hn as resolveLockDir,A as resolveNativeConfigForDoc,I as resolveNativeMarkdownlintConfig,Ht as resolvePack,nr as resolvePackageVersion,On as resolveSkillInstallReportSettings,vr as resolveUiInfo,Ur as restoreContributors,gi as restoreLifecycleFromConflictsJson,Et as rewriteMarkdownLinksForDocumentRename,Q as rewriteWikiLinksForDocumentRename,Un as runAuthReposSubprocess,Zt as runAuthStatusSubprocess,xn as runCloneSubprocess,Sr as runDeviceFlowSubprocess,$t as runWithMcpLogger,gt as safeContentPath,le as safeSubdir,lr as safetyCheckpoint,li as sameGitHubLogin,$n as sanitizeClientName,In as saveInMemoryCheckpoint,jn as saveVersion,ze as seedBasenameIndex,Vr as seedEphemeralProjectDir,sn as serializeError,Mi as setActiveSpanAttributes,jr as setupServerObservers,Wt as shadowGit,Yi as shutdownTelemetry,$i as spansCurrentPath,ea as spansPreviousPath,w as spawnDetached,fe as splitMarkdownBlocks,C as startWatcher,kt as streamingProblemEvent,ln as swapContributors,ui as teardownToleranceTelemetryWriter,ct as toBroadcasterKey,Bi as tracedAppendFileSync,Gi as tracedLinkSync,Li as tracedMkdir,Vi as tracedMkdirSync,qi as tracedRename,Ri as tracedRenameSync,Wi as tracedRmSync,Hi as tracedRmdirSync,zi as tracedUnlinkSync,Fi as tracedWriteFile,Ji as tracedWriteFileSync,R as trustSystemCertificates,$r as untrackTrackedProjectSkillProjection,bt as updateLastKnownHash,ha as updateProcessLockPort,wa as updateServerLockPort,z as validateAgentId,Xr as validateCloneInputs,ur as validateSkillZip,fa as waitForServerLockDrain,Ze as withHiddenWindowsConsole,Pi as withSpan,Ni as withSpanSync,ri as writeBundleDecision,Ti as writeMarkdownlintRule,dr as writeRootGitignoreForNewRepo,Ae as writeStateManifest,_n as writeTargetVersion,ne as writeTracker};
1
+ import{J as e,Ms as t,Os as n,Qs as r,Rc as i,W as a,Xs as o,cc as s,js as c,x as l,y as u}from"./src-B5PnzP5L.mjs";import{$ as d,$i as f,$n as p,$r as m,$t as h,A as g,Aa as _,Ai as v,An as y,At as b,B as x,Bi as S,Bn as C,Br as w,Bt as T,C as E,Ca as D,Ci as O,Cn as k,Cr as A,Ct as j,D as M,Da as N,Di as P,Dn as F,Dr as I,Dt as L,E as R,Ea as z,Ei as B,En as V,Er as H,Et as U,F as W,Fi as G,Fn as K,Fr as q,Ft as J,G as Y,Gi as X,Gn as Z,Gr as Q,Gt as $,H as ee,Hi as te,Hn as ne,Hr as re,Ht as ie,I as ae,Ii as oe,In as se,Ir as ce,It as le,J as ue,Ji as de,Jn as fe,Jr as pe,Jt as me,K as he,Ki as ge,Kn as _e,Kr as ve,Kt as ye,L as be,Li as xe,Ln as Se,Lr as Ce,Lt as we,M as Te,Ma as Ee,Mi as De,Mn as Oe,Mt as ke,N as Ae,Ni as je,Nn as Me,Nr as Ne,Nt as Pe,O as Fe,Oa as Ie,Oi as Le,On as Re,Ot as ze,P as Be,Pi as Ve,Pn as He,Pr as Ue,Pt as We,Q as Ge,Qi as Ke,Qn as qe,Qr as Je,Qt as Ye,R as Xe,Ri as Ze,Rn as Qe,Rr as $e,Rt as et,S as tt,Sa as nt,Si as rt,Sn as it,Sr as at,St as ot,T as st,Ta as ct,Ti as lt,Tn as ut,Tr as dt,Tt as ft,U as pt,Ui as mt,Un as ht,Ur as gt,Ut as _t,V as vt,Vi as yt,Vn as bt,Vr as xt,Vt as St,W as Ct,Wi as wt,Wn as Tt,Wr as Et,Wt as Dt,X as Ot,Xi as kt,Xn as At,Xr as jt,Xt as Mt,Y as Nt,Yi as Pt,Yn as Ft,Yr as It,Yt as Lt,Z as Rt,Zi as zt,Zn as Bt,Zr as Vt,Zt as Ht,_ as Ut,_a as Wt,_i as Gt,_n as Kt,_r as qt,a as Jt,aa as Yt,ai as Xt,an as Zt,ar as Qt,at as $t,b as en,ba as tn,bi as nn,bn as rn,br as an,bt as on,c as sn,ca as cn,ci as ln,cn as un,cr as dn,ct as fn,d as pn,da as mn,di as hn,dn as gn,dr as _n,dt as vn,ea as yn,ei as bn,en as xn,er as Sn,et as Cn,f as wn,fa as Tn,fi as En,fn as Dn,fr as On,ft as kn,g as An,ga as jn,gi as Mn,gn as Nn,gr as Pn,h as Fn,ha as In,hi as Ln,hn as Rn,hr as zn,i as Bn,ia as Vn,ii as Hn,in as Un,ir as Wn,it as Gn,j as Kn,ja as qn,ji as Jn,jn as Yn,jt as Xn,k as Zn,ka as Qn,ki as $n,kn as er,kt as tr,l as nr,la as rr,li as ir,ln as ar,lr as or,lt as sr,m as cr,ma as lr,mi as ur,mn as dr,mr as fr,n as pr,na as mr,ni as hr,nn as gr,nr as _r,nt as vr,o as yr,oa as br,oi as xr,on as Sr,or as Cr,ot as wr,p as Tr,pa as Er,pi as Dr,pn as Or,pr as kr,q as Ar,qi as jr,qn as Mr,qr as Nr,qt as Pr,r as Fr,ra as Ir,ri as Lr,rn as Rr,rr as zr,rt as Br,s as Vr,sa as Hr,si as Ur,sn as Wr,sr as Gr,st as Kr,t as qr,ta as Jr,ti as Yr,tn as Xr,tr as Zr,tt as Qr,u as $r,ua as ei,ui as ti,un as ni,ur as ri,ut as ii,v as ai,va as oi,vi as si,vn as ci,vr as li,w as ui,wa as di,wi as fi,wn as pi,wr as mi,wt as hi,x as gi,xa as _i,xn as vi,xr as yi,xt as bi,y as xi,ya as Si,yi as Ci,yn as wi,yr as Ti,yt as Ei,z as Di,zi as Oi,zn as ki,zr as Ai,zt as ji}from"./src-Cgbvt9_P.mjs";import{C as Mi,E as Ni,T as Pi,_ as Fi,b as Ii,c as Li,d as Ri,g as zi,i as Bi,l as Vi,m as Hi,n as Ui,p as Wi,s as Gi,t as Ki,u as qi,v as Ji,w as Yi,x as Xi,y as Zi}from"./fs-traced-Cu6kXy54.mjs";import{a as Qi,d as $i,f as ea,i as ta,l as na,n as ra,r as ia,t as aa,u as oa}from"./logger-Dq-cRhcP.mjs";import{C as sa,S as ca,_ as la,a as ua,b as da,c as fa,d as pa,f as ma,g as ha,h as ga,i as _a,l as va,m as ya,n as ba,o as xa,p as Sa,r as Ca,s as wa,t as Ta,u as Ea,x as Da}from"./server-lock-_XWgcmNh.mjs";export{D as AGENT_ID_MAX_LEN,di as AGENT_ID_RE,Oi as AGENT_WRITE_ORIGIN,_ as AcpPermissionStore,N as AcpRegistry,lt as AcpThreadManager,O as AgentFocusBroadcaster,rt as AgentPresenceBroadcaster,S as AgentSessionCapacityError,yt as AgentSessionManager,on as AutoStartDisabledError,Ln as BUNDLE_IDS,Mn as BUNDLE_SCOPE,Gt as BUNDLE_SKILL_NAME,Bt as BacklinkIndex,zt as CC1Broadcaster,r as CC1_CONTRACT_VERSION,Wr as CONFIG_FILENAME,Z as CONFLICT_MARKER_RE,q as CURSOR_BUNDLE_PATHS_BY_PLATFORM,xi as ConfigSchema,Ir as DEFAULT_CHECKPOINT_RETENTION,m as DEFAULT_EMBEDDINGS_DIMENSIONS,T as DEFAULT_PACK_ID,Ct as DocumentDurabilityState,bn as EMBEDDINGS_API_KEY_ENV,qr as EPHEMERAL_PROJECT_DIR_PREFIX,wi as ExposureConsentError,Ie as FEATURED_AGENT_IDS,Vn as FILE_SYSTEM_WRITER,Ft as FILE_WATCHER_ORIGIN,Nr as FileEmbeddingsBackend,gr as GIT_PREFLIGHT_FAIL_SPAN_NAME,Yt as GIT_UPSTREAM_WRITER,qn as GitDirAccessError,v as GitNotAvailableError,Jn as GitTooOldError,bi as HOCUSPOCUS_AUTH_REJECTION_REASONS,ot as HocuspocusAuthRejection,j as HocuspocusAuthTokenSchema,Rn as HomeProjectRootError,xt as INSTALLED_AGENTS_SCHEMES,vn as JSON_SCHEMA_DIALECT_2020_12,o as LINEAGE_EPOCH_KEY,vt as LIVE_DERIVED_INDEX_DEBOUNCE_MS,St as LOG_MD_TEMPLATE,b as MANAGED_RENAME_ORIGIN,B as MAX_ACP_THREADS,te as MAX_AGENT_SESSIONS,Le as MCP_CONNECTION_ID_HEADER,n as MCP_SERVER_NAME,mt as MIN_EVICTABLE_IDLE_MS,De as MIN_GIT_VERSION,Y as MISSING_OK_CONFIG_MESSAGE,Ee as MalformedGitPointerError,Br as McpLogger,he as MissingOkConfigError,X as OBSERVER_SYNC_ORIGIN,un as OK_OKIGNORE_TEMPLATE,si as ONBOARDING_BUNDLE_IDS,c as ORPHAN_MODES,i as PROTOCOL_VERSION,aa as PinoLogger,va as ProcessLockCollisionError,pn as ProjectGitInitError,Xn as ROLLBACK_ORIGIN,ar as ROOT_GITIGNORE_TEMPLATE,da as RUNTIME_VERSION,br as SERVICE_WRITER,kr as SKILL_INSTALL_EVENTS_FILE_REL,a as SKILL_STATE_TARGETS,ie as STARTER_FOLDERS,_t as STARTER_FOLDER_FRONTMATTER_FILENAME,Dt as STARTER_PACKS,$ as STARTER_PACK_IDS,ye as STARTER_TEMPLATES,Fe as STATE_MANIFEST_FILENAME,Da as STATE_SCHEMA_VERSION,s as SYSTEM_DOC_NAME,Ye as SeedPrerequisiteError,h as SeedRootDirError,Ta as ServerLockCollisionError,pr as SingleFileNotAFileError,Fr as SingleFileNotFoundError,Bn as SingleFileNotMarkdownError,Zn as StateManifestError,At as TagIndex,Ci as USER_GLOBAL_BUNDLE_IDS,ke as __getShowAllWalkStatsForTesting,Pe as __resetShowAllWalkStatsForTesting,Ea as acquireProcessLock,ba as acquireServerLock,wt as applyAgentMarkdownWrite,ht as applyExternalChange,ji as applySeed,g as assertCompatibleStateManifest,je as assertGitAvailable,Yn as assertNeverDiskEvent,Nn as assertNotHomeProjectRoot,fi as attachAcpThreadSocket,Ei as attachIdleShutdown,en as bootServer,p as buildAndOpenSkill,ni as buildConfigYmlContent,Ge as buildExecResult,rn as buildIngressPolicy,P as buildOkMcpStdioCommand,En as buildSkillZip,Pr as buildStarterFolderFrontmatterYaml,Hr as buildWipTree,nn as bundleSkillMdPath,pe as canonicalProjectKey,Kt as canonicalizeForCompare,Oe as classifyEvents,Ki as classifyFsPath,It as clearAllEmbeddingsKeys,hr as clearContributors,me as coercePackId,u as colorFromSeed,cn as commitUpstreamImport,rr as commitWip,ei as commitWipFromTree,Ve as compareSemver,an as composeEffectiveLinterConfig,yi as composeFrontmatterSchemasConfig,_e as containsConflictMarkers,Me as contentHash,Lr as contributorCount,be as countShadowObjects,Xe as countStaleAgentWipRefs,Di as countWipRefs,We as createApiExtension,tr as createAssetServeMiddleware,ue as createCollaborationHost,Ne as createContentFilter,Ue as createContentFilterAsync,jt as createEmbeddingsSecretStore,Jt as createEphemeralProjectDir,Tt as createExternalChangeHandler,cr as createFileLogger,ee as createLiveDerivedIndexExtension,Ot as createMcpHttpHandler,re as createOsProbe,ae as createPersistenceExtension,st as createServer,Be as createServerObserverExtension,de as createStreamingErrorWriter,ra as createTestLogger,Vt as describeStoredEmbeddingsKey,ai as detectClaudeDesktopPresence,G as detectGit,Kn as detectProjectShape,Sn as detectUserSkillHosts,wr as discoverLockDirs,mi as discoverMarkdownlintConfig,Rr as emitPreflightFailureSpan,d as encodeDocName,Cn as encodeFolderRoute,Qr as encodeSkillRoute,wn as ensureProjectGit,gn as ensureProjectSkillGitignore,Pt as errorResponse,He as evictStaleTrackerEntries,J as extractHeadings,Kr as extractOkBinaryPath,qe as extractWikiLinksFromMarkdown,oe as fallbackPaths,Tr as findEnclosingGitRoot,er as findEnclosingProjectRoot,dt as findNativeMarkdownlintFile,Fn as flushFileLogger,hi as formatAuthRejectionWire,Hn as formatContributors,Xt as formatContributorsFrom,we as formatPackRationale,mn as gcCheckpointRefs,Gn as getCurrentMcpLogger,vi as getIngressContext,ir as getLocalDir,An as getLogFilePath,ia as getLogger,Ut as getLogsDir,la as getMachineId,Zi as getMeter,oi as getMetrics,Ii as getTracer,Si as handleCollabSocketError,ce as handleSpawnCursor,it as hasForwardingHeaders,x as hasGcLogLatch,l as iconFromClientName,tn as incrementCollabSocketFilteredError,_i as incrementServerObserverFire,Dn as initContent,Tn as initShadowRepo,Xi as initTelemetry,tt as initToleranceTelemetryWriter,kn as installJsonSchemaDialect,ii as installPrettyZodErrors,ta as installTestLoggers,Zr as installUserSkill,Re as isAllowedApiOrigin,V as isAllowedWorkspaceHostHeader,Ke as isConfigDoc,ft as isHocuspocusAuthRejectionReason,ci as isHomeDir,k as isHostAdmitted,Lt as isKnownPackId,f as isLinkIndexExcludedDoc,F as isLoopbackAddress,yn as isManagedArtifactDoc,pi as isOriginAdmitted,t as isOrphanMode,ge as isPairedWriteOrigin,Ce as isPathWithinDir,ut as isPeerAdmitted,ca as isProcessAlive,y as isProjectRoot,Jr as isReservedForUserTree,K as isSelfWrite,mr as isSystemDoc,E as isToleranceTelemetryEnabled,sa as isValidLockPid,se as lastKnownHash,Er as listRescueCheckpoints,Mt as listStarterPacks,Qn as loadCustomAgents,W as loadPrincipal,Ca as lockAdvertisesUi,pa as lockBaseUrl,ma as lockFilePath,Qi as loggerFactory,Pn as loginShapedUserinfoUser,na as logsCurrentPath,oa as logsPreviousPath,Je as makeLazyEmbeddingsKeyStore,_a as markServerLockDraining,Ar as mountMcpAndApi,Ui as normalizeFsPath,qt as originGitHubHost,Or as packageVersionMajorMinor,U as parseAuthRejectionWire,xe as parseGitVersion,L as parseHocuspocusAuthToken,Nt as parseKeepaliveConnectionId,Se as pathToDocName,et as planSeed,yr as prepareSingleFileOpen,fn as processCommand,sr as processUsage,Wn as readAllTargets,Qt as readBundleDecision,H as readOwnNativeRules,Sa as readProcessLock,ya as readProcessLockDetailed,pt as readProjectHeadState,ve as readProjectLocalSemanticConfig,ua as readServerLock,Cr as readServerPackageVersion,Gr as readSkillInstallStateSnapshot,Te as readStateManifest,dn as readTargetRecordedAt,or as readTargetVersion,Mr as reconcile,xr as recordContributor,fr as recordSkillInstallEvent,zn as redactShareSubprocessStderr,Rt as registerAllTools,Qe as registerWrite,ga as releaseProcessLock,xa as releaseServerLock,ki as removeLastKnownHash,zr as reportSkillInstall,nt as resetMetrics,_r as resolveBuiltinSkillHosts,e as resolveBundleEnabled,Dr as resolveBundledSkillDir,ti as resolveContentDir,$e as resolveCursorBinaryDefault,Ai as resolveCursorSpawnInvocation,at as resolveEffectiveLinterConfig,Yr as resolveEmbeddingsCredential,M as resolveGitHubAccountFromUrl,hn as resolveLockDir,A as resolveNativeConfigForDoc,I as resolveNativeMarkdownlintConfig,Ht as resolvePack,nr as resolvePackageVersion,On as resolveSkillInstallReportSettings,vr as resolveUiInfo,Ur as restoreContributors,gi as restoreLifecycleFromConflictsJson,Et as rewriteMarkdownLinksForDocumentRename,Q as rewriteWikiLinksForDocumentRename,Un as runAuthReposSubprocess,Zt as runAuthStatusSubprocess,xn as runCloneSubprocess,Sr as runDeviceFlowSubprocess,$t as runWithMcpLogger,gt as safeContentPath,le as safeSubdir,lr as safetyCheckpoint,li as sameGitHubLogin,$n as sanitizeClientName,In as saveInMemoryCheckpoint,jn as saveVersion,ze as seedBasenameIndex,Vr as seedEphemeralProjectDir,sn as serializeError,Mi as setActiveSpanAttributes,jr as setupServerObservers,Wt as shadowGit,Yi as shutdownTelemetry,$i as spansCurrentPath,ea as spansPreviousPath,w as spawnDetached,fe as splitMarkdownBlocks,C as startWatcher,kt as streamingProblemEvent,ln as swapContributors,ui as teardownToleranceTelemetryWriter,ct as toBroadcasterKey,Bi as tracedAppendFileSync,Gi as tracedLinkSync,Li as tracedMkdir,Vi as tracedMkdirSync,qi as tracedRename,Ri as tracedRenameSync,Wi as tracedRmSync,Hi as tracedRmdirSync,zi as tracedUnlinkSync,Fi as tracedWriteFile,Ji as tracedWriteFileSync,R as trustSystemCertificates,$r as untrackTrackedProjectSkillProjection,bt as updateLastKnownHash,ha as updateProcessLockPort,wa as updateServerLockPort,z as validateAgentId,Xr as validateCloneInputs,ur as validateSkillZip,fa as waitForServerLockDrain,Ze as withHiddenWindowsConsole,Pi as withSpan,Ni as withSpanSync,ri as writeBundleDecision,Ti as writeMarkdownlintRule,dr as writeRootGitignoreForNewRepo,Ae as writeStateManifest,_n as writeTargetVersion,ne as writeTracker};
@@ -1,5 +1,5 @@
1
- import{j as e}from"./sleep-BZo73vVn.mjs";import{Cc as t,Dc as n,Oc as r,bc as i,kc as a}from"./src-B5PnzP5L.mjs";import{An as o,Qr as s,o as c,t as l}from"./src-DifwZnFy.mjs";import{I as u,k as d}from"./fs-traced-Cu6kXy54.mjs";import{r as f}from"./server-lock-_XWgcmNh.mjs";import{C as p,S as m,x as h}from"./resolve-project-root-BmEYZjtQ.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-DRbySBVr.mjs";import{y as E}from"./init-44bY7bDu.mjs";import{n as D}from"./constants-C7GcNmeI.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-Db2adcph.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-BztWuczT.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-pD-V682S.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-BKbFH2b2.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=a(process.env)}catch(e){throw e instanceof n&&(console.error(f(e.message)),process.exit(78)),e}for(let e of h.diagnostics)console.warn(p(`[config] ${e.message}`));let g=r(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=t(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=t(r(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
- `)))}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:i(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-Db2adcph.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-CTBKeB6u.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'
1
+ import{j as e}from"./sleep-BZo73vVn.mjs";import{Cc as t,Dc as n,Oc as r,bc as i,kc as a}from"./src-B5PnzP5L.mjs";import{An as o,Qr as s,o as c,t as l}from"./src-Cgbvt9_P.mjs";import{I as u,k as d}from"./fs-traced-Cu6kXy54.mjs";import{r as f}from"./server-lock-_XWgcmNh.mjs";import{C as p,S as m,x as h}from"./resolve-project-root-CPytwxzP.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-C4iHkeM8.mjs";import{y as E}from"./init-XMbWjso8.mjs";import{n as D}from"./constants-BRkzM7uA.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-Y4R4Qtqe.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-DJluMHvw.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-CGiiCy_y.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-B6gZ9sOT.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=a(process.env)}catch(e){throw e instanceof n&&(console.error(f(e.message)),process.exit(78)),e}for(let e of h.diagnostics)console.warn(p(`[config] ${e.message}`));let g=r(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=t(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=t(r(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
+ `)))}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:i(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-Y4R4Qtqe.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-gwcJC18V.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-D6zGIr_Q.mjs.map
5
+ //# sourceMappingURL=start-CR2CT-vo.mjs.map
@@ -0,0 +1 @@
1
+ import{S as e,m as t,p as n,r}from"./start-CR2CT-vo.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.14",
3
+ "version": "0.63.0-beta.15",
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.14",
75
- "@inkeep/open-knowledge-core": "0.63.0-beta.14",
74
+ "@inkeep/open-knowledge-app": "0.63.0-beta.15",
75
+ "@inkeep/open-knowledge-core": "0.63.0-beta.15",
76
76
  "@inkeep/open-knowledge-native-config": "0.0.0",
77
- "@inkeep/open-knowledge-server": "0.63.0-beta.14"
77
+ "@inkeep/open-knowledge-server": "0.63.0-beta.15"
78
78
  },
79
79
  "scripts": {
80
80
  "build:cli": "rm -rf dist && tsdown",
@@ -1,2 +0,0 @@
1
- import"./src-B5PnzP5L.mjs";var e=`0.63.0-beta.14`;const t=`config.yml`,n=e;export{n,t};
2
- //# sourceMappingURL=constants-C7GcNmeI.mjs.map
@@ -1 +0,0 @@
1
- import"./src-DifwZnFy.mjs";import{g as e}from"./init-44bY7bDu.mjs";export{e as runInit};
@@ -1 +0,0 @@
1
- import{n as e}from"./loader-Bqy2LPc4.mjs";export{e as loadConfig};
@@ -1 +0,0 @@
1
- import{n as e,t}from"./preview-CBcNW71i.mjs";export{t as formatPreviewBlock,e as previewContent};
@@ -1 +0,0 @@
1
- import{t as e}from"./index-BxqdFknQ.js";export{e as FeedbackForm};
@@ -1 +0,0 @@
1
- import{t as e}from"./ManagedArtifactProperties-CAjO5kPP.js";export{e as ManagedArtifactProperties};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./TerminalPanel-BCA5YFGB.js","./chunk-CYidjpOJ.js","./dist-ClHGFbjP2.js","./preload-helper-Chd9yIcd.js","./trace-api-BslS_6CM.js","./lib-CQqy20Z3.js","./html-void-elements-XfxYgU9i.js","./lib-B3XVxNhx.js","./markdownit-Du2gL9_G.js","./w3c-keyname-yVu9TQnl.js","./dist-Nvb76hAm.js","./jsx-runtime-BUgB2tll.js","./react-f2sANaYj.js","./button-CA0dewJJ.js","./dist-mv8e6dBX.js","./bundle-mjs-SHeFpKGC.js","./compiler-runtime-BfE3aGVn.js","./utils-CPqDy6Hr.js","./x-wQUDJS55.js","./createLucideIcon-CAkY8Blx.js","./dist-PQ5KMVDh.js","./dist-CuH7ikCn.js","./react-dom-DPxgxlDT.js","./file-tree-adapter-DsXEGhjb.js","./file-tree-rename-validation-DmGgIR2S.js","./file-tree-utils-B2Axpvgc.js","./page-list-cache-DJODoSOh.js","./doc-paths-DAr9Ew0q.js","./terminal-command-events-ponJwwNv.js","./use-live-xterm-theme-BFOnU-eC.js","./use-apply-config-color-theme-CFCI2GNF.js","./use-apply-config-theme-B1eLRQeV.js","./TerminalPanel-BrP-ENHg.css","./ThreadView-BrcLsj4M.js","./dist-BIGNzOeF2.js","./dialog-BH80AfFt.js","./dist-DsLZcVyZ.js","./dist-BvwnbioL.js","./es2015-wpLRKwCl.js","./dropdown-menu-BpLbh79a.js","./dist-Be8lWZxP2.js","./dist-CSCWMTfQ.js","./floating-ui.dom-Dk5WJYh0.js","./dist-DJUH3LhV.js","./dist-gTGB_-tT.js","./dist-BcWdMddd.js","./check-Bzwwm-o4.js","./chevron-right-BVvjaUfh.js","./progress-BpDlLX4d.js","./DocumentContext-BAge_zSA.js","./cm-theme-CqnwWjn0.js","./dist-EbTHn-HD.js","./dist-tUuSMxU2.js","./dist--D6RzOfD.js","./dist-CFs5UHD5.js","./dist-awmOdYf0.js","./dist-ezYezphN.js","./dist-DxgTfwGf.js","./dist-CLS9aKf7.js","./dist-CPvLRdmt.js","./stex-s_JxeNEZ.js","./config-provider-dIusLQHf.js","./client-version-DgFD9pEA.js","./i18n-DxXpBJoo.js","./messages-oLEYXUuE.js","./propagation-api-B1_qxPZb.js","./context-api-CW3A_QP4.js","./select-fWSYgcDA.js","./tooltip-DPvMEqsq.js","./dist-Cm417ZCm.js","./chevron-down-xENV92Te.js","./collapsible-COrqeoHr.js","./switch-BeP1gMN6.js","./CodeMirrorPropInput-DruAtwJ7.js","./folder-open-5aQb9yif.js","./trash-2-BVoWHmfV.js","./asset-dispatch-CD6rGcnF.js","./external-link-DGqXfQJy.js","./documents-fetch-Bw4lKnRN.js","./note-window-mode-J_lykVfh.js","./git-branch-BEl3Boky.js","./Mermaid-DDMZOhdw.js","./triangle-alert-CJVfCxE0.js","./circle-alert-CKGYtHdt.js","./prop-types-CNBRspY6.js","./documents-events-BYjMJCtr.js","./parse-api-error-DcnXKbfT.js","./startup-marks-BYurBbnW.js","./eye-DIJifYDY.js","./hash-26j3E552.js","./info-CqQMSCez.js","./spinner-DmibE6UV.js","./minus-HJRULrSt.js","./paperclip-C-okgtwN.js","./local-menu-action-bus-BuSRFm5g.js","./badge-DGD9B_-e.js","./input-Cy2M_Avq.js","./popover-CA_JdlWS.js","./dist-Cu8jzM5J.js","./use-collab-url-DEYfnaMS.js","./skills-api--ee5EeEm.js","./skill-scope-2ZCES3JH.js","./DocumentContext-B0sQn39F.css","./workspace-paths-CD0W1etA.js","./libesm-DJMS1nIV.js","./chunk-BO2N2NFS-BbWfV47z.js","./RegisteredAgentIcon-Fkz5hv6G.js","./cursor-Dy0g2caC.js","./terminal-CFd7qrv_.js","./history-BteF85_l.js","./list-plus-1_iMFVqs.js","./comment-chips-ENEVohZ7.js","./rotate-ccw-Dh7y6tzD.js","./square-pen-Blyr7NAu.js","./wrench-JX3g_hHJ.js","./mascot-outline-CtS592mc.js","./skeleton-DIxLroLR.js","./textarea-BtqZ3yY1.js","./thread-client-BpWutFry.js","./thread-draft-staging-bqqmZCWV.js","./agent-presence-C_iH_p3q.js","./use-workspace-BuMImy8_.js"])))=>i.map(i=>d[i]);
2
- import{o as e}from"./chunk-CYidjpOJ.js";import{t}from"./preload-helper-Chd9yIcd.js";import{t as n}from"./jsx-runtime-BUgB2tll.js";import{t as r}from"./react-f2sANaYj.js";import{n as i,r as a}from"./dist-Nvb76hAm.js";import{t as o}from"./useQuery-ZeEDLtxh.js";import{t as s}from"./react-dom-DPxgxlDT.js";import{t as c}from"./compiler-runtime-BfE3aGVn.js";import{i as l,n as u,o as d,r as f}from"./local-menu-action-bus-BuSRFm5g.js";import{t as p}from"./utils-CPqDy6Hr.js";import{t as ee}from"./overlay-layers-Bj-TVfKw.js";import{t as m}from"./button-CA0dewJJ.js";import{i as te,n as ne,t as h}from"./tooltip-DPvMEqsq.js";import{D as g,M as _,S as v,c as re,g as ie,i as y,j as b,k as x,m as S,n as C,o as w,r as ae,s as T,t as E}from"./terminal-cli-display-BocYbbO4.js";import{a as D,i as O,m as k,o as A,r as j,t as M,u as oe}from"./dropdown-menu-BpLbh79a.js";import{i as N}from"./terminal-telemetry-DVozpHQ9.js";import{Qt as se}from"./dist-ClHGFbjP2.js";import{n as P}from"./dist-CuH7ikCn.js";import{a as ce,x as le}from"./use-settings-route-BoEnTMeF.js";import{t as F}from"./dist-BIGNzOeF2.js";import{A as ue,C as de,E as fe,I,L as pe,M as me,N as he,P as ge,R as L,_ as _e,a as R,f as z,i as ve,j as ye,k as be,s as xe,t as Se,v as Ce,x as we,y as Te}from"./terminal-launch-events-CAYVVL7j.js";import{a as Ee,r as De,t as Oe}from"./history-BteF85_l.js";import{t as B}from"./createLucideIcon-CAkY8Blx.js";import{n as ke,t as V}from"./RegisteredAgentIcon-Fkz5hv6G.js";import{t as H}from"./check-Bzwwm-o4.js";import{t as Ae}from"./chevron-down-xENV92Te.js";import{t as U}from"./chevron-right-BVvjaUfh.js";import{t as je}from"./spinner-DmibE6UV.js";import{t as Me}from"./trash-2-BVoWHmfV.js";import{t as Ne}from"./x-wQUDJS55.js";import{a as Pe,i as W,t as G}from"./popover-CA_JdlWS.js";import{a as Fe,d as Ie,g as Le,h as Re,n as ze,r as Be,s as Ve,t as He}from"./sortable.esm-DVUoPZjJ.js";import{r as Ue,t as We}from"./input-group-BScOj_fR.js";import{i as K,n as Ge,r as Ke,t as qe}from"./tabs-mObhnuHB.js";import{c as Je,l as Ye,o as Xe,r as Ze,t as Qe}from"./thread-client-BpWutFry.js";import{t as $e}from"./thread-draft-staging-bqqmZCWV.js";import{n as et,t as q}from"./use-terminal-enabled-CTRJVZCQ.js";var tt=B(`panel-bottom`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M3 15h18`,key:`5xshup`}]]),nt=e(s(),1),J=c(),Y=e(r(),1),X=n();function rt(e){let t=(0,J.c)(26),{archived:n,openThreadIds:r,onOpenThread:i}=e,{_:o}=a(),s=Ze(),[c,l]=(0,Y.useState)(!1),[u,d]=(0,Y.useState)(null),[f,ee]=(0,Y.useState)(0),g=(0,Y.useId)(),_;t[0]===o?_=t[1]:(_=o({id:`V0mbgd`}),t[0]=o,t[1]=_);let v=_,re=G,ie;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(ie=e=>{l(e),e?ee(Date.now()):d(null)},t[2]=ie):ie=t[2];let y;t[3]===o?y=t[4]:(y=o({id:`6FCixu`}),t[3]=o,t[4]=y);let b;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,X.jsx)(Oe,{"aria-hidden":`true`}),t[5]=b):b=t[5];let x;t[6]===y?x=t[7]:(x=(0,X.jsx)(te,{asChild:!0,children:(0,X.jsx)(Pe,{asChild:!0,children:(0,X.jsx)(m,{type:`button`,variant:`ghost`,size:`icon-xs`,className:`shrink-0 cursor-pointer text-muted-foreground hover:text-foreground`,"aria-label":y,"data-testid":`agent-thread-history`,children:b})})}),t[6]=y,t[7]=x);let S;t[8]===o?S=t[9]:(S=o({id:`6FCixu`}),t[8]=o,t[9]=S);let C;t[10]===S?C=t[11]:(C=(0,X.jsx)(ne,{side:`bottom`,sideOffset:8,children:S}),t[10]=S,t[11]=C);let w;t[12]!==x||t[13]!==C?(w=(0,X.jsxs)(h,{children:[x,C]}),t[12]=x,t[13]=C,t[14]=w):w=t[14];let ae=W,T=n.map(e=>{let t=r.has(e.threadId);if(u===e.threadId&&!t)return(0,X.jsxs)(`div`,{className:`flex items-center gap-1.5 rounded-md bg-destructive/5 px-2 py-1`,"data-testid":`agent-thread-history-confirm`,children:[(0,X.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-xs`,children:o({id:`kVgQUA`})}),(0,X.jsx)(m,{type:`button`,size:`sm`,variant:`destructive`,className:`h-6 px-2 text-xs`,onClick:()=>{s.deleteThread(e.threadId),d(null)},"data-testid":`agent-thread-history-confirm-delete`,children:o({id:`cnGeoo`})}),(0,X.jsx)(m,{type:`button`,size:`sm`,variant:`ghost`,className:`h-6 px-2 text-xs`,onClick:()=>d(null),children:o({id:`dEgA5A`})})]},e.threadId);let n=`${g}-${e.threadId}`;return(0,X.jsxs)(`div`,{className:`group flex items-center gap-0.5`,children:[(0,X.jsxs)(m,{type:`button`,variant:`ghost`,className:`h-auto min-w-0 flex-1 justify-start gap-2 px-2 py-1.5`,onClick:()=>{i(e.threadId),l(!1)},"data-testid":`agent-thread-history-open-${e.threadId}`,children:[(0,X.jsx)(V,{agentId:e.agent.id,iconUrl:e.agent.iconUrl,className:`size-4 shrink-0`}),(0,X.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-left text-xs`,children:e.title}),(0,X.jsx)(`span`,{className:`shrink-0 text-[10px] text-muted-foreground`,children:at(e.lastActivityAt,f)})]}),(0,X.jsxs)(h,{children:[(0,X.jsx)(te,{asChild:!0,children:(0,X.jsxs)(`span`,{className:p(`inline-flex`,t&&`cursor-not-allowed`),children:[(0,X.jsx)(m,{type:`button`,variant:`ghost`,size:`icon-xs`,"aria-label":o({id:`Y2tU6I`,values:{0:e.title}}),"aria-disabled":t||void 0,"aria-describedby":t?n:void 0,className:p(`opacity-0 transition-opacity focus-visible:opacity-100 group-hover:opacity-100`,t?`cursor-not-allowed text-muted-foreground/50`:`text-muted-foreground hover:text-destructive`),onClick:()=>{t||d(e.threadId)},"data-testid":`agent-thread-history-delete-${e.threadId}`,children:(0,X.jsx)(Me,{className:`size-3`,"aria-hidden":`true`})}),t?(0,X.jsx)(`span`,{id:n,className:`sr-only`,children:v}):null]})}),(0,X.jsx)(ne,{side:`bottom`,sideOffset:8,children:t?v:o({id:`Y2tU6I`,values:{0:e.title}})})]})]},e.threadId)}),E;t[15]===T?E=t[16]:(E=(0,X.jsx)(`div`,{className:`max-h-80 overflow-y-auto`,children:T}),t[15]=T,t[16]=E);let D;t[17]!==ae||t[18]!==E?(D=(0,X.jsx)(ae,{align:`end`,className:`w-72 p-1`,children:E}),t[17]=ae,t[18]=E,t[19]=D):D=t[19];let O;return t[20]!==re||t[21]!==c||t[22]!==D||t[23]!==ie||t[24]!==w?(O=(0,X.jsxs)(re,{open:c,onOpenChange:ie,children:[w,D]}),t[20]=re,t[21]=c,t[22]=D,t[23]=ie,t[24]=w,t[25]=O):O=t[25],O}function it(e){let t=(0,J.c)(18),{archived:n,onOpen:r}=e,{_:i}=a(),[o,s]=(0,Y.useState)(0),c,l;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c=()=>{s(Date.now())},l=[],t[0]=c,t[1]=l):(c=t[0],l=t[1]),(0,Y.useEffect)(c,l);let u;t[2]===i?u=t[3]:(u=i({id:`Tq9kNX`}),t[2]=i,t[3]=u);let d;t[4]===u?d=t[5]:(d=(0,X.jsx)(`p`,{className:`px-1 text-muted-foreground text-xs`,children:u}),t[4]=u,t[5]=d);let f;if(t[6]!==n||t[7]!==o||t[8]!==r){let e;t[10]!==o||t[11]!==r?(e=e=>(0,X.jsxs)(m,{type:`button`,variant:`ghost`,className:`h-auto w-full min-w-0 justify-start gap-2 px-2 py-1.5`,onClick:()=>r(e.threadId),"data-testid":`agent-thread-empty-open-${e.threadId}`,children:[(0,X.jsx)(V,{agentId:e.agent.id,iconUrl:e.agent.iconUrl,className:`size-4 shrink-0`}),(0,X.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-left text-xs`,children:e.title}),(0,X.jsx)(`span`,{className:`shrink-0 text-[10px] text-muted-foreground`,children:at(e.lastActivityAt,o)})]},e.threadId),t[10]=o,t[11]=r,t[12]=e):e=t[12],f=n.map(e),t[6]=n,t[7]=o,t[8]=r,t[9]=f}else f=t[9];let p;t[13]===f?p=t[14]:(p=(0,X.jsx)(`div`,{className:`flex flex-col gap-0.5`,children:f}),t[13]=f,t[14]=p);let ee;return t[15]!==d||t[16]!==p?(ee=(0,X.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-2 overflow-y-auto p-3`,"data-testid":`agent-thread-empty-chooser`,children:[d,p]}),t[15]=d,t[16]=p,t[17]=ee):ee=t[17],ee}function at(e,t){let n=Math.max(0,t-e);if(n<6e4)return F._({id:`xOTzt5`});if(n<36e5){let e=Math.round(n/6e4);return F._({id:`_rP3HI`,values:{minutes:e}})}if(n<864e5){let e=Math.round(n/36e5);return F._({id:`nYeBmY`,values:{hours:e}})}let r=Math.round(n/864e5);return F._({id:`LPAv9E`,values:{days:r}})}var Z=new Set;function ot(e,t,n,r,i){let a=`${e.source}:${e.id}`;Z.has(a)||(Z.add(a),Ze().createThread({agent:e,prompt:t??void 0,docName:n??void 0,titleHint:r??void 0}).then(e=>{if(i!=null)try{$e(e.threadId,i)}catch(t){console.error(`[agent-threads] draft staging failed for`,e.threadId,t)}}).catch(e=>{console.error(`[agent-threads] launch failed:`,e),P.error(e instanceof Qe?F._({id:`aaI6cN`}):F._({id:`2rLM8r`}))}).finally(()=>{Z.delete(a)}))}function st(){return Z.size>0}var ct={terminal:`ok-dock-session-order-v1`,agents:`ok-agent-session-order-v1`};function Q(e){return{order:Array.isArray(e.order)?e.order.filter(e=>typeof e==`string`):[],activeKey:typeof e.activeKey==`string`?e.activeKey:null}}function lt(e){if(typeof window>`u`)return null;try{let t=window.localStorage.getItem(ct[e]);return t===null?null:Q(JSON.parse(t))}catch{return null}}function ut(e,t){if(!(typeof window>`u`))try{window.localStorage.setItem(ct[e],JSON.stringify(t))}catch{}}async function dt(e,t){if(typeof e?.terminal?.getDockState==`function`)try{let n=await e.terminal.getDockState(),r=n[t];if(r==null)return{sessionOrder:null,terminalSnapshot:n.terminalSnapshot};let{order:i,activeKey:a}=Q(r);return{sessionOrder:i.length===0&&a===null?null:{order:i,activeKey:a},terminalSnapshot:n.terminalSnapshot}}catch(e){return console.warn(`[dock-session-persistence] getDockState failed; cold-starting:`,e),{sessionOrder:null,terminalSnapshot:void 0}}return{sessionOrder:e?.terminal==null?lt(t):null,terminalSnapshot:void 0}}function ft(e,t){return dt(e,t).then(e=>e.sessionOrder)}function pt(e,t,n,r={tabs:[],activeOrdinal:null}){if(typeof e?.terminal?.setDockState==`function`){let i={order:[...n.order],activeKey:n.activeKey},a=t===`terminal`?e.terminal.setDockState({surface:`terminal`,...i,terminalSnapshot:r}):e.terminal.setDockState({surface:`agents`,...i});Promise.resolve(a).then(e=>{e?.ok===!1&&(e.reason===`ipc-unavailable`?console.warn(`[dock-session-persistence] setDockState skipped during window teardown`):console.error(`[dock-session-persistence] setDockState failed:`,e.reason))}).catch(e=>{console.error(`[dock-session-persistence] setDockState rejected:`,e)});return}e?.terminal??ut(t,n)}var mt=`ok-terminal-new-tab-bare-v1`;function ht(e){try{return(e??localStorage).getItem(mt)===`1`}catch{return!1}}function gt(e,t){try{let n=t??localStorage;e?n.setItem(mt,`1`):n.removeItem(mt)}catch{}for(let e of _t)e()}var _t=new Set;function vt(){return St()}function yt(){for(let e of _t)e()}typeof window<`u`&&typeof window.addEventListener==`function`&&window.addEventListener(`storage`,e=>{(e.key===`ok-terminal-new-tab-bare-v1`||e.key===null)&&yt()});function bt(e){return _t.add(e),()=>_t.delete(e)}function xt(){return(0,Y.useSyncExternalStore)(bt,vt,vt)}function St(){try{return typeof localStorage>`u`?!1:ht()}catch{return!1}}var Ct=(0,Y.lazy)(()=>t(()=>import(`./TerminalPanel-BCA5YFGB.js`).then(e=>({default:e.TerminalPanel})),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32]),import.meta.url));function wt(e){let t=(0,J.c)(15),{bridge:n,onClose:r,onTitleChange:i,launch:o,commandId:s,adoptPtyId:c,onPtyId:l}=e,u=o===void 0?null:o,f=s===void 0?null:s,p=c===void 0?null:c,{enabled:ee,synced:m}=q(),te=et(),{_:ne}=a(),h=m&&ee===!1,g;t[0]!==ne||t[1]!==te?(g=function(){if(te===null){P.error(ne({id:`V_6bJ4`}));return}let e=te(!0);e.ok||P.error(ne({id:`jKd3AP`,values:{0:e.error}}))},t[0]=ne,t[1]=te,t[2]=g):g=t[2];let _=g;if(m&&!h){let e;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,X.jsx)(`div`,{className:`h-full w-full bg-background`,"aria-hidden":`true`}),t[3]=e):e=t[3];let a;return t[4]!==p||t[5]!==n||t[6]!==f||t[7]!==u||t[8]!==r||t[9]!==l||t[10]!==i?(a=(0,X.jsx)(d,{fallbackRender:Et,onError:Tt,children:(0,X.jsx)(Y.Suspense,{fallback:e,children:(0,X.jsx)(Ct,{bridge:n,className:`h-full`,onClose:r,onTitleChange:i,launch:u,commandId:f,adoptPtyId:p,onPtyId:l})})}),t[4]=p,t[5]=n,t[6]=f,t[7]=u,t[8]=r,t[9]=l,t[10]=i,t[11]=a):a=t[11],a}let v;return t[12]!==_||t[13]!==h?(v=h?(0,X.jsx)($,{onEnable:_}):(0,X.jsx)(`div`,{className:`h-full w-full bg-background`,"aria-hidden":`true`}),t[12]=_,t[13]=h,t[14]=v):v=t[14],v}function Tt(e,t){console.error(`[TerminalGate] rendered fallback for the terminal panel`,e,t.componentStack)}function Et(e){return(0,X.jsx)(Dt,{...e})}function Dt(e){let t=(0,J.c)(15),{error:n}=e,{_:r}=a(),i;t[0]!==r||t[1]!==n?(i=n instanceof Error&&/dynamically imported module|Failed to fetch/i.test(n.message)?r({id:`Y8ViJx`}):r({id:`fbsiBw`}),t[0]=r,t[1]=n,t[2]=i):i=t[2];let o=i,s;t[3]===r?s=t[4]:(s=r({id:`6MnZEC`}),t[3]=r,t[4]=s);let c;t[5]===o?c=t[6]:(c=(0,X.jsx)(`p`,{className:`max-w-sm text-sm text-foreground`,children:o}),t[5]=o,t[6]=c);let l;t[7]===r?l=t[8]:(l=r({id:`HpK_8d`}),t[7]=r,t[8]=l);let u;t[9]===l?u=t[10]:(u=(0,X.jsx)(m,{onClick:Ot,children:l}),t[9]=l,t[10]=u);let d;return t[11]!==s||t[12]!==c||t[13]!==u?(d=(0,X.jsxs)(`section`,{"aria-label":s,className:`flex h-full w-full flex-col items-center justify-center gap-3 bg-background p-6 text-center`,role:`alert`,children:[c,u]}),t[11]=s,t[12]=c,t[13]=u,t[14]=d):d=t[14],d}function Ot(){return window.location.reload()}function $(e){let t=(0,J.c)(20),{onEnable:n}=e,{_:r}=a(),i;t[0]===r?i=t[1]:(i=r({id:`_XWY2J`}),t[0]=r,t[1]=i);let o;t[2]===r?o=t[3]:(o=r({id:`oYepHb`}),t[2]=r,t[3]=o);let s;t[4]===o?s=t[5]:(s=(0,X.jsx)(`p`,{className:`max-w-sm text-sm text-foreground`,children:o}),t[4]=o,t[5]=s);let c;t[6]===r?c=t[7]:(c=r({id:`v2ZW0K`}),t[6]=r,t[7]=c);let l;t[8]!==n||t[9]!==c?(l=(0,X.jsx)(m,{onClick:n,children:c}),t[8]=n,t[9]=c,t[10]=l):l=t[10];let u;t[11]===r?u=t[12]:(u=r({id:`ICoNYz`}),t[11]=r,t[12]=u);let d;t[13]===u?d=t[14]:(d=(0,X.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:u}),t[13]=u,t[14]=d);let f;return t[15]!==i||t[16]!==s||t[17]!==l||t[18]!==d?(f=(0,X.jsxs)(`section`,{"aria-label":i,className:`flex h-full w-full flex-col items-center justify-center gap-3 bg-background p-6 text-center`,children:[s,l,d]}),t[15]=i,t[16]=s,t[17]=l,t[18]=d,t[19]=f):f=t[19],f}function kt(e){let t=(0,J.c)(67),{selected:n,onLaunchSelected:r,showAgents:s,registeredAgents:c,onPickAgent:u,onOpenSettings:d,liveThreadCount:ee,showClis:g,onPickCli:_,onPickTerminal:v,visibleClis:re,className:ie}=e,y=re===void 0?E:re,{_:b}=a(),[x,S]=(0,Y.useState)(!1),w;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(w=[`acp-catalog`],t[0]=w):w=t[0];let T=x&&s,N;t[1]===T?N=t[2]:(N={queryKey:w,queryFn:At,enabled:T,staleTime:3e5},t[1]=T,t[2]=N);let P=ee>=(o(N).data?.maxThreads??8),ce=s||g,le;t[3]!==b||t[4]!==n.agent||t[5]!==n.cli||t[6]!==n.kind?(le=n.kind===`terminal`?b({id:`AB4qw9`}):n.kind===`cli`?b({id:`nP-KFo`,values:{0:se[n.cli].displayName}}):n.agent===null?b({id:`G7bn_N`}):b({id:`nP-KFo`,values:{0:n.agent.name}}),t[3]=b,t[4]=n.agent,t[5]=n.cli,t[6]=n.kind,t[7]=le):le=t[7];let F=le,ue;t[8]===ie?ue=t[9]:(ue=p(`flex shrink-0 items-center`,ie),t[8]=ie,t[9]=ue);let de=ce&&`rounded-r-none`,fe;t[10]===de?fe=t[11]:(fe=p(`cursor-pointer gap-0.5 px-1.5 text-muted-foreground hover:text-foreground`,de),t[10]=de,t[11]=fe);let pe;t[12]===n?pe=t[13]:(pe=n.kind===`terminal`?null:(0,X.jsx)(jt,{selected:n,className:`size-3.5`}),t[12]=n,t[13]=pe);let me;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(me=(0,X.jsx)(l,{"aria-hidden":`true`,className:`size-3`}),t[14]=me):me=t[14];let he;t[15]!==r||t[16]!==F||t[17]!==fe||t[18]!==pe?(he=(0,X.jsx)(te,{asChild:!0,children:(0,X.jsxs)(m,{type:`button`,variant:`ghost`,size:`xs`,"aria-label":F,"data-testid":`terminal-new-chat`,className:fe,onClick:r,children:[pe,me]})}),t[15]=r,t[16]=F,t[17]=fe,t[18]=pe,t[19]=he):he=t[19];let ge;t[20]===F?ge=t[21]:(ge=(0,X.jsx)(ne,{side:`bottom`,sideOffset:8,children:F}),t[20]=F,t[21]=ge);let L;t[22]!==he||t[23]!==ge?(L=(0,X.jsxs)(h,{children:[he,ge]}),t[22]=he,t[23]=ge,t[24]=L):L=t[24];let _e;t[25]!==b||t[26]!==ce?(_e=ce?(0,X.jsx)(k,{asChild:!0,children:(0,X.jsx)(m,{type:`button`,variant:`ghost`,size:`icon-xs`,"aria-label":b({id:`l87Deg`}),"data-testid":`terminal-new-chat-menu`,className:`cursor-pointer rounded-l-none text-muted-foreground hover:text-foreground`,children:(0,X.jsx)(Ae,{"aria-hidden":`true`,className:`size-3`})})}):null,t[25]=b,t[26]=ce,t[27]=_e):_e=t[27];let R;t[28]!==b||t[29]!==P||t[30]!==u||t[31]!==c||t[32]!==n.agent?.id||t[33]!==n.agent?.source||t[34]!==n.kind||t[35]!==s?(R=s&&c.length>0?(0,X.jsxs)(O,{"aria-label":b({id:`RXEbZy`}),children:[(0,X.jsx)(A,{children:(0,X.jsx)(i,{id:`RXEbZy`})}),c.map(e=>{let t=n.kind===`agent`&&n.agent?.source===e.source&&n.agent?.id===e.id;return(0,X.jsxs)(D,{onSelect:()=>u(e),disabled:P,"data-testid":`terminal-new-chat-agent-${e.id}`,"aria-current":t?`true`:void 0,children:[(0,X.jsx)(V,{agentId:e.id,iconUrl:e.iconUrl,className:`size-4`}),(0,X.jsx)(`span`,{className:`flex-1 truncate`,children:e.name}),t?(0,X.jsx)(H,{"aria-hidden":`true`,className:`size-4 text-muted-foreground`}):null]},`${e.source}:${e.id}`)}),P?(0,X.jsx)(A,{className:`py-1 font-normal text-muted-foreground text-xs`,"data-testid":`terminal-new-chat-cap`,children:(0,X.jsx)(i,{id:`0QVrvp`})}):null]}):null,t[28]=b,t[29]=P,t[30]=u,t[31]=c,t[32]=n.agent?.id,t[33]=n.agent?.source,t[34]=n.kind,t[35]=s,t[36]=R):R=t[36];let z;t[37]!==c||t[38]!==s||t[39]!==g?(z=s&&c.length>0&&g?(0,X.jsx)(oe,{}):null,t[37]=c,t[38]=s,t[39]=g,t[40]=z):z=t[40];let ve;t[41]!==b||t[42]!==_||t[43]!==v||t[44]!==n.cli||t[45]!==n.kind||t[46]!==g||t[47]!==y?(ve=g?(0,X.jsxs)(O,{"aria-label":b({id:`ALhMYW`}),children:[(0,X.jsx)(A,{children:(0,X.jsx)(i,{id:`ALhMYW`})}),y.map(e=>{let{displayName:t}=se[e],r=n.kind===`cli`&&n.cli===e;return(0,X.jsxs)(D,{onSelect:()=>_(e),"data-testid":`terminal-new-chat-cli-${e}`,"aria-label":b({id:`9mEZeD`,values:{name:t}}),"aria-current":r?`true`:void 0,children:[(0,X.jsx)(ae,{id:C(e),className:`size-4`,"aria-hidden":`true`}),(0,X.jsx)(`span`,{className:`flex-1`,children:t}),r?(0,X.jsx)(H,{"aria-hidden":`true`,className:`size-4 text-muted-foreground`}):null]},e)}),(0,X.jsxs)(D,{onSelect:v,"data-testid":`terminal-new-chat-terminal`,"aria-current":n.kind===`terminal`?`true`:void 0,children:[(0,X.jsx)(I,{"aria-hidden":`true`,className:`size-4`}),(0,X.jsx)(`span`,{className:`flex-1`,children:(0,X.jsx)(i,{id:`ALhMYW`})}),n.kind===`terminal`?(0,X.jsx)(H,{"aria-hidden":`true`,className:`size-4 text-muted-foreground`}):null]})]}):null,t[41]=b,t[42]=_,t[43]=v,t[44]=n.cli,t[45]=n.kind,t[46]=g,t[47]=y,t[48]=ve):ve=t[48];let ye;t[49]!==d||t[50]!==c||t[51]!==s||t[52]!==g?(ye=s?(0,X.jsxs)(X.Fragment,{children:[c.length>0||g?(0,X.jsx)(oe,{}):null,(0,X.jsxs)(D,{onSelect:d,"data-testid":`terminal-new-chat-settings`,children:[(0,X.jsx)(f,{"aria-hidden":`true`,className:`size-4 text-muted-foreground`}),(0,X.jsx)(`span`,{className:`flex-1`,children:(0,X.jsx)(i,{id:`jRAGrQ`})})]})]}):null,t[49]=d,t[50]=c,t[51]=s,t[52]=g,t[53]=ye):ye=t[53];let be;t[54]!==R||t[55]!==z||t[56]!==ve||t[57]!==ye?(be=(0,X.jsxs)(j,{align:`start`,className:`max-h-80 min-w-[200px]`,children:[R,z,ve,ye]}),t[54]=R,t[55]=z,t[56]=ve,t[57]=ye,t[58]=be):be=t[58];let xe;t[59]!==x||t[60]!==_e||t[61]!==be?(xe=(0,X.jsxs)(M,{open:x,onOpenChange:S,children:[_e,be]}),t[59]=x,t[60]=_e,t[61]=be,t[62]=xe):xe=t[62];let Se;return t[63]!==L||t[64]!==xe||t[65]!==ue?(Se=(0,X.jsxs)(`div`,{className:ue,children:[L,xe]}),t[63]=L,t[64]=xe,t[65]=ue,t[66]=Se):Se=t[66],Se}function At(e){let{signal:t}=e;return N(t)}function jt(e){let t=(0,J.c)(13),{selected:n,className:r}=e;if(n.kind===`terminal`){let e;return t[0]===r?e=t[1]:(e=(0,X.jsx)(I,{"aria-hidden":`true`,className:r}),t[0]=r,t[1]=e),e}if(n.kind===`cli`){let e;t[2]===n.cli?e=t[3]:(e=C(n.cli),t[2]=n.cli,t[3]=e);let i;return t[4]!==r||t[5]!==e?(i=(0,X.jsx)(ae,{id:e,className:r,"aria-hidden":`true`}),t[4]=r,t[5]=e,t[6]=i):i=t[6],i}if(n.agent!==null){let e;return t[7]!==r||t[8]!==n.agent.iconUrl||t[9]!==n.agent.id?(e=(0,X.jsx)(V,{agentId:n.agent.id,iconUrl:n.agent.iconUrl,className:r}),t[7]=r,t[8]=n.agent.iconUrl,t[9]=n.agent.id,t[10]=e):e=t[10],e}let i;return t[11]===r?i=t[12]:(i=(0,X.jsx)(ke,{"aria-hidden":`true`,className:r}),t[11]=r,t[12]=i),i}var Mt=`[data-terminal-tab-sortable]`;function Nt(e){let t=(0,J.c)(11),{id:n,disabled:r,children:i}=e,a;t[0]!==r||t[1]!==n?(a={id:n,disabled:r},t[0]=r,t[1]=n,t[2]=a):a=t[2];let{setNodeRef:o,listeners:s,rect:c,transform:l,transition:u,isDragging:d}=Fe(a),f;return t[3]!==i||t[4]!==d||t[5]!==s||t[6]!==c.current?.width||t[7]!==o||t[8]!==l||t[9]!==u?(f=i({setNodeRef:o,listeners:s,style:z({activeWidth:c.current?.width,isDragging:d,transform:l,transition:u})}),t[3]=i,t[4]=d,t[5]=s,t[6]=c.current?.width,t[7]=o,t[8]=l,t[9]=u,t[10]=f):f=t[10],f}function Pt(e){let t=(0,J.c)(11),{children:n,onMoveRight:r}=e,a=(0,Y.useRef)(null);if(r==null)return n;let o;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=e=>{if(!Ce(e))return;e.preventDefault(),a.current=document.activeElement instanceof HTMLElement?document.activeElement:null;let t=e.currentTarget.getBoundingClientRect();e.currentTarget.dispatchEvent(new MouseEvent(`contextmenu`,{bubbles:!0,cancelable:!0,clientX:t.left,clientY:t.bottom}))},t[0]=o):o=t[0];let s;t[1]===n?s=t[2]:(s=(0,X.jsx)(S,{asChild:!0,onKeyDown:o,children:n}),t[1]=n,t[2]=s);let c;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(c=e=>{a.current!=null&&(e.preventDefault(),a.current.focus(),a.current=null)},t[3]=c):c=t[3];let l,u;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,X.jsx)(pe,{"aria-hidden":`true`}),u=(0,X.jsx)(i,{id:`jcEoUi`}),t[4]=l,t[5]=u):(l=t[4],u=t[5]);let d;t[6]===r?d=t[7]:(d=(0,X.jsx)(w,{onCloseAutoFocus:c,children:(0,X.jsx)(T,{children:(0,X.jsxs)(re,{onSelect:r,children:[l,u]})})}),t[6]=r,t[7]=d);let f;return t[8]!==s||t[9]!==d?(f=(0,X.jsxs)(y,{children:[s,d]}),t[8]=s,t[9]=d,t[10]=f):f=t[10],f}function Ft(e){let t=(0,J.c)(111),{sessions:n,sessionKind:r,activeSessionId:o,onSelect:s,onTabActivate:c,newButton:l,trailingControls:u,onClose:d,onRename:f,onReorder:ee,onDragActiveChange:g,edge:_,onPlacementChange:v,reserveRightRevealTabGutter:re,onCollapse:ie,children:y,className:b,draggable:x}=e,{_:S}=a(),C=_===`right`,w=C?`bottom`:`right`,ae;t[0]!==S||t[1]!==C?(ae=S(C?{id:`Tofsyo`}:{id:`PrWQiT`}),t[0]=S,t[1]=C,t[2]=ae):ae=t[2];let T=ae,E;t[3]!==_||t[4]!==v||t[5]!==r?(E=r===`terminal`&&_===`bottom`&&v!=null?()=>v(`right`):void 0,t[3]=_,t[4]=v,t[5]=r,t[6]=E):E=t[6];let D=E,[O,k]=(0,Y.useState)(null),[A,j]=(0,Y.useState)(``),[M,oe]=(0,Y.useState)(null),N=(0,Y.useRef)(null),se=(0,Y.useRef)(!1),P=f!=null,ce,le;t[7]===O?(ce=t[8],le=t[9]):(ce=()=>{O!=null&&(N.current?.focus(),N.current?.select())},le=[O],t[7]=O,t[8]=ce,t[9]=le),(0,Y.useEffect)(ce,le);let F,ue;t[10]!==O||t[11]!==n?(F=()=>{O!=null&&!n.some(e=>e.id===O)&&(se.current=!1,k(null),j(``))},ue=[n,O],t[10]=O,t[11]=n,t[12]=F,t[13]=ue):(F=t[12],ue=t[13]),(0,Y.useEffect)(F,ue);let de=function(e){P&&(se.current=!1,k(e.id),j(e.label))},fe;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(fe=function(e){let t=typeof CSS<`u`&&CSS.escape?CSS.escape(e):e;queueMicrotask(()=>{document.querySelector(`[role="tab"][data-tab-id="${t}"]`)?.focus()})},t[14]=fe):fe=t[14];let I=fe,me=function(e){se.current||f?.(e,A.trim()),se.current=!1,k(null),j(``),I(e)},he=(0,Y.useRef)(null),ge=(0,Y.useRef)(null),[L,z]=(0,Y.useState)(null),ve;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(ve={activationConstraint:{distance:8}},t[15]=ve):ve=t[15];let ye=Le(Re(Ie,ve)),be=ee!=null,Se;t[16]===L?Se=t[17]:(Se=xe(L),t[16]=L,t[17]=Se);let Ce;t[18]===Se?Ce=t[19]:(Ce=[Se],t[18]=Se,t[19]=Ce);let we=Ce,Ee;t[20]!==o||t[21]!==n?(Ee=o===``?null:`${o}\u0000${n.map(Rt).join(`\0`)}`,t[20]=o,t[21]=n,t[22]=Ee):Ee=t[22];let De=Ee,Oe,B;t[23]===De?(Oe=t[24],B=t[25]):(Oe=()=>{if(De===null)return;let[e]=De.split(`\0`,1),t=typeof CSS<`u`&&CSS.escape?CSS.escape(e):e;ge.current?.querySelector(`[data-tab-id="${t}"]`)?.scrollIntoView({block:`nearest`,inline:`nearest`})},B=[De],t[23]=De,t[24]=Oe,t[25]=B),(0,Y.useEffect)(Oe,B);let ke;t[26]===g?ke=t[27]:(ke=function(){z(_e(he.current,Mt)),g?.(!0)},t[26]=g,t[27]=ke);let V=ke,H;t[28]!==g||t[29]!==ee||t[30]!==n?(H=function(e){z(null),g?.(!1);let t=String(e.active.id),r=e.over?String(e.over.id):null;if(!r||t===r)return;let i=n.map(Lt),a=i.indexOf(t),o=i.indexOf(r);a<0||o<0||a===o||ee?.(ze(i,a,o))},t[28]=g,t[29]=ee,t[30]=n,t[31]=H):H=t[31];let je=H,Me;t[32]===g?Me=t[33]:(Me=function(){z(null),g?.(!1)},t[32]=g,t[33]=Me);let Pe=Me,W=qe,G;t[34]===b?G=t[35]:(G=p(`flex min-h-0 min-w-0 flex-1 flex-col`,b),t[34]=b,t[35]=G);let Fe=Pt,Ge=x?``:void 0,Je=C&&re&&`pr-9`,Ye=x&&`h-[62px] [-webkit-app-region:drag] pr-[22px] pl-[calc(var(--ok-titlebar-reserve-left,1rem)+0.75rem)]`,Xe;t[36]!==Je||t[37]!==Ye?(Xe=p(`flex shrink-0 flex-row items-center gap-1 px-1.5 py-1`,Je,Ye),t[36]=Je,t[37]=Ye,t[38]=Xe):Xe=t[38];let Ze=Ve,Qe=Te,$e;t[39]===Symbol.for(`react.memo_cache_sentinel`)?($e={container:typeof document<`u`?document.body:void 0},t[39]=$e):$e=t[39];let et=He,q;t[40]===n?q=t[41]:(q=n.map(It),t[40]=n,t[41]=q);let nt=Be,rt=R,it=x&&`[-webkit-app-region:no-drag]`,at;t[42]===it?at=t[43]:(at=p(`grid h-auto w-fit max-w-full min-w-0 grid-flow-col items-center justify-start gap-0.5 overflow-x-auto overflow-y-hidden [grid-auto-columns:max-content] [scrollbar-width:none] scroll-fade-mask-x`,it),t[42]=it,t[43]=at);let Z;t[44]!==S||t[45]!==r?(Z=S(r===`agent`?{id:`GjsGAu`}:{id:`1MGRQl`}),t[44]=S,t[45]=r,t[46]=Z):Z=t[46];let ot=n.map((e,t)=>{let n=e.id===o,r=O===e.id;return(0,X.jsx)(Nt,{id:e.id,disabled:!be||O!=null,children:i=>{let{setNodeRef:a,listeners:o,style:s}=i;return(0,X.jsxs)(h,{children:[(0,X.jsx)(te,{asChild:!0,children:(0,X.jsxs)(K,{ref:a,value:e.id,"data-terminal-tab-sortable":``,"data-tab-id":e.id,style:{...s,gridColumn:t+1,gridRow:1},...o,onMouseEnter:()=>oe(e.id),onMouseLeave:()=>oe(null),onClick:t=>{t.detail>=2||c?.(e.id)},onDoubleClick:()=>de(e),onKeyDown:t=>{t.key===`F2`&&(t.preventDefault(),de(e))},className:p(`h-7 flex-none gap-1.5 rounded-md py-0 pr-7 pl-2 text-xs transition-colors motion-reduce:transition-none`,n?`bg-muted`:`hover:bg-muted/50`,r&&`w-40 opacity-0`,x&&`[-webkit-app-region:no-drag]`),children:[e.icon,(0,X.jsx)(`span`,{className:`max-w-40 truncate`,children:e.label})]})}),(0,X.jsx)(ne,{side:`bottom`,sideOffset:8,children:e.label})]})}},e.id)}),st;t[47]!==Z||t[48]!==ot?(st=(0,X.jsx)(Ke,{ref:ge,variant:`line`,"aria-label":Z,className:`contents`,children:ot}),t[47]=Z,t[48]=ot,t[49]=st):st=t[49];let ct=n.map((e,t)=>{let n=e.id===o;return O===e.id?(0,X.jsx)(We,{style:{gridColumn:t+1,gridRow:1},className:p(`z-20 h-7 w-40 rounded-md border-0 bg-transparent dark:bg-transparent`,x&&`[-webkit-app-region:no-drag]`),children:(0,X.jsx)(Ue,{ref:N,value:A,"aria-label":S({id:`0TnCvC`,values:{0:e.label}}),"data-testid":`terminal-tab-rename-input`,className:`h-7 px-2 text-xs`,onChange:e=>j(e.target.value),onKeyDown:e=>{e.key===`Enter`?(e.preventDefault(),N.current?.blur()):e.key===`Escape`&&(e.preventDefault(),se.current=!0,N.current?.blur())},onBlur:()=>me(e.id)})},e.id):(0,X.jsx)(m,{type:`button`,variant:`ghost`,size:`icon-xs`,"aria-label":S({id:`nzHlj8`,values:{0:e.label}}),tabIndex:n?0:-1,style:{gridColumn:t+1,gridRow:1},className:p(`z-20 mr-0.5 justify-self-end text-muted-foreground opacity-0 transition-opacity hover:text-foreground hover:opacity-100 focus-visible:opacity-100`,(n||M===e.id)&&`opacity-100`,L!=null&&`pointer-events-none opacity-0`,x&&`[-webkit-app-region:no-drag]`),onMouseEnter:()=>oe(e.id),onMouseLeave:()=>oe(null),onClick:t=>{t.stopPropagation(),d(e.id)},children:(0,X.jsx)(Ne,{"aria-hidden":`true`})},e.id)}),Q;t[50]===ct?Q=t[51]:(Q=(0,X.jsx)(`div`,{className:`contents`,children:ct}),t[50]=ct,t[51]=Q);let lt;t[52]!==rt||t[53]!==at||t[54]!==st||t[55]!==Q?(lt=(0,X.jsxs)(`div`,{onWheel:rt,className:at,children:[st,Q]}),t[52]=rt,t[53]=at,t[54]=st,t[55]=Q,t[56]=lt):lt=t[56];let ut;t[57]!==et||t[58]!==q||t[59]!==nt||t[60]!==lt?(ut=(0,X.jsx)(et,{items:q,strategy:nt,children:lt}),t[57]=et,t[58]=q,t[59]=nt,t[60]=lt,t[61]=ut):ut=t[61];let dt;t[62]!==Ze||t[63]!==Pe||t[64]!==je||t[65]!==V||t[66]!==we||t[67]!==ye||t[68]!==!1||t[69]!==Qe||t[70]!==$e||t[71]!==ut?(dt=(0,X.jsx)(Ze,{sensors:ye,autoScroll:!1,collisionDetection:Qe,modifiers:we,onDragStart:V,onDragEnd:je,onDragCancel:Pe,accessibility:$e,children:ut}),t[62]=Ze,t[63]=Pe,t[64]=je,t[65]=V,t[66]=we,t[67]=ye,t[68]=!1,t[69]=Qe,t[70]=$e,t[71]=ut,t[72]=dt):dt=t[72];let ft;t[73]!==x||t[74]!==l?(ft=l==null?null:(0,X.jsx)(`div`,{className:p(`shrink-0`,x&&`[-webkit-app-region:no-drag]`),children:l}),t[73]=x,t[74]=l,t[75]=ft):ft=t[75];let pt;t[76]===Symbol.for(`react.memo_cache_sentinel`)?(pt=(0,X.jsx)(`div`,{className:`flex-1`}),t[76]=pt):pt=t[76];let mt;t[77]!==x||t[78]!==u?(mt=u==null?null:(0,X.jsx)(`div`,{className:p(`shrink-0`,x&&`[-webkit-app-region:no-drag]`),children:u}),t[77]=x,t[78]=u,t[79]=mt):mt=t[79];let ht;t[80]!==_||t[81]!==v||t[82]!==T||t[83]!==w||t[84]!==C||t[85]!==r?(ht=r===`terminal`&&_!=null&&v!=null?(0,X.jsxs)(h,{children:[(0,X.jsx)(te,{asChild:!0,children:(0,X.jsx)(m,{type:`button`,variant:`ghost`,size:`icon-xs`,"aria-label":T,className:`shrink-0 cursor-pointer text-muted-foreground hover:text-foreground`,onClick:()=>v(w),children:C?(0,X.jsx)(tt,{"aria-hidden":`true`}):(0,X.jsx)(pe,{"aria-hidden":`true`})})}),(0,X.jsx)(ne,{side:`bottom`,sideOffset:8,children:T})]}):null,t[80]=_,t[81]=v,t[82]=T,t[83]=w,t[84]=C,t[85]=r,t[86]=ht):ht=t[86];let gt;t[87]!==S||t[88]!==ie||t[89]!==C||t[90]!==r?(gt=ie==null?null:(0,X.jsxs)(h,{children:[(0,X.jsx)(te,{asChild:!0,children:(0,X.jsx)(m,{type:`button`,variant:`ghost`,size:`icon-xs`,"aria-label":S(r===`terminal`?{id:`MU_NVW`}:{id:`g5V4_P`}),className:`shrink-0 cursor-pointer text-muted-foreground hover:text-foreground`,onClick:ie,children:C?(0,X.jsx)(U,{"aria-hidden":`true`}):(0,X.jsx)(Ae,{"aria-hidden":`true`})})}),(0,X.jsx)(ne,{side:`bottom`,sideOffset:8,children:r===`terminal`?(0,X.jsx)(i,{id:`MU_NVW`}):(0,X.jsx)(i,{id:`g5V4_P`})})]}),t[87]=S,t[88]=ie,t[89]=C,t[90]=r,t[91]=gt):gt=t[91];let _t;t[92]!==Ge||t[93]!==Xe||t[94]!==dt||t[95]!==ft||t[96]!==mt||t[97]!==ht||t[98]!==gt?(_t=(0,X.jsxs)(`div`,{ref:he,"data-terminal-tab-row":``,"data-electron-drag":Ge,className:Xe,children:[dt,ft,pt,mt,ht,gt]}),t[92]=Ge,t[93]=Xe,t[94]=dt,t[95]=ft,t[96]=mt,t[97]=ht,t[98]=gt,t[99]=_t):_t=t[99];let vt;t[100]!==Fe||t[101]!==D||t[102]!==_t?(vt=(0,X.jsx)(Fe,{onMoveRight:D,children:_t}),t[100]=Fe,t[101]=D,t[102]=_t,t[103]=vt):vt=t[103];let yt;return t[104]!==W||t[105]!==o||t[106]!==y||t[107]!==s||t[108]!==G||t[109]!==vt?(yt=(0,X.jsxs)(W,{value:o,onValueChange:s,className:G,children:[vt,y]}),t[104]=W,t[105]=o,t[106]=y,t[107]=s,t[108]=G,t[109]=vt,t[110]=yt):yt=t[110],yt}function It(e){return e.id}function Lt(e){return e.id}function Rt(e){return e.id}var zt=(0,Y.lazy)(()=>t(()=>import(`./ThreadView-BrcLsj4M.js`).then(e=>({default:e.ThreadView})),__vite__mapDeps([33,1,3,2,4,5,6,7,8,9,34,10,11,12,35,36,14,22,37,38,13,15,16,17,18,19,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,20,21,62,30,31,63,64,65,66,67,68,69,70,71,72,73,74,75,26,25,27,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,24,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121]),import.meta.url));function Bt(e){return`terminal-session-${e}`}function Vt(e){return typeof CSS<`u`&&CSS.escape?CSS.escape(e):e}function Ht(e){e!==``&&document.querySelector(`[data-terminal-session="${Vt(e)}"] .xterm-helper-textarea`)?.focus()}function Ut(e){e!==``&&document.querySelector(`[data-session-id="${Vt(e)}"] [data-testid="agent-thread-composer"]`)?.focus()}function Wt(e){e.kind===`terminal`?Ht(e.id):Ut(e.id)}function Gt(e){return e?.contains(document.activeElement)??!1}function Kt(e,t){return t||Gt(e)}function qt(e){switch(e){case`running`:return`bg-amber-500 animate-pulse`;case`installing`:case`spawning`:case`authenticating`:return`bg-sky-500 animate-pulse`;case`auth_required`:case`awaiting_permission`:return`bg-amber-500`;case`ready`:return`bg-emerald-500`;case`error`:return`bg-red-500`;default:return`bg-muted-foreground`}}function Jt(){return(0,X.jsx)(I,{className:`size-3.5 shrink-0 text-muted-foreground`,"aria-hidden":`true`})}function Yt(e){return(0,X.jsxs)(`span`,{className:`relative inline-flex shrink-0`,children:[(0,X.jsx)(V,{agentId:e?.agent.id??``,iconUrl:e?.agent.iconUrl,className:`size-3.5`}),e==null?null:(0,X.jsx)(`span`,{className:p(`-right-0.5 -bottom-0.5 absolute size-1.5 rounded-full ring-1 ring-background`,qt(e.status)),"aria-hidden":`true`})]})}var Xt={cli:!0,terminal:!0,desktop:!0};function Zt(e){let t=(0,J.c)(132),{bridge:n,terminalCapable:r,surface:i,terminalPlacement:o,onTerminalPlacementChange:s,reserveRightRevealTabGutter:c,terminalRestoreRevealNonce:l,visible:d,onVisibleChange:f,launch:m,commandLaunch:te,threadLaunch:ne,installedClis:h,container:re,isShowing:y,onRequestEditorFocus:S}=e,C=r===void 0?!1:r,w=o===void 0?`bottom`:o,ae=l===void 0?0:l,T=m===void 0?null:m,E=te===void 0?null:te,D=ne===void 0?null:ne,{_:O}=a(),k=i===`terminal-window`,A=i===`agents-panel`,j=!A,M=j&&C&&n?.terminal!=null,oe=A?`right`:w,N=A?`agents`:`terminal`,P=!k,F=n?.platform===`darwin`?`mac`:n?.platform===`linux`||n?.platform===`win32`?`windowsLinux`:void 0,[I]=(0,Y.useState)(bn),pe,_e;t[0]!==re||t[1]!==I?(pe=()=>{I==null||re==null||I.parentElement!==re&&re.appendChild(I)},_e=[I,re],t[0]=re,t[1]=I,t[2]=pe,t[3]=_e):(pe=t[2],_e=t[3]),(0,Y.useLayoutEffect)(pe,_e);let R=j&&typeof n?.terminal?.list==`function`,z=!R&&M&&d,xe;t[4]!==n?.terminal?.getDockState||t[5]!==R||t[6]!==z||t[7]!==N||t[8]!==P?(xe=()=>R||!P||z||typeof n?.terminal?.getDockState==`function`?null:lt(N),t[4]=n?.terminal?.getDockState,t[5]=R,t[6]=z,t[7]=N,t[8]=P,t[9]=xe):xe=t[9];let[Ce]=(0,Y.useState)(xe),Te;t[10]===Ce?.order?Te=t[11]:(Te=Ce?.order??[],t[10]=Ce?.order,t[11]=Te);let Oe=(0,Y.useRef)(Te),B=(0,Y.useRef)(Ce?.activeKey??null),ke;t[12]!==z||t[13]!==T?(ke=()=>z?[{kind:`terminal`,id:Bt(1),launch:T,commandId:null,title:null,customLabel:null,ordinal:1,adoptPtyId:null}]:[],t[12]=z,t[13]=T,t[14]=ke):ke=t[14];let[V,H]=(0,Y.useState)(ke),Ae;t[15]===z?Ae=t[16]:(Ae=()=>z?Bt(1):``,t[15]=z,t[16]=Ae);let[U,je]=(0,Y.useState)(Ae),[Me,Ne]=(0,Y.useState)(!R),Pe=(0,Y.useRef)(!1),W=(0,Y.useRef)(U),G=(0,Y.useRef)(V),Fe=(0,Y.useRef)(+!!z),Ie=(0,Y.useRef)(z&&T?T.nonce:null),Le=(0,Y.useRef)(null),Re=(0,Y.useRef)(null),ze=(0,Y.useRef)(!1),Be=(0,Y.useRef)(null),Ve=(0,Y.useRef)(k?!1:d),He=(0,Y.useRef)(ae),Ue=(0,Y.useRef)(new Map),We=(0,Y.useRef)(0),K=Ye(),Ke=Je(),qe=Xe(),Qe=qe===`connecting`||qe===`closed`,et=_(),q=v(),tt;t[17]===q?tt=t[18]:(tt=e=>ie(q,e.source,e.id,!0,e.supported),t[17]=q,t[18]=tt);let at=et.filter(tt),Z=g(at,b()),ct;t[19]===K?ct=t[20]:(ct=K.filter(yn),t[19]=K,t[20]=ct);let Q=ct.length,ut=new Map(K.map(vn)),mt=new Set(ut.keys()),ht;t[21]===Symbol.for(`react.memo_cache_sentinel`)?(ht=function(e){Ze().openArchivedThread(e)},t[21]=ht):ht=t[21];let _t=ht,vt=function(){if(!P||R&&!Me)return;let e=Ue.current,t=G.current.map(t=>wn(t,e)).filter(_n),r=G.current.find(e=>e.id===W.current);pt(n,N,{order:t,activeKey:r==null?null:wn(r,e)},Tn(G.current,W.current))},yt=function(e,t){if(t===null){Ue.current.delete(e),Sn(G.current,W.current);return}Ue.current.set(e,t),Sn(G.current,W.current);let r=G.current.find(t=>t.id===e);r!=null&&r.kind===`terminal`&&n?.terminal?.setMeta?.(t,{ordinal:r.ordinal,customLabel:r.customLabel}),vt()},bt=function(e,t){let n=t===void 0?null:t;B.current=null,Fe.current+=1;let r=Bt(Fe.current);H(t=>[...t,{kind:`terminal`,id:r,launch:e,commandId:n,title:null,customLabel:null,ordinal:Fe.current,adoptPtyId:null}]),je(r)},St=he(),Ct=xt(),Tt;t[22]===h?Tt=t[23]:(Tt=h??{},t[22]=h,t[23]=Tt);let Et;t[24]===h?Et=t[25]:(Et=h??{},t[24]=h,t[25]=Et);let Dt=de({sticky:St,effectiveThreadAgent:Z,enabledClis:we(q,Tt),enabledDesktopTargets:[],installedClis:Et,terminalAvailable:M,threadsAvailable:A,desktopSelectable:!1,preferBareTerminal:Ct,bareTerminalFallback:!0}),Ot=be(St),$=Dt.kind===`thread`?{kind:`agent`,agent:Dt.agent}:Dt.kind===`cli`?Dt.cli===Ot?{kind:`cli`,cli:Dt.cli}:{kind:`terminal`}:Dt.kind===`terminal`?{kind:`terminal`}:{kind:`agent`,agent:null},At=function(e){We.current+=1,bt({prompt:null,cli:e,nonce:We.current})},jt=function(){$.kind===`terminal`?bt(null):$.kind===`cli`?At($.cli):$.kind===`agent`&&$.agent!=null?ot({source:$.agent.source,id:$.agent.id},null,null,null):ce()},Mt=function(){return A?$.kind!==`agent`||$.agent==null?!1:(ot({source:$.agent.source,id:$.agent.id},null,null,null),!0):($.kind===`terminal`?bt(null):$.kind===`cli`&&At($.cli),!0)},Nt;t[26]===h?Nt=t[27]:(Nt=h??{},t[26]=h,t[27]=Nt);let Pt;t[28]===h?Pt=t[29]:(Pt=h??{},t[28]=h,t[29]=Pt);let It=de({sticky:St,effectiveThreadAgent:Z,enabledClis:we(q,Nt),enabledDesktopTargets:[],installedClis:Pt,terminalAvailable:C,threadsAvailable:!k,desktopSelectable:!1,preferBareTerminal:!1,bareTerminalFallback:!1}),Lt=de({sticky:St,effectiveThreadAgent:Z,enabledClis:[],enabledDesktopTargets:[],installedClis:{},terminalAvailable:!1,threadsAvailable:A,desktopSelectable:!1,preferBareTerminal:!1,bareTerminalFallback:!1}),Rt;t[30]===h?Rt=t[31]:(Rt=h??{},t[30]=h,t[31]=Rt);let zt;t[32]===h?zt=t[33]:(zt=h??{},t[32]=h,t[33]=zt);let Vt=de({sticky:St,effectiveThreadAgent:Z,enabledClis:we(q,Rt),enabledDesktopTargets:[],installedClis:zt,terminalAvailable:C,threadsAvailable:!k,desktopSelectable:!1,preferBareTerminal:Ct,bareTerminalFallback:!0}),qt;t[34]!==A||t[35]!==k?(qt=function(e){return k?!0:A?e===`thread`||e===`none`:e in Xt},t[34]=A,t[35]=k,t[36]=qt):qt=t[36];let Zt=qt;function Sn(e,t){let r=e.find(e=>e.id===t);if(r==null){L(N,null);return}if(r.kind===`thread`){let e=ut.get(r.threadId);L(N,{id:r.id,kind:`thread`,label:e?.agent.name??O({id:`bcm0pR`}),agentId:e?.agent.id??``,iconUrl:e?.agent.iconUrl});return}let i=Ue.current.get(r.id),a=r.launch?.cli;if(i==null||n?.terminal==null||a==null){L(N,null);return}L(N,{id:r.id,kind:`terminal`,label:se[a].displayName,cli:a})}let Dn;t[37]!==U||t[38]!==K||t[39]!==V?(Dn=[U,V,K],t[37]=U,t[38]=K,t[39]=V,t[40]=Dn):Dn=t[40],(0,Y.useEffect)(()=>{Sn(V,U)},Dn);let On;t[41]!==f||t[42]!==d?(On=function(){d||f(!0)},t[41]=f,t[42]=d,t[43]=On):On=t[43];let kn=On,An=function(e){let{text:t,newTab:r,submit:i,target:a}=e,o=a===`agents`?Lt:It;if(a===`agents`){if(!A)return}else if(!Zt(o.kind))return;d||f(!0);let s=W.current,c=G.current.find(e=>e.id===s);if(!r&&c!=null){if(c.kind===`thread`){$e(c.threadId,t),kn(),queueMicrotask(()=>Wt(c));return}let e=Ue.current.get(c.id),r=n?.terminal;if(e!=null&&r!=null&&c.launch?.cli!=null){r.input(e,t),kn(),queueMicrotask(()=>Ht(s));return}}if(o.kind===`thread`){let e={source:o.agent.source,id:o.agent.id};i?ot(e,t,null,null,null):ot(e,null,null,null,t)}else o.kind===`cli`?Se(t,o.cli,{stage:!i}):ce()},jn=function(e){gt(!1),ue(ye(e)),At(e)},Mn=function(){gt(!0),bt(null)},Nn;t[44]===Symbol.for(`react.memo_cache_sentinel`)?(Nn=function(e){x(e),gt(!1),ue(me(e)),ot({source:e.source,id:e.id},null,null,null)},t[44]=Nn):Nn=t[44];let Pn=Nn,Fn;t[45]===Symbol.for(`react.memo_cache_sentinel`)?(Fn=function(e,t){let n=t.trim()===``?null:t.trim();H(t=>t.some(t=>t.id===e&&t.kind===`terminal`&&t.title!==n)?t.map(t=>t.id===e&&t.kind===`terminal`?{...t,title:n}:t):t)},t[45]=Fn):Fn=t[45];let In=Fn,Ln=function(e,t){let r=G.current.find(t=>t.id===e);if(r==null)return;if(r.kind===`thread`){Ze().renameThread(r.threadId,t);return}let i=t.trim()===``?null:t.trim();H(t=>t.some(t=>t.id===e&&t.kind===`terminal`&&t.customLabel!==i)?t.map(t=>t.id===e&&t.kind===`terminal`?{...t,customLabel:i}:t):t);let a=Ue.current.get(e);a!=null&&n?.terminal?.setMeta?.(a,{customLabel:i})},Rn=function(e){return e.kind===`terminal`?e.customLabel??e.title??O({id:`OVjNeX`,values:{0:e.ordinal}}):ut.get(e.threadId)?.title??O({id:`iEQQyu`})},zn=(0,Y.useRef)(!1),Bn=(0,Y.useRef)(null),Vn=(0,Y.useRef)(null),Hn=function(e){H(t=>{if(e.length!==t.length)return t;let n=new Map(t.map(gn)),r=[];for(let i of e){let e=n.get(i);if(e==null)return t;r.push(e)}return r.every((e,n)=>e===t[n])?t:r});let t=e.map(e=>Ue.current.get(e)).filter(hn);t.length>0&&n?.terminal?.setOrder?.(t)},Un=function(e){let t=G.current,n=t.findIndex(e=>e.id===W.current);if(n<0)return null;let r=n+e;if(r<0||r>=t.length)return null;let i=t.map(mn),[a]=i.splice(n,1);return i.splice(r,0,a),Hn(i),{label:Rn(t[n]),position:r+1,total:t.length}},Wn=function(){Zt(Vt.kind)&&(d||f(!0),jt())},Gn=(0,Y.useRef)(Un),Kn=(0,Y.useRef)(bt),qn=(0,Y.useRef)(Mt),Jn=(0,Y.useRef)(An),Yn=(0,Y.useRef)(kn),Xn=(0,Y.useRef)(Wn),Zn=function(e){let t=G.current,n=t.findIndex(t=>t.id===e);if(n===-1)return;let r=t[n],i=t.length===1;if(B.current=null,e===W.current){let e=t[n-1]??t[n+1];je(e?.id??``),e!=null&&queueMicrotask(()=>Wt(e))}r.kind===`thread`?Ze().closeThread(r.threadId):H(t.filter(t=>t.id!==e)),i&&(f(!1),S())},Qn=(0,Y.useRef)(pn);(0,Y.useEffect)(()=>{Kn.current=bt,qn.current=Mt,Jn.current=An,Yn.current=kn,Xn.current=Wn,Gn.current=Un,W.current=U,G.current=V,Qn.current=()=>{let e=G.current.find(e=>e.id===W.current);if(e?.kind===`terminal`){Zn(e.id);return}let t=[...G.current].reverse().find(fn);t!=null&&Zn(t.id)}});let $n;t[46]!==U||t[47]!==n||t[48]!==N||t[49]!==P||t[50]!==Me||t[51]!==V?($n=[V,U,P,N,n,Me],t[46]=U,t[47]=n,t[48]=N,t[49]=P,t[50]=Me,t[51]=V,t[52]=$n):$n=t[52],(0,Y.useEffect)(()=>{if(!P||!Me)return;let e=Ue.current,t=V.map(t=>wn(t,e)).filter(dn),r=V.find(e=>e.id===U);pt(n,N,{order:t,activeKey:r==null?null:wn(r,e)},Tn(V,U))},$n);let er;t[53]!==A||t[54]!==K?(er=[K,A],t[53]=A,t[54]=K,t[55]=er):er=t[55],(0,Y.useEffect)(()=>{if(!A)return;let e=new Set(K.map(un)),t=G.current,n=new Set(t.filter(ln).map(cn)),r=[];for(let e of K)n.has(e.threadId)||(Fe.current+=1,r.push({kind:`thread`,id:e.threadId,threadId:e.threadId,ordinal:Fe.current}));let i=t.some(t=>t.kind===`thread`&&!e.has(t.threadId));r.length===0&&!i||H(t=>{let n=t.filter(t=>t.kind!==`thread`||e.has(t.threadId)),i=new Set(n.filter(sn).map(on)),a=r.filter(e=>!i.has(e.threadId)),o=Ue.current,s=a.length>0?En(n,a,Oe.current,e=>wn(e,o)):n;return s.length===t.length&&s.every((e,n)=>e===t[n])?t:s})},er);let tr;t[56]===Symbol.for(`react.memo_cache_sentinel`)?(tr=[],t[56]=tr):tr=t[56];let nr=(0,Y.useRef)(tr),rr,ir;t[57]!==A||t[58]!==K?(rr=()=>{if(!A)return;let e=K.map(an),t=nr.current;if(nr.current=e,B.current!=null)return;let n=e.filter(e=>!t.includes(e)),r=n[n.length-1];r!=null&&(je(r),queueMicrotask(()=>Ut(r)))},ir=[K,A],t[57]=A,t[58]=K,t[59]=rr,t[60]=ir):(rr=t[59],ir=t[60]),(0,Y.useEffect)(rr,ir);let ar=(0,Y.useRef)(Q),or,sr;t[61]!==A||t[62]!==Q||t[63]!==f||t[64]!==d?(or=()=>{if(!A)return;let e=ar.current;ar.current=Q,Q>e&&!d&&f(!0)},sr=[Q,d,A,f],t[61]=A,t[62]=Q,t[63]=f,t[64]=d,t[65]=or,t[66]=sr):(or=t[65],sr=t[66]),(0,Y.useEffect)(or,sr);let cr;t[67]!==U||t[68]!==V?(cr=[V,U],t[67]=U,t[68]=V,t[69]=cr):cr=t[69],(0,Y.useEffect)(()=>{let e=B.current;if(e!=null){let t=Ue.current,n=V.find(n=>wn(n,t)===e);if(n!=null){B.current=null,je(n.id);return}if(V.some(e=>e.id===U))return}if(!(U!==``&&V.some(e=>e.id===U))){if(V.length===0){U!==``&&je(``);return}je(V[V.length-1].id)}},cr),(0,Y.useEffect)(()=>{if(!Me)return;let e=Ve.current;if(Ve.current=d,T!=null&&T.nonce!==Ie.current){Ie.current=T.nonce,Kn.current(T);return}if(E!=null&&E.nonce!==Be.current){Be.current=E.nonce,Kn.current(null,E.id);return}let t=A&&D!=null&&D.nonce!==Le.current,n=j&&ae!==He.current;if(n&&(He.current=ae),d&&!e&&V.length===0&&!t&&!(A&&st())){if(n)return;ze.current=!qn.current();return}if(ze.current){if(!d||V.length>0||t){ze.current=!1;return}Z!==null&&qn.current()&&(ze.current=!1)}},[d,T,E,D,V.length,Me,A,Z,j,ae]);let lr;t[70]!==Z||t[71]!==A||t[72]!==D?(lr=[D,A,Z],t[70]=Z,t[71]=A,t[72]=D,t[73]=lr):lr=t[73],(0,Y.useEffect)(()=>{if(!A||D==null||D.nonce===Le.current)return;let e=D.agentId===``?null:{source:D.agentSource,id:D.agentId};if(e===null&&Z!==null&&(e={source:Z.source,id:Z.id}),e===null){Re.current!==D.nonce&&(Re.current=D.nonce,ce());return}Le.current=D.nonce,ot(e,D.prompt,D.docName,D.titleHint)},lr);let ur;t[74]!==n||t[75]!==j||t[76]!==N?(ur=[n,j,N],t[74]=n,t[75]=j,t[76]=N,t[77]=ur):ur=t[77],(0,Y.useEffect)(()=>{if(!j||typeof n?.terminal?.list!=`function`||Pe.current)return;Pe.current=!0;let e=!1;return(async()=>{let{sessionOrder:t,terminalSnapshot:r}=await dt(n,N);!e&&t!=null&&(Oe.current=t.order,B.current=t.activeKey);let i=null;try{i=await n.terminal.list()??[]}catch(e){console.error(`[terminal] reload session list() failed; preserving restart snapshot:`,e)}if(!e){if(i!=null&&i.length>0){let e=Oe.current,t=t=>{let n=e.indexOf(t);return n===-1?1/0:n},n=i.map(rn).sort((e,n)=>{let r=t(e.adoptPtyId),i=t(n.adoptPtyId);return r===i?0:r-i});Fe.current=Math.max(n.length,...n.map(nn)),H(n)}else if(i!=null&&r!=null&&r.tabs.length>0){let e=r.tabs.map(tn);Fe.current=Math.max(e.length,...e.map(en)),B.current=null,H(e);let t=e.find(e=>e.ordinal===r?.activeOrdinal);t!=null&&je(t.id)}Ne(!0),window.setTimeout(()=>{e||(B.current=null)},9e3)}})(),()=>{e=!0,Pe.current=!1}},ur);let dr,fr;t[78]!==n||t[79]!==R||t[80]!==N||t[81]!==P?(dr=()=>{if(R||!P||typeof n?.terminal?.getDockState!=`function`)return;let e=!1;return ft(n,N).then(t=>{e||t==null||(Oe.current=t.order,B.current===null&&(B.current=t.activeKey))}),()=>{e=!0}},fr=[n,R,P,N],t[78]=n,t[79]=R,t[80]=N,t[81]=P,t[82]=dr,t[83]=fr):(dr=t[82],fr=t[83]),(0,Y.useEffect)(dr,fr);let pr,mr;t[84]===R?(pr=t[85],mr=t[86]):(pr=()=>{if(R)return;let e=window.setTimeout(()=>{B.current=null},9e3);return()=>window.clearTimeout(e)},mr=[R],t[84]=R,t[85]=pr,t[86]=mr),(0,Y.useEffect)(pr,mr);let hr;t[87]!==A||t[88]!==M?(hr=[M,A],t[87]=A,t[88]=M,t[89]=hr):hr=t[89],(0,Y.useEffect)(()=>{if(!(!M&&!A))return fe(e=>Jn.current(e))},hr);let gr;t[90]===A?gr=t[91]:(gr=[A],t[90]=A,t[91]=gr),(0,Y.useEffect)(()=>{if(A)return Ee(e=>{let{threadIds:t}=e,n=W.current,r=G.current.find(e=>e.id===n);r?.kind===`thread`&&(De(r.threadId,t),Yn.current(),queueMicrotask(()=>Wt(r)))})},gr);let _r;t[92]===Symbol.for(`react.memo_cache_sentinel`)?(_r=[],t[92]=_r):_r=t[92],(0,Y.useEffect)(()=>ve(()=>Xn.current()),_r);let vr;t[93]!==j||t[94]!==k||t[95]!==M?(vr=[k,j,M],t[93]=j,t[94]=k,t[95]=M,t[96]=vr):vr=t[96],(0,Y.useEffect)(()=>{if(j)return u(e=>{e===`new-terminal`?M&&Kn.current(null):(e===`kill-terminal`||e===`close-active-tab-or-window`&&k)&&Qn.current()})},vr);let yr;t[97]!==I||t[98]!==k||t[99]!==F?(yr=[I,k,F],t[97]=I,t[98]=k,t[99]=F,t[100]=yr):yr=t[100],(0,Y.useEffect)(()=>{let e=function(e){if(!le(e,F)||e.altKey||e.shiftKey||!/^[1-9]$/.test(e.key)||!Kt(I,k)||ee())return;let t=G.current[Number(e.key)-1];t!=null&&(e.preventDefault(),e.stopPropagation(),je(t.id),queueMicrotask(()=>Wt(t)))};return window.addEventListener(`keydown`,e,{capture:!0}),()=>window.removeEventListener(`keydown`,e,{capture:!0})},yr);let br;t[101]!==O||t[102]!==I||t[103]!==k||t[104]!==F?(br=[I,k,F,O],t[101]=O,t[102]=I,t[103]=k,t[104]=F,t[105]=br):br=t[105],(0,Y.useEffect)(()=>{let e=function(e){if(!le(e,F)||!e.shiftKey||e.altKey)return;let t=e.key===`ArrowLeft`?-1:+(e.key===`ArrowRight`);if(t===0||!Kt(I,k)||ee()||zn.current)return;let n=e.target;if(n?.tagName===`INPUT`||n?.isContentEditable)return;let r=Gn.current(t);if(r==null)return;e.preventDefault(),e.stopPropagation();let i=W.current,a=G.current.find(e=>e.id===i);a!=null&&queueMicrotask(()=>Wt(a));let o=O({id:`CoHvYd`,values:{0:r.label,1:r.position,2:r.total}});Vn.current!=null&&window.clearTimeout(Vn.current),Vn.current=window.setTimeout(()=>{Vn.current=null,Bn.current!=null&&(Bn.current.textContent=o)},60)};return window.addEventListener(`keydown`,e,{capture:!0}),()=>{window.removeEventListener(`keydown`,e,{capture:!0}),Vn.current!=null&&(window.clearTimeout(Vn.current),Vn.current=null)}},br);let xr;t[106]!==n?.editor||t[107]!==j||t[108]!==V?(xr=()=>{if(!j)return;let e=V.some($t);ge({terminalLive:e}),n?.editor.notifyViewMenuStateChanged({terminalLive:e})},t[106]=n?.editor,t[107]=j,t[108]=V,t[109]=xr):xr=t[109];let Sr;t[110]!==n||t[111]!==j||t[112]!==V?(Sr=[n,V,j],t[110]=n,t[111]=j,t[112]=V,t[113]=Sr):Sr=t[113],(0,Y.useEffect)(xr,Sr);let Cr,wr;t[114]!==I||t[115]!==y||t[116]!==S||t[117]!==d?(Cr=()=>{y||d||Gt(I)&&S()},wr=[y,d,I,S],t[114]=I,t[115]=y,t[116]=S,t[117]=d,t[118]=Cr,t[119]=wr):(Cr=t[118],wr=t[119]),(0,Y.useLayoutEffect)(Cr,wr);let Tr;t[120]===y?Tr=t[121]:(Tr=[y],t[120]=y,t[121]=Tr),(0,Y.useEffect)(()=>{if(!y)return;let e=G.current.find(e=>e.id===W.current);e!=null&&Wt(e)},Tr);let Er=V.map(e=>({id:e.id,label:Rn(e),icon:e.kind===`terminal`?Jt():Yt(ut.get(e.threadId))})),Dr=[...V].sort(Qt),Or;t[122]===h?Or=t[123]:(Or=h??{},t[122]=h,t[123]=Or);let kr;t[124]!==q||t[125]!==Or?(kr=we(q,Or),t[124]=q,t[125]=Or,t[126]=kr):kr=t[126];let Ar=(0,X.jsx)(kt,{selected:$,onLaunchSelected:jt,showAgents:A,registeredAgents:at,onPickAgent:Pn,onOpenSettings:ce,liveThreadCount:Q,showClis:M,onPickCli:jn,onPickTerminal:Mn,visibleClis:kr}),jr=A&&Ke.length>0?(0,X.jsx)(rt,{archived:Ke,openThreadIds:mt,onOpenThread:_t}):null,Mr=V.length>0||d&&!k?(0,X.jsx)(Ft,{sessions:Er,sessionKind:A?`agent`:`terminal`,activeSessionId:U,onSelect:e=>{B.current=null,je(e)},onTabActivate:e=>{let t=G.current.find(t=>t.id===e);t!=null&&queueMicrotask(()=>Wt(t))},newButton:Ar,trailingControls:jr,onClose:Zn,onRename:Ln,onReorder:Hn,onDragActiveChange:e=>{zn.current=e},edge:oe,onPlacementChange:i===`terminal-dock`?s:void 0,reserveRightRevealTabGutter:c,onCollapse:k?void 0:()=>f(!1),draggable:k,className:`h-full`,children:V.length===0?M?null:A&&Ke.length>0?(0,X.jsx)(it,{archived:Ke,onOpen:_t}):(0,X.jsx)(Cn,{}):Dr.map(e=>(0,X.jsx)(Ge,{value:e.id,forceMount:!0,"data-session-id":e.id,...e.kind===`terminal`?{"data-terminal-session":e.id}:{},className:p(`m-0 flex min-h-0 flex-1 flex-col overflow-hidden data-[state=inactive]:hidden`,k&&`px-[22px] pb-[22px]`),children:e.kind===`terminal`?n!=null&&M?(0,X.jsx)(wt,{bridge:n,launch:e.launch,commandId:e.commandId,adoptPtyId:e.adoptPtyId,onPtyId:t=>yt(e.id,t),onTitleChange:t=>In(e.id,t),onClose:()=>Zn(e.id)}):null:(0,X.jsx)(xn,{threadId:e.threadId,info:ut.get(e.threadId),showConnectionBanner:Qe&&e.id===U,active:d&&e.id===U})},e.id))}):null,Nr;t[127]!==I||t[128]!==Mr?(Nr=I==null?null:(0,nt.createPortal)((0,X.jsxs)(X.Fragment,{children:[Mr,(0,X.jsx)(`span`,{ref:Bn,"aria-live":`polite`,"aria-atomic":`true`,className:`sr-only`,"data-testid":`terminal-reorder-announcer`})]}),I),t[127]=I,t[128]=Mr,t[129]=Nr):Nr=t[129];let Pr;return t[130]===Nr?Pr=t[131]:(Pr=(0,X.jsx)(X.Fragment,{children:Nr}),t[130]=Nr,t[131]=Pr),Pr}function Qt(e,t){return e.ordinal-t.ordinal}function $t(e){return e.kind===`terminal`}function en(e){return e.ordinal}function tn(e,t){return{kind:`terminal`,commandId:null,id:Bt(t+1),launch:null,title:null,customLabel:e.customLabel,ordinal:e.ordinal,adoptPtyId:null}}function nn(e){return e.ordinal}function rn(e,t){return{kind:`terminal`,commandId:null,id:Bt(t+1),launch:null,title:null,customLabel:e.customLabel??null,ordinal:e.ordinal??t+1,adoptPtyId:e.ptyId}}function an(e){return e.threadId}function on(e){return e.threadId}function sn(e){return e.kind===`thread`}function cn(e){return e.threadId}function ln(e){return e.kind===`thread`}function un(e){return e.threadId}function dn(e){return e!=null}function fn(e){return e.kind===`terminal`}function pn(){}function mn(e){return e.id}function hn(e){return e!=null}function gn(e){return[e.id,e]}function _n(e){return e!=null}function vn(e){return[e.threadId,e]}function yn(e){return e.archived!==!0}function bn(){if(typeof document>`u`)return null;let e=document.createElement(`div`);return e.className=`flex min-h-0 flex-1 flex-col overflow-hidden`,e}function xn(e){let t=(0,J.c)(10),{threadId:n,info:r,showConnectionBanner:i,active:a}=e;if(r===void 0)return null;let o;t[0]===i?o=t[1]:(o=i?(0,X.jsx)(Sn,{}):null,t[0]=i,t[1]=o);let s;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,X.jsx)(`div`,{role:`status`,"aria-busy":`true`,className:`flex min-h-0 flex-1 items-center justify-center text-muted-foreground`,children:(0,X.jsx)(je,{className:`size-5`,"aria-hidden":`true`})}),t[2]=s):s=t[2];let c;t[3]!==a||t[4]!==r||t[5]!==n?(c=(0,X.jsx)(Y.Suspense,{fallback:s,children:(0,X.jsx)(zt,{info:r,active:a},n)}),t[3]=a,t[4]=r,t[5]=n,t[6]=c):c=t[6];let l;return t[7]!==o||t[8]!==c?(l=(0,X.jsxs)(X.Fragment,{children:[o,c]}),t[7]=o,t[8]=c,t[9]=l):l=t[9],l}function Sn(){let e=(0,J.c)(4),{_:t}=a(),n;e[0]===t?n=e[1]:(n=t({id:`k0dL2I`}),e[0]=t,e[1]=n);let r;return e[2]===n?r=e[3]:(r=(0,X.jsx)(`div`,{className:`shrink-0 border-amber-500/30 border-b bg-amber-500/5 px-3 py-1 text-amber-700 text-xs dark:text-amber-400`,"data-testid":`agent-thread-reconnecting`,children:n}),e[2]=n,e[3]=r),r}function Cn(){let e=(0,J.c)(4),{_:t}=a(),n;e[0]===t?n=e[1]:(n=t({id:`-l6jM7`}),e[0]=t,e[1]=n);let r;return e[2]===n?r=e[3]:(r=(0,X.jsx)(`div`,{className:`flex min-h-0 flex-1 items-center justify-center px-6 text-center text-muted-foreground text-sm`,"data-testid":`sessions-dock-empty`,children:n}),e[2]=n,e[3]=r),r}function wn(e,t){return e.kind===`thread`?e.threadId:e.adoptPtyId??t.get(e.id)??null}function Tn(e,t){let n=e.filter(e=>e.kind===`terminal`),r=n.find(e=>e.id===t);return{tabs:n.map(e=>({ordinal:e.ordinal,customLabel:e.customLabel})),activeOrdinal:r?.ordinal??null}}function En(e,t,n,r){let i=e=>{let t=r(e);if(t==null)return 1/0;let i=n.indexOf(t);return i===-1?1/0:i},a=[...e];for(let e of t){let t=i(e);if(t===1/0){a.push(e);continue}let n=a.length;for(let e=0;e<a.length;e++)if(i(a[e])>t){n=e;break}a.splice(n,0,e)}return a}export{Zt as SessionsHost};