codexui-android 0.1.101 → 0.1.103
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/DirectoryHub-DKVkrxQJ.css +1 -0
- package/dist/assets/DirectoryHub-wFeYwLJR.js +2 -0
- package/dist/assets/{ReviewPane-BJuXPOZb.css → ReviewPane-AzgWKh85.css} +1 -1
- package/dist/assets/{ReviewPane-Ce6QI-Sf.js → ReviewPane-DDBDehxi.js} +1 -1
- package/dist/assets/ThreadConversation-CWqez-yM.js +39 -0
- package/dist/assets/ThreadConversation-DEwOuZ3c.css +1 -0
- package/dist/assets/{ThreadTerminalPanel-DuEjX4F5.js → ThreadTerminalPanel-BEyQ2ISH.js} +12 -12
- package/dist/assets/{ThreadTerminalPanel-BfzQNi0v.css → ThreadTerminalPanel-BcVTRuCH.css} +1 -1
- package/dist/assets/index-CnFxp8la.css +1 -0
- package/dist/assets/index-CvQj_rw7.js +63 -0
- package/dist/assets/{index.esm-TywpZG2x.js → index.esm--s_sgTDk.js} +2 -2
- package/dist/assets/{index.esm-BMAgl1KF.js → index.esm-D_uN0D-X.js} +1 -1
- package/dist/assets/{index.esm-O-ekzJz9.js → index.esm-DvadSfWE.js} +2 -2
- package/dist/index.html +2 -2
- package/dist-cli/index.js +1944 -267
- package/dist-cli/index.js.map +1 -1
- package/package.json +2 -2
- package/scripts/fix-pty-native-build.cjs +10 -2
- package/dist/assets/DirectoryHub-B_wdXTQL.css +0 -1
- package/dist/assets/DirectoryHub-Bm5sZZRJ.js +0 -2
- package/dist/assets/ThreadConversation-BQnEV6OL.js +0 -39
- package/dist/assets/ThreadConversation-DdzQ_R3z.css +0 -1
- package/dist/assets/index-B6Gx9sFJ.css +0 -1
- package/dist/assets/index-DzzwK-KG.js +0 -63
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "codexui-android",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.103",
|
|
4
4
|
"description": "A lightweight web interface for Codex that runs on top of the Codex app-server, allowing remote access from any browser",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -42,7 +42,6 @@
|
|
|
42
42
|
"@firebase/util",
|
|
43
43
|
"esbuild",
|
|
44
44
|
"node-pty",
|
|
45
|
-
"node-pty-prebuilt-multiarch",
|
|
46
45
|
"protobufjs"
|
|
47
46
|
]
|
|
48
47
|
},
|
|
@@ -69,6 +68,7 @@
|
|
|
69
68
|
"qrcode-terminal": "^0.12.0",
|
|
70
69
|
"ws": "^8.18.3"
|
|
71
70
|
},
|
|
71
|
+
"optionalDependencies": {},
|
|
72
72
|
"devDependencies": {
|
|
73
73
|
"@playwright/test": "^1.59.1",
|
|
74
74
|
"@tailwindcss/vite": "^4.1.18",
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
const { existsSync, lstatSync, readFileSync, realpathSync, rmSync, writeFileSync } = require('node:fs')
|
|
1
|
+
const { chmodSync, existsSync, lstatSync, readFileSync, realpathSync, rmSync, writeFileSync } = require('node:fs')
|
|
2
2
|
const { dirname, join } = require('node:path')
|
|
3
3
|
const { spawnSync } = require('node:child_process')
|
|
4
4
|
|
|
5
5
|
const PTY_PACKAGES = [
|
|
6
|
-
'node-pty-prebuilt-multiarch',
|
|
7
6
|
'node-pty',
|
|
8
7
|
]
|
|
9
8
|
|
|
@@ -38,9 +37,18 @@ function patchMakefile(makefile) {
|
|
|
38
37
|
}
|
|
39
38
|
}
|
|
40
39
|
|
|
40
|
+
function ensureSpawnHelperExecutable(root) {
|
|
41
|
+
if (process.platform !== 'darwin' && process.platform !== 'linux') return
|
|
42
|
+
const helperPath = join(root, 'prebuilds', `${process.platform}-${process.arch}`, 'spawn-helper')
|
|
43
|
+
if (existsSync(helperPath)) {
|
|
44
|
+
chmodSync(helperPath, 0o755)
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
41
48
|
for (const name of PTY_PACKAGES) {
|
|
42
49
|
const root = packageRoot(name)
|
|
43
50
|
if (!root) continue
|
|
51
|
+
ensureSpawnHelperExecutable(root)
|
|
44
52
|
|
|
45
53
|
const buildDir = join(root, 'build')
|
|
46
54
|
const makefile = join(buildDir, 'Makefile')
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){[data-v-b276a846],[data-v-b276a846]:before,[data-v-b276a846]:after,[data-v-b276a846]::backdrop{--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-font-weight:initial;--tw-leading:initial}}}.skill-card[data-v-b276a846]{cursor:pointer;gap:calc(var(--spacing,.25rem) * 1.5);border-radius:var(--radius-xl,.75rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-zinc-200,oklch(92% .004 286.32));background-color:var(--color-white,#fff);padding:calc(var(--spacing,.25rem) * 3);text-align:left;transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));flex-direction:column;display:flex}@media(hover:hover){.skill-card[data-v-b276a846]:hover{border-color:var(--color-zinc-300,oklch(87.1% .006 286.286));--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.skill-card.is-disabled[data-v-b276a846]{opacity:.5}.skill-card-top[data-v-b276a846]{align-items:flex-start;gap:calc(var(--spacing,.25rem) * 2.5);display:flex}.skill-card-avatar[data-v-b276a846]{height:calc(var(--spacing,.25rem) * 8);width:calc(var(--spacing,.25rem) * 8);background-color:var(--color-zinc-100,oklch(96.7% .001 286.375));border-radius:3.40282e38px;flex-shrink:0}.skill-card-avatar-fallback[data-v-b276a846]{height:calc(var(--spacing,.25rem) * 8);width:calc(var(--spacing,.25rem) * 8);background-color:var(--color-zinc-200,oklch(92% .004 286.32));font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);color:var(--color-zinc-500,oklch(55.2% .016 285.938));text-transform:uppercase;border-radius:3.40282e38px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.skill-card-info[data-v-b276a846]{min-width:calc(var(--spacing,.25rem) * 0);gap:calc(var(--spacing,.25rem) * .5);flex-direction:column;flex:1;display:flex}.skill-card-header[data-v-b276a846]{align-items:center;gap:calc(var(--spacing,.25rem) * 2);display:flex}.skill-card-name[data-v-b276a846]{text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);color:var(--color-zinc-900,oklch(21% .006 285.885));overflow:hidden}.skill-card-badge[data-v-b276a846]{border-radius:var(--radius-md,.375rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-emerald-200,oklch(90.5% .093 164.15));background-color:var(--color-emerald-50,oklch(97.9% .021 166.113));padding-inline:calc(var(--spacing,.25rem) * 1.5);padding-block:calc(var(--spacing,.25rem) * .5);--tw-leading:1;--tw-font-weight:var(--font-weight-medium,500);font-size:10px;line-height:1;font-weight:var(--font-weight-medium,500);color:var(--color-emerald-700,oklch(50.8% .118 165.612));flex-shrink:0}.skill-card-badge-disabled[data-v-b276a846]{border-radius:var(--radius-md,.375rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-zinc-200,oklch(92% .004 286.32));background-color:var(--color-zinc-100,oklch(96.7% .001 286.375));padding-inline:calc(var(--spacing,.25rem) * 1.5);padding-block:calc(var(--spacing,.25rem) * .5);--tw-leading:1;--tw-font-weight:var(--font-weight-medium,500);font-size:10px;line-height:1;font-weight:var(--font-weight-medium,500);color:var(--color-zinc-500,oklch(55.2% .016 285.938));flex-shrink:0}.skill-card-owner[data-v-b276a846]{font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));color:var(--color-zinc-400,oklch(70.5% .015 286.067))}.skill-card-browse[data-v-b276a846]{height:calc(var(--spacing,.25rem) * 7);width:calc(var(--spacing,.25rem) * 7);border-radius:var(--radius-lg,.5rem);border-style:var(--tw-border-style);color:var(--color-zinc-300,oklch(87.1% .006 286.286));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));background-color:#0000;border-width:0;flex-shrink:0;justify-content:center;align-items:center;margin-left:auto;display:flex}@media(hover:hover){.skill-card-browse[data-v-b276a846]:hover{background-color:var(--color-zinc-100,oklch(96.7% .001 286.375));color:var(--color-zinc-600,oklch(44.2% .017 285.786))}}.skill-card-browse-icon[data-v-b276a846]{height:calc(var(--spacing,.25rem) * 4);width:calc(var(--spacing,.25rem) * 4)}.skill-card-desc[data-v-b276a846]{margin:calc(var(--spacing,.25rem) * 0);-webkit-line-clamp:2;font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));color:var(--color-zinc-500,oklch(55.2% .016 285.938));-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.skill-card-date[data-v-b276a846]{color:var(--color-zinc-300,oklch(87.1% .006 286.286));font-size:10px}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){[data-v-8fb16c1e],[data-v-8fb16c1e]:before,[data-v-8fb16c1e]:after,[data-v-8fb16c1e]::backdrop{--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-font-weight:initial;--tw-border-style:solid;--tw-leading:initial}}}.sdm-overlay[data-v-8fb16c1e]{inset:calc(var(--spacing,.25rem) * 0);z-index:50;background-color:#0006;justify-content:center;align-items:flex-end;display:flex;position:fixed}@supports (color:color-mix(in lab,red,red)){.sdm-overlay[data-v-8fb16c1e]{background-color:color-mix(in oklab,var(--color-black,#000) 40%,transparent)}}@media(min-width:40rem){.sdm-overlay[data-v-8fb16c1e]{align-items:center}}.sdm-panel[data-v-8fb16c1e]{width:100%;max-height:90vh;max-width:var(--container-lg,32rem);border-top-left-radius:var(--radius-2xl,1rem);border-top-right-radius:var(--radius-2xl,1rem);background-color:var(--color-white,#fff);--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);flex-direction:column;display:flex;overflow:hidden}@media(min-width:40rem){.sdm-panel[data-v-8fb16c1e]{border-radius:var(--radius-2xl,1rem);max-height:80vh}}.sdm-header[data-v-8fb16c1e]{justify-content:space-between;align-items:flex-start;gap:calc(var(--spacing,.25rem) * 3);padding:calc(var(--spacing,.25rem) * 4);padding-bottom:calc(var(--spacing,.25rem) * 3);flex-shrink:0;display:flex}@media(min-width:40rem){.sdm-header[data-v-8fb16c1e]{padding:calc(var(--spacing,.25rem) * 5)}}.sdm-title-area[data-v-8fb16c1e]{min-width:calc(var(--spacing,.25rem) * 0);align-items:center;gap:calc(var(--spacing,.25rem) * 3);display:flex}.sdm-avatar[data-v-8fb16c1e]{height:calc(var(--spacing,.25rem) * 10);width:calc(var(--spacing,.25rem) * 10);background-color:var(--color-zinc-100,oklch(96.7% .001 286.375));border-radius:3.40282e38px;flex-shrink:0}.sdm-title-col[data-v-8fb16c1e]{min-width:calc(var(--spacing,.25rem) * 0);gap:calc(var(--spacing,.25rem) * .5);flex-direction:column;display:flex}.sdm-title-row[data-v-8fb16c1e]{min-width:calc(var(--spacing,.25rem) * 0);align-items:center;gap:calc(var(--spacing,.25rem) * 2);display:flex}.sdm-title[data-v-8fb16c1e]{margin:calc(var(--spacing,.25rem) * 0);text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-lg,1.125rem);line-height:var(--tw-leading,var(--text-lg--line-height,calc(1.75 / 1.125)));--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600);color:var(--color-zinc-900,oklch(21% .006 285.885));overflow:hidden}.sdm-badge-disabled[data-v-8fb16c1e]{border-radius:var(--radius-md,.375rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-zinc-200,oklch(92% .004 286.32));background-color:var(--color-zinc-100,oklch(96.7% .001 286.375));padding-inline:calc(var(--spacing,.25rem) * 1.5);padding-block:calc(var(--spacing,.25rem) * .5);--tw-leading:1;--tw-font-weight:var(--font-weight-medium,500);font-size:10px;line-height:1;font-weight:var(--font-weight-medium,500);color:var(--color-zinc-500,oklch(55.2% .016 285.938));flex-shrink:0}.sdm-owner[data-v-8fb16c1e]{font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));color:var(--color-zinc-400,oklch(70.5% .015 286.067))}.sdm-close[data-v-8fb16c1e]{height:calc(var(--spacing,.25rem) * 7);width:calc(var(--spacing,.25rem) * 7);border-radius:var(--radius-lg,.5rem);border-style:var(--tw-border-style);color:var(--color-zinc-400,oklch(70.5% .015 286.067));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));background-color:#0000;border-width:0;flex-shrink:0;justify-content:center;align-items:center;display:flex}@media(hover:hover){.sdm-close[data-v-8fb16c1e]:hover{background-color:var(--color-zinc-100,oklch(96.7% .001 286.375));color:var(--color-zinc-700,oklch(37% .013 285.805))}}.sdm-close-icon[data-v-8fb16c1e]{height:calc(var(--spacing,.25rem) * 4);width:calc(var(--spacing,.25rem) * 4)}.sdm-body[data-v-8fb16c1e]{min-height:calc(var(--spacing,.25rem) * 0);gap:calc(var(--spacing,.25rem) * 3);padding:calc(var(--spacing,.25rem) * 4);padding-top:calc(var(--spacing,.25rem) * 0);flex-direction:column;flex:1;display:flex;overflow-y:auto}@media(min-width:40rem){.sdm-body[data-v-8fb16c1e]{padding:calc(var(--spacing,.25rem) * 5)}}.sdm-desc[data-v-8fb16c1e]{margin:calc(var(--spacing,.25rem) * 0);font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));--tw-leading:var(--leading-relaxed,1.625);line-height:var(--leading-relaxed,1.625);color:var(--color-zinc-600,oklch(44.2% .017 285.786))}.sdm-readme-loading[data-v-8fb16c1e]{font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));color:var(--color-zinc-400,oklch(70.5% .015 286.067))}.sdm-readme[data-v-8fb16c1e]{border-top-style:var(--tw-border-style);border-top-width:1px;border-color:var(--color-zinc-100,oklch(96.7% .001 286.375));padding-top:calc(var(--spacing,.25rem) * 3);font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));--tw-leading:var(--leading-relaxed,1.625);line-height:var(--leading-relaxed,1.625);color:var(--color-zinc-700,oklch(37% .013 285.805))}.sdm-readme[data-v-8fb16c1e] h2{margin-top:calc(var(--spacing,.25rem) * 3);margin-bottom:calc(var(--spacing,.25rem) * 1);font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600);color:var(--color-zinc-800,oklch(27.4% .006 286.033))}.sdm-readme[data-v-8fb16c1e] h3{margin-top:calc(var(--spacing,.25rem) * 2);margin-bottom:calc(var(--spacing,.25rem) * 1);font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600);color:var(--color-zinc-700,oklch(37% .013 285.805))}.sdm-readme[data-v-8fb16c1e] h4{margin-top:calc(var(--spacing,.25rem) * 2);margin-bottom:calc(var(--spacing,.25rem) * .5);font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);color:var(--color-zinc-600,oklch(44.2% .017 285.786))}.sdm-readme[data-v-8fb16c1e] code{background-color:var(--color-zinc-100,oklch(96.7% .001 286.375));padding-inline:calc(var(--spacing,.25rem) * 1);padding-block:calc(var(--spacing,.25rem) * .5);font-family:var(--font-mono,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);border-radius:.25rem;font-size:11px}.sdm-readme[data-v-8fb16c1e] ul{margin:calc(var(--spacing,.25rem) * 0);padding-left:calc(var(--spacing,.25rem) * 4);list-style-type:disc}.sdm-readme[data-v-8fb16c1e] li{margin-bottom:calc(var(--spacing,.25rem) * .5)}.sdm-readme[data-v-8fb16c1e] strong{--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600)}.sdm-link[data-v-8fb16c1e]{font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));color:var(--color-blue-600,oklch(54.6% .245 262.881));flex-shrink:0;text-decoration-line:none}@media(hover:hover){.sdm-link[data-v-8fb16c1e]:hover{color:var(--color-blue-700,oklch(48.8% .243 264.376));text-decoration-line:underline}}.sdm-footer[data-v-8fb16c1e]{border-top-style:var(--tw-border-style);border-top-width:1px;border-color:var(--color-zinc-100,oklch(96.7% .001 286.375));padding:calc(var(--spacing,.25rem) * 4);padding-top:calc(var(--spacing,.25rem) * 3);flex-shrink:0}@media(min-width:40rem){.sdm-footer[data-v-8fb16c1e]{padding:calc(var(--spacing,.25rem) * 5)}}.sdm-footer-actions[data-v-8fb16c1e]{align-items:center;gap:calc(var(--spacing,.25rem) * 2);display:flex}.sdm-btn[data-v-8fb16c1e]{border-radius:var(--radius-lg,.5rem);border-style:var(--tw-border-style);padding-inline:calc(var(--spacing,.25rem) * 3);padding-block:calc(var(--spacing,.25rem) * 1.5);font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));border-width:0}.sdm-btn[data-v-8fb16c1e]:disabled{cursor:not-allowed;opacity:.5}.sdm-btn-primary[data-v-8fb16c1e]{background-color:var(--color-zinc-900,oklch(21% .006 285.885));color:var(--color-white,#fff)}@media(hover:hover){.sdm-btn-primary[data-v-8fb16c1e]:hover{background-color:var(--color-black,#000)}}.sdm-btn-danger[data-v-8fb16c1e]{background-color:var(--color-rose-600,oklch(58.6% .253 17.585));color:var(--color-white,#fff)}@media(hover:hover){.sdm-btn-danger[data-v-8fb16c1e]:hover{background-color:var(--color-rose-700,oklch(51.4% .222 16.935))}}.sdm-btn-secondary[data-v-8fb16c1e]{background-color:var(--color-zinc-100,oklch(96.7% .001 286.375));color:var(--color-zinc-700,oklch(37% .013 285.805))}@media(hover:hover){.sdm-btn-secondary[data-v-8fb16c1e]:hover{background-color:var(--color-zinc-200,oklch(92% .004 286.32))}}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){[data-v-c1d170d0],[data-v-c1d170d0]:before,[data-v-c1d170d0]:after,[data-v-c1d170d0]::backdrop{--tw-font-weight:initial;--tw-border-style:solid}}}.skills-hub[data-v-c1d170d0]{width:100%;height:100%;max-width:var(--container-4xl,56rem);gap:calc(var(--spacing,.25rem) * 3);padding:calc(var(--spacing,.25rem) * 3);flex-direction:column;margin-inline:auto;display:flex;overflow-y:auto}@media(min-width:40rem){.skills-hub[data-v-c1d170d0]{gap:calc(var(--spacing,.25rem) * 4);padding:calc(var(--spacing,.25rem) * 6)}}.skills-hub-header[data-v-c1d170d0]{gap:calc(var(--spacing,.25rem) * 1);flex-direction:column;display:flex}.skills-hub-title[data-v-c1d170d0]{margin:calc(var(--spacing,.25rem) * 0);font-size:var(--text-xl,1.25rem);line-height:var(--tw-leading,var(--text-xl--line-height,calc(1.75 / 1.25)));--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600);color:var(--color-zinc-900,oklch(21% .006 285.885))}@media(min-width:40rem){.skills-hub-title[data-v-c1d170d0]{font-size:var(--text-2xl,1.5rem);line-height:var(--tw-leading,var(--text-2xl--line-height,calc(2 / 1.5)))}}.skills-hub-subtitle[data-v-c1d170d0]{margin:calc(var(--spacing,.25rem) * 0);font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));color:var(--color-zinc-500,oklch(55.2% .016 285.938))}.skills-hub-sort[data-v-c1d170d0]{cursor:pointer;border-radius:var(--radius-lg,.5rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-zinc-200,oklch(92% .004 286.32));background-color:var(--color-white,#fff);padding-inline:calc(var(--spacing,.25rem) * 2.5);padding-block:calc(var(--spacing,.25rem) * 1.5);font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);color:var(--color-zinc-600,oklch(44.2% .017 285.786));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));flex-shrink:0}@media(hover:hover){.skills-hub-sort[data-v-c1d170d0]:hover{border-color:var(--color-zinc-300,oklch(87.1% .006 286.286));background-color:var(--color-zinc-50,oklch(98.5% 0 0))}}.skills-sync-panel[data-v-c1d170d0]{gap:calc(var(--spacing,.25rem) * 2);border-radius:var(--radius-xl,.75rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-zinc-200,oklch(92% .004 286.32));background-color:var(--color-zinc-50,oklch(98.5% 0 0));padding:calc(var(--spacing,.25rem) * 3);flex-direction:column;display:flex}.skills-sync-header[data-v-c1d170d0]{align-items:center;gap:calc(var(--spacing,.25rem) * 2);font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));color:var(--color-zinc-700,oklch(37% .013 285.805));flex-wrap:wrap;display:flex}.skills-sync-badge[data-v-c1d170d0]{border-radius:var(--radius-md,.375rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-zinc-300,oklch(87.1% .006 286.286));background-color:var(--color-white,#fff);padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:calc(var(--spacing,.25rem) * .5);font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)))}.skills-sync-badge-link[data-v-c1d170d0]{color:var(--color-zinc-700,oklch(37% .013 285.805))}@media(hover:hover){.skills-sync-badge-link[data-v-c1d170d0]:hover{border-color:var(--color-zinc-400,oklch(70.5% .015 286.067));color:var(--color-zinc-900,oklch(21% .006 285.885))}}.skills-sync-device[data-v-c1d170d0]{align-items:center;gap:calc(var(--spacing,.25rem) * 2);font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));color:var(--color-zinc-600,oklch(44.2% .017 285.786));flex-wrap:wrap;display:flex}.skills-sync-meta[data-v-c1d170d0]{align-items:center;gap:calc(var(--spacing,.25rem) * 3);font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));color:var(--color-zinc-600,oklch(44.2% .017 285.786));flex-wrap:wrap;display:flex}.skills-sync-error[data-v-c1d170d0]{border-radius:var(--radius-md,.375rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-rose-200,oklch(89.2% .058 10.001));background-color:var(--color-rose-50,oklch(96.9% .015 12.422));padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:calc(var(--spacing,.25rem) * 1);font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));color:var(--color-rose-700,oklch(51.4% .222 16.935))}.skills-sync-actions[data-v-c1d170d0]{gap:calc(var(--spacing,.25rem) * 2);flex-wrap:wrap;display:flex}.skills-hub-toast[data-v-c1d170d0]{border-radius:var(--radius-lg,.5rem);padding-inline:calc(var(--spacing,.25rem) * 3);padding-block:calc(var(--spacing,.25rem) * 2);font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500)}.skills-hub-toast-success[data-v-c1d170d0]{border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-emerald-200,oklch(90.5% .093 164.15));background-color:var(--color-emerald-50,oklch(97.9% .021 166.113));color:var(--color-emerald-700,oklch(50.8% .118 165.612))}.skills-hub-toast-error[data-v-c1d170d0]{border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-rose-200,oklch(89.2% .058 10.001));background-color:var(--color-rose-50,oklch(96.9% .015 12.422));color:var(--color-rose-700,oklch(51.4% .222 16.935))}.skills-hub-section[data-v-c1d170d0]{gap:calc(var(--spacing,.25rem) * 2);flex-direction:column;display:flex}.skills-hub-section-toggle[data-v-c1d170d0]{cursor:pointer;align-items:center;gap:calc(var(--spacing,.25rem) * 1.5);border-style:var(--tw-border-style);padding:calc(var(--spacing,.25rem) * 0);font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);color:var(--color-zinc-600,oklch(44.2% .017 285.786));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));background-color:#0000;border-width:0;display:flex}@media(hover:hover){.skills-hub-section-toggle[data-v-c1d170d0]:hover{color:var(--color-zinc-900,oklch(21% .006 285.885))}}.skills-hub-section-title[data-v-c1d170d0]{font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500)}.skills-hub-section-chevron[data-v-c1d170d0]{height:calc(var(--spacing,.25rem) * 3.5);width:calc(var(--spacing,.25rem) * 3.5);transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s))}.skills-hub-section-chevron.is-open[data-v-c1d170d0]{rotate:90deg}.skills-hub-grid[data-v-c1d170d0]{gap:calc(var(--spacing,.25rem) * 3);grid-template-columns:repeat(1,minmax(0,1fr));display:grid}@media(min-width:40rem){.skills-hub-grid[data-v-c1d170d0]{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:64rem){.skills-hub-grid[data-v-c1d170d0]{grid-template-columns:repeat(3,minmax(0,1fr))}}.skills-hub-loading[data-v-c1d170d0]{padding-block:calc(var(--spacing,.25rem) * 8);text-align:center;font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));color:var(--color-zinc-400,oklch(70.5% .015 286.067))}.skills-hub-error[data-v-c1d170d0]{border-radius:var(--radius-lg,.5rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-rose-200,oklch(89.2% .058 10.001));background-color:var(--color-rose-50,oklch(96.9% .015 12.422));padding-block:calc(var(--spacing,.25rem) * 4);text-align:center;font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));color:var(--color-rose-600,oklch(58.6% .253 17.585))}.skills-hub-empty[data-v-c1d170d0]{padding-block:calc(var(--spacing,.25rem) * 8);text-align:center;font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));color:var(--color-zinc-400,oklch(70.5% .015 286.067))}/*! tailwindcss v4.2.4 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){[data-v-846e4ef2],[data-v-846e4ef2]:before,[data-v-846e4ef2]:after,[data-v-846e4ef2]::backdrop{--tw-font-weight:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-leading:initial}}}.directory-hub[data-v-846e4ef2]{gap:calc(var(--spacing,.25rem) * 3);width:100%;height:100%;padding:calc(var(--spacing,.25rem) * 3);flex-direction:column;display:flex;overflow-y:auto}@media(min-width:40rem){.directory-hub[data-v-846e4ef2]{padding:calc(var(--spacing,.25rem) * 6)}}.directory-header[data-v-846e4ef2]{width:100%;max-width:var(--container-5xl,64rem);justify-content:space-between;align-items:flex-start;gap:calc(var(--spacing,.25rem) * 3);margin-inline:auto;display:flex}.directory-header-actions[data-v-846e4ef2]{align-items:center;gap:calc(var(--spacing,.25rem) * 2);display:flex}.directory-title[data-v-846e4ef2]{margin:calc(var(--spacing,.25rem) * 0);font-size:var(--text-xl,1.25rem);line-height:var(--tw-leading,var(--text-xl--line-height,calc(1.75 / 1.25)));--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600);color:var(--color-zinc-900,oklch(21% .006 285.885))}@media(min-width:40rem){.directory-title[data-v-846e4ef2]{font-size:var(--text-2xl,1.5rem);line-height:var(--tw-leading,var(--text-2xl--line-height,calc(2 / 1.5)))}}.directory-subtitle[data-v-846e4ef2]{margin:calc(var(--spacing,.25rem) * 0);margin-top:calc(var(--spacing,.25rem) * 1);font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));color:var(--color-zinc-500,oklch(55.2% .016 285.938))}.directory-refresh[data-v-846e4ef2],.directory-action[data-v-846e4ef2],.directory-action-link[data-v-846e4ef2],.directory-modal-close[data-v-846e4ef2]{border-radius:var(--radius-lg,.5rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-zinc-200,oklch(92% .004 286.32));background-color:var(--color-white,#fff);padding-inline:calc(var(--spacing,.25rem) * 3);padding-block:calc(var(--spacing,.25rem) * 1.5);font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);color:var(--color-zinc-600,oklch(44.2% .017 285.786));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));flex-shrink:0;text-decoration-line:none}@media(hover:hover){:is(.directory-refresh[data-v-846e4ef2],.directory-action[data-v-846e4ef2],.directory-action-link[data-v-846e4ef2],.directory-modal-close[data-v-846e4ef2]):hover{border-color:var(--color-zinc-300,oklch(87.1% .006 286.286));background-color:var(--color-zinc-50,oklch(98.5% 0 0))}}:is(.directory-refresh[data-v-846e4ef2],.directory-action[data-v-846e4ef2],.directory-action-link[data-v-846e4ef2],.directory-modal-close[data-v-846e4ef2]):disabled{cursor:not-allowed;opacity:.5}.directory-action.primary[data-v-846e4ef2]{border-color:var(--color-zinc-900,oklch(21% .006 285.885));background-color:var(--color-zinc-900,oklch(21% .006 285.885));color:var(--color-white,#fff)}@media(hover:hover){.directory-action.primary[data-v-846e4ef2]:hover{background-color:var(--color-black,#000)}}.directory-action.danger[data-v-846e4ef2]{border-color:var(--color-rose-600,oklch(58.6% .253 17.585));background-color:var(--color-rose-600,oklch(58.6% .253 17.585));color:var(--color-white,#fff)}@media(hover:hover){.directory-action.danger[data-v-846e4ef2]:hover{background-color:var(--color-rose-700,oklch(51.4% .222 16.935))}}.directory-tabs[data-v-846e4ef2]{width:100%;max-width:var(--container-5xl,64rem);border-radius:var(--radius-lg,.5rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-zinc-200,oklch(92% .004 286.32));background-color:var(--color-zinc-100,oklch(96.7% .001 286.375));padding:calc(var(--spacing,.25rem) * 1);grid-template-columns:repeat(4,minmax(0,1fr));margin-inline:auto;display:grid}.directory-tab[data-v-846e4ef2]{border-radius:var(--radius-md,.375rem);border-style:var(--tw-border-style);padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:calc(var(--spacing,.25rem) * 1.5);font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);color:var(--color-zinc-500,oklch(55.2% .016 285.938));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));background-color:#0000;border-width:0}@media(hover:hover){.directory-tab[data-v-846e4ef2]:hover{color:var(--color-zinc-800,oklch(27.4% .006 286.033))}}.directory-tab.is-active[data-v-846e4ef2]{background-color:var(--color-white,#fff);color:var(--color-zinc-900,oklch(21% .006 285.885));--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.directory-section[data-v-846e4ef2]{width:100%;max-width:var(--container-5xl,64rem);gap:calc(var(--spacing,.25rem) * 3);flex-direction:column;margin-inline:auto;display:flex}.directory-section-group[data-v-846e4ef2]{gap:calc(var(--spacing,.25rem) * 3);flex-direction:column;display:flex}.skills-embedded-section[data-v-846e4ef2]{gap:calc(var(--spacing,.25rem) * 2);flex-direction:column;display:flex}.skills-embedded-toggle[data-v-846e4ef2]{cursor:pointer;align-items:center;gap:calc(var(--spacing,.25rem) * 1.5);border-style:var(--tw-border-style);padding:calc(var(--spacing,.25rem) * 0);font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);color:var(--color-zinc-600,oklch(44.2% .017 285.786));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));background-color:#0000;border-width:0;display:flex}@media(hover:hover){.skills-embedded-toggle[data-v-846e4ef2]:hover{color:var(--color-zinc-900,oklch(21% .006 285.885))}}.skills-embedded-title[data-v-846e4ef2]{font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500)}.skills-embedded-chevron[data-v-846e4ef2]{font-size:var(--text-base,1rem);line-height:var(--tw-leading,var(--text-base--line-height, 1.5 ));--tw-leading:1;transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));line-height:1;display:inline-block}.skills-embedded-chevron.is-open[data-v-846e4ef2]{rotate:90deg}.skills-embedded-body[data-v-846e4ef2]{gap:calc(var(--spacing,.25rem) * 3);flex-direction:column;display:flex}.mcp-skill-grid[data-v-846e4ef2]{gap:calc(var(--spacing,.25rem) * 3);grid-template-columns:repeat(1,minmax(0,1fr));display:grid}@media(min-width:48rem){.mcp-skill-grid[data-v-846e4ef2]{grid-template-columns:repeat(2,minmax(0,1fr))}}.mcp-skill-card[data-v-846e4ef2]{cursor:pointer;gap:calc(var(--spacing,.25rem) * 1.5);border-radius:var(--radius-xl,.75rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-zinc-200,oklch(92% .004 286.32));background-color:var(--color-white,#fff);width:100%;padding:calc(var(--spacing,.25rem) * 3);text-align:left;transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));flex-direction:column;display:flex}@media(hover:hover){.mcp-skill-card[data-v-846e4ef2]:hover{border-color:var(--color-zinc-300,oklch(87.1% .006 286.286));--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.mcp-skill-card-top[data-v-846e4ef2]{align-items:flex-start;gap:calc(var(--spacing,.25rem) * 2.5);display:flex}.mcp-skill-avatar-fallback[data-v-846e4ef2]{height:calc(var(--spacing,.25rem) * 8);width:calc(var(--spacing,.25rem) * 8);background-color:var(--color-zinc-200,oklch(92% .004 286.32));font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);color:var(--color-zinc-500,oklch(55.2% .016 285.938));text-transform:uppercase;border-radius:3.40282e38px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.mcp-skill-info[data-v-846e4ef2]{min-width:calc(var(--spacing,.25rem) * 0);gap:calc(var(--spacing,.25rem) * .5);flex-direction:column;flex:1;display:flex}.mcp-skill-header[data-v-846e4ef2]{align-items:center;gap:calc(var(--spacing,.25rem) * 2);display:flex}.mcp-skill-name[data-v-846e4ef2]{text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);color:var(--color-zinc-900,oklch(21% .006 285.885));overflow:hidden}.mcp-skill-owner[data-v-846e4ef2]{font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));color:var(--color-zinc-400,oklch(70.5% .015 286.067))}.mcp-skill-meta[data-v-846e4ef2]{margin:calc(var(--spacing,.25rem) * 0);font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));color:var(--color-zinc-500,oklch(55.2% .016 285.938))}.mcp-skill-chevron[data-v-846e4ef2]{font-size:var(--text-base,1rem);line-height:var(--tw-leading,var(--text-base--line-height, 1.5 ));--tw-leading:1;color:var(--color-zinc-400,oklch(70.5% .015 286.067));transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));line-height:1;display:inline-block}.mcp-skill-chevron.is-open[data-v-846e4ef2]{rotate:90deg}.mcp-skill-badge[data-v-846e4ef2]{border-radius:var(--radius-md,.375rem);border-style:var(--tw-border-style);padding-inline:calc(var(--spacing,.25rem) * 1.5);padding-block:calc(var(--spacing,.25rem) * .5);--tw-leading:1;--tw-font-weight:var(--font-weight-medium,500);font-size:10px;line-height:1;font-weight:var(--font-weight-medium,500);border-width:1px;flex-shrink:0}.mcp-skill-badge-ok[data-v-846e4ef2]{border-color:var(--color-emerald-200,oklch(90.5% .093 164.15));background-color:var(--color-emerald-50,oklch(97.9% .021 166.113));color:var(--color-emerald-700,oklch(50.8% .118 165.612))}.mcp-skill-badge-warning[data-v-846e4ef2]{border-color:var(--color-amber-200,oklch(92.4% .12 95.746));background-color:var(--color-amber-50,oklch(98.7% .022 95.277));color:var(--color-amber-700,oklch(55.5% .163 48.998))}.mcp-skill-badge-muted[data-v-846e4ef2]{border-color:var(--color-zinc-200,oklch(92% .004 286.32));background-color:var(--color-zinc-100,oklch(96.7% .001 286.375));color:var(--color-zinc-500,oklch(55.2% .016 285.938))}.directory-section-actions[data-v-846e4ef2]{justify-content:flex-end;display:flex}.directory-toolbar[data-v-846e4ef2]{gap:calc(var(--spacing,.25rem) * 2);flex-direction:column;display:flex}@media(min-width:40rem){.directory-toolbar[data-v-846e4ef2]{flex-direction:row;justify-content:space-between;align-items:center}}.directory-search[data-v-846e4ef2]{min-width:calc(var(--spacing,.25rem) * 0);border-radius:var(--radius-lg,.5rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-zinc-200,oklch(92% .004 286.32));background-color:var(--color-white,#fff);padding-inline:calc(var(--spacing,.25rem) * 3);padding-block:calc(var(--spacing,.25rem) * 2);font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));color:var(--color-zinc-800,oklch(27.4% .006 286.033));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));--tw-outline-style:none;outline-style:none;flex:1}.directory-search[data-v-846e4ef2]::placeholder{color:var(--color-zinc-400,oklch(70.5% .015 286.067))}.directory-search[data-v-846e4ef2]:focus{border-color:var(--color-zinc-400,oklch(70.5% .015 286.067))}.directory-sort-group[data-v-846e4ef2]{border-radius:var(--radius-lg,.5rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-zinc-200,oklch(92% .004 286.32));background-color:var(--color-zinc-100,oklch(96.7% .001 286.375));padding:calc(var(--spacing,.25rem) * 1);display:inline-flex}.directory-sort-button[data-v-846e4ef2]{border-radius:var(--radius-md,.375rem);border-style:var(--tw-border-style);padding-inline:calc(var(--spacing,.25rem) * 2.5);padding-block:calc(var(--spacing,.25rem) * 1);font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);color:var(--color-zinc-500,oklch(55.2% .016 285.938));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));background-color:#0000;border-width:0}@media(hover:hover){.directory-sort-button[data-v-846e4ef2]:hover{color:var(--color-zinc-800,oklch(27.4% .006 286.033))}}.directory-sort-button.is-active[data-v-846e4ef2]{background-color:var(--color-white,#fff);color:var(--color-zinc-900,oklch(21% .006 285.885));--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.directory-grid[data-v-846e4ef2]{gap:calc(var(--spacing,.25rem) * 3);grid-template-columns:repeat(1,minmax(0,1fr));display:grid}@media(min-width:48rem){.directory-grid[data-v-846e4ef2]{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:80rem){.directory-grid[data-v-846e4ef2]{grid-template-columns:repeat(3,minmax(0,1fr))}}.directory-list[data-v-846e4ef2]{gap:calc(var(--spacing,.25rem) * 3);flex-direction:column;display:flex}.directory-card[data-v-846e4ef2]{min-height:calc(var(--spacing,.25rem) * 36);gap:calc(var(--spacing,.25rem) * 2);border-radius:var(--radius-xl,.75rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-zinc-200,oklch(92% .004 286.32));background-color:var(--color-white,#fff);padding:calc(var(--spacing,.25rem) * 3);text-align:left;transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));flex-direction:column;display:flex}@media(hover:hover){.directory-card[data-v-846e4ef2]:hover{border-color:var(--color-zinc-300,oklch(87.1% .006 286.286));--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}button.directory-card[data-v-846e4ef2]{cursor:pointer}.directory-card.is-disabled[data-v-846e4ef2]{opacity:.6}.directory-card-wide[data-v-846e4ef2]{min-height:calc(var(--spacing,.25rem) * 0)}.directory-card-top[data-v-846e4ef2]{min-width:calc(var(--spacing,.25rem) * 0);align-items:flex-start;gap:calc(var(--spacing,.25rem) * 3);display:flex}.directory-card-icon[data-v-846e4ef2],.directory-card-fallback[data-v-846e4ef2]{height:calc(var(--spacing,.25rem) * 10);width:calc(var(--spacing,.25rem) * 10);border-radius:var(--radius-xl,.75rem);background-color:var(--color-zinc-100,oklch(96.7% .001 286.375));object-fit:cover;font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600);color:var(--color-zinc-500,oklch(55.2% .016 285.938));text-transform:uppercase;flex-shrink:0;justify-content:center;align-items:center;display:flex}.directory-card-main[data-v-846e4ef2]{min-width:calc(var(--spacing,.25rem) * 0);flex:1}.directory-card-title-row[data-v-846e4ef2]{min-width:calc(var(--spacing,.25rem) * 0);align-items:center;gap:calc(var(--spacing,.25rem) * 2);display:flex}.directory-card-title[data-v-846e4ef2]{text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600);color:var(--color-zinc-900,oklch(21% .006 285.885));overflow:hidden}.directory-card-meta[data-v-846e4ef2]{margin-top:calc(var(--spacing,.25rem) * .5);text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));color:var(--color-zinc-400,oklch(70.5% .015 286.067));display:block;overflow:hidden}.directory-card-description[data-v-846e4ef2]{margin:calc(var(--spacing,.25rem) * 0);-webkit-line-clamp:3;font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));--tw-leading:var(--leading-relaxed,1.625);line-height:var(--leading-relaxed,1.625);color:var(--color-zinc-500,oklch(55.2% .016 285.938));-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.directory-badge[data-v-846e4ef2]{border-radius:var(--radius-md,.375rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-emerald-200,oklch(90.5% .093 164.15));background-color:var(--color-emerald-50,oklch(97.9% .021 166.113));padding-inline:calc(var(--spacing,.25rem) * 1.5);padding-block:calc(var(--spacing,.25rem) * .5);--tw-leading:1;--tw-font-weight:var(--font-weight-medium,500);font-size:10px;line-height:1;font-weight:var(--font-weight-medium,500);color:var(--color-emerald-700,oklch(50.8% .118 165.612));flex-shrink:0}.directory-badge.is-muted[data-v-846e4ef2]{border-color:var(--color-zinc-200,oklch(92% .004 286.32));background-color:var(--color-zinc-100,oklch(96.7% .001 286.375));color:var(--color-zinc-500,oklch(55.2% .016 285.938))}.directory-chip-row[data-v-846e4ef2]{gap:calc(var(--spacing,.25rem) * 1.5);flex-wrap:wrap;display:flex}.directory-chip[data-v-846e4ef2]{border-radius:var(--radius-md,.375rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-zinc-200,oklch(92% .004 286.32));background-color:var(--color-zinc-50,oklch(98.5% 0 0));padding-inline:calc(var(--spacing,.25rem) * 1.5);padding-block:calc(var(--spacing,.25rem) * .5);--tw-font-weight:var(--font-weight-medium,500);font-size:10px;font-weight:var(--font-weight-medium,500);color:var(--color-zinc-500,oklch(55.2% .016 285.938))}.directory-card-actions[data-v-846e4ef2]{align-items:center;gap:calc(var(--spacing,.25rem) * 2);padding-top:calc(var(--spacing,.25rem) * 1);margin-top:auto;display:flex}.directory-loading[data-v-846e4ef2],.directory-empty[data-v-846e4ef2],.directory-error[data-v-846e4ef2]{border-radius:var(--radius-xl,.75rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-zinc-200,oklch(92% .004 286.32));background-color:var(--color-white,#fff);padding:calc(var(--spacing,.25rem) * 4);font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));color:var(--color-zinc-500,oklch(55.2% .016 285.938))}.directory-empty-copy[data-v-846e4ef2]{gap:calc(var(--spacing,.25rem) * 3);flex-direction:column;display:flex}.directory-empty-text[data-v-846e4ef2]{margin:calc(var(--spacing,.25rem) * 0)}.directory-error[data-v-846e4ef2],.directory-toast.is-error[data-v-846e4ef2],.directory-auth-status.is-error[data-v-846e4ef2]{border-color:var(--color-rose-200,oklch(89.2% .058 10.001));background-color:var(--color-rose-50,oklch(96.9% .015 12.422));color:var(--color-rose-700,oklch(51.4% .222 16.935))}.directory-toast[data-v-846e4ef2]{width:100%;max-width:var(--container-5xl,64rem);border-radius:var(--radius-lg,.5rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-emerald-200,oklch(90.5% .093 164.15));background-color:var(--color-emerald-50,oklch(97.9% .021 166.113));padding-inline:calc(var(--spacing,.25rem) * 3);padding-block:calc(var(--spacing,.25rem) * 2);font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);color:var(--color-emerald-700,oklch(50.8% .118 165.612));margin-inline:auto}.directory-card-toggle[data-v-846e4ef2]{justify-content:space-between;align-items:center;gap:calc(var(--spacing,.25rem) * 3);border-style:var(--tw-border-style);width:100%;padding:calc(var(--spacing,.25rem) * 0);text-align:left;background-color:#0000;border-width:0;display:flex}.directory-mcp-detail[data-v-846e4ef2]{gap:calc(var(--spacing,.25rem) * 3);border-top-style:var(--tw-border-style);border-top-width:1px;border-color:var(--color-zinc-100,oklch(96.7% .001 286.375));padding-top:calc(var(--spacing,.25rem) * 3);flex-direction:column;display:flex}.directory-mini-heading[data-v-846e4ef2],.directory-detail-heading[data-v-846e4ef2]{margin:calc(var(--spacing,.25rem) * 0);font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600);color:var(--color-zinc-700,oklch(37% .013 285.805))}.directory-mini-list[data-v-846e4ef2]{margin:calc(var(--spacing,.25rem) * 0);font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));--tw-leading:var(--leading-relaxed,1.625);line-height:var(--leading-relaxed,1.625);color:var(--color-zinc-500,oklch(55.2% .016 285.938))}.directory-modal-overlay[data-v-846e4ef2]{inset:calc(var(--spacing,.25rem) * 0);z-index:50;background-color:#0006;justify-content:center;align-items:flex-end;display:flex;position:fixed}@supports (color:color-mix(in lab,red,red)){.directory-modal-overlay[data-v-846e4ef2]{background-color:color-mix(in oklab,var(--color-black,#000) 40%,transparent)}}@media(min-width:40rem){.directory-modal-overlay[data-v-846e4ef2]{align-items:center}}.directory-modal[data-v-846e4ef2]{width:100%;max-height:90vh;max-width:var(--container-2xl,42rem);border-top-left-radius:var(--radius-2xl,1rem);border-top-right-radius:var(--radius-2xl,1rem);background-color:var(--color-white,#fff);--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);flex-direction:column;display:flex;overflow:hidden}@media(min-width:40rem){.directory-modal[data-v-846e4ef2]{border-radius:var(--radius-2xl,1rem);max-height:82vh}}.directory-modal-header[data-v-846e4ef2],.directory-modal-footer[data-v-846e4ef2]{justify-content:space-between;align-items:center;gap:calc(var(--spacing,.25rem) * 3);padding:calc(var(--spacing,.25rem) * 4);flex-shrink:0;display:flex}@media(min-width:40rem){.directory-modal-header[data-v-846e4ef2],.directory-modal-footer[data-v-846e4ef2]{padding:calc(var(--spacing,.25rem) * 5)}}.directory-modal-header[data-v-846e4ef2]{border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:var(--color-zinc-100,oklch(96.7% .001 286.375))}.directory-modal-footer[data-v-846e4ef2]{border-top-style:var(--tw-border-style);border-top-width:1px;border-color:var(--color-zinc-100,oklch(96.7% .001 286.375));justify-content:flex-end}.directory-modal-title[data-v-846e4ef2]{margin:calc(var(--spacing,.25rem) * 0);text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-lg,1.125rem);line-height:var(--tw-leading,var(--text-lg--line-height,calc(1.75 / 1.125)));--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600);color:var(--color-zinc-900,oklch(21% .006 285.885));overflow:hidden}.directory-modal-body[data-v-846e4ef2]{min-height:calc(var(--spacing,.25rem) * 0);gap:calc(var(--spacing,.25rem) * 4);padding:calc(var(--spacing,.25rem) * 4);flex-direction:column;flex:1;display:flex;overflow-y:auto}@media(min-width:40rem){.directory-modal-body[data-v-846e4ef2]{padding:calc(var(--spacing,.25rem) * 5)}}.directory-detail-description[data-v-846e4ef2]{margin:calc(var(--spacing,.25rem) * 0);font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));--tw-leading:var(--leading-relaxed,1.625);line-height:var(--leading-relaxed,1.625);color:var(--color-zinc-600,oklch(44.2% .017 285.786))}.directory-detail-grid[data-v-846e4ef2]{gap:calc(var(--spacing,.25rem) * 3);grid-template-columns:repeat(1,minmax(0,1fr));display:grid}@media(min-width:40rem){.directory-detail-grid[data-v-846e4ef2]{grid-template-columns:repeat(2,minmax(0,1fr))}}.directory-detail-block[data-v-846e4ef2],.directory-auth-panel[data-v-846e4ef2]{border-radius:var(--radius-xl,.75rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-zinc-200,oklch(92% .004 286.32));background-color:var(--color-zinc-50,oklch(98.5% 0 0));padding:calc(var(--spacing,.25rem) * 3)}.directory-include-row[data-v-846e4ef2]{margin-top:calc(var(--spacing,.25rem) * 2);justify-content:space-between;align-items:center;gap:calc(var(--spacing,.25rem) * 3);font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));color:var(--color-zinc-600,oklch(44.2% .017 285.786));display:flex}.directory-auth-status[data-v-846e4ef2]{margin-left:calc(var(--spacing,.25rem) * 2);border-radius:var(--radius-md,.375rem);border-style:var(--tw-border-style);padding-inline:calc(var(--spacing,.25rem) * 1.5);padding-block:calc(var(--spacing,.25rem) * .5);--tw-leading:1;--tw-font-weight:var(--font-weight-medium,500);font-size:10px;line-height:1;font-weight:var(--font-weight-medium,500);border-width:1px;display:inline-flex}.directory-auth-status.is-ok[data-v-846e4ef2]{border-color:var(--color-emerald-200,oklch(90.5% .093 164.15));background-color:var(--color-emerald-50,oklch(97.9% .021 166.113));color:var(--color-emerald-700,oklch(50.8% .118 165.612))}.directory-auth-status.is-warning[data-v-846e4ef2]{border-color:var(--color-amber-200,oklch(92.4% .12 95.746));background-color:var(--color-amber-50,oklch(98.7% .022 95.277));color:var(--color-amber-700,oklch(55.5% .163 48.998))}.directory-auth-status.is-muted[data-v-846e4ef2]{border-color:var(--color-zinc-200,oklch(92% .004 286.32));background-color:var(--color-white,#fff);color:var(--color-zinc-500,oklch(55.2% .016 285.938))}.directory-include-row button[data-v-846e4ef2]{border-style:var(--tw-border-style);padding:calc(var(--spacing,.25rem) * 0);font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);color:var(--color-blue-600,oklch(54.6% .245 262.881));background-color:#0000;border-width:0}@media(hover:hover){.directory-include-row button[data-v-846e4ef2]:hover{text-decoration-line:underline}}.directory-screenshots[data-v-846e4ef2]{gap:calc(var(--spacing,.25rem) * 3);grid-template-columns:repeat(1,minmax(0,1fr));display:grid}@media(min-width:40rem){.directory-screenshots[data-v-846e4ef2]{grid-template-columns:repeat(2,minmax(0,1fr))}}.directory-screenshots img[data-v-846e4ef2]{max-height:calc(var(--spacing,.25rem) * 56);border-radius:var(--radius-xl,.75rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-zinc-200,oklch(92% .004 286.32));object-fit:cover;width:100%}.composio-status-card[data-v-846e4ef2]{min-height:calc(var(--spacing,.25rem) * 0)}.composio-fallback[data-v-846e4ef2]{background-color:var(--color-sky-100,oklch(95.1% .026 236.824));color:var(--color-sky-700,oklch(50% .134 242.749))}:is(:root.dark){color:var(--color-zinc-100,oklch(96.7% .001 286.375))}:is(:root.dark){color:var(--color-zinc-400,oklch(70.5% .015 286.067))}:is(:root.dark){color:var(--color-zinc-300,oklch(87.1% .006 286.286))}@media(hover:hover){:is(:root.dark):hover{color:var(--color-zinc-100,oklch(96.7% .001 286.375))}}:root.dark{border-color:var(--color-zinc-700,oklch(37% .013 285.805));background-color:var(--color-zinc-900,oklch(21% .006 285.885))}@media(hover:hover){:root.dark{border-color:var(--color-zinc-600,oklch(44.2% .017 285.786))}}.dark{border-color:var(--color-zinc-700,oklch(37% .013 285.805));background-color:var(--color-zinc-900,oklch(21% .006 285.885))}@media(hover:hover){.dark{border-color:var(--color-zinc-600,oklch(44.2% .017 285.786))}}:root.dark{background-color:var(--color-zinc-700,oklch(37% .013 285.805));color:var(--color-zinc-300,oklch(87.1% .006 286.286))}.dark{background-color:var(--color-zinc-700,oklch(37% .013 285.805));color:var(--color-zinc-300,oklch(87.1% .006 286.286))}.dark{color:var(--color-zinc-100,oklch(96.7% .001 286.375))}:root.dark{color:var(--color-zinc-400,oklch(70.5% .015 286.067))}.dark{color:var(--color-zinc-400,oklch(70.5% .015 286.067))}:root.dark{color:var(--color-zinc-300,oklch(87.1% .006 286.286))}.dark{color:var(--color-zinc-300,oklch(87.1% .006 286.286))}.dark{color:var(--color-zinc-500,oklch(55.2% .016 285.938))}@media(prefers-color-scheme:dark){.mcp-skill-card[data-v-846e4ef2]{border-color:var(--color-zinc-700,oklch(37% .013 285.805));background-color:var(--color-zinc-900,oklch(21% .006 285.885))}@media(hover:hover){.mcp-skill-card[data-v-846e4ef2]:hover{border-color:var(--color-zinc-600,oklch(44.2% .017 285.786))}}.mcp-skill-avatar-fallback[data-v-846e4ef2]{background-color:var(--color-zinc-700,oklch(37% .013 285.805));color:var(--color-zinc-300,oklch(87.1% .006 286.286))}.mcp-skill-name[data-v-846e4ef2]{color:var(--color-zinc-100,oklch(96.7% .001 286.375))}.mcp-skill-owner[data-v-846e4ef2]{color:var(--color-zinc-400,oklch(70.5% .015 286.067))}.mcp-skill-meta[data-v-846e4ef2]{color:var(--color-zinc-300,oklch(87.1% .006 286.286))}.mcp-skill-chevron[data-v-846e4ef2]{color:var(--color-zinc-500,oklch(55.2% .016 285.938))}}:is(:root.dark){border-color:var(--color-zinc-700,oklch(37% .013 285.805));background-color:var(--color-zinc-900,oklch(21% .006 285.885))}:root.dark{color:var(--color-zinc-100,oklch(96.7% .001 286.375))}:root.dark{color:var(--color-zinc-500,oklch(55.2% .016 285.938))}:root.dark{border-color:var(--color-zinc-500,oklch(55.2% .016 285.938))}:root.dark{border-color:var(--color-zinc-700,oklch(37% .013 285.805));background-color:var(--color-zinc-800,oklch(27.4% .006 286.033));color:var(--color-zinc-100,oklch(96.7% .001 286.375))}:root.dark{border-color:var(--color-zinc-700,oklch(37% .013 285.805));background-color:var(--color-zinc-950,oklch(14.1% .005 285.823))}:root.dark{border-color:var(--color-zinc-700,oklch(37% .013 285.805));background-color:var(--color-zinc-900,oklch(21% .006 285.885));color:var(--color-zinc-400,oklch(70.5% .015 286.067))}:root.dark{border-color:#8b083699}@supports (color:color-mix(in lab,red,red)){:root.dark{border-color:color-mix(in oklab,var(--color-rose-900,oklch(41% .159 10.272)) 60%,transparent)}}:root.dark{background-color:#4d021899}@supports (color:color-mix(in lab,red,red)){:root.dark{background-color:color-mix(in oklab,var(--color-rose-950,oklch(27.1% .105 12.094)) 60%,transparent)}}:root.dark{color:var(--color-rose-300,oklch(81% .117 11.638))}:root.dark{background-color:var(--color-sky-950,oklch(29.3% .066 243.157));color:var(--color-sky-300,oklch(82.8% .111 230.318))}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-leading{syntax:"*";inherits:false}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index.esm-BMAgl1KF.js","assets/index.esm-O-ekzJz9.js","assets/index.esm-TywpZG2x.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{d as Fe,o,c as l,h as F,a as s,t as i,s as r,f as c,p as Ue,j as Ie,S as Cs,J as Ze,y as S,_ as Me,w as Se,A as Ne,m as ws,U as qe,r as u,z as Nt,b as Mt,v as De,V as $s,W as Ss,F as G,g as K,L as Ve,X as We,q as Is,x as As,Y as Ps,Z as Ls,$ as Es,a0 as Ts,a1 as Us,a2 as Ns,a3 as Ds,a4 as Fs,a5 as Ms,a6 as Os,a7 as xs,a8 as Rs,a9 as Gs,aa as js,ab as Hs,ac as Dt,ad as Bs}from"./index-DzzwK-KG.js";const Ks={class:"skill-card-top"},zs=["src","alt"],Vs={key:1,class:"skill-card-avatar-fallback"},Ws={class:"skill-card-info"},Js={class:"skill-card-header"},qs={class:"skill-card-name"},Zs={key:0,class:"skill-card-badge-disabled"},Qs={key:1,class:"skill-card-badge"},Ys={class:"skill-card-owner"},Xs=["title"],eo={key:0,class:"skill-card-desc"},to={key:1,class:"skill-card-date"},so=Fe({__name:"SkillCard",props:{skill:{}},emits:["select"],setup(y){const q=y,{t:g}=Ze(),L=S(()=>{const _=q.skill.path;return _?_.endsWith("/SKILL.md")?_.slice(0,-9):_:""});function N(){const _=L.value;_&&window.open(`/codex-local-browse${encodeURI(_)}`,"_blank","noopener,noreferrer")}const O=S(()=>{const _=q.skill.publishedAt;if(!_)return"";const I=new Date(_),m=Date.now()-_;return m<36e5?`${Math.floor(m/6e4)}m ago`:m<864e5?`${Math.floor(m/36e5)}h ago`:m<2592e6?`${Math.floor(m/864e5)}d ago`:I.toLocaleDateString("en-US",{month:"short",day:"numeric"})});function j(_){const I=_.target;I.style.display="none"}return(_,I)=>(o(),l("button",{class:F(["skill-card",{"is-disabled":y.skill.installed&&y.skill.enabled===!1}]),type:"button",onClick:I[0]||(I[0]=x=>_.$emit("select",y.skill))},[s("div",Ks,[y.skill.avatarUrl?(o(),l("img",{key:0,class:"skill-card-avatar",src:y.skill.avatarUrl,alt:y.skill.owner,loading:"lazy",onError:j},null,40,zs)):(o(),l("div",Vs,i(y.skill.owner.charAt(0)),1)),s("div",Ws,[s("div",Js,[s("span",qs,i(y.skill.displayName||y.skill.name),1),y.skill.installed&&y.skill.enabled===!1?(o(),l("span",Zs,i(r(g)("Disabled")),1)):y.skill.installed?(o(),l("span",Qs,i(r(g)("Installed")),1)):c("",!0)]),s("span",Ys,i(y.skill.owner),1)]),y.skill.installed&&L.value?(o(),l("button",{key:2,class:"skill-card-browse",type:"button",title:r(g)("Browse files"),onClick:Ue(N,["stop"])},[Ie(Cs,{class:"skill-card-browse-icon"})],8,Xs)):c("",!0)]),y.skill.description?(o(),l("p",eo,i(y.skill.description),1)):c("",!0),O.value?(o(),l("span",to,i(O.value),1)):c("",!0)],2))}}),oo=Me(so,[["__scopeId","data-v-b276a846"]]),ao={class:"sdm-panel"},lo={class:"sdm-header"},io={class:"sdm-title-area"},no=["src","alt"],ro={class:"sdm-title-col"},co={class:"sdm-title-row"},uo={class:"sdm-title"},yo={key:0,class:"sdm-badge-disabled"},vo={class:"sdm-owner"},po=["aria-label"],ho={class:"sdm-body"},mo={key:0,class:"sdm-desc"},go={key:1,class:"sdm-readme-loading"},ko=["innerHTML"],fo=["href"],bo={class:"sdm-footer"},_o={class:"sdm-footer-actions"},Co=["disabled"],wo=["disabled"],$o=["disabled"],So=["disabled"],Io=Fe({__name:"SkillDetailModal",props:{skill:{},visible:{type:Boolean},isInstalling:{type:Boolean},isUninstalling:{type:Boolean},isTrying:{type:Boolean}},emits:["close","install","uninstall","toggle-enabled","try"],setup(y,{emit:q}){const g=y,L=q,N=u(null),O=u(""),j=u(""),_=u(!1),{t:I}=Ze(),x=S(()=>N.value??g.skill.enabled??!0),m=S(()=>g.isInstalling===!0||g.isUninstalling===!0),H=S(()=>O.value||g.skill.description),V=S(()=>{const k=g.skill.path;return k?k.endsWith("/SKILL.md")?k.slice(0,-9):k:""}),Y=S(()=>{const k=j.value;if(!k)return"";const P=k.replace(/^---[\s\S]*?---\s*/,"");return w(P)});function w(k){return k.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/^### (.+)$/gm,"<h4>$1</h4>").replace(/^## (.+)$/gm,"<h3>$1</h3>").replace(/^# (.+)$/gm,"<h2>$1</h2>").replace(/\*\*(.+?)\*\*/g,"<strong>$1</strong>").replace(/`([^`]+)`/g,"<code>$1</code>").replace(/^- (.+)$/gm,"<li>$1</li>").replace(/(<li>.*<\/li>\n?)+/g,"<ul>$&</ul>").replace(/\n{2,}/g,"<br/><br/>").replace(/\n/g,"<br/>")}async function D(){if(!(!g.skill.owner||!g.skill.name)){_.value=!0,O.value="",j.value="";try{const k=new URLSearchParams({owner:g.skill.owner,name:g.skill.name});g.skill.installed&&k.set("installed","true"),g.skill.path&&k.set("path",g.skill.path);const P=await fetch(`/codex-api/skills-hub/readme?${k}`);if(!P.ok)return;const T=await P.json();j.value=T.content??"",O.value=T.description??""}catch{}finally{_.value=!1}}}Se(()=>g.visible,k=>{k&&(N.value=null,O.value="",j.value="",D())});function R(){L("install",g.skill)}function v(){L("uninstall",g.skill)}function p(){const k=!x.value;N.value=k,L("toggle-enabled",g.skill,k)}function Z(){g.isTrying||L("try",g.skill)}function B(){const k=V.value;k&&window.open(`/codex-local-browse${encodeURI(k)}`,"_blank","noopener,noreferrer")}return(k,P)=>(o(),Ne(qe,{to:"body"},[y.visible?(o(),l("div",{key:0,class:"sdm-overlay",onClick:P[1]||(P[1]=Ue(T=>k.$emit("close"),["self"]))},[s("div",ao,[s("div",lo,[s("div",io,[y.skill.avatarUrl?(o(),l("img",{key:0,class:"sdm-avatar",src:y.skill.avatarUrl,alt:y.skill.owner,loading:"lazy"},null,8,no)):c("",!0),s("div",ro,[s("div",co,[s("h3",uo,i(y.skill.displayName||y.skill.name),1),y.skill.installed&&!x.value?(o(),l("span",yo,i(r(I)("Disabled")),1)):c("",!0)]),s("span",vo,i(y.skill.owner),1)])]),s("button",{class:"sdm-close",type:"button","aria-label":r(I)("Close"),onClick:P[0]||(P[0]=T=>k.$emit("close"))},[Ie(ws,{class:"sdm-close-icon"})],8,po)]),s("div",ho,[H.value?(o(),l("p",mo,i(H.value),1)):c("",!0),_.value?(o(),l("div",go,i(r(I)("Loading skill contents...")),1)):j.value?(o(),l("div",{key:2,class:"sdm-readme",innerHTML:Y.value},null,8,ko)):c("",!0),s("a",{class:"sdm-link",href:y.skill.url,target:"_blank",rel:"noopener noreferrer"},i(r(I)("View on GitHub")),9,fo)]),s("div",bo,[s("div",_o,[y.skill.installed?(o(),l("button",{key:0,class:"sdm-btn sdm-btn-danger",type:"button",disabled:m.value,onClick:v},i(g.isUninstalling?r(I)("Uninstalling..."):r(I)("Uninstall")),9,Co)):(o(),l("button",{key:1,class:"sdm-btn sdm-btn-primary",type:"button",disabled:m.value,onClick:R},i(g.isInstalling?r(I)("Installing..."):r(I)("Install")),9,wo)),y.skill.installed?(o(),l("button",{key:2,class:"sdm-btn sdm-btn-secondary",type:"button",disabled:m.value,onClick:p},i(x.value?r(I)("Disable"):r(I)("Enable")),9,$o)):c("",!0),y.skill.installed&&x.value?(o(),l("button",{key:3,class:"sdm-btn sdm-btn-primary",type:"button",disabled:m.value||g.isTrying,onClick:Z},i(g.isTrying?"Starting...":"Try it!"),9,So)):c("",!0),y.skill.installed&&V.value?(o(),l("button",{key:4,class:"sdm-btn sdm-btn-secondary",type:"button",onClick:B},i(r(I)("Browse files")),1)):c("",!0)])])])])):c("",!0)]))}}),Ao=Me(Io,[["__scopeId","data-v-8fb16c1e"]]),Po={apiKey:"AIzaSyAf0CIHBZ-wEQJ8CCUUWo1Wl9P7typ_ZPI",authDomain:"gptcall-416910.firebaseapp.com",projectId:"gptcall-416910",storageBucket:"gptcall-416910.appspot.com",messagingSenderId:"99275526699",appId:"1:99275526699:web:3b623e1e2996108b52106e"};let Je=null;function Lo(){return Je||(Je=Promise.all([Nt(()=>import("./index.esm-BMAgl1KF.js"),__vite__mapDeps([0,1])),Nt(()=>import("./index.esm-TywpZG2x.js"),__vite__mapDeps([2,1]))])),Je}function Eo(y){const q=u(null),g=u(""),L=u(""),N=u(""),O=u({loggedIn:!1,githubUsername:"",repoOwner:"",repoName:"",configured:!1,startup:{inProgress:!1,mode:"idle",branch:"main",lastAction:"not-started",lastRunAtIso:"",lastSuccessAtIso:"",lastError:""}}),j=S(()=>N.value==="pull"),_=S(()=>N.value==="push"),I=S(()=>N.value==="startup-sync"),x=S(()=>N.value!=="");async function m(){try{const v=await fetch("/codex-api/skills-sync/status");if(!v.ok)return;const p=await v.json();p.data&&(O.value=p.data)}catch{}}async function H(){try{const v=await fetch("/codex-api/skills-sync/github/start-login",{method:"POST"}),p=await v.json();if(!v.ok||!p.data)throw new Error("Failed to start GitHub login");q.value=p.data;const Z=30,B=Math.max((p.data.interval??5)*1e3,3e3);let k=!1;for(let P=0;P<Z;P++){await new Promise(J=>setTimeout(J,B));const T=await fetch("/codex-api/skills-sync/github/complete-login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({deviceCode:p.data.device_code})}),W=await T.json();if(!T.ok)throw new Error(W.error||"Failed to complete GitHub login");if(W.ok){k=!0;break}if(!W.pending)throw new Error(W.error||"Failed to complete GitHub login")}if(!k)throw new Error("GitHub login timed out. Please retry.");q.value=null,await m(),y.showToast("GitHub login successful")}catch(v){y.showToast(v instanceof Error?v.message:"Failed GitHub login","error")}}async function V(){try{const[v,p]=await Lo(),{getApp:Z,getApps:B,initializeApp:k}=v,{getAuth:P,GithubAuthProvider:T,signInWithPopup:W}=p,J=B().length>0?Z():k(Po),le=P(J),oe=new T;oe.addScope("repo");const Q=await W(le,oe),te=T.credentialFromResult(Q),ie=(te==null?void 0:te.accessToken)??"";if(!ie)throw new Error("GitHub access token missing from Firebase login");const ae=await fetch("/codex-api/skills-sync/github/token-login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:ie})}),X=await ae.json();if(!ae.ok||!X.ok)throw new Error(X.error||"Failed to login with GitHub token");await m(),y.showToast("GitHub login successful")}catch(v){const p=v instanceof Error?v.message:"Failed Firebase GitHub login";y.showToast(p,"error")}}async function Y(){L.value="",g.value="pull-started",N.value="pull";try{const v=await fetch("/codex-api/skills-sync/pull",{method:"POST"}),p=await v.json();if(!v.ok||!p.ok)throw new Error(p.error||"Failed to pull synced skills");await y.onPulled(),g.value="pull-success",y.showToast(O.value.loggedIn?"Pulled skills from private sync repo":"Pulled skills from upstream repo")}catch(v){const p=v instanceof Error?v.message:"Failed to pull sync";L.value=p,g.value="pull-failed",y.showToast(p,"error")}finally{N.value=""}}async function w(){L.value="",g.value="push-started",N.value="push";try{const v=await fetch("/codex-api/skills-sync/push",{method:"POST"}),p=await v.json();if(!v.ok||!p.ok)throw new Error(p.error||"Failed to push synced skills");g.value="push-success",y.showToast("Pushed skills to private sync repo")}catch(v){const p=v instanceof Error?v.message:"Failed to push sync";L.value=p,g.value="push-failed",y.showToast(p,"error")}finally{N.value=""}}async function D(){L.value="",g.value="startup-sync-started",N.value="startup-sync";try{const v=await fetch("/codex-api/skills-sync/startup-sync",{method:"POST"}),p=await v.json();if(!v.ok||!p.ok)throw new Error(p.error||"Failed to run startup sync");await y.onPulled(),await m(),g.value="startup-sync-success",y.showToast("Startup sync completed")}catch(v){const p=v instanceof Error?v.message:"Failed startup sync";L.value=p,g.value="startup-sync-failed",y.showToast(p,"error")}finally{N.value=""}}async function R(){try{const v=await fetch("/codex-api/skills-sync/github/logout",{method:"POST"}),p=await v.json();if(!v.ok||!p.ok)throw new Error(p.error||"Failed to logout GitHub");await m(),y.showToast("Logged out from GitHub")}catch(v){y.showToast(v instanceof Error?v.message:"Failed to logout GitHub","error")}}return{deviceLogin:q,isPullInFlight:j,isPushInFlight:_,isStartupSyncInFlight:I,isSyncActionInFlight:x,loadSyncStatus:m,logoutGithub:R,pullSkillsSync:Y,pushSkillsSync:w,startupSkillsSync:D,startGithubFirebaseLogin:V,startGithubLogin:H,syncActionError:L,syncActionStatus:g,syncStatus:O}}const To={class:"skills-hub"},Uo={class:"skills-hub-header"},No={class:"skills-hub-title"},Do={class:"skills-hub-subtitle"},Fo={class:"skills-sync-panel"},Mo={class:"skills-sync-header"},Oo=["href"],xo={key:1,class:"skills-sync-badge"},Ro={key:2,class:"skills-sync-badge"},Go={class:"skills-sync-meta"},jo={key:0,class:"skills-sync-error"},Ho={key:1,class:"skills-sync-meta"},Bo={key:2,class:"skills-sync-error"},Ko={key:3,class:"skills-sync-device"},zo=["href"],Vo={class:"skills-sync-actions"},Wo=["disabled"],Jo=["disabled"],qo=["disabled"],Zo=["disabled"],Qo={key:1,class:"skills-hub-section"},Yo={class:"skills-hub-section-title"},Xo={key:0,class:"skills-hub-grid"},ea={class:"skills-hub-section"},ta={key:0,class:"skills-hub-loading"},sa={key:1,class:"skills-hub-error"},oa={key:2,class:"skills-hub-empty"},aa=Fe({__name:"SkillsHub",props:{tryInFlightKey:{}},emits:["skills-changed","try-item"],setup(y,{emit:q}){const g={name:"",owner:"",description:"",url:"",installed:!1},L=u([]),N=u(!1),O=u(""),j=u(!0),_=u(!1),I=u(g),x=u(null),m=u(""),H=u(!1),V=u(!1);let Y=null;const{t:w}=Ze(),D=y,R=q,v=S(()=>{var d;return((d=x.value)==null?void 0:d.type)==="error"?"skills-hub-toast-error":"skills-hub-toast-success"}),p=S(()=>`${I.value.owner}/${I.value.name}`),Z=S(()=>H.value&&m.value===p.value),B=S(()=>V.value&&m.value===p.value),k=S(()=>{if(!U.value.configured)return"";const d=U.value.repoOwner.trim(),C=U.value.repoName.trim();return!d||!C?"":`https://github.com/${encodeURIComponent(d)}/${encodeURIComponent(C)}`}),P=S(()=>L.value);function T(d,C="success"){x.value={text:d,type:C},Y&&clearTimeout(Y),Y=setTimeout(()=>{x.value=null},3e3)}function W(d){L.value=d.installed??[]}async function J(){N.value=!0,O.value="";try{const d=await fetch("/codex-api/skills-hub");if(!d.ok)throw new Error(`HTTP ${d.status}`);const C=await d.json();W(C)}catch(d){O.value=d instanceof Error?d.message:"Failed to load skills"}finally{N.value=!1}}function le(d){I.value=d,_.value=!0}async function oe(d){m.value=`${d.owner}/${d.name}`,H.value=!0;try{const $=await(await fetch("/codex-api/skills-hub/install",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({owner:d.owner,name:d.name})})).json();if(!$.ok)throw new Error($.error||"Install failed");const ee={...d,installed:!0,path:$.path,enabled:!0};L.value=[...L.value,ee],I.value=ee,T(`${d.displayName||d.name} skill installed`),_.value=!1,R("skills-changed")}catch(C){T(C instanceof Error?C.message:"Failed to install skill","error")}finally{H.value=!1}}async function Q(d){m.value=`${d.owner}/${d.name}`,V.value=!0;try{const $=await(await fetch("/codex-api/skills-hub/uninstall",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:d.name,path:d.path})})).json();if(!$.ok)throw new Error($.error||"Uninstall failed");L.value=L.value.filter(ee=>ee.name!==d.name),T(`${d.displayName||d.name} skill uninstalled`),_.value=!1,R("skills-changed")}catch(C){T(C instanceof Error?C.message:"Failed to uninstall skill","error")}finally{V.value=!1}}async function te(d,C){try{if(!(await fetch("/codex-api/rpc",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({method:"skills/config/write",params:{path:d.path,enabled:C}})})).ok)throw new Error("Failed to update skill");await fetch("/codex-api/skills-sync/push",{method:"POST"}),T(`${d.displayName||d.name} skill ${C?"enabled":"disabled"}`),await J()}catch($){T($ instanceof Error?$.message:"Failed to update skill","error")}}function ie(d){!d.installed||d.enabled===!1||D.tryInFlightKey||(R("try-item",{kind:"skill",name:d.name,displayName:d.displayName||d.name,skillPath:d.path}),_.value=!1)}function ae(d){return`skill:${d.name}:${d.path??""}`}const{deviceLogin:X,isPullInFlight:ye,isPushInFlight:ve,isStartupSyncInFlight:pe,isSyncActionInFlight:f,loadSyncStatus:E,logoutGithub:he,pullSkillsSync:me,pushSkillsSync:ne,startupSkillsSync:b,startGithubFirebaseLogin:re,startGithubLogin:ge,syncActionError:ce,syncActionStatus:de,syncStatus:U}=Eo({showToast:T,onPulled:async()=>{await J(),R("skills-changed")}});return Mt(()=>{J(),E()}),(d,C)=>(o(),l("div",To,[s("div",Uo,[s("h2",No,i(r(w)("Skills Hub")),1),s("p",Do,i(r(w)("Manage installed skills on this machine")),1)]),s("div",Fo,[s("div",Mo,[s("strong",null,i(r(w)("Skills Sync (GitHub)")),1),r(U).configured&&k.value?(o(),l("a",{key:0,class:"skills-sync-badge skills-sync-badge-link",href:k.value,target:"_blank",rel:"noopener noreferrer"},i(r(w)("Connected"))+": "+i(r(U).repoOwner)+"/"+i(r(U).repoName),9,Oo)):r(U).loggedIn?(o(),l("span",xo,i(r(w)("Logged in as"))+" "+i(r(U).githubUsername),1)):(o(),l("span",Ro,i(r(w)("Not connected")),1))]),s("div",Go,[s("span",null,i(r(w)("Startup"))+": "+i(r(U).startup.mode),1),s("span",null,i(r(w)("Branch"))+": "+i(r(U).startup.branch),1),s("span",null,i(r(w)("Action"))+": "+i(r(U).startup.lastAction),1)]),r(U).startup.lastError?(o(),l("div",jo,i(r(U).startup.lastError),1)):c("",!0),r(de)?(o(),l("div",Ho,[s("span",null,i(r(w)("Manual sync"))+": "+i(r(de)),1)])):c("",!0),r(ce)?(o(),l("div",Bo,i(r(ce)),1)):c("",!0),r(X)?(o(),l("div",Ko,[s("span",null,[De(i(r(w)("Open"))+" ",1),s("a",{href:r(X).verification_uri,target:"_blank",rel:"noreferrer"},i(r(w)("GitHub device login")),9,zo),De(" "+i(r(w)("and enter code:")),1)]),s("code",null,i(r(X).user_code),1)])):c("",!0),s("div",Vo,[r(U).loggedIn?c("",!0):(o(),l("button",{key:0,class:"skills-hub-sort",type:"button",onClick:C[0]||(C[0]=(...$)=>r(re)&&r(re)(...$))},i(r(w)("Login with GitHub")),1)),r(U).loggedIn?c("",!0):(o(),l("button",{key:1,class:"skills-hub-sort",type:"button",onClick:C[1]||(C[1]=(...$)=>r(ge)&&r(ge)(...$))},i(r(w)("Device Login")),1)),r(U).loggedIn?(o(),l("button",{key:2,class:"skills-hub-sort",type:"button",onClick:C[2]||(C[2]=(...$)=>r(he)&&r(he)(...$)),disabled:r(f)},i(r(w)("Logout GitHub")),9,Wo)):c("",!0),s("button",{class:"skills-hub-sort",type:"button",onClick:C[3]||(C[3]=(...$)=>r(b)&&r(b)(...$)),disabled:r(f)},i(r(pe)?r(w)("Syncing..."):r(w)("Startup Sync")),9,Jo),s("button",{class:"skills-hub-sort",type:"button",onClick:C[4]||(C[4]=(...$)=>r(me)&&r(me)(...$)),disabled:r(f)},i(r(ye)?r(w)("Pulling..."):r(w)("Pull")),9,qo),r(U).loggedIn?(o(),l("button",{key:3,class:"skills-hub-sort",type:"button",onClick:C[5]||(C[5]=(...$)=>r(ne)&&r(ne)(...$)),disabled:!r(U).configured||r(f)},i(r(ve)?r(w)("Pushing..."):r(w)("Push")),9,Zo)):c("",!0)])]),x.value?(o(),l("div",{key:0,class:F(["skills-hub-toast",v.value])},i(x.value.text),3)):c("",!0),$s(d.$slots,"before-installed",{},void 0),P.value.length>0?(o(),l("div",Qo,[s("button",{class:"skills-hub-section-toggle",type:"button",onClick:C[6]||(C[6]=$=>j.value=!j.value)},[s("span",Yo,i(r(w)("Installed skills ({count})",{count:P.value.length})),1),Ie(Ss,{class:F(["skills-hub-section-chevron",{"is-open":j.value}])},null,8,["class"])]),j.value?(o(),l("div",Xo,[(o(!0),l(G,null,K(P.value,$=>(o(),Ne(oo,{key:$.name,skill:$,onSelect:ee=>le(ee)},null,8,["skill","onSelect"]))),128))])):c("",!0)])):c("",!0),s("div",ea,[N.value?(o(),l("div",ta,i(r(w)("Loading skills...")),1)):O.value?(o(),l("div",sa,i(O.value),1)):L.value.length===0?(o(),l("div",oa,i(r(w)("No installed skills found.")),1)):c("",!0)]),Ie(Ao,{skill:I.value,visible:_.value,"is-installing":Z.value,"is-uninstalling":B.value,"is-trying":D.tryInFlightKey===ae(I.value),onClose:C[7]||(C[7]=$=>_.value=!1),onInstall:oe,onUninstall:Q,onToggleEnabled:te,onTry:ie},null,8,["skill","visible","is-installing","is-uninstalling","is-trying"])]))}}),la=Me(aa,[["__scopeId","data-v-c1d170d0"]]),ia={class:"directory-hub"},na={class:"directory-header"},ra={class:"directory-subtitle"},ca={class:"directory-header-actions"},da=["disabled"],ua={class:"directory-tabs",role:"tablist","aria-label":"Directory sections"},ya=["aria-selected","onClick"],va={key:1,class:"directory-section"},pa={class:"directory-toolbar"},ha={class:"directory-sort-group",role:"group","aria-label":"Sort plugins"},ma={key:0,class:"directory-empty"},ga={key:1,class:"directory-error"},ka={key:2,class:"directory-loading"},fa={key:3,class:"directory-empty"},ba={key:4,class:"directory-grid"},_a=["onClick"],Ca={class:"directory-card-top"},wa=["src","alt"],$a={class:"directory-card-main"},Sa={class:"directory-card-title-row"},Ia={class:"directory-card-title"},Aa={key:0,class:"directory-badge is-muted"},Pa={key:1,class:"directory-badge"},La={class:"directory-card-meta"},Ea={key:0,class:"directory-card-description"},Ta={class:"directory-chip-row"},Ua={key:0,class:"directory-chip"},Na={key:2,class:"directory-section"},Da={class:"directory-toolbar"},Fa={class:"directory-sort-group",role:"group","aria-label":"Sort apps"},Ma={key:0,class:"directory-empty"},Oa={key:1,class:"directory-error"},xa={key:2,class:"directory-loading"},Ra={key:3,class:"directory-empty"},Ga={key:4,class:"directory-grid"},ja={class:"directory-card-top"},Ha=["src","alt"],Ba={key:1,class:"directory-card-fallback"},Ka={class:"directory-card-main"},za={class:"directory-card-title-row"},Va={class:"directory-card-title"},Wa={key:0,class:"directory-badge is-muted"},Ja={key:1,class:"directory-badge"},qa={class:"directory-card-meta"},Za={key:0,class:"directory-card-description"},Qa={class:"directory-chip-row"},Ya={key:0,class:"directory-chip"},Xa={class:"directory-card-actions"},el=["disabled","onClick"],tl=["onClick"],sl=["disabled","onClick"],ol={key:3,class:"directory-section"},al={class:"directory-toolbar"},ll={class:"directory-sort-group",role:"group","aria-label":"Sort Composio connectors"},il={key:0,class:"directory-error"},nl={key:1,class:"directory-loading"},rl={key:2,class:"directory-empty"},cl={class:"directory-empty-copy"},dl={class:"directory-card-actions"},ul=["disabled"],yl={key:3,class:"directory-empty"},vl={class:"directory-empty-copy"},pl={class:"directory-card-actions"},hl=["disabled"],ml={key:4,class:"directory-section composio-section"},gl={class:"directory-card directory-card-wide composio-status-card"},kl={class:"directory-card-top"},fl={class:"directory-card-main"},bl={class:"directory-card-meta"},_l={class:"directory-card-description"},Cl={class:"directory-chip-row"},wl={key:0,class:"directory-chip"},$l={key:1,class:"directory-chip"},Sl={key:2,class:"directory-chip"},Il={class:"directory-card-actions"},Al={key:0,class:"directory-empty"},Pl={key:1,class:"directory-grid"},Ll={class:"directory-card-top"},El=["src","alt"],Tl={key:1,class:"directory-card-fallback composio-fallback"},Ul={class:"directory-card-main"},Nl={class:"directory-card-title-row"},Dl={class:"directory-card-title"},Fl={key:0,class:"directory-badge"},Ml={key:1,class:"directory-badge"},Ol={class:"directory-card-meta"},xl={key:0,class:"directory-card-description"},Rl={class:"directory-chip-row"},Gl={class:"directory-chip"},jl={key:0,class:"directory-chip"},Hl={key:1,class:"directory-chip"},Bl={class:"directory-card-actions"},Kl=["onClick"],zl=["disabled","onClick"],Vl=["disabled","onClick"],Wl={key:2,class:"directory-section-actions"},Jl=["disabled"],ql={key:4,class:"directory-section"},Zl={class:"skills-embedded-section"},Ql={class:"skills-embedded-title"},Yl={key:0,class:"skills-embedded-body"},Xl={key:0,class:"directory-empty"},ei={key:1,class:"directory-error"},ti={key:2,class:"directory-loading"},si={key:3,class:"directory-empty"},oi={key:4,class:"mcp-skill-grid"},ai=["onClick"],li={class:"mcp-skill-card-top"},ii={class:"mcp-skill-avatar-fallback"},ni={class:"mcp-skill-info"},ri={class:"mcp-skill-header"},ci={class:"mcp-skill-name"},di={class:"mcp-skill-meta"},ui={key:0,class:"directory-mcp-detail"},yi={key:0},vi={class:"directory-mini-list"},pi={key:1},hi={class:"directory-mini-list"},mi={class:"directory-modal"},gi={class:"directory-modal-header"},ki={class:"directory-card-top"},fi=["src","alt"],bi={key:1,class:"directory-card-fallback"},_i={class:"directory-card-main"},Ci={class:"directory-modal-title"},wi={class:"directory-card-meta"},$i={class:"directory-modal-body"},Si={key:0,class:"directory-error"},Ii={key:1,class:"directory-loading"},Ai={key:0,class:"directory-detail-description"},Pi={key:1,class:"directory-detail-block"},Li={class:"directory-chip-row"},Ei={class:"directory-detail-grid"},Ti={key:0,class:"directory-detail-block"},Ui=["onClick"],Ni={key:1,class:"directory-detail-block"},Di={class:"directory-mini-list"},Fi={key:2,class:"directory-detail-block"},Mi=["disabled","onClick"],Oi={key:2,class:"directory-screenshots"},xi=["src"],Ri={key:3,class:"directory-auth-panel"},Gi=["onClick"],ji={class:"directory-modal-footer"},Hi=["disabled"],Bi=["disabled"],Ki=["disabled"],zi=["disabled"],Vi={class:"directory-modal"},Wi={class:"directory-modal-header"},Ji={class:"directory-card-top"},qi=["src","alt"],Zi={key:1,class:"directory-card-fallback composio-fallback"},Qi={class:"directory-card-main"},Yi={class:"directory-modal-title"},Xi={class:"directory-card-meta"},en={class:"directory-modal-body"},tn={key:0,class:"directory-error"},sn={key:1,class:"directory-loading"},on={key:0,class:"directory-detail-description"},an={class:"directory-detail-grid"},ln={class:"directory-detail-block"},nn={class:"directory-chip-row"},rn={class:"directory-chip"},cn={key:0,class:"directory-chip"},dn={key:1,class:"directory-chip"},un={key:2,class:"directory-chip"},yn={class:"directory-detail-block"},vn={key:0,class:"directory-mini-list"},pn={key:1},hn={class:"directory-card-meta"},mn={key:1,class:"directory-detail-block"},gn={class:"directory-card-meta"},kn={class:"directory-modal-footer"},fn=["disabled"],bn=["disabled"],_n="/Users/igor/.codex/skills/shared_skills/composio-cli/SKILL.md",Cn=50,Ft=100,wn=Fe({__name:"DirectoryHub",props:{cwd:{},threadId:{},tryInFlightKey:{}},emits:["skills-changed","try-item"],setup(y,{emit:q}){const g=[[/^gmail$/i,3e4],[/^google calendar$/i,29500],[/^outlook( email| calendar)?$/i,29e3],[/^google drive$/i,28500],[/^google docs$/i,28e3],[/^google sheets$/i,27500],[/^dropbox$/i,27e3],[/^box$/i,26500],[/^slack$/i,26e3],[/^notion$/i,25500],[/^canva$/i,25e3],[/^figma$/i,24500],[/^github$/i,24e3],[/^trello$/i,23500],[/^asana$/i,23e3],[/^basecamp$/i,22500],[/^clickup$/i,22e3],[/^linear$/i,21500],[/^gitlab( issues)?$/i,21e3],[/^jira$/i,20500],[/^zapier$/i,2e4],[/^hubspot$/i,19500],[/^salesforce$/i,19e3],[/^netlify$/i,18500],[/^vercel$/i,18e3],[/^(spotify|youtube|netflix|hulu|disney|booking|expedia|uber|airbnb)$/i,17500]],L=[[/(email|mail|inbox|calendar|event|availability|contact|message|chat)/i,450],[/(drive|document|docs|sheet|slide|file|storage|pdf|note|page)/i,380],[/(image|design|presentation|diagram|video|audio|photo|media|music)/i,320],[/(travel|flight|hotel|restaurant|recipe|food|shopping|delivery|map|weather)/i,260],[/(learn|education|study|language|health|fitness|finance|budget)/i,220],[/(task|project|issue|repository|deploy|database|crm|sales|support)/i,120]],N=[[/(computer use|github|gitlab|linear|slack|notion|browser|web|filesystem|terminal)/i,120],[/(calendar|email|drive|docs|design|deploy|project|issue|search|database)/i,55]],O=[[/(github|gitlab|linear|slack|notion|filesystem|browser|computer|web|postgres|sqlite|database)/i,120],[/(search|drive|docs|calendar|terminal|shell|deploy|cloud|memory)/i,55]],j=[[/(gmail|google calendar|google docs|google sheets|google drive|github|slack|notion|linear|outlook|supabase)/i,140],[/(email|calendar|document|sheet|drive|repo|issue|message|project|database|crm|deploy)/i,50]],_=y,I=q,x=[{id:"plugins",label:"Plugins",subtitle:"Plugins make Codex work your way."},{id:"apps",label:"Apps",subtitle:"Connect Codex to external apps and services."},{id:"composio",label:"Composio",subtitle:"Browse Composio connectors, auth state, and ready-to-try integrations."},{id:"skills",label:"Skills",subtitle:"MCPs first, then installed skills and GitHub sync state."}],m=u("plugins"),H=u(new Set),V=u(!1),Y=u([]),w=u([]),D=u(null),R=u([]),v=u(null),p=u(0),Z=u([]),B=u("popular"),k=u("popular"),P=u("popular"),T=u(""),W=u(""),J=u(""),le=u(!1),oe=u(!1),Q=u(!1),te=u(!1),ie=u(!1),ae=u(!0),X=u(""),ye=u(""),ve=u(""),pe=u(""),f=u(null),E=u(null),he=u(!1),me=u(!1),ne=u(""),b=u(null),re=u(!1),ge=u(!1),ce=u(""),de=u(!1),U=u(!1),d=u(!1),C=u(""),$=u(""),ee=u([]),Ae=u(""),Pe=u(new Set),_e=u(null);let Oe=null,xe=null,Re=!1;const Ot=S(()=>x.find(e=>e.id===m.value)??x[0]),Qe=S(()=>!V.value||["plugin/list","plugin/read","plugin/install","plugin/uninstall"].every(e=>H.value.has(e))),Ye=S(()=>!V.value||H.value.has("app/list")),Ge=S(()=>!V.value||H.value.has("mcpServerStatus/list")),xt=S(()=>H.value.has("config/mcpServer/reload")),Xe=S(()=>H.value.has("mcpServer/oauth/login")),ue=S(()=>(_.tryInFlightKey??"").length>0),et=S(()=>m.value==="plugins"?le.value:m.value==="apps"?oe.value:m.value==="composio"?Q.value:m.value==="skills"?te.value:!1),tt=S(()=>{var e,t,n;return((e=E.value)==null?void 0:e.description)||((t=E.value)==null?void 0:t.summary.longDescription)||((n=E.value)==null?void 0:n.summary.description)||""}),st=S(()=>{var t;const e=(t=E.value)==null?void 0:t.summary;return e?[...e.screenshotUrls,...e.screenshots.map(Le)].filter(Boolean):[]}),ot=S(()=>zt(Zt(Wt(Y.value,T.value),B.value),B.value,T.value)),at=S(()=>Vt(Qt(Jt(w.value,W.value),k.value),k.value,W.value)),lt=S(()=>Yt(qt(R.value,J.value),P.value)),je=S(()=>Xt(Z.value)),it=S(()=>v.value!==null),Rt=S(()=>new Map(Z.value.map(e=>[e.name,e]))),Gt=S(()=>{const e=D.value;return e&&[e.email||e.defaultOrgName,e.defaultOrgId?`org ${e.defaultOrgId}`:"",e.baseUrl||""].filter(Boolean).join(" · ")||"Composio CLI shares the login and connections from this machine."});function He(e){return e.trim().toLowerCase()}function Be(e,t){const n=He(t);return n?e.some(h=>h==null?void 0:h.toLowerCase().includes(n)):!0}function Ce(e,t){return t.reduce((n,[h,z])=>n+(h.test(e)?z:0),0)}function nt(e){return e.replace(/\s+\((synced|legacy)\)\s*$/iu,"").replace(/\s+\(.*?\)\s*$/u,"").trim()}function jt(e){return e==="DEFAULT_OAI_CATALOG"?"OpenAI catalog":e==="ECOSYSTEM_DIRECTORY"?"Ecosystem directory":e?e.replace(/_/gu," ").toLowerCase().replace(/\b\w/gu,t=>t.toUpperCase()):""}function Ht(e){return e.developer||jt(e.distributionChannel)||"App"}function Ke(e){var t;return((t=Rt.value.get(e))==null?void 0:t.authStatus)??"unknown"}function rt(e){const t=Ke(e);return t==="oAuth"?"Logged in":t==="bearerToken"?"Bearer token":t==="notLoggedIn"?"Login required":t==="unsupported"?"Auth unsupported":"Status unknown"}function Bt(e){const t=Ke(e);return t==="oAuth"||t==="bearerToken"?"is-ok":t==="notLoggedIn"?"is-warning":"is-muted"}function Kt(e){return e==="oAuth"||e==="bearerToken"?"mcp-skill-badge-ok":e==="notLoggedIn"?"mcp-skill-badge-warning":"mcp-skill-badge-muted"}function ct(e){return Xe.value&&Ke(e)==="notLoggedIn"}function zt(e,t,n){return t==="popular"&&He(n).length===0?e.slice(0,Ft):e}function Vt(e,t,n){if(t!=="popular"||He(n).length>0)return e;const h=new Set,z=[];for(const we of e){const $e=nt(we.name).toLowerCase();if(!h.has($e)&&(h.add($e),z.push(we),z.length>=Ft))break}return z}function Wt(e,t){return e.filter(n=>Be([n.displayName,n.name,n.description,n.developerName,n.category,n.marketplaceDisplayName,...n.capabilities],t))}function Jt(e,t){return e.filter(n=>Be([n.name,n.description,n.developer,n.category,n.distributionChannel,...n.pluginDisplayNames],t))}function qt(e,t){return e.filter(n=>Be([n.name,n.slug,n.description,...n.authModes,...n.connectionStatuses],t))}function dt(e){return(e.installed?500:0)+(e.enabled?40:0)+(e.developerName.toLowerCase().includes("openai")?140:0)+(e.sourceType==="local"?80:0)+e.capabilities.length*12+Ce(`${e.displayName} ${e.name} ${e.description} ${e.category}`,N)}function ut(e){const t=nt(e.name);return(e.isAccessible?1e4:0)+Ce(t,g)+(e.pluginDisplayNames.length>0?260:0)+(e.distributionChannel==="DEFAULT_OAI_CATALOG"?120:0)+(e.isEnabled?40:0)+(e.installUrl?20:0)+Ce(`${e.name} ${e.description} ${e.category} ${e.pluginDisplayNames.join(" ")}`,L)-e.catalogRank*.001}function yt(e){return(e.authStatus==="oAuth"?180:0)+(e.authStatus==="bearerToken"?140:0)+Math.min(e.tools.length,50)*6+Math.min(e.resources.length+e.resourceTemplates.length,30)*3+Ce(e.name,O)}function vt(e){return e.activeCount*1e3+(e.isNoAuth?300:0)+e.toolsCount*3+e.triggersCount*4+Ce(`${e.name} ${e.slug} ${e.description}`,j)}function ke(e){return e.activeCount>0?0:e.totalConnections>0?1:e.isNoAuth?2:3}function Zt(e,t){return t==="name"?[...e].sort((n,h)=>n.displayName.localeCompare(h.displayName)):t==="date"?[...e]:[...e].sort((n,h)=>dt(h)-dt(n)||n.displayName.localeCompare(h.displayName))}function Qt(e,t){return t==="name"?[...e].sort((n,h)=>n.name.localeCompare(h.name)):t==="date"?[...e].sort((n,h)=>n.catalogRank-h.catalogRank):[...e].sort((n,h)=>ut(h)-ut(n)||n.name.localeCompare(h.name))}function Yt(e,t){return t==="name"?[...e].sort((n,h)=>ke(n)-ke(h)||n.name.localeCompare(h.name)):t==="date"?[...e].sort((n,h)=>ke(n)-ke(h)):[...e].sort((n,h)=>ke(n)-ke(h)||vt(h)-vt(n)||n.name.localeCompare(h.name))}function Xt(e,t){return[...e].sort((n,h)=>yt(h)-yt(n)||n.name.localeCompare(h.name))}function M(e,t="success"){_e.value={text:e,type:t},Oe&&clearTimeout(Oe),Oe=setTimeout(()=>{_e.value=null},3e3)}function Le(e){return e?e.startsWith("connectors://")?`/codex-api/connector-logo?src=${encodeURIComponent(e)}`:/^https?:\/\//i.test(e)||e.startsWith("data:")?e:e.startsWith("/")?`/codex-local-image?path=${encodeURIComponent(e)}`:"":""}function Ee(e){return e?e.logoUrl||Le(e.logoPath)||e.composerIconUrl||Le(e.composerIconPath):""}function pt(e){return Le(e.logoUrlDark||e.logoUrl)}function ht(e){return e.activeCount>0?`${e.activeCount} connected ${e.activeCount===1?"account":"accounts"}`:e.isNoAuth?"No auth required":e.connectionStatuses.length>0?e.connectionStatuses.join(", "):e.authModes.join(", ")||"Connection required"}function es(e){return e.isNoAuth||e.activeCount>0}function Te(e){return e.isNoAuth?"":e.activeCount>0?"Manage":e.totalConnections>0?"Reconnect":"Connect"}function ts(e){const t=e.trim().toUpperCase();return t==="ACTIVE"?"Active":t==="EXPIRED"?"Expired":t==="FAILED"?"Failed":t==="INITIATED"?"Pending":t||"Unknown"}function ss(e){const t=e.trim().toUpperCase();return t==="ACTIVE"?"is-ok":t==="INITIATED"?"is-warning":t==="EXPIRED"||t==="FAILED"?"is-error":"is-muted"}function os(e){return`app:${e.id}:`}function as(e){ue.value||I("try-item",{kind:"app",name:e.id,displayName:e.name})}function ls(e){return`plugin:${e.name}:`}function mt(e){return`composio:${e}:`}function is(e){ue.value||I("try-item",{kind:"plugin",name:e.name,displayName:e.displayName})}function gt(e){return es(e)}function ns(e,t=[]){const n=t.find(z=>z.status==="ACTIVE"&&!z.isDisabled),h=n!=null&&n.wordId?` If there are multiple accounts, prefer \`${n.wordId}\`.`:"";return`Use the Composio CLI skill with the ${e.name} connector (${e.slug}). Start by listing what it can do here, mention the current connection status, and suggest one safe command I can run now.${h}`}function kt(e,t=[]){ue.value||I("try-item",{kind:"composio",name:e.slug,displayName:e.name,prompt:ns(e,t),attachedSkills:[{name:"composio-cli",path:_n}]})}function se(e){const t=e.trim();/^https?:\/\//i.test(t)&&window.location.assign(t)}function rs(e){const t=e.find(n=>n.needsAuth&&n.installUrl.trim().length>0);return t?(se(t.installUrl),!0):!1}function cs(e){return e.brandColor?{backgroundColor:e.brandColor,color:"#fff"}:{}}async function ds(){try{H.value=new Set(await Ps())}catch{H.value=new Set}finally{V.value=!0}}async function fe(){var e;if(Qe.value){le.value=!0,X.value="";try{const t=(e=_.cwd)==null?void 0:e.trim();Y.value=await Ls(t?[t]:void 0)}catch(t){X.value=t instanceof Error?t.message:"Failed to load plugins"}finally{le.value=!1}}}async function ft(){var e;if(Ye.value){oe.value=!0,ye.value="";try{w.value=await Es(((e=_.threadId)==null?void 0:e.trim())||void 0)}catch(t){ye.value=t instanceof Error?t.message:"Failed to load apps"}finally{oe.value=!1}}}async function be(e=!1){if(Q.value){Re=!0;return}Q.value=!0,ve.value="";try{const t=await Ts();if(D.value=t,!t.available||!t.authenticated){R.value=[],v.value=null,p.value=0;return}const n=e?v.value:null,h=await Us(J.value,n,Cn);R.value=e?[...R.value,...h.data]:h.data,v.value=h.nextCursor,p.value=h.total}catch(t){ve.value=t instanceof Error?t.message:"Failed to load Composio connectors",R.value=[],v.value=null,p.value=0}finally{Q.value=!1,Re&&(Re=!1,be())}}async function us(){!it.value||Q.value||await be(!0)}async function bt(){if(Ge.value){te.value=!0,pe.value="";try{Z.value=await Dt()}catch(e){pe.value=e instanceof Error?e.message:"Failed to load MCP servers"}finally{te.value=!1}}}async function _t(){var e;if(!(!Ge.value||!((e=E.value)!=null&&e.mcpServers.length)))try{Z.value=await Dt()}catch{}}function Ct(){m.value==="plugins"&&fe(),m.value==="apps"&&ft(),m.value==="composio"&&be(),m.value==="skills"&&(xt.value?bs():bt())}async function wt(e){f.value=e,E.value=null,ne.value="",ee.value=[],he.value=!0,me.value=!0;try{E.value=await Ns(e),f.value=E.value.summary,await _t()}catch(t){ne.value=t instanceof Error?t.message:"Failed to load plugin"}finally{me.value=!1}}async function $t(e){if(!Xe.value)return!1;Ae.value=e;try{const t=await Ds(e);return t.authorizationUrl?(se(t.authorizationUrl),!0):(M(`No login URL returned for ${e}`,"error"),!1)}catch(t){return M(t instanceof Error?t.message:`Failed to start login for ${e}`,"error"),!1}finally{Ae.value=""}}async function ys(e){await _t();const t=e.mcpServers.find(n=>ct(n));t&&await $t(t)}function ze(){he.value=!1}async function St(e){re.value=!0,ge.value=!0,ce.value="",b.value=null;try{b.value=await Fs(e)}catch(t){ce.value=t instanceof Error?t.message:"Failed to load Composio connector"}finally{ge.value=!1}}function It(){re.value=!1}async function vs(e){var t;$.value=e.slug;try{const n=await Bs(e.slug);if(!n.redirectUrl){M(`No login URL returned for ${e.name}`,"error");return}se(n.redirectUrl),M(`Opened ${e.name} authorization`),await be(),re.value&&((t=b.value)==null?void 0:t.connector.slug)===e.slug&&await St(e.slug)}catch(n){M(n instanceof Error?n.message:`Failed to connect ${e.name}`,"error")}finally{$.value=""}}async function At(e){var t;if(e.activeCount>0&&((t=D.value)!=null&&t.webUrl)){se(D.value.webUrl);return}await vs(e)}async function ps(){U.value=!0;const e=window.open("about:blank","_blank");e&&(e.opener=null);try{const t=await Ms();t.loginUrl&&e?e.location.href=t.loginUrl:t.loginUrl?se(t.loginUrl):e==null||e.close(),M("Composio CLI login started")}catch(t){e==null||e.close(),M(t instanceof Error?t.message:"Failed to start Composio login","error")}finally{U.value=!1}}async function hs(){de.value=!0;try{await Os(),M("Composio CLI installed"),await be()}catch(e){M(e instanceof Error?e.message:"Failed to install Composio CLI","error")}finally{de.value=!1}}async function ms(){if(f.value){d.value=!0;try{const e=await xs(f.value);ee.value=e.appsNeedingAuth,M(`${f.value.displayName} plugin installed`);const t=rs(e.appsNeedingAuth);await fe();const n=Y.value.find(h=>{var z;return h.id===((z=f.value)==null?void 0:z.id)});n&&(await wt(n),!t&&E.value&&await ys(E.value))}catch(e){M(e instanceof Error?e.message:"Failed to install plugin","error")}finally{d.value=!1}}}async function gs(){if(f.value){d.value=!0;try{const e=f.value.displayName;await Rs(f.value.id),M(`${e} plugin uninstalled`),ze(),await fe()}catch(e){M(e instanceof Error?e.message:"Failed to uninstall plugin","error")}finally{d.value=!1}}}async function ks(){if(f.value){d.value=!0;try{const e=!f.value.enabled;await Gs(f.value.id,e),f.value={...f.value,enabled:e},E.value&&(E.value={...E.value,summary:{...E.value.summary,enabled:e}}),M(`${f.value.displayName} plugin ${e?"enabled":"disabled"}`),await fe()}catch(e){M(e instanceof Error?e.message:"Failed to update plugin","error")}finally{d.value=!1}}}async function fs(e){C.value=e.id;try{const t=!e.isEnabled;await js(e.id,t),w.value=w.value.map(n=>n.id===e.id?{...n,isEnabled:t}:n),M(`${e.name} app ${t?"enabled":"disabled"}`)}catch(t){M(t instanceof Error?t.message:"Failed to update app","error")}finally{C.value=""}}async function bs(){ie.value=!0;try{await Hs(),await bt(),M("MCP servers reloaded")}catch(e){M(e instanceof Error?e.message:"Failed to reload MCP servers","error")}finally{ie.value=!1}}function _s(e){const t=new Set(Pe.value);t.has(e)?t.delete(e):t.add(e),Pe.value=t}return Se(m,()=>Ct()),Se(J,()=>{m.value==="composio"&&(R.value=[],v.value=null,p.value=0,xe&&clearTimeout(xe),xe=setTimeout(()=>{be()},250))}),Se(()=>_.cwd,()=>{m.value==="plugins"&&fe()}),Se(()=>_.threadId,()=>{m.value==="apps"&&ft()}),Mt(async()=>{await ds(),await fe()}),(e,t)=>{var n,h,z,we,$e,Pt,Lt,Et,Tt,Ut;return o(),l("div",ia,[s("div",na,[s("div",null,[t[20]||(t[20]=s("h2",{class:"directory-title"},"Skills & Apps",-1)),s("p",ra,i(Ot.value.subtitle),1)]),s("div",ca,[s("button",{class:"directory-refresh",type:"button",disabled:et.value,onClick:Ct},i(et.value?"Refreshing...":"Refresh"),9,da)])]),s("div",ua,[(o(),l(G,null,K(x,a=>s("button",{key:a.id,class:F(["directory-tab",{"is-active":m.value===a.id}]),type:"button",role:"tab","aria-selected":m.value===a.id,onClick:A=>m.value=a.id},i(a.label),11,ya)),64))]),_e.value?(o(),l("div",{key:0,class:F(["directory-toast",{"is-error":_e.value.type==="error"}])},i(_e.value.text),3)):c("",!0),m.value==="plugins"?(o(),l("section",va,[s("div",pa,[Ve(s("input",{"onUpdate:modelValue":t[0]||(t[0]=a=>T.value=a),class:"directory-search",type:"search",placeholder:"Search plugins...","aria-label":"Search plugins"},null,512),[[We,T.value]]),s("div",ha,[s("button",{class:F(["directory-sort-button",{"is-active":B.value==="popular"}]),type:"button",onClick:t[1]||(t[1]=a=>B.value="popular")}," Popular ",2),s("button",{class:F(["directory-sort-button",{"is-active":B.value==="name"}]),type:"button",onClick:t[2]||(t[2]=a=>B.value="name")}," A-Z ",2),s("button",{class:F(["directory-sort-button",{"is-active":B.value==="date"}]),type:"button",onClick:t[3]||(t[3]=a=>B.value="date")}," Date ",2)])]),Qe.value?X.value?(o(),l("div",ga,i(X.value),1)):le.value?(o(),l("div",ka,"Loading plugins...")):ot.value.length===0?(o(),l("div",fa,"No plugins found.")):(o(),l("div",ba,[(o(!0),l(G,null,K(ot.value,a=>(o(),l("button",{key:a.id,class:F(["directory-card",{"is-disabled":a.installed&&!a.enabled}]),type:"button",onClick:A=>wt(a)},[s("div",Ca,[Ee(a)?(o(),l("img",{key:0,class:"directory-card-icon",src:Ee(a),alt:a.displayName,loading:"lazy"},null,8,wa)):(o(),l("div",{key:1,class:"directory-card-fallback",style:Is(cs(a))},i(a.displayName.charAt(0)),5)),s("div",$a,[s("div",Sa,[s("span",Ia,i(a.displayName),1),a.installed&&!a.enabled?(o(),l("span",Aa,"Disabled")):a.installed?(o(),l("span",Pa,"Installed")):c("",!0)]),s("span",La,i(a.developerName||a.marketplaceDisplayName||a.marketplaceName||"Plugin"),1)])]),a.description?(o(),l("p",Ea,i(a.description),1)):c("",!0),s("div",Ta,[a.category?(o(),l("span",Ua,i(a.category),1)):c("",!0),(o(!0),l(G,null,K(a.capabilities.slice(0,2),A=>(o(),l("span",{key:A,class:"directory-chip"},i(A),1))),128))])],10,_a))),128))])):(o(),l("div",ma," Plugin APIs unavailable in this Codex CLI. Update Codex CLI to use plugin catalog features. "))])):m.value==="apps"?(o(),l("section",Na,[s("div",Da,[Ve(s("input",{"onUpdate:modelValue":t[4]||(t[4]=a=>W.value=a),class:"directory-search",type:"search",placeholder:"Search apps...","aria-label":"Search apps"},null,512),[[We,W.value]]),s("div",Fa,[s("button",{class:F(["directory-sort-button",{"is-active":k.value==="popular"}]),type:"button",onClick:t[5]||(t[5]=a=>k.value="popular")}," Popular ",2),s("button",{class:F(["directory-sort-button",{"is-active":k.value==="name"}]),type:"button",onClick:t[6]||(t[6]=a=>k.value="name")}," A-Z ",2),s("button",{class:F(["directory-sort-button",{"is-active":k.value==="date"}]),type:"button",onClick:t[7]||(t[7]=a=>k.value="date")}," Date ",2)])]),Ye.value?ye.value?(o(),l("div",Oa,i(ye.value),1)):oe.value?(o(),l("div",xa,"Loading apps...")):at.value.length===0?(o(),l("div",Ra,"No apps found.")):(o(),l("div",Ga,[(o(!0),l(G,null,K(at.value,a=>(o(),l("article",{key:a.id,class:"directory-card"},[s("div",ja,[pt(a)?(o(),l("img",{key:0,class:"directory-card-icon",src:pt(a),alt:a.name,loading:"lazy"},null,8,Ha)):(o(),l("div",Ba,i(a.name.charAt(0)),1)),s("div",Ka,[s("div",za,[s("span",Va,i(a.name),1),a.isEnabled?a.isAccessible?(o(),l("span",Ja,"Connected")):c("",!0):(o(),l("span",Wa,"Disabled"))]),s("span",qa,i(Ht(a)),1)])]),a.description?(o(),l("p",Za,i(a.description),1)):c("",!0),s("div",Qa,[a.category?(o(),l("span",Ya,i(a.category),1)):c("",!0),(o(!0),l(G,null,K(a.pluginDisplayNames.slice(0,2),A=>(o(),l("span",{key:A,class:"directory-chip"},i(A),1))),128))]),s("div",Xa,[s("button",{class:"directory-action",type:"button",disabled:C.value===a.id,onClick:A=>fs(a)},i(a.isEnabled?"Disable":"Enable"),9,el),a.installUrl?(o(),l("button",{key:0,class:"directory-action-link",type:"button",onClick:A=>se(a.installUrl)},i(a.isAccessible?"Manage":"Login"),9,tl)):c("",!0),a.isAccessible&&a.isEnabled?(o(),l("button",{key:1,class:"directory-action",type:"button",disabled:ue.value,onClick:A=>as(a)},i(_.tryInFlightKey===os(a)?"Starting...":"Try it!"),9,sl)):c("",!0)])]))),128))])):(o(),l("div",Ma," Apps APIs unavailable in this Codex CLI. Update Codex CLI to manage apps. "))])):m.value==="composio"?(o(),l("section",ol,[s("div",al,[Ve(s("input",{"onUpdate:modelValue":t[8]||(t[8]=a=>J.value=a),class:"directory-search",type:"search",placeholder:"Search Composio connectors...","aria-label":"Search Composio connectors"},null,512),[[We,J.value]]),s("div",ll,[s("button",{class:F(["directory-sort-button",{"is-active":P.value==="popular"}]),type:"button",onClick:t[9]||(t[9]=a=>P.value="popular")}," Popular ",2),s("button",{class:F(["directory-sort-button",{"is-active":P.value==="name"}]),type:"button",onClick:t[10]||(t[10]=a=>P.value="name")}," A-Z ",2),s("button",{class:F(["directory-sort-button",{"is-active":P.value==="date"}]),type:"button",onClick:t[11]||(t[11]=a=>P.value="date")}," Date ",2)])]),ve.value?(o(),l("div",il,i(ve.value),1)):Q.value?(o(),l("div",nl,"Loading Composio connectors...")):(n=D.value)!=null&&n.available?D.value.authenticated?(o(),l("div",ml,[s("article",gl,[s("div",kl,[t[24]||(t[24]=s("div",{class:"directory-card-fallback composio-fallback"},"C",-1)),s("div",fl,[t[23]||(t[23]=s("div",{class:"directory-card-title-row"},[s("span",{class:"directory-card-title"},"Composio workspace"),s("span",{class:"directory-badge"},"Connected")],-1)),s("span",bl,i(D.value.email||D.value.defaultOrgName||"Authenticated"),1)])]),s("p",_l,i(Gt.value),1),s("div",Cl,[D.value.defaultOrgName?(o(),l("span",wl,i(D.value.defaultOrgName),1)):c("",!0),D.value.cliVersion?(o(),l("span",$l,"CLI "+i(D.value.cliVersion),1)):c("",!0),R.value.length?(o(),l("span",Sl," Showing "+i(R.value.length)+i(p.value?` / ${p.value}`:"")+" connectors ",1)):c("",!0)]),s("div",Il,[s("button",{class:"directory-action-link",type:"button",onClick:t[12]||(t[12]=a=>se(D.value.webUrl))}," Open dashboard ")])]),lt.value.length===0?(o(),l("div",Al,"No Composio connectors found.")):(o(),l("div",Pl,[(o(!0),l(G,null,K(lt.value,a=>(o(),l("article",{key:a.slug,class:"directory-card"},[s("div",Ll,[a.logoUrl?(o(),l("img",{key:0,class:"directory-card-icon",src:a.logoUrl,alt:a.name,loading:"lazy"},null,8,El)):(o(),l("div",Tl,i(a.name.charAt(0)),1)),s("div",Ul,[s("div",Nl,[s("span",Dl,i(a.name),1),a.activeCount>0?(o(),l("span",Fl,"Connected")):a.isNoAuth?(o(),l("span",Ml,"No auth")):c("",!0)]),s("span",Ol,i(ht(a)),1)])]),a.description?(o(),l("p",xl,i(a.description),1)):c("",!0),s("div",Rl,[s("span",Gl,i(a.toolsCount)+" tools",1),a.triggersCount>0?(o(),l("span",jl,i(a.triggersCount)+" triggers",1)):c("",!0),a.authModes.length>0?(o(),l("span",Hl,i(a.authModes.join(", ")),1)):c("",!0)]),s("div",Bl,[s("button",{class:"directory-action",type:"button",onClick:A=>St(a.slug)}," Details ",8,Kl),Te(a)?(o(),l("button",{key:0,class:"directory-action-link",type:"button",disabled:$.value===a.slug,onClick:A=>At(a)},i($.value===a.slug?"Opening...":Te(a)),9,zl)):c("",!0),gt(a)?(o(),l("button",{key:1,class:"directory-action primary",type:"button",disabled:ue.value,onClick:A=>kt(a)},i(_.tryInFlightKey===mt(a.slug)?"Starting...":"Try it!"),9,Vl)):c("",!0)])]))),128))])),it.value?(o(),l("div",Wl,[s("button",{class:"directory-action",type:"button",disabled:Q.value,onClick:us},i(Q.value?"Loading...":"Load more"),9,Jl)])):c("",!0)])):(o(),l("div",yl,[s("div",vl,[t[22]||(t[22]=s("p",{class:"directory-empty-text"},"Composio CLI is installed but not logged in.",-1)),s("div",pl,[s("button",{class:"directory-action primary",type:"button",disabled:U.value,onClick:ps},i(U.value?"Opening...":"Login"),9,hl)])])])):(o(),l("div",rl,[s("div",cl,[t[21]||(t[21]=s("p",{class:"directory-empty-text"},"Composio CLI is not installed in this environment.",-1)),s("div",dl,[s("button",{class:"directory-action primary",type:"button",disabled:de.value,onClick:hs},i(de.value?"Installing...":"Install"),9,ul)])])]))])):m.value==="skills"?(o(),l("section",ql,[Ie(la,{"try-in-flight-key":_.tryInFlightKey,onSkillsChanged:t[14]||(t[14]=a=>I("skills-changed")),onTryItem:t[15]||(t[15]=a=>I("try-item",a))},{"before-installed":As(()=>[s("div",Zl,[s("button",{class:"skills-embedded-toggle",type:"button",onClick:t[13]||(t[13]=a=>ae.value=!ae.value)},[s("span",Ql,"MCPs("+i(je.value.length)+")",1),s("span",{class:F(["skills-embedded-chevron",{"is-open":ae.value}])},"›",2)]),ae.value?(o(),l("div",Yl,[Ge.value?pe.value?(o(),l("div",ei,i(pe.value),1)):te.value?(o(),l("div",ti,"Loading MCP servers...")):je.value.length===0?(o(),l("div",si,"No MCP servers configured.")):(o(),l("div",oi,[(o(!0),l(G,null,K(je.value,a=>(o(),l("article",{key:a.name},[s("button",{class:"mcp-skill-card skill-card",type:"button",onClick:A=>_s(a.name)},[s("div",li,[s("div",ii,i(a.name.charAt(0)),1),s("div",ni,[s("div",ri,[s("span",ci,i(a.name),1),s("span",{class:F(["mcp-skill-badge",Kt(a.authStatus)])},i(rt(a.name)),3)]),t[25]||(t[25]=s("span",{class:"mcp-skill-owner"},"mcp",-1))]),s("span",{class:F(["mcp-skill-chevron",{"is-open":Pe.value.has(a.name)}])},"›",2)]),s("p",di,i(a.tools.length)+" tools · "+i(a.resources.length+a.resourceTemplates.length)+" resources",1),Pe.value.has(a.name)?(o(),l("div",ui,[a.tools.length>0?(o(),l("div",yi,[t[26]||(t[26]=s("h3",{class:"directory-mini-heading"},"Tools",-1)),s("p",vi,i(a.tools.map(A=>A.title||A.name).join(", ")),1)])):c("",!0),a.resources.length>0||a.resourceTemplates.length>0?(o(),l("div",pi,[t[27]||(t[27]=s("h3",{class:"directory-mini-heading"},"Resources",-1)),s("p",hi,i([...a.resources.map(A=>A.title||A.name||A.uri),...a.resourceTemplates.map(A=>A.title||A.name||A.uriTemplate)].join(", ")),1)])):c("",!0)])):c("",!0)],8,ai)]))),128))])):(o(),l("div",Xl," MCP status APIs unavailable in this Codex CLI. Update Codex CLI to inspect MCP servers. "))])):c("",!0)])]),_:1},8,["try-in-flight-key"])])):c("",!0),(o(),Ne(qe,{to:"body"},[he.value?(o(),l("div",{key:0,class:"directory-modal-overlay",onClick:Ue(ze,["self"])},[s("article",mi,[s("div",gi,[s("div",ki,[f.value&&Ee(f.value)?(o(),l("img",{key:0,class:"directory-card-icon",src:Ee(f.value),alt:f.value.displayName,loading:"lazy"},null,8,fi)):(o(),l("div",bi,i((h=f.value)==null?void 0:h.displayName.charAt(0)),1)),s("div",_i,[s("h3",Ci,i(((z=f.value)==null?void 0:z.displayName)||"Plugin"),1),s("span",wi,i(((we=f.value)==null?void 0:we.developerName)||(($e=f.value)==null?void 0:$e.marketplaceDisplayName)||((Pt=f.value)==null?void 0:Pt.marketplaceName)),1)])]),s("button",{class:"directory-modal-close",type:"button","aria-label":"Close plugin detail",onClick:ze},"Close")]),s("div",$i,[ne.value?(o(),l("div",Si,i(ne.value),1)):me.value?(o(),l("div",Ii,"Loading plugin...")):E.value?(o(),l(G,{key:2},[tt.value?(o(),l("p",Ai,i(tt.value),1)):c("",!0),E.value.summary.capabilities.length>0?(o(),l("div",Pi,[t[28]||(t[28]=s("h4",{class:"directory-detail-heading"},"Capabilities",-1)),s("div",Li,[(o(!0),l(G,null,K(E.value.summary.capabilities,a=>(o(),l("span",{key:a,class:"directory-chip"},i(a),1))),128))])])):c("",!0),s("div",Ei,[E.value.apps.length>0?(o(),l("div",Ti,[t[29]||(t[29]=s("h4",{class:"directory-detail-heading"},"Apps",-1)),(o(!0),l(G,null,K(E.value.apps,a=>(o(),l("div",{key:a.id,class:"directory-include-row"},[s("span",null,i(a.name),1),a.installUrl?(o(),l("button",{key:0,type:"button",onClick:A=>se(a.installUrl)},i(a.needsAuth?"Login":"Manage"),9,Ui)):c("",!0)]))),128))])):c("",!0),E.value.skills.length>0?(o(),l("div",Ni,[t[30]||(t[30]=s("h4",{class:"directory-detail-heading"},"Skills",-1)),s("p",Di,i(E.value.skills.map(a=>a.displayName||a.name).join(", ")),1)])):c("",!0),E.value.mcpServers.length>0?(o(),l("div",Fi,[t[31]||(t[31]=s("h4",{class:"directory-detail-heading"},"MCP servers",-1)),(o(!0),l(G,null,K(E.value.mcpServers,a=>(o(),l("div",{key:a,class:"directory-include-row"},[s("span",null,[De(i(a)+" ",1),s("span",{class:F(["directory-auth-status",Bt(a)])},i(rt(a)),3)]),ct(a)?(o(),l("button",{key:0,type:"button",disabled:Ae.value===a,onClick:A=>$t(a)},i(Ae.value===a?"Opening...":"Authenticate"),9,Mi)):c("",!0)]))),128))])):c("",!0)]),st.value.length>0?(o(),l("div",Oi,[(o(!0),l(G,null,K(st.value,a=>(o(),l("img",{key:a,src:a,alt:"",loading:"lazy"},null,8,xi))),128))])):c("",!0),ee.value.length>0?(o(),l("div",Ri,[t[32]||(t[32]=s("strong",null,"Apps needing auth",-1)),(o(!0),l(G,null,K(ee.value,a=>(o(),l("div",{key:a.id,class:"directory-include-row"},[s("span",null,i(a.name),1),a.installUrl?(o(),l("button",{key:0,type:"button",onClick:A=>se(a.installUrl)},"Login",8,Gi)):c("",!0)]))),128))])):c("",!0)],64)):c("",!0)]),s("div",ji,[f.value&&f.value.installed?(o(),l("button",{key:0,class:"directory-action danger",type:"button",disabled:d.value,onClick:gs},i(d.value?"Uninstalling...":"Uninstall"),9,Hi)):f.value?(o(),l("button",{key:1,class:"directory-action primary",type:"button",disabled:d.value||f.value.installPolicy==="NOT_AVAILABLE",onClick:ms},i(d.value?"Installing...":"Install"),9,Bi)):c("",!0),f.value&&f.value.installed?(o(),l("button",{key:2,class:"directory-action",type:"button",disabled:d.value,onClick:ks},i(f.value.enabled?"Disable":"Enable"),9,Ki)):c("",!0),f.value&&f.value.installed&&f.value.enabled?(o(),l("button",{key:3,class:"directory-action primary",type:"button",disabled:d.value||ue.value,onClick:t[16]||(t[16]=a=>is(f.value))},i(_.tryInFlightKey===ls(f.value)?"Starting...":"Try it!"),9,zi)):c("",!0)])])])):c("",!0)])),(o(),Ne(qe,{to:"body"},[re.value?(o(),l("div",{key:0,class:"directory-modal-overlay",onClick:Ue(It,["self"])},[s("article",Vi,[s("div",Wi,[s("div",Ji,[(Lt=b.value)!=null&&Lt.connector.logoUrl?(o(),l("img",{key:0,class:"directory-card-icon",src:b.value.connector.logoUrl,alt:b.value.connector.name,loading:"lazy"},null,8,qi)):(o(),l("div",Zi,i((Et=b.value)==null?void 0:Et.connector.name.charAt(0)),1)),s("div",Qi,[s("h3",Yi,i(((Tt=b.value)==null?void 0:Tt.connector.name)||"Composio"),1),s("span",Xi,i(b.value?ht(b.value.connector):"Connector"),1)])]),s("button",{class:"directory-modal-close",type:"button","aria-label":"Close Composio detail",onClick:It},"Close")]),s("div",en,[ce.value?(o(),l("div",tn,i(ce.value),1)):ge.value?(o(),l("div",sn,"Loading connector...")):b.value?(o(),l(G,{key:2},[b.value.connector.description?(o(),l("p",on,i(b.value.connector.description),1)):c("",!0),s("div",an,[s("div",ln,[t[33]||(t[33]=s("h4",{class:"directory-detail-heading"},"Overview",-1)),s("div",nn,[s("span",rn,i(b.value.connector.toolsCount)+" tools",1),b.value.connector.triggersCount>0?(o(),l("span",cn,i(b.value.connector.triggersCount)+" triggers",1)):c("",!0),b.value.connector.latestVersion?(o(),l("span",dn,"v"+i(b.value.connector.latestVersion),1)):c("",!0),b.value.connector.authModes.length>0?(o(),l("span",un,i(b.value.connector.authModes.join(", ")),1)):c("",!0)])]),s("div",yn,[t[34]||(t[34]=s("h4",{class:"directory-detail-heading"},"Connections",-1)),b.value.connections.length===0?(o(),l("div",vn," No linked accounts yet. ")):(o(),l("div",pn,[(o(!0),l(G,null,K(b.value.connections,a=>(o(),l("div",{key:a.id,class:"directory-include-row"},[s("span",null,[De(i(a.alias||a.wordId||a.id)+" ",1),s("span",{class:F(["directory-auth-status",ss(a.status)])},i(ts(a.status)),3)]),s("span",hn,i(a.authScheme||"Auth"),1)]))),128))]))])]),b.value.tools.length>0?(o(),l("div",mn,[t[35]||(t[35]=s("h4",{class:"directory-detail-heading"},"Useful tools",-1)),(o(!0),l(G,null,K(b.value.tools.slice(0,8),a=>(o(),l("div",{key:a.slug,class:"directory-include-row"},[s("span",null,i(a.name||a.slug),1),s("span",gn,i(a.slug),1)]))),128))])):c("",!0)],64)):c("",!0)]),s("div",kn,[b.value?(o(),l("button",{key:0,class:"directory-action-link",type:"button",onClick:t[17]||(t[17]=a=>se(b.value.dashboardUrl))}," Open dashboard ")):c("",!0),b.value&&Te(b.value.connector)?(o(),l("button",{key:1,class:"directory-action",type:"button",disabled:$.value===b.value.connector.slug,onClick:t[18]||(t[18]=a=>At(b.value.connector))},i($.value===((Ut=b.value)==null?void 0:Ut.connector.slug)?"Opening...":Te(b.value.connector)),9,fn)):c("",!0),b.value&>(b.value.connector)?(o(),l("button",{key:2,class:"directory-action primary",type:"button",disabled:ue.value,onClick:t[19]||(t[19]=a=>kt(b.value.connector,b.value.connections))},i(_.tryInFlightKey===mt(b.value.connector.slug)?"Starting...":"Try it!"),9,bn)):c("",!0)])])])):c("",!0)]))])}}}),Sn=Me(wn,[["__scopeId","data-v-846e4ef2"]]);export{Sn as default};
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import{_ as En,o as r,c as l,a as d,d as qs,u as Ks,r as b,w as Y,n as Ct,b as Gs,e as Zs,t as f,f as k,F as g,g as w,h as C,i as Xs,j as Q,I as Js,k as Ys,l as Qs,m as Pn,p as Ze,q as $t,s as Lt,v as ee,x as An,T as ei,y as L,z as ti,A as ni,B as si}from"./index-DzzwK-KG.js";const ii={},oi={xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 24 24","aria-hidden":"true"};function ai(M,be){return r(),l("svg",oi,[...be[0]||(be[0]=[d("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M8 16a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2zm-4 4a2 2 0 0 1-2-2V8m4 8h10"},null,-1)])])}const ri=En(ii,[["render",ai]]),li={key:0,class:"conversation-loading"},ci={key:1,class:"conversation-empty"},ui={key:0,class:"conversation-load-more"},di=["disabled"],hi=["data-role","data-message-type"],fi={key:0,class:"message-row","data-role":"system"},pi={class:"message-stack","data-role":"system"},mi=["onClick"],vi={class:"cmd-group-label"},ki={class:"cmd-status"},gi={class:"cmd-group-inner"},yi=["onClick"],_i={class:"cmd-label"},wi={class:"cmd-status"},bi={class:"cmd-output-inner"},xi=["textContent"],Ci=["onClick"],$i={class:"cmd-label"},Li={class:"cmd-status"},Ti={class:"cmd-output-inner"},Mi=["textContent"],Si=["data-role","data-message-type"],Ii=["data-role"],Pi=["data-role"],Ai={key:0,class:"file-change-summary-block"},Ei=["onClick"],Bi={class:"file-change-summary-label"},Fi={class:"file-change-summary-status"},Ri=["data-tone"],Hi={class:"file-change-panel-inner"},Wi={class:"file-change-list"},Oi=["data-operation"],zi=["title","onClick"],ji={key:0,class:"file-change-arrow"},Di=["title","onClick"],Vi={key:2,class:"file-change-delta"},Ni=["data-tone"],Ui=["data-role","data-message-type"],qi=["data-role"],Ki=["data-role"],Gi=["data-role"],Zi=["onClick"],Xi=["src","alt"],Ji={key:1,class:"message-file-attachments"},Yi=["href","title"],Qi=["data-role"],eo={key:0,class:"worked-separator-wrap","aria-live":"polite"},to=["onClick"],no={class:"worked-separator-text"},so={key:0,class:"worked-details"},io=["onClick"],oo={class:"cmd-label"},ao={class:"cmd-status"},ro={class:"cmd-output-inner"},lo=["textContent"],co=["data-streaming"],uo={class:"plan-card-header"},ho={key:0,class:"plan-card-badge"},fo=["innerHTML"],po={key:1,class:"plan-step-list"},mo=["data-status"],vo=["data-status"],ko=["innerHTML"],go=["innerHTML"],yo={key:3,class:"plan-card-actions"},_o=["onClick"],wo={key:0,class:"message-text"},bo={key:0},xo={key:1,class:"message-bold-text"},Co={key:2,class:"message-italic-text"},$o={key:3,class:"message-strikethrough-text"},Lo=["href","title"],To=["href","title"],Mo={key:6,class:"message-inline-code"},So={key:0},Io={key:1,class:"message-bold-text"},Po={key:2,class:"message-italic-text"},Ao={key:3,class:"message-strikethrough-text"},Eo=["href","title"],Bo=["href","title"],Fo={key:6,class:"message-inline-code"},Ro={key:2,class:"message-blockquote"},Ho={key:0},Wo={key:1,class:"message-bold-text"},Oo={key:2,class:"message-italic-text"},zo={key:3,class:"message-strikethrough-text"},jo=["href","title"],Do=["href","title"],Vo={key:6,class:"message-inline-code"},No={key:3,class:"message-list message-list-unordered"},Uo=["innerHTML"],qo={key:4,class:"message-list message-task-list"},Ko=["data-checked"],Go={class:"message-list-item-text"},Zo={key:0},Xo={key:1,class:"message-bold-text"},Jo={key:2,class:"message-italic-text"},Yo={key:3,class:"message-strikethrough-text"},Qo=["href","title"],ea=["href","title"],ta={key:6,class:"message-inline-code"},na=["start"],sa=["innerHTML"],ia={key:6,class:"message-table-wrap"},oa={class:"message-table"},aa={key:0},ra={key:1,class:"message-bold-text"},la={key:2,class:"message-italic-text"},ca={key:3,class:"message-strikethrough-text"},ua=["href","title"],da=["href","title"],ha={key:6,class:"message-inline-code"},fa={key:0},pa={key:0},ma={key:1,class:"message-bold-text"},va={key:2,class:"message-italic-text"},ka={key:3,class:"message-strikethrough-text"},ga=["href","title"],ya=["href","title"],_a={key:6,class:"message-inline-code"},wa={key:7,class:"message-code-block"},ba={key:0,class:"message-code-language"},xa={class:"message-code-pre"},Ca=["innerHTML"],$a={key:8,class:"message-divider"},La={key:9,class:"message-text"},Ta=["onClick"],Ma=["src","alt","onError"],Sa={key:3,class:"file-change-summary-block file-change-summary-block-inline"},Ia=["onClick"],Pa={class:"file-change-summary-label"},Aa={class:"file-change-summary-status"},Ea=["data-tone"],Ba={class:"file-change-panel-inner"},Fa={class:"file-change-list"},Ra=["data-operation"],Ha=["title","onClick"],Wa={key:0,class:"file-change-arrow"},Oa=["title","onClick"],za={key:2,class:"file-change-delta"},ja=["data-tone"],Da=["data-role"],Va=["onClick"],Na=["onClick"],Ua=["data-copied","aria-label","title","onClick"],qa={class:"message-copy-label"},Ka={key:1,class:"conversation-item conversation-item-overlay"},Ga={class:"message-row"},Za={class:"message-stack"},Xa={class:"live-overlay-inline","aria-live":"polite"},Ja={class:"live-overlay-label"},Ya={key:0,class:"live-overlay-reasoning"},Qa={key:1,class:"live-overlay-error"},er=["src"],tr={key:0,class:"diff-viewer-sidebar"},nr={class:"diff-viewer-sidebar-header"},sr={class:"diff-viewer-sidebar-count"},ir={class:"diff-viewer-sidebar-list"},or=["data-active","onClick"],ar=["data-operation"],rr={class:"diff-viewer-file-label"},lr={key:0,class:"diff-viewer-file-delta"},cr={class:"diff-viewer-main"},ur={class:"diff-viewer-toolbar"},dr={class:"diff-viewer-title-wrap"},hr={class:"diff-viewer-title"},fr={class:"diff-viewer-subtitle"},pr={key:0},mr={class:"diff-viewer-toolbar-actions"},vr={key:0,class:"diff-viewer-empty"},kr={key:1,class:"diff-viewer-panel"},gr={class:"diff-viewer-meta"},yr={class:"diff-viewer-language"},_r={class:"diff-viewer-lines"},wr=["data-kind"],br={class:"diff-viewer-line-number"},xr={class:"diff-viewer-line-number"},Cr={class:"diff-viewer-line-marker"},$r=["innerHTML"],Lr={class:"diff-viewer-mobile-sheet-header"},Tr={class:"diff-viewer-sidebar-count"},Mr={class:"diff-viewer-mobile-sheet-list"},Sr=["data-active","onClick"],Ir=["data-operation"],Pr={class:"diff-viewer-file-label"},Ar={key:0,class:"diff-viewer-file-delta"},Er=16,Br=300,Fr=1200,Rr=300,Hr=250,Tt=50,Wr=30,Or=200,zr=qs({__name:"ThreadConversation",props:{messages:{},pendingRequests:{},liveOverlay:{},isLoading:{type:Boolean},activeThreadId:{},cwd:{},scrollState:{}},emits:["updateScrollState","forkThread","rollback","implementPlan","respondServerRequest"],setup(M,{expose:be,emit:Bn}){var In;const de=b(new Set),W=b(new Set),he=b(new Set),Xe=b(new Set),fe=b(new Set),Je=b(null),xe=b(""),D=b(!1),Mt=b(null),pe=b(!1),St=b(0),It=b(0),Ye=b(""),Qe=b(""),{isMobile:Ce}=Ks();function Fn(e){var i;const n=e.replace(/\r\n/g,`
|
|
2
|
-
`).trim();if(!n)return null;const t=[],s=[];for(const a of n.split(`
|
|
3
|
-
`)){const u=a.trim();if(!u){t.length===0&&s.push("");continue}const o=u.match(/^[-*]\s+\[([ xX~>|-])\]\s+(.+)$/);if(o){const h=(o[1]??" ").toLowerCase();let c="pending";h==="x"&&(c="completed"),(h==="~"||h===">"||h==="-")&&(c="inProgress"),t.push({step:((i=o[2])==null?void 0:i.trim())??"",status:c});continue}s.push(u)}return t.length===0?null:{explanation:s.join(`
|
|
4
|
-
`).trim(),steps:t.filter(a=>a.step.length>0)}}function et(e){var n;return e.plan&&e.plan.steps.length>0?{explanation:((n=e.plan.explanation)==null?void 0:n.trim())??"",steps:e.plan.steps}:Fn(e.text)}function E(e){return e.messageType==="commandExecution"&&!!e.commandExecution}function tt(e){return e.messageType==="plan"||e.messageType==="plan.live"}function Rn(e){return tt(e)&&e.messageType!=="plan.live"&&e.role==="assistant"&&!!e.turnId}function Hn(e){var t;const n=((t=e.turnId)==null?void 0:t.trim())??"";n&&Pe("implementPlan",{turnId:n})}function nt(e){return e.messageType==="fileChange"&&e.fileChangeStatus==="completed"&&Array.isArray(e.fileChanges)&&e.fileChanges.length>0}function $e(e){return e.role==="assistant"&&!E(e)&&e.messageType!=="worked"&&!(e.messageType??"").endsWith(".live")}const st=L(()=>{var e;for(let n=v.messages.length-1;n>=0;n-=1){const t=v.messages[n];if(t.messageType==="commandExecution"&&((e=t.commandExecution)==null?void 0:e.status)==="inProgress")return t.id}return""}),Pt=L(()=>v.messages.some(e=>e.role==="assistant"&&e.messageType==="agentMessage.live"&&e.text.trim().length>0)),At=L(()=>!!v.liveOverlay||st.value.length>0||Pt.value),it=L(()=>{const e={};for(let n=0;n<v.messages.length;){const t=v.messages[n];if(!E(t)){n+=1;continue}const s=[];for(;n<v.messages.length&&E(v.messages[n]);)s.push(v.messages[n]),n+=1;if(s.length<=1)continue;const i=s[s.length-1];e[i.id]=s.slice(0,-1)}return e}),Wn=L(()=>{const e=new Set;for(const n of Object.values(it.value))for(const t of n)e.add(t.id);return e});function Et(e){var n;return((n=et(e))==null?void 0:n.explanation)??""}function Bt(e){var n;return((n=et(e))==null?void 0:n.steps)??[]}function On(e){switch(e){case"completed":return"✓";case"inProgress":return"•";default:return"○"}}function Ft(e){return!Pt.value&&e.id===st.value}function B(e){return E(e)?de.value.has(e.id)||!W.value.has(e.id)&&Ft(e):!1}function ot(e){return E(e)&&At.value}function at(e){var n;return E(e)&&(At.value||((n=e.commandExecution)==null?void 0:n.status)==="inProgress")}function rt(e){if(!E(e))return;const n=new Set(de.value),t=new Set(W.value),s=Ft(e);n.has(e.id)?(n.delete(e.id),s&&t.add(e.id)):s&&!t.has(e.id)?t.add(e.id):(n.add(e.id),t.delete(e.id)),de.value=n,W.value=t}function Le(e){return it.value[e.id]??[]}function Rt(e){return E(e)?[...Le(e),e]:[]}function zn(e){if(Le(e).length===0)return;const t=new Set(he.value);t.has(e.id)?t.delete(e.id):t.add(e.id),he.value=t}function lt(e){return he.value.has(e.id)}function jn(e){var a,u;const t=Rt(e).length,s=((u=(a=e.commandExecution)==null?void 0:a.command)==null?void 0:u.trim())||"(command)";return`${t===1?"1 command":`${t} commands`} · latest: ${s}`}function Dn(e){return Me(e)}function Vn(e){const n=new Set(Xe.value);n.has(e.id)?n.delete(e.id):n.add(e.id),Xe.value=n}function Ht(e){return Xe.value.has(e.id)}function Wt(e){const n=new Set(fe.value);n.has(e.id)?n.delete(e.id):n.add(e.id),fe.value=n}function te(e){return fe.value.has(e.id)}function T(e){return`${e.path}\0${e.movedToPath??""}`}function Te(e,n){e&&(Je.value=e,xe.value=T(n),D.value=!1)}function Ot(){Je.value=null,xe.value="",D.value=!1}function Nn(){D.value=!D.value}function Un(){D.value=!1}function zt(e){xe.value=T(e),Ce.value&&(D.value=!1)}function Me(e){const n=e.commandExecution;if(!n)return"";const t=ot(e);switch(n.status){case"inProgress":return t?"Running":"⟳ Running";case"completed":return n.exitCode===0?t?"Done":"✓ Completed":`Exit ${n.exitCode??"?"}`;case"failed":return t?"Failed":"✗ Failed";case"declined":return t?"Declined":"⊘ Declined";case"interrupted":return t?"Stopped":"⊘ Interrupted";default:return""}}function Se(e){var t,s;const n=(t=e.commandExecution)==null?void 0:t.status;return n==="inProgress"?"cmd-status-running":n==="completed"&&((s=e.commandExecution)==null?void 0:s.exitCode)===0?"cmd-status-ok":"cmd-status-error"}function Ie(e,n){if(e.size===0)return e;const t=new Set;for(const s of e)n.has(s)&&t.add(s);return t.size===e.size?e:t}function qn(e,n){const t=[];for(let s=n-1;s>=0;s--){const i=e[s];if(i.messageType==="commandExecution")t.unshift(i);else if(i.role==="user"||i.messageType==="worked")break}return t}const v=M,Pe=Bn,V=b(null),jt=b(null),me=b(""),N=b(""),Kn=b(null),O=b(((In=v.scrollState)==null?void 0:In.isAtBottom)!==!1),Dt={js:"javascript",jsx:"jsx",ts:"typescript",tsx:"tsx",py:"python",rb:"ruby",sh:"bash",shell:"bash",zsh:"bash",yml:"yaml",md:"markdown","c++":"cpp","c#":"csharp",ps1:"powershell"};let U=0,A=0,Ae=0,q=null,ve=null;const Vt=new WeakSet,Ee=b(null),ne=b(0),Nt=b(0);let Be=null;const ke=new Map,ge=new Map,se=new Map,ie=new Map;function Fe(e,n,t,s){for(e.has(n)&&e.delete(n),e.set(n,t);e.size>s;){const i=e.keys().next().value;if(i===void 0)break;e.delete(i)}return t}const F=b(0),K=b(!1),Gn=L(()=>v.messages.slice(F.value)),ct=L(()=>F.value>0),Zn=L(()=>!O.value&&(v.messages.length>0||v.pendingRequests.length>0||!!v.liveOverlay));function Xn(){return Ee.value?Promise.resolve():(Be||(Be=ti(()=>import("./common-BeuopZEI.js"),[]).then(e=>{Ee.value=e.default,ie.clear(),se.clear(),ne.value+=1}).finally(()=>{Be=null})),Be)}function Jn(e){if(!e||/[\r\n]/u.test(e)||e.endsWith("/")||e.endsWith("\\")||/^[A-Za-z][A-Za-z0-9+.-]*:\/\//u.test(e))return!1;const n=e.startsWith("/"),t=/^[A-Za-z]:[\\/]/u.test(e),s=e.startsWith("./")||e.startsWith("../")||e.startsWith("~/");return n||t||s?!0:/^[A-Za-z0-9._@() -]+(?:[\\/][A-Za-z0-9._@() -]+)+$/u.test(e)}function Re(e){return e.replace(/\\/gu,"/").split("/").filter(Boolean).pop()||e}function oe(e){return e.replace(/\\/gu,"/")}function Ut(e){if(!e.startsWith("file://"))return e;let n=e.replace(/^file:\/\//u,"");try{n=decodeURIComponent(n)}catch{}return/^\/[A-Za-z]:\//u.test(n)&&(n=n.slice(1)),n}function Yn(e){const n=oe(e),t=n.match(/^\/Users\/([^/]+)/u);if(t)return`/Users/${t[1]}`;const s=n.match(/^\/home\/([^/]+)/u);return s?`/home/${s[1]}`:""}function ae(e){const n=oe(e);if(!n)return n;let t="",s=n;const i=s.match(/^([A-Za-z]:)(\/.*)?$/u);i?(t=`${i[1]}/`,s=(i[2]??"").replace(/^\/+/u,"")):s.startsWith("/")&&(t="/",s=s.slice(1));const a=s.split("/").filter(Boolean),u=[];for(const h of a)if(h!=="."){if(h===".."){u.length>0&&u.pop();continue}u.push(h)}const o=u.join("/");return t?`${t}${o}`.replace(/\/+$/u,"")||t:o||n}function qt(e,n){const t=oe(Ut(e.trim()));if(!t)return"";if(t.startsWith("/")||/^[A-Za-z]:\//u.test(t))return ae(t);if(t.startsWith("~/")){const a=Yn(n);if(a)return ae(`${a}/${t.slice(2)}`)}const i=oe(n.trim());return ae(i?`${i.replace(/\/+$/u,"")}/${t}`:t)}function ye(e){if(!e)return null;let n=e.trim();n=He(n).core.trim();let s=null;const i=n.match(/^(.*)#L(\d+)(?:C\d+)?$/u);if(i)n=i[1],s=Number(i[2]);else{const a=n.match(/^(.*):(\d+)(?::\d+)?$/u);a&&(n=a[1],s=Number(a[2]))}return n=Ut(n),Jn(n)?{path:n,line:s}:null}function He(e){let n=e,t="",s="";const i={"(":")","[":"]","{":"}","<":">",'"':'"',"'":"'","`":"`","“":"”","‘":"’"};for(;n.length>0;){const a=n[0],u=Object.prototype.hasOwnProperty.call(i,a)?i[a]:"";if(!u||!n.endsWith(u))break;t+=a,s+=u,n=n.slice(1,-1)}return{core:n,leading:t,trailing:s}}function ut(e){const n=e.trim();if(!n.startsWith("[")||!n.endsWith(")"))return null;const t=n.indexOf("]");if(t<=1||n[t+1]!=="(")return null;const s=n.slice(1,t).trim(),i=n.slice(t+2,-1).trim();if(s.includes(`
|
|
5
|
-
`)||i.includes(`
|
|
6
|
-
`))return null;const a=He(s).core.trim()||s,u=He(i).core.trim();return u?{label:a,target:u}:null}function Kt(e){const n=Math.min(6,Math.max(1,Math.trunc(e)));return`h${String(n)}`}function Gt(e){switch(Math.min(6,Math.max(1,Math.trunc(e)))){case 1:return"message-heading-h1";case 2:return"message-heading-h2";case 3:return"message-heading-h3";case 4:return"message-heading-h4";case 5:return"message-heading-h5";default:return"message-heading-h6"}}function Qn(e){switch(e){case"completed":return"[x]";case"inProgress":return"[~]";default:return"[ ]"}}function es(e){var s;const n=et(e);if(!n)return"";const t=[];return(s=n.explanation)!=null&&s.trim()&&t.push(n.explanation.trim()),n.steps.length>0&&t.push(n.steps.map(i=>`- ${Qn(i.status)} ${i.step}`.trim()).join(`
|
|
7
|
-
`)),t.join(`
|
|
8
|
-
|
|
9
|
-
`).trim()}function ts(e){const n=[],t=e.text.trim()||es(e),s=tt(e)&&t?`Plan
|
|
10
|
-
${t}`:t;s&&n.push(s);const i=(e.fileAttachments??[]).map(u=>u.path.trim()).filter(u=>u.length>0);i.length>0&&n.push(`Files:
|
|
11
|
-
${i.join(`
|
|
12
|
-
`)}`);const a=(e.images??[]).map(u=>u.trim()).filter(u=>u.length>0);return a.length>0&&n.push(`Images:
|
|
13
|
-
${a.join(`
|
|
14
|
-
`)}`),n.join(`
|
|
15
|
-
|
|
16
|
-
`).trim()}const Zt=L(()=>{var t;const e=new Map;for(const s of v.messages){if(!$e(s))continue;const i=ts(s);if(!i)continue;const a=typeof s.turnIndex=="number"?`turn:${s.turnIndex}`:`message:${s.id}`,u=e.get(a);if(u){u.anchorMessageId=s.id,u.parts.push(i);continue}e.set(a,{anchorMessageId:s.id,parts:[i]})}const n={};for(const s of e.values()){const i=s.parts.join(`
|
|
17
|
-
|
|
18
|
-
`).trim();i&&(n[s.anchorMessageId]=i)}for(const[s,i]of Object.entries(We.value)){if(i.source!=="metadata")continue;const a=ls(i);if(!a)continue;const u=(t=n[s])==null?void 0:t.trim();n[s]=u?`${u}
|
|
19
|
-
|
|
20
|
-
${a}`:a}return n}),Xt=L(()=>{const e=new Map;for(const t of v.messages){if(!$e(t)||typeof t.turnIndex!="number")continue;const s=`turn:${t.turnIndex}`,i=e.get(s);if(i){i.anchorMessageId=t.id,i.turnIndex=t.turnIndex;continue}e.set(s,{anchorMessageId:t.id,turnIndex:t.turnIndex})}const n={};for(const t of e.values())n[t.anchorMessageId]=t.turnIndex;return n});function Jt(e){return typeof Zt.value[e.id]=="string"}function ns(e){return typeof Xt.value[e.id]=="number"}function ss(e,n){return e?!n||e===n?e:`${e}
|
|
21
|
-
${n}`.trim():n}function is(e,n){const t=e.operation==="add"||n.operation==="add"?"add":e.operation==="delete"||n.operation==="delete"?"delete":"update";return{path:n.path||e.path,operation:t,movedToPath:n.movedToPath??e.movedToPath??null,diff:ss(e.diff,n.diff),addedLineCount:e.addedLineCount+n.addedLineCount,removedLineCount:e.removedLineCount+n.removedLineCount}}function os(e,n){const t=e.operation==="add"?0:e.operation==="update"?1:2,s=n.operation==="add"?0:n.operation==="update"?1:2;if(t!==s)return t-s;const i=`${e.path}\0${e.movedToPath??""}`,a=`${n.path}\0${n.movedToPath??""}`;return i.localeCompare(a)}function dt(e){const n=new Map;for(const t of e){const s=`${t.path}\0${t.movedToPath??""}`,i=n.get(s);n.set(s,i?is(i,t):{...t})}return Array.from(n.values()).sort(os)}const We=L(()=>{const e=new Map,n=new Map,t=new Map;for(const i of v.messages){if($e(i)&&typeof i.turnIndex=="number"&&(e.set(`turn:${i.turnIndex}`,i.id),Array.isArray(i.fileChanges)&&i.fileChanges.length>0&&n.set(i.id,{changes:dt(i.fileChanges),sourceMessageIds:[],source:"assistant"})),!nt(i))continue;const a=typeof i.turnIndex=="number"?`turn:${i.turnIndex}`:`message:${i.id}`,u=t.get(a);u?u.push(i):t.set(a,[i])}const s={};for(const[i,a]of t.entries()){const u=e.get(i);u&&(s[u]={changes:dt(a.flatMap(o=>o.fileChanges??[])),sourceMessageIds:a.map(o=>o.id),source:"metadata"})}for(const[i,a]of n.entries())s[i]||(s[i]=a);return s}),ht=L(()=>{const e=new Map,n=new Map;for(const s of v.messages){if($e(s)&&typeof s.turnIndex=="number"&&e.set(`turn:${s.turnIndex}`,s.id),!nt(s))continue;const i=typeof s.turnIndex=="number"?`turn:${s.turnIndex}`:`message:${s.id}`,a=n.get(i);a?a.push(s):n.set(i,[s])}const t={};for(const[s,i]of n.entries()){if(e.has(s))continue;const a=i[i.length-1];a&&(t[a.id]={changes:dt(i.flatMap(u=>u.fileChanges??[])),sourceMessageIds:i.map(u=>u.id),source:"metadata"})}return t}),as=L(()=>{const e=new Set;for(const n of Object.values(We.value))for(const t of n.sourceMessageIds)e.add(t);for(const[n,t]of Object.entries(ht.value))for(const s of t.sourceMessageIds)s!==n&&e.add(s);return e});function re(e){return We.value[e.id]??null}function le(e){return ht.value[e.id]??null}function ce(e){return e.operation==="update"&&e.movedToPath?e.addedLineCount>0||e.removedLineCount>0?"Moved + edited":"Moved":e.operation==="add"?"Added":e.operation==="delete"?"Deleted":"Edited"}function Oe(e){return e.operation==="update"&&e.movedToPath?"move":e.operation}function G(e){const n=[];return e.addedLineCount>0&&n.push(`+${e.addedLineCount}`),e.removedLineCount>0&&n.push(`-${e.removedLineCount}`),n.join(" ")}function Yt(e,n,t=""){const s=[];return e>0&&s.push({tone:"add",label:`+${e}`}),n>0&&s.push({tone:"remove",label:`-${n}`}),s.length>0?s:t?[{tone:"neutral",label:t}]:[]}function Qt(e){return Yt(e.addedLineCount,e.removedLineCount)}function ze(e){return e===1?"1 file changed":`${e} files changed`}function rs(e){if(!e||e.changes.length===0)return"";let n=0,t=0,s=0,i=0;for(const u of e.changes){if(u.operation==="add"){n+=1;continue}if(u.operation==="delete"){t+=1;continue}if(u.movedToPath){i+=1;continue}s+=1}const a=[];return s>0&&a.push(`${s} edited`),n>0&&a.push(`${n} added`),t>0&&a.push(`${t} deleted`),i>0&&a.push(`${i} moved`),a.join(", ")}function en(e){if(!e||e.changes.length===0)return"Modified files";const n=ze(e.changes.length),t=rs(e);return t?`${n} · ${t}`:n}function tn(e){if(!e||e.changes.length===0)return[];const n=e.changes.reduce((i,a)=>i+a.addedLineCount,0),t=e.changes.reduce((i,a)=>i+a.removedLineCount,0),s=e.changes.some(i=>i.movedToPath)?"Moved":"Ready";return Yt(n,t,s)}function S(e){const n=qt(e,v.cwd),t=ae(oe(v.cwd.trim())),s=ae(oe(n));return t&&s.startsWith(`${t}/`)?s.slice(t.length+1):e}function ls(e){return!e||e.changes.length===0?"":`Modified files:
|
|
22
|
-
${e.changes.map(t=>{const s=S(t.path),i=t.movedToPath?` -> ${S(t.movedToPath)}`:"",a=G(t);return`- ${ce(t)}: ${s}${i}${a?` (${a})`:""}`}).join(`
|
|
23
|
-
`)}`.trim()}const ue=L(()=>{var e;return((e=Je.value)==null?void 0:e.changes)??[]}),I=L(()=>{const e=ue.value;return e.length===0?null:e.find(n=>T(n)===xe.value)??e[0]});function cs(e){var s;const t=((s=(e.movedToPath||e.path).split(".").pop())==null?void 0:s.toLowerCase())??"";return Dt[t]??t??""}function us(e){return e.operation==="update"&&/^diff --git |^@@ |^--- |^\+\+\+ |^[ +-]|^\*\*\* (Move to:|End of File)/mu.test(e.diff)}function ds(e){const n=e.diff.replace(/\r\n/g,`
|
|
24
|
-
`),t=n.length>0?n.split(`
|
|
25
|
-
`):[];return t.length>0&&t[t.length-1]===""&&t.pop(),t.map((s,i)=>({key:`${T(e)}:synthetic:${i}`,kind:e.operation==="delete"?"remove":"add",oldLine:e.operation==="delete"?i+1:null,newLine:e.operation==="delete"?null:i+1,text:s}))}function hs(e){const n=e.diff.replace(/\r\n/g,`
|
|
26
|
-
`),t=n.length>0?n.split(`
|
|
27
|
-
`):[];t.length>0&&t[t.length-1]===""&&t.pop();const s=[];let i=0,a=0;for(const[u,o]of t.entries()){const h=o.match(/^@@\s+-(\d+)(?:,\d+)?\s+\+(\d+)(?:,\d+)?\s+@@/u);if(h){i=Number(h[1]),a=Number(h[2]),s.push({key:`${T(e)}:hunk:${u}`,kind:"hunk",oldLine:null,newLine:null,text:o});continue}if(o.startsWith("+")&&!o.startsWith("+++")){s.push({key:`${T(e)}:add:${u}`,kind:"add",oldLine:null,newLine:a,text:o.slice(1)}),a+=1;continue}if(o.startsWith("-")&&!o.startsWith("---")){s.push({key:`${T(e)}:remove:${u}`,kind:"remove",oldLine:i,newLine:null,text:o.slice(1)}),i+=1;continue}if(o.startsWith(" ")){s.push({key:`${T(e)}:context:${u}`,kind:"context",oldLine:i,newLine:a,text:o.slice(1)}),i+=1,a+=1;continue}s.push({key:`${T(e)}:meta:${u}`,kind:"meta",oldLine:null,newLine:null,text:o})}return s}function fs(e){return!e||!e.diff.trim()?[]:us(e)?hs(e):ds(e)}const ps=L(()=>fs(I.value));function ms(e){return!!(e!=null&&e.diff.trim())}function vs(e){return e.kind==="add"?"+":e.kind==="remove"?"-":e.kind==="hunk"?"@@":""}function ks(e){if(typeof document>"u")return!1;const n=document.createElement("textarea");n.value=e,n.setAttribute("readonly","true"),n.style.position="fixed",n.style.left="-9999px",n.style.opacity="0",n.style.pointerEvents="none",document.body.appendChild(n),n.focus(),n.select(),n.setSelectionRange(0,e.length);try{return document.execCommand("copy")}catch{return!1}finally{document.body.removeChild(n)}}async function gs(e){var s;const n=Zt.value[e]??"";if(!n)return;let t=!1;if(typeof navigator<"u"&&((s=navigator.clipboard)!=null&&s.writeText))try{await navigator.clipboard.writeText(n),t=!0}catch{t=!1}t||(t=ks(n)),t&&(N.value=e,q&&clearTimeout(q),q=setTimeout(()=>{N.value===e&&(N.value=""),q=null},1800))}function ys(e){const n=Xt.value[e];typeof n=="number"&&v.activeThreadId&&Pe("forkThread",{threadId:v.activeThreadId,turnIndex:n})}const nn=L(()=>{const e={};for(const n of v.messages){if(n.role!=="user"||typeof n.turnIndex!="number")continue;const t=typeof n.turnId=="string"&&n.turnId.length>0?n.turnId:"";!t||n.text.trim().length===0||(e[n.id]=t)}return e});function sn(e){return typeof nn.value[e.id]=="string"}function _s(e){const n=nn.value[e];n&&Pe("rollback",{turnId:n})}function ft(e){const n=[],t=/https?:\/\/[^\s<>"'`,。;:!?、()[\]{}「」『』《》]+|file:\/\/[^\n<>"'`,。;:!?、[\]{}「」『』《》]+|["'](?:[A-Za-z]:[\\/]|~\/|\.{1,2}\/|\/)[^\n"']+["']|`(?:[A-Za-z]:[\\/]|~\/|\.{1,2}\/|\/)[^`\n]+`/gu;let s=0;for(const i of e.matchAll(t)){if(typeof i.index!="number")continue;const a=i.index,u=a+i[0].length;a>s&&n.push({kind:"text",value:e.slice(s,a)});let o=i[0],h="";for(;/[.,;:!?,。;:!?、]$/u.test(o);)h=o.slice(-1)+h,o=o.slice(0,-1);const c=He(o);o=c.core;const m=c.leading,p=c.trailing+h;if(m&&n.push({kind:"text",value:m}),o.startsWith("**")&&o.endsWith("**")&&o.length>4)n.push({kind:"bold",value:o.slice(2,-2)}),p&&n.push({kind:"text",value:p});else if(/^https?:\/\//u.test(o))n.push({kind:"url",value:o,href:o}),p&&n.push({kind:"text",value:p});else{const y=ye(o);y?(n.push({kind:"file",value:o,path:y.path,displayPath:o,downloadName:Re(y.path)}),p&&n.push({kind:"text",value:p})):n.push({kind:"text",value:i[0]})}s=u}return s<e.length&&n.push({kind:"text",value:e.slice(s)}),ws(n)}function pt(e,n){const t=[];let s=!1,i="";const a=u=>{u&&t.push({kind:"text",value:u})};for(const u of e){if(u.kind!=="text"){s&&(a(`${n.marker}${i}`),s=!1,i=""),t.push(u);continue}let o=u.value;for(;o.length>0;){const h=o.indexOf(n.marker);if(h<0){s?i+=o:a(o);break}const c=o.slice(0,h);if(s?i+=c:a(c),o=o.slice(h+n.marker.length),s){const m=i;m.length>0&&(!n.isValidContent||n.isValidContent(m))?t.push({kind:n.kind,value:m}):a(`${n.marker}${m}${n.marker}`),i="",s=!1}else s=!0}}return s&&a(`${n.marker}${i}`),t}function ws(e){const n=s=>s.trim().length>0&&!/^\s/u.test(s)&&!/\s$/u.test(s);let t=pt(e,{marker:"**",kind:"bold",isValidContent:n});return t=pt(t,{marker:"~~",kind:"strikethrough",isValidContent:n}),t=pt(t,{marker:"*",kind:"italic",isValidContent:n}),t}function je(e){const n=[];let t=0,s=0;const i=(a,u)=>{let o=a.indexOf("[",u);for(;o>=0;){const h=a.indexOf("]",o+1);if(h<0)return null;if(a[h+1]!=="("){o=a.indexOf("[",o+1);continue}let c=1,m=h+2,p=!1;for(;m<a.length;){const y=a[m];if(y===`
|
|
28
|
-
`){p=!0;break}if(y==="("&&(c+=1),y===")"&&(c-=1,c===0)){const x=a.slice(o,m+1);if(ut(x))return{start:o,end:m+1,token:x};break}m+=1}if(p){o=a.indexOf("[",o+1);continue}o=a.indexOf("[",o+1)}return null};for(;s<e.length;){const a=i(e,s);if(!a)break;const{start:u,end:o,token:h}=a;u>t&&n.push(...ft(e.slice(t,u)));const c=ut(h);if(!c){n.push(...ft(e.slice(u,o))),t=o,s=o;continue}const m=c.label,p=c.target;if(/^https?:\/\//u.test(p))n.push({kind:"url",value:m||p,href:p});else{const y=ye(p);y?n.push({kind:"file",value:p,path:y.path,displayPath:m||p,downloadName:Re(y.path)}):n.push({kind:"text",value:h})}t=o,s=o}return t<e.length&&n.push(...ft(e.slice(t))),n}function bs(e){if(e.includes("](")){const i=je(e);if(i.some(a=>a.kind==="file"||a.kind==="url")&&!e.includes("`"))return i}if(!e.includes("`"))return je(e);const n=[];let t=0,s=0;for(;t<e.length;){if(e[t]!=="`"){t+=1;continue}let i=1;for(;t+i<e.length&&e[t+i]==="`";)i+=1;const a="`".repeat(i);let u=t+i,o=-1;for(;u<e.length;){const c=e.indexOf(a,u);if(c<0)break;const m=c>0&&e[c-1]==="`",p=c+i<e.length&&e[c+i]==="`",y=e.slice(t+i,c).includes(`
|
|
29
|
-
`);if(!m&&!p&&!y){o=c;break}u=c+1}if(o<0){t+=i;continue}t>s&&n.push(...je(e.slice(s,t)));const h=e.slice(t+i,o);if(h.length>0){const c=ut(h);if(c)if(/^https?:\/\//u.test(c.target))n.push({kind:"url",value:c.label||c.target,href:c.target});else{const m=ye(c.target);m?n.push({kind:"file",value:c.target,path:m.path,displayPath:c.label||c.target,downloadName:Re(m.path)}):n.push({kind:"code",value:h})}else if(/^https?:\/\/[^\s]+$/u.test(h))n.push({kind:"url",value:h,href:h});else{const m=ye(h);if(m){const p=m.line?`${m.path}:${String(m.line)}`:m.path;n.push({kind:"file",value:h,path:m.path,displayPath:p,downloadName:Re(m.path)})}else n.push({kind:"code",value:h})}}else n.push({kind:"text",value:`${a}${a}`});t=o+i,s=t}return s<e.length&&n.push(...je(e.slice(s))),n}function Z(e){const n=ge.get(e);return n?(ge.delete(e),ge.set(e,n),n):Fe(ge,e,bs(e),Fr)}function xs(e){const n=e.trim();if(!n)return"";if(n.startsWith("data:")||n.startsWith("blob:")||n.startsWith("http://")||n.startsWith("https://")||n.startsWith("/codex-local-image?"))return n;if(n.startsWith("file://"))return`/codex-local-image?path=${encodeURIComponent(n)}`;const t=n.startsWith("/"),s=/^[A-Za-z]:[\\/]/u.test(n);return t||s?`/codex-local-image?path=${encodeURIComponent(n)}`:n}function z(e){const n=e.trim();if(!n)return"#";const t=u=>u.startsWith("/")||/^[A-Za-z]:[\\/]/u.test(u),s=ye(n),i=(s==null?void 0:s.path)??n,a=qt(i,v.cwd);if(t(a)){const u=a.startsWith("/")?a:`/${a}`;return`/codex-local-browse${encodeURI(u)}`}return"#"}const Cs=L(()=>({left:`${String(St.value)}px`,top:`${String(It.value)}px`}));function $s(e){const n=e.trim();if(!n)return"";try{const t=new URL(n,window.location.href);return t.pathname.startsWith("/codex-local-browse")?`${`/codex-local-edit${t.pathname.slice(19)}`}${t.search}${t.hash}`:""}catch{return""}}function Ls(e){const n=e.target;if(!(n instanceof Element))return;const t=n.closest("a.message-file-link");if(!(t instanceof HTMLAnchorElement))return;const s=(t.getAttribute("href")??"").trim();!s||s==="#"||(e.preventDefault(),e.stopPropagation(),Ye.value=s,Qe.value=$s(s),St.value=e.clientX,It.value=e.clientY,pe.value=!0)}function X(){pe.value&&(pe.value=!1)}function Ts(){const e=Ye.value;X(),!(!e||e==="#")&&window.open(e,"_blank","noopener,noreferrer")}function Ms(){const e=Qe.value;X(),!(!e||e==="#")&&window.open(e,"_blank","noopener,noreferrer")}async function Ss(){const e=Ye.value;if(X(),!(!e||e==="#"))try{await navigator.clipboard.writeText(e)}catch{const n=document.createElement("textarea");n.value=e,n.setAttribute("readonly","true"),n.style.position="fixed",n.style.opacity="0",document.body.appendChild(n),n.select(),document.execCommand("copy"),document.body.removeChild(n)}}function on(e){if(!pe.value)return;const n=Mt.value;if(!n){X();return}const t=e.target;t instanceof Node&&n.contains(t)||X()}function an(){X()}function rn(e){e.key==="Escape"&&X()}function ln(e){return e.replace(/\r\n/gu,`
|
|
30
|
-
`)}function R(e){var t;return(((t=e.match(/^\s*/u))==null?void 0:t[0])??"").replace(/\t/gu," ").length}function cn(e,n){if(n<=0)return e.trimStart();let t=0,s=0;for(;t<e.length&&s<n;){const i=e[t];s+=i===" "?4:1,t+=1}return e.slice(t)}function H(e){return e.trim().length===0}function mt(e){const n=e.match(/^\s{0,3}(#{1,6})\s+(.+)$/u);return n?{level:n[1].length,value:n[2].trim()}:null}function De(e){const n=e.match(/^\s{0,3}>\s?(.*)$/u);return n?n[1]??"":null}function _e(e){var t;const n=e.match(/^\s*[-*+]\s+(.+)$/u);return((t=n==null?void 0:n[1])==null?void 0:t.trim())??null}function Is(e){var t;const n=e.match(/^(\s*)[-*+]\s+(.+)$/u);return n?{indent:R(n[1]??""),text:((t=n[2])==null?void 0:t.trim())??""}:null}function we(e){var t;const n=e.match(/^\s*[-*+]\s+\[([ xX])\]\s+(.+)$/u);return n?{checked:(n[1]??" ").toLowerCase()==="x",text:((t=n[2])==null?void 0:t.trim())??""}:null}function un(e){var t;const n=e.match(/^(\s*)[-*+]\s+\[([ xX])\]\s+(.+)$/u);return n?{indent:R(n[1]??""),item:{checked:(n[2]??" ").toLowerCase()==="x",text:((t=n[3])==null?void 0:t.trim())??""}}:null}function dn(e){var t;const n=e.match(/^(\s*)(\d+)[.)]\s+(.+)$/u);return n?{indent:R(n[1]??""),start:Number.parseInt(n[2]??"1",10)||1,text:((t=n[3])==null?void 0:t.trim())??""}:null}function vt(e){var n;return((n=dn(e))==null?void 0:n.text)??null}function hn(e){return dn(e)}function kt(e){const n=e.trim();if(!n.includes("|"))return null;let t=n;t.startsWith("|")&&(t=t.slice(1)),t.endsWith("|")&&(t=t.slice(0,-1));const s=[];let i="",a=0;for(let u=0;u<t.length;u+=1){const o=t[u];if(o==="\\"&&t[u+1]==="|"){i+="|",u+=1;continue}if(o==="`"){let h=1;for(;t[u+h]==="`";)h+=1;i+=t.slice(u,u+h),a===0?a=h:a===h&&(a=0),u+=h-1;continue}if(o==="|"&&a===0){s.push(i.trim()),i="";continue}i+=o}return s.push(i.trim()),s.some(u=>u.length>0)?s:null}function Ps(e){const n=kt(e);if(!n||n.length===0)return null;const t=n.map(s=>{const i=s.replace(/\s+/gu,"");if(!/^:?-{3,}:?$/u.test(i))return null;const a=i.startsWith(":"),u=i.endsWith(":");return a&&u?"center":u?"right":a?"left":null});return t.every((s,i)=>s!==null||/^-+$/u.test(n[i].replace(/\s+/gu,"")))?t:null}function fn(e,n){return e.length===n?e:e.length>n?e.slice(0,n):[...e,...Array.from({length:n-e.length},()=>"")]}function pn(e,n){var m;if(n+1>=e.length)return null;const t=e[n],s=e[n+1],i=kt(t),a=Ps(s);if(!i||!a||i.length!==a.length)return null;const u=t.trim();if(!u.startsWith("|")&&(((m=u.match(/\|/gu))==null?void 0:m.length)??0)<2)return null;const o=i.length,h=[];let c=n+2;for(;c<e.length&&!H(e[c]);){const p=kt(e[c]);if(!p)break;h.push(fn(p,o)),c+=1}return{kind:"table",headers:fn(i,o),rows:h,alignments:a}}function As(e){return H(e)||Ve(e)!==null||gt(e)||mt(e)!==null||De(e)!==null||we(e)!==null||_e(e)!==null||vt(e)!==null}function Es(e,n,t=-1){const s=[];let i=n;for(;i<e.length&&!(As(e[i])||t>=0&&R(e[i])<=t);)s.push(t>=0?cn(e[i],t+1):e[i]),i+=1;const a=s.join(`
|
|
31
|
-
`).trim();return a?{value:a,nextIndex:i}:null}function mn(e,n){for(let t=n;t<e.length;t+=1)if(!H(e[t]))return t;return-1}function Bs(e,n,t,s=null,i=!1){const a=[];let u=n;for(;u<e.length;){const o=e[u];if(H(o)){const p=mn(e,u+1);if(p===-1){a.push(""),u=e.length;break}const y=s==null?void 0:s(e[p]);if(y&&y.indent===t||R(e[p])<=t)break;a.push(""),u+=1;continue}const h=s==null?void 0:s(o);if(h&&h.indent===t)break;const c=R(o),m=i&&(we(o)!==null||_e(o)!==null);if(c<=t&&!m)break;a.push(c>t?cn(o,t+1):o.trimStart()),u+=1}for(;a.length>0&&H(a[0]);)a.shift();for(;a.length>0&&H(a[a.length-1]);)a.pop();return a.length===0?null:{blocks:Ne(a.join(`
|
|
32
|
-
`)),nextIndex:u}}function vn(e,n,t,s=!1){const i=[];let a=n;const u=t(e[n]);if(!u)return null;const o=u.indent;for(;a<e.length;){const h=t(e[a]);if(h===null||h.indent!==o)break;const c=[h.text],m=[];for(a+=1;a<e.length;){if(H(e[a])){const _=mn(e,a+1);if(_===-1){a=e.length;break}const P=t(e[_]);if(P&&P.indent===o){a=_;break}if(R(e[_])<=o){a=_;break}a+=1;continue}const p=t(e[a]);if(p&&p.indent===o)break;const y=R(e[a])>o,x=s&&(we(e[a])!==null||_e(e[a])!==null);if(y||x){const _=Bs(e,a,o,t,s);if(_){m.push(..._.blocks),a=_.nextIndex;continue}}if(R(e[a])<=o)break;const j=Es(e,a,o);if(!j)break;c.push(j.value),a=j.nextIndex}i.push(m.length>0?{paragraphs:c,children:m}:{paragraphs:c})}return i.length>0?{items:i,nextIndex:a}:null}function gt(e){return/^\s{0,3}(?:-{3,}|\*{3,}|_{3,})\s*$/u.test(e.trim())}function Ve(e){const n=e.match(/^\s{0,3}(```+|~~~+)\s*([^\s`~][^`]*)?\s*$/u);return n?{marker:n[1],language:(n[2]??"").trim()}:null}function Ne(e){var a;const t=ln(e).split(`
|
|
33
|
-
`),s=[];let i=0;for(;i<t.length;){if(H(t[i])){i+=1;continue}const u=Ve(t[i]);if(u){i+=1;const _=[];for(;i<t.length;){if(t[i].trim()===u.marker){i+=1;break}_.push(t[i]),i+=1}s.push({kind:"codeBlock",language:u.language,value:_.join(`
|
|
34
|
-
`)});continue}if(gt(t[i])){s.push({kind:"thematicBreak"}),i+=1;continue}const o=mt(t[i]);if(o){s.push({kind:"heading",level:o.level,value:o.value}),i+=1;continue}if(De(t[i])!==null){const _=[];for(;i<t.length;){const P=De(t[i]);if(P===null)break;_.push(P),i+=1}s.push({kind:"blockquote",value:_.join(`
|
|
35
|
-
`).trim()});continue}const c=pn(t,i);if(c){s.push(c),i+=2+c.rows.length;continue}if(we(t[i])!==null){const _=[],P=((a=un(t[i]))==null?void 0:a.indent)??0;for(;i<t.length;){const xt=un(t[i]);if(xt===null||xt.indent!==P)break;_.push(xt.item),i+=1}if(_.length>0){s.push({kind:"taskList",items:_});continue}}const p=_e(t[i]);if(p!==null){const _=vn(t,i,Is);if(_){s.push({kind:"unorderedList",items:_.items}),i=_.nextIndex;continue}if(p.length>0){s.push({kind:"unorderedList",items:[{paragraphs:[p]}]}),i+=1;continue}}const y=vt(t[i]);if(y!==null){const _=hn(t[i]),P=vn(t,i,hn,!0);if(P){s.push({kind:"orderedList",items:P.items,start:(_==null?void 0:_.start)??1}),i=P.nextIndex;continue}if(y.length>0){s.push({kind:"orderedList",items:[{paragraphs:[y]}],start:(_==null?void 0:_.start)??1}),i+=1;continue}}const x=[];for(;i<t.length&&!(H(t[i])||Ve(t[i])||gt(t[i])||mt(t[i])||pn(t,i)||De(t[i])!==null||we(t[i])!==null||_e(t[i])!==null||vt(t[i])!==null);)x.push(t[i]),i+=1;const j=x.join(`
|
|
36
|
-
`).trim();j&&s.push({kind:"paragraph",value:j})}return s}function Fs(e){if(!e.includes(")return Ne(e);const n=[],t=/!\[([^\]]*)\]\(([^)\n]+)\)/gu;let s=0;for(const i of e.matchAll(t)){const[a,u,o]=i;if(typeof i.index!="number")continue;const h=i.index,c=h+a.length,m=xs(o.trim());m&&(h>s&&n.push(...Ne(e.slice(s,h))),n.push({kind:"image",url:m,alt:u.trim(),markdown:a}),s=c)}return s<e.length&&n.push(...Ne(e.slice(s))),n}function kn(e){const t=ln(e).split(`
|
|
37
|
-
`),s=[];let i=0,a=0;const u=o=>{if(o<=a)return;const h=t.slice(a,o).join(`
|
|
38
|
-
`);s.push(...Fs(h))};for(;i<t.length;){const o=Ve(t[i]);if(!o){i+=1;continue}u(i),i+=1;const h=[];for(;i<t.length;){if(t[i].trim()===o.marker){i+=1;break}h.push(t[i]),i+=1}s.push({kind:"codeBlock",language:o.language,value:h.join(`
|
|
39
|
-
`)}),a=i}return u(t.length),s.length>0?s:[{kind:"paragraph",value:e}]}function Rs(e){const n=ke.get(e.id);if(n&&n.text===e.text&&n.cwd===v.cwd)return ke.delete(e.id),ke.set(e.id,n),n.blocks;const t=kn(e.text);return Fe(ke,e.id,{text:e.text,cwd:v.cwd,blocks:t},Br).blocks}function $(e){return e.replace(/&/gu,"&").replace(/</gu,"<").replace(/>/gu,">").replace(/"/gu,""").replace(/'/gu,"'")}function gn(e){var t;const n=((t=e.trim().split(/\s+/u)[0])==null?void 0:t.toLowerCase())??"";return n?Dt[n]??n:""}function Hs(e,n){const t=gn(e);if(!t)return $(n);const s=Ee.value;if(!s)return $(n);try{if(s.getLanguage(t))return s.highlight(n,{language:t,ignoreIllegals:!0}).value}catch{}return $(n)}function yn(e,n){const t=`${ne.value}\0${gn(e)}\0${e}\0${n}`,s=ie.get(t);return s!==void 0?(ie.delete(t),ie.set(t,s),s):Fe(ie,t,Hs(e,n),Hr)}function J(e){return Z(e).map(n=>n.kind==="text"?$(n.value):n.kind==="bold"?`<strong class="message-bold-text">${$(n.value)}</strong>`:n.kind==="italic"?`<em class="message-italic-text">${$(n.value)}</em>`:n.kind==="strikethrough"?`<s class="message-strikethrough-text">${$(n.value)}</s>`:n.kind==="file"?`<a class="message-file-link" href="${$(z(n.path))}" target="_blank" rel="noopener noreferrer" title="${$(n.path)}">${$(n.displayPath)}</a>`:n.kind==="url"?`<a class="message-file-link" href="${$(n.href)}" target="_blank" rel="noopener noreferrer" title="${$(n.href)}">${$(n.value)}</a>`:`<code class="message-inline-code">${$(n.value)}</code>`).join("")}function Ws(e){return e.paragraphs.map(n=>`<div class="message-list-item-text message-list-item-paragraph">${J(n)}</div>`).join("")}function Ue(e){var s;const n=Ws(e),t=((s=e.children)==null?void 0:s.map(i=>wn(i)).join(""))??"";return n+t}function _n(e){return e?` style="text-align:${e}"`:""}function wn(e){if(e.kind==="paragraph")return`<p class="message-text">${J(e.value)}</p>`;if(e.kind==="heading"){const n=Math.min(6,Math.max(1,Math.trunc(e.level))),t=Kt(n),s=`message-heading ${Gt(n)}`;return`<${t} class="${s}">${J(e.value)}</${t}>`}if(e.kind==="blockquote")return`<blockquote class="message-blockquote">${J(e.value)}</blockquote>`;if(e.kind==="unorderedList")return`<ul class="message-list message-list-unordered">${e.items.map(t=>`<li class="message-list-item"><div class="message-list-item-content">${Ue(t)}</div></li>`).join("")}</ul>`;if(e.kind==="taskList")return`<ul class="message-list message-task-list">${e.items.map(t=>`<li class="message-task-item"><span class="message-task-checkbox" data-checked="${t.checked?"true":"false"}">${t.checked?"☑":"☐"}</span><div class="message-list-item-text">${J(t.text)}</div></li>`).join("")}</ul>`;if(e.kind==="orderedList"){const n=e.items.map(t=>`<li class="message-list-item"><div class="message-list-item-content">${Ue(t)}</div></li>`).join("");return`<ol class="message-list message-list-ordered" start="${e.start}">${n}</ol>`}if(e.kind==="table"){const n=e.headers.map((i,a)=>`<th class="message-table-head-cell"${_n(e.alignments[a]??null)}>${J(i)}</th>`).join(""),t=e.rows.map(i=>'<tr class="message-table-body-row">'+i.map((a,u)=>`<td class="message-table-cell"${_n(e.alignments[u]??null)}>${J(a)}</td>`).join("")+"</tr>").join(""),s=t?`<tbody>${t}</tbody>`:"";return`<div class="message-table-wrap"><table class="message-table"><thead><tr>${n}</tr></thead>${s}</table></div>`}return e.kind==="codeBlock"?`<div class="message-code-block">${e.language?`<div class="message-code-language">${$(e.language)}</div>`:""}<pre class="message-code-pre"><code class="hljs">${yn(e.language,e.value)}</code></pre></div>`:e.kind==="thematicBreak"?'<hr class="message-divider">':`<img class="message-image-preview message-markdown-image" src="${$(e.url)}" alt="${$(e.alt||"Embedded message image")}" loading="lazy">`}function yt(e){const n=`${v.cwd}\0${ne.value}\0${e}`,t=se.get(n);if(t&&t.text===e&&t.cwd===v.cwd&&t.highlightVersion===ne.value)return se.delete(n),se.set(n,t),t.html;const s=kn(e).map(i=>wn(i)).join("");return Fe(se,n,{text:e,cwd:v.cwd,highlightVersion:ne.value,html:s},Rr).html}function Os(){const e=V.value,n=jt.value;!e||!n||(e.scrollTop=e.scrollHeight,n.scrollIntoView({block:"end"}))}function bn(e){return e.scrollHeight-(e.scrollTop+e.clientHeight)<=Er}function qe(e){if(!v.activeThreadId)return;const n=Math.max(e.scrollHeight-e.clientHeight,0),t=n>0?Math.min(Math.max(e.scrollTop/n,0),1):1;Pe("updateScrollState",{threadId:v.activeThreadId,state:{scrollTop:e.scrollTop,isAtBottom:bn(e),scrollRatio:t}})}function zs(){const e=V.value;if(!e)return;if(O.value){Ke();return}const n=v.scrollState;if(!n||n.isAtBottom){qe(e);return}const t=Math.max(e.scrollHeight-e.clientHeight,0),s=n.scrollTop;e.scrollTop=Math.min(Math.max(s,0),t),qe(e)}function Ke(){const e=V.value;e&&(Os(),qe(e))}function _t(){return O.value}function xn(){if(!_t()){Ae=0,A=0;return}if(Ke(),Ae-=1,Ae<=0){A=0;return}A=requestAnimationFrame(xn)}function Ge(e=6){_t()&&(A&&(cancelAnimationFrame(A),A=0),Ae=Math.max(e,1),A=requestAnimationFrame(xn))}function Cn(){Ge(3)}function $n(){O.value=!0,Ke(),Ge(4)}async function Ln(){const e=V.value;if(!e||!ct.value||K.value)return;K.value=!0;const n=v.activeThreadId,t=e.scrollHeight,s=e.scrollTop;F.value=Math.max(0,F.value-Wr),await Ct(),v.activeThreadId===n&&(e.scrollTop=s+(e.scrollHeight-t),K.value=!1)}be({jumpToLatest:$n});function js(){if(!_t())return;const e=V.value;if(!e)return;const n=e.querySelectorAll("img.message-image-preview");for(const t of n)t.complete||Vt.has(t)||(Vt.add(t),t.addEventListener("load",Cn,{once:!0}),t.addEventListener("error",Cn,{once:!0}))}async function wt(){return ve||(ve=Ct().then(()=>new Promise(e=>{U&&cancelAnimationFrame(U),U=requestAnimationFrame(()=>{U=0,ve=null,zs(),js(),Ge(),e()})})),ve)}function Ds(){ke.clear(),ge.clear(),se.clear(),ie.clear()}Y(()=>v.messages,async e=>{if(v.isLoading)return;const n=new Set(e.filter(t=>t.messageType==="commandExecution"&&t.commandExecution).map(t=>t.id));de.value=Ie(de.value,n),W.value=Ie(W.value,n),he.value=Ie(he.value,new Set(Object.keys(it.value))),fe.value=Ie(fe.value,new Set([...Object.keys(We.value),...Object.keys(ht.value)])),O.value?F.value=Math.max(0,e.length-Tt):F.value=Math.min(F.value,Math.max(0,e.length-1)),await wt()}),Y(()=>v.messages.some(e=>e.text.includes("```")),e=>{!e||Ee.value||Xn()},{immediate:!0}),Y(st,(e,n)=>{if(!n||n===e||!W.value.has(n))return;const t=new Set(W.value);t.delete(n),W.value=t}),Y(()=>v.pendingRequests,async()=>{v.isLoading||await wt()},{deep:!0}),Y(()=>v.liveOverlay,async e=>{e&&O.value&&(await Ct(),Ke(),Ge(8))},{deep:!0}),Y(()=>v.isLoading,async e=>{e||(F.value=Math.max(0,v.messages.length-Tt),await wt())}),Y(()=>v.activeThreadId,()=>{Kn.value=null,O.value=!0,me.value="",K.value=!1,F.value=Math.max(0,v.messages.length-Tt)},{flush:"post"});function Vs(){const e=V.value;!e||v.isLoading||(O.value=bn(e),qe(e),ct.value&&!K.value&&e.scrollTop<Or&&Ln())}const bt=b(new Set);function Tn(e,n){return`${e}:${n}`}function Ns(e,n){return bt.value.has(Tn(e,n))}function Us(e,n){const t=new Set(bt.value);t.add(Tn(e,n)),bt.value=t,Nt.value+=1}function Mn(e){me.value=e}function Sn(){me.value=""}return Gs(()=>{window.addEventListener("pointerdown",on),window.addEventListener("blur",an),window.addEventListener("keydown",rn)}),Zs(()=>{Ds(),U&&(cancelAnimationFrame(U),U=0),A&&(cancelAnimationFrame(A),A=0),q&&(clearTimeout(q),q=null),window.removeEventListener("pointerdown",on),window.removeEventListener("blur",an),window.removeEventListener("keydown",rn)}),(e,n)=>(r(),l("section",{class:"conversation-root",onContextmenuCapture:Ls},[M.isLoading?(r(),l("p",li,"Loading messages...")):M.messages.length===0&&M.pendingRequests.length===0&&!M.liveOverlay?(r(),l("p",ci," No messages in this thread yet. ")):(r(),l("ul",{key:2,ref_key:"conversationListRef",ref:V,class:"conversation-list",onScroll:Vs},[ct.value?(r(),l("li",ui,[d("button",{type:"button",class:"load-more-button",disabled:K.value,onClick:Ln},f(K.value?"Loading…":"Load earlier messages"),9,di)])):k("",!0),(r(!0),l(g,null,w(Gn.value,t=>{var s,i,a,u;return r(),l(g,{key:t.id},[!Wn.value.has(t.id)&&!as.value.has(t.id)?(r(),l("li",{key:0,class:"conversation-item","data-role":t.role,"data-message-type":t.messageType||""},[E(t)?(r(),l("div",fi,[d("div",pi,[Le(t).length>0?(r(),l("button",{key:0,type:"button",class:C(["cmd-row cmd-row-group cmd-compact",[Se(t),{"cmd-expanded":lt(t)}]]),onClick:o=>zn(t)},[d("span",{class:C(["cmd-chevron",{"cmd-chevron-open":lt(t)}])},"▶",2),d("span",vi,f(jn(t)),1),d("span",ki,f(Dn(t)),1)],10,mi)):k("",!0),Le(t).length>0?(r(),l("div",{key:1,class:C(["cmd-group-wrap",{"cmd-group-visible":lt(t)}])},[d("div",gi,[(r(!0),l(g,null,w(Rt(t),o=>{var h,c;return r(),l("div",{key:`grouped-cmd-${o.id}`,class:"worked-cmd-item"},[d("button",{type:"button",class:C(["cmd-row",[Se(o),{"cmd-expanded":B(o),"cmd-compact":!0}]]),onClick:m=>rt(o)},[d("span",{class:C(["cmd-chevron",{"cmd-chevron-open":B(o)}])},"▶",2),d("code",_i,f(((h=o.commandExecution)==null?void 0:h.command)||"(command)"),1),d("span",wi,f(Me(o)),1)],10,yi),d("div",{class:C(["cmd-output-wrap",{"cmd-output-visible":B(o)}])},[d("div",bi,[d("pre",{class:C(["cmd-output",{"cmd-output-condensed":at(o)}]),textContent:f(((c=o.commandExecution)==null?void 0:c.aggregatedOutput)||"(no output)")},null,10,xi)])],2)])}),128))])],2)):(r(),l(g,{key:2},[d("button",{type:"button",class:C(["cmd-row",[Se(t),{"cmd-expanded":B(t),"cmd-compact":ot(t)}]]),onClick:o=>rt(t)},[d("span",{class:C(["cmd-chevron",{"cmd-chevron-open":B(t)}])},"▶",2),d("code",$i,f(((s=t.commandExecution)==null?void 0:s.command)||"(command)"),1),d("span",Li,f(Me(t)),1)],10,Ci),d("div",{class:C(["cmd-output-wrap",{"cmd-output-visible":B(t)}])},[d("div",Ti,[d("pre",{class:C(["cmd-output",{"cmd-output-condensed":at(t)}]),textContent:f(((i=t.commandExecution)==null?void 0:i.aggregatedOutput)||"(no output)")},null,10,Mi)])],2)],64))])])):nt(t)?(r(),l("div",{key:1,class:"message-row","data-role":t.role,"data-message-type":t.messageType||""},[d("div",{class:"message-stack","data-role":t.role},[d("article",{class:"message-body","data-role":t.role},[le(t)?(r(),l("section",Ai,[d("button",{type:"button",class:C(["cmd-row cmd-row-group cmd-compact file-change-summary-row",{"cmd-expanded":te(t)}]),onClick:o=>Wt(t)},[d("span",{class:C(["cmd-chevron",{"cmd-chevron-open":te(t)}])},"▶",2),d("span",Bi,f(en(le(t))),1),d("span",Fi,[(r(!0),l(g,null,w(tn(le(t)),o=>(r(),l("span",{key:`summary-status:${t.id}:${o.tone}:${o.label}`,class:"file-change-signed-count","data-tone":o.tone},f(o.label),9,Ri))),128))])],10,Ei),d("div",{class:C(["cmd-group-wrap",{"cmd-group-visible":te(t)}])},[d("div",Hi,[d("ul",Wi,[(r(!0),l(g,null,w(((a=le(t))==null?void 0:a.changes)??[],o=>(r(),l("li",{key:`file-change:${t.id}:${o.path}:${o.movedToPath||""}`,class:"file-change-item"},[d("span",{class:"file-change-badge","data-operation":Oe(o)},f(ce(o)),9,Oi),d("button",{type:"button",class:"file-change-path-button",title:o.path,onClick:h=>Te(le(t),o)},f(S(o.path)),9,zi),o.movedToPath?(r(),l("span",ji,"→")):k("",!0),o.movedToPath?(r(),l("button",{key:1,type:"button",class:"file-change-path-button",title:o.movedToPath,onClick:h=>Te(le(t),o)},f(S(o.movedToPath)),9,Di)):k("",!0),o.addedLineCount>0||o.removedLineCount>0?(r(),l("span",Vi,[(r(!0),l(g,null,w(Qt(o),h=>(r(),l("span",{key:`change-delta:${t.id}:${o.path}:${h.tone}:${h.label}`,class:"file-change-signed-count","data-tone":h.tone},f(h.label),9,Ni))),128))])):k("",!0)]))),128))])])],2)])):k("",!0)],8,Pi)],8,Ii)],8,Si)):(r(),l("div",{key:2,class:"message-row","data-role":t.role,"data-message-type":t.messageType||""},[d("div",{class:"message-stack","data-role":t.role},[d("article",{class:"message-body","data-role":t.role},[t.images&&t.images.length>0?(r(),l("ul",{key:0,class:C(["message-image-list",{"message-generated-image-list":t.messageType==="imageView"}]),"data-role":t.role},[(r(!0),l(g,null,w(t.images,o=>(r(),l("li",{key:o,class:"message-image-item"},[d("button",{class:"message-image-button",type:"button",onClick:h=>Mn(o)},[d("img",{class:C(["message-image-preview",{"message-generated-image-preview":t.messageType==="imageView"}]),src:o,alt:t.messageType==="imageView"?"Generated image":"Message image preview",loading:"lazy"},null,10,Xi)],8,Zi)]))),128))],10,Gi)):k("",!0),t.fileAttachments&&t.fileAttachments.length>0?(r(),l("div",Ji,[(r(!0),l(g,null,w(t.fileAttachments,o=>(r(),l("span",{key:`${t.id}:${o.path}`,class:"message-file-chip"},[n[5]||(n[5]=d("span",{class:"message-file-chip-icon"},"📄",-1)),d("a",{class:"message-file-link message-file-chip-name",href:z(o.path),target:"_blank",rel:"noopener noreferrer",title:o.path},f(o.label),9,Yi)]))),128))])):k("",!0),t.text.length>0?(r(),l("article",{key:2,class:"message-card","data-role":t.role},[t.messageType==="worked"?(r(),l("div",eo,[d("button",{type:"button",class:"worked-separator",onClick:o=>Vn(t)},[n[6]||(n[6]=d("span",{class:"worked-separator-line","aria-hidden":"true"},null,-1)),d("span",{class:C(["worked-chevron",{"worked-chevron-open":Ht(t)}])},"▶",2),d("p",no,f(t.text),1),n[7]||(n[7]=d("span",{class:"worked-separator-line","aria-hidden":"true"},null,-1))],8,to),Ht(t)?(r(),l("div",so,[(r(!0),l(g,null,w(qn(M.messages,M.messages.indexOf(t)),o=>{var h,c;return r(),l("div",{key:`worked-cmd-${o.id}`,class:"worked-cmd-item"},[d("button",{type:"button",class:C(["cmd-row",[Se(o),{"cmd-expanded":B(o),"cmd-compact":ot(o)}]]),onClick:m=>rt(o)},[d("span",{class:C(["cmd-chevron",{"cmd-chevron-open":B(o)}])},"▶",2),d("code",oo,f(((h=o.commandExecution)==null?void 0:h.command)||"(command)"),1),d("span",ao,f(Me(o)),1)],10,io),d("div",{class:C(["cmd-output-wrap",{"cmd-output-visible":B(o)}])},[d("div",ro,[d("pre",{class:C(["cmd-output",{"cmd-output-condensed":at(o)}]),textContent:f(((c=o.commandExecution)==null?void 0:c.aggregatedOutput)||"(no output)")},null,10,lo)])],2)])}),128))])):k("",!0)])):tt(t)?(r(),l("div",{key:1,class:"plan-card","data-streaming":t.messageType==="plan.live"},[d("div",uo,[n[8]||(n[8]=d("p",{class:"plan-card-title"},"Plan",-1)),t.messageType==="plan.live"?(r(),l("span",ho,"Updating")):k("",!0)]),Et(t)?(r(),l("div",{key:0,class:"plan-card-explanation plan-card-markdown",innerHTML:yt(Et(t))},null,8,fo)):k("",!0),Bt(t).length>0?(r(),l("ol",po,[(r(!0),l(g,null,w(Bt(t),(o,h)=>(r(),l("li",{key:`${t.id}:plan-step:${h}`,class:"plan-step-item","data-status":o.status},[d("span",{class:"plan-step-status","data-status":o.status},f(On(o.status)),9,vo),d("div",{class:"plan-step-text plan-card-markdown",innerHTML:yt(o.step)},null,8,ko)],8,mo))),128))])):(r(),l("div",{key:2,class:"plan-card-markdown",innerHTML:yt(t.text)},null,8,go)),Rn(t)?(r(),l("div",yo,[d("button",{type:"button",class:"plan-card-implement-button",onClick:o=>Hn(t)}," Implement plan ",8,_o)])):k("",!0)],8,co)):Xs([t.id,t.text,v.cwd,ne.value,Nt.value],()=>(r(),l("div",{key:2,class:"message-text-flow"},[(r(!0),l(g,null,w(Rs(t),(o,h)=>(r(),l(g,{key:`block-${h}`},[o.kind==="paragraph"?(r(),l("p",wo,[(r(!0),l(g,null,w(Z(o.value),(c,m)=>(r(),l(g,{key:`seg-${h}-${m}`},[c.kind==="text"?(r(),l("span",bo,f(c.value),1)):c.kind==="bold"?(r(),l("strong",xo,f(c.value),1)):c.kind==="italic"?(r(),l("em",Co,f(c.value),1)):c.kind==="strikethrough"?(r(),l("s",$o,f(c.value),1)):c.kind==="file"?(r(),l("a",{key:4,class:"message-file-link",href:z(c.path),target:"_blank",rel:"noopener noreferrer",title:c.path},f(c.displayPath),9,Lo)):c.kind==="url"?(r(),l("a",{key:5,class:"message-file-link",href:c.href,target:"_blank",rel:"noopener noreferrer",title:c.href},f(c.value),9,To)):(r(),l("code",Mo,f(c.value),1))],64))),128))])):o.kind==="heading"?(r(),ni(si(Kt(o.level)),{key:1,class:C(["message-heading",Gt(o.level)])},{default:An(()=>[(r(!0),l(g,null,w(Z(o.value),(c,m)=>(r(),l(g,{key:`heading-seg-${h}-${m}`},[c.kind==="text"?(r(),l("span",So,f(c.value),1)):c.kind==="bold"?(r(),l("strong",Io,f(c.value),1)):c.kind==="italic"?(r(),l("em",Po,f(c.value),1)):c.kind==="strikethrough"?(r(),l("s",Ao,f(c.value),1)):c.kind==="file"?(r(),l("a",{key:4,class:"message-file-link",href:z(c.path),target:"_blank",rel:"noopener noreferrer",title:c.path},f(c.displayPath),9,Eo)):c.kind==="url"?(r(),l("a",{key:5,class:"message-file-link",href:c.href,target:"_blank",rel:"noopener noreferrer",title:c.href},f(c.value),9,Bo)):(r(),l("code",Fo,f(c.value),1))],64))),128))]),_:2},1032,["class"])):o.kind==="blockquote"?(r(),l("blockquote",Ro,[(r(!0),l(g,null,w(Z(o.value),(c,m)=>(r(),l(g,{key:`quote-seg-${h}-${m}`},[c.kind==="text"?(r(),l("span",Ho,f(c.value),1)):c.kind==="bold"?(r(),l("strong",Wo,f(c.value),1)):c.kind==="italic"?(r(),l("em",Oo,f(c.value),1)):c.kind==="strikethrough"?(r(),l("s",zo,f(c.value),1)):c.kind==="file"?(r(),l("a",{key:4,class:"message-file-link",href:z(c.path),target:"_blank",rel:"noopener noreferrer",title:c.path},f(c.displayPath),9,jo)):c.kind==="url"?(r(),l("a",{key:5,class:"message-file-link",href:c.href,target:"_blank",rel:"noopener noreferrer",title:c.href},f(c.value),9,Do)):(r(),l("code",Vo,f(c.value),1))],64))),128))])):o.kind==="unorderedList"?(r(),l("ul",No,[(r(!0),l(g,null,w(o.items,(c,m)=>(r(),l("li",{key:`ul-${h}-${m}`,class:"message-list-item"},[d("div",{class:"message-list-item-content",innerHTML:Ue(c)},null,8,Uo)]))),128))])):o.kind==="taskList"?(r(),l("ul",qo,[(r(!0),l(g,null,w(o.items,(c,m)=>(r(),l("li",{key:`task-${h}-${m}`,class:"message-task-item"},[d("span",{class:"message-task-checkbox","data-checked":c.checked},f(c.checked?"☑":"☐"),9,Ko),d("div",Go,[(r(!0),l(g,null,w(Z(c.text),(p,y)=>(r(),l(g,{key:`task-seg-${h}-${m}-${y}`},[p.kind==="text"?(r(),l("span",Zo,f(p.value),1)):p.kind==="bold"?(r(),l("strong",Xo,f(p.value),1)):p.kind==="italic"?(r(),l("em",Jo,f(p.value),1)):p.kind==="strikethrough"?(r(),l("s",Yo,f(p.value),1)):p.kind==="file"?(r(),l("a",{key:4,class:"message-file-link",href:z(p.path),target:"_blank",rel:"noopener noreferrer",title:p.path},f(p.displayPath),9,Qo)):p.kind==="url"?(r(),l("a",{key:5,class:"message-file-link",href:p.href,target:"_blank",rel:"noopener noreferrer",title:p.href},f(p.value),9,ea)):(r(),l("code",ta,f(p.value),1))],64))),128))])]))),128))])):o.kind==="orderedList"?(r(),l("ol",{key:5,class:"message-list message-list-ordered",start:o.start},[(r(!0),l(g,null,w(o.items,(c,m)=>(r(),l("li",{key:`ol-${h}-${m}`,class:"message-list-item"},[d("div",{class:"message-list-item-content",innerHTML:Ue(c)},null,8,sa)]))),128))],8,na)):o.kind==="table"?(r(),l("div",ia,[d("table",oa,[d("thead",null,[d("tr",null,[(r(!0),l(g,null,w(o.headers,(c,m)=>(r(),l("th",{key:`th-${h}-${m}`,class:"message-table-head-cell",style:$t({textAlign:o.alignments[m]??"left"})},[(r(!0),l(g,null,w(Z(c),(p,y)=>(r(),l(g,{key:`th-seg-${h}-${m}-${y}`},[p.kind==="text"?(r(),l("span",aa,f(p.value),1)):p.kind==="bold"?(r(),l("strong",ra,f(p.value),1)):p.kind==="italic"?(r(),l("em",la,f(p.value),1)):p.kind==="strikethrough"?(r(),l("s",ca,f(p.value),1)):p.kind==="file"?(r(),l("a",{key:4,class:"message-file-link",href:z(p.path),target:"_blank",rel:"noopener noreferrer",title:p.path},f(p.displayPath),9,ua)):p.kind==="url"?(r(),l("a",{key:5,class:"message-file-link",href:p.href,target:"_blank",rel:"noopener noreferrer",title:p.href},f(p.value),9,da)):(r(),l("code",ha,f(p.value),1))],64))),128))],4))),128))])]),o.rows.length>0?(r(),l("tbody",fa,[(r(!0),l(g,null,w(o.rows,(c,m)=>(r(),l("tr",{key:`tr-${h}-${m}`,class:"message-table-body-row"},[(r(!0),l(g,null,w(c,(p,y)=>(r(),l("td",{key:`td-${h}-${m}-${y}`,class:"message-table-cell",style:$t({textAlign:o.alignments[y]??"left"})},[(r(!0),l(g,null,w(Z(p),(x,j)=>(r(),l(g,{key:`td-seg-${h}-${m}-${y}-${j}`},[x.kind==="text"?(r(),l("span",pa,f(x.value),1)):x.kind==="bold"?(r(),l("strong",ma,f(x.value),1)):x.kind==="italic"?(r(),l("em",va,f(x.value),1)):x.kind==="strikethrough"?(r(),l("s",ka,f(x.value),1)):x.kind==="file"?(r(),l("a",{key:4,class:"message-file-link",href:z(x.path),target:"_blank",rel:"noopener noreferrer",title:x.path},f(x.displayPath),9,ga)):x.kind==="url"?(r(),l("a",{key:5,class:"message-file-link",href:x.href,target:"_blank",rel:"noopener noreferrer",title:x.href},f(x.value),9,ya)):(r(),l("code",_a,f(x.value),1))],64))),128))],4))),128))]))),128))])):k("",!0)])])):o.kind==="codeBlock"?(r(),l("div",wa,[o.language?(r(),l("div",ba,f(o.language),1)):k("",!0),d("pre",xa,[d("code",{class:"hljs",innerHTML:yn(o.language,o.value)},null,8,Ca)])])):o.kind==="thematicBreak"?(r(),l("hr",$a)):Ns(t.id,h)?(r(),l("p",La,f(o.markdown),1)):(r(),l("button",{key:10,class:"message-image-button",type:"button",onClick:c=>Mn(o.url)},[d("img",{class:"message-image-preview message-markdown-image",src:o.url,alt:o.alt||"Embedded message image",loading:"lazy",onError:c=>Us(t.id,h)},null,40,Ma)],8,Ta))],64))),128))])),n,0)],8,Qi)):k("",!0),re(t)?(r(),l("section",Sa,[d("button",{type:"button",class:C(["cmd-row cmd-row-group cmd-compact file-change-summary-row",{"cmd-expanded":te(t)}]),onClick:o=>Wt(t)},[d("span",{class:C(["cmd-chevron",{"cmd-chevron-open":te(t)}])},"▶",2),d("span",Pa,f(en(re(t))),1),d("span",Aa,[(r(!0),l(g,null,w(tn(re(t)),o=>(r(),l("span",{key:`summary-status:${t.id}:${o.tone}:${o.label}`,class:"file-change-signed-count","data-tone":o.tone},f(o.label),9,Ea))),128))])],10,Ia),d("div",{class:C(["cmd-group-wrap",{"cmd-group-visible":te(t)}])},[d("div",Ba,[d("ul",Fa,[(r(!0),l(g,null,w(((u=re(t))==null?void 0:u.changes)??[],o=>(r(),l("li",{key:`file-change:inline:${t.id}:${o.path}:${o.movedToPath||""}`,class:"file-change-item"},[d("span",{class:"file-change-badge","data-operation":Oe(o)},f(ce(o)),9,Ra),d("button",{type:"button",class:"file-change-path-button",title:o.path,onClick:h=>Te(re(t),o)},f(S(o.path)),9,Ha),o.movedToPath?(r(),l("span",Wa,"→")):k("",!0),o.movedToPath?(r(),l("button",{key:1,type:"button",class:"file-change-path-button",title:o.movedToPath,onClick:h=>Te(re(t),o)},f(S(o.movedToPath)),9,Oa)):k("",!0),o.addedLineCount>0||o.removedLineCount>0?(r(),l("span",za,[(r(!0),l(g,null,w(Qt(o),h=>(r(),l("span",{key:`change-delta:inline:${t.id}:${o.path}:${h.tone}:${h.label}`,class:"file-change-signed-count","data-tone":h.tone},f(h.label),9,ja))),128))])):k("",!0)]))),128))])])],2)])):k("",!0),Jt(t)||sn(t)?(r(),l("div",{key:4,class:"message-toolbar","data-role":t.role},[sn(t)?(r(),l("button",{key:0,type:"button",class:"message-edit-button","aria-label":"Edit this message",title:"Edit this message",onClick:o=>_s(t.id)},[Q(Js,{class:"icon-svg message-edit-icon"}),n[9]||(n[9]=d("span",{class:"message-edit-label"},"Edit message",-1))],8,Va)):k("",!0),ns(t)?(r(),l("button",{key:1,type:"button",class:"message-fork-button","aria-label":"Fork thread from this response",title:"Fork thread from this response",onClick:o=>ys(t.id)},[Q(Ys,{class:"icon-svg message-fork-icon"}),n[10]||(n[10]=d("span",{class:"message-fork-label"},"Fork",-1))],8,Na)):k("",!0),Jt(t)?(r(),l("button",{key:2,type:"button",class:"message-copy-button","data-copied":N.value===t.id,"aria-label":N.value===t.id?"Response copied":"Copy response",title:N.value===t.id?"Response copied":"Copy response",onClick:o=>gs(t.id)},[Q(ri,{class:"icon-svg message-copy-icon"}),d("span",qa,f(N.value===t.id?"Copied":"Copy"),1)],8,Ua)):k("",!0)],8,Da)):k("",!0)],8,Ki)],8,qi)],8,Ui))],8,hi)):k("",!0)],64)}),128)),M.liveOverlay?(r(),l("li",Ka,[d("div",Ga,[d("div",Za,[d("article",Xa,[d("p",Ja,f(M.liveOverlay.activityLabel),1),M.liveOverlay.reasoningText?(r(),l("p",Ya,f(M.liveOverlay.reasoningText),1)):k("",!0),M.liveOverlay.errorText?(r(),l("p",Qa,f(M.liveOverlay.errorText),1)):k("",!0)])])])])):k("",!0),d("li",{ref_key:"bottomAnchorRef",ref:jt,class:"conversation-bottom-anchor"},null,512)],544)),Zn.value?(r(),l("button",{key:3,type:"button",class:"jump-to-latest-button",title:"Jump to latest","aria-label":"Jump to latest output",onClick:$n},[Q(Qs,{class:"icon-svg jump-to-latest-icon"})])):k("",!0),me.value.length>0?(r(),l("div",{key:4,class:"image-modal-backdrop",onClick:Sn},[d("div",{class:"image-modal-content",onClick:n[1]||(n[1]=Ze(()=>{},["stop"]))},[d("button",{class:"image-modal-close",type:"button","aria-label":"Close image preview",onClick:Sn},[Q(Pn,{class:"icon-svg"})]),d("img",{class:"image-modal-image",src:me.value,alt:"Expanded message image"},null,8,er)])])):k("",!0),pe.value?(r(),l("div",{key:5,ref_key:"fileLinkContextMenuRef",ref:Mt,class:"file-link-context-menu",style:$t(Cs.value),onClick:n[2]||(n[2]=Ze(()=>{},["stop"]))},[d("button",{type:"button",class:"file-link-context-menu-item",onClick:Ts}," Open link "),d("button",{type:"button",class:"file-link-context-menu-item",onClick:Ss}," Copy link "),Qe.value?(r(),l("button",{key:0,type:"button",class:"file-link-context-menu-item",onClick:Ms}," Edit file ")):k("",!0)],4)):k("",!0),I.value?(r(),l("div",{key:6,class:"diff-viewer-backdrop",onClick:Ot},[d("div",{class:"diff-viewer-shell",onClick:n[4]||(n[4]=Ze(()=>{},["stop"]))},[Lt(Ce)?k("",!0):(r(),l("aside",tr,[d("div",nr,[n[11]||(n[11]=d("p",{class:"diff-viewer-sidebar-title"},"Changed files",-1)),d("p",sr,f(ze(ue.value.length)),1)]),d("div",ir,[(r(!0),l(g,null,w(ue.value,t=>(r(),l("button",{key:`diff-viewer:${T(t)}`,type:"button",class:"diff-viewer-file-button","data-active":T(t)===T(I.value),onClick:s=>zt(t)},[d("span",{class:"file-change-badge","data-operation":Oe(t)},f(ce(t)),9,ar),d("span",rr,[ee(f(S(t.path))+" ",1),t.movedToPath?(r(),l(g,{key:0},[ee(" → "+f(S(t.movedToPath)),1)],64)):k("",!0)]),G(t)?(r(),l("span",lr,f(G(t)),1)):k("",!0)],8,or))),128))])])),d("section",cr,[d("div",ur,[d("div",dr,[d("p",hr,[ee(f(S(I.value.path))+" ",1),I.value.movedToPath?(r(),l(g,{key:0},[ee(" → "+f(S(I.value.movedToPath)),1)],64)):k("",!0)]),d("p",fr,[ee(f(ce(I.value))+" ",1),G(I.value)?(r(),l("span",pr," · "+f(G(I.value)),1)):k("",!0)])]),d("div",mr,[Lt(Ce)?(r(),l("button",{key:0,type:"button",class:"diff-viewer-mobile-files-button",onClick:Nn},f(ze(ue.value.length)),1)):k("",!0),d("button",{class:"image-modal-close diff-viewer-close",type:"button","aria-label":"Close diff viewer",onClick:Ot},[Q(Pn,{class:"icon-svg"})])])]),ms(I.value)?(r(),l("div",kr,[d("div",gr,[d("span",yr,f(cs(I.value)||"diff"),1)]),d("div",_r,[(r(!0),l(g,null,w(ps.value,t=>(r(),l("div",{key:t.key,class:"diff-viewer-line","data-kind":t.kind},[d("span",br,f(t.oldLine??""),1),d("span",xr,f(t.newLine??""),1),d("span",Cr,f(vs(t)),1),d("code",{class:"diff-viewer-line-code",innerHTML:$(t.text)||" "},null,8,$r)],8,wr))),128))])])):(r(),l("div",vr,[...n[12]||(n[12]=[d("p",{class:"diff-viewer-empty-title"},"No diff available",-1),d("p",{class:"diff-viewer-empty-text"},"This summary was restored from the final answer text, but the thread history does not include patch diff content for this file.",-1)])]))]),Q(ei,{name:"diff-viewer-sheet"},{default:An(()=>[Lt(Ce)&&D.value?(r(),l("div",{key:0,class:"diff-viewer-mobile-sheet-backdrop",onClick:Un},[d("div",{class:"diff-viewer-mobile-sheet",onClick:n[3]||(n[3]=Ze(()=>{},["stop"]))},[n[14]||(n[14]=d("div",{class:"diff-viewer-mobile-sheet-handle","aria-hidden":"true"},null,-1)),d("div",Lr,[n[13]||(n[13]=d("p",{class:"diff-viewer-sidebar-title"},"Changed files",-1)),d("p",Tr,f(ze(ue.value.length)),1)]),d("div",Mr,[(r(!0),l(g,null,w(ue.value,t=>(r(),l("button",{key:`diff-viewer-sheet:${T(t)}`,type:"button",class:"diff-viewer-file-button","data-active":T(t)===T(I.value),onClick:s=>zt(t)},[d("span",{class:"file-change-badge","data-operation":Oe(t)},f(ce(t)),9,Ir),d("span",Pr,[ee(f(S(t.path))+" ",1),t.movedToPath?(r(),l(g,{key:0},[ee(" → "+f(S(t.movedToPath)),1)],64)):k("",!0)]),G(t)?(r(),l("span",Ar,f(G(t)),1)):k("",!0)],8,Sr))),128))])])])):k("",!0)]),_:1})])])):k("",!0)],32))}}),Dr=En(zr,[["__scopeId","data-v-dd33b8d4"]]);export{Dr as default};
|