@pstdio/workbench 0.45.0 → 0.46.0-nightly.20261024001730

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/react.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { Et as PreferenceValue, F as WorkbenchModuleContribution, G as ThemePreferenceOption$1, Hi as RegisteredPlaceholderContribution, Jr as RegisteredMenuItem, Ki as WorkbenchPanelInstance, Kr as MenuPath, Li as NavigationTarget$1, M as WorkbenchCoreContributionContext, Nr as TreeAction, Qn as RegisteredDataTableRendererContribution, St as PreferenceRegistry, Ui as RegisteredWidgetContribution, Ut as KeybindingSequence, Wr as WorkbenchPanelRenderInput, X as WorkbenchStatusRegistry, Xr as WorkbenchFocusRegionId, Xt as WorkbenchTerminalController, ca as WorkbenchRegion$1, da as WorkbenchStore, ei as Command, fa as Disposable, ii as CommandParamSchema, j as WorkbenchCore, mi as ResourceRef$1, ni as CommandParamDescriptor, oi as WorkbenchCommandExecutionContext, ra as WorkbenchWidgetPlacement, ri as CommandParamOption, sa as WorkbenchPanelRegion, sn as WorkbenchShellOpenRegion, wt as PreferenceScope, xt as PreferencePropertySchema } from "./index-DL-0XKr0.js";
2
- import { a as ReactResourceContextAction, i as ReactKanbanRendererContribution, n as ReactAttributesSource, r as ReactBoardColumnConfig, t as ReactAttributeDescriptor } from "./kanban-presentation-CdHu43iH.js";
1
+ import { Et as PreferenceValue, F as WorkbenchModuleContribution, G as ThemePreferenceOption$1, Hi as RegisteredPlaceholderContribution, Jr as RegisteredMenuItem, Ki as WorkbenchPanelInstance, Kr as MenuPath, Li as NavigationTarget$1, M as WorkbenchCoreContributionContext, Nr as TreeAction, Qn as RegisteredDataTableRendererContribution, St as PreferenceRegistry, Ui as RegisteredWidgetContribution, Ut as KeybindingSequence, Wr as WorkbenchPanelRenderInput, X as WorkbenchStatusRegistry, Xr as WorkbenchFocusRegionId, Xt as WorkbenchTerminalController, ca as WorkbenchRegion$1, da as WorkbenchStore, ei as Command, fa as Disposable, ii as CommandParamSchema, j as WorkbenchCore, mi as ResourceRef$1, ni as CommandParamDescriptor, oi as WorkbenchCommandExecutionContext, ra as WorkbenchWidgetPlacement, ri as CommandParamOption, sa as WorkbenchPanelRegion, sn as WorkbenchShellOpenRegion, wt as PreferenceScope, xt as PreferencePropertySchema } from "./index-BKw8sMcc.js";
2
+ import { a as ReactResourceContextAction, i as ReactKanbanRendererContribution, n as ReactAttributesSource, r as ReactBoardColumnConfig, t as ReactAttributeDescriptor } from "./kanban-presentation-C98tAc0L.js";
3
3
  import { ResourceAnchor, ResourceAnchorPage, ResourceAnchorQuery, ResourceRef } from "@pstdio/sdk/extensions";
4
4
  import { ReactNode } from "react";
5
5
  import { FileIconThemePreferenceOption, ResourceContextAction, ThemePreference, ThemePreferenceOption, ThemePreferenceStorage } from "@pstdio/ui";
package/dist/react.js CHANGED
@@ -1 +1 @@
1
- export { et as CommandOptionStatus, Z as CommandParamField, A as RelatedResources, C as WORKBENCH_SETTINGS_NAV_WIDGET_ID, D as WORKBENCH_SETTINGS_OPEN_COMMAND_ID, w as WORKBENCH_SETTINGS_PANEL_WIDGET_ID, T as WORKBENCH_SETTINGS_WIDGET_ID, p as WORKBENCH_TERMINAL_OPEN_COMMAND_ID, m as WORKBENCH_TERMINAL_PANEL_SIZE, h as WORKBENCH_TERMINAL_WIDGET_ID, i as Workbench, x as WorkbenchAttachedSidePanel, tt as WorkbenchBreadcrumbView, Y as WorkbenchCommandPalette, R as WorkbenchConnectionProvider, I as WorkbenchDataTableView, S as WorkbenchFloatingSidePanel, J as WorkbenchFocusRegion, l as WorkbenchFullscreenToggle, K as WorkbenchHeaderActions, mt as WorkbenchIcon, U as WorkbenchKeybindingDispatcher, t as WorkbenchModuleHost, H as WorkbenchNotificationHost, c as WorkbenchOverlayLayer, s as WorkbenchPanelToggles, N as WorkbenchPreferencesForm, B as WorkbenchRegion, z as WorkbenchRegionTabs, v as WorkbenchTerminalPanel, d as WorkbenchThemeProvider, u as WorkbenchThemeScope, M as WorkbenchTreeView, V as WorkbenchWidgetHost, b as WorkflowStatusSettings, ct as buildCommandParamInitialValues, Q as commandParamName, lt as createCommandFilesParamValue, y as createControllerTerminalBridge, L as createTreeContextMenuItems, W as createWorkbenchHotkeyRegistrations, nt as createWorkbenchResourceActions, O as createWorkbenchResourceLinksModule, E as createWorkbenchSettingsModule, g as createWorkbenchTerminalModule, n as disposeWorkbenchModuleHostRegistrations, ut as isCommandFilesParamValue, dt as listCommandParamEntries, q as listWorkbenchMenuItems, ft as normalizeCommandParamValues, G as normalizeWorkbenchKeybinding, j as openRelatedResourcesPreference, _ as openWorkbenchTerminal, P as paramValueToPreference, F as preferenceSchemaToParams, $ as readCommandParamValue, k as resourceLinksCommandId, r as syncWorkbenchModuleHostRegistrations, X as useCommandOptions, rt as useWorkbenchResourceActionResolver, ht as useWorkbenchStore, f as useWorkbenchThemePreferences } from "./react-7X-EBlBD.js";
1
+ export { tt as CommandOptionStatus, Q as CommandParamField, A as RelatedResources, C as WORKBENCH_SETTINGS_NAV_WIDGET_ID, D as WORKBENCH_SETTINGS_OPEN_COMMAND_ID, w as WORKBENCH_SETTINGS_PANEL_WIDGET_ID, T as WORKBENCH_SETTINGS_WIDGET_ID, p as WORKBENCH_TERMINAL_OPEN_COMMAND_ID, m as WORKBENCH_TERMINAL_PANEL_SIZE, h as WORKBENCH_TERMINAL_WIDGET_ID, i as Workbench, x as WorkbenchAttachedSidePanel, nt as WorkbenchBreadcrumbView, X as WorkbenchCommandPalette, R as WorkbenchConnectionProvider, I as WorkbenchDataTableView, S as WorkbenchFloatingSidePanel, Y as WorkbenchFocusRegion, l as WorkbenchFullscreenToggle, q as WorkbenchHeaderActions, ht as WorkbenchIcon, W as WorkbenchKeybindingDispatcher, t as WorkbenchModuleHost, U as WorkbenchNotificationHost, c as WorkbenchOverlayLayer, s as WorkbenchPanelToggles, N as WorkbenchPreferencesForm, V as WorkbenchRegion, B as WorkbenchRegionTabs, v as WorkbenchTerminalPanel, d as WorkbenchThemeProvider, u as WorkbenchThemeScope, M as WorkbenchTreeView, H as WorkbenchWidgetHost, b as WorkflowStatusSettings, lt as buildCommandParamInitialValues, $ as commandParamName, ut as createCommandFilesParamValue, y as createControllerTerminalBridge, L as createTreeContextMenuItems, G as createWorkbenchHotkeyRegistrations, rt as createWorkbenchResourceActions, O as createWorkbenchResourceLinksModule, E as createWorkbenchSettingsModule, g as createWorkbenchTerminalModule, n as disposeWorkbenchModuleHostRegistrations, dt as isCommandFilesParamValue, ft as listCommandParamEntries, J as listWorkbenchMenuItems, pt as normalizeCommandParamValues, K as normalizeWorkbenchKeybinding, j as openRelatedResourcesPreference, _ as openWorkbenchTerminal, P as paramValueToPreference, F as preferenceSchemaToParams, et as readCommandParamValue, k as resourceLinksCommandId, r as syncWorkbenchModuleHostRegistrations, Z as useCommandOptions, it as useWorkbenchResourceActionResolver, gt as useWorkbenchStore, f as useWorkbenchThemePreferences } from "./react-BT0I-th2.js";
package/dist/storage.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { Vr as TreeRendererPersistenceAdapter, Zr as LayoutPersistenceAdapter, bt as PreferencePersistenceAdapter, gn as WorkbenchPageLocationPersistence, rt as WorkbenchStatusBarPersistenceAdapter, un as WorkbenchPanelMenuStatePersistenceAdapter, z as WorkbenchPersistenceAdapter } from "./index-DL-0XKr0.js";
1
+ import { Vr as TreeRendererPersistenceAdapter, Zr as LayoutPersistenceAdapter, bt as PreferencePersistenceAdapter, gn as WorkbenchPageLocationPersistence, rt as WorkbenchStatusBarPersistenceAdapter, un as WorkbenchPanelMenuStatePersistenceAdapter, z as WorkbenchPersistenceAdapter } from "./index-BKw8sMcc.js";
2
2
  interface WorkbenchStorageLike {
3
3
  readonly length?: number;
4
4
  getItem(key: string): string | null;
@@ -27,7 +27,7 @@ var e = "pstdio-extension-mount", t = (e) => e.replaceAll("&", "&").replaceA
27
27
  ${t}
28
28
  </body>
29
29
  </html>
30
- `, i = (e) => r(`<script src="${t(e)}"><\/script>`), a = (e) => r(`<script>${n(e)}<\/script>`), o = () => "// Generated by packages/pstdio-extensions/scripts/build-runtime.ts\nfunction oe(){let e=globalThis;if(e.window!==void 0&&e.document!==void 0)return\"browser\";if(e.WorkerGlobalScope!==void 0&&e.self!==void 0&&e.self instanceof e.WorkerGlobalScope||e.window===void 0&&e.self!==void 0&&typeof e.importScripts==\"function\")return\"worker\";let t=e.process;if(t&&typeof t==\"object\"){let r=t.versions??{},n=t.release?.name;if(r.bun||n===\"bun\"||e.Bun!==void 0)return\"bun\";if(r.node&&n===\"node\")return\"node\"}return e.Bun===void 0?\"browser\":\"bun\"}function O(){return oe()}function V(){return O()===\"worker\"}function B(){let e=O();return e===\"node\"||e===\"bun\"}function ae(){return window.self!==window.top}function ie(e){let t={};return function r(n,c=\"\"){Object.keys(n).forEach((o)=>{let s=c?`${c}.${o}`:o;n[o]===Object(n[o])&&r(n[o],s),typeof n[o]==\"function\"&&(t[s]=n[o],delete n[o])})}(e),t}function ce(e){return!e||e===\"null\"?\"*\":e}function de(e,t,r){if(!e||typeof e!=\"object\")return e;let n=Array.isArray(t)?t:t.split(\".\").map((o)=>o.match(/^\\d+$/)?Number(o):o),c=e;for(let o=0;o<n.length;o++){let s=n[o];o===n.length-1?c[s]=r:((!c[s]||typeof c[s]!=\"object\")&&(c[s]=typeof n[o+1]==\"number\"?[]:{}),c=c[s])}return e}function le(e=10){let t=\"\";for(let r=0;r<e;r++)t+=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\".charAt(Math.floor(Math.random()*62));return t}var U=O(),C=null;if(U===\"node\"||U===\"bun\")try{let e=globalThis.require;C=e?.(\"node:worker_threads\")?.parentPort??null}catch{}function fe(){if(B())return C;if(V())return self;if(ae())return window.parent;throw Error(\"No valid target found for postMessage\")}function R(e,t,r,n){if(!e)throw Error(\"Rimless Error: No target specified for postMessage\");if(B()&&e===C){e.postMessage(t,{transfer:n});return}if(V()){e.postMessage(t,{transfer:n});return}if(e.postMessage){e.postMessage(t,{targetOrigin:ce(r),transfer:n});return}throw Error(\"Rimless Error: Invalid target for postMessage\")}function z(e){return C!==null&&e===C}function L(e,t,r){z(e)?e.on(t,r):(\"addEventListener\"in e)&&e.addEventListener(t,r)}function _(e,t,r){z(e)?e.off(t,r):(\"removeEventListener\"in e)&&e.removeEventListener(t,r)}function W(e){return e.data||e}var S=function(e){return e.MESSAGE=\"message\",e}({}),h=function(e){return e.HANDSHAKE_REQUEST=\"RIMLESS/HANDSHAKE_REQUEST\",e.HANDSHAKE_REPLY=\"RIMLESS/HANDSHAKE_REPLY\",e.RPC_REQUEST=\"RIMLESS/RPC_REQUEST\",e.RPC_RESOLVE=\"RIMLESS/RPC_RESOLVE\",e.RPC_REJECT=\"RIMLESS/RPC_REJECT\",e}({}),b=Symbol();function ue(e={},t,r,n,c){let o=[];for(let[s,a]of Object.entries(e)){async function i(p){let{action:m,callID:g,connectionID:w,callName:y,args:E=[]}=W(p);if(m!==h.RPC_REQUEST||!g||!y||y!==s||w!==t)return;let u={action:h.RPC_RESOLVE,callID:g,callName:y,connectionID:w,error:null,result:null},x;try{u.result=await a(...E,c),u.result?.[b]&&(x=u.result[b]??[],delete u.result[b])}catch(k){u.action=h.RPC_REJECT,u.error=JSON.parse(JSON.stringify(k,Object.getOwnPropertyNames(k)))}R(n,u,p?.origin,x)}L(r,S.MESSAGE,i),o.push(()=>_(r,S.MESSAGE,i))}return()=>o.forEach((s)=>s())}function pe(e,t,r,n=new Set,c,o){return(...s)=>new Promise((a,i)=>{let p=le();function m(){_(c,S.MESSAGE,g),n.delete(m)}function g(E){let{callID:u,connectionID:x,callName:k,result:ne,error:se,action:K}=W(E);if(!(!u||!k)&&k===e&&u===p&&x===t){if(K===h.RPC_RESOLVE)return m(),a(ne);if(K===h.RPC_REJECT)return m(),i(se)}}let w={action:h.RPC_REQUEST,args:s,callID:p,callName:e,connectionID:t},y=s.reduce((E,u)=>u[b]?.length?E.concat(u[b]):E,s[b]??[]);L(c,S.MESSAGE,g),n.add(m),R(o,w,r?.origin,y)})}function me(e={},t=[],r,n,c,o){let s={...e},a=new Set;for(let i of t)de(s,i,pe(i,r,n,a,c,o));return{remote:s,unregisterRemote:()=>a.forEach((i)=>i())}}function ge(e={},t){return new Promise(async(r)=>{let n=ie(e),c=fe(),o=self||window;async function s(a){let i=W(a);if(i?.action!==h.HANDSHAKE_REPLY)return;let{remote:p,unregisterRemote:m}=me(i.schema,i.methodNames,i.connectionID,a,o,c),g=ue(n,i.connectionID,o,c,p);return await t?.onConnectionSetup?.(p),R(c,{action:h.HANDSHAKE_REPLY,connectionID:i.connectionID},a?.origin),r({remote:p,close:()=>{_(o,S.MESSAGE,s),m(),g()},id:i.connectionID})}L(o,S.MESSAGE,s),R(c,{action:h.HANDSHAKE_REQUEST,methodNames:Object.keys(n),schema:e})})}var G={connect:ge};var q=(e={})=>{let t=e.locale??\"en\";return{...e,projectId:e.projectId,themePreference:e.themePreference??\"system\",locale:t,resource:e.resource,pageLocation:e.pageLocation,pageParams:e.pageParams??{},translations:e.translations??{locale:t,defaultLocale:t,bundle:{},defaultBundle:{}}}};var ye=(e)=>typeof e===\"object\"&&e!==null,J=(e)=>{try{let t=JSON.stringify(e);if(typeof t===\"string\"&&t.length>0)return t}catch{}try{return String(e)}catch{return\"Unknown error\"}},T=(e)=>{if(e instanceof Error)return{message:e.message,stack:e.stack};if(typeof e===\"string\")return{message:e};if(ye(e)){let t=typeof e.message===\"string\"?e.message:null,r=typeof e.stack===\"string\"?e.stack:void 0;if(t)return r?{message:t,stack:r}:{message:t};return{message:J(e)}}if(e===null||e===void 0)return{message:\"Unknown error\"};return{message:J(e)}};var M=[\"sidenav\",\"main\",\"secondary\",\"side\"];var f=(e,t)=>({extensionId:\"pstdio\",kind:e,id:t}),v={project:f(\"mode\",\"project\"),sessions:f(\"mode\",\"sessions\"),settings:f(\"mode\",\"settings\")},je={project:{ref:v.project,regions:M},sessions:{ref:v.sessions,regions:M},settings:{ref:v.settings,regions:M}},N=(e,t,r)=>({id:e,ref:f(\"resource-kind\",e),label:t,menuSlots:r}),H=[{id:\"headerPrimary\",placement:\"header-primary\",access:\"public\"},{id:\"headerOverflow\",placement:\"header-overflow\",access:\"public\"}],D={project:N(\"project\",\"Extension\",H),session:N(\"session\",\"Session\",H),workspace:N(\"workspace\",\"Workspace\",H)},I={project:D.project.ref,session:D.session.ref,workspace:D.workspace.ref},A={start:f(\"page\",\"start\"),sessions:f(\"page\",\"sessions\"),session:f(\"page\",\"session\"),workspaces:f(\"page\",\"workspaces\"),workspace:f(\"page\",\"workspace\")},Oe={start:{ref:A.start,mode:v.project,path:\"\",primary:{cardinality:\"one\",resourceKinds:[]}},sessions:{ref:A.sessions,mode:v.sessions,path:\"sessions\",primary:{cardinality:\"one\",resourceKinds:[]}},session:{ref:A.session,mode:v.sessions,path:\"session\",primary:{cardinality:\"one\",resourceKinds:[\"session\",\"session-draft\"]}},workspaces:{ref:A.workspaces,mode:v.project,path:\"workspaces\",primary:{cardinality:\"one\",resourceKinds:[]}},workspace:{ref:A.workspace,mode:v.project,path:\"workspace\",primary:{cardinality:\"many\",resourceKinds:[\"workspace\"]}}},he={projectSession:f(\"placement\",\"project-session\")},Le={projectSession:{ref:he.projectSession,mode:v.project,cardinality:\"many\",resourceKinds:[\"session\",\"session-draft\"]}},_e={projectSettings:f(\"settings-panel\",\"project.settings\"),extensionSettings:f(\"settings-panel\",\"extension.settings\"),statusBarLeading:f(\"status-bar-item\",\"status-bar.leading\"),statusBarTrailing:f(\"status-bar-item\",\"status-bar.trailing\")};var F=(e)=>({...e,kind:\"command\"}),We=Object.assign(F,{forExtension:(e)=>(t)=>F({extensionId:`${e.publisher}.${e.name}`,id:t})}),ve=(e)=>({...e,kind:\"event\"}),j=(e,t)=>({id:e,kind:t.kind,label:t.label,description:t.description,metadata:t.metadata}),d=(e)=>ve({extensionId:\"pstdio\",id:e}),P=(e,t)=>j(`${e.id}.${t}`,{kind:\"menu\"}),Me={sidenav:j(\"project.sidenav\",{kind:\"panel\"}),headerPrimary:P(I.project,\"headerPrimary\"),headerOverflow:P(I.project,\"headerOverflow\"),settingsPanels:j(\"project.settings\",{kind:\"settings\"})},Ne={headerPrimary:P(I.session,\"headerPrimary\"),headerOverflow:P(I.session,\"headerOverflow\")},He={headerPrimary:P(I.workspace,\"headerPrimary\"),headerOverflow:P(I.workspace,\"headerOverflow\"),sidenav:j(\"workspace.sidenav\",{kind:\"panel\"})},De={opened:d(\"project.opened\")},$e={projectSyncChanged:d(\"account.project-sync.changed\")},Ke={boardViewsChanged:d(\"view.board-views.changed\"),resourceAnchorsChanged:d(\"view.resource-anchors.changed\"),sessionsChanged:d(\"view.sessions.changed\"),workspacesChanged:d(\"view.workspaces.changed\"),repositoriesChanged:d(\"view.repositories.changed\")},Ue={started:d(\"session.started\"),resumed:d(\"session.resumed\"),awaitingInput:d(\"session.awaitingInput\"),succeeded:d(\"session.succeeded\"),failed:d(\"session.failed\"),completed:d(\"session.completed\")},Ve={renumbered:d(\"resource.renumbered\")},Be={created:d(\"workspace.created\"),provision:d(\"workspace.provision\"),ready:d(\"workspace.ready\"),deleted:d(\"workspace.deleted\")},ze={removed:d(\"worktree.removed\")},Ge={committed:d(\"git.committed\"),rebased:d(\"git.rebased\"),merged:d(\"git.merged\"),conflicted:d(\"git.conflicted\")};var we=[\"clipboard.write\",\"commands.execute\",\"commands.stream\",\"editing.session\",\"harnesses.read\",\"resources.actions\",\"navigation.open\",\"page.params.update\",\"placement.close\",\"notification.show\",\"notification.action\",\"notification.resolve\",\"notification.dismiss\",\"preferences.get\",\"preferences.set\",\"extension.settings.all\",\"extension.settings.get\",\"extension.settings.set\",\"extension.settings.delete\",\"terminal.session\",\"files.upload\",\"files.list\",\"files.delete\",\"account.read\",\"account.manage\"],Ee=[\"artifacts.read\"];var qe=[...we.filter((e)=>e!==\"clipboard.write\"),...Ee];var l=(e)=>(t)=>({...t,ref:{kind:e,id:t.id}}),Je=l(\"view\"),Fe=l(\"view-menu\"),Ye=l(\"placement\"),Qe=l(\"resource-kind\");var Xe=l(\"navigation-item\"),Ze=l(\"navigation-tree\"),et=l(\"mode\");var tt=l(\"status-bar-item\"),rt=l(\"settings-panel\"),nt=l(\"activity-item\"),st=l(\"settings-section\"),ot=l(\"command-palette-resource\"),at=l(\"keybinding\"),it=l(\"schedule\"),ct=l(\"artifact-mount\"),dt=l(\"template-type\"),lt=l(\"template\"),ft=l(\"skill\"),ut=l(\"theme\"),pt=l(\"file-icon-theme\"),mt=l(\"workspace-type\"),gt=l(\"harness\"),yt=l(\"connection\");var Y=(e,t,r,n)=>({call:async(c,...o)=>{try{let s=await e({method:c,params:o[0]});if(!s.ok)throw Object.assign(Error(s.error.message),s.error);return s.value}catch(s){if(s instanceof Error)throw s;throw Error(T(s).message)}},onEvent:t,extensionId:r,propsStore:n}),Q=(e)=>{let t=e,r=new Set;return{get:()=>t,subscribe:(n)=>(r.add(n),()=>r.delete(n)),set:(n)=>{t=n;for(let c of r)c(t)}}};var X=(e,t)=>{e.addEventListener(\"keydown\",(r)=>{let n=r;if(n.key!==\"Escape\")return;setTimeout(()=>{if(n.defaultPrevented)return;t({key:n.key,code:n.code,ctrlKey:n.ctrlKey,metaKey:n.metaKey,altKey:n.altKey,shiftKey:n.shiftKey,repeat:n.repeat}).catch(()=>{})},0)})};var Z=(e,t)=>{e.style.width=\"max-content\";let r=-1,n=new ResizeObserver(()=>{let c=Math.ceil(e.getBoundingClientRect().width);if(c===r)return;r=c,t(c)});return n.observe(e),()=>n.disconnect()};var ee=(e)=>{let t,r,n=!1;return{initialize:(c)=>{if(n)return Promise.resolve();return t??=e(c).then((o)=>{if(typeof o!==\"function\")return;if(n)o();else r=o}),t},dispose:()=>{n=!0,r?.(),r=void 0}}};var te=\"pstdio-extension-mount\",be=()=>{let e=new Map;return{get length(){return e.size},clear:()=>e.clear(),getItem:(t)=>e.get(t)??null,key:(t)=>Array.from(e.keys())[t]??null,removeItem:(t)=>e.delete(t),setItem:(t,r)=>e.set(t,r)}},Se=()=>{for(let e of[\"localStorage\",\"sessionStorage\"])try{window[e]}catch{Object.defineProperty(window,e,{configurable:!0,value:be()})}},re=(e,t)=>{let r=document.documentElement,n=e===\"dark\"?\"light\":\"dark\";r.classList.remove(n),r.classList.add(e),r.setAttribute(\"data-theme\",e),r.style.colorScheme=e;for(let[c,o]of Object.entries(t))if(c.startsWith(\"--\"))r.style.setProperty(c,o)},Ie=(e)=>{for(let t of e){let r=document.createElement(\"link\");r.rel=\"stylesheet\",r.href=t,document.head.appendChild(r)}},Pe=()=>{let e=document.getElementById(te);if(!e)e=document.createElement(\"div\"),e.id=te,e.style.height=\"100%\",e.style.width=\"100%\",document.body.appendChild(e);return e},ke=()=>{window.addEventListener(\"message\",(e)=>{let t=e.data?.action;if(typeof t!==\"string\"||!t.startsWith(\"RIMLESS/\"))return;if(e.source!==window.parent)e.stopImmediatePropagation()},{capture:!0})},Ce=(e)=>e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement||e instanceof HTMLElement&&e.isContentEditable,Ae=async()=>{Se(),ke();let e=Q(q()),t=new Map,r=(s,a)=>{let i=t.get(s)??new Set;return i.add(a),t.set(s,i),()=>{i.delete(a)}},n=ee(async(s)=>{Ie(s.styles);let a=await import(s.moduleUrl),i=a.default??(a.mount?a:void 0);if(!i?.mount)throw Error(\"Extension module does not export a default view (defineExtensionView).\");let p=Y((y)=>o.remote.call(y),r,s.extensionId,e),m=Pe(),g=s.sizing===\"content-width\"?Z(m,(y)=>o.remote.contentWidthChanged(y)):void 0,w=await i.mount(m,p,e);return()=>{g?.(),w?.()}}),c=!1,o=await G.connect({init:async(s)=>{try{if(re(s.theme,s.themeVariables),e.set(s.props),await n.initialize(s),!c){c=!0,X(document,(a)=>o.remote.dispatchKeyboardEvent(a)),document.addEventListener(\"keydown\",(a)=>{if(a.key===\"Escape\")return;if(!a.ctrlKey&&!a.metaKey&&!a.altKey)return;if(Ce(a.target)&&!a.shiftKey)return;o.remote.dispatchKeyboardEvent({key:a.key,code:a.code,ctrlKey:a.ctrlKey,metaKey:a.metaKey,altKey:a.altKey,shiftKey:a.shiftKey,repeat:a.repeat}).catch(()=>{})},!0);for(let a of[\"pointerdown\",\"click\"])document.addEventListener(a,(i)=>{o.remote.dispatchPointerEvent({type:a,clientX:i.clientX,clientY:i.clientY,button:i.button,buttons:i.buttons,pointerId:i.pointerId,pointerType:i.pointerType,isPrimary:i.isPrimary,ctrlKey:i.ctrlKey,metaKey:i.metaKey,altKey:i.altKey,shiftKey:i.shiftKey})},!0)}}catch(a){let i=T(a);throw o.remote.runtimeError(i),a instanceof Error?a:Error(i.message)}},themeUpdate:(s)=>{re(s.theme,s.variables)},propsUpdate:(s)=>{e.set(s.props)},hostEvent:(s)=>{for(let a of t.get(s.scope)??[])a(s.payload)}});o.remote.ready({}),window.addEventListener(\"beforeunload\",()=>{n.dispose()})};Ae();\n";
30
+ `, i = (e) => r(`<script src="${t(e)}"><\/script>`), a = (e) => r(`<script>${n(e)}<\/script>`), o = () => "// Generated by packages/pstdio-extensions/scripts/build-runtime.ts\nfunction ae(){let e=globalThis;if(e.window!==void 0&&e.document!==void 0)return\"browser\";if(e.WorkerGlobalScope!==void 0&&e.self!==void 0&&e.self instanceof e.WorkerGlobalScope||e.window===void 0&&e.self!==void 0&&typeof e.importScripts==\"function\")return\"worker\";let t=e.process;if(t&&typeof t==\"object\"){let r=t.versions??{},n=t.release?.name;if(r.bun||n===\"bun\"||e.Bun!==void 0)return\"bun\";if(r.node&&n===\"node\")return\"node\"}return e.Bun===void 0?\"browser\":\"bun\"}function O(){return ae()}function V(){return O()===\"worker\"}function B(){let e=O();return e===\"node\"||e===\"bun\"}function ie(){return window.self!==window.top}function ce(e){let t={};return function r(n,i=\"\"){Object.keys(n).forEach((o)=>{let s=i?`${i}.${o}`:o;n[o]===Object(n[o])&&r(n[o],s),typeof n[o]==\"function\"&&(t[s]=n[o],delete n[o])})}(e),t}function le(e){return!e||e===\"null\"?\"*\":e}function de(e,t,r){if(!e||typeof e!=\"object\")return e;let n=Array.isArray(t)?t:t.split(\".\").map((o)=>o.match(/^\\d+$/)?Number(o):o),i=e;for(let o=0;o<n.length;o++){let s=n[o];o===n.length-1?i[s]=r:((!i[s]||typeof i[s]!=\"object\")&&(i[s]=typeof n[o+1]==\"number\"?[]:{}),i=i[s])}return e}function fe(e=10){let t=\"\";for(let r=0;r<e;r++)t+=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\".charAt(Math.floor(Math.random()*62));return t}var U=O(),C=null;if(U===\"node\"||U===\"bun\")try{let e=globalThis.require;C=e?.(\"node:worker_threads\")?.parentPort??null}catch{}function ue(){if(B())return C;if(V())return self;if(ie())return window.parent;throw Error(\"No valid target found for postMessage\")}function R(e,t,r,n){if(!e)throw Error(\"Rimless Error: No target specified for postMessage\");if(B()&&e===C){e.postMessage(t,{transfer:n});return}if(V()){e.postMessage(t,{transfer:n});return}if(e.postMessage){e.postMessage(t,{targetOrigin:le(r),transfer:n});return}throw Error(\"Rimless Error: Invalid target for postMessage\")}function z(e){return C!==null&&e===C}function L(e,t,r){z(e)?e.on(t,r):(\"addEventListener\"in e)&&e.addEventListener(t,r)}function _(e,t,r){z(e)?e.off(t,r):(\"removeEventListener\"in e)&&e.removeEventListener(t,r)}function W(e){return e.data||e}var S=function(e){return e.MESSAGE=\"message\",e}({}),h=function(e){return e.HANDSHAKE_REQUEST=\"RIMLESS/HANDSHAKE_REQUEST\",e.HANDSHAKE_REPLY=\"RIMLESS/HANDSHAKE_REPLY\",e.RPC_REQUEST=\"RIMLESS/RPC_REQUEST\",e.RPC_RESOLVE=\"RIMLESS/RPC_RESOLVE\",e.RPC_REJECT=\"RIMLESS/RPC_REJECT\",e}({}),b=Symbol();function pe(e={},t,r,n,i){let o=[];for(let[s,a]of Object.entries(e)){async function c(m){let{action:p,callID:g,connectionID:w,callName:y,args:E=[]}=W(m);if(p!==h.RPC_REQUEST||!g||!y||y!==s||w!==t)return;let u={action:h.RPC_RESOLVE,callID:g,callName:y,connectionID:w,error:null,result:null},x;try{u.result=await a(...E,i),u.result?.[b]&&(x=u.result[b]??[],delete u.result[b])}catch(k){u.action=h.RPC_REJECT,u.error=JSON.parse(JSON.stringify(k,Object.getOwnPropertyNames(k)))}R(n,u,m?.origin,x)}L(r,S.MESSAGE,c),o.push(()=>_(r,S.MESSAGE,c))}return()=>o.forEach((s)=>s())}function me(e,t,r,n=new Set,i,o){return(...s)=>new Promise((a,c)=>{let m=fe();function p(){_(i,S.MESSAGE,g),n.delete(p)}function g(E){let{callID:u,connectionID:x,callName:k,result:se,error:oe,action:K}=W(E);if(!(!u||!k)&&k===e&&u===m&&x===t){if(K===h.RPC_RESOLVE)return p(),a(se);if(K===h.RPC_REJECT)return p(),c(oe)}}let w={action:h.RPC_REQUEST,args:s,callID:m,callName:e,connectionID:t},y=s.reduce((E,u)=>u[b]?.length?E.concat(u[b]):E,s[b]??[]);L(i,S.MESSAGE,g),n.add(p),R(o,w,r?.origin,y)})}function ge(e={},t=[],r,n,i,o){let s={...e},a=new Set;for(let c of t)de(s,c,me(c,r,n,a,i,o));return{remote:s,unregisterRemote:()=>a.forEach((c)=>c())}}function ye(e={},t){return new Promise(async(r)=>{let n=ce(e),i=ue(),o=self||window;async function s(a){let c=W(a);if(c?.action!==h.HANDSHAKE_REPLY)return;let{remote:m,unregisterRemote:p}=ge(c.schema,c.methodNames,c.connectionID,a,o,i),g=pe(n,c.connectionID,o,i,m);return await t?.onConnectionSetup?.(m),R(i,{action:h.HANDSHAKE_REPLY,connectionID:c.connectionID},a?.origin),r({remote:m,close:()=>{_(o,S.MESSAGE,s),p(),g()},id:c.connectionID})}L(o,S.MESSAGE,s),R(i,{action:h.HANDSHAKE_REQUEST,methodNames:Object.keys(n),schema:e})})}var G={connect:ye};var q=(e={})=>{let t=e.locale??\"en\";return{...e,projectId:e.projectId,themePreference:e.themePreference??\"system\",locale:t,resource:e.resource,pageLocation:e.pageLocation,pageParams:e.pageParams??{},translations:e.translations??{locale:t,defaultLocale:t,bundle:{},defaultBundle:{}}}};var he=(e)=>typeof e===\"object\"&&e!==null,J=(e)=>{try{let t=JSON.stringify(e);if(typeof t===\"string\"&&t.length>0)return t}catch{}try{return String(e)}catch{return\"Unknown error\"}},T=(e)=>{if(e instanceof Error)return{message:e.message,stack:e.stack};if(typeof e===\"string\")return{message:e};if(he(e)){let t=typeof e.message===\"string\"?e.message:null,r=typeof e.stack===\"string\"?e.stack:void 0;if(t)return r?{message:t,stack:r}:{message:t};return{message:J(e)}}if(e===null||e===void 0)return{message:\"Unknown error\"};return{message:J(e)}};var M=[\"sidenav\",\"main\",\"secondary\",\"side\"];var f=(e,t)=>({extensionId:\"pstdio\",kind:e,id:t}),v={project:f(\"mode\",\"project\"),sessions:f(\"mode\",\"sessions\"),settings:f(\"mode\",\"settings\")},Oe={project:{ref:v.project,regions:M},sessions:{ref:v.sessions,regions:M},settings:{ref:v.settings,regions:M}},N=(e,t,r)=>({id:e,ref:f(\"resource-kind\",e),label:t,menuSlots:r}),H=[{id:\"headerPrimary\",placement:\"header-primary\",access:\"public\"},{id:\"headerOverflow\",placement:\"header-overflow\",access:\"public\"}],D={project:N(\"project\",\"Extension\",H),session:N(\"session\",\"Session\",H),workspace:N(\"workspace\",\"Workspace\",H)},I={project:D.project.ref,session:D.session.ref,workspace:D.workspace.ref},A={start:f(\"page\",\"start\"),sessions:f(\"page\",\"sessions\"),session:f(\"page\",\"session\"),workspaces:f(\"page\",\"workspaces\"),workspace:f(\"page\",\"workspace\")},Le={start:{ref:A.start,mode:v.project,path:\"\",primary:{cardinality:\"one\",resourceKinds:[]}},sessions:{ref:A.sessions,mode:v.sessions,path:\"sessions\",primary:{cardinality:\"one\",resourceKinds:[]}},session:{ref:A.session,mode:v.sessions,path:\"session\",primary:{cardinality:\"one\",resourceKinds:[\"session\",\"session-draft\"]}},workspaces:{ref:A.workspaces,mode:v.project,path:\"workspaces\",primary:{cardinality:\"one\",resourceKinds:[]}},workspace:{ref:A.workspace,mode:v.project,path:\"workspace\",primary:{cardinality:\"many\",resourceKinds:[\"workspace\"]}}},ve={projectSession:f(\"placement\",\"project-session\")},_e={projectSession:{ref:ve.projectSession,mode:v.project,cardinality:\"many\",resourceKinds:[\"session\",\"session-draft\"]}},We={developerSettings:f(\"settings-panel\",\"developer.settings\"),globalSettings:f(\"settings-panel\",\"global.settings\"),projectSettings:f(\"settings-panel\",\"project.settings\"),extensionSettings:f(\"settings-panel\",\"extension.settings\"),statusBarLeading:f(\"status-bar-item\",\"status-bar.leading\"),statusBarTrailing:f(\"status-bar-item\",\"status-bar.trailing\")};var F=(e)=>({...e,kind:\"command\"}),Me=Object.assign(F,{forExtension:(e)=>(t)=>F({extensionId:`${e.publisher}.${e.name}`,id:t})}),we=(e)=>({...e,kind:\"event\"}),j=(e,t)=>({id:e,kind:t.kind,label:t.label,description:t.description,metadata:t.metadata}),l=(e)=>we({extensionId:\"pstdio\",id:e}),P=(e,t)=>j(`${e.id}.${t}`,{kind:\"menu\"}),Ne={sidenav:j(\"project.sidenav\",{kind:\"panel\"}),headerPrimary:P(I.project,\"headerPrimary\"),headerOverflow:P(I.project,\"headerOverflow\"),settingsPanels:j(\"project.settings\",{kind:\"settings\"})},He={headerPrimary:P(I.session,\"headerPrimary\"),headerOverflow:P(I.session,\"headerOverflow\")},De={headerPrimary:P(I.workspace,\"headerPrimary\"),headerOverflow:P(I.workspace,\"headerOverflow\"),sidenav:j(\"workspace.sidenav\",{kind:\"panel\"})},$e={opened:l(\"project.opened\")},Ke={projectSyncChanged:l(\"account.project-sync.changed\")},Ue={boardViewsChanged:l(\"view.board-views.changed\"),resourceAnchorsChanged:l(\"view.resource-anchors.changed\"),sessionsChanged:l(\"view.sessions.changed\"),workspacesChanged:l(\"view.workspaces.changed\"),repositoriesChanged:l(\"view.repositories.changed\")},Ve={started:l(\"session.started\"),resumed:l(\"session.resumed\"),awaitingInput:l(\"session.awaitingInput\"),succeeded:l(\"session.succeeded\"),failed:l(\"session.failed\"),completed:l(\"session.completed\")},Be={renumbered:l(\"resource.renumbered\")},ze={created:l(\"workspace.created\"),provision:l(\"workspace.provision\"),ready:l(\"workspace.ready\"),deleted:l(\"workspace.deleted\")},Ge={removed:l(\"worktree.removed\")},qe={committed:l(\"git.committed\"),rebased:l(\"git.rebased\"),merged:l(\"git.merged\"),conflicted:l(\"git.conflicted\")};var Ee=[\"clipboard.write\",\"commands.execute\",\"commands.stream\",\"editing.session\",\"harnesses.read\",\"resources.actions\",\"navigation.open\",\"page.params.update\",\"placement.close\",\"notification.show\",\"notification.action\",\"notification.resolve\",\"notification.dismiss\",\"preferences.get\",\"preferences.set\",\"extension.settings.all\",\"extension.settings.get\",\"extension.settings.set\",\"extension.settings.delete\",\"terminal.session\",\"files.upload\",\"files.list\",\"files.delete\",\"account.read\",\"account.manage\",\"performance.read\",\"performance.control\"],be=[\"artifacts.read\"];var Je=[...Ee.filter((e)=>e!==\"clipboard.write\"),...be];var d=(e)=>(t)=>({...t,ref:{kind:e,id:t.id}}),Fe=d(\"view\"),Ye=d(\"view-menu\"),Qe=d(\"placement\"),Xe=d(\"resource-kind\");var Ze=d(\"navigation-item\"),et=d(\"navigation-tree\"),tt=d(\"mode\");var rt=d(\"status-bar-item\"),nt=d(\"settings-panel\"),st=d(\"activity-item\"),ot=d(\"settings-section\"),at=d(\"command-palette-resource\"),it=d(\"keybinding\"),ct=d(\"schedule\"),lt=d(\"artifact-mount\"),dt=d(\"template-type\"),ft=d(\"template\"),ut=d(\"skill\"),pt=d(\"theme\"),mt=d(\"file-icon-theme\"),gt=d(\"workspace-type\"),yt=d(\"harness\"),ht=d(\"connection\");var Y=(e,t,r,n)=>({call:async(i,...o)=>{try{let s=await e({method:i,params:o[0]});if(!s.ok)throw Object.assign(Error(s.error.message),s.error);return s.value}catch(s){if(s instanceof Error)throw s;throw Error(T(s).message)}},onEvent:t,extensionId:r,propsStore:n}),Q=(e)=>{let t=e,r=new Set;return{get:()=>t,subscribe:(n)=>(r.add(n),()=>r.delete(n)),set:(n)=>{t=n;for(let i of r)i(t)}}};var X=(e,t)=>{e.addEventListener(\"keydown\",(r)=>{let n=r;if(n.key!==\"Escape\")return;setTimeout(()=>{if(n.defaultPrevented)return;t({key:n.key,code:n.code,ctrlKey:n.ctrlKey,metaKey:n.metaKey,altKey:n.altKey,shiftKey:n.shiftKey,repeat:n.repeat}).catch(()=>{})},0)})};var Z=(e,t)=>{e.style.height=\"auto\";let r=-1,n=new ResizeObserver(()=>{let i=Math.ceil(e.getBoundingClientRect().height);if(i===r)return;r=i,t(i)});return n.observe(e),()=>n.disconnect()};var ee=(e,t)=>{e.style.width=\"max-content\";let r=-1,n=new ResizeObserver(()=>{let i=Math.ceil(e.getBoundingClientRect().width);if(i===r)return;r=i,t(i)});return n.observe(e),()=>n.disconnect()};var te=(e)=>{let t,r,n=!1;return{initialize:(i)=>{if(n)return Promise.resolve();return t??=e(i).then((o)=>{if(typeof o!==\"function\")return;if(n)o();else r=o}),t},dispose:()=>{n=!0,r?.(),r=void 0}}};var re=\"pstdio-extension-mount\",Se=()=>{let e=new Map;return{get length(){return e.size},clear:()=>e.clear(),getItem:(t)=>e.get(t)??null,key:(t)=>Array.from(e.keys())[t]??null,removeItem:(t)=>e.delete(t),setItem:(t,r)=>e.set(t,r)}},Ie=()=>{for(let e of[\"localStorage\",\"sessionStorage\"])try{window[e]}catch{Object.defineProperty(window,e,{configurable:!0,value:Se()})}},ne=(e,t)=>{let r=document.documentElement,n=e===\"dark\"?\"light\":\"dark\";r.classList.remove(n),r.classList.add(e),r.setAttribute(\"data-theme\",e),r.style.colorScheme=e;for(let[i,o]of Object.entries(t))if(i.startsWith(\"--\"))r.style.setProperty(i,o)},Pe=(e)=>{for(let t of e){let r=document.createElement(\"link\");r.rel=\"stylesheet\",r.href=t,document.head.appendChild(r)}},ke=()=>{let e=document.getElementById(re);if(!e)e=document.createElement(\"div\"),e.id=re,e.style.height=\"100%\",e.style.width=\"100%\",document.body.appendChild(e);return e},Ce=()=>{window.addEventListener(\"message\",(e)=>{let t=e.data?.action;if(typeof t!==\"string\"||!t.startsWith(\"RIMLESS/\"))return;if(e.source!==window.parent)e.stopImmediatePropagation()},{capture:!0})},Ae=(e)=>e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement||e instanceof HTMLElement&&e.isContentEditable,xe=async()=>{Ie(),Ce();let e=Q(q()),t=new Map,r=(s,a)=>{let c=t.get(s)??new Set;return c.add(a),t.set(s,c),()=>{c.delete(a)}},n=te(async(s)=>{Pe(s.styles);let a=await import(s.moduleUrl),c=a.default??(a.mount?a:void 0);if(!c?.mount)throw Error(\"Extension module does not export a default view (defineExtensionView).\");let m=Y((y)=>o.remote.call(y),r,s.extensionId,e),p=ke(),g;if(s.sizing===\"content-width\")g=ee(p,(y)=>o.remote.contentWidthChanged(y));if(s.sizing===\"content-height\")g=Z(p,(y)=>o.remote.contentHeightChanged?.(y));let w=await c.mount(p,m,e);return()=>{g?.(),w?.()}}),i=!1,o=await G.connect({init:async(s)=>{try{if(ne(s.theme,s.themeVariables),e.set(s.props),await n.initialize(s),!i){i=!0,X(document,(a)=>o.remote.dispatchKeyboardEvent(a)),document.addEventListener(\"keydown\",(a)=>{if(a.key===\"Escape\")return;if(!a.ctrlKey&&!a.metaKey&&!a.altKey)return;if(Ae(a.target)&&!a.shiftKey)return;o.remote.dispatchKeyboardEvent({key:a.key,code:a.code,ctrlKey:a.ctrlKey,metaKey:a.metaKey,altKey:a.altKey,shiftKey:a.shiftKey,repeat:a.repeat}).catch(()=>{})},!0);for(let a of[\"pointerdown\",\"click\"])document.addEventListener(a,(c)=>{o.remote.dispatchPointerEvent({type:a,clientX:c.clientX,clientY:c.clientY,button:c.button,buttons:c.buttons,pointerId:c.pointerId,pointerType:c.pointerType,isPrimary:c.isPrimary,ctrlKey:c.ctrlKey,metaKey:c.metaKey,altKey:c.altKey,shiftKey:c.shiftKey})},!0)}}catch(a){let c=T(a);throw o.remote.runtimeError(c),a instanceof Error?a:Error(c.message)}},themeUpdate:(s)=>{ne(s.theme,s.variables)},propsUpdate:(s)=>{e.set(s.props)},hostEvent:(s)=>{for(let a of t.get(s.scope)??[])a(s.payload)}});o.remote.ready({}),window.addEventListener(\"beforeunload\",()=>{n.dispose()})};xe();\n";
31
31
  export { o as getExtensionRuntimeScript, i as renderExtensionRuntimeHtml, a as renderInlineExtensionRuntimeHtml };
32
32
 
33
33
  //# sourceMappingURL=webview-runtime.js.map