@inkeep/open-knowledge 0.86.14 → 0.86.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 (95) hide show
  1. package/dist/cli.mjs +6 -6
  2. package/dist/constants-Big4uVC4.mjs +1 -0
  3. package/dist/index.mjs +1 -1
  4. package/dist/{init-CU8JHuRv.mjs → init-D_Mnfn9S.mjs} +2 -2
  5. package/dist/init-DpWQMxOd.mjs +1 -0
  6. package/dist/{launch-json-removal-DBcv4jA1.mjs → launch-json-removal-DF78Zb2V.mjs} +1 -1
  7. package/dist/loader-D5rR-ONY.mjs +1 -0
  8. package/dist/{loader-DcXtk-rU.mjs → loader-EPi5ZErh.mjs} +1 -1
  9. package/dist/preview-ClW6A8dv.mjs +1 -0
  10. package/dist/{preview-D0yiWXMe.mjs → preview-D9iu9mhV.mjs} +1 -1
  11. package/dist/public/assets/{AccountSection-DRSIxwxm.js → AccountSection-BG0_TO2e.js} +1 -1
  12. package/dist/public/assets/{ActivityModeContent-DWcR-KNk.js → ActivityModeContent-DX7qnelJ.js} +1 -1
  13. package/dist/public/assets/{AddPropertiesButton-B9JMfzFO.js → AddPropertiesButton-ISpK9Zho.js} +1 -1
  14. package/dist/public/assets/{AgentConnectionsSection-C5YY2iqZ.js → AgentConnectionsSection-uSoGapoA.js} +1 -1
  15. package/dist/public/assets/{AgentDiffPane-C2K93smE.js → AgentDiffPane-BUMpUwLF.js} +1 -1
  16. package/dist/public/assets/{AttachmentsSection-CJs7Rc3T.js → AttachmentsSection-CN5du-Ku.js} +1 -1
  17. package/dist/public/assets/{CodeMirrorPropInput-WSseg6CL.js → CodeMirrorPropInput-Bbv8fSFU.js} +1 -1
  18. package/dist/public/assets/{ContentRulesSection-B3ErqX9d.js → ContentRulesSection-C9IeMwCS.js} +1 -1
  19. package/dist/public/assets/{DocumentContext-CGIt6FOU.js → DocumentContext-Di4xaMwl.js} +1 -1
  20. package/dist/public/assets/{EditorModeToggle-Cu79nYPq.js → EditorModeToggle-AVuI8ebZ.js} +1 -1
  21. package/dist/public/assets/{ExcalidrawDocEditor-BOhmS2b-.js → ExcalidrawDocEditor-Ce86s-v8.js} +1 -1
  22. package/dist/public/assets/FeedbackForm-BZSwiBHE.js +1 -0
  23. package/dist/public/assets/{ImportSkillDialog-CAX8ljbt.js → ImportSkillDialog-YCivM6Y8.js} +1 -1
  24. package/dist/public/assets/{LinkPreviewsSection-A2QdyCcf.js → LinkPreviewsSection-DgK68AAA.js} +1 -1
  25. package/dist/public/assets/{LintConfigEditor-BVlEvXbV.js → LintConfigEditor-CEnWskLc.js} +1 -1
  26. package/dist/public/assets/{LintingSection-CLtFP_bw.js → LintingSection-DfdRWFJl.js} +1 -1
  27. package/dist/public/assets/ManagedArtifactProperties-CPP8NsrT.js +1 -0
  28. package/dist/public/assets/{ManagedArtifactProperties-DMvnkwIR.js → ManagedArtifactProperties-GW5LIoca.js} +1 -1
  29. package/dist/public/assets/{MermaidDocEditor-D_OAncGT.js → MermaidDocEditor-pBnfScXw.js} +1 -1
  30. package/dist/public/assets/{NetworkAccessSection-I-6KtG5A.js → NetworkAccessSection-COAzJ4e0.js} +1 -1
  31. package/dist/public/assets/{PropertyDisplayRow-B1CSE73S.js → PropertyDisplayRow-DoYx80d4.js} +1 -1
  32. package/dist/public/assets/{PublishToGitHubDialog-BN4eN0zk.js → PublishToGitHubDialog-J-VGefwl.js} +1 -1
  33. package/dist/public/assets/{RegisteredAgentIcon-CH2UJPHT.js → RegisteredAgentIcon-ZO33SIbk.js} +1 -1
  34. package/dist/public/assets/{SchemaConfigEditor-BMupvURh.js → SchemaConfigEditor-BXEY5Lpc.js} +1 -1
  35. package/dist/public/assets/{SearchSection-DPG55XLU.js → SearchSection-DfIFmawW.js} +1 -1
  36. package/dist/public/assets/{SessionsHost-CyvTIVpe.js → SessionsHost-DaPpTHog.js} +2 -2
  37. package/dist/public/assets/{SettingsDialogBody-DmIGE-qS.js → SettingsDialogBody-CYvW19u7.js} +2 -2
  38. package/dist/public/assets/{ShareReceiveMissDialog-oVcEe43u.js → ShareReceiveMissDialog-Cw9ITE2h.js} +1 -1
  39. package/dist/public/assets/{SkillToolbarControls-D9333xOz.js → SkillToolbarControls-CuTnMhoM.js} +1 -1
  40. package/dist/public/assets/{SlidesPluginSection-JtRNI6Bl.js → SlidesPluginSection-sJCULGvB.js} +1 -1
  41. package/dist/public/assets/{SourceEditor-BI5Pgm-Q.js → SourceEditor-DzijW0O3.js} +1 -1
  42. package/dist/public/assets/{SyncSection-CYPFClvJ.js → SyncSection-D-yuvsEP.js} +1 -1
  43. package/dist/public/assets/{SyncStatusBadge-BxhIVUSN.js → SyncStatusBadge-DDXV7fc_.js} +1 -1
  44. package/dist/public/assets/{TerminalLaunchContext-BxQb0o6_.js → TerminalLaunchContext-B2-Yyjfq.js} +1 -1
  45. package/dist/public/assets/{TerminalPanel-TWLJT5Es.js → TerminalPanel-DIsDo64q.js} +1 -1
  46. package/dist/public/assets/{TerminalSection-DjXoxAzv.js → TerminalSection-B35_ovK-.js} +1 -1
  47. package/dist/public/assets/{TerminalWindowApp-2dFpjgCy.js → TerminalWindowApp-DVlYGRoh.js} +1 -1
  48. package/dist/public/assets/{TextDocEditor-BOPZE0Lj.js → TextDocEditor-D9oE75zl.js} +1 -1
  49. package/dist/public/assets/{ThreadView-TzfH6kSd.js → ThreadView-BQnQfd0I.js} +1 -1
  50. package/dist/public/assets/{TimelineDiffPane-CvyN9XCs.js → TimelineDiffPane-Dri7SUVQ.js} +1 -1
  51. package/dist/public/assets/{agent-connections-C9gOf_nm.js → agent-connections-ClaZG-_U.js} +1 -1
  52. package/dist/public/assets/{agent-registry-JpS34dxk.js → agent-registry--ZvcMUR1.js} +1 -1
  53. package/dist/public/assets/{catalog-D4vfUgQo.js → catalog-B0-UcLAY.js} +1 -1
  54. package/dist/public/assets/{client-version-_roD9Mc2.js → client-version-BYVa8AIr.js} +1 -1
  55. package/dist/public/assets/{comment-chips-Zkuc_-hT.js → comment-chips-EHSRiXz3.js} +1 -1
  56. package/dist/public/assets/{config-provider-B8mvte8j.js → config-provider-kLYQhPYp.js} +1 -1
  57. package/dist/public/assets/{doc-undo-manager-CqSRy23B.js → doc-undo-manager-HTjJCKce.js} +1 -1
  58. package/dist/public/assets/handoff-BL1N3ufS.js +31 -0
  59. package/dist/public/assets/{index-CFBeFisV.js → index-9UmK6oDx.js} +8 -8
  60. package/dist/public/assets/{lint-plugins-DFgOVoWc.js → lint-plugins-B9OFl9DC.js} +1 -1
  61. package/dist/public/assets/{pending-receive-nav-store-C2IftYqE.js → pending-receive-nav-store-DRuzqurs.js} +1 -1
  62. package/dist/public/assets/{preferred-session-events-Dy50til3.js → preferred-session-events-Cwvz3DYB.js} +1 -1
  63. package/dist/public/assets/{progress-LPtiyKIw.js → progress-DJDyKmOT.js} +1 -1
  64. package/dist/public/assets/{selection-context-Eugw6gij.js → selection-context-BiltXMSS.js} +1 -1
  65. package/dist/public/assets/{src-B4KoodvG.js → src-CpVL1MXA.js} +1 -1
  66. package/dist/public/assets/{telemetry-impl-1N_i_MM7.js → telemetry-impl-tfAX1CTp.js} +1 -1
  67. package/dist/public/assets/{telemetry-startup-Bbj9IJiY.js → telemetry-startup-Kz3A4OMo.js} +1 -1
  68. package/dist/public/assets/terminal-cli-display-BXsYyX7o.js +1 -0
  69. package/dist/public/assets/{terminal-command-events-DbFkr7Tx.js → terminal-command-events-Br-QLm8r.js} +1 -1
  70. package/dist/public/assets/{terminal-launch-events-Ce-BtSYr.js → terminal-launch-events-tB39DaoG.js} +1 -1
  71. package/dist/public/assets/{typing-burst-detector-6tn7Rb5e.js → typing-burst-detector-DCLWi61a.js} +1 -1
  72. package/dist/public/assets/{use-activity-panel-Byvv5pzZ.js → use-activity-panel-Betx0VB5.js} +1 -1
  73. package/dist/public/assets/{use-open-skill-CRIE9UPT.js → use-open-skill-Qib9eMlk.js} +1 -1
  74. package/dist/public/assets/{use-terminal-enabled-BH7nqqpv.js → use-terminal-enabled-CVVMal6F.js} +1 -1
  75. package/dist/public/assets/{use-timeline-entry-diff-CeCtYfFQ.js → use-timeline-entry-diff-C2kQsAEV.js} +1 -1
  76. package/dist/public/index.html +27 -27
  77. package/dist/{registry-probes-B6P6SWYp.mjs → registry-probes-xhAfEfyJ.mjs} +1 -1
  78. package/dist/{removal-file-path-Db7306CO.mjs → removal-file-path-Cck6aRSq.mjs} +1 -1
  79. package/dist/{repair-launch-json-CvfO4MK8.mjs → repair-launch-json-CwNpvI1_.mjs} +1 -1
  80. package/dist/{repair-mcp-configs-ktPVUdEq.mjs → repair-mcp-configs-BJuIMxPX.mjs} +1 -1
  81. package/dist/src-DkA3OkNb.mjs +1 -0
  82. package/dist/{src-DG-jD_P7.mjs → src-P3X9-4mK.mjs} +1 -1
  83. package/dist/start-Bqg3TrSD.mjs +1 -0
  84. package/dist/{start-D6cOivnm.mjs → start-W6HfLGEn.mjs} +2 -2
  85. package/package.json +4 -4
  86. package/dist/constants-C1ecohqm.mjs +0 -1
  87. package/dist/init-CQ-BUQVZ.mjs +0 -1
  88. package/dist/loader-CsaJ_vwy.mjs +0 -1
  89. package/dist/preview-D0Ljzho5.mjs +0 -1
  90. package/dist/public/assets/FeedbackForm-zZEoHY75.js +0 -1
  91. package/dist/public/assets/ManagedArtifactProperties-CSRfbPCL.js +0 -1
  92. package/dist/public/assets/handoff-sZd6nXho.js +0 -31
  93. package/dist/public/assets/terminal-cli-display-CDqjsErM.js +0 -1
  94. package/dist/src-BlOiRzVT.mjs +0 -1
  95. package/dist/start-ByP-9eJD.mjs +0 -1
@@ -1 +1 @@
1
- import{_ as e,a as t,f as n,g as r,i,m as a,p as o,s,t as c,u as l,v as u,y as ee}from"./schemas-B93JY9Ef.js";import{Ft as d,It as te,Lt as ne,Mt as re,Nt as ie,Pt as ae,Rt as f,jt as oe}from"./schemas-api-CzN0ZSyO.js";import{i as p,t as m}from"./constants-editors-DLxv8SuP.js";import{x as se}from"./handoff-sZd6nXho.js";var h=[...m,`gemini`],g=c(h);function _(e){return h.includes(e)}var ce=c([`acp`,`terminal`,`external`]),le=c([...se,`gemini`]),ue=c([`claude-cowork`,`claude-code`,`codex`,`cursor`,`copilot`,`opencode`,`pi`,`antigravity`,`openclaw`,`hermes`]),v=c([`mcp`,`skill`]),de=[`project`,`user`,`session`],fe=c(de),y=u().regex(/^[a-z0-9-]+\/[a-z0-9-]+\/[a-z0-9-]+\/[a-z0-9-]+$/).transform(e=>e),pe=u().min(1).transform(e=>e),me=u().min(1).transform(e=>e);function b(e){return`${e.agent}/${e.piece}/${e.scope}/${e.kind}`}function he(e){return e}function ge(e){return e}var _e=[`editor-user-config`,`editor-project-config`,`editor-project-skill-root`,`editor-user-skill-root`],ve=he(`central-skill-store`);function x(e,t){return he(`${e}:${t}`)}function ye(e){if(e===ve)return{kind:`central-skill-store`};let t=e.indexOf(`:`);if(t===-1)return null;let n=e.slice(0,t),r=e.slice(t+1);return!_e.includes(n)||!m.includes(r)?null:{kind:n,editor:r}}var be=c(m),S=o({kind:c([`source-read`,`measured`,`vendor-doc`,`upstream-issue`,`observation`]),ref:u().min(1),note:u().optional()}),C=o({version:u().min(1).optional(),observedAt:u().min(1)}),xe=s(`confidence`,[o({confidence:l(`verified`),evidence:i(S).min(1),verifiedAgainst:C.optional()}),o({confidence:l(`assumed`),evidence:i(S).min(1),verifiedAgainst:C.optional()}),o({confidence:l(`contested`),evidence:i(S).min(1),verifiedAgainst:C})]),w=o({id:me,params:r(u(),ee([u(),n(),t()])).optional()}),Se=s(`mode`,[o({mode:l(`probeable`),strictness:i(d).min(1)}),o({mode:l(`unprobeable`),reason:c([`no-readable-state`,`different-machine`,`no-programmatic-path`,`session-scoped`]),note:u().optional()})]),Ce=c([`this-project`,`this-user`,`this-machine`]),we=c([`installable`,`user-completes`,`not-installable`]),Te=o({id:y,agent:g,piece:v,scope:fe,kind:ne,pathId:pe.optional(),sharedWith:i(g).default([]),prerequisites:i(y).default([]),consentClass:re.default(`none`),probe:Se,attestation:xe,audience:Ce,installability:we.default(`installable`),notInstallableReason:c([`no-non-interactive-verb`,`session-scoped`,`no-surface`]).optional(),preferred:t().default(!1),guidance:w.optional(),followup:w.optional(),troubleshooting:i(w).default([])}),Ee=o({piece:v,level:te,satisfiedByAny:i(y)}),De=o({acpAgentId:u().min(1),featuredOrder:n().int().nonnegative().nullable(),harnessCli:le.nullable(),harnessReadsEditorConfig:be.nullable(),harnessReadsEditorConfigAttestation:xe,verifiedPosture:c([`asks`,`self-managed`,`autonomous`]).nullable()}),Oe=o({cliId:u().min(1)}),T=[`darwin`,`win32`,`linux`],ke=c(T),Ae=o({targetId:ue,knownOrder:n().int().nonnegative(),visible:t(),displayName:u().min(1),appBrandName:u().min(1).optional(),schemes:i(u().min(1)),installUrl:u().min(1),platforms:i(ke).min(1),tagline:u().min(1).optional()}),je=o({requirements:i(Ee),caveats:i(w).default([])});o({id:g,setupDocSlug:u().min(1).nullable(),offerOnlyWhenDetected:t().default(!1),offersConnectionRow:t().default(!1),detectionSources:i(u().min(1)).default([]),satisfiers:i(Te),modes:a(ce,je),acp:De.optional(),terminal:Oe.optional(),external:Ae.optional()}),o({id:u().min(1),requiredStrictness:d,scope:fe.optional(),piece:v,revokedByForeignEntry:t().default(!1),guidance:w.optional()});var Me=e=>e===void 0?[]:Array.isArray(e)?[...e]:[e];function E(e){let{sharedWith:t,prerequisites:n,consentClass:r,installability:i,preferred:a,troubleshooting:o,...s}=e;return{...s,troubleshooting:Me(o),id:b({agent:e.agent,piece:e.piece,scope:e.scope,kind:e.kind}),sharedWith:t??[],prerequisites:n??[],consentClass:r??`none`,installability:i??`installable`,preferred:a??!1}}function D(e){let{offerOnlyWhenDetected:t,offersConnectionRow:n,detectionSources:r,modes:i,...a}=e,o={};for(let[e,t]of Object.entries(i))o[e]={requirements:t.requirements,caveats:t.caveats??[]};return{...a,offerOnlyWhenDetected:t??!1,offersConnectionRow:n??!1,detectionSources:r??[],modes:o}}var O=(e,t,n,r)=>b({agent:e,piece:t,scope:n,kind:r}),k=e=>({piece:`mcp`,level:`required`,satisfiedByAny:e}),A=e=>({piece:`skill`,level:`recommended`,satisfiedByAny:e}),j=(...e)=>({mode:`probeable`,strictness:e}),Ne=(e,t)=>({mode:`unprobeable`,reason:e,...t===void 0?{}:{note:t}}),M=(e,t)=>({id:ge(e),...t===void 0?{}:{params:t}}),Pe=(e,t)=>{let n=ae.find(t=>t===e);return n===void 0?void 0:M(`followup.${n}`,{agent:t})},N=(e,t)=>({kind:`source-read`,ref:e,...t===void 0?{}:{note:t}}),P=(e,t)=>t===void 0?{confidence:`verified`,evidence:e}:{confidence:`verified`,evidence:e,verifiedAgainst:t},Fe=(e,t)=>({confidence:`contested`,evidence:e,verifiedAgainst:t});function F(e){return{acpAgentId:e.acpAgentId,featuredOrder:e.featuredOrder,harnessCli:e.harnessCli,harnessReadsEditorConfig:e.readsEditorConfig,harnessReadsEditorConfigAttestation:e.readsEditorConfigAttestation,verifiedPosture:e.verifiedPosture}}function I(e){let{appBrandName:t,tagline:n,platforms:r=T,...i}=e;return{...i,platforms:[...r],...t===void 0?{}:{appBrandName:t},...n===void 0?{}:{tagline:n}}}var L=(e,t)=>({kind:`observation`,ref:e,note:t}),R={observedAt:`2026-07-02`},z={cliEditors:`packages/cli/src/commands/editors.ts`,coreEditors:`packages/core/src/constants/editors.ts`,acpRegistry:`packages/server/src/acp/registry.ts`,threadManager:`packages/server/src/acp/thread-manager.ts`,writeProjectSkill:`packages/cli/src/integrations/write-project-skill.ts`,repairSkills:`packages/cli/src/commands/repair-skills.ts`,skillInstall:`packages/server/src/skill-install.ts`,presenceProbes:`packages/desktop/src/main/integrations-settings.ts`};function B(e){return E({agent:e.agent,piece:`mcp`,scope:`user`,kind:`config-entry`,pathId:x(`editor-user-config`,e.agent),probe:j(...e.strictness),attestation:e.attestation,audience:`this-user`,installability:e.installability,notInstallableReason:e.notInstallableReason,guidance:M(`guidance.mcp.user-config`,{agent:e.agent}),troubleshooting:e.troubleshooting})}function V(e){return E({agent:e.agent,piece:`mcp`,scope:`project`,kind:`config-entry`,pathId:x(`editor-project-config`,e.fileOwner??e.agent),sharedWith:e.sharedWith,consentClass:e.consentClass,probe:j(...e.strictness),attestation:e.attestation,audience:`this-project`,guidance:M(`guidance.mcp.project-config`,{agent:e.agent}),followup:Pe(e.consentClass,e.agent),troubleshooting:e.troubleshooting})}function H(e){return E({agent:e.agent,piece:`skill`,scope:`project`,kind:`skill-bundle-copy`,pathId:x(`editor-project-skill-root`,e.agent),prerequisites:e.prerequisites,probe:j(`reclaim-permissive`),attestation:e.attestation,audience:`this-project`,guidance:M(`guidance.skill.project`,{agent:e.agent}),troubleshooting:e.troubleshooting})}function U(e){return E({agent:e.agent,piece:`skill`,scope:`user`,kind:`skill-bundle-copy`,pathId:x(`editor-user-skill-root`,e.agent),probe:j(`reclaim-permissive`),attestation:e.attestation,audience:`this-user`,guidance:M(`guidance.skill.user`,{agent:e.agent})})}function W(e){return E({agent:e,piece:`mcp`,scope:`session`,kind:`session-injection`,probe:Ne(`session-scoped`),attestation:P([N(z.threadManager,`the session MCP config the thread manager builds per thread`)]),audience:`this-project`,installability:`not-installable`,notInstallableReason:`session-scoped`,guidance:M(`guidance.mcp.session-injection`,{agent:e})})}var G={claude:D({id:`claude`,setupDocSlug:p.claude,offersConnectionRow:!0,detectionSources:[`cli-on-path:claude`,`scheme-handler:claude-code`],satisfiers:[B({agent:`claude`,strictness:[`reclaim-permissive`,`pre-approval-exact`,`injection-functional`],attestation:P([N(z.cliEditors,`user-global MCP config target`)])}),V({agent:`claude`,sharedWith:[`copilot`],consentClass:`approve-once`,strictness:[`reclaim-permissive`,`pre-approval-exact`,`injection-functional`],attestation:P([N(z.cliEditors),N(z.coreEditors)]),troubleshooting:M(`troubleshooting.claude.project-entry-not-approved`,{agent:`claude`})}),H({agent:`claude`,prerequisites:[O(`claude`,`mcp`,`project`,`config-entry`)],attestation:P([N(z.coreEditors),N(z.repairSkills)])}),U({agent:`claude`,attestation:P([N(z.coreEditors),N(z.skillInstall)])}),W(`claude`)],modes:{external:{requirements:[k([O(`claude`,`mcp`,`user`,`config-entry`),O(`claude`,`mcp`,`project`,`config-entry`)]),A([O(`claude`,`skill`,`project`,`skill-bundle-copy`),O(`claude`,`skill`,`user`,`skill-bundle-copy`)])]},terminal:{requirements:[k([O(`claude`,`mcp`,`user`,`config-entry`),O(`claude`,`mcp`,`project`,`config-entry`)]),A([O(`claude`,`skill`,`project`,`skill-bundle-copy`),O(`claude`,`skill`,`user`,`skill-bundle-copy`)])]},acp:{requirements:[k([O(`claude`,`mcp`,`session`,`session-injection`),O(`claude`,`mcp`,`user`,`config-entry`),O(`claude`,`mcp`,`project`,`config-entry`)]),A([O(`claude`,`skill`,`project`,`skill-bundle-copy`),O(`claude`,`skill`,`user`,`skill-bundle-copy`)])]}},acp:F({acpAgentId:`claude-acp`,featuredOrder:0,harnessCli:`claude`,readsEditorConfig:`claude`,readsEditorConfigAttestation:P([N(z.threadManager,`the injection-skip probe reads the managed entry for this editor`),L(`claude-acp adapter`,`The adapter runs Claude Code, which loads the MCP entry OK writes for the Claude editor on its own, so injecting a same-name duplicate would be redundant.`)],R),verifiedPosture:`asks`}),external:I({targetId:`claude-code`,knownOrder:1,visible:!0,displayName:`Claude`,appBrandName:`Claude Desktop`,schemes:[`claude:`],installUrl:`https://claude.com/download`,tagline:`Agentic coding in Claude Desktop's Code tab.`})}),"claude-desktop":D({id:`claude-desktop`,setupDocSlug:p[`claude-desktop`],offersConnectionRow:!1,detectionSources:[`scheme-handler:claude-code`],satisfiers:[B({agent:`claude-desktop`,strictness:[`reclaim-permissive`],attestation:P([N(z.cliEditors,`user-global config target; its path resolution throws on Linux`)]),troubleshooting:M(`troubleshooting.claude-desktop.per-tool-approval`,{agent:`claude-desktop`})})],modes:{external:{requirements:[k([O(`claude-desktop`,`mcp`,`user`,`config-entry`)]),A([])]}},external:I({targetId:`claude-cowork`,knownOrder:0,visible:!1,displayName:`Claude Cowork`,appBrandName:`Claude Desktop`,schemes:[`claude:`],installUrl:`https://claude.com/download`,tagline:`Conversational pairing in Claude Desktop's Cowork tab.`})}),cursor:D({id:`cursor`,setupDocSlug:p.cursor,offersConnectionRow:!0,detectionSources:[`cli-on-path:cursor`,`scheme-handler:cursor`],satisfiers:[B({agent:`cursor`,strictness:[`reclaim-permissive`],attestation:P([N(z.cliEditors)])}),V({agent:`cursor`,consentClass:`enable-manually`,strictness:[`reclaim-permissive`],attestation:P([N(z.cliEditors),N(z.coreEditors),{kind:`observation`,ref:`cursor-3.19.19-project-server-default-off`,note:`project .cursor/mcp.json server listed Disabled under Customize → MCPs with no prompt; enabled via the per-source toggle in its Configure dialog; with a same-named user-level entry present, the user entry connected and the disabled project entry did not shadow it`}],{version:`3.19.19`,observedAt:`2026-09-09`}),troubleshooting:M(`troubleshooting.cursor.project-entry-not-loaded`,{agent:`cursor`})}),H({agent:`cursor`,prerequisites:[O(`cursor`,`mcp`,`project`,`config-entry`)],attestation:P([N(z.coreEditors),N(z.repairSkills)])}),U({agent:`cursor`,attestation:P([N(z.coreEditors),N(z.skillInstall)])}),W(`cursor`)],modes:{external:{requirements:[k([O(`cursor`,`mcp`,`user`,`config-entry`),O(`cursor`,`mcp`,`project`,`config-entry`)]),A([O(`cursor`,`skill`,`project`,`skill-bundle-copy`),O(`cursor`,`skill`,`user`,`skill-bundle-copy`)])]},terminal:{requirements:[k([O(`cursor`,`mcp`,`user`,`config-entry`),O(`cursor`,`mcp`,`project`,`config-entry`)]),A([O(`cursor`,`skill`,`project`,`skill-bundle-copy`),O(`cursor`,`skill`,`user`,`skill-bundle-copy`)])]},acp:{requirements:[k([O(`cursor`,`mcp`,`session`,`session-injection`)]),A([O(`cursor`,`skill`,`project`,`skill-bundle-copy`),O(`cursor`,`skill`,`user`,`skill-bundle-copy`)])]}},acp:F({acpAgentId:`cursor`,featuredOrder:3,harnessCli:`cursor`,readsEditorConfig:null,readsEditorConfigAttestation:P([L(`cursor-agent mcp list`,`Reports a config-declared entry that has not been approved as "not loaded (needs approval)", so a present entry says nothing about whether the agent will have the tools.`),N(z.threadManager,`the one agent the skip probe never stands down for`)],{observedAt:`2026-08-20`}),verifiedPosture:`self-managed`}),external:I({targetId:`cursor`,knownOrder:3,visible:!0,displayName:`Cursor`,schemes:[`cursor:`],installUrl:`https://cursor.com/`,tagline:`AI-first VS Code fork with multi-file edits.`})}),codex:D({id:`codex`,setupDocSlug:p.codex,offersConnectionRow:!0,detectionSources:[`cli-on-path:codex`,`scheme-handler:codex`],satisfiers:[B({agent:`codex`,strictness:[`reclaim-permissive`,`injection-functional`],attestation:P([N(z.cliEditors,`TOML user-global config target`)])}),V({agent:`codex`,consentClass:`trust-gated`,strictness:[`reclaim-permissive`,`injection-functional`],attestation:Fe([N(z.cliEditors,`project config path added by analogy with the other editors`),{kind:`upstream-issue`,ref:`openai/codex#13025`,note:`open, reproduced on builds newer than the one OK checked`},{kind:`upstream-issue`,ref:`openai/codex#36960`,note:`requires an explicit trust decision in rust-v0.147.0, reverting #36935's automatic trust from the same release; builds from 0.113 asked but did not reliably persist the answer (#14547); codex exec never asks`},{kind:`vendor-doc`,ref:`OpenAI Codex: Advanced configuration`,note:`project-scoped config loads only for a trusted project`},{kind:`observation`,ref:`codex-desktop-project-config-load`,note:`single non-repro on 26.623.81905; the CLI honors it only for a trusted project`}],{version:`26.707.72221`,observedAt:`2026-07-15`}),troubleshooting:[M(`troubleshooting.codex.desktop-project-config`,{agent:`codex`,honoredByDesktop:!1}),M(`troubleshooting.codex.folder-trust`,{agent:`codex`})]}),H({agent:`codex`,prerequisites:[O(`codex`,`mcp`,`project`,`config-entry`)],attestation:P([N(z.coreEditors),N(z.repairSkills)]),troubleshooting:M(`troubleshooting.codex.folder-trust`,{agent:`codex`})}),U({agent:`codex`,attestation:P([N(z.coreEditors),N(z.skillInstall)])}),W(`codex`)],modes:{external:{requirements:[k([O(`codex`,`mcp`,`user`,`config-entry`),O(`codex`,`mcp`,`project`,`config-entry`)]),A([O(`codex`,`skill`,`project`,`skill-bundle-copy`),O(`codex`,`skill`,`user`,`skill-bundle-copy`)])]},terminal:{requirements:[k([O(`codex`,`mcp`,`user`,`config-entry`),O(`codex`,`mcp`,`project`,`config-entry`)]),A([O(`codex`,`skill`,`project`,`skill-bundle-copy`),O(`codex`,`skill`,`user`,`skill-bundle-copy`)])]},acp:{requirements:[k([O(`codex`,`mcp`,`session`,`session-injection`),O(`codex`,`mcp`,`user`,`config-entry`),O(`codex`,`mcp`,`project`,`config-entry`)]),A([O(`codex`,`skill`,`project`,`skill-bundle-copy`),O(`codex`,`skill`,`user`,`skill-bundle-copy`)])]}},acp:F({acpAgentId:`codex-acp`,featuredOrder:1,harnessCli:`codex`,readsEditorConfig:`codex`,readsEditorConfigAttestation:P([N(z.cliEditors,`the managed MCP entry OK writes into the Codex TOML config`),L(`codex-acp adapter`,`The adapter runs the Codex CLI, which loads the MCP servers declared in its own config, so the managed entry is already in the session.`)],R),verifiedPosture:`self-managed`}),external:I({targetId:`codex`,knownOrder:2,visible:!0,displayName:`ChatGPT`,appBrandName:`ChatGPT Desktop`,schemes:[`codex:`],installUrl:`https://developers.openai.com/codex/app`,tagline:`OpenAI's ChatGPT desktop app, home of the Codex agent.`})}),copilot:D({id:`copilot`,setupDocSlug:p.copilot,offersConnectionRow:!0,detectionSources:[`cli-on-path:copilot`],satisfiers:[B({agent:`copilot`,strictness:[`reclaim-permissive`],attestation:P([N(z.cliEditors)])}),V({agent:`copilot`,fileOwner:`claude`,sharedWith:[`claude`],consentClass:`trust-gated`,strictness:[`reclaim-permissive`],attestation:P([{kind:`vendor-doc`,ref:`GitHub Copilot CLI — MCP configuration`,note:"reads workspace `.mcp.json` or `.github/mcp.json`"},{kind:`vendor-doc`,ref:`GitHub Docs: Adding MCP servers for Copilot CLI`,note:`project-level servers load only after folder-trust confirmation; skipped silently in untrusted folders; under copilot -p they load only in an already-trusted folder unless GITHUB_COPILOT_PROMPT_MODE_WORKSPACE_MCP=true`},N(z.coreEditors,`OK deliberately writes no second copy for copilot`)],{version:`copilot CLI 1.0.80`,observedAt:`2026-08-20`}),troubleshooting:M(`troubleshooting.copilot.shared-workspace-config`,{agent:`copilot`,sourceAgent:`claude`})}),H({agent:`copilot`,prerequisites:[O(`copilot`,`mcp`,`project`,`config-entry`),O(`copilot`,`mcp`,`user`,`config-entry`)],attestation:P([N(z.coreEditors),N(z.writeProjectSkill)])}),U({agent:`copilot`,attestation:P([N(z.coreEditors),N(z.skillInstall)])}),W(`copilot`)],modes:{external:{requirements:[k([O(`copilot`,`mcp`,`user`,`config-entry`),O(`copilot`,`mcp`,`project`,`config-entry`)]),A([O(`copilot`,`skill`,`project`,`skill-bundle-copy`),O(`copilot`,`skill`,`user`,`skill-bundle-copy`)])]},terminal:{requirements:[k([O(`copilot`,`mcp`,`user`,`config-entry`),O(`copilot`,`mcp`,`project`,`config-entry`)]),A([O(`copilot`,`skill`,`project`,`skill-bundle-copy`),O(`copilot`,`skill`,`user`,`skill-bundle-copy`)])]},acp:{requirements:[k([O(`copilot`,`mcp`,`session`,`session-injection`)]),A([O(`copilot`,`skill`,`project`,`skill-bundle-copy`),O(`copilot`,`skill`,`user`,`skill-bundle-copy`)])]}},acp:F({acpAgentId:`github-copilot-cli`,featuredOrder:4,harnessCli:null,readsEditorConfig:null,readsEditorConfigAttestation:{confidence:`assumed`,evidence:[L(`copilot CLI 1.0.80`,"The CLI does read a workspace `.mcp.json`, but nobody has observed the ACP adapter loading the managed entry inside a session. Claiming it would stand our injection down on an unverified read and risk a thread with no OK tools, so the claim stays unmade and OK keeps injecting.")],verifiedAgainst:{version:`1.0.80`,observedAt:`2026-08-20`}},verifiedPosture:null}),external:I({targetId:`copilot`,knownOrder:4,visible:!1,displayName:`GitHub Copilot`,schemes:[],installUrl:`https://docs.github.com/en/copilot/how-tos/copilot-cli/cli-getting-started`,tagline:`GitHub's terminal-native coding agent.`})}),opencode:D({id:`opencode`,setupDocSlug:p.opencode,offersConnectionRow:!0,detectionSources:[`cli-on-path:opencode`],satisfiers:[B({agent:`opencode`,strictness:[`reclaim-permissive`,`injection-functional`],attestation:P([N(z.cliEditors,`XDG config dir; the win32 location is by analogy and unverified`)])}),V({agent:`opencode`,consentClass:`none`,strictness:[`reclaim-permissive`,`injection-functional`],attestation:P([N(z.cliEditors,`the one project config that is not under a dotdir`)])}),H({agent:`opencode`,prerequisites:[O(`opencode`,`mcp`,`project`,`config-entry`)],attestation:P([N(z.coreEditors),N(z.repairSkills)])}),U({agent:`opencode`,attestation:P([N(z.coreEditors),N(z.skillInstall)])}),W(`opencode`)],modes:{external:{requirements:[k([O(`opencode`,`mcp`,`user`,`config-entry`),O(`opencode`,`mcp`,`project`,`config-entry`)]),A([O(`opencode`,`skill`,`project`,`skill-bundle-copy`),O(`opencode`,`skill`,`user`,`skill-bundle-copy`)])]},terminal:{requirements:[k([O(`opencode`,`mcp`,`user`,`config-entry`),O(`opencode`,`mcp`,`project`,`config-entry`)]),A([O(`opencode`,`skill`,`project`,`skill-bundle-copy`),O(`opencode`,`skill`,`user`,`skill-bundle-copy`)])]},acp:{requirements:[k([O(`opencode`,`mcp`,`session`,`session-injection`),O(`opencode`,`mcp`,`user`,`config-entry`),O(`opencode`,`mcp`,`project`,`config-entry`)]),A([O(`opencode`,`skill`,`project`,`skill-bundle-copy`),O(`opencode`,`skill`,`user`,`skill-bundle-copy`)])]}},acp:F({acpAgentId:`opencode`,featuredOrder:5,harnessCli:`opencode`,readsEditorConfig:`opencode`,readsEditorConfigAttestation:P([N(z.cliEditors,`the managed MCP entry OK writes into the opencode config`),L(`opencode-acp adapter`,`The adapter runs opencode, which loads its own configured MCP servers, so the managed entry is already in the session.`)],R),verifiedPosture:null}),external:I({targetId:`opencode`,knownOrder:5,visible:!1,displayName:`OpenCode`,schemes:[],installUrl:`https://opencode.ai`,tagline:`Open-source terminal coding agent; bring any local model.`})}),openclaw:D({id:`openclaw`,setupDocSlug:p.openclaw,offersConnectionRow:!0,offerOnlyWhenDetected:!0,detectionSources:[`cli-on-path:openclaw`],satisfiers:[B({agent:`openclaw`,strictness:[`reclaim-permissive`],attestation:P([N(z.cliEditors,"the one two-level server map, nested under `mcp.servers`")])}),E({agent:`openclaw`,piece:`skill`,scope:`user`,kind:`central-store-copy`,pathId:ve,probe:j(`reclaim-permissive`),attestation:P([N(z.coreEditors),N(z.skillInstall,`the hub is written only when it already exists`)]),audience:`this-user`,guidance:M(`guidance.skill.central-store`,{agent:`openclaw`}),troubleshooting:M(`troubleshooting.openclaw.central-store-missing`,{agent:`openclaw`})})],modes:{external:{requirements:[k([O(`openclaw`,`mcp`,`user`,`config-entry`)]),A([O(`openclaw`,`skill`,`user`,`central-store-copy`)])]},terminal:{requirements:[k([O(`openclaw`,`mcp`,`user`,`config-entry`)]),A([O(`openclaw`,`skill`,`user`,`central-store-copy`)])]}},external:I({targetId:`openclaw`,knownOrder:8,visible:!1,displayName:`OpenClaw`,schemes:[],installUrl:`https://openclaw.ai`,tagline:`Open-source agent gateway; runs agents against your MCP servers.`})}),pi:D({id:`pi`,setupDocSlug:p.pi,offersConnectionRow:!0,detectionSources:[`cli-on-path:pi`],satisfiers:[E({agent:`pi`,piece:`mcp`,scope:`project`,kind:`managed-file`,pathId:x(`editor-project-config`,`pi`),probe:j(`reclaim-permissive`,`injection-functional`),attestation:P([N(z.cliEditors,`OK owns the whole file; currency is a first-line sentinel`),N(z.acpRegistry,`the thread provisions this file instead of injecting`)]),audience:`this-project`,guidance:M(`guidance.mcp.managed-file`,{agent:`pi`}),troubleshooting:M(`troubleshooting.pi.folder-trust`,{agent:`pi`})}),H({agent:`pi`,prerequisites:[O(`pi`,`mcp`,`project`,`managed-file`)],attestation:P([N(z.coreEditors),N(z.writeProjectSkill)]),troubleshooting:M(`troubleshooting.pi.folder-trust`,{agent:`pi`})}),U({agent:`pi`,attestation:P([N(z.coreEditors,`the agent home nests one level below the dotdir`),N(z.skillInstall)])})],modes:{external:{requirements:[k([O(`pi`,`mcp`,`project`,`managed-file`)]),A([O(`pi`,`skill`,`project`,`skill-bundle-copy`),O(`pi`,`skill`,`user`,`skill-bundle-copy`)])]},terminal:{requirements:[k([O(`pi`,`mcp`,`project`,`managed-file`)]),A([O(`pi`,`skill`,`project`,`skill-bundle-copy`),O(`pi`,`skill`,`user`,`skill-bundle-copy`)])]},acp:{requirements:[k([O(`pi`,`mcp`,`project`,`managed-file`)]),A([O(`pi`,`skill`,`project`,`skill-bundle-copy`),O(`pi`,`skill`,`user`,`skill-bundle-copy`)])]}},acp:F({acpAgentId:`pi-acp`,featuredOrder:null,harnessCli:`pi`,readsEditorConfig:`pi`,readsEditorConfigAttestation:P([L(`pi-acp@0.0.33`,"Pi has no MCP client at all: it accepts `mcpServers` at session/new, stores them write-only and never connects. Its wiring is a managed extension FILE in the project, which OK provisions instead of injecting — the same mapping, a different shape."),N(z.threadManager,`the bridge route that provisions the extension instead of injecting`)],{version:`0.0.33`,observedAt:`2026-08-20`}),verifiedPosture:`autonomous`}),external:I({targetId:`pi`,knownOrder:6,visible:!1,displayName:`Pi`,schemes:[],installUrl:`https://pi.dev`,tagline:`Minimal open-source terminal coding agent, extensible in TypeScript.`})}),antigravity:D({id:`antigravity`,setupDocSlug:p.antigravity,offersConnectionRow:!0,offerOnlyWhenDetected:!0,detectionSources:[`cli-on-path:antigravity`],satisfiers:[B({agent:`antigravity`,strictness:[`reclaim-permissive`],attestation:P([N(z.cliEditors,`one user-global file shared by the IDE, the app and the CLI; per project you can only filter it`)])}),U({agent:`antigravity`,attestation:P([N(z.coreEditors),N(z.skillInstall)])})],modes:{external:{requirements:[k([O(`antigravity`,`mcp`,`user`,`config-entry`)]),A([O(`antigravity`,`skill`,`user`,`skill-bundle-copy`)])]},terminal:{requirements:[k([O(`antigravity`,`mcp`,`user`,`config-entry`)]),A([O(`antigravity`,`skill`,`user`,`skill-bundle-copy`)])]}},external:I({targetId:`antigravity`,knownOrder:7,visible:!1,displayName:`Antigravity`,schemes:[],installUrl:`https://antigravity.google`,tagline:"Google's agentic IDE + `agy` terminal agent."})}),"lm-studio":D({id:`lm-studio`,setupDocSlug:p[`lm-studio`],offersConnectionRow:!0,offerOnlyWhenDetected:!0,detectionSources:[],satisfiers:[B({agent:`lm-studio`,strictness:[`reclaim-permissive`],installability:`not-installable`,notInstallableReason:`no-non-interactive-verb`,attestation:P([N(z.cliEditors,`two candidate locations, resolved against what already exists`),{kind:`upstream-issue`,ref:`lmstudio-ai/lmstudio-bug-tracker#1371`,note:`documented config path differs from the one the app reads on macOS`},N(z.presenceProbes,`deliberately absent from the presence probes`)]),troubleshooting:M(`troubleshooting.lm-studio.config-path-mismatch`,{agent:`lm-studio`})})],modes:{external:{requirements:[k([O(`lm-studio`,`mcp`,`user`,`config-entry`)]),A([])]}}}),hermes:D({id:`hermes`,setupDocSlug:p.hermes,offersConnectionRow:!0,offerOnlyWhenDetected:!0,detectionSources:[`cli-on-path:hermes`],satisfiers:[B({agent:`hermes`,strictness:[`reclaim-permissive`],attestation:P([N(z.cliEditors,`the one YAML target; the whole config is a single user-global file`)])})],modes:{external:{requirements:[k([O(`hermes`,`mcp`,`user`,`config-entry`)]),A([])]},terminal:{requirements:[k([O(`hermes`,`mcp`,`user`,`config-entry`)]),A([])]}},external:I({targetId:`hermes`,knownOrder:9,visible:!1,displayName:`Hermes`,schemes:[],installUrl:`https://hermes-agent.nousresearch.com`,tagline:`Nous Research's terminal coding agent.`})}),gemini:D({id:`gemini`,setupDocSlug:null,detectionSources:[`harness-bin:gemini`],satisfiers:[W(`gemini`)],modes:{acp:{requirements:[k([O(`gemini`,`mcp`,`session`,`session-injection`)]),A([])]}},acp:F({acpAgentId:`gemini`,featuredOrder:2,harnessCli:`gemini`,readsEditorConfig:null,readsEditorConfigAttestation:P([N(z.coreEditors,`gemini reaches OK as an ACP agent only; it has no editor config target`)],R),verifiedPosture:null})})};function Ie(e){return G[e]}var Le=Object.values(G).flatMap(e=>e.satisfiers),Re=new Map(Le.map(e=>[e.id,e]));function ze(e){return Re.get(e)}var K=Object.values(G).flatMap(e=>e.acp===void 0?[]:[{record:e,acp:e.acp}]).sort((e,t)=>e.acp.acpAgentId.localeCompare(t.acp.acpAgentId));K.filter(({acp:e})=>e.featuredOrder!==null).sort((e,t)=>(e.acp.featuredOrder??0)-(t.acp.featuredOrder??0)).map(({acp:e})=>e.acpAgentId);var Be=Object.fromEntries(K.flatMap(({acp:e})=>e.harnessCli===null?[]:[[e.acpAgentId,e.harnessCli]]));Object.fromEntries(K.flatMap(({acp:e})=>e.harnessReadsEditorConfig===null?[]:[[e.acpAgentId,e.harnessReadsEditorConfig]]));var Ve=Object.fromEntries(K.flatMap(({acp:e})=>e.verifiedPosture===null?[]:[[e.acpAgentId,e.verifiedPosture]])),He=Object.values(G).flatMap(e=>e.external===void 0?[]:[e.external]).sort((e,t)=>e.knownOrder-t.knownOrder),Ue=He.map(({targetId:e,displayName:t,appBrandName:n,schemes:r,installUrl:i,platforms:a,tagline:o})=>({id:e,displayName:t,...n===void 0?{}:{appBrandName:n},schemes:r,installUrl:i,platforms:a,...o===void 0?{}:{tagline:o}}));function We(e,t){return t==null||e.platforms.includes(t)}var Ge=new Set(He.filter(e=>e.visible).map(e=>e.targetId)),Ke=Ue.filter(e=>Ge.has(e.id)),qe=m.filter(e=>G[e].offersConnectionRow),Je=new Map(Object.values(G).flatMap(e=>e.external===void 0?[]:[[e.external.targetId,e.id]]));function Ye(e){return Je.get(e)}var Xe=new Map(Object.values(G).flatMap(e=>e.modes.terminal===void 0?[]:[[e.id,e.id]]));function Ze(e){return Xe.get(e)}Object.fromEntries(Object.values(G).flatMap(e=>{let t=e.satisfiers.find(e=>e.piece===`mcp`&&e.scope===`project`&&e.consentClass!==`none`)?.consentClass;return t===void 0?[]:[[e.id,t]]})),new Set(oe);var Qe=[{id:`mcp-preapproval`,piece:`mcp`,scope:`project`,requiredStrictness:`pre-approval-exact`,revokedByForeignEntry:!1},{id:`tool-autoapprove`,piece:`mcp`,requiredStrictness:`pre-approval-exact`,revokedByForeignEntry:!0}];Qe.map(e=>e.id);var q={satisfied:{counts:!0,exception:null},"present-consent-unknown":{counts:!0,exception:`info`},absent:{counts:!1,exception:null},foreign:{counts:!1,exception:`warning`},"foreign-replaceable":{counts:!1,exception:`warning`},drifted:{counts:!1,exception:`warning`},excluded:{counts:!1,exception:`info`},"structural-na":{counts:!1,exception:`info`},undetected:{counts:!1,exception:null},unprobeable:{counts:!0,exception:`info`},unprobed:{counts:!1,exception:`info`}};c([`count-unverified`,`not-count`]);var $e={acp:{unprobed:`count-unverified`},terminal:{unprobed:`count-unverified`},external:{unprobed:`not-count`}};c([`acp-catalog-supported`,`harness-cli-on-path`,`os-scheme-handler`]);var et={acp:{signal:`acp-catalog-supported`,unresolved:`show`,negativeOutranksOverride:!0},terminal:{signal:`harness-cli-on-path`,unresolved:`show`,negativeOutranksOverride:!1},external:{signal:`os-scheme-handler`,unresolved:`hide`,negativeOutranksOverride:!1}};function J(e){return typeof e==`object`&&!!e}function Y(e,t){if(!J(e))return;let{satisfiers:n}=e;if(!J(n))return;let r=n[t];if(!J(r))return;let{state:i,strictness:a,sharedWith:o}=r;if(typeof i!=`string`||i.length===0)return;let s=Array.isArray(a)?a.filter(e=>typeof e==`string`):void 0,c=Array.isArray(o)?o.filter(e=>typeof e==`string`&&_(e)):void 0;return{state:i,...s===void 0?{}:{strictness:s},...c===void 0||c.length===0?{}:{sharedWith:c}}}function tt(e,t){if(!J(e))return!1;let{detected:n}=e;return Array.isArray(n)&&n.includes(t)}function X(e,t){return e.probe.mode===`unprobeable`?`unprobeable`:Y(t,e.id)?.state??`unprobed`}function Z(e){return f(e)?q[e]:q.unprobed}function nt(e,t){let n=e.filter(e=>{let n=ze(e);return n===void 0?!0:!Z(X(n,t)).counts});return n.length===e.length?n:[]}function rt(e){return Z(e).exception===`warning`}function it(e){return e.state===`foreign`?`foreign`:e.state===`structural-na`?`structural-na`:e.installability===`not-installable`?`not-installable`:e.agentFolded?`agent-undetected`:null}function at(e,t){let n=t?.probed===!0?tt(t,e.id):null;return{detected:n,folded:e.offerOnlyWhenDetected&&n===!1}}function ot(e,t){return(Y(t,e.id)?.sharedWith??[]).filter(t=>t!==e.agent)}var st=de.filter(e=>e!==`session`);function ct(e){return ie.includes(e)}function lt(e,t,n){let r=[];for(let i of e.satisfiers){if(!ct(i.kind))continue;let a=X(i,t),o=t?.satisfiers?.[i.id]?.path,s=Z(a),c=nt(i.prerequisites,t),l=it({state:a,installability:i.installability,agentFolded:n});r.push({satisfierId:i.id,agentId:e.id,piece:i.piece,scope:i.scope,kind:i.kind,...i.pathId===void 0?{}:{pathId:i.pathId},...o===void 0?{}:{resolvedPath:o},audience:i.audience,state:a,checked:s.counts,exception:s.exception,folded:a===`undetected`,enabled:l===null,disabledReason:l,sharedWith:i.sharedWith,sharedFolderWith:ot(i,t),prerequisites:i.prerequisites,unmetPrerequisites:c,consentClass:i.consentClass,installability:i.installability,...i.guidance===void 0?{}:{guidance:i.guidance},...i.followup===void 0?{}:{followup:i.followup},troubleshooting:i.troubleshooting})}return r}function ut(e){let t=[];for(let n of st){let r=e.filter(e=>e.scope===n);r.length!==0&&t.push({scope:n,cells:r})}return t}function dt(e,t,n){let{detected:r,folded:i}=at(e,n),a=lt(e,t,i);return{agentId:e.id,detected:r,folded:i,setupDocSlug:e.setupDocSlug,scopes:ut(a)}}function ft(e){return Array.isArray(e)?e.filter(e=>typeof e==`string`&&_(e)):h}function pt(e={}){let{agentIds:t,probes:n,detection:r}=e;return{rows:ft(t).map(e=>G[e]).filter(e=>e!==void 0).map(e=>dt(e,n,r))}}var Q={agent:g},mt={"followup.enable-manually":{params:e(Q)},"guidance.mcp.user-config":{params:e(Q)},"guidance.mcp.project-config":{params:e(Q)},"guidance.mcp.session-injection":{params:e(Q)},"guidance.mcp.managed-file":{params:e(Q)},"guidance.skill.project":{params:e(Q)},"guidance.skill.user":{params:e(Q)},"guidance.skill.central-store":{params:e(Q)},"troubleshooting.claude.project-entry-not-approved":{params:e(Q)},"troubleshooting.claude-desktop.per-tool-approval":{params:e(Q)},"troubleshooting.cursor.project-entry-not-loaded":{params:e({...Q,server:u().optional()})},"troubleshooting.codex.desktop-project-config":{params:e({...Q,honoredByDesktop:t()})},"troubleshooting.codex.folder-trust":{params:e(Q)},"troubleshooting.copilot.shared-workspace-config":{params:e({...Q,sourceAgent:g})},"troubleshooting.openclaw.central-store-missing":{params:e(Q)},"troubleshooting.pi.folder-trust":{params:e(Q)},"troubleshooting.lm-studio.config-path-mismatch":{params:e(Q)}};Object.keys(mt).sort(),Le.flatMap(e=>e.probe.mode===`probeable`?[{satisfierId:e.id,agent:e.agent,piece:e.piece,scope:e.scope,kind:e.kind,pathId:e.pathId??null,strictness:e.probe.strictness}]:[]).map(e=>e.satisfierId);var ht={verified:3,unverifiable:2,unverified:1};function gt(e,t){let n=et[e],r=typeof t==`boolean`?t:null;return{signal:n.signal,resolved:r,show:r??n.unresolved===`show`}}function _t(e,t,n){let r=ze(e);if(r===void 0)return{id:e,state:`absent`,counts:!1,confidence:`unverified`,exception:q.absent.exception,consentClass:`none`,troubleshooting:[]};let i=X(r,n),a=!f(i)||i===`unprobed`,o=$e[t].unprobed===`count-unverified`;return{id:e,state:i,counts:a?o:Z(i).counts,confidence:a?`unverified`:i===`unprobeable`?`unverifiable`:`verified`,exception:Z(i).exception,consentClass:r.consentClass,...r.guidance===void 0?{}:{guidance:r.guidance},...r.followup===void 0?{}:{followup:r.followup},troubleshooting:r.troubleshooting}}function vt(e,t,n){let r=e.satisfiedByAny.map(e=>_t(e,t,n));if(r.length===0)return{piece:e.piece,level:e.level,status:`nothing-required`,confidence:null,satisfiedBy:null,options:r};let i=null;for(let e of r)e.counts&&(i===null||ht[e.confidence]>ht[i.confidence])&&(i=e);return{piece:e.piece,level:e.level,status:i===null?`unmet`:`met`,confidence:i?.confidence??null,satisfiedBy:i?.id??null,options:r}}var yt=[`absent`,`structural-na`];function bt(e,t){let n=[];for(let r of Qe){let i=e.satisfiers.filter(e=>e.piece===r.piece&&e.kind!==`session-injection`&&(r.scope===void 0||e.scope===r.scope));r.revokedByForeignEntry&&i.some(e=>yt.includes(X(e,t))?!1:!$(Y(t,e.id),r.requiredStrictness))||i.some(e=>e.probe.mode!==`probeable`||!e.probe.strictness.includes(r.requiredStrictness)||!Z(X(e,t)).counts?!1:$(Y(t,e.id),r.requiredStrictness))&&n.push(r.id)}return n}function $(e,t){return e?.strictness?.includes(t)===!0}function xt(e){let{agentId:t,mode:n,probes:r,modeSignal:i}=e,a=_(t)?Ie(t):void 0;if(a===void 0)return{agentId:t,mode:n,verdict:`not-registered`,visibility:{...gt(n,i),show:!0},requirements:[],grantedCapabilities:[],modeCaveats:[]};let o=gt(n,i),s=a.modes[n];if(s===void 0)return{agentId:t,mode:n,verdict:`mode-not-available`,visibility:o,requirements:[],grantedCapabilities:[],modeCaveats:[]};let c=s.requirements.map(e=>vt(e,n,r)),l=c.some(e=>e.level===`required`&&e.status===`unmet`),u=c.some(e=>e.status===`unmet`);return{agentId:t,mode:n,verdict:l?`blocked`:u?`ready-with-nudges`:`ready`,visibility:o,requirements:c,grantedCapabilities:bt(a,r),modeCaveats:s.caveats}}export{Be as a,qe as c,Ye as d,Ze as f,ye as h,rt as i,Ue as l,We as m,pt as n,Ve as o,Ie as p,tt as r,G as s,xt as t,Ke as u};
1
+ import{_ as e,a as t,f as n,g as r,i,m as a,p as o,s,t as c,u as l,v as u,y as ee}from"./schemas-B93JY9Ef.js";import{Ft as d,It as te,Lt as ne,Mt as re,Nt as ie,Pt as ae,Rt as f,jt as oe}from"./schemas-api-CzN0ZSyO.js";import{i as p,t as m}from"./constants-editors-DLxv8SuP.js";import{x as se}from"./handoff-BL1N3ufS.js";var h=[...m,`gemini`],g=c(h);function _(e){return h.includes(e)}var ce=c([`acp`,`terminal`,`external`]),le=c([...se,`gemini`]),ue=c([`claude-cowork`,`claude-code`,`codex`,`cursor`,`copilot`,`opencode`,`pi`,`antigravity`,`openclaw`,`hermes`]),v=c([`mcp`,`skill`]),de=[`project`,`user`,`session`],fe=c(de),y=u().regex(/^[a-z0-9-]+\/[a-z0-9-]+\/[a-z0-9-]+\/[a-z0-9-]+$/).transform(e=>e),pe=u().min(1).transform(e=>e),me=u().min(1).transform(e=>e);function b(e){return`${e.agent}/${e.piece}/${e.scope}/${e.kind}`}function he(e){return e}function ge(e){return e}var _e=[`editor-user-config`,`editor-project-config`,`editor-project-skill-root`,`editor-user-skill-root`],ve=he(`central-skill-store`);function x(e,t){return he(`${e}:${t}`)}function ye(e){if(e===ve)return{kind:`central-skill-store`};let t=e.indexOf(`:`);if(t===-1)return null;let n=e.slice(0,t),r=e.slice(t+1);return!_e.includes(n)||!m.includes(r)?null:{kind:n,editor:r}}var be=c(m),S=o({kind:c([`source-read`,`measured`,`vendor-doc`,`upstream-issue`,`observation`]),ref:u().min(1),note:u().optional()}),C=o({version:u().min(1).optional(),observedAt:u().min(1)}),xe=s(`confidence`,[o({confidence:l(`verified`),evidence:i(S).min(1),verifiedAgainst:C.optional()}),o({confidence:l(`assumed`),evidence:i(S).min(1),verifiedAgainst:C.optional()}),o({confidence:l(`contested`),evidence:i(S).min(1),verifiedAgainst:C})]),w=o({id:me,params:r(u(),ee([u(),n(),t()])).optional()}),Se=s(`mode`,[o({mode:l(`probeable`),strictness:i(d).min(1)}),o({mode:l(`unprobeable`),reason:c([`no-readable-state`,`different-machine`,`no-programmatic-path`,`session-scoped`]),note:u().optional()})]),Ce=c([`this-project`,`this-user`,`this-machine`]),we=c([`installable`,`user-completes`,`not-installable`]),Te=o({id:y,agent:g,piece:v,scope:fe,kind:ne,pathId:pe.optional(),sharedWith:i(g).default([]),prerequisites:i(y).default([]),consentClass:re.default(`none`),probe:Se,attestation:xe,audience:Ce,installability:we.default(`installable`),notInstallableReason:c([`no-non-interactive-verb`,`session-scoped`,`no-surface`]).optional(),preferred:t().default(!1),guidance:w.optional(),followup:w.optional(),troubleshooting:i(w).default([])}),Ee=o({piece:v,level:te,satisfiedByAny:i(y)}),De=o({acpAgentId:u().min(1),featuredOrder:n().int().nonnegative().nullable(),harnessCli:le.nullable(),harnessReadsEditorConfig:be.nullable(),harnessReadsEditorConfigAttestation:xe,verifiedPosture:c([`asks`,`self-managed`,`autonomous`]).nullable()}),Oe=o({cliId:u().min(1)}),T=[`darwin`,`win32`,`linux`],ke=c(T),Ae=o({targetId:ue,knownOrder:n().int().nonnegative(),visible:t(),displayName:u().min(1),appBrandName:u().min(1).optional(),schemes:i(u().min(1)),installUrl:u().min(1),platforms:i(ke).min(1),tagline:u().min(1).optional()}),je=o({requirements:i(Ee),caveats:i(w).default([])});o({id:g,setupDocSlug:u().min(1).nullable(),offerOnlyWhenDetected:t().default(!1),offersConnectionRow:t().default(!1),detectionSources:i(u().min(1)).default([]),satisfiers:i(Te),modes:a(ce,je),acp:De.optional(),terminal:Oe.optional(),external:Ae.optional()}),o({id:u().min(1),requiredStrictness:d,scope:fe.optional(),piece:v,revokedByForeignEntry:t().default(!1),guidance:w.optional()});var Me=e=>e===void 0?[]:Array.isArray(e)?[...e]:[e];function E(e){let{sharedWith:t,prerequisites:n,consentClass:r,installability:i,preferred:a,troubleshooting:o,...s}=e;return{...s,troubleshooting:Me(o),id:b({agent:e.agent,piece:e.piece,scope:e.scope,kind:e.kind}),sharedWith:t??[],prerequisites:n??[],consentClass:r??`none`,installability:i??`installable`,preferred:a??!1}}function D(e){let{offerOnlyWhenDetected:t,offersConnectionRow:n,detectionSources:r,modes:i,...a}=e,o={};for(let[e,t]of Object.entries(i))o[e]={requirements:t.requirements,caveats:t.caveats??[]};return{...a,offerOnlyWhenDetected:t??!1,offersConnectionRow:n??!1,detectionSources:r??[],modes:o}}var O=(e,t,n,r)=>b({agent:e,piece:t,scope:n,kind:r}),k=e=>({piece:`mcp`,level:`required`,satisfiedByAny:e}),A=e=>({piece:`skill`,level:`recommended`,satisfiedByAny:e}),j=(...e)=>({mode:`probeable`,strictness:e}),Ne=(e,t)=>({mode:`unprobeable`,reason:e,...t===void 0?{}:{note:t}}),M=(e,t)=>({id:ge(e),...t===void 0?{}:{params:t}}),Pe=(e,t)=>{let n=ae.find(t=>t===e);return n===void 0?void 0:M(`followup.${n}`,{agent:t})},N=(e,t)=>({kind:`source-read`,ref:e,...t===void 0?{}:{note:t}}),P=(e,t)=>t===void 0?{confidence:`verified`,evidence:e}:{confidence:`verified`,evidence:e,verifiedAgainst:t},Fe=(e,t)=>({confidence:`contested`,evidence:e,verifiedAgainst:t});function F(e){return{acpAgentId:e.acpAgentId,featuredOrder:e.featuredOrder,harnessCli:e.harnessCli,harnessReadsEditorConfig:e.readsEditorConfig,harnessReadsEditorConfigAttestation:e.readsEditorConfigAttestation,verifiedPosture:e.verifiedPosture}}function I(e){let{appBrandName:t,tagline:n,platforms:r=T,...i}=e;return{...i,platforms:[...r],...t===void 0?{}:{appBrandName:t},...n===void 0?{}:{tagline:n}}}var L=(e,t)=>({kind:`observation`,ref:e,note:t}),R={observedAt:`2026-07-02`},z={cliEditors:`packages/cli/src/commands/editors.ts`,coreEditors:`packages/core/src/constants/editors.ts`,acpRegistry:`packages/server/src/acp/registry.ts`,threadManager:`packages/server/src/acp/thread-manager.ts`,writeProjectSkill:`packages/cli/src/integrations/write-project-skill.ts`,repairSkills:`packages/cli/src/commands/repair-skills.ts`,skillInstall:`packages/server/src/skill-install.ts`,presenceProbes:`packages/desktop/src/main/integrations-settings.ts`};function B(e){return E({agent:e.agent,piece:`mcp`,scope:`user`,kind:`config-entry`,pathId:x(`editor-user-config`,e.agent),probe:j(...e.strictness),attestation:e.attestation,audience:`this-user`,installability:e.installability,notInstallableReason:e.notInstallableReason,guidance:M(`guidance.mcp.user-config`,{agent:e.agent}),troubleshooting:e.troubleshooting})}function V(e){return E({agent:e.agent,piece:`mcp`,scope:`project`,kind:`config-entry`,pathId:x(`editor-project-config`,e.fileOwner??e.agent),sharedWith:e.sharedWith,consentClass:e.consentClass,probe:j(...e.strictness),attestation:e.attestation,audience:`this-project`,guidance:M(`guidance.mcp.project-config`,{agent:e.agent}),followup:Pe(e.consentClass,e.agent),troubleshooting:e.troubleshooting})}function H(e){return E({agent:e.agent,piece:`skill`,scope:`project`,kind:`skill-bundle-copy`,pathId:x(`editor-project-skill-root`,e.agent),prerequisites:e.prerequisites,probe:j(`reclaim-permissive`),attestation:e.attestation,audience:`this-project`,guidance:M(`guidance.skill.project`,{agent:e.agent}),troubleshooting:e.troubleshooting})}function U(e){return E({agent:e.agent,piece:`skill`,scope:`user`,kind:`skill-bundle-copy`,pathId:x(`editor-user-skill-root`,e.agent),probe:j(`reclaim-permissive`),attestation:e.attestation,audience:`this-user`,guidance:M(`guidance.skill.user`,{agent:e.agent})})}function W(e){return E({agent:e,piece:`mcp`,scope:`session`,kind:`session-injection`,probe:Ne(`session-scoped`),attestation:P([N(z.threadManager,`the session MCP config the thread manager builds per thread`)]),audience:`this-project`,installability:`not-installable`,notInstallableReason:`session-scoped`,guidance:M(`guidance.mcp.session-injection`,{agent:e})})}var G={claude:D({id:`claude`,setupDocSlug:p.claude,offersConnectionRow:!0,detectionSources:[`cli-on-path:claude`,`scheme-handler:claude-code`],satisfiers:[B({agent:`claude`,strictness:[`reclaim-permissive`,`pre-approval-exact`,`injection-functional`],attestation:P([N(z.cliEditors,`user-global MCP config target`)])}),V({agent:`claude`,sharedWith:[`copilot`],consentClass:`approve-once`,strictness:[`reclaim-permissive`,`pre-approval-exact`,`injection-functional`],attestation:P([N(z.cliEditors),N(z.coreEditors)]),troubleshooting:M(`troubleshooting.claude.project-entry-not-approved`,{agent:`claude`})}),H({agent:`claude`,prerequisites:[O(`claude`,`mcp`,`project`,`config-entry`)],attestation:P([N(z.coreEditors),N(z.repairSkills)])}),U({agent:`claude`,attestation:P([N(z.coreEditors),N(z.skillInstall)])}),W(`claude`)],modes:{external:{requirements:[k([O(`claude`,`mcp`,`user`,`config-entry`),O(`claude`,`mcp`,`project`,`config-entry`)]),A([O(`claude`,`skill`,`project`,`skill-bundle-copy`),O(`claude`,`skill`,`user`,`skill-bundle-copy`)])]},terminal:{requirements:[k([O(`claude`,`mcp`,`user`,`config-entry`),O(`claude`,`mcp`,`project`,`config-entry`)]),A([O(`claude`,`skill`,`project`,`skill-bundle-copy`),O(`claude`,`skill`,`user`,`skill-bundle-copy`)])]},acp:{requirements:[k([O(`claude`,`mcp`,`session`,`session-injection`),O(`claude`,`mcp`,`user`,`config-entry`),O(`claude`,`mcp`,`project`,`config-entry`)]),A([O(`claude`,`skill`,`project`,`skill-bundle-copy`),O(`claude`,`skill`,`user`,`skill-bundle-copy`)])]}},acp:F({acpAgentId:`claude-acp`,featuredOrder:0,harnessCli:`claude`,readsEditorConfig:`claude`,readsEditorConfigAttestation:P([N(z.threadManager,`the injection-skip probe reads the managed entry for this editor`),L(`claude-acp adapter`,`The adapter runs Claude Code, which loads the MCP entry OK writes for the Claude editor on its own, so injecting a same-name duplicate would be redundant.`)],R),verifiedPosture:`asks`}),external:I({targetId:`claude-code`,knownOrder:1,visible:!0,displayName:`Claude`,appBrandName:`Claude Desktop`,schemes:[`claude:`],installUrl:`https://claude.com/download`,tagline:`Agentic coding in Claude Desktop's Code tab.`})}),"claude-desktop":D({id:`claude-desktop`,setupDocSlug:p[`claude-desktop`],offersConnectionRow:!1,detectionSources:[`scheme-handler:claude-code`],satisfiers:[B({agent:`claude-desktop`,strictness:[`reclaim-permissive`],attestation:P([N(z.cliEditors,`user-global config target; its path resolution throws on Linux`)]),troubleshooting:M(`troubleshooting.claude-desktop.per-tool-approval`,{agent:`claude-desktop`})})],modes:{external:{requirements:[k([O(`claude-desktop`,`mcp`,`user`,`config-entry`)]),A([])]}},external:I({targetId:`claude-cowork`,knownOrder:0,visible:!1,displayName:`Claude Cowork`,appBrandName:`Claude Desktop`,schemes:[`claude:`],installUrl:`https://claude.com/download`,tagline:`Conversational pairing in Claude Desktop's Cowork tab.`})}),cursor:D({id:`cursor`,setupDocSlug:p.cursor,offersConnectionRow:!0,detectionSources:[`cli-on-path:cursor`,`scheme-handler:cursor`],satisfiers:[B({agent:`cursor`,strictness:[`reclaim-permissive`],attestation:P([N(z.cliEditors)])}),V({agent:`cursor`,consentClass:`enable-manually`,strictness:[`reclaim-permissive`],attestation:P([N(z.cliEditors),N(z.coreEditors),{kind:`observation`,ref:`cursor-3.19.19-project-server-default-off`,note:`project .cursor/mcp.json server listed Disabled under Customize → MCPs with no prompt; enabled via the per-source toggle in its Configure dialog; with a same-named user-level entry present, the user entry connected and the disabled project entry did not shadow it`}],{version:`3.19.19`,observedAt:`2026-09-09`}),troubleshooting:M(`troubleshooting.cursor.project-entry-not-loaded`,{agent:`cursor`})}),H({agent:`cursor`,prerequisites:[O(`cursor`,`mcp`,`project`,`config-entry`)],attestation:P([N(z.coreEditors),N(z.repairSkills)])}),U({agent:`cursor`,attestation:P([N(z.coreEditors),N(z.skillInstall)])}),W(`cursor`)],modes:{external:{requirements:[k([O(`cursor`,`mcp`,`user`,`config-entry`),O(`cursor`,`mcp`,`project`,`config-entry`)]),A([O(`cursor`,`skill`,`project`,`skill-bundle-copy`),O(`cursor`,`skill`,`user`,`skill-bundle-copy`)])]},terminal:{requirements:[k([O(`cursor`,`mcp`,`user`,`config-entry`),O(`cursor`,`mcp`,`project`,`config-entry`)]),A([O(`cursor`,`skill`,`project`,`skill-bundle-copy`),O(`cursor`,`skill`,`user`,`skill-bundle-copy`)])]},acp:{requirements:[k([O(`cursor`,`mcp`,`session`,`session-injection`)]),A([O(`cursor`,`skill`,`project`,`skill-bundle-copy`),O(`cursor`,`skill`,`user`,`skill-bundle-copy`)])]}},acp:F({acpAgentId:`cursor`,featuredOrder:3,harnessCli:`cursor`,readsEditorConfig:null,readsEditorConfigAttestation:P([L(`cursor-agent mcp list`,`Reports a config-declared entry that has not been approved as "not loaded (needs approval)", so a present entry says nothing about whether the agent will have the tools.`),N(z.threadManager,`the one agent the skip probe never stands down for`)],{observedAt:`2026-08-20`}),verifiedPosture:`self-managed`}),external:I({targetId:`cursor`,knownOrder:3,visible:!0,displayName:`Cursor`,schemes:[`cursor:`],installUrl:`https://cursor.com/`,tagline:`AI-first VS Code fork with multi-file edits.`})}),codex:D({id:`codex`,setupDocSlug:p.codex,offersConnectionRow:!0,detectionSources:[`cli-on-path:codex`,`scheme-handler:codex`],satisfiers:[B({agent:`codex`,strictness:[`reclaim-permissive`,`injection-functional`],attestation:P([N(z.cliEditors,`TOML user-global config target`)])}),V({agent:`codex`,consentClass:`trust-gated`,strictness:[`reclaim-permissive`,`injection-functional`],attestation:Fe([N(z.cliEditors,`project config path added by analogy with the other editors`),{kind:`upstream-issue`,ref:`openai/codex#13025`,note:`open, reproduced on builds newer than the one OK checked`},{kind:`upstream-issue`,ref:`openai/codex#36960`,note:`requires an explicit trust decision in rust-v0.147.0, reverting #36935's automatic trust from the same release; builds from 0.113 asked but did not reliably persist the answer (#14547); codex exec never asks`},{kind:`vendor-doc`,ref:`OpenAI Codex: Advanced configuration`,note:`project-scoped config loads only for a trusted project`},{kind:`observation`,ref:`codex-desktop-project-config-load`,note:`single non-repro on 26.623.81905; the CLI honors it only for a trusted project`}],{version:`26.707.72221`,observedAt:`2026-07-15`}),troubleshooting:[M(`troubleshooting.codex.desktop-project-config`,{agent:`codex`,honoredByDesktop:!1}),M(`troubleshooting.codex.folder-trust`,{agent:`codex`})]}),H({agent:`codex`,prerequisites:[O(`codex`,`mcp`,`project`,`config-entry`)],attestation:P([N(z.coreEditors),N(z.repairSkills)]),troubleshooting:M(`troubleshooting.codex.folder-trust`,{agent:`codex`})}),U({agent:`codex`,attestation:P([N(z.coreEditors),N(z.skillInstall)])}),W(`codex`)],modes:{external:{requirements:[k([O(`codex`,`mcp`,`user`,`config-entry`),O(`codex`,`mcp`,`project`,`config-entry`)]),A([O(`codex`,`skill`,`project`,`skill-bundle-copy`),O(`codex`,`skill`,`user`,`skill-bundle-copy`)])]},terminal:{requirements:[k([O(`codex`,`mcp`,`user`,`config-entry`),O(`codex`,`mcp`,`project`,`config-entry`)]),A([O(`codex`,`skill`,`project`,`skill-bundle-copy`),O(`codex`,`skill`,`user`,`skill-bundle-copy`)])]},acp:{requirements:[k([O(`codex`,`mcp`,`session`,`session-injection`),O(`codex`,`mcp`,`user`,`config-entry`),O(`codex`,`mcp`,`project`,`config-entry`)]),A([O(`codex`,`skill`,`project`,`skill-bundle-copy`),O(`codex`,`skill`,`user`,`skill-bundle-copy`)])]}},acp:F({acpAgentId:`codex-acp`,featuredOrder:1,harnessCli:`codex`,readsEditorConfig:`codex`,readsEditorConfigAttestation:P([N(z.cliEditors,`the managed MCP entry OK writes into the Codex TOML config`),L(`codex-acp adapter`,`The adapter runs the Codex CLI, which loads the MCP servers declared in its own config, so the managed entry is already in the session.`)],R),verifiedPosture:`self-managed`}),external:I({targetId:`codex`,knownOrder:2,visible:!0,displayName:`ChatGPT`,appBrandName:`ChatGPT Desktop`,schemes:[`codex:`],installUrl:`https://developers.openai.com/codex/app`,tagline:`OpenAI's ChatGPT desktop app, home of the Codex agent.`})}),copilot:D({id:`copilot`,setupDocSlug:p.copilot,offersConnectionRow:!0,detectionSources:[`cli-on-path:copilot`],satisfiers:[B({agent:`copilot`,strictness:[`reclaim-permissive`],attestation:P([N(z.cliEditors)])}),V({agent:`copilot`,fileOwner:`claude`,sharedWith:[`claude`],consentClass:`trust-gated`,strictness:[`reclaim-permissive`],attestation:P([{kind:`vendor-doc`,ref:`GitHub Copilot CLI — MCP configuration`,note:"reads workspace `.mcp.json` or `.github/mcp.json`"},{kind:`vendor-doc`,ref:`GitHub Docs: Adding MCP servers for Copilot CLI`,note:`project-level servers load only after folder-trust confirmation; skipped silently in untrusted folders; under copilot -p they load only in an already-trusted folder unless GITHUB_COPILOT_PROMPT_MODE_WORKSPACE_MCP=true`},N(z.coreEditors,`OK deliberately writes no second copy for copilot`)],{version:`copilot CLI 1.0.80`,observedAt:`2026-08-20`}),troubleshooting:M(`troubleshooting.copilot.shared-workspace-config`,{agent:`copilot`,sourceAgent:`claude`})}),H({agent:`copilot`,prerequisites:[O(`copilot`,`mcp`,`project`,`config-entry`),O(`copilot`,`mcp`,`user`,`config-entry`)],attestation:P([N(z.coreEditors),N(z.writeProjectSkill)])}),U({agent:`copilot`,attestation:P([N(z.coreEditors),N(z.skillInstall)])}),W(`copilot`)],modes:{external:{requirements:[k([O(`copilot`,`mcp`,`user`,`config-entry`),O(`copilot`,`mcp`,`project`,`config-entry`)]),A([O(`copilot`,`skill`,`project`,`skill-bundle-copy`),O(`copilot`,`skill`,`user`,`skill-bundle-copy`)])]},terminal:{requirements:[k([O(`copilot`,`mcp`,`user`,`config-entry`),O(`copilot`,`mcp`,`project`,`config-entry`)]),A([O(`copilot`,`skill`,`project`,`skill-bundle-copy`),O(`copilot`,`skill`,`user`,`skill-bundle-copy`)])]},acp:{requirements:[k([O(`copilot`,`mcp`,`session`,`session-injection`)]),A([O(`copilot`,`skill`,`project`,`skill-bundle-copy`),O(`copilot`,`skill`,`user`,`skill-bundle-copy`)])]}},acp:F({acpAgentId:`github-copilot-cli`,featuredOrder:4,harnessCli:null,readsEditorConfig:null,readsEditorConfigAttestation:{confidence:`assumed`,evidence:[L(`copilot CLI 1.0.80`,"The CLI does read a workspace `.mcp.json`, but nobody has observed the ACP adapter loading the managed entry inside a session. Claiming it would stand our injection down on an unverified read and risk a thread with no OK tools, so the claim stays unmade and OK keeps injecting.")],verifiedAgainst:{version:`1.0.80`,observedAt:`2026-08-20`}},verifiedPosture:null}),external:I({targetId:`copilot`,knownOrder:4,visible:!1,displayName:`GitHub Copilot`,schemes:[],installUrl:`https://docs.github.com/en/copilot/how-tos/copilot-cli/cli-getting-started`,tagline:`GitHub's terminal-native coding agent.`})}),opencode:D({id:`opencode`,setupDocSlug:p.opencode,offersConnectionRow:!0,detectionSources:[`cli-on-path:opencode`],satisfiers:[B({agent:`opencode`,strictness:[`reclaim-permissive`,`injection-functional`],attestation:P([N(z.cliEditors,`XDG config dir; the win32 location is by analogy and unverified`)])}),V({agent:`opencode`,consentClass:`none`,strictness:[`reclaim-permissive`,`injection-functional`],attestation:P([N(z.cliEditors,`the one project config that is not under a dotdir`)])}),H({agent:`opencode`,prerequisites:[O(`opencode`,`mcp`,`project`,`config-entry`)],attestation:P([N(z.coreEditors),N(z.repairSkills)])}),U({agent:`opencode`,attestation:P([N(z.coreEditors),N(z.skillInstall)])}),W(`opencode`)],modes:{external:{requirements:[k([O(`opencode`,`mcp`,`user`,`config-entry`),O(`opencode`,`mcp`,`project`,`config-entry`)]),A([O(`opencode`,`skill`,`project`,`skill-bundle-copy`),O(`opencode`,`skill`,`user`,`skill-bundle-copy`)])]},terminal:{requirements:[k([O(`opencode`,`mcp`,`user`,`config-entry`),O(`opencode`,`mcp`,`project`,`config-entry`)]),A([O(`opencode`,`skill`,`project`,`skill-bundle-copy`),O(`opencode`,`skill`,`user`,`skill-bundle-copy`)])]},acp:{requirements:[k([O(`opencode`,`mcp`,`session`,`session-injection`),O(`opencode`,`mcp`,`user`,`config-entry`),O(`opencode`,`mcp`,`project`,`config-entry`)]),A([O(`opencode`,`skill`,`project`,`skill-bundle-copy`),O(`opencode`,`skill`,`user`,`skill-bundle-copy`)])]}},acp:F({acpAgentId:`opencode`,featuredOrder:5,harnessCli:`opencode`,readsEditorConfig:`opencode`,readsEditorConfigAttestation:P([N(z.cliEditors,`the managed MCP entry OK writes into the opencode config`),L(`opencode-acp adapter`,`The adapter runs opencode, which loads its own configured MCP servers, so the managed entry is already in the session.`)],R),verifiedPosture:null}),external:I({targetId:`opencode`,knownOrder:5,visible:!1,displayName:`OpenCode`,schemes:[],installUrl:`https://opencode.ai`,tagline:`Open-source terminal coding agent; bring any local model.`})}),openclaw:D({id:`openclaw`,setupDocSlug:p.openclaw,offersConnectionRow:!0,offerOnlyWhenDetected:!0,detectionSources:[`cli-on-path:openclaw`],satisfiers:[B({agent:`openclaw`,strictness:[`reclaim-permissive`],attestation:P([N(z.cliEditors,"the one two-level server map, nested under `mcp.servers`")])}),E({agent:`openclaw`,piece:`skill`,scope:`user`,kind:`central-store-copy`,pathId:ve,probe:j(`reclaim-permissive`),attestation:P([N(z.coreEditors),N(z.skillInstall,`the hub is written only when it already exists`)]),audience:`this-user`,guidance:M(`guidance.skill.central-store`,{agent:`openclaw`}),troubleshooting:M(`troubleshooting.openclaw.central-store-missing`,{agent:`openclaw`})})],modes:{external:{requirements:[k([O(`openclaw`,`mcp`,`user`,`config-entry`)]),A([O(`openclaw`,`skill`,`user`,`central-store-copy`)])]},terminal:{requirements:[k([O(`openclaw`,`mcp`,`user`,`config-entry`)]),A([O(`openclaw`,`skill`,`user`,`central-store-copy`)])]}},external:I({targetId:`openclaw`,knownOrder:8,visible:!1,displayName:`OpenClaw`,schemes:[],installUrl:`https://openclaw.ai`,tagline:`Open-source agent gateway; runs agents against your MCP servers.`})}),pi:D({id:`pi`,setupDocSlug:p.pi,offersConnectionRow:!0,detectionSources:[`cli-on-path:pi`],satisfiers:[E({agent:`pi`,piece:`mcp`,scope:`project`,kind:`managed-file`,pathId:x(`editor-project-config`,`pi`),probe:j(`reclaim-permissive`,`injection-functional`),attestation:P([N(z.cliEditors,`OK owns the whole file; currency is a first-line sentinel`),N(z.acpRegistry,`the thread provisions this file instead of injecting`)]),audience:`this-project`,guidance:M(`guidance.mcp.managed-file`,{agent:`pi`}),troubleshooting:M(`troubleshooting.pi.folder-trust`,{agent:`pi`})}),H({agent:`pi`,prerequisites:[O(`pi`,`mcp`,`project`,`managed-file`)],attestation:P([N(z.coreEditors),N(z.writeProjectSkill)]),troubleshooting:M(`troubleshooting.pi.folder-trust`,{agent:`pi`})}),U({agent:`pi`,attestation:P([N(z.coreEditors,`the agent home nests one level below the dotdir`),N(z.skillInstall)])})],modes:{external:{requirements:[k([O(`pi`,`mcp`,`project`,`managed-file`)]),A([O(`pi`,`skill`,`project`,`skill-bundle-copy`),O(`pi`,`skill`,`user`,`skill-bundle-copy`)])]},terminal:{requirements:[k([O(`pi`,`mcp`,`project`,`managed-file`)]),A([O(`pi`,`skill`,`project`,`skill-bundle-copy`),O(`pi`,`skill`,`user`,`skill-bundle-copy`)])]},acp:{requirements:[k([O(`pi`,`mcp`,`project`,`managed-file`)]),A([O(`pi`,`skill`,`project`,`skill-bundle-copy`),O(`pi`,`skill`,`user`,`skill-bundle-copy`)])]}},acp:F({acpAgentId:`pi-acp`,featuredOrder:null,harnessCli:`pi`,readsEditorConfig:`pi`,readsEditorConfigAttestation:P([L(`pi-acp@0.0.33`,"Pi has no MCP client at all: it accepts `mcpServers` at session/new, stores them write-only and never connects. Its wiring is a managed extension FILE in the project, which OK provisions instead of injecting — the same mapping, a different shape."),N(z.threadManager,`the bridge route that provisions the extension instead of injecting`)],{version:`0.0.33`,observedAt:`2026-08-20`}),verifiedPosture:`autonomous`}),external:I({targetId:`pi`,knownOrder:6,visible:!1,displayName:`Pi`,schemes:[],installUrl:`https://pi.dev`,tagline:`Minimal open-source terminal coding agent, extensible in TypeScript.`})}),antigravity:D({id:`antigravity`,setupDocSlug:p.antigravity,offersConnectionRow:!0,offerOnlyWhenDetected:!0,detectionSources:[`cli-on-path:antigravity`],satisfiers:[B({agent:`antigravity`,strictness:[`reclaim-permissive`],attestation:P([N(z.cliEditors,`one user-global file shared by the IDE, the app and the CLI; per project you can only filter it`)])}),U({agent:`antigravity`,attestation:P([N(z.coreEditors),N(z.skillInstall)])})],modes:{external:{requirements:[k([O(`antigravity`,`mcp`,`user`,`config-entry`)]),A([O(`antigravity`,`skill`,`user`,`skill-bundle-copy`)])]},terminal:{requirements:[k([O(`antigravity`,`mcp`,`user`,`config-entry`)]),A([O(`antigravity`,`skill`,`user`,`skill-bundle-copy`)])]}},external:I({targetId:`antigravity`,knownOrder:7,visible:!1,displayName:`Antigravity`,schemes:[],installUrl:`https://antigravity.google`,tagline:"Google's agentic IDE + `agy` terminal agent."})}),"lm-studio":D({id:`lm-studio`,setupDocSlug:p[`lm-studio`],offersConnectionRow:!0,offerOnlyWhenDetected:!0,detectionSources:[],satisfiers:[B({agent:`lm-studio`,strictness:[`reclaim-permissive`],installability:`not-installable`,notInstallableReason:`no-non-interactive-verb`,attestation:P([N(z.cliEditors,`two candidate locations, resolved against what already exists`),{kind:`upstream-issue`,ref:`lmstudio-ai/lmstudio-bug-tracker#1371`,note:`documented config path differs from the one the app reads on macOS`},N(z.presenceProbes,`deliberately absent from the presence probes`)]),troubleshooting:M(`troubleshooting.lm-studio.config-path-mismatch`,{agent:`lm-studio`})})],modes:{external:{requirements:[k([O(`lm-studio`,`mcp`,`user`,`config-entry`)]),A([])]}}}),hermes:D({id:`hermes`,setupDocSlug:p.hermes,offersConnectionRow:!0,offerOnlyWhenDetected:!0,detectionSources:[`cli-on-path:hermes`],satisfiers:[B({agent:`hermes`,strictness:[`reclaim-permissive`],attestation:P([N(z.cliEditors,`the one YAML target; the whole config is a single user-global file`)])})],modes:{external:{requirements:[k([O(`hermes`,`mcp`,`user`,`config-entry`)]),A([])]},terminal:{requirements:[k([O(`hermes`,`mcp`,`user`,`config-entry`)]),A([])]}},external:I({targetId:`hermes`,knownOrder:9,visible:!1,displayName:`Hermes`,schemes:[],installUrl:`https://hermes-agent.nousresearch.com`,tagline:`Nous Research's terminal coding agent.`})}),gemini:D({id:`gemini`,setupDocSlug:null,detectionSources:[`harness-bin:gemini`],satisfiers:[W(`gemini`)],modes:{acp:{requirements:[k([O(`gemini`,`mcp`,`session`,`session-injection`)]),A([])]}},acp:F({acpAgentId:`gemini`,featuredOrder:2,harnessCli:`gemini`,readsEditorConfig:null,readsEditorConfigAttestation:P([N(z.coreEditors,`gemini reaches OK as an ACP agent only; it has no editor config target`)],R),verifiedPosture:null})})};function Ie(e){return G[e]}var Le=Object.values(G).flatMap(e=>e.satisfiers),Re=new Map(Le.map(e=>[e.id,e]));function ze(e){return Re.get(e)}var K=Object.values(G).flatMap(e=>e.acp===void 0?[]:[{record:e,acp:e.acp}]).sort((e,t)=>e.acp.acpAgentId.localeCompare(t.acp.acpAgentId));K.filter(({acp:e})=>e.featuredOrder!==null).sort((e,t)=>(e.acp.featuredOrder??0)-(t.acp.featuredOrder??0)).map(({acp:e})=>e.acpAgentId);var Be=Object.fromEntries(K.flatMap(({acp:e})=>e.harnessCli===null?[]:[[e.acpAgentId,e.harnessCli]]));Object.fromEntries(K.flatMap(({acp:e})=>e.harnessReadsEditorConfig===null?[]:[[e.acpAgentId,e.harnessReadsEditorConfig]]));var Ve=Object.fromEntries(K.flatMap(({acp:e})=>e.verifiedPosture===null?[]:[[e.acpAgentId,e.verifiedPosture]])),He=Object.values(G).flatMap(e=>e.external===void 0?[]:[e.external]).sort((e,t)=>e.knownOrder-t.knownOrder),Ue=He.map(({targetId:e,displayName:t,appBrandName:n,schemes:r,installUrl:i,platforms:a,tagline:o})=>({id:e,displayName:t,...n===void 0?{}:{appBrandName:n},schemes:r,installUrl:i,platforms:a,...o===void 0?{}:{tagline:o}}));function We(e,t){return t==null||e.platforms.includes(t)}var Ge=new Set(He.filter(e=>e.visible).map(e=>e.targetId)),Ke=Ue.filter(e=>Ge.has(e.id)),qe=m.filter(e=>G[e].offersConnectionRow),Je=new Map(Object.values(G).flatMap(e=>e.external===void 0?[]:[[e.external.targetId,e.id]]));function Ye(e){return Je.get(e)}var Xe=new Map(Object.values(G).flatMap(e=>e.modes.terminal===void 0?[]:[[e.id,e.id]]));function Ze(e){return Xe.get(e)}Object.fromEntries(Object.values(G).flatMap(e=>{let t=e.satisfiers.find(e=>e.piece===`mcp`&&e.scope===`project`&&e.consentClass!==`none`)?.consentClass;return t===void 0?[]:[[e.id,t]]})),new Set(oe);var Qe=[{id:`mcp-preapproval`,piece:`mcp`,scope:`project`,requiredStrictness:`pre-approval-exact`,revokedByForeignEntry:!1},{id:`tool-autoapprove`,piece:`mcp`,requiredStrictness:`pre-approval-exact`,revokedByForeignEntry:!0}];Qe.map(e=>e.id);var q={satisfied:{counts:!0,exception:null},"present-consent-unknown":{counts:!0,exception:`info`},absent:{counts:!1,exception:null},foreign:{counts:!1,exception:`warning`},"foreign-replaceable":{counts:!1,exception:`warning`},drifted:{counts:!1,exception:`warning`},excluded:{counts:!1,exception:`info`},"structural-na":{counts:!1,exception:`info`},undetected:{counts:!1,exception:null},unprobeable:{counts:!0,exception:`info`},unprobed:{counts:!1,exception:`info`}};c([`count-unverified`,`not-count`]);var $e={acp:{unprobed:`count-unverified`},terminal:{unprobed:`count-unverified`},external:{unprobed:`not-count`}};c([`acp-catalog-supported`,`harness-cli-on-path`,`os-scheme-handler`]);var et={acp:{signal:`acp-catalog-supported`,unresolved:`show`,negativeOutranksOverride:!0},terminal:{signal:`harness-cli-on-path`,unresolved:`show`,negativeOutranksOverride:!1},external:{signal:`os-scheme-handler`,unresolved:`hide`,negativeOutranksOverride:!1}};function J(e){return typeof e==`object`&&!!e}function Y(e,t){if(!J(e))return;let{satisfiers:n}=e;if(!J(n))return;let r=n[t];if(!J(r))return;let{state:i,strictness:a,sharedWith:o}=r;if(typeof i!=`string`||i.length===0)return;let s=Array.isArray(a)?a.filter(e=>typeof e==`string`):void 0,c=Array.isArray(o)?o.filter(e=>typeof e==`string`&&_(e)):void 0;return{state:i,...s===void 0?{}:{strictness:s},...c===void 0||c.length===0?{}:{sharedWith:c}}}function tt(e,t){if(!J(e))return!1;let{detected:n}=e;return Array.isArray(n)&&n.includes(t)}function X(e,t){return e.probe.mode===`unprobeable`?`unprobeable`:Y(t,e.id)?.state??`unprobed`}function Z(e){return f(e)?q[e]:q.unprobed}function nt(e,t){let n=e.filter(e=>{let n=ze(e);return n===void 0?!0:!Z(X(n,t)).counts});return n.length===e.length?n:[]}function rt(e){return Z(e).exception===`warning`}function it(e){return e.state===`foreign`?`foreign`:e.state===`structural-na`?`structural-na`:e.installability===`not-installable`?`not-installable`:e.agentFolded?`agent-undetected`:null}function at(e,t){let n=t?.probed===!0?tt(t,e.id):null;return{detected:n,folded:e.offerOnlyWhenDetected&&n===!1}}function ot(e,t){return(Y(t,e.id)?.sharedWith??[]).filter(t=>t!==e.agent)}var st=de.filter(e=>e!==`session`);function ct(e){return ie.includes(e)}function lt(e,t,n){let r=[];for(let i of e.satisfiers){if(!ct(i.kind))continue;let a=X(i,t),o=t?.satisfiers?.[i.id]?.path,s=Z(a),c=nt(i.prerequisites,t),l=it({state:a,installability:i.installability,agentFolded:n});r.push({satisfierId:i.id,agentId:e.id,piece:i.piece,scope:i.scope,kind:i.kind,...i.pathId===void 0?{}:{pathId:i.pathId},...o===void 0?{}:{resolvedPath:o},audience:i.audience,state:a,checked:s.counts,exception:s.exception,folded:a===`undetected`,enabled:l===null,disabledReason:l,sharedWith:i.sharedWith,sharedFolderWith:ot(i,t),prerequisites:i.prerequisites,unmetPrerequisites:c,consentClass:i.consentClass,installability:i.installability,...i.guidance===void 0?{}:{guidance:i.guidance},...i.followup===void 0?{}:{followup:i.followup},troubleshooting:i.troubleshooting})}return r}function ut(e){let t=[];for(let n of st){let r=e.filter(e=>e.scope===n);r.length!==0&&t.push({scope:n,cells:r})}return t}function dt(e,t,n){let{detected:r,folded:i}=at(e,n),a=lt(e,t,i);return{agentId:e.id,detected:r,folded:i,setupDocSlug:e.setupDocSlug,scopes:ut(a)}}function ft(e){return Array.isArray(e)?e.filter(e=>typeof e==`string`&&_(e)):h}function pt(e={}){let{agentIds:t,probes:n,detection:r}=e;return{rows:ft(t).map(e=>G[e]).filter(e=>e!==void 0).map(e=>dt(e,n,r))}}var Q={agent:g},mt={"followup.enable-manually":{params:e(Q)},"guidance.mcp.user-config":{params:e(Q)},"guidance.mcp.project-config":{params:e(Q)},"guidance.mcp.session-injection":{params:e(Q)},"guidance.mcp.managed-file":{params:e(Q)},"guidance.skill.project":{params:e(Q)},"guidance.skill.user":{params:e(Q)},"guidance.skill.central-store":{params:e(Q)},"troubleshooting.claude.project-entry-not-approved":{params:e(Q)},"troubleshooting.claude-desktop.per-tool-approval":{params:e(Q)},"troubleshooting.cursor.project-entry-not-loaded":{params:e({...Q,server:u().optional()})},"troubleshooting.codex.desktop-project-config":{params:e({...Q,honoredByDesktop:t()})},"troubleshooting.codex.folder-trust":{params:e(Q)},"troubleshooting.copilot.shared-workspace-config":{params:e({...Q,sourceAgent:g})},"troubleshooting.openclaw.central-store-missing":{params:e(Q)},"troubleshooting.pi.folder-trust":{params:e(Q)},"troubleshooting.lm-studio.config-path-mismatch":{params:e(Q)}};Object.keys(mt).sort(),Le.flatMap(e=>e.probe.mode===`probeable`?[{satisfierId:e.id,agent:e.agent,piece:e.piece,scope:e.scope,kind:e.kind,pathId:e.pathId??null,strictness:e.probe.strictness}]:[]).map(e=>e.satisfierId);var ht={verified:3,unverifiable:2,unverified:1};function gt(e,t){let n=et[e],r=typeof t==`boolean`?t:null;return{signal:n.signal,resolved:r,show:r??n.unresolved===`show`}}function _t(e,t,n){let r=ze(e);if(r===void 0)return{id:e,state:`absent`,counts:!1,confidence:`unverified`,exception:q.absent.exception,consentClass:`none`,troubleshooting:[]};let i=X(r,n),a=!f(i)||i===`unprobed`,o=$e[t].unprobed===`count-unverified`;return{id:e,state:i,counts:a?o:Z(i).counts,confidence:a?`unverified`:i===`unprobeable`?`unverifiable`:`verified`,exception:Z(i).exception,consentClass:r.consentClass,...r.guidance===void 0?{}:{guidance:r.guidance},...r.followup===void 0?{}:{followup:r.followup},troubleshooting:r.troubleshooting}}function vt(e,t,n){let r=e.satisfiedByAny.map(e=>_t(e,t,n));if(r.length===0)return{piece:e.piece,level:e.level,status:`nothing-required`,confidence:null,satisfiedBy:null,options:r};let i=null;for(let e of r)e.counts&&(i===null||ht[e.confidence]>ht[i.confidence])&&(i=e);return{piece:e.piece,level:e.level,status:i===null?`unmet`:`met`,confidence:i?.confidence??null,satisfiedBy:i?.id??null,options:r}}var yt=[`absent`,`structural-na`];function bt(e,t){let n=[];for(let r of Qe){let i=e.satisfiers.filter(e=>e.piece===r.piece&&e.kind!==`session-injection`&&(r.scope===void 0||e.scope===r.scope));r.revokedByForeignEntry&&i.some(e=>yt.includes(X(e,t))?!1:!$(Y(t,e.id),r.requiredStrictness))||i.some(e=>e.probe.mode!==`probeable`||!e.probe.strictness.includes(r.requiredStrictness)||!Z(X(e,t)).counts?!1:$(Y(t,e.id),r.requiredStrictness))&&n.push(r.id)}return n}function $(e,t){return e?.strictness?.includes(t)===!0}function xt(e){let{agentId:t,mode:n,probes:r,modeSignal:i}=e,a=_(t)?Ie(t):void 0;if(a===void 0)return{agentId:t,mode:n,verdict:`not-registered`,visibility:{...gt(n,i),show:!0},requirements:[],grantedCapabilities:[],modeCaveats:[]};let o=gt(n,i),s=a.modes[n];if(s===void 0)return{agentId:t,mode:n,verdict:`mode-not-available`,visibility:o,requirements:[],grantedCapabilities:[],modeCaveats:[]};let c=s.requirements.map(e=>vt(e,n,r)),l=c.some(e=>e.level===`required`&&e.status===`unmet`),u=c.some(e=>e.status===`unmet`);return{agentId:t,mode:n,verdict:l?`blocked`:u?`ready-with-nudges`:`ready`,visibility:o,requirements:c,grantedCapabilities:bt(a,r),modeCaveats:s.caveats}}export{Be as a,qe as c,Ye as d,Ze as f,ye as h,rt as i,Ue as l,We as m,pt as n,Ve as o,Ie as p,tt as r,G as s,xt as t,Ke as u};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-CYidjpOJ.js";import{t}from"./react-f2sANaYj.js";import{t as n}from"./useQuery-ZeEDLtxh.js";import{t as r}from"./compiler-runtime-BfE3aGVn.js";import{m as i}from"./RegisteredAgentIcon-CH2UJPHT.js";var a=r(),o=e(t(),1);function s(e){return e.supported?e.harness?.availability===`present`||e.harness?.credentials===`present`:!1}function c(e){let t=[`claude-acp`,`codex-acp`,`cursor`,`opencode`],n=e=>{let n=t.indexOf(e);return n===-1?t.length:n};return e.filter(s).sort((e,t)=>n(e.id)-n(t.id))}function l(e){return e.harness?.credentials===`present`?0:+(e.harness?.availability===`not-found`)}async function u(e){let t=await fetch(`/api/acp/catalog`,{signal:e??AbortSignal.timeout(2e4)});if(!t.ok)throw Error(`agent catalog request failed: HTTP ${t.status}`);let n=await t.json();return{agents:Array.isArray(n.agents)?n.agents:[],stale:n.stale===!0,maxThreads:typeof n.maxThreads==`number`?n.maxThreads:8}}var d=300*1e3,f=null;function p(e){let t=(0,a.c)(6),r=e===void 0?!0:e,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=[`acp-catalog`],t[0]=i):i=t[0];let s;t[1]===r?s=t[2]:(s={queryKey:i,queryFn:m,staleTime:d,enabled:r},t[1]=r,t[2]=s);let c=n(s),{error:l}=c,u,p;return t[3]===l?(u=t[4],p=t[5]):(u=()=>{l==null||l===f||(f=l,console.error(`[acp-catalog] agent catalog request failed`,l))},p=[l],t[3]=l,t[4]=u,t[5]=p),(0,o.useEffect)(u,p),c}function m(e){let{signal:t}=e;return u(t)}function h(){let e=(0,a.c)(3),{data:t}=p(),n=t?.agents,r,s;e[0]===n?(r=e[1],s=e[2]):(r=()=>{n&&i(n.map(g))},s=[n],e[0]=n,e[1]=r,e[2]=s),(0,o.useEffect)(r,s)}function g(e){return{source:e.source,id:e.id,name:e.name,supported:e.supported,featured:e.featured,...e.iconUrl===void 0?{}:{iconUrl:e.iconUrl}}}export{p as a,s as i,u as n,h as o,l as r,c as t};
1
+ import{o as e}from"./chunk-CYidjpOJ.js";import{t}from"./react-f2sANaYj.js";import{t as n}from"./useQuery-ZeEDLtxh.js";import{t as r}from"./compiler-runtime-BfE3aGVn.js";import{m as i}from"./RegisteredAgentIcon-ZO33SIbk.js";var a=r(),o=e(t(),1);function s(e){return e.supported?e.harness?.availability===`present`||e.harness?.credentials===`present`:!1}function c(e){let t=[`claude-acp`,`codex-acp`,`cursor`,`opencode`],n=e=>{let n=t.indexOf(e);return n===-1?t.length:n};return e.filter(s).sort((e,t)=>n(e.id)-n(t.id))}function l(e){return e.harness?.credentials===`present`?0:+(e.harness?.availability===`not-found`)}async function u(e){let t=await fetch(`/api/acp/catalog`,{signal:e??AbortSignal.timeout(2e4)});if(!t.ok)throw Error(`agent catalog request failed: HTTP ${t.status}`);let n=await t.json();return{agents:Array.isArray(n.agents)?n.agents:[],stale:n.stale===!0,maxThreads:typeof n.maxThreads==`number`?n.maxThreads:8}}var d=300*1e3,f=null;function p(e){let t=(0,a.c)(6),r=e===void 0?!0:e,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=[`acp-catalog`],t[0]=i):i=t[0];let s;t[1]===r?s=t[2]:(s={queryKey:i,queryFn:m,staleTime:d,enabled:r},t[1]=r,t[2]=s);let c=n(s),{error:l}=c,u,p;return t[3]===l?(u=t[4],p=t[5]):(u=()=>{l==null||l===f||(f=l,console.error(`[acp-catalog] agent catalog request failed`,l))},p=[l],t[3]=l,t[4]=u,t[5]=p),(0,o.useEffect)(u,p),c}function m(e){let{signal:t}=e;return u(t)}function h(){let e=(0,a.c)(3),{data:t}=p(),n=t?.agents,r,s;e[0]===n?(r=e[1],s=e[2]):(r=()=>{n&&i(n.map(g))},s=[n],e[0]=n,e[1]=r,e[2]=s),(0,o.useEffect)(r,s)}function g(e){return{source:e.source,id:e.id,name:e.name,supported:e.supported,featured:e.featured,...e.iconUrl===void 0?{}:{iconUrl:e.iconUrl}}}export{p as a,s as i,u as n,h as o,l as r,c as t};
@@ -1 +1 @@
1
- var e=`ok.client.surface`,t={protocol:`x-ok-client-protocol`,runtime:`x-ok-client-runtime`,kind:`x-ok-client-kind`};function n({hasDesktopBridge:e,embeddedHost:t}){return e?`desktop`:t===null?`browser`:`embedded:${t}`}function r({kind:e,runtimeVersion:n}){return{[t.protocol]:`2`,[t.runtime]:n,[t.kind]:e}}function i({kind:e,runtimeVersion:t}){return{clientProtocolVersion:2,clientRuntimeVersion:t,clientKind:e}}var a={cursor:/\bCursor(?:\([^)]+\))?\/\d/,codex:/\bCodex(?:\([^)]+\))?\/\d/,"claude-desktop":/\bClaude(?:\([^)]+\))?\/\d/};function o(){if(typeof navigator>`u`)return null;let e=navigator.userAgent;for(let[t,n]of Object.entries(a))if(n.test(e))return t;return null}var s={BASE_URL:`./`,DEV:!1,MODE:`production`,PROD:!0,SSR:!1,VITE_APP_VERSION:`0.86.14`}?.VITE_APP_VERSION??`0.0.0-unknown`,c=n({hasDesktopBridge:typeof window<`u`&&window.okDesktop!==void 0,embeddedHost:o()});function l(){return r({kind:c,runtimeVersion:s})}function u(){return i({kind:c,runtimeVersion:s})}export{o as a,u as i,c as n,e as o,l as r,s as t};
1
+ var e=`ok.client.surface`,t={protocol:`x-ok-client-protocol`,runtime:`x-ok-client-runtime`,kind:`x-ok-client-kind`};function n({hasDesktopBridge:e,embeddedHost:t}){return e?`desktop`:t===null?`browser`:`embedded:${t}`}function r({kind:e,runtimeVersion:n}){return{[t.protocol]:`2`,[t.runtime]:n,[t.kind]:e}}function i({kind:e,runtimeVersion:t}){return{clientProtocolVersion:2,clientRuntimeVersion:t,clientKind:e}}var a={cursor:/\bCursor(?:\([^)]+\))?\/\d/,codex:/\bCodex(?:\([^)]+\))?\/\d/,"claude-desktop":/\bClaude(?:\([^)]+\))?\/\d/};function o(){if(typeof navigator>`u`)return null;let e=navigator.userAgent;for(let[t,n]of Object.entries(a))if(n.test(e))return t;return null}var s={BASE_URL:`./`,DEV:!1,MODE:`production`,PROD:!0,SSR:!1,VITE_APP_VERSION:`0.86.15`}?.VITE_APP_VERSION??`0.0.0-unknown`,c=n({hasDesktopBridge:typeof window<`u`&&window.okDesktop!==void 0,embeddedHost:o()});function l(){return r({kind:c,runtimeVersion:s})}function u(){return i({kind:c,runtimeVersion:s})}export{o as a,u as i,c as n,e as o,l as r,s as t};
@@ -1,4 +1,4 @@
1
- import{t as e}from"./jsx-runtime-BUgB2tll.js";import{Ei as t,Qn as n,Si as r,Xr as i,Yr as a,dr as o,fr as s,gr as c,mr as l,ni as u,yi as d}from"./DocumentContext-CGIt6FOU.js";import{n as f,r as p}from"./dist-Nvb76hAm.js";import{t as m}from"./compiler-runtime-BfE3aGVn.js";import{t as h}from"./utils-CPqDy6Hr.js";import{i as g,n as _,t as ee}from"./tooltip-DBqLYfio.js";import{t as v}from"./button-DzgjsZzC.js";import{n as y}from"./dist-BGzUo_18.js";import{t as b}from"./dist-C_FzPxEX2.js";import{t as x}from"./createLucideIcon-DdBzwsHe.js";import{cr as S,sr as C}from"./CodeMirrorPropInput-WSseg6CL.js";import{t as te}from"./x-DM2drskU.js";import{l as w}from"./doc-hash-BJkweiX9.js";var T=x(`message-square`,[[`path`,{d:`M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z`,key:`18887p`}]]),E=m(),ne=`var(--ok-comment-hue, rgb(37 99 235))`,re={fill:.22,line:.7},ie={fill:.45,line:1},ae=.45;function D(e){return`color-mix(in srgb,${ne} ${e*100}%,transparent)`}function oe(e,t){let{fill:n,line:r}=t?ie:re;return[`border-radius:2px`,`padding-bottom:1px`,...e.id===null?[]:[`cursor:pointer`],`background-color:${D(n)}`,`box-shadow:inset 0 -2px 0 ${D(r)}`,``].join(`;`)}function O(e){return e.map(e=>e.id??`·`).join(`|`)}function se(e){let t=null;for(let n of e)n.id!==null&&(t===null||n.to-n.from<t.to-t.from)&&(t=n);return t?.id??null}function ce(e,t){return e.id===null||e.id===t}function le(e,t=null){let n=[...e].filter(e=>e.from<e.to).sort((e,t)=>e.from-t.from||e.to-t.to||(e.id??``).localeCompare(t.id??``));if(n.length===0)return[];let r=[...new Set(n.flatMap(e=>[e.from,e.to]))].sort((e,t)=>e-t),i=[],a=null,o=()=>{if(a===null)return;let e=a.covering.find(e=>ce(e,t));i.push({from:a.from,to:a.to,style:oe(e??a.covering[0],e!==void 0),threadId:se(a.covering)}),a=null};for(let e=0;e<r.length-1;e++){let t=r[e],i=r[e+1],s=n.filter(e=>e.from<=t&&e.to>=i);if(s.length===0){o();continue}if(a!==null&&a.to===t&&O(a.covering)===O(s)){a.to=i;continue}o(),a={from:t,to:i,covering:s}}return o(),i}var k=`data-comment-reveal`;function A(e){return typeof CSS<`u`&&CSS.escape?CSS.escape(e):e}function ue(e){return e===``?null:document.querySelector(`[data-testid="property-row"][data-key="${A(e)}"]`)}function de(e){let t=ue(e);if(t===null)return null;let n=t.getBoundingClientRect();return n.height===0&&n.width===0?null:n}function fe(e){ue(e)?.scrollIntoView({block:`center`,behavior:`smooth`})}function pe(e){if(e.quote===``)return!1;let t=e.path.length===0?e.key:e.path[e.path.length-1],n=Array.from(document.querySelectorAll(`[data-testid="property-row"][data-key="${A(String(t))}"]`)),r=Array.from(document.querySelectorAll(`[data-testid="property-row"]`));for(let t of[...n,...r]){let n=t.querySelector(`textarea, input`);if(n===null)continue;let r=me(n.value,e.quote,e.start,e.end);if(r!==null)return t.scrollIntoView({block:`center`,behavior:`smooth`}),n.focus(),n.setSelectionRange(r.start,r.end),he(n),!0}return!1}function me(e,t,n,r){if(n!==void 0&&r!==void 0&&e.slice(n,r)===t)return{start:n,end:r};let i=e.indexOf(t);return i<0?null:{start:i,end:i+t.length}}function he(e){e.style.setProperty(`--comment-reveal-fill`,D(ae)),e.setAttribute(k,`true`);let t=()=>{e.removeAttribute(k),e.style.removeProperty(`--comment-reveal-fill`)};e.addEventListener(`blur`,t,{once:!0}),e.addEventListener(`pointerdown`,t,{once:!0}),e.addEventListener(`keydown`,t,{once:!0})}var ge=new Set([`*`,`_`,"`",`~`,`\\`,`$`]),_e=/^={2,}/,j=/^<(?:[A-Za-z][A-Za-z0-9+.-]*:[^<>\s]*|[^\s<>@]+@[^\s<>]+)>/,M=512;function ve(e,t){return j.test(e.slice(t,t+M))}function ye(e,t){let n=e.lastIndexOf(`<`,t);return n<0||t-n>M?!1:j.exec(e.slice(n,t+1))?.[0].length===t+1-n}var be=/^<\/?[A-Za-z][A-Za-z0-9-]*(?:\s[^>]*?)?\/?>/,xe=512,Se=/^!(?=\[)/,Ce=/^\[\^/,we=/^\]\[[^\]]*\]/,Te=/^\[\[[^\][|]*\|/,Ee=/^#[^\][|]*(?=\]\])/,N=512,De=/^\]\([^)]*\)/,Oe=512,ke=/^(?:#{1,6}[ \t]+|>[ \t]?|(?:[-*+]|\d{1,9}[.)])[ \t]+(?:\[[ xX]\][ \t]+)?)/,Ae=32,je=`|`,Me=/^(?:`{3,}[^`\n]*|~{3,}[^\n]*)$/,Ne=/^(?:(?:[-*_][ \t]*){3,}|=+[ \t]*|[|\-: \t]*-[|\-: \t]*)$/,Pe=1024;function Fe(e,t){let n=e.indexOf(`
1
+ import{t as e}from"./jsx-runtime-BUgB2tll.js";import{Ei as t,Qn as n,Si as r,Xr as i,Yr as a,dr as o,fr as s,gr as c,mr as l,ni as u,yi as d}from"./DocumentContext-Di4xaMwl.js";import{n as f,r as p}from"./dist-Nvb76hAm.js";import{t as m}from"./compiler-runtime-BfE3aGVn.js";import{t as h}from"./utils-CPqDy6Hr.js";import{i as g,n as _,t as ee}from"./tooltip-DBqLYfio.js";import{t as v}from"./button-DzgjsZzC.js";import{n as y}from"./dist-BGzUo_18.js";import{t as b}from"./dist-C_FzPxEX2.js";import{t as x}from"./createLucideIcon-DdBzwsHe.js";import{cr as S,sr as C}from"./CodeMirrorPropInput-Bbv8fSFU.js";import{t as te}from"./x-DM2drskU.js";import{l as w}from"./doc-hash-BJkweiX9.js";var T=x(`message-square`,[[`path`,{d:`M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z`,key:`18887p`}]]),E=m(),ne=`var(--ok-comment-hue, rgb(37 99 235))`,re={fill:.22,line:.7},ie={fill:.45,line:1},ae=.45;function D(e){return`color-mix(in srgb,${ne} ${e*100}%,transparent)`}function oe(e,t){let{fill:n,line:r}=t?ie:re;return[`border-radius:2px`,`padding-bottom:1px`,...e.id===null?[]:[`cursor:pointer`],`background-color:${D(n)}`,`box-shadow:inset 0 -2px 0 ${D(r)}`,``].join(`;`)}function O(e){return e.map(e=>e.id??`·`).join(`|`)}function se(e){let t=null;for(let n of e)n.id!==null&&(t===null||n.to-n.from<t.to-t.from)&&(t=n);return t?.id??null}function ce(e,t){return e.id===null||e.id===t}function le(e,t=null){let n=[...e].filter(e=>e.from<e.to).sort((e,t)=>e.from-t.from||e.to-t.to||(e.id??``).localeCompare(t.id??``));if(n.length===0)return[];let r=[...new Set(n.flatMap(e=>[e.from,e.to]))].sort((e,t)=>e-t),i=[],a=null,o=()=>{if(a===null)return;let e=a.covering.find(e=>ce(e,t));i.push({from:a.from,to:a.to,style:oe(e??a.covering[0],e!==void 0),threadId:se(a.covering)}),a=null};for(let e=0;e<r.length-1;e++){let t=r[e],i=r[e+1],s=n.filter(e=>e.from<=t&&e.to>=i);if(s.length===0){o();continue}if(a!==null&&a.to===t&&O(a.covering)===O(s)){a.to=i;continue}o(),a={from:t,to:i,covering:s}}return o(),i}var k=`data-comment-reveal`;function A(e){return typeof CSS<`u`&&CSS.escape?CSS.escape(e):e}function ue(e){return e===``?null:document.querySelector(`[data-testid="property-row"][data-key="${A(e)}"]`)}function de(e){let t=ue(e);if(t===null)return null;let n=t.getBoundingClientRect();return n.height===0&&n.width===0?null:n}function fe(e){ue(e)?.scrollIntoView({block:`center`,behavior:`smooth`})}function pe(e){if(e.quote===``)return!1;let t=e.path.length===0?e.key:e.path[e.path.length-1],n=Array.from(document.querySelectorAll(`[data-testid="property-row"][data-key="${A(String(t))}"]`)),r=Array.from(document.querySelectorAll(`[data-testid="property-row"]`));for(let t of[...n,...r]){let n=t.querySelector(`textarea, input`);if(n===null)continue;let r=me(n.value,e.quote,e.start,e.end);if(r!==null)return t.scrollIntoView({block:`center`,behavior:`smooth`}),n.focus(),n.setSelectionRange(r.start,r.end),he(n),!0}return!1}function me(e,t,n,r){if(n!==void 0&&r!==void 0&&e.slice(n,r)===t)return{start:n,end:r};let i=e.indexOf(t);return i<0?null:{start:i,end:i+t.length}}function he(e){e.style.setProperty(`--comment-reveal-fill`,D(ae)),e.setAttribute(k,`true`);let t=()=>{e.removeAttribute(k),e.style.removeProperty(`--comment-reveal-fill`)};e.addEventListener(`blur`,t,{once:!0}),e.addEventListener(`pointerdown`,t,{once:!0}),e.addEventListener(`keydown`,t,{once:!0})}var ge=new Set([`*`,`_`,"`",`~`,`\\`,`$`]),_e=/^={2,}/,j=/^<(?:[A-Za-z][A-Za-z0-9+.-]*:[^<>\s]*|[^\s<>@]+@[^\s<>]+)>/,M=512;function ve(e,t){return j.test(e.slice(t,t+M))}function ye(e,t){let n=e.lastIndexOf(`<`,t);return n<0||t-n>M?!1:j.exec(e.slice(n,t+1))?.[0].length===t+1-n}var be=/^<\/?[A-Za-z][A-Za-z0-9-]*(?:\s[^>]*?)?\/?>/,xe=512,Se=/^!(?=\[)/,Ce=/^\[\^/,we=/^\]\[[^\]]*\]/,Te=/^\[\[[^\][|]*\|/,Ee=/^#[^\][|]*(?=\]\])/,N=512,De=/^\]\([^)]*\)/,Oe=512,ke=/^(?:#{1,6}[ \t]+|>[ \t]?|(?:[-*+]|\d{1,9}[.)])[ \t]+(?:\[[ xX]\][ \t]+)?)/,Ae=32,je=`|`,Me=/^(?:`{3,}[^`\n]*|~{3,}[^\n]*)$/,Ne=/^(?:(?:[-*_][ \t]*){3,}|=+[ \t]*|[|\-: \t]*-[|\-: \t]*)$/,Pe=1024;function Fe(e,t){let n=e.indexOf(`
2
2
  `,t),r=n===-1?e.length:n;if(r>t&&e[r-1]===`\r`&&--r,r-t>Pe)return 0;let i=e.slice(t,r);return i.length===0||!Me.test(i)&&!Ne.test(i)?0:i.length}var P=/&#(?:x[0-9A-Fa-f]+|X[0-9A-Fa-f]+|[0-9]+);/y;function F(e,t){if(e[t]!==`&`)return null;let n=t,r=``;for(;;){P.lastIndex=n;let t=P.exec(e)?.[0];if(t===void 0)break;let i=C(t);if(i===null)break;r+=i,n+=t.length}return n===t?null:{length:n-t,rendered:r}}function I(e){return e===` `||e===` `||e===`
3
3
  `||e===`\r`||e===`\f`||e===`\v`}function L(e,t){for(let n=t-1;n>=0;--n){let t=e[n];if(t===`
4
4
  `)return!0;if(t!==` `&&t!==` `)return!1}return!0}function R(e,t){let n=e[t];if(n===void 0)return 0;if(L(e,t)){let n=Fe(e,t);if(n>0)return n}if(n===je)return 1;if(n===`<`){let n=be.exec(e.slice(t,t+xe))?.[0].length;return n===void 0?+!!ve(e,t):n}if(n===`>`&&ye(e,t))return 1;if(n===`=`){let n=_e.exec(e.slice(t,t+3))?.[0].length;if(n!==void 0)return n}if(n===`!`)return+!!Se.test(e.slice(t,t+2));if(ge.has(n))return 1;if(n===`[`){let n=e.slice(t,t+N),r=Te.exec(n)?.[0].length;return r===void 0?Ce.test(n)?2:1:r}if(n===`#`){let n=Ee.exec(e.slice(t,t+N))?.[0].length;if(n!==void 0)return n}if(n===`]`){if(e[t+1]===`]`)return 2;let n=e.slice(t,t+Math.max(Oe,N)),r=De.exec(n)?.[0].length;if(r!==void 0)return r;let i=we.exec(n)?.[0].length;return i===void 0?1:i}return L(e,t)?ke.exec(e.slice(t,t+Ae))?.[0].length??0:0}function z(e,t,{syntaxIn:n}){let r=[];if(t.length===0)return r;let i=n===`haystack`;for(let n=0;n<e.length;n+=1){let a=e[n];if(a===void 0||I(a)||i&&a!==t[0]&&(R(e,n)>0||F(e,n)!==null))continue;let o=n,s=0;for(;o<e.length&&s<t.length;){let n=e[o],r=t[s];if(n===r){o+=1,s+=1;continue}if(I(r)){s+=1;continue}if(I(n)){o+=1;continue}let a=i?R(e,o):R(t,s);if(a>0){i?o+=a:s+=a;continue}let c=i?F(e,o):F(t,s);if(c!==null){let n=i?t:e,r=i?s:o,a=!0;for(let e of c.rendered)if(!I(e)){for(;r<n.length&&I(n[r]);)r+=1;if(n[r]!==e){a=!1;break}r+=1}if(!a)break;i?(o+=c.length,s=r):(s+=c.length,o=r);continue}break}for(;s<t.length&&I(t[s]);)s+=1;s===t.length&&r.push({start:n,end:o})}return r}var B=8,V=64;function H(e,t,n,r){let i=``,a=Math.max(0,t),o=Math.min(e.length,n);for(;a<o;){let t=e[a];if(I(t)){a+=1;continue}if(r){let t=R(e,a);if(t>0){a+=t;continue}let n=F(e,a);if(n!==null){for(let e of n.rendered)I(e)||(i+=e);a+=n.length;continue}}i+=t,a+=1}return i}function Ie(e,t){let n=Math.min(e.length,t.length),r=0;for(;r<n&&e[e.length-1-r]===t[t.length-1-r];)r+=1;return r}function Le(e,t){let n=Math.min(e.length,t.length),r=0;for(;r<n&&e[r]===t[r];)r+=1;return r}function U(e,t,n,{syntaxIn:r,syntaxInContext:i=!1}){let a=n.prefix??``,o=n.suffix??``,s=r===`haystack`,c=0;if(a.length>0){let n=a.length*B+V;c+=Ie(H(a,0,a.length,i),H(e,t.start-n,t.start,s))}if(o.length>0){let n=o.length*B+V;c+=Le(H(o,0,o.length,i),H(e,t.end,t.end+n,s))}return c}function Re(e,{syntaxInContext:t=!1}={}){let n=H(e.prefix??``,0,1/0,t).length+H(e.suffix??``,0,1/0,t).length;return Math.min(8,n)}function ze(e){return Math.max(e*4,e+64)}function W(e,{includeBlockComponents:t=!1}={}){let n=``,r=[];return e.descendants((e,i)=>{if(e.isText&&e.text){for(let t=0;t<e.text.length;t++)n+=e.text[t],r.push(i+t);return!0}if(e.isBlock&&!t)return!0;let a=o(e);if(a.length>0){let t=i+e.nodeSize-1;for(let e=0;e<a.length;e++)n+=a[e],r.push(e===a.length-1?t:i)}return!0}),{text:n,positions:r}}function Be(e,t){let n=[];if(t===``)return n;let r=e.indexOf(t);for(;r!==-1;)n.push(r),r=e.indexOf(t,r+1);return n}function G(e,t,n){let r=n?.prefix??``,i=n?.suffix??``;if(r===``&&i===``)return null;let a=r===``?[0]:z(e,r,{syntaxIn:`needle`}).map(e=>e.end),o=i===``?[e.length]:z(e,i,{syntaxIn:`needle`}).map(e=>e.start);if(a.length!==1||o.length!==1)return null;let s=a[0],c=o[0];for(;s<c&&/\s/.test(e[s]??``);)s+=1;for(;c>s&&/\s/.test(e[c-1]??``);)--c;if(c<=s)return null;let l=ze(t.length);return c-s>l?null:{start:s,end:c}}function K(e,t){let n=e.positions[t.start],r=e.positions[t.end-1];return n==null||r==null?null:{from:n,to:r+1}}function q(e,t,n){if(t.length===0)return null;let r=Be(e.text,t).map(e=>({start:e,end:e+t.length}));if(r.length===0&&(r=z(e.text,t,{syntaxIn:`needle`})),r.length===0){let r=G(e.text,t,n);return r===null?null:K(e,r)}let i=n?.prefix??``,a=n?.suffix??``,o=t=>e.text.includes(t)||z(e.text,t,{syntaxIn:`needle`}).length>0;if(i!==``&&a!==``&&!o(i+t+a)&&o(i+a))return null;let s=Re({prefix:i,suffix:a},{syntaxInContext:!0}),c=t=>s===0||U(e.text,t,{prefix:i,suffix:a},{syntaxIn:`none`,syntaxInContext:!0})>=s;if(r.length===1){if(!c(r[0])){let r=G(e.text,t,n);return r===null?null:K(e,r)}return K(e,r[0])}let l=[],u=-1;for(let t of r){let n=U(e.text,t,{prefix:i,suffix:a},{syntaxIn:`none`,syntaxInContext:!0});n>u?(u=n,l=[t]):n===u&&l.push(t)}if(!c(l[0])){let r=G(e.text,t,n);return r===null?null:K(e,r)}return K(e,l[0])}var J=64;function Ve(e,t,n){return{prefix:s(e,Math.max(0,t-J),t),suffix:s(e,n,Math.min(e.content.size,n+J))}}function Y(e,t,n){return X(e)(t,n)}function X(e){let t=W(e),n=null;return(r,i)=>{let a=q(t,r,i);return a===null?(n??=W(e,{includeBlockComponents:!0}),q(n,r,i)):a}}var He=220,Ue=24;function We(e){let t=e.viewTop+e.insetTop,n=e.viewBottom-He;return e.anchorTop>=t&&e.anchorBottom<=n?0:e.anchorTop-(t+Ue)}function Z(e){let t=e?.parentElement??null;for(;t;){let e=getComputedStyle(t).overflowY;if(e===`auto`||e===`scroll`)return t;t=t.parentElement}return null}function Ge(e){let t=Number.parseFloat(getComputedStyle(e).scrollPaddingTop);return Number.isFinite(t)?t:0}function Ke(e,t,r,i){let a=S(e);if(!a)return!1;let o=Z(a.dom);if(!o)return n(r,`comment-reveal`,()=>e.commands.scrollIntoView());let s,c;try{s=a.coordsAtPos(t.from),c=a.coordsAtPos(t.to)}catch{return!1}let l=o.getBoundingClientRect(),u=We({anchorTop:s.top,anchorBottom:Math.max(s.bottom,c.bottom),viewTop:l.top,viewBottom:l.bottom,insetTop:Ge(o)});if(u===0)return!0;let d=window.matchMedia?.(`(prefers-reduced-motion: reduce)`).matches;return n(r,`comment-reveal`,()=>o.scrollTo({top:o.scrollTop+u,behavior:i?.instant||d?`auto`:`smooth`}))}var qe=1e4,Je=80,Ye=1500,Xe=[`wheel`,`touchstart`,`mousedown`,`keydown`];function Ze(e){let n=!1,r=null,o=null,s=-1,u=()=>{let t=l(e.docName);if(!t||t.isDestroyed)return!1;if(n||(n=!0,a(e.threadId)),e.quote===``)return r===null&&(r=Date.now(),i(e.threadId)),!0;let c=t.state.doc.content.size;return(o===null||c!==s)&&(o=Y(t.state.doc,e.quote,e.context),s=c),!o||!Ke(t,o,e.docName,{instant:!0})?!1:(r===null&&(r=Date.now(),i(e.threadId)),!0)};t(`comments`),u(),l(e.docName)===null&&window.location.assign(w(e.docName));let d=!1,f=()=>{if(!d){d=!0,h(),window.clearInterval(g),window.clearTimeout(_);for(let e of Xe)window.removeEventListener(e,p,!0)}},p=()=>f(),m=()=>{u()&&r!==null&&Date.now()-r>=Ye&&f()},h=c(m),g=window.setInterval(m,Je),_=window.setTimeout(()=>{r===null&&y.error(n?b._({id:`KeXgA-`}):b._({id:`JDQ5I5`})),f()},qe);for(let e of Xe)window.addEventListener(e,p,!0);m()}var Q=e();function Qe(){return d().length}function $e(){let e=(0,E.c)(4),t=d(),n;if(e[0]!==t){n=new Map;for(let e of t){let t=u(e)?.docName;t!==void 0&&n.set(t,(n.get(t)??0)+1)}e[0]=t,e[1]=n}else n=e[1];let r;return e[2]===n?r=e[3]:(r=[...n].map(et),e[2]=n,e[3]=r),r}function et(e){let[t,n]=e;return{docName:t,count:n}}function tt(e){let t=(0,E.c)(26),{count:n,docs:r,onDismiss:i}=e,a;t[0]===r?a=t[1]:(a=r===void 0?[]:r,t[0]=r,t[1]=a);let o=a,{_:s}=p();if(n===0)return null;let c;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(c=h(`inline-flex items-center gap-1 rounded-md border bg-muted/60 py-0.5 pr-0.5 pl-1.5`,`text-xs text-muted-foreground`),t[2]=c):c=t[2];let l;t[3]===s?l=t[4]:(l=s({id:`2zvUIK`}),t[3]=s,t[4]=l);let u;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,Q.jsx)(T,{className:`size-3`}),t[5]=u):u=t[5];let d;t[6]!==n||t[7]!==o.length?(d=o.length>1?(0,Q.jsx)(f,{id:`5TmrYN`,values:{0:o.length,count:n}}):(0,Q.jsx)(f,{id:`eiUA4k`,values:{count:n}}),t[6]=n,t[7]=o.length,t[8]=d):d=t[8];let m;t[9]!==l||t[10]!==d?(m=(0,Q.jsx)(g,{asChild:!0,children:(0,Q.jsxs)(v,{type:`button`,size:`sm`,variant:`ghost`,"aria-label":l,onClick:rt,"data-testid":`composer-comments-open-panel`,className:`h-auto min-h-0 gap-1 px-0.5 py-0 text-xs font-normal text-muted-foreground hover:text-foreground`,children:[u,d]})}),t[9]=l,t[10]=d,t[11]=m):m=t[11];let y;t[12]===o?y=t[13]:(y=(0,Q.jsx)(_,{className:`max-w-64`,children:o.length>1?(0,Q.jsx)(`ul`,{className:`flex flex-col gap-0.5`,children:o.map(nt)}):(0,Q.jsx)(f,{id:`2zvUIK`})}),t[12]=o,t[13]=y);let b;t[14]!==m||t[15]!==y?(b=(0,Q.jsxs)(ee,{children:[m,y]}),t[14]=m,t[15]=y,t[16]=b):b=t[16];let x;t[17]===s?x=t[18]:(x=s({id:`pFRz_E`}),t[17]=s,t[18]=x);let S;t[19]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,Q.jsx)(te,{className:`size-3`}),t[19]=S):S=t[19];let C;t[20]!==i||t[21]!==x?(C=(0,Q.jsx)(v,{type:`button`,size:`sm`,variant:`ghost`,"aria-label":x,onClick:i,className:`size-4 p-0 text-muted-foreground hover:text-foreground`,children:S}),t[20]=i,t[21]=x,t[22]=C):C=t[22];let w;return t[23]!==C||t[24]!==b?(w=(0,Q.jsxs)(`span`,{"data-testid":`composer-context-chip-comments`,className:c,children:[b,C]}),t[23]=C,t[24]=b,t[25]=w):w=t[25],w}function nt(e){return(0,Q.jsxs)(`li`,{className:`flex items-baseline gap-1.5`,children:[(0,Q.jsx)(`span`,{className:`tabular-nums`,children:e.count}),(0,Q.jsx)(`span`,{className:`truncate`,children:it(e.docName)})]},e.docName)}function rt(){return r()}function it(e){let t=e.lastIndexOf(`/`);return t>=0?e.slice(t+1):e}function at(e,t){let n=e;for(let e of t)n+=typeof e==`number`?`[${e}]`:`.${e}`;return n}function ot(e){Ze({docName:e.docName,quote:e.target.kind===`property`?``:e.anchor?.quote??``,threadId:e.id,context:e.anchor??void 0});let{target:t,anchor:n}=e;if(t.kind!==`property`||n===null)return;let r=0,i=()=>{pe({key:t.key,path:t.path,quote:n.quote,start:n.start,end:n.end})||(r+=1,!(r>=st)&&requestAnimationFrame(i))};requestAnimationFrame(i)}var st=30;function ct(e){return{docName:e.docName,body:e.instruction,propertyKey:e.property,quote:e.passage?.exact??``,anchorLost:e.anchorLost,prefix:e.passage?.prefix??``,suffix:e.passage?.suffix??``,repeats:e.passageRepeats}}var $=48;function lt(e){let t=e.replace(/\s+/g,` `).trimStart();return t.length>$?`…${t.slice(-$)}`:t}function ut(e){let t=e.replace(/\s+/g,` `).trimEnd();return t.length>$?`${t.slice(0,$)}…`:t}function dt(e){if(!e.repeats)return null;let t=lt(e.prefix),n=ut(e.suffix);return t===``&&n===``?null:`(This text appears more than once in the file. The one meant is ${t===``?`at the start of the file, followed by "${n}"`:n===``?`at the end of the file, preceded by "${t}"`:`between "${t}" and "${n}"`} — match that context rather than the first occurrence.)`}function ft(e,t,n){let r=t.trim(),i=[];if(i.push(r.length>0?r:`Address the following review comments by editing the documents directly.`),i.push(``),i.push(e.length===1?`The comment:`:`The ${e.length} comments:`),e.forEach((e,t)=>{if(i.push(``),e.propertyKey){let n=e.quote.trim();if(n===``)i.push(`${t+1}. In \`${e.docName}\`, on the \`${e.propertyKey}\` property (frontmatter):`),i.push(``),i.push(` ${e.body.trim()}`);else{i.push(`${t+1}. In \`${e.docName}\`, on this text within the \`${e.propertyKey}\` property (frontmatter):`),i.push(``);for(let e of n.split(`