codexui-android 0.1.98 → 0.1.100
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-47WzZs4I.js +2 -0
- package/dist/assets/DirectoryHub-DkF7hkxl.css +1 -0
- package/dist/assets/{ReviewPane-BwO2MHvI.js → ReviewPane-W_UvYmui.js} +1 -1
- package/dist/assets/ThreadConversation-CSH0aUWx.js +39 -0
- package/dist/assets/ThreadConversation-DdzQ_R3z.css +1 -0
- package/dist/assets/{ThreadTerminalPanel-pVx2Zv0U.css → ThreadTerminalPanel-BfzQNi0v.css} +1 -1
- package/dist/assets/ThreadTerminalPanel-QkJZ7U3Y.js +38 -0
- package/dist/assets/index-B6Gx9sFJ.css +1 -0
- package/dist/assets/index-Cmr8liLe.js +63 -0
- package/dist/assets/{index.esm-DECIu6Fp.js → index.esm-BMAgl1KF.js} +1 -1
- package/dist/assets/{index.esm-DPq88-QA.js → index.esm-O-ekzJz9.js} +1 -16
- package/dist/assets/{index.esm-Bi-9KxvS.js → index.esm-TywpZG2x.js} +1 -1
- package/dist/index.html +2 -2
- package/dist-cli/index.js +921 -348
- package/dist-cli/index.js.map +1 -1
- package/package.json +2 -1
- package/scripts/dev.cjs +11 -7
- package/dist/assets/DirectoryHub-CAcNjRYF.css +0 -1
- package/dist/assets/DirectoryHub-D6h4lJqw.js +0 -2
- package/dist/assets/ThreadConversation-CsHUh1AP.js +0 -39
- package/dist/assets/ThreadConversation-J3tJ8-9X.css +0 -1
- package/dist/assets/ThreadTerminalPanel-BTHfTRnz.js +0 -38
- package/dist/assets/index-23FodFfK.js +0 -64
- package/dist/assets/index-Wz7G59hk.css +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "codexui-android",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.100",
|
|
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",
|
|
@@ -59,6 +59,7 @@
|
|
|
59
59
|
"profile:thread": "PROFILE_ROUTE='#/thread/019da7c0-4e12-7a91-837c-f7c11cc8ab6c' node scripts/profile-browser-runtime.cjs"
|
|
60
60
|
},
|
|
61
61
|
"dependencies": {
|
|
62
|
+
"@composio/client": "0.1.0-alpha.66",
|
|
62
63
|
"@xterm/addon-fit": "^0.11.0",
|
|
63
64
|
"@xterm/xterm": "^6.0.0",
|
|
64
65
|
"commander": "^13.1.0",
|
package/scripts/dev.cjs
CHANGED
|
@@ -31,6 +31,8 @@ function run(command, args, options = {}) {
|
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
const passthroughArgs = process.argv.slice(2)
|
|
34
|
+
const viteBinPath = join(process.cwd(), 'node_modules', '.bin', process.platform === 'win32' ? 'vite.cmd' : 'vite')
|
|
35
|
+
const vueTscBinPath = join(process.cwd(), 'node_modules', '.bin', process.platform === 'win32' ? 'vue-tsc.cmd' : 'vue-tsc')
|
|
34
36
|
|
|
35
37
|
if (isAndroidRuntime()) {
|
|
36
38
|
const cliPath = join(process.cwd(), 'dist-cli', 'index.js')
|
|
@@ -47,12 +49,14 @@ if (isAndroidRuntime()) {
|
|
|
47
49
|
])
|
|
48
50
|
}
|
|
49
51
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
52
|
+
if (!existsSync(viteBinPath) || !existsSync(vueTscBinPath)) {
|
|
53
|
+
const install = spawnSync('pnpm', ['install'], { stdio: 'inherit', env: process.env })
|
|
54
|
+
if (install.error) {
|
|
55
|
+
throw install.error
|
|
56
|
+
}
|
|
57
|
+
if (install.status !== 0) {
|
|
58
|
+
process.exit(install.status ?? 1)
|
|
59
|
+
}
|
|
56
60
|
}
|
|
57
61
|
|
|
58
|
-
run(
|
|
62
|
+
run(viteBinPath, passthroughArgs)
|
|
@@ -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-501b7eb4],[data-v-501b7eb4]:before,[data-v-501b7eb4]:after,[data-v-501b7eb4]::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-501b7eb4]{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-501b7eb4]{background-color:color-mix(in oklab,var(--color-black,#000) 40%,transparent)}}@media(min-width:40rem){.sdm-overlay[data-v-501b7eb4]{align-items:center}}.sdm-panel[data-v-501b7eb4]{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-501b7eb4]{border-radius:var(--radius-2xl,1rem);max-height:80vh}}.sdm-header[data-v-501b7eb4]{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-501b7eb4]{padding:calc(var(--spacing,.25rem) * 5)}}.sdm-title-area[data-v-501b7eb4]{min-width:calc(var(--spacing,.25rem) * 0);align-items:center;gap:calc(var(--spacing,.25rem) * 3);display:flex}.sdm-avatar[data-v-501b7eb4]{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-501b7eb4]{min-width:calc(var(--spacing,.25rem) * 0);gap:calc(var(--spacing,.25rem) * .5);flex-direction:column;display:flex}.sdm-title-row[data-v-501b7eb4]{min-width:calc(var(--spacing,.25rem) * 0);align-items:center;gap:calc(var(--spacing,.25rem) * 2);display:flex}.sdm-title[data-v-501b7eb4]{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-501b7eb4]{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-501b7eb4]{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-501b7eb4]{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-501b7eb4]: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-501b7eb4]{height:calc(var(--spacing,.25rem) * 4);width:calc(var(--spacing,.25rem) * 4)}.sdm-body[data-v-501b7eb4]{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-501b7eb4]{padding:calc(var(--spacing,.25rem) * 5)}}.sdm-desc[data-v-501b7eb4]{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-501b7eb4]{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-501b7eb4]{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-501b7eb4] 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-501b7eb4] 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-501b7eb4] 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-501b7eb4] 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-501b7eb4] ul{margin:calc(var(--spacing,.25rem) * 0);padding-left:calc(var(--spacing,.25rem) * 4);list-style-type:disc}.sdm-readme[data-v-501b7eb4] li{margin-bottom:calc(var(--spacing,.25rem) * .5)}.sdm-readme[data-v-501b7eb4] strong{--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600)}.sdm-link[data-v-501b7eb4]{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-501b7eb4]:hover{color:var(--color-blue-700,oklch(48.8% .243 264.376));text-decoration-line:underline}}.sdm-footer[data-v-501b7eb4]{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-501b7eb4]{padding:calc(var(--spacing,.25rem) * 5)}}.sdm-footer-actions[data-v-501b7eb4]{align-items:center;gap:calc(var(--spacing,.25rem) * 2);display:flex}.sdm-btn[data-v-501b7eb4]{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-501b7eb4]:disabled{cursor:not-allowed;opacity:.5}.sdm-btn-primary[data-v-501b7eb4]{background-color:var(--color-zinc-900,oklch(21% .006 285.885));color:var(--color-white,#fff)}@media(hover:hover){.sdm-btn-primary[data-v-501b7eb4]:hover{background-color:var(--color-black,#000)}}.sdm-btn-danger[data-v-501b7eb4]{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-501b7eb4]:hover{background-color:var(--color-rose-700,oklch(51.4% .222 16.935))}}.sdm-btn-secondary[data-v-501b7eb4]{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-501b7eb4]: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-fbacfae9],[data-v-fbacfae9]:before,[data-v-fbacfae9]:after,[data-v-fbacfae9]::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}}}.skills-hub[data-v-fbacfae9]{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-fbacfae9]{gap:calc(var(--spacing,.25rem) * 4);padding:calc(var(--spacing,.25rem) * 6)}}.skills-hub-header[data-v-fbacfae9]{gap:calc(var(--spacing,.25rem) * 1);flex-direction:column;display:flex}.skills-hub-title[data-v-fbacfae9]{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-fbacfae9]{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-fbacfae9]{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-toolbar[data-v-fbacfae9]{align-items:stretch;gap:calc(var(--spacing,.25rem) * 2);flex-direction:column;display:flex}@media(min-width:40rem){.skills-hub-toolbar[data-v-fbacfae9]{flex-direction:row;align-items:center}}.skills-hub-search-wrap[data-v-fbacfae9]{align-items:center;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-inline:calc(var(--spacing,.25rem) * 3);padding-block:calc(var(--spacing,.25rem) * 2);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:1;display:flex}.skills-hub-search-wrap[data-v-fbacfae9]:focus-within{border-color:var(--color-zinc-400,oklch(70.5% .015 286.067));--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)}.skills-hub-search-icon[data-v-fbacfae9]{height:calc(var(--spacing,.25rem) * 4);width:calc(var(--spacing,.25rem) * 4);color:var(--color-zinc-400,oklch(70.5% .015 286.067));flex-shrink:0}.skills-hub-search[data-v-fbacfae9]{min-width:calc(var(--spacing,.25rem) * 0);--tw-border-style:none;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)));color:var(--color-zinc-800,oklch(27.4% .006 286.033));background-color:#0000;border-style:none;flex:1}.skills-hub-search[data-v-fbacfae9]::placeholder{color:var(--color-zinc-400,oklch(70.5% .015 286.067))}.skills-hub-search[data-v-fbacfae9]{--tw-outline-style:none;outline-style:none}.skills-hub-search-btn[data-v-fbacfae9]{cursor:pointer;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-white,#fff);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)));--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-search-btn[data-v-fbacfae9]: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-hub-count[data-v-fbacfae9]{font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));white-space:nowrap;color:var(--color-zinc-400,oklch(70.5% .015 286.067))}.skills-hub-sort[data-v-fbacfae9]{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-fbacfae9]: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-fbacfae9]{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-fbacfae9]{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-fbacfae9]{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-fbacfae9]{color:var(--color-zinc-700,oklch(37% .013 285.805))}@media(hover:hover){.skills-sync-badge-link[data-v-fbacfae9]: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-fbacfae9]{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-fbacfae9]{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-fbacfae9]{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-fbacfae9]{gap:calc(var(--spacing,.25rem) * 2);flex-wrap:wrap;display:flex}.skills-hub-toast[data-v-fbacfae9]{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-fbacfae9]{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-fbacfae9]{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-fbacfae9]{gap:calc(var(--spacing,.25rem) * 2);flex-direction:column;display:flex}.skills-hub-section-toggle[data-v-fbacfae9]{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-fbacfae9]:hover{color:var(--color-zinc-900,oklch(21% .006 285.885))}}.skills-hub-section-title[data-v-fbacfae9]{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-fbacfae9]{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-fbacfae9]{rotate:90deg}.skills-hub-grid[data-v-fbacfae9]{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-fbacfae9]{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:64rem){.skills-hub-grid[data-v-fbacfae9]{grid-template-columns:repeat(3,minmax(0,1fr))}}.skills-hub-loading[data-v-fbacfae9]{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-fbacfae9]{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-fbacfae9]{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-e0a061aa],[data-v-e0a061aa]:before,[data-v-e0a061aa]:after,[data-v-e0a061aa]::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-e0a061aa]{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-e0a061aa]{padding:calc(var(--spacing,.25rem) * 6)}}.directory-header[data-v-e0a061aa]{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-title[data-v-e0a061aa]{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-e0a061aa]{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-e0a061aa]{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-e0a061aa],.directory-action[data-v-e0a061aa],.directory-action-link[data-v-e0a061aa],.directory-modal-close[data-v-e0a061aa]{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-e0a061aa],.directory-action[data-v-e0a061aa],.directory-action-link[data-v-e0a061aa],.directory-modal-close[data-v-e0a061aa]):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-e0a061aa],.directory-action[data-v-e0a061aa],.directory-action-link[data-v-e0a061aa],.directory-modal-close[data-v-e0a061aa]):disabled{cursor:not-allowed;opacity:.5}.directory-action.primary[data-v-e0a061aa]{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-e0a061aa]:hover{background-color:var(--color-black,#000)}}.directory-action.danger[data-v-e0a061aa]{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-e0a061aa]:hover{background-color:var(--color-rose-700,oklch(51.4% .222 16.935))}}.directory-tabs[data-v-e0a061aa]{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-e0a061aa]{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-e0a061aa]:hover{color:var(--color-zinc-800,oklch(27.4% .006 286.033))}}.directory-tab.is-active[data-v-e0a061aa]{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-e0a061aa]{width:100%;max-width:var(--container-5xl,64rem);gap:calc(var(--spacing,.25rem) * 3);flex-direction:column;margin-inline:auto;display:flex}.directory-section-actions[data-v-e0a061aa]{justify-content:flex-end;display:flex}.directory-toolbar[data-v-e0a061aa]{gap:calc(var(--spacing,.25rem) * 2);flex-direction:column;display:flex}@media(min-width:40rem){.directory-toolbar[data-v-e0a061aa]{flex-direction:row;justify-content:space-between;align-items:center}}.directory-search[data-v-e0a061aa]{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-e0a061aa]::placeholder{color:var(--color-zinc-400,oklch(70.5% .015 286.067))}.directory-search[data-v-e0a061aa]:focus{border-color:var(--color-zinc-400,oklch(70.5% .015 286.067))}.directory-sort-group[data-v-e0a061aa]{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-e0a061aa]{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-e0a061aa]:hover{color:var(--color-zinc-800,oklch(27.4% .006 286.033))}}.directory-sort-button.is-active[data-v-e0a061aa]{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-e0a061aa]{gap:calc(var(--spacing,.25rem) * 3);grid-template-columns:repeat(1,minmax(0,1fr));display:grid}@media(min-width:48rem){.directory-grid[data-v-e0a061aa]{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:80rem){.directory-grid[data-v-e0a061aa]{grid-template-columns:repeat(3,minmax(0,1fr))}}.directory-list[data-v-e0a061aa]{gap:calc(var(--spacing,.25rem) * 3);flex-direction:column;display:flex}.directory-card[data-v-e0a061aa]{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-e0a061aa]: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-e0a061aa]{cursor:pointer}.directory-card.is-disabled[data-v-e0a061aa]{opacity:.6}.directory-card-wide[data-v-e0a061aa]{min-height:calc(var(--spacing,.25rem) * 0)}.directory-card-top[data-v-e0a061aa]{min-width:calc(var(--spacing,.25rem) * 0);align-items:flex-start;gap:calc(var(--spacing,.25rem) * 3);display:flex}.directory-card-icon[data-v-e0a061aa],.directory-card-fallback[data-v-e0a061aa]{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-e0a061aa]{min-width:calc(var(--spacing,.25rem) * 0);flex:1}.directory-card-title-row[data-v-e0a061aa]{min-width:calc(var(--spacing,.25rem) * 0);align-items:center;gap:calc(var(--spacing,.25rem) * 2);display:flex}.directory-card-title[data-v-e0a061aa]{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-e0a061aa]{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-e0a061aa]{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-e0a061aa]{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-e0a061aa]{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-e0a061aa]{gap:calc(var(--spacing,.25rem) * 1.5);flex-wrap:wrap;display:flex}.directory-chip[data-v-e0a061aa]{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-e0a061aa]{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-e0a061aa],.directory-empty[data-v-e0a061aa],.directory-error[data-v-e0a061aa]{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-error[data-v-e0a061aa],.directory-toast.is-error[data-v-e0a061aa]{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-e0a061aa]{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-e0a061aa]{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-e0a061aa]{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-e0a061aa],.directory-detail-heading[data-v-e0a061aa]{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-e0a061aa]{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-e0a061aa]{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-e0a061aa]{background-color:color-mix(in oklab,var(--color-black,#000) 40%,transparent)}}@media(min-width:40rem){.directory-modal-overlay[data-v-e0a061aa]{align-items:center}}.directory-modal[data-v-e0a061aa]{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-e0a061aa]{border-radius:var(--radius-2xl,1rem);max-height:82vh}}.directory-modal-header[data-v-e0a061aa],.directory-modal-footer[data-v-e0a061aa]{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-e0a061aa],.directory-modal-footer[data-v-e0a061aa]{padding:calc(var(--spacing,.25rem) * 5)}}.directory-modal-header[data-v-e0a061aa]{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-e0a061aa]{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-e0a061aa]{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-e0a061aa]{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-e0a061aa]{padding:calc(var(--spacing,.25rem) * 5)}}.directory-detail-description[data-v-e0a061aa]{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-e0a061aa]{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-e0a061aa]{grid-template-columns:repeat(2,minmax(0,1fr))}}.directory-detail-block[data-v-e0a061aa],.directory-auth-panel[data-v-e0a061aa]{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-e0a061aa]{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-e0a061aa]{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-e0a061aa]{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-e0a061aa]{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-e0a061aa]{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-e0a061aa]{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-e0a061aa]:hover{text-decoration-line:underline}}.directory-screenshots[data-v-e0a061aa]{gap:calc(var(--spacing,.25rem) * 3);grid-template-columns:repeat(1,minmax(0,1fr));display:grid}@media(min-width:40rem){.directory-screenshots[data-v-e0a061aa]{grid-template-columns:repeat(2,minmax(0,1fr))}}.directory-screenshots img[data-v-e0a061aa]{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%}: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){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))}@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-DECIu6Fp.js","assets/index.esm-DPq88-QA.js","assets/index.esm-Bi-9KxvS.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{d as Ge,o as s,c as a,h as G,a as n,t as o,s as i,f as y,p as He,j as Ce,R as Lt,H as qe,y as C,_ as je,w as xe,A as Pe,S as ct,m as Et,r as d,z as nt,b as ut,v as We,U as Tt,F as j,g as J,V as Nt,K as Oe,W as Re,X as Ut,q as Dt,Y as Mt,Z as Ft,$ as xt,a0 as Ot,a1 as Rt,a2 as Gt,a3 as Ht,a4 as jt,a5 as Bt,a6 as zt,a7 as ot}from"./index-23FodFfK.js";const Kt={class:"skill-card-top"},Vt=["src","alt"],Wt={key:1,class:"skill-card-avatar-fallback"},qt={class:"skill-card-info"},Jt={class:"skill-card-header"},Zt={class:"skill-card-name"},Qt={key:0,class:"skill-card-badge-disabled"},Yt={key:1,class:"skill-card-badge"},Xt={class:"skill-card-owner"},es=["title"],ts={key:0,class:"skill-card-desc"},ss={key:1,class:"skill-card-date"},as=Ge({__name:"SkillCard",props:{skill:{}},emits:["select"],setup(p){const Z=p,{t:_}=qe(),F=C(()=>{const $=Z.skill.path;return $?$.endsWith("/SKILL.md")?$.slice(0,-9):$:""});function E(){const $=F.value;$&&window.open(`/codex-local-browse${encodeURI($)}`,"_blank","noopener,noreferrer")}const U=C(()=>{const $=Z.skill.publishedAt;if(!$)return"";const S=new Date($),A=Date.now()-$;return A<36e5?`${Math.floor(A/6e4)}m ago`:A<864e5?`${Math.floor(A/36e5)}h ago`:A<2592e6?`${Math.floor(A/864e5)}d ago`:S.toLocaleDateString("en-US",{month:"short",day:"numeric"})});function D($){const S=$.target;S.style.display="none"}return($,S)=>(s(),a("button",{class:G(["skill-card",{"is-disabled":p.skill.installed&&p.skill.enabled===!1}]),type:"button",onClick:S[0]||(S[0]=P=>$.$emit("select",p.skill))},[n("div",Kt,[p.skill.avatarUrl?(s(),a("img",{key:0,class:"skill-card-avatar",src:p.skill.avatarUrl,alt:p.skill.owner,loading:"lazy",onError:D},null,40,Vt)):(s(),a("div",Wt,o(p.skill.owner.charAt(0)),1)),n("div",qt,[n("div",Jt,[n("span",Zt,o(p.skill.displayName||p.skill.name),1),p.skill.installed&&p.skill.enabled===!1?(s(),a("span",Qt,o(i(_)("Disabled")),1)):p.skill.installed?(s(),a("span",Yt,o(i(_)("Installed")),1)):y("",!0)]),n("span",Xt,o(p.skill.owner),1)]),p.skill.installed&&F.value?(s(),a("button",{key:2,class:"skill-card-browse",type:"button",title:i(_)("Browse files"),onClick:He(E,["stop"])},[Ce(Lt,{class:"skill-card-browse-icon"})],8,es)):y("",!0)]),p.skill.description?(s(),a("p",ts,o(p.skill.description),1)):y("",!0),U.value?(s(),a("span",ss,o(U.value),1)):y("",!0)],2))}}),it=je(as,[["__scopeId","data-v-b276a846"]]),ls={class:"sdm-panel"},ns={class:"sdm-header"},os={class:"sdm-title-area"},is=["src","alt"],rs={class:"sdm-title-col"},cs={class:"sdm-title-row"},us={class:"sdm-title"},ds={key:0,class:"sdm-badge-disabled"},ys={class:"sdm-owner"},vs=["aria-label"],ps={class:"sdm-body"},hs={key:0,class:"sdm-desc"},ms={key:1,class:"sdm-readme-loading"},bs=["innerHTML"],gs=["href"],fs={class:"sdm-footer"},ks={class:"sdm-footer-actions"},_s=["disabled"],ws=["disabled"],$s=["disabled"],Ss=["disabled"],Cs=Ge({__name:"SkillDetailModal",props:{skill:{},visible:{type:Boolean},isInstalling:{type:Boolean},isUninstalling:{type:Boolean}},emits:["close","install","uninstall","toggle-enabled","try"],setup(p,{emit:Z}){const _=p,F=Z,E=d(null),U=d(""),D=d(""),$=d(!1),{t:S}=qe(),P=C(()=>E.value??_.skill.enabled??!0),A=C(()=>_.isInstalling===!0||_.isUninstalling===!0),B=C(()=>U.value||_.skill.description),q=C(()=>{const k=_.skill.path;return k?k.endsWith("/SKILL.md")?k.slice(0,-9):k:""}),H=C(()=>{const k=D.value;if(!k)return"";const T=k.replace(/^---[\s\S]*?---\s*/,"");return z(T)});function z(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 x(){if(!(!_.skill.owner||!_.skill.name)){$.value=!0,U.value="",D.value="";try{const k=new URLSearchParams({owner:_.skill.owner,name:_.skill.name});_.skill.installed&&k.set("installed","true"),_.skill.path&&k.set("path",_.skill.path);const T=await fetch(`/codex-api/skills-hub/readme?${k}`);if(!T.ok)return;const R=await T.json();D.value=R.content??"",U.value=R.description??""}catch{}finally{$.value=!1}}}xe(()=>_.visible,k=>{k&&(E.value=null,U.value="",D.value="",x())});function O(){F("install",_.skill)}function v(){F("uninstall",_.skill)}function b(){const k=!P.value;E.value=k,F("toggle-enabled",_.skill,k)}function K(){F("try",_.skill)}function g(){const k=q.value;k&&window.open(`/codex-local-browse${encodeURI(k)}`,"_blank","noopener,noreferrer")}return(k,T)=>(s(),Pe(ct,{to:"body"},[p.visible?(s(),a("div",{key:0,class:"sdm-overlay",onClick:T[1]||(T[1]=He(R=>k.$emit("close"),["self"]))},[n("div",ls,[n("div",ns,[n("div",os,[p.skill.avatarUrl?(s(),a("img",{key:0,class:"sdm-avatar",src:p.skill.avatarUrl,alt:p.skill.owner,loading:"lazy"},null,8,is)):y("",!0),n("div",rs,[n("div",cs,[n("h3",us,o(p.skill.displayName||p.skill.name),1),p.skill.installed&&!P.value?(s(),a("span",ds,o(i(S)("Disabled")),1)):y("",!0)]),n("span",ys,o(p.skill.owner),1)])]),n("button",{class:"sdm-close",type:"button","aria-label":i(S)("Close"),onClick:T[0]||(T[0]=R=>k.$emit("close"))},[Ce(Et,{class:"sdm-close-icon"})],8,vs)]),n("div",ps,[B.value?(s(),a("p",hs,o(B.value),1)):y("",!0),$.value?(s(),a("div",ms,o(i(S)("Loading skill contents...")),1)):D.value?(s(),a("div",{key:2,class:"sdm-readme",innerHTML:H.value},null,8,bs)):y("",!0),n("a",{class:"sdm-link",href:p.skill.url,target:"_blank",rel:"noopener noreferrer"},o(i(S)("View on GitHub")),9,gs)]),n("div",fs,[n("div",ks,[p.skill.installed?(s(),a("button",{key:0,class:"sdm-btn sdm-btn-danger",type:"button",disabled:A.value,onClick:v},o(_.isUninstalling?i(S)("Uninstalling..."):i(S)("Uninstall")),9,_s)):(s(),a("button",{key:1,class:"sdm-btn sdm-btn-primary",type:"button",disabled:A.value,onClick:O},o(_.isInstalling?i(S)("Installing..."):i(S)("Install")),9,ws)),p.skill.installed?(s(),a("button",{key:2,class:"sdm-btn sdm-btn-secondary",type:"button",disabled:A.value,onClick:b},o(P.value?i(S)("Disable"):i(S)("Enable")),9,$s)):y("",!0),p.skill.installed&&P.value?(s(),a("button",{key:3,class:"sdm-btn sdm-btn-primary",type:"button",disabled:A.value,onClick:K}," Try it! ",8,Ss)):y("",!0),p.skill.installed&&q.value?(s(),a("button",{key:4,class:"sdm-btn sdm-btn-secondary",type:"button",onClick:g},o(i(S)("Browse files")),1)):y("",!0)])])])])):y("",!0)]))}}),Ps=je(Cs,[["__scopeId","data-v-501b7eb4"]]),As={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 Ve=null;function Is(){return Ve||(Ve=Promise.all([nt(()=>import("./index.esm-DECIu6Fp.js"),__vite__mapDeps([0,1])),nt(()=>import("./index.esm-Bi-9KxvS.js"),__vite__mapDeps([2,1]))])),Ve}function Ls(p){const Z=d(null),_=d(""),F=d(""),E=d(""),U=d({loggedIn:!1,githubUsername:"",repoOwner:"",repoName:"",configured:!1,startup:{inProgress:!1,mode:"idle",branch:"main",lastAction:"not-started",lastRunAtIso:"",lastSuccessAtIso:"",lastError:""}}),D=C(()=>E.value==="pull"),$=C(()=>E.value==="push"),S=C(()=>E.value==="startup-sync"),P=C(()=>E.value!=="");async function A(){try{const v=await fetch("/codex-api/skills-sync/status");if(!v.ok)return;const b=await v.json();b.data&&(U.value=b.data)}catch{}}async function B(){try{const v=await fetch("/codex-api/skills-sync/github/start-login",{method:"POST"}),b=await v.json();if(!v.ok||!b.data)throw new Error("Failed to start GitHub login");Z.value=b.data;const K=30,g=Math.max((b.data.interval??5)*1e3,3e3);let k=!1;for(let T=0;T<K;T++){await new Promise(X=>setTimeout(X,g));const R=await fetch("/codex-api/skills-sync/github/complete-login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({deviceCode:b.data.device_code})}),V=await R.json();if(!R.ok)throw new Error(V.error||"Failed to complete GitHub login");if(V.ok){k=!0;break}if(!V.pending)throw new Error(V.error||"Failed to complete GitHub login")}if(!k)throw new Error("GitHub login timed out. Please retry.");Z.value=null,await A(),p.showToast("GitHub login successful")}catch(v){p.showToast(v instanceof Error?v.message:"Failed GitHub login","error")}}async function q(){try{const[v,b]=await Is(),{getApp:K,getApps:g,initializeApp:k}=v,{getAuth:T,GithubAuthProvider:R,signInWithPopup:V}=b,X=g().length>0?K():k(As),ae=T(X),ee=new R;ee.addScope("repo");const f=await V(ae,ee),w=R.credentialFromResult(f),le=(w==null?void 0:w.accessToken)??"";if(!le)throw new Error("GitHub access token missing from Firebase login");const ne=await fetch("/codex-api/skills-sync/github/token-login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:le})}),se=await ne.json();if(!ne.ok||!se.ok)throw new Error(se.error||"Failed to login with GitHub token");await A(),p.showToast("GitHub login successful")}catch(v){const b=v instanceof Error?v.message:"Failed Firebase GitHub login";p.showToast(b,"error")}}async function H(){F.value="",_.value="pull-started",E.value="pull";try{const v=await fetch("/codex-api/skills-sync/pull",{method:"POST"}),b=await v.json();if(!v.ok||!b.ok)throw new Error(b.error||"Failed to pull synced skills");await p.onPulled(),_.value="pull-success",p.showToast(U.value.loggedIn?"Pulled skills from private sync repo":"Pulled skills from upstream repo")}catch(v){const b=v instanceof Error?v.message:"Failed to pull sync";F.value=b,_.value="pull-failed",p.showToast(b,"error")}finally{E.value=""}}async function z(){F.value="",_.value="push-started",E.value="push";try{const v=await fetch("/codex-api/skills-sync/push",{method:"POST"}),b=await v.json();if(!v.ok||!b.ok)throw new Error(b.error||"Failed to push synced skills");_.value="push-success",p.showToast("Pushed skills to private sync repo")}catch(v){const b=v instanceof Error?v.message:"Failed to push sync";F.value=b,_.value="push-failed",p.showToast(b,"error")}finally{E.value=""}}async function x(){F.value="",_.value="startup-sync-started",E.value="startup-sync";try{const v=await fetch("/codex-api/skills-sync/startup-sync",{method:"POST"}),b=await v.json();if(!v.ok||!b.ok)throw new Error(b.error||"Failed to run startup sync");await p.onPulled(),await A(),_.value="startup-sync-success",p.showToast("Startup sync completed")}catch(v){const b=v instanceof Error?v.message:"Failed startup sync";F.value=b,_.value="startup-sync-failed",p.showToast(b,"error")}finally{E.value=""}}async function O(){try{const v=await fetch("/codex-api/skills-sync/github/logout",{method:"POST"}),b=await v.json();if(!v.ok||!b.ok)throw new Error(b.error||"Failed to logout GitHub");await A(),p.showToast("Logged out from GitHub")}catch(v){p.showToast(v instanceof Error?v.message:"Failed to logout GitHub","error")}}return{deviceLogin:Z,isPullInFlight:D,isPushInFlight:$,isStartupSyncInFlight:S,isSyncActionInFlight:P,loadSyncStatus:A,logoutGithub:O,pullSkillsSync:H,pushSkillsSync:z,startupSkillsSync:x,startGithubFirebaseLogin:q,startGithubLogin:B,syncActionError:F,syncActionStatus:_,syncStatus:U}}const Es={class:"skills-hub"},Ts={class:"skills-hub-header"},Ns={class:"skills-hub-title"},Us={class:"skills-hub-subtitle"},Ds={class:"skills-sync-panel"},Ms={class:"skills-sync-header"},Fs=["href"],xs={key:1,class:"skills-sync-badge"},Os={key:2,class:"skills-sync-badge"},Rs={class:"skills-sync-meta"},Gs={key:0,class:"skills-sync-error"},Hs={key:1,class:"skills-sync-meta"},js={key:2,class:"skills-sync-error"},Bs={key:3,class:"skills-sync-device"},zs=["href"],Ks={class:"skills-sync-actions"},Vs=["disabled"],Ws=["disabled"],qs=["disabled"],Js=["disabled"],Zs={key:1,class:"skills-hub-section"},Qs={class:"skills-hub-section-title"},Ys={key:0,class:"skills-hub-grid"},Xs={class:"skills-hub-toolbar"},ea={class:"skills-hub-search-wrap"},ta=["placeholder","onKeyup"],sa={key:0,class:"skills-hub-count"},aa={class:"skills-hub-section"},la={key:0,class:"skills-hub-loading"},na={key:1,class:"skills-hub-error"},oa={key:0,class:"skills-hub-grid"},ia={key:1,class:"skills-hub-empty"},Fe="codex-web-local.skills-hub.cache.v1",ra=Ge({__name:"SkillsHub",emits:["skills-changed","try-item"],setup(p,{emit:Z}){const _={name:"",owner:"",description:"",url:"",installed:!1},F=d(null),E=d(""),U=d(""),D=d("date"),$=d([]),S=d([]),P=d(0),A=d(!1),B=d(""),q=d(!0),H=d(!1),z=d(_),x=d(null),O=d(""),v=d(!1),b=d(!1);let K=null;const{t:g}=qe(),k=Z,T=C(()=>D.value==="date"?g("Newest"):g("A-Z")),R=C(()=>{var c;return((c=x.value)==null?void 0:c.type)==="error"?"skills-hub-toast-error":"skills-hub-toast-success"}),V=C(()=>`${z.value.owner}/${z.value.name}`),X=C(()=>v.value&&O.value===V.value),ae=C(()=>b.value&&O.value===V.value),ee=C(()=>{if(!M.value.configured)return"";const c=M.value.repoOwner.trim(),u=M.value.repoName.trim();return!c||!u?"":`https://github.com/${encodeURIComponent(c)}/${encodeURIComponent(u)}`}),f=C(()=>{const c=E.value.toLowerCase().trim();return c?S.value.filter(u=>u.name.toLowerCase().includes(c)||u.owner.toLowerCase().includes(c)||(u.displayName??"").toLowerCase().includes(c)):S.value});function w(c,u="success"){x.value={text:c,type:u},K&&clearTimeout(K),K=setTimeout(()=>{x.value=null},3e3)}function le(){D.value=D.value==="date"?"name":"date",te(U.value)}function ne(c){return`${D.value}::${c.trim().toLowerCase()}`}function se(c){var u;if(typeof window>"u")return null;try{const h=window.localStorage.getItem(Fe);return h?((u=JSON.parse(h).byKey)==null?void 0:u[c])??null:null}catch{return null}}function W(c,u){if(!(typeof window>"u"))try{const h=window.localStorage.getItem(Fe),N=(h?JSON.parse(h):{}).byKey??{};N[c]=u,window.localStorage.setItem(Fe,JSON.stringify({byKey:N}))}catch{}}function ye(){if(!(typeof window>"u"))try{window.localStorage.removeItem(Fe)}catch{}}function re(c){const u=c.installed??[];S.value=u;const h=new Set(u.map(I=>I.name));$.value=c.data.map(I=>{if(I.installed||h.has(I.name)){const N=u.find(ie=>ie.name===I.name);return{...I,installed:!0,path:(N==null?void 0:N.path)??I.path,enabled:(N==null?void 0:N.enabled)??I.enabled}}return I}).filter(I=>!I.installed),P.value=c.total}async function te(c){const u=c.trim();U.value=u;const h=ne(u),I=se(h);I&&re(I),A.value=!I,B.value="";try{const N=new URLSearchParams;u&&N.set("q",u),N.set("limit","100"),N.set("sort",D.value);const ie=await fetch(`/codex-api/skills-hub?${N}`);if(!ie.ok)throw new Error(`HTTP ${ie.status}`);const Ue=await ie.json();re(Ue),W(h,Ue)}catch(N){B.value=N instanceof Error?N.message:"Failed to load skills"}finally{A.value=!1}}function ve(){te(E.value)}function oe(c){z.value=c,H.value=!0}async function be(c){O.value=`${c.owner}/${c.name}`,v.value=!0;try{const h=await(await fetch("/codex-api/skills-hub/install",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({owner:c.owner,name:c.name})})).json();if(!h.ok)throw new Error(h.error||"Install failed");const I={...c,installed:!0,path:h.path,enabled:!0};S.value=[...S.value,I],$.value=$.value.filter(N=>N.name!==c.name),z.value=I,w(`${c.displayName||c.name} skill installed`),H.value=!1,ye(),k("skills-changed")}catch(u){w(u instanceof Error?u.message:"Failed to install skill","error")}finally{v.value=!1}}async function Be(c){O.value=`${c.owner}/${c.name}`,b.value=!0;try{const h=await(await fetch("/codex-api/skills-hub/uninstall",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:c.name,path:c.path})})).json();if(!h.ok)throw new Error(h.error||"Uninstall failed");S.value=S.value.filter(I=>I.name!==c.name),c.owner!=="local"&&($.value=[...$.value,{...c,installed:!1,path:void 0,enabled:void 0}]),w(`${c.displayName||c.name} skill uninstalled`),H.value=!1,ye(),k("skills-changed")}catch(u){w(u instanceof Error?u.message:"Failed to uninstall skill","error")}finally{b.value=!1}}async function Ae(c,u){try{if(!(await fetch("/codex-api/rpc",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({method:"skills/config/write",params:{path:c.path,enabled:u}})})).ok)throw new Error("Failed to update skill");await fetch("/codex-api/skills-sync/push",{method:"POST"}),w(`${c.displayName||c.name} skill ${u?"enabled":"disabled"}`),await te(U.value)}catch(h){w(h instanceof Error?h.message:"Failed to update skill","error")}}function Ie(c){!c.installed||c.enabled===!1||(k("try-item",{kind:"skill",name:c.name,displayName:c.displayName||c.name,skillPath:c.path}),H.value=!1)}const{deviceLogin:ce,isPullInFlight:ze,isPushInFlight:Le,isStartupSyncInFlight:Ee,isSyncActionInFlight:ue,loadSyncStatus:Te,logoutGithub:ge,pullSkillsSync:fe,pushSkillsSync:ke,startupSkillsSync:Ne,startGithubFirebaseLogin:pe,startGithubLogin:he,syncActionError:de,syncActionStatus:_e,syncStatus:M}=Ls({showToast:w,onPulled:async()=>{await te(U.value),k("skills-changed")}});return ut(()=>{te(""),Te()}),(c,u)=>(s(),a("div",Es,[n("div",Ts,[n("h2",Ns,o(i(g)("Skills Hub")),1),n("p",Us,o(i(g)("Browse and discover skills from the OpenClaw community")),1)]),n("div",Ds,[n("div",Ms,[n("strong",null,o(i(g)("Skills Sync (GitHub)")),1),i(M).configured&&ee.value?(s(),a("a",{key:0,class:"skills-sync-badge skills-sync-badge-link",href:ee.value,target:"_blank",rel:"noopener noreferrer"},o(i(g)("Connected"))+": "+o(i(M).repoOwner)+"/"+o(i(M).repoName),9,Fs)):i(M).loggedIn?(s(),a("span",xs,o(i(g)("Logged in as"))+" "+o(i(M).githubUsername),1)):(s(),a("span",Os,o(i(g)("Not connected")),1))]),n("div",Rs,[n("span",null,o(i(g)("Startup"))+": "+o(i(M).startup.mode),1),n("span",null,o(i(g)("Branch"))+": "+o(i(M).startup.branch),1),n("span",null,o(i(g)("Action"))+": "+o(i(M).startup.lastAction),1)]),i(M).startup.lastError?(s(),a("div",Gs,o(i(M).startup.lastError),1)):y("",!0),i(_e)?(s(),a("div",Hs,[n("span",null,o(i(g)("Manual sync"))+": "+o(i(_e)),1)])):y("",!0),i(de)?(s(),a("div",js,o(i(de)),1)):y("",!0),i(ce)?(s(),a("div",Bs,[n("span",null,[We(o(i(g)("Open"))+" ",1),n("a",{href:i(ce).verification_uri,target:"_blank",rel:"noreferrer"},o(i(g)("GitHub device login")),9,zs),We(" "+o(i(g)("and enter code:")),1)]),n("code",null,o(i(ce).user_code),1)])):y("",!0),n("div",Ks,[i(M).loggedIn?y("",!0):(s(),a("button",{key:0,class:"skills-hub-sort",type:"button",onClick:u[0]||(u[0]=(...h)=>i(pe)&&i(pe)(...h))},o(i(g)("Login with GitHub")),1)),i(M).loggedIn?y("",!0):(s(),a("button",{key:1,class:"skills-hub-sort",type:"button",onClick:u[1]||(u[1]=(...h)=>i(he)&&i(he)(...h))},o(i(g)("Device Login")),1)),i(M).loggedIn?(s(),a("button",{key:2,class:"skills-hub-sort",type:"button",onClick:u[2]||(u[2]=(...h)=>i(ge)&&i(ge)(...h)),disabled:i(ue)},o(i(g)("Logout GitHub")),9,Vs)):y("",!0),n("button",{class:"skills-hub-sort",type:"button",onClick:u[3]||(u[3]=(...h)=>i(Ne)&&i(Ne)(...h)),disabled:i(ue)},o(i(Ee)?i(g)("Syncing..."):i(g)("Startup Sync")),9,Ws),n("button",{class:"skills-hub-sort",type:"button",onClick:u[4]||(u[4]=(...h)=>i(fe)&&i(fe)(...h)),disabled:i(ue)},o(i(ze)?i(g)("Pulling..."):i(g)("Pull")),9,qs),i(M).loggedIn?(s(),a("button",{key:3,class:"skills-hub-sort",type:"button",onClick:u[5]||(u[5]=(...h)=>i(ke)&&i(ke)(...h)),disabled:!i(M).configured||i(ue)},o(i(Le)?i(g)("Pushing..."):i(g)("Push")),9,Js)):y("",!0)])]),x.value?(s(),a("div",{key:0,class:G(["skills-hub-toast",R.value])},o(x.value.text),3)):y("",!0),f.value.length>0?(s(),a("div",Zs,[n("button",{class:"skills-hub-section-toggle",type:"button",onClick:u[6]||(u[6]=h=>q.value=!q.value)},[n("span",Qs,o(i(g)("Installed ({count})",{count:f.value.length})),1),Ce(Tt,{class:G(["skills-hub-section-chevron",{"is-open":q.value}])},null,8,["class"])]),q.value?(s(),a("div",Ys,[(s(!0),a(j,null,J(f.value,h=>(s(),Pe(it,{key:h.name,skill:h,onSelect:I=>oe(I)},null,8,["skill","onSelect"]))),128))])):y("",!0)])):y("",!0),n("div",Xs,[n("div",ea,[Ce(Nt,{class:"skills-hub-search-icon"}),Oe(n("input",{ref_key:"searchRef",ref:F,"onUpdate:modelValue":u[7]||(u[7]=h=>E.value=h),class:"skills-hub-search",type:"text",placeholder:i(g)("Search skills... (e.g. flight, docker, react)"),onKeyup:Ut(He(ve,["prevent"]),["enter"])},null,40,ta),[[Re,E.value]]),n("button",{class:"skills-hub-search-btn",type:"button",onClick:ve},o(i(g)("Search")),1),P.value>0?(s(),a("span",sa,o(i(g)("{count} skills",{count:P.value})),1)):y("",!0)]),n("button",{class:"skills-hub-sort",type:"button",onClick:le},o(T.value),1)]),n("div",aa,[A.value?(s(),a("div",la,o(i(g)("Loading skills...")),1)):B.value?(s(),a("div",na,o(B.value),1)):(s(),a(j,{key:2},[$.value.length>0?(s(),a("div",oa,[(s(!0),a(j,null,J($.value,h=>(s(),Pe(it,{key:h.url,skill:h,onSelect:I=>oe(I)},null,8,["skill","onSelect"]))),128))])):U.value.trim()?(s(),a("div",ia,o(i(g)('No skills found for "{query}"',{query:U.value})),1)):y("",!0)],64))]),Ce(Ps,{skill:z.value,visible:H.value,"is-installing":X.value,"is-uninstalling":ae.value,onClose:u[8]||(u[8]=h=>H.value=!1),onInstall:be,onUninstall:Be,onToggleEnabled:Ae,onTry:Ie},null,8,["skill","visible","is-installing","is-uninstalling"])]))}}),ca=je(ra,[["__scopeId","data-v-fbacfae9"]]),ua={class:"directory-hub"},da={class:"directory-header"},ya={class:"directory-subtitle"},va=["disabled"],pa={class:"directory-tabs",role:"tablist","aria-label":"Directory sections"},ha=["aria-selected","onClick"],ma={key:1,class:"directory-section"},ba={class:"directory-toolbar"},ga={class:"directory-sort-group",role:"group","aria-label":"Sort plugins"},fa={key:0,class:"directory-empty"},ka={key:1,class:"directory-error"},_a={key:2,class:"directory-loading"},wa={key:3,class:"directory-empty"},$a={key:4,class:"directory-grid"},Sa=["onClick"],Ca={class:"directory-card-top"},Pa=["src","alt"],Aa={class:"directory-card-main"},Ia={class:"directory-card-title-row"},La={class:"directory-card-title"},Ea={key:0,class:"directory-badge is-muted"},Ta={key:1,class:"directory-badge"},Na={class:"directory-card-meta"},Ua={key:0,class:"directory-card-description"},Da={class:"directory-chip-row"},Ma={key:0,class:"directory-chip"},Fa={key:2,class:"directory-section"},xa={class:"directory-toolbar"},Oa={class:"directory-sort-group",role:"group","aria-label":"Sort apps"},Ra={key:0,class:"directory-empty"},Ga={key:1,class:"directory-error"},Ha={key:2,class:"directory-loading"},ja={key:3,class:"directory-empty"},Ba={key:4,class:"directory-grid"},za={class:"directory-card-top"},Ka=["src","alt"],Va={key:1,class:"directory-card-fallback"},Wa={class:"directory-card-main"},qa={class:"directory-card-title-row"},Ja={class:"directory-card-title"},Za={key:0,class:"directory-badge is-muted"},Qa={key:1,class:"directory-badge"},Ya={class:"directory-card-meta"},Xa={key:0,class:"directory-card-description"},el={class:"directory-chip-row"},tl={key:0,class:"directory-chip"},sl={class:"directory-card-actions"},al=["disabled","onClick"],ll=["onClick"],nl=["onClick"],ol={key:3,class:"directory-section"},il={class:"directory-toolbar"},rl={class:"directory-sort-group",role:"group","aria-label":"Sort MCPs"},cl=["disabled"],ul={key:0,class:"directory-empty"},dl={key:1,class:"directory-error"},yl={key:2,class:"directory-loading"},vl={key:3,class:"directory-empty"},pl={key:4,class:"directory-list"},hl=["onClick"],ml={class:"directory-card-title"},bl={class:"directory-card-meta"},gl={key:0,class:"directory-mcp-detail"},fl={key:0},kl={class:"directory-mini-list"},_l={key:1},wl={class:"directory-mini-list"},$l={class:"directory-modal"},Sl={class:"directory-modal-header"},Cl={class:"directory-card-top"},Pl=["src","alt"],Al={key:1,class:"directory-card-fallback"},Il={class:"directory-card-main"},Ll={class:"directory-modal-title"},El={class:"directory-card-meta"},Tl={class:"directory-modal-body"},Nl={key:0,class:"directory-error"},Ul={key:1,class:"directory-loading"},Dl={key:0,class:"directory-detail-description"},Ml={key:1,class:"directory-detail-block"},Fl={class:"directory-chip-row"},xl={class:"directory-detail-grid"},Ol={key:0,class:"directory-detail-block"},Rl=["onClick"],Gl={key:1,class:"directory-detail-block"},Hl={class:"directory-mini-list"},jl={key:2,class:"directory-detail-block"},Bl=["disabled","onClick"],zl={key:2,class:"directory-screenshots"},Kl=["src"],Vl={key:3,class:"directory-auth-panel"},Wl=["onClick"],ql={class:"directory-modal-footer"},Jl=["disabled"],Zl=["disabled"],Ql=["disabled"],Yl=["disabled"],rt=100,Xl=Ge({__name:"DirectoryHub",props:{cwd:{},threadId:{}},emits:["skills-changed","try-item"],setup(p,{emit:Z}){const _=[[/^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]],F=[[/(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]],E=[[/(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]],U=[[/(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]],D=p,$=Z,S=[{id:"plugins",label:"Plugins",subtitle:"Plugins make Codex work your way."},{id:"apps",label:"Apps",subtitle:"Connect Codex to external apps and services."},{id:"mcps",label:"MCPs",subtitle:"Inspect configured MCP servers, tools, and resources."},{id:"skills",label:"Skills",subtitle:"Browse and discover skills from the OpenClaw community."}],P=d("plugins"),A=d(new Set),B=d(!1),q=d([]),H=d([]),z=d([]),x=d("popular"),O=d("popular"),v=d("popular"),b=d(""),K=d(""),g=d(""),k=d(!1),T=d(!1),R=d(!1),V=d(!1),X=d(""),ae=d(""),ee=d(""),f=d(null),w=d(null),le=d(!1),ne=d(!1),se=d(""),W=d(!1),ye=d(""),re=d([]),te=d(""),ve=d(new Set),oe=d(null);let be=null;const Be=C(()=>S.find(e=>e.id===P.value)??S[0]),Ae=C(()=>!B.value||["plugin/list","plugin/read","plugin/install","plugin/uninstall"].every(e=>A.value.has(e))),Ie=C(()=>!B.value||A.value.has("app/list")),ce=C(()=>!B.value||A.value.has("mcpServerStatus/list")),ze=C(()=>A.value.has("config/mcpServer/reload")),Le=C(()=>A.value.has("mcpServer/oauth/login")),Ee=C(()=>P.value==="plugins"?k.value:P.value==="apps"?T.value:P.value==="mcps"?R.value:!1),ue=C(()=>{var e,t,r;return((e=w.value)==null?void 0:e.description)||((t=w.value)==null?void 0:t.summary.longDescription)||((r=w.value)==null?void 0:r.summary.description)||""}),Te=C(()=>{var t;const e=(t=w.value)==null?void 0:t.summary;return e?[...e.screenshotUrls,...e.screenshots.map(De)].filter(Boolean):[]}),ge=C(()=>ie(pt(dt(q.value,b.value),x.value),x.value,b.value)),fe=C(()=>Ue(ht(yt(H.value,K.value),O.value),O.value,K.value)),ke=C(()=>ie(mt(vt(z.value,g.value),v.value),v.value,g.value)),Ne=C(()=>new Map(z.value.map(e=>[e.name,e])));function pe(e){return e.trim().toLowerCase()}function he(e,t){const r=pe(t);return r?e.some(m=>m==null?void 0:m.toLowerCase().includes(r)):!0}function de(e,t){return t.reduce((r,[m,Y])=>r+(m.test(e)?Y:0),0)}function _e(e){return e.replace(/\s+\((synced|legacy)\)\s*$/iu,"").replace(/\s+\(.*?\)\s*$/u,"").trim()}function M(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 c(e){return e.developer||M(e.distributionChannel)||"App"}function u(e){var t;return((t=Ne.value.get(e))==null?void 0:t.authStatus)??"unknown"}function h(e){const t=u(e);return t==="oAuth"?"Logged in":t==="bearerToken"?"Bearer token":t==="notLoggedIn"?"Login required":t==="unsupported"?"Auth unsupported":"Status unknown"}function I(e){const t=u(e);return t==="oAuth"||t==="bearerToken"?"is-ok":t==="notLoggedIn"?"is-warning":"is-muted"}function N(e){return Le.value&&u(e)==="notLoggedIn"}function ie(e,t,r){return t==="popular"&&pe(r).length===0?e.slice(0,rt):e}function Ue(e,t,r){if(t!=="popular"||pe(r).length>0)return e;const m=new Set,Y=[];for(const $e of e){const Se=_e($e.name).toLowerCase();if(!m.has(Se)&&(m.add(Se),Y.push($e),Y.length>=rt))break}return Y}function dt(e,t){return e.filter(r=>he([r.displayName,r.name,r.description,r.developerName,r.category,r.marketplaceDisplayName,...r.capabilities],t))}function yt(e,t){return e.filter(r=>he([r.name,r.description,r.developer,r.category,r.distributionChannel,...r.pluginDisplayNames],t))}function vt(e,t){return e.filter(r=>he([r.name,r.authStatus,...r.tools.map(m=>`${m.title} ${m.name} ${m.description}`),...r.resources.map(m=>`${m.title} ${m.name} ${m.uri} ${m.description}`),...r.resourceTemplates.map(m=>`${m.title} ${m.name} ${m.uriTemplate} ${m.description}`)],t))}function Je(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+de(`${e.displayName} ${e.name} ${e.description} ${e.category}`,E)}function Ze(e){const t=_e(e.name);return(e.isAccessible?1e4:0)+de(t,_)+(e.pluginDisplayNames.length>0?260:0)+(e.distributionChannel==="DEFAULT_OAI_CATALOG"?120:0)+(e.isEnabled?40:0)+(e.installUrl?20:0)+de(`${e.name} ${e.description} ${e.category} ${e.pluginDisplayNames.join(" ")}`,F)-e.catalogRank*.001}function Qe(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+de(e.name,U)}function pt(e,t){return t==="name"?[...e].sort((r,m)=>r.displayName.localeCompare(m.displayName)):t==="date"?[...e]:[...e].sort((r,m)=>Je(m)-Je(r)||r.displayName.localeCompare(m.displayName))}function ht(e,t){return t==="name"?[...e].sort((r,m)=>r.name.localeCompare(m.name)):t==="date"?[...e].sort((r,m)=>r.catalogRank-m.catalogRank):[...e].sort((r,m)=>Ze(m)-Ze(r)||r.name.localeCompare(m.name))}function mt(e,t){return t==="name"?[...e].sort((r,m)=>r.name.localeCompare(m.name)):t==="date"?[...e]:[...e].sort((r,m)=>Qe(m)-Qe(r)||r.name.localeCompare(m.name))}function Q(e,t="success"){oe.value={text:e,type:t},be&&clearTimeout(be),be=setTimeout(()=>{oe.value=null},3e3)}function De(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 Me(e){return e?e.logoUrl||De(e.logoPath)||e.composerIconUrl||De(e.composerIconPath):""}function Ye(e){return De(e.logoUrlDark||e.logoUrl)}function bt(e){$("try-item",{kind:"app",name:e.id,displayName:e.name})}function gt(e){$("try-item",{kind:"plugin",name:e.name,displayName:e.displayName})}function we(e){const t=e.trim();/^https?:\/\//i.test(t)&&window.location.assign(t)}function ft(e){const t=e.find(r=>r.needsAuth&&r.installUrl.trim().length>0);return t?(we(t.installUrl),!0):!1}function kt(e){return e.brandColor?{backgroundColor:e.brandColor,color:"#fff"}:{}}async function _t(){try{A.value=new Set(await Mt())}catch{A.value=new Set}finally{B.value=!0}}async function me(){var e;if(Ae.value){k.value=!0,X.value="";try{const t=(e=D.cwd)==null?void 0:e.trim();q.value=await Ft(t?[t]:void 0)}catch(t){X.value=t instanceof Error?t.message:"Failed to load plugins"}finally{k.value=!1}}}async function Xe(){var e;if(Ie.value){T.value=!0,ae.value="";try{H.value=await xt(((e=D.threadId)==null?void 0:e.trim())||void 0)}catch(t){ae.value=t instanceof Error?t.message:"Failed to load apps"}finally{T.value=!1}}}async function et(){if(ce.value){R.value=!0,ee.value="";try{z.value=await ot()}catch(e){ee.value=e instanceof Error?e.message:"Failed to load MCP servers"}finally{R.value=!1}}}async function tt(){var e;if(!(!ce.value||!((e=w.value)!=null&&e.mcpServers.length)))try{z.value=await ot()}catch{}}function st(){P.value==="plugins"&&me(),P.value==="apps"&&Xe(),P.value==="mcps"&&et()}async function at(e){f.value=e,w.value=null,se.value="",re.value=[],le.value=!0,ne.value=!0;try{w.value=await Ot(e),f.value=w.value.summary,await tt()}catch(t){se.value=t instanceof Error?t.message:"Failed to load plugin"}finally{ne.value=!1}}async function lt(e){if(!Le.value)return!1;te.value=e;try{const t=await Rt(e);return t.authorizationUrl?(we(t.authorizationUrl),!0):(Q(`No login URL returned for ${e}`,"error"),!1)}catch(t){return Q(t instanceof Error?t.message:`Failed to start login for ${e}`,"error"),!1}finally{te.value=""}}async function wt(e){await tt();const t=e.mcpServers.find(r=>N(r));t&&await lt(t)}function Ke(){le.value=!1}async function $t(){if(f.value){W.value=!0;try{const e=await Gt(f.value);re.value=e.appsNeedingAuth,Q(`${f.value.displayName} plugin installed`);const t=ft(e.appsNeedingAuth);await me();const r=q.value.find(m=>{var Y;return m.id===((Y=f.value)==null?void 0:Y.id)});r&&(await at(r),!t&&w.value&&await wt(w.value))}catch(e){Q(e instanceof Error?e.message:"Failed to install plugin","error")}finally{W.value=!1}}}async function St(){if(f.value){W.value=!0;try{const e=f.value.displayName;await Ht(f.value.id),Q(`${e} plugin uninstalled`),Ke(),await me()}catch(e){Q(e instanceof Error?e.message:"Failed to uninstall plugin","error")}finally{W.value=!1}}}async function Ct(){if(f.value){W.value=!0;try{const e=!f.value.enabled;await jt(f.value.id,e),f.value={...f.value,enabled:e},w.value&&(w.value={...w.value,summary:{...w.value.summary,enabled:e}}),Q(`${f.value.displayName} plugin ${e?"enabled":"disabled"}`),await me()}catch(e){Q(e instanceof Error?e.message:"Failed to update plugin","error")}finally{W.value=!1}}}async function Pt(e){ye.value=e.id;try{const t=!e.isEnabled;await Bt(e.id,t),H.value=H.value.map(r=>r.id===e.id?{...r,isEnabled:t}:r),Q(`${e.name} app ${t?"enabled":"disabled"}`)}catch(t){Q(t instanceof Error?t.message:"Failed to update app","error")}finally{ye.value=""}}async function At(){V.value=!0;try{await zt(),await et(),Q("MCP servers reloaded")}catch(e){Q(e instanceof Error?e.message:"Failed to reload MCP servers","error")}finally{V.value=!1}}function It(e){const t=new Set(ve.value);t.has(e)?t.delete(e):t.add(e),ve.value=t}return xe(P,()=>st()),xe(()=>D.cwd,()=>{P.value==="plugins"&&me()}),xe(()=>D.threadId,()=>{P.value==="apps"&&Xe()}),ut(async()=>{await _t(),await me()}),(e,t)=>{var r,m,Y,$e,Se;return s(),a("div",ua,[n("div",da,[n("div",null,[t[15]||(t[15]=n("h2",{class:"directory-title"},"Skills & Apps",-1)),n("p",ya,o(Be.value.subtitle),1)]),n("button",{class:"directory-refresh",type:"button",disabled:Ee.value,onClick:st},o(Ee.value?"Refreshing...":"Refresh"),9,va)]),n("div",pa,[(s(),a(j,null,J(S,l=>n("button",{key:l.id,class:G(["directory-tab",{"is-active":P.value===l.id}]),type:"button",role:"tab","aria-selected":P.value===l.id,onClick:L=>P.value=l.id},o(l.label),11,ha)),64))]),oe.value?(s(),a("div",{key:0,class:G(["directory-toast",{"is-error":oe.value.type==="error"}])},o(oe.value.text),3)):y("",!0),P.value==="plugins"?(s(),a("section",ma,[n("div",ba,[Oe(n("input",{"onUpdate:modelValue":t[0]||(t[0]=l=>b.value=l),class:"directory-search",type:"search",placeholder:"Search plugins...","aria-label":"Search plugins"},null,512),[[Re,b.value]]),n("div",ga,[n("button",{class:G(["directory-sort-button",{"is-active":x.value==="popular"}]),type:"button",onClick:t[1]||(t[1]=l=>x.value="popular")}," Popular ",2),n("button",{class:G(["directory-sort-button",{"is-active":x.value==="name"}]),type:"button",onClick:t[2]||(t[2]=l=>x.value="name")}," A-Z ",2),n("button",{class:G(["directory-sort-button",{"is-active":x.value==="date"}]),type:"button",onClick:t[3]||(t[3]=l=>x.value="date")}," Date ",2)])]),Ae.value?X.value?(s(),a("div",ka,o(X.value),1)):k.value?(s(),a("div",_a,"Loading plugins...")):ge.value.length===0?(s(),a("div",wa,"No plugins found.")):(s(),a("div",$a,[(s(!0),a(j,null,J(ge.value,l=>(s(),a("button",{key:l.id,class:G(["directory-card",{"is-disabled":l.installed&&!l.enabled}]),type:"button",onClick:L=>at(l)},[n("div",Ca,[Me(l)?(s(),a("img",{key:0,class:"directory-card-icon",src:Me(l),alt:l.displayName,loading:"lazy"},null,8,Pa)):(s(),a("div",{key:1,class:"directory-card-fallback",style:Dt(kt(l))},o(l.displayName.charAt(0)),5)),n("div",Aa,[n("div",Ia,[n("span",La,o(l.displayName),1),l.installed&&!l.enabled?(s(),a("span",Ea,"Disabled")):l.installed?(s(),a("span",Ta,"Installed")):y("",!0)]),n("span",Na,o(l.developerName||l.marketplaceDisplayName||l.marketplaceName||"Plugin"),1)])]),l.description?(s(),a("p",Ua,o(l.description),1)):y("",!0),n("div",Da,[l.category?(s(),a("span",Ma,o(l.category),1)):y("",!0),(s(!0),a(j,null,J(l.capabilities.slice(0,2),L=>(s(),a("span",{key:L,class:"directory-chip"},o(L),1))),128))])],10,Sa))),128))])):(s(),a("div",fa," Plugin APIs unavailable in this Codex CLI. Update Codex CLI to use plugin catalog features. "))])):P.value==="apps"?(s(),a("section",Fa,[n("div",xa,[Oe(n("input",{"onUpdate:modelValue":t[4]||(t[4]=l=>K.value=l),class:"directory-search",type:"search",placeholder:"Search apps...","aria-label":"Search apps"},null,512),[[Re,K.value]]),n("div",Oa,[n("button",{class:G(["directory-sort-button",{"is-active":O.value==="popular"}]),type:"button",onClick:t[5]||(t[5]=l=>O.value="popular")}," Popular ",2),n("button",{class:G(["directory-sort-button",{"is-active":O.value==="name"}]),type:"button",onClick:t[6]||(t[6]=l=>O.value="name")}," A-Z ",2),n("button",{class:G(["directory-sort-button",{"is-active":O.value==="date"}]),type:"button",onClick:t[7]||(t[7]=l=>O.value="date")}," Date ",2)])]),Ie.value?ae.value?(s(),a("div",Ga,o(ae.value),1)):T.value?(s(),a("div",Ha,"Loading apps...")):fe.value.length===0?(s(),a("div",ja,"No apps found.")):(s(),a("div",Ba,[(s(!0),a(j,null,J(fe.value,l=>(s(),a("article",{key:l.id,class:"directory-card"},[n("div",za,[Ye(l)?(s(),a("img",{key:0,class:"directory-card-icon",src:Ye(l),alt:l.name,loading:"lazy"},null,8,Ka)):(s(),a("div",Va,o(l.name.charAt(0)),1)),n("div",Wa,[n("div",qa,[n("span",Ja,o(l.name),1),l.isEnabled?l.isAccessible?(s(),a("span",Qa,"Connected")):y("",!0):(s(),a("span",Za,"Disabled"))]),n("span",Ya,o(c(l)),1)])]),l.description?(s(),a("p",Xa,o(l.description),1)):y("",!0),n("div",el,[l.category?(s(),a("span",tl,o(l.category),1)):y("",!0),(s(!0),a(j,null,J(l.pluginDisplayNames.slice(0,2),L=>(s(),a("span",{key:L,class:"directory-chip"},o(L),1))),128))]),n("div",sl,[n("button",{class:"directory-action",type:"button",disabled:ye.value===l.id,onClick:L=>Pt(l)},o(l.isEnabled?"Disable":"Enable"),9,al),l.installUrl?(s(),a("button",{key:0,class:"directory-action-link",type:"button",onClick:L=>we(l.installUrl)},o(l.isAccessible?"Manage":"Login"),9,ll)):y("",!0),l.isAccessible&&l.isEnabled?(s(),a("button",{key:1,class:"directory-action",type:"button",onClick:L=>bt(l)}," Try it! ",8,nl)):y("",!0)])]))),128))])):(s(),a("div",Ra," Apps APIs unavailable in this Codex CLI. Update Codex CLI to manage apps. "))])):P.value==="mcps"?(s(),a("section",ol,[n("div",il,[Oe(n("input",{"onUpdate:modelValue":t[8]||(t[8]=l=>g.value=l),class:"directory-search",type:"search",placeholder:"Search MCPs...","aria-label":"Search MCPs"},null,512),[[Re,g.value]]),n("div",rl,[n("button",{class:G(["directory-sort-button",{"is-active":v.value==="popular"}]),type:"button",onClick:t[9]||(t[9]=l=>v.value="popular")}," Popular ",2),n("button",{class:G(["directory-sort-button",{"is-active":v.value==="name"}]),type:"button",onClick:t[10]||(t[10]=l=>v.value="name")}," A-Z ",2),n("button",{class:G(["directory-sort-button",{"is-active":v.value==="date"}]),type:"button",onClick:t[11]||(t[11]=l=>v.value="date")}," Date ",2)]),ze.value?(s(),a("button",{key:0,class:"directory-action",type:"button",disabled:V.value,onClick:At},o(V.value?"Reloading...":"Reload MCPs"),9,cl)):y("",!0)]),ce.value?ee.value?(s(),a("div",dl,o(ee.value),1)):R.value?(s(),a("div",yl,"Loading MCP servers...")):ke.value.length===0?(s(),a("div",vl,"No MCP servers configured.")):(s(),a("div",pl,[(s(!0),a(j,null,J(ke.value,l=>(s(),a("article",{key:l.name,class:"directory-card directory-card-wide"},[n("button",{class:"directory-card-toggle",type:"button",onClick:L=>It(l.name)},[n("span",ml,o(l.name),1),n("span",bl,o(l.authStatus)+" · "+o(l.tools.length)+" tools · "+o(l.resources.length+l.resourceTemplates.length)+" resources",1)],8,hl),ve.value.has(l.name)?(s(),a("div",gl,[l.tools.length>0?(s(),a("div",fl,[t[16]||(t[16]=n("h3",{class:"directory-mini-heading"},"Tools",-1)),n("p",kl,o(l.tools.map(L=>L.title||L.name).join(", ")),1)])):y("",!0),l.resources.length>0||l.resourceTemplates.length>0?(s(),a("div",_l,[t[17]||(t[17]=n("h3",{class:"directory-mini-heading"},"Resources",-1)),n("p",wl,o([...l.resources.map(L=>L.title||L.name||L.uri),...l.resourceTemplates.map(L=>L.title||L.name||L.uriTemplate)].join(", ")),1)])):y("",!0)])):y("",!0)]))),128))])):(s(),a("div",ul," MCP status APIs unavailable in this Codex CLI. Update Codex CLI to inspect MCP servers. "))])):(s(),Pe(ca,{key:4,onSkillsChanged:t[12]||(t[12]=l=>$("skills-changed")),onTryItem:t[13]||(t[13]=l=>$("try-item",l))})),(s(),Pe(ct,{to:"body"},[le.value?(s(),a("div",{key:0,class:"directory-modal-overlay",onClick:He(Ke,["self"])},[n("article",$l,[n("div",Sl,[n("div",Cl,[f.value&&Me(f.value)?(s(),a("img",{key:0,class:"directory-card-icon",src:Me(f.value),alt:f.value.displayName,loading:"lazy"},null,8,Pl)):(s(),a("div",Al,o((r=f.value)==null?void 0:r.displayName.charAt(0)),1)),n("div",Il,[n("h3",Ll,o(((m=f.value)==null?void 0:m.displayName)||"Plugin"),1),n("span",El,o(((Y=f.value)==null?void 0:Y.developerName)||(($e=f.value)==null?void 0:$e.marketplaceDisplayName)||((Se=f.value)==null?void 0:Se.marketplaceName)),1)])]),n("button",{class:"directory-modal-close",type:"button","aria-label":"Close plugin detail",onClick:Ke},"Close")]),n("div",Tl,[se.value?(s(),a("div",Nl,o(se.value),1)):ne.value?(s(),a("div",Ul,"Loading plugin...")):w.value?(s(),a(j,{key:2},[ue.value?(s(),a("p",Dl,o(ue.value),1)):y("",!0),w.value.summary.capabilities.length>0?(s(),a("div",Ml,[t[18]||(t[18]=n("h4",{class:"directory-detail-heading"},"Capabilities",-1)),n("div",Fl,[(s(!0),a(j,null,J(w.value.summary.capabilities,l=>(s(),a("span",{key:l,class:"directory-chip"},o(l),1))),128))])])):y("",!0),n("div",xl,[w.value.apps.length>0?(s(),a("div",Ol,[t[19]||(t[19]=n("h4",{class:"directory-detail-heading"},"Apps",-1)),(s(!0),a(j,null,J(w.value.apps,l=>(s(),a("div",{key:l.id,class:"directory-include-row"},[n("span",null,o(l.name),1),l.installUrl?(s(),a("button",{key:0,type:"button",onClick:L=>we(l.installUrl)},o(l.needsAuth?"Login":"Manage"),9,Rl)):y("",!0)]))),128))])):y("",!0),w.value.skills.length>0?(s(),a("div",Gl,[t[20]||(t[20]=n("h4",{class:"directory-detail-heading"},"Skills",-1)),n("p",Hl,o(w.value.skills.map(l=>l.displayName||l.name).join(", ")),1)])):y("",!0),w.value.mcpServers.length>0?(s(),a("div",jl,[t[21]||(t[21]=n("h4",{class:"directory-detail-heading"},"MCP servers",-1)),(s(!0),a(j,null,J(w.value.mcpServers,l=>(s(),a("div",{key:l,class:"directory-include-row"},[n("span",null,[We(o(l)+" ",1),n("span",{class:G(["directory-auth-status",I(l)])},o(h(l)),3)]),N(l)?(s(),a("button",{key:0,type:"button",disabled:te.value===l,onClick:L=>lt(l)},o(te.value===l?"Opening...":"Authenticate"),9,Bl)):y("",!0)]))),128))])):y("",!0)]),Te.value.length>0?(s(),a("div",zl,[(s(!0),a(j,null,J(Te.value,l=>(s(),a("img",{key:l,src:l,alt:"",loading:"lazy"},null,8,Kl))),128))])):y("",!0),re.value.length>0?(s(),a("div",Vl,[t[22]||(t[22]=n("strong",null,"Apps needing auth",-1)),(s(!0),a(j,null,J(re.value,l=>(s(),a("div",{key:l.id,class:"directory-include-row"},[n("span",null,o(l.name),1),l.installUrl?(s(),a("button",{key:0,type:"button",onClick:L=>we(l.installUrl)},"Login",8,Wl)):y("",!0)]))),128))])):y("",!0)],64)):y("",!0)]),n("div",ql,[f.value&&f.value.installed?(s(),a("button",{key:0,class:"directory-action danger",type:"button",disabled:W.value,onClick:St},o(W.value?"Uninstalling...":"Uninstall"),9,Jl)):f.value?(s(),a("button",{key:1,class:"directory-action primary",type:"button",disabled:W.value||f.value.installPolicy==="NOT_AVAILABLE",onClick:$t},o(W.value?"Installing...":"Install"),9,Zl)):y("",!0),f.value&&f.value.installed?(s(),a("button",{key:2,class:"directory-action",type:"button",disabled:W.value,onClick:Ct},o(f.value.enabled?"Disable":"Enable"),9,Ql)):y("",!0),f.value&&f.value.installed&&f.value.enabled?(s(),a("button",{key:3,class:"directory-action primary",type:"button",disabled:W.value,onClick:t[14]||(t[14]=l=>gt(f.value))}," Try it! ",8,Yl)):y("",!0)])])])):y("",!0)]))])}}}),tn=je(Xl,[["__scopeId","data-v-e0a061aa"]]);export{tn as default};
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import{_ as En,o as r,c as l,a as d,d as Ns,u as Us,r as b,w as Y,n as xt,b as qs,e as Ks,t as f,f as k,F as g,g as w,h as C,i as Gs,j as Q,I as Zs,k as Xs,l as Js,m as Pn,p as Ge,q as Ct,s as $t,v as ee,x as An,T as Ys,y as L,z as Qs,A as ei,B as ti}from"./index-23FodFfK.js";const ni={},si={xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 24 24","aria-hidden":"true"};function ii(M,be){return r(),l("svg",si,[...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 oi=En(ni,[["render",ii]]),ai={key:0,class:"conversation-loading"},ri={key:1,class:"conversation-empty"},li={key:0,class:"conversation-load-more"},ci=["disabled"],ui=["data-role","data-message-type"],di={key:0,class:"message-row","data-role":"system"},hi={class:"message-stack","data-role":"system"},fi=["onClick"],pi={class:"cmd-group-label"},mi={class:"cmd-status"},vi={class:"cmd-group-inner"},ki=["onClick"],gi={class:"cmd-label"},yi={class:"cmd-status"},_i={class:"cmd-output-inner"},wi=["textContent"],bi=["onClick"],xi={class:"cmd-label"},Ci={class:"cmd-status"},$i={class:"cmd-output-inner"},Li=["textContent"],Ti=["data-role","data-message-type"],Mi=["data-role"],Si=["data-role"],Ii={key:0,class:"file-change-summary-block"},Pi=["onClick"],Ai={class:"file-change-summary-label"},Ei={class:"file-change-summary-status"},Bi=["data-tone"],Fi={class:"file-change-panel-inner"},Ri={class:"file-change-list"},Hi=["data-operation"],Wi=["title","onClick"],Oi={key:0,class:"file-change-arrow"},zi=["title","onClick"],ji={key:2,class:"file-change-delta"},Di=["data-tone"],Vi=["data-role","data-message-type"],Ni=["data-role"],Ui=["data-role"],qi=["data-role"],Ki=["onClick"],Gi=["src","alt"],Zi={key:1,class:"message-file-attachments"},Xi=["href","title"],Ji=["data-role"],Yi={key:0,class:"worked-separator-wrap","aria-live":"polite"},Qi=["onClick"],eo={class:"worked-separator-text"},to={key:0,class:"worked-details"},no=["onClick"],so={class:"cmd-label"},io={class:"cmd-status"},oo={class:"cmd-output-inner"},ao=["textContent"],ro=["data-streaming"],lo={class:"plan-card-header"},co={key:0,class:"plan-card-badge"},uo=["innerHTML"],ho={key:1,class:"plan-step-list"},fo=["data-status"],po=["data-status"],mo=["innerHTML"],vo=["innerHTML"],ko={key:0,class:"message-text"},go={key:0},yo={key:1,class:"message-bold-text"},_o={key:2,class:"message-italic-text"},wo={key:3,class:"message-strikethrough-text"},bo=["href","title"],xo=["href","title"],Co={key:6,class:"message-inline-code"},$o={key:0},Lo={key:1,class:"message-bold-text"},To={key:2,class:"message-italic-text"},Mo={key:3,class:"message-strikethrough-text"},So=["href","title"],Io=["href","title"],Po={key:6,class:"message-inline-code"},Ao={key:2,class:"message-blockquote"},Eo={key:0},Bo={key:1,class:"message-bold-text"},Fo={key:2,class:"message-italic-text"},Ro={key:3,class:"message-strikethrough-text"},Ho=["href","title"],Wo=["href","title"],Oo={key:6,class:"message-inline-code"},zo={key:3,class:"message-list message-list-unordered"},jo=["innerHTML"],Do={key:4,class:"message-list message-task-list"},Vo=["data-checked"],No={class:"message-list-item-text"},Uo={key:0},qo={key:1,class:"message-bold-text"},Ko={key:2,class:"message-italic-text"},Go={key:3,class:"message-strikethrough-text"},Zo=["href","title"],Xo=["href","title"],Jo={key:6,class:"message-inline-code"},Yo=["start"],Qo=["innerHTML"],ea={key:6,class:"message-table-wrap"},ta={class:"message-table"},na={key:0},sa={key:1,class:"message-bold-text"},ia={key:2,class:"message-italic-text"},oa={key:3,class:"message-strikethrough-text"},aa=["href","title"],ra=["href","title"],la={key:6,class:"message-inline-code"},ca={key:0},ua={key:0},da={key:1,class:"message-bold-text"},ha={key:2,class:"message-italic-text"},fa={key:3,class:"message-strikethrough-text"},pa=["href","title"],ma=["href","title"],va={key:6,class:"message-inline-code"},ka={key:7,class:"message-code-block"},ga={key:0,class:"message-code-language"},ya={class:"message-code-pre"},_a=["innerHTML"],wa={key:8,class:"message-divider"},ba={key:9,class:"message-text"},xa=["onClick"],Ca=["src","alt","onError"],$a={key:3,class:"file-change-summary-block file-change-summary-block-inline"},La=["onClick"],Ta={class:"file-change-summary-label"},Ma={class:"file-change-summary-status"},Sa=["data-tone"],Ia={class:"file-change-panel-inner"},Pa={class:"file-change-list"},Aa=["data-operation"],Ea=["title","onClick"],Ba={key:0,class:"file-change-arrow"},Fa=["title","onClick"],Ra={key:2,class:"file-change-delta"},Ha=["data-tone"],Wa=["data-role"],Oa=["onClick"],za=["onClick"],ja=["data-copied","aria-label","title","onClick"],Da={class:"message-copy-label"},Va={key:1,class:"conversation-item conversation-item-overlay"},Na={class:"message-row"},Ua={class:"message-stack"},qa={class:"live-overlay-inline","aria-live":"polite"},Ka={class:"live-overlay-label"},Ga={key:0,class:"live-overlay-reasoning"},Za={key:1,class:"live-overlay-error"},Xa=["src"],Ja={key:0,class:"diff-viewer-sidebar"},Ya={class:"diff-viewer-sidebar-header"},Qa={class:"diff-viewer-sidebar-count"},er={class:"diff-viewer-sidebar-list"},tr=["data-active","onClick"],nr=["data-operation"],sr={class:"diff-viewer-file-label"},ir={key:0,class:"diff-viewer-file-delta"},or={class:"diff-viewer-main"},ar={class:"diff-viewer-toolbar"},rr={class:"diff-viewer-title-wrap"},lr={class:"diff-viewer-title"},cr={class:"diff-viewer-subtitle"},ur={key:0},dr={class:"diff-viewer-toolbar-actions"},hr={key:0,class:"diff-viewer-empty"},fr={key:1,class:"diff-viewer-panel"},pr={class:"diff-viewer-meta"},mr={class:"diff-viewer-language"},vr={class:"diff-viewer-lines"},kr=["data-kind"],gr={class:"diff-viewer-line-number"},yr={class:"diff-viewer-line-number"},_r={class:"diff-viewer-line-marker"},wr=["innerHTML"],br={class:"diff-viewer-mobile-sheet-header"},xr={class:"diff-viewer-sidebar-count"},Cr={class:"diff-viewer-mobile-sheet-list"},$r=["data-active","onClick"],Lr=["data-operation"],Tr={class:"diff-viewer-file-label"},Mr={key:0,class:"diff-viewer-file-delta"},Sr=16,Ir=300,Pr=1200,Ar=300,Er=250,Lt=50,Br=30,Fr=200,Rr=Ns({__name:"ThreadConversation",props:{messages:{},pendingRequests:{},liveOverlay:{},isLoading:{type:Boolean},activeThreadId:{},cwd:{},scrollState:{}},emits:["updateScrollState","forkThread","rollback","respondServerRequest"],setup(M,{expose:be,emit:Bn}){var In;const de=b(new Set),W=b(new Set),he=b(new Set),Ze=b(new Set),fe=b(new Set),Xe=b(null),xe=b(""),D=b(!1),Tt=b(null),pe=b(!1),Mt=b(0),St=b(0),Je=b(""),Ye=b(""),{isMobile:Ce}=Us();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 Qe(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 It(e){return e.messageType==="plan"||e.messageType==="plan.live"}function et(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 tt=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||tt.value.length>0||Pt.value),nt=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}),Rn=L(()=>{const e=new Set;for(const n of Object.values(nt.value))for(const t of n)e.add(t.id);return e});function Et(e){var n;return((n=Qe(e))==null?void 0:n.explanation)??""}function Bt(e){var n;return((n=Qe(e))==null?void 0:n.steps)??[]}function Hn(e){switch(e){case"completed":return"✓";case"inProgress":return"•";default:return"○"}}function Ft(e){return!Pt.value&&e.id===tt.value}function B(e){return E(e)?de.value.has(e.id)||!W.value.has(e.id)&&Ft(e):!1}function st(e){return E(e)&&At.value}function it(e){var n;return E(e)&&(At.value||((n=e.commandExecution)==null?void 0:n.status)==="inProgress")}function ot(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 nt.value[e.id]??[]}function Rt(e){return E(e)?[...Le(e),e]:[]}function Wn(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 at(e){return he.value.has(e.id)}function On(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 zn(e){return Me(e)}function jn(e){const n=new Set(Ze.value);n.has(e.id)?n.delete(e.id):n.add(e.id),Ze.value=n}function Ht(e){return Ze.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&&(Xe.value=e,xe.value=T(n),D.value=!1)}function Ot(){Xe.value=null,xe.value="",D.value=!1}function Dn(){D.value=!D.value}function Vn(){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=st(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 Nn(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,rt=Bn,V=b(null),jt=b(null),me=b(""),N=b(""),Un=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,Pe=0,q=null,ve=null;const Vt=new WeakSet,Ae=b(null),ne=b(0),Nt=b(0);let Ee=null;const ke=new Map,ge=new Map,se=new Map,ie=new Map;function Be(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),qn=L(()=>v.messages.slice(F.value)),lt=L(()=>F.value>0),Kn=L(()=>!O.value&&(v.messages.length>0||v.pendingRequests.length>0||!!v.liveOverlay));function Gn(){return Ae.value?Promise.resolve():(Ee||(Ee=Qs(()=>import("./common-BeuopZEI.js"),[]).then(e=>{Ae.value=e.default,ie.clear(),se.clear(),ne.value+=1}).finally(()=>{Ee=null})),Ee)}function Zn(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 Fe(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 Xn(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=Xn(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=Re(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),Zn(n)?{path:n,line:s}:null}function Re(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 ct(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=Re(s).core.trim()||s,u=Re(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 Jn(e){switch(e){case"completed":return"[x]";case"inProgress":return"[~]";default:return"[ ]"}}function Yn(e){var s;const n=Qe(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=>`- ${Jn(i.status)} ${i.step}`.trim()).join(`
|
|
7
|
-
`)),t.join(`
|
|
8
|
-
|
|
9
|
-
`).trim()}function Qn(e){const n=[],t=e.text.trim()||Yn(e),s=It(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=Qn(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(He.value)){if(i.source!=="metadata")continue;const a=as(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 es(e){return typeof Xt.value[e.id]=="number"}function ts(e,n){return e?!n||e===n?e:`${e}
|
|
21
|
-
${n}`.trim():n}function ns(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:ts(e.diff,n.diff),addedLineCount:e.addedLineCount+n.addedLineCount,removedLineCount:e.removedLineCount+n.removedLineCount}}function ss(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 ut(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?ns(i,t):{...t})}return Array.from(n.values()).sort(ss)}const He=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:ut(i.fileChanges),sourceMessageIds:[],source:"assistant"})),!et(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:ut(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}),dt=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),!et(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:ut(i.flatMap(u=>u.fileChanges??[])),sourceMessageIds:i.map(u=>u.id),source:"metadata"})}return t}),is=L(()=>{const e=new Set;for(const n of Object.values(He.value))for(const t of n.sourceMessageIds)e.add(t);for(const[n,t]of Object.entries(dt.value))for(const s of t.sourceMessageIds)s!==n&&e.add(s);return e});function re(e){return He.value[e.id]??null}function le(e){return dt.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 We(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 Oe(e){return e===1?"1 file changed":`${e} files changed`}function os(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=Oe(e.changes.length),t=os(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 as(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=Xe.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 rs(e){var s;const t=((s=(e.movedToPath||e.path).split(".").pop())==null?void 0:s.toLowerCase())??"";return Dt[t]??t??""}function ls(e){return e.operation==="update"&&/^diff --git |^@@ |^--- |^\+\+\+ |^[ +-]|^\*\*\* (Move to:|End of File)/mu.test(e.diff)}function cs(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 us(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 ds(e){return!e||!e.diff.trim()?[]:ls(e)?us(e):cs(e)}const hs=L(()=>ds(I.value));function fs(e){return!!(e!=null&&e.diff.trim())}function ps(e){return e.kind==="add"?"+":e.kind==="remove"?"-":e.kind==="hunk"?"@@":""}function ms(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 vs(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=ms(n)),t&&(N.value=e,q&&clearTimeout(q),q=setTimeout(()=>{N.value===e&&(N.value=""),q=null},1800))}function ks(e){const n=Xt.value[e];typeof n=="number"&&v.activeThreadId&&rt("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 gs(e){const n=nn.value[e];n&&rt("rollback",{turnId:n})}function ht(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=Re(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:Fe(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)}),ys(n)}function ft(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 ys(e){const n=s=>s.trim().length>0&&!/^\s/u.test(s)&&!/\s$/u.test(s);let t=ft(e,{marker:"**",kind:"bold",isValidContent:n});return t=ft(t,{marker:"~~",kind:"strikethrough",isValidContent:n}),t=ft(t,{marker:"*",kind:"italic",isValidContent:n}),t}function ze(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(ct(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(...ht(e.slice(t,u)));const c=ct(h);if(!c){n.push(...ht(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:Fe(y.path)}):n.push({kind:"text",value:h})}t=o,s=o}return t<e.length&&n.push(...ht(e.slice(t))),n}function _s(e){if(e.includes("](")){const i=ze(e);if(i.some(a=>a.kind==="file"||a.kind==="url")&&!e.includes("`"))return i}if(!e.includes("`"))return ze(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(...ze(e.slice(s,t)));const h=e.slice(t+i,o);if(h.length>0){const c=ct(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:Fe(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:Fe(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(...ze(e.slice(s))),n}function Z(e){const n=ge.get(e);return n?(ge.delete(e),ge.set(e,n),n):Be(ge,e,_s(e),Pr)}function ws(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 bs=L(()=>({left:`${String(Mt.value)}px`,top:`${String(St.value)}px`}));function xs(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 Cs(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(),Je.value=s,Ye.value=xs(s),Mt.value=e.clientX,St.value=e.clientY,pe.value=!0)}function X(){pe.value&&(pe.value=!1)}function $s(){const e=Je.value;X(),!(!e||e==="#")&&window.open(e,"_blank","noopener,noreferrer")}function Ls(){const e=Ye.value;X(),!(!e||e==="#")&&window.open(e,"_blank","noopener,noreferrer")}async function Ts(){const e=Je.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=Tt.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 pt(e){const n=e.match(/^\s{0,3}(#{1,6})\s+(.+)$/u);return n?{level:n[1].length,value:n[2].trim()}:null}function je(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 Ms(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 mt(e){var n;return((n=dn(e))==null?void 0:n.text)??null}function hn(e){return dn(e)}function vt(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 Ss(e){const n=vt(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=vt(t),a=Ss(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=vt(e[c]);if(!p)break;h.push(fn(p,o)),c+=1}return{kind:"table",headers:fn(i,o),rows:h,alignments:a}}function Is(e){return H(e)||De(e)!==null||kt(e)||pt(e)!==null||je(e)!==null||we(e)!==null||_e(e)!==null||mt(e)!==null}function Ps(e,n,t=-1){const s=[];let i=n;for(;i<e.length&&!(Is(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 As(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:Ve(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 _=As(e,a,o,t,s);if(_){m.push(..._.blocks),a=_.nextIndex;continue}}if(R(e[a])<=o)break;const j=Ps(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 kt(e){return/^\s{0,3}(?:-{3,}|\*{3,}|_{3,})\s*$/u.test(e.trim())}function De(e){const n=e.match(/^\s{0,3}(```+|~~~+)\s*([^\s`~][^`]*)?\s*$/u);return n?{marker:n[1],language:(n[2]??"").trim()}:null}function Ve(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=De(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(kt(t[i])){s.push({kind:"thematicBreak"}),i+=1;continue}const o=pt(t[i]);if(o){s.push({kind:"heading",level:o.level,value:o.value}),i+=1;continue}if(je(t[i])!==null){const _=[];for(;i<t.length;){const P=je(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 bt=un(t[i]);if(bt===null||bt.indent!==P)break;_.push(bt.item),i+=1}if(_.length>0){s.push({kind:"taskList",items:_});continue}}const p=_e(t[i]);if(p!==null){const _=vn(t,i,Ms);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=mt(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])||De(t[i])||kt(t[i])||pt(t[i])||pn(t,i)||je(t[i])!==null||we(t[i])!==null||_e(t[i])!==null||mt(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 Es(e){if(!e.includes(")return Ve(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=ws(o.trim());m&&(h>s&&n.push(...Ve(e.slice(s,h))),n.push({kind:"image",url:m,alt:u.trim(),markdown:a}),s=c)}return s<e.length&&n.push(...Ve(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(...Es(h))};for(;i<t.length;){const o=De(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 Bs(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 Be(ke,e.id,{text:e.text,cwd:v.cwd,blocks:t},Ir).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 Fs(e,n){const t=gn(e);if(!t)return $(n);const s=Ae.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):Be(ie,t,Fs(e,n),Er)}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 Rs(e){return e.paragraphs.map(n=>`<div class="message-list-item-text message-list-item-paragraph">${J(n)}</div>`).join("")}function Ne(e){var s;const n=Rs(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">${Ne(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">${Ne(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 gt(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 Be(se,n,{text:e,cwd:v.cwd,highlightVersion:ne.value,html:s},Ar).html}function Hs(){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)<=Sr}function Ue(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;rt("updateScrollState",{threadId:v.activeThreadId,state:{scrollTop:e.scrollTop,isAtBottom:bn(e),scrollRatio:t}})}function Ws(){const e=V.value;if(!e)return;if(O.value){qe();return}const n=v.scrollState;if(!n||n.isAtBottom){Ue(e);return}const t=Math.max(e.scrollHeight-e.clientHeight,0),s=n.scrollTop;e.scrollTop=Math.min(Math.max(s,0),t),Ue(e)}function qe(){const e=V.value;e&&(Hs(),Ue(e))}function yt(){return O.value}function xn(){if(!yt()){Pe=0,A=0;return}if(qe(),Pe-=1,Pe<=0){A=0;return}A=requestAnimationFrame(xn)}function Ke(e=6){yt()&&(A&&(cancelAnimationFrame(A),A=0),Pe=Math.max(e,1),A=requestAnimationFrame(xn))}function Cn(){Ke(3)}function $n(){O.value=!0,qe(),Ke(4)}async function Ln(){const e=V.value;if(!e||!lt.value||K.value)return;K.value=!0;const n=v.activeThreadId,t=e.scrollHeight,s=e.scrollTop;F.value=Math.max(0,F.value-Br),await xt(),v.activeThreadId===n&&(e.scrollTop=s+(e.scrollHeight-t),K.value=!1)}be({jumpToLatest:$n});function Os(){if(!yt())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 _t(){return ve||(ve=xt().then(()=>new Promise(e=>{U&&cancelAnimationFrame(U),U=requestAnimationFrame(()=>{U=0,ve=null,Ws(),Os(),Ke(),e()})})),ve)}function zs(){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(nt.value))),fe.value=Ie(fe.value,new Set([...Object.keys(He.value),...Object.keys(dt.value)])),O.value?F.value=Math.max(0,e.length-Lt):F.value=Math.min(F.value,Math.max(0,e.length-1)),await _t()}),Y(()=>v.messages.some(e=>e.text.includes("```")),e=>{!e||Ae.value||Gn()},{immediate:!0}),Y(tt,(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 _t()},{deep:!0}),Y(()=>v.liveOverlay,async e=>{e&&O.value&&(await xt(),qe(),Ke(8))},{deep:!0}),Y(()=>v.isLoading,async e=>{e||(F.value=Math.max(0,v.messages.length-Lt),await _t())}),Y(()=>v.activeThreadId,()=>{Un.value=null,O.value=!0,me.value="",K.value=!1,F.value=Math.max(0,v.messages.length-Lt)},{flush:"post"});function js(){const e=V.value;!e||v.isLoading||(O.value=bn(e),Ue(e),lt.value&&!K.value&&e.scrollTop<Fr&&Ln())}const wt=b(new Set);function Tn(e,n){return`${e}:${n}`}function Ds(e,n){return wt.value.has(Tn(e,n))}function Vs(e,n){const t=new Set(wt.value);t.add(Tn(e,n)),wt.value=t,Nt.value+=1}function Mn(e){me.value=e}function Sn(){me.value=""}return qs(()=>{window.addEventListener("pointerdown",on),window.addEventListener("blur",an),window.addEventListener("keydown",rn)}),Ks(()=>{zs(),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:Cs},[M.isLoading?(r(),l("p",ai,"Loading messages...")):M.messages.length===0&&M.pendingRequests.length===0&&!M.liveOverlay?(r(),l("p",ri," No messages in this thread yet. ")):(r(),l("ul",{key:2,ref_key:"conversationListRef",ref:V,class:"conversation-list",onScroll:js},[lt.value?(r(),l("li",li,[d("button",{type:"button",class:"load-more-button",disabled:K.value,onClick:Ln},f(K.value?"Loading…":"Load earlier messages"),9,ci)])):k("",!0),(r(!0),l(g,null,w(qn.value,t=>{var s,i,a,u;return r(),l(g,{key:t.id},[!Rn.value.has(t.id)&&!is.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",di,[d("div",hi,[Le(t).length>0?(r(),l("button",{key:0,type:"button",class:C(["cmd-row cmd-row-group cmd-compact",[Se(t),{"cmd-expanded":at(t)}]]),onClick:o=>Wn(t)},[d("span",{class:C(["cmd-chevron",{"cmd-chevron-open":at(t)}])},"▶",2),d("span",pi,f(On(t)),1),d("span",mi,f(zn(t)),1)],10,fi)):k("",!0),Le(t).length>0?(r(),l("div",{key:1,class:C(["cmd-group-wrap",{"cmd-group-visible":at(t)}])},[d("div",vi,[(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=>ot(o)},[d("span",{class:C(["cmd-chevron",{"cmd-chevron-open":B(o)}])},"▶",2),d("code",gi,f(((h=o.commandExecution)==null?void 0:h.command)||"(command)"),1),d("span",yi,f(Me(o)),1)],10,ki),d("div",{class:C(["cmd-output-wrap",{"cmd-output-visible":B(o)}])},[d("div",_i,[d("pre",{class:C(["cmd-output",{"cmd-output-condensed":it(o)}]),textContent:f(((c=o.commandExecution)==null?void 0:c.aggregatedOutput)||"(no output)")},null,10,wi)])],2)])}),128))])],2)):(r(),l(g,{key:2},[d("button",{type:"button",class:C(["cmd-row",[Se(t),{"cmd-expanded":B(t),"cmd-compact":st(t)}]]),onClick:o=>ot(t)},[d("span",{class:C(["cmd-chevron",{"cmd-chevron-open":B(t)}])},"▶",2),d("code",xi,f(((s=t.commandExecution)==null?void 0:s.command)||"(command)"),1),d("span",Ci,f(Me(t)),1)],10,bi),d("div",{class:C(["cmd-output-wrap",{"cmd-output-visible":B(t)}])},[d("div",$i,[d("pre",{class:C(["cmd-output",{"cmd-output-condensed":it(t)}]),textContent:f(((i=t.commandExecution)==null?void 0:i.aggregatedOutput)||"(no output)")},null,10,Li)])],2)],64))])])):et(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",Ii,[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",Ai,f(en(le(t))),1),d("span",Ei,[(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,Bi))),128))])],10,Pi),d("div",{class:C(["cmd-group-wrap",{"cmd-group-visible":te(t)}])},[d("div",Fi,[d("ul",Ri,[(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":We(o)},f(ce(o)),9,Hi),d("button",{type:"button",class:"file-change-path-button",title:o.path,onClick:h=>Te(le(t),o)},f(S(o.path)),9,Wi),o.movedToPath?(r(),l("span",Oi,"→")):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,zi)):k("",!0),o.addedLineCount>0||o.removedLineCount>0?(r(),l("span",ji,[(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,Di))),128))])):k("",!0)]))),128))])])],2)])):k("",!0)],8,Si)],8,Mi)],8,Ti)):(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,Gi)],8,Ki)]))),128))],10,qi)):k("",!0),t.fileAttachments&&t.fileAttachments.length>0?(r(),l("div",Zi,[(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,Xi)]))),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",Yi,[d("button",{type:"button",class:"worked-separator",onClick:o=>jn(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",eo,f(t.text),1),n[7]||(n[7]=d("span",{class:"worked-separator-line","aria-hidden":"true"},null,-1))],8,Qi),Ht(t)?(r(),l("div",to,[(r(!0),l(g,null,w(Nn(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":st(o)}]]),onClick:m=>ot(o)},[d("span",{class:C(["cmd-chevron",{"cmd-chevron-open":B(o)}])},"▶",2),d("code",so,f(((h=o.commandExecution)==null?void 0:h.command)||"(command)"),1),d("span",io,f(Me(o)),1)],10,no),d("div",{class:C(["cmd-output-wrap",{"cmd-output-visible":B(o)}])},[d("div",oo,[d("pre",{class:C(["cmd-output",{"cmd-output-condensed":it(o)}]),textContent:f(((c=o.commandExecution)==null?void 0:c.aggregatedOutput)||"(no output)")},null,10,ao)])],2)])}),128))])):k("",!0)])):It(t)?(r(),l("div",{key:1,class:"plan-card","data-streaming":t.messageType==="plan.live"},[d("div",lo,[n[8]||(n[8]=d("p",{class:"plan-card-title"},"Plan",-1)),t.messageType==="plan.live"?(r(),l("span",co,"Updating")):k("",!0)]),Et(t)?(r(),l("div",{key:0,class:"plan-card-explanation plan-card-markdown",innerHTML:gt(Et(t))},null,8,uo)):k("",!0),Bt(t).length>0?(r(),l("ol",ho,[(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(Hn(o.status)),9,po),d("div",{class:"plan-step-text plan-card-markdown",innerHTML:gt(o.step)},null,8,mo)],8,fo))),128))])):(r(),l("div",{key:2,class:"plan-card-markdown",innerHTML:gt(t.text)},null,8,vo))],8,ro)):Gs([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(Bs(t),(o,h)=>(r(),l(g,{key:`block-${h}`},[o.kind==="paragraph"?(r(),l("p",ko,[(r(!0),l(g,null,w(Z(o.value),(c,m)=>(r(),l(g,{key:`seg-${h}-${m}`},[c.kind==="text"?(r(),l("span",go,f(c.value),1)):c.kind==="bold"?(r(),l("strong",yo,f(c.value),1)):c.kind==="italic"?(r(),l("em",_o,f(c.value),1)):c.kind==="strikethrough"?(r(),l("s",wo,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,bo)):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,xo)):(r(),l("code",Co,f(c.value),1))],64))),128))])):o.kind==="heading"?(r(),ei(ti(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",$o,f(c.value),1)):c.kind==="bold"?(r(),l("strong",Lo,f(c.value),1)):c.kind==="italic"?(r(),l("em",To,f(c.value),1)):c.kind==="strikethrough"?(r(),l("s",Mo,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,So)):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,Io)):(r(),l("code",Po,f(c.value),1))],64))),128))]),_:2},1032,["class"])):o.kind==="blockquote"?(r(),l("blockquote",Ao,[(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",Eo,f(c.value),1)):c.kind==="bold"?(r(),l("strong",Bo,f(c.value),1)):c.kind==="italic"?(r(),l("em",Fo,f(c.value),1)):c.kind==="strikethrough"?(r(),l("s",Ro,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,Ho)):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,Wo)):(r(),l("code",Oo,f(c.value),1))],64))),128))])):o.kind==="unorderedList"?(r(),l("ul",zo,[(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:Ne(c)},null,8,jo)]))),128))])):o.kind==="taskList"?(r(),l("ul",Do,[(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,Vo),d("div",No,[(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",Uo,f(p.value),1)):p.kind==="bold"?(r(),l("strong",qo,f(p.value),1)):p.kind==="italic"?(r(),l("em",Ko,f(p.value),1)):p.kind==="strikethrough"?(r(),l("s",Go,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,Zo)):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,Xo)):(r(),l("code",Jo,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:Ne(c)},null,8,Qo)]))),128))],8,Yo)):o.kind==="table"?(r(),l("div",ea,[d("table",ta,[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:Ct({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",na,f(p.value),1)):p.kind==="bold"?(r(),l("strong",sa,f(p.value),1)):p.kind==="italic"?(r(),l("em",ia,f(p.value),1)):p.kind==="strikethrough"?(r(),l("s",oa,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,aa)):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,ra)):(r(),l("code",la,f(p.value),1))],64))),128))],4))),128))])]),o.rows.length>0?(r(),l("tbody",ca,[(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:Ct({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",ua,f(x.value),1)):x.kind==="bold"?(r(),l("strong",da,f(x.value),1)):x.kind==="italic"?(r(),l("em",ha,f(x.value),1)):x.kind==="strikethrough"?(r(),l("s",fa,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,pa)):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,ma)):(r(),l("code",va,f(x.value),1))],64))),128))],4))),128))]))),128))])):k("",!0)])])):o.kind==="codeBlock"?(r(),l("div",ka,[o.language?(r(),l("div",ga,f(o.language),1)):k("",!0),d("pre",ya,[d("code",{class:"hljs",innerHTML:yn(o.language,o.value)},null,8,_a)])])):o.kind==="thematicBreak"?(r(),l("hr",wa)):Ds(t.id,h)?(r(),l("p",ba,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=>Vs(t.id,h)},null,40,Ca)],8,xa))],64))),128))])),n,0)],8,Ji)):k("",!0),re(t)?(r(),l("section",$a,[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",Ta,f(en(re(t))),1),d("span",Ma,[(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,Sa))),128))])],10,La),d("div",{class:C(["cmd-group-wrap",{"cmd-group-visible":te(t)}])},[d("div",Ia,[d("ul",Pa,[(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":We(o)},f(ce(o)),9,Aa),d("button",{type:"button",class:"file-change-path-button",title:o.path,onClick:h=>Te(re(t),o)},f(S(o.path)),9,Ea),o.movedToPath?(r(),l("span",Ba,"→")):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,Fa)):k("",!0),o.addedLineCount>0||o.removedLineCount>0?(r(),l("span",Ra,[(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,Ha))),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=>gs(t.id)},[Q(Zs,{class:"icon-svg message-edit-icon"}),n[9]||(n[9]=d("span",{class:"message-edit-label"},"Edit message",-1))],8,Oa)):k("",!0),es(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=>ks(t.id)},[Q(Xs,{class:"icon-svg message-fork-icon"}),n[10]||(n[10]=d("span",{class:"message-fork-label"},"Fork",-1))],8,za)):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=>vs(t.id)},[Q(oi,{class:"icon-svg message-copy-icon"}),d("span",Da,f(N.value===t.id?"Copied":"Copy"),1)],8,ja)):k("",!0)],8,Wa)):k("",!0)],8,Ui)],8,Ni)],8,Vi))],8,ui)):k("",!0)],64)}),128)),M.liveOverlay?(r(),l("li",Va,[d("div",Na,[d("div",Ua,[d("article",qa,[d("p",Ka,f(M.liveOverlay.activityLabel),1),M.liveOverlay.reasoningText?(r(),l("p",Ga,f(M.liveOverlay.reasoningText),1)):k("",!0),M.liveOverlay.errorText?(r(),l("p",Za,f(M.liveOverlay.errorText),1)):k("",!0)])])])])):k("",!0),d("li",{ref_key:"bottomAnchorRef",ref:jt,class:"conversation-bottom-anchor"},null,512)],544)),Kn.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(Js,{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]=Ge(()=>{},["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,Xa)])])):k("",!0),pe.value?(r(),l("div",{key:5,ref_key:"fileLinkContextMenuRef",ref:Tt,class:"file-link-context-menu",style:Ct(bs.value),onClick:n[2]||(n[2]=Ge(()=>{},["stop"]))},[d("button",{type:"button",class:"file-link-context-menu-item",onClick:$s}," Open link "),d("button",{type:"button",class:"file-link-context-menu-item",onClick:Ts}," Copy link "),Ye.value?(r(),l("button",{key:0,type:"button",class:"file-link-context-menu-item",onClick:Ls}," 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]=Ge(()=>{},["stop"]))},[$t(Ce)?k("",!0):(r(),l("aside",Ja,[d("div",Ya,[n[11]||(n[11]=d("p",{class:"diff-viewer-sidebar-title"},"Changed files",-1)),d("p",Qa,f(Oe(ue.value.length)),1)]),d("div",er,[(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":We(t)},f(ce(t)),9,nr),d("span",sr,[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",ir,f(G(t)),1)):k("",!0)],8,tr))),128))])])),d("section",or,[d("div",ar,[d("div",rr,[d("p",lr,[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",cr,[ee(f(ce(I.value))+" ",1),G(I.value)?(r(),l("span",ur," · "+f(G(I.value)),1)):k("",!0)])]),d("div",dr,[$t(Ce)?(r(),l("button",{key:0,type:"button",class:"diff-viewer-mobile-files-button",onClick:Dn},f(Oe(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"})])])]),fs(I.value)?(r(),l("div",fr,[d("div",pr,[d("span",mr,f(rs(I.value)||"diff"),1)]),d("div",vr,[(r(!0),l(g,null,w(hs.value,t=>(r(),l("div",{key:t.key,class:"diff-viewer-line","data-kind":t.kind},[d("span",gr,f(t.oldLine??""),1),d("span",yr,f(t.newLine??""),1),d("span",_r,f(ps(t)),1),d("code",{class:"diff-viewer-line-code",innerHTML:$(t.text)||" "},null,8,wr)],8,kr))),128))])])):(r(),l("div",hr,[...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(Ys,{name:"diff-viewer-sheet"},{default:An(()=>[$t(Ce)&&D.value?(r(),l("div",{key:0,class:"diff-viewer-mobile-sheet-backdrop",onClick:Vn},[d("div",{class:"diff-viewer-mobile-sheet",onClick:n[3]||(n[3]=Ge(()=>{},["stop"]))},[n[14]||(n[14]=d("div",{class:"diff-viewer-mobile-sheet-handle","aria-hidden":"true"},null,-1)),d("div",br,[n[13]||(n[13]=d("p",{class:"diff-viewer-sidebar-title"},"Changed files",-1)),d("p",xr,f(Oe(ue.value.length)),1)]),d("div",Cr,[(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":We(t)},f(ce(t)),9,Lr),d("span",Tr,[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",Mr,f(G(t)),1)):k("",!0)],8,$r))),128))])])])):k("",!0)]),_:1})])])):k("",!0)],32))}}),Wr=En(Rr,[["__scopeId","data-v-5b47b589"]]);export{Wr as default};
|