@inkeep/open-knowledge 0.86.12 → 0.86.13-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/dist/cli.mjs +68 -68
  2. package/dist/constants-pG3JB8_T.mjs +1 -0
  3. package/dist/dist-CerHybyM.mjs +2212 -0
  4. package/dist/dist-fzYMjYEW.mjs +1 -0
  5. package/dist/index.mjs +211 -205
  6. package/dist/{init-2IGWwNzA.mjs → init-BALzgJuD.mjs} +19 -19
  7. package/dist/init-DjCyn3lC.mjs +1 -0
  8. package/dist/{launch-json-removal-BIbc-XZ-.mjs → launch-json-removal-CZzzSZeb.mjs} +1 -1
  9. package/dist/{loader-DSL3DF59.mjs → loader-CvAZ3gR_.mjs} +1 -1
  10. package/dist/loader-KSBmJiAc.mjs +1 -0
  11. package/dist/{md-manager-BGnqyqi1-C80pMLi7.mjs → md-manager-BGnqyqi1-B6Vk34FK.mjs} +171 -165
  12. package/dist/{open-browser-B2IcPaHC.mjs → open-browser-BL65djdM.mjs} +1 -1
  13. package/dist/parse-worker.mjs +1 -1
  14. package/dist/{preview-B6-PUjwS.mjs → preview-BAb3F-_7.mjs} +1 -1
  15. package/dist/preview-CS7nJe2k.mjs +1 -0
  16. package/dist/public/assets/{AccountSection-B2-6XQPR.js → AccountSection-COQZfKpO.js} +1 -1
  17. package/dist/public/assets/{ActivityModeContent-CH0hHiLP.js → ActivityModeContent-BPdMu7z2.js} +1 -1
  18. package/dist/public/assets/{AddPropertiesButton-DRfPQlAR.js → AddPropertiesButton-GCiLRlDP.js} +1 -1
  19. package/dist/public/assets/{AgentConnectionsSection-C5YY2iqZ.js → AgentConnectionsSection-uSoGapoA.js} +1 -1
  20. package/dist/public/assets/{AgentDiffPane-lJ2gjcKb.js → AgentDiffPane-CsvJxp1X.js} +1 -1
  21. package/dist/public/assets/{AttachmentsSection-BMcaRRmN.js → AttachmentsSection-DJ92B5Yu.js} +1 -1
  22. package/dist/public/assets/{CodeMirrorPropInput-B4MQKErX.js → CodeMirrorPropInput-SGpHiD66.js} +42 -36
  23. package/dist/public/assets/{ContentRulesSection-BKOZTZy3.js → ContentRulesSection-DnfajedE.js} +1 -1
  24. package/dist/public/assets/{DocumentContext-CM9Adsbs.js → DocumentContext-CTBQ4fY-.js} +1 -1
  25. package/dist/public/assets/{EditorModeToggle-COo48QqY.js → EditorModeToggle-DAirix7U.js} +1 -1
  26. package/dist/public/assets/{ExcalidrawDocEditor-DoiQlpZV.js → ExcalidrawDocEditor-BLDeNrcN.js} +1 -1
  27. package/dist/public/assets/FeedbackForm-BqPJxooF.js +1 -0
  28. package/dist/public/assets/{ImportSkillDialog-CUUMyMWK.js → ImportSkillDialog-DtV2UQv5.js} +1 -1
  29. package/dist/public/assets/{LinkPreviewsSection-DHWJWEu5.js → LinkPreviewsSection-CJqVmRKm.js} +1 -1
  30. package/dist/public/assets/{LintConfigEditor-9CvNlEO-.js → LintConfigEditor-DUxTBi5U.js} +1 -1
  31. package/dist/public/assets/{LintingSection-AOiwWaP6.js → LintingSection-Bh9yGTXV.js} +1 -1
  32. package/dist/public/assets/ManagedArtifactProperties-BqIAurMe.js +1 -0
  33. package/dist/public/assets/{ManagedArtifactProperties-1dvXShxz.js → ManagedArtifactProperties-DwOg1voi.js} +1 -1
  34. package/dist/public/assets/{MermaidDocEditor-__CzjfEd.js → MermaidDocEditor-vhiL1JeT.js} +1 -1
  35. package/dist/public/assets/{NetworkAccessSection-Dc0BHCyH.js → NetworkAccessSection-BjkuiJ-9.js} +1 -1
  36. package/dist/public/assets/{PropertyDisplayRow-Kfy8b0G0.js → PropertyDisplayRow-BL62h7d9.js} +1 -1
  37. package/dist/public/assets/{PublishToGitHubDialog-0dScwZ6d.js → PublishToGitHubDialog-CR28QNIE.js} +1 -1
  38. package/dist/public/assets/{RegisteredAgentIcon-CH2UJPHT.js → RegisteredAgentIcon-ZO33SIbk.js} +1 -1
  39. package/dist/public/assets/{SchemaConfigEditor-B6gosS8j.js → SchemaConfigEditor-B12DDCCD.js} +1 -1
  40. package/dist/public/assets/{SearchSection-Bktrtbj0.js → SearchSection-_9OYwHKs.js} +1 -1
  41. package/dist/public/assets/{SessionsHost-CR9bcG04.js → SessionsHost-CbgwFqFg.js} +2 -2
  42. package/dist/public/assets/{SettingsDialogBody-BM2RQvIT.js → SettingsDialogBody-BPko33y-.js} +2 -2
  43. package/dist/public/assets/{ShareReceiveMissDialog-BV8Kzq4g.js → ShareReceiveMissDialog-BLn2BltL.js} +1 -1
  44. package/dist/public/assets/{SkillToolbarControls-CX_pmZHa.js → SkillToolbarControls-DFTAS2RM.js} +1 -1
  45. package/dist/public/assets/{SlidesPluginSection-JtRNI6Bl.js → SlidesPluginSection-sJCULGvB.js} +1 -1
  46. package/dist/public/assets/{SourceEditor-Ba60LQn6.js → SourceEditor-CUlfXRjd.js} +1 -1
  47. package/dist/public/assets/{SyncSection-BgqgTr_Y.js → SyncSection-Bngdohnh.js} +1 -1
  48. package/dist/public/assets/{SyncStatusBadge-Cv_2sZVM.js → SyncStatusBadge-BqdgPtH8.js} +1 -1
  49. package/dist/public/assets/{TerminalLaunchContext-BxQb0o6_.js → TerminalLaunchContext-B2-Yyjfq.js} +1 -1
  50. package/dist/public/assets/{TerminalPanel-TWLJT5Es.js → TerminalPanel-DIsDo64q.js} +1 -1
  51. package/dist/public/assets/{TerminalSection-CqLz9g9L.js → TerminalSection-iMdNcbop.js} +1 -1
  52. package/dist/public/assets/{TerminalWindowApp-B1ws3exp.js → TerminalWindowApp-BaJ3QBWm.js} +1 -1
  53. package/dist/public/assets/{TextDocEditor-CLGQ-aj4.js → TextDocEditor-C4V226et.js} +1 -1
  54. package/dist/public/assets/{ThreadView-C15P20aC.js → ThreadView-B3Z96bCp.js} +1 -1
  55. package/dist/public/assets/{TimelineDiffPane-CYVPHmii.js → TimelineDiffPane-BFzSMvBR.js} +1 -1
  56. package/dist/public/assets/{agent-connections-C9gOf_nm.js → agent-connections-ClaZG-_U.js} +1 -1
  57. package/dist/public/assets/{agent-registry-JpS34dxk.js → agent-registry--ZvcMUR1.js} +1 -1
  58. package/dist/public/assets/{catalog-D4vfUgQo.js → catalog-B0-UcLAY.js} +1 -1
  59. package/dist/public/assets/{client-version-ZQn0H5Op.js → client-version-C-8uXOJv.js} +1 -1
  60. package/dist/public/assets/{comment-chips-DbWfHBFG.js → comment-chips-B3H4BvOZ.js} +1 -1
  61. package/dist/public/assets/{config-provider-joP0aQNx.js → config-provider-1akWwWnh.js} +1 -1
  62. package/dist/public/assets/{doc-undo-manager-DBVCITzL.js → doc-undo-manager-ClDmN6AG.js} +1 -1
  63. package/dist/public/assets/globals-BddzEyvs.css +1 -0
  64. package/dist/public/assets/handoff-BL1N3ufS.js +31 -0
  65. package/dist/public/assets/{index-D2HSDvWL.js → index-Om-GzY9Y.js} +8 -8
  66. package/dist/public/assets/{lint-plugins-ChBw9XWH.js → lint-plugins-6YGJYG2A.js} +1 -1
  67. package/dist/public/assets/{pending-receive-nav-store-BpgLXeSm.js → pending-receive-nav-store-DlXXdXtM.js} +1 -1
  68. package/dist/public/assets/{preferred-session-events-DXzBAALk.js → preferred-session-events-CBXj_2AI.js} +1 -1
  69. package/dist/public/assets/{progress-BzIwQVUY.js → progress-CBCD7Fnj.js} +1 -1
  70. package/dist/public/assets/{selection-context-KDS1hCP6.js → selection-context-pjsH0y8d.js} +1 -1
  71. package/dist/public/assets/{src-BzghFtXe.js → src-COI7y85K.js} +1 -1
  72. package/dist/public/assets/{telemetry-impl-DGg7unhy.js → telemetry-impl-CXXpYmRV.js} +1 -1
  73. package/dist/public/assets/{telemetry-startup-BQm4h0CJ.js → telemetry-startup-BoERilK2.js} +1 -1
  74. package/dist/public/assets/terminal-cli-display-BXsYyX7o.js +1 -0
  75. package/dist/public/assets/{terminal-command-events-DbFkr7Tx.js → terminal-command-events-Br-QLm8r.js} +1 -1
  76. package/dist/public/assets/{terminal-launch-events-Ce-BtSYr.js → terminal-launch-events-tB39DaoG.js} +1 -1
  77. package/dist/public/assets/{typing-burst-detector-C79FlNkx.js → typing-burst-detector-Bg_la-Fe.js} +1 -1
  78. package/dist/public/assets/{uninstall-BvM8iYtm.js → uninstall-CnEEKVFb.js} +1 -1
  79. package/dist/public/assets/{use-activity-panel-AM9BX52D.js → use-activity-panel-BYUtKQlN.js} +1 -1
  80. package/dist/public/assets/{use-open-skill-CsEOS_uf.js → use-open-skill-8xlQW3BO.js} +1 -1
  81. package/dist/public/assets/{use-terminal-enabled-BgiWtLub.js → use-terminal-enabled-Be1LaLgH.js} +1 -1
  82. package/dist/public/assets/{use-timeline-entry-diff-yjujkVBc.js → use-timeline-entry-diff-CRIGHYcC.js} +1 -1
  83. package/dist/public/index.html +29 -29
  84. package/dist/public/uninstall.html +3 -3
  85. package/dist/registry-probes-BR8b5_HT.mjs +17 -0
  86. package/dist/{removal-file-path-B0_K1Cgm.mjs → removal-file-path-BaHHGkfi.mjs} +1 -1
  87. package/dist/{repair-launch-json-BAls5INb.mjs → repair-launch-json-Bg3BEnB4.mjs} +1 -1
  88. package/dist/{repair-mcp-configs-Dyl2f-Gd.mjs → repair-mcp-configs-l2EXhbCZ.mjs} +1 -1
  89. package/dist/src-B3SUqF1M.mjs +16 -0
  90. package/dist/src-cKc7ry_D.mjs +1 -0
  91. package/dist/{start-BqkV6Teh.mjs → start-DU8Bw1C4.mjs} +3 -3
  92. package/dist/start-DZjh0hUs.mjs +1 -0
  93. package/package.json +4 -4
  94. package/dist/constants-Bs7sLJ8_.mjs +0 -1
  95. package/dist/dist-B7nhQgZp.mjs +0 -1
  96. package/dist/dist-mO8anSf2.mjs +0 -2212
  97. package/dist/init-Bz3UZZZO.mjs +0 -1
  98. package/dist/loader-jMxSX0GK.mjs +0 -1
  99. package/dist/preview-DSu4iRwa.mjs +0 -1
  100. package/dist/public/assets/FeedbackForm-DfsEcum5.js +0 -1
  101. package/dist/public/assets/ManagedArtifactProperties-Trg74V99.js +0 -1
  102. package/dist/public/assets/globals-BOsVqbg9.css +0 -1
  103. package/dist/public/assets/handoff-sZd6nXho.js +0 -31
  104. package/dist/public/assets/terminal-cli-display-CDqjsErM.js +0 -1
  105. package/dist/registry-probes-C43IMprg.mjs +0 -17
  106. package/dist/src-B8diuX4-.mjs +0 -1
  107. package/dist/src-DINjBDn3.mjs +0 -16
  108. package/dist/start-BeggNNGz.mjs +0 -1
  109. /package/dist/public/assets/{globals-JnwKCLiW.js → globals-BfTv_Hnc.js} +0 -0
@@ -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.12`}?.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.13-beta.1`}?.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-CM9Adsbs.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-B4MQKErX.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-CTBQ4fY-.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-SGpHiD66.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(`