@pstdio/workbench 0.43.1-nightly.20261013030813 → 0.43.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/react.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { Ct as PreferenceRegistry, Dt as PreferenceValue, Fi as CommandParamDescriptor, Fr as TreeAction, Gt as KeybindingSequence, I as WorkbenchModuleContribution, Ii as CommandParamOption, Jr as MenuPath, K as ThemePreferenceOption$1, Kr as WorkbenchPanelRenderInput, Li as CommandParamSchema, M as WorkbenchCore, N as WorkbenchCoreContributionContext, Ni as Command, Qr as WorkbenchFocusRegionId, Qt as WorkbenchTerminalController, St as PreferencePropertySchema, Tt as PreferenceScope, Xr as RegisteredMenuItem, Z as WorkbenchStatusRegistry, bi as WorkbenchRegion$1, ei as RegisteredPlaceholderContribution, er as RegisteredDataTableRendererContribution, ga as WorkbenchStore, ha as Disposable, hi as WorkbenchWidgetPlacement, ii as WorkbenchPanelInstance, qi as ResourceRef$1, ti as RegisteredWidgetContribution, zi as WorkbenchCommandExecutionContext } from "./index-dbYXNnIr.js";
2
- import { a as ReactResourceContextAction, i as ReactKanbanRendererContribution, n as ReactAttributesSource, r as ReactBoardColumnConfig, t as ReactAttributeDescriptor } from "./kanban-presentation-DnZgAsZo.js";
1
+ import { Ct as PreferenceRegistry, Dt as PreferenceValue, Fi as CommandParamDescriptor, Fr as TreeAction, Gt as KeybindingSequence, I as WorkbenchModuleContribution, Ii as CommandParamOption, Jr as MenuPath, K as ThemePreferenceOption$1, Kr as WorkbenchPanelRenderInput, Li as CommandParamSchema, M as WorkbenchCore, N as WorkbenchCoreContributionContext, Ni as Command, Qr as WorkbenchFocusRegionId, Qt as WorkbenchTerminalController, St as PreferencePropertySchema, Tt as PreferenceScope, Xr as RegisteredMenuItem, Z as WorkbenchStatusRegistry, bi as WorkbenchRegion$1, ei as RegisteredPlaceholderContribution, er as RegisteredDataTableRendererContribution, ga as WorkbenchStore, ha as Disposable, hi as WorkbenchWidgetPlacement, ii as WorkbenchPanelInstance, qi as ResourceRef$1, ti as RegisteredWidgetContribution, zi as WorkbenchCommandExecutionContext } from "./index-onoay_1m.js";
2
+ import { a as ReactResourceContextAction, i as ReactKanbanRendererContribution, n as ReactAttributesSource, r as ReactBoardColumnConfig, t as ReactAttributeDescriptor } from "./kanban-presentation-DO5U25GX.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,2 +1,2 @@
1
- import { $ as e, A as t, B as n, C as r, D as i, E as a, F as o, G as s, H as c, I as l, J as u, K as d, L as f, M as p, N as m, O as h, P as g, Q as _, R as v, S as y, T as b, U as x, V as S, W as C, X as w, Y as T, Z as E, _ as D, at as O, b as k, ct as A, d as j, dt as M, et as N, f as P, g as F, h as I, i as L, it as R, j as z, k as B, lt as V, m as H, n as U, nt as W, ot as G, p as K, q, r as J, rt as Y, st as X, t as Z, tt as Q, ut as $, v as ee, w as te, x as ne, y as re, z as ie } from "./react-Blq0pNJq.js";
1
+ import { $ as e, A as t, B as n, C as r, D as i, E as a, F as o, G as s, H as c, I as l, J as u, K as d, L as f, M as p, N as m, O as h, P as g, Q as _, R as v, S as y, T as b, U as x, V as S, W as C, X as w, Y as T, Z as E, _ as D, at as O, b as k, ct as A, d as j, dt as M, et as N, f as P, g as F, h as I, i as L, it as R, j as z, k as B, lt as V, m as H, n as U, nt as W, ot as G, p as K, q, r as J, rt as Y, st as X, t as Z, tt as Q, ut as $, v as ee, w as te, x as ne, y as re, z as ie } from "./react-BsyyXmgz.js";
2
2
  export { Y as CommandOptionStatus, N as CommandParamField, p as RelatedResources, b as WORKBENCH_SETTINGS_NAV_WIDGET_ID, B as WORKBENCH_SETTINGS_OPEN_COMMAND_ID, a as WORKBENCH_SETTINGS_PANEL_WIDGET_ID, i as WORKBENCH_SETTINGS_WIDGET_ID, I as WORKBENCH_TERMINAL_OPEN_COMMAND_ID, F as WORKBENCH_TERMINAL_PANEL_SIZE, D as WORKBENCH_TERMINAL_WIDGET_ID, L as Workbench, r as WorkbenchAttachedSidePanel, R as WorkbenchBreadcrumbView, _ as WorkbenchCommandPalette, v as WorkbenchConnectionProvider, f as WorkbenchDataTableView, te as WorkbenchFloatingSidePanel, E as WorkbenchFocusRegion, T as WorkbenchHeaderActions, M as WorkbenchIcon, d as WorkbenchKeybindingDispatcher, Z as WorkbenchModuleHost, c as WorkbenchNotificationHost, j as WorkbenchOverlayLayer, g as WorkbenchPreferencesForm, n as WorkbenchRegion, ie as WorkbenchRegionTabs, k as WorkbenchTerminalPanel, K as WorkbenchThemeProvider, P as WorkbenchThemeScope, m as WorkbenchTreeView, S as WorkbenchWidgetHost, y as WorkflowStatusSettings, G as buildCommandParamInitialValues, Q as commandParamName, X as createCommandFilesParamValue, ne as createControllerTerminalBridge, s as createTreeContextMenuItems, q as createWorkbenchHotkeyRegistrations, x as createWorkbenchResourceActions, t as createWorkbenchResourceLinksModule, h as createWorkbenchSettingsModule, ee as createWorkbenchTerminalModule, U as disposeWorkbenchModuleHostRegistrations, A as isCommandFilesParamValue, V as listCommandParamEntries, w as listWorkbenchMenuItems, $ as normalizeCommandParamValues, u as normalizeWorkbenchKeybinding, re as openWorkbenchTerminal, o as paramValueToPreference, l as preferenceSchemaToParams, W as readCommandParamValue, z as resourceLinksCommandId, J as syncWorkbenchModuleHostRegistrations, e as useCommandOptions, C as useWorkbenchResourceActionResolver, O as useWorkbenchStore, H as useWorkbenchThemePreferences };
package/dist/storage.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { $r as LayoutPersistenceAdapter, B as WorkbenchPersistenceAdapter, Ur as TreeRendererPersistenceAdapter, fn as WorkbenchPanelMenuStatePersistenceAdapter, it as WorkbenchStatusBarPersistenceAdapter, vn as WorkbenchPageLocationPersistence } from "./index-dbYXNnIr.js";
1
+ import { $r as LayoutPersistenceAdapter, B as WorkbenchPersistenceAdapter, Ur as TreeRendererPersistenceAdapter, fn as WorkbenchPanelMenuStatePersistenceAdapter, it as WorkbenchStatusBarPersistenceAdapter, vn as WorkbenchPageLocationPersistence } from "./index-onoay_1m.js";
2
2
  //#region src/storage/local-storage-persistence-helpers.d.ts
3
3
  interface WorkbenchStorageLike {
4
4
  readonly length?: number;
@@ -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 re(){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 n=t.versions??{},r=t.release?.name;if(n.bun||r===\"bun\"||e.Bun!==void 0)return\"bun\";if(n.node&&r===\"node\")return\"node\"}return e.Bun===void 0?\"browser\":\"bun\"}function M(){return re()}function z(){return M()===\"worker\"}function B(){let e=M();return e===\"node\"||e===\"bun\"}function se(){return window.self!==window.top}function oe(e){let t={};return function n(r,a=\"\"){Object.keys(r).forEach((s)=>{let o=a?`${a}.${s}`:s;r[s]===Object(r[s])&&n(r[s],o),typeof r[s]==\"function\"&&(t[o]=r[s],delete r[s])})}(e),t}function ie(e){return!e||e===\"null\"?\"*\":e}function ae(e,t,n){if(!e||typeof e!=\"object\")return e;let r=Array.isArray(t)?t:t.split(\".\").map((s)=>s.match(/^\\d+$/)?Number(s):s),a=e;for(let s=0;s<r.length;s++){let o=r[s];s===r.length-1?a[o]=n:((!a[o]||typeof a[o]!=\"object\")&&(a[o]=typeof r[s+1]==\"number\"?[]:{}),a=a[o])}return e}function ce(e=10){let t=\"\";for(let n=0;n<e;n++)t+=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\".charAt(Math.floor(Math.random()*62));return t}var V=M(),x=null;if(V===\"node\"||V===\"bun\")try{let e=globalThis.require;x=e?.(\"node:worker_threads\")?.parentPort??null}catch{}function de(){if(B())return x;if(z())return self;if(se())return window.parent;throw Error(\"No valid target found for postMessage\")}function A(e,t,n,r){if(!e)throw Error(\"Rimless Error: No target specified for postMessage\");if(B()&&e===x){e.postMessage(t,{transfer:r});return}if(z()){e.postMessage(t,{transfer:r});return}if(e.postMessage){e.postMessage(t,{targetOrigin:ie(n),transfer:r});return}throw Error(\"Rimless Error: Invalid target for postMessage\")}function G(e){return x!==null&&e===x}function L(e,t,n){G(e)?e.on(t,n):(\"addEventListener\"in e)&&e.addEventListener(t,n)}function O(e,t,n){G(e)?e.off(t,n):(\"removeEventListener\"in e)&&e.removeEventListener(t,n)}function _(e){return e.data||e}var E=function(e){return e.MESSAGE=\"message\",e}({}),g=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}({}),v=Symbol();function le(e={},t,n,r,a){let s=[];for(let[o,i]of Object.entries(e)){async function c(p){let{action:m,callID:h,connectionID:R,callName:I,args:w=[]}=_(p);if(m!==g.RPC_REQUEST||!h||!I||I!==o||R!==t)return;let f={action:g.RPC_RESOLVE,callID:h,callName:I,connectionID:R,error:null,result:null},C;try{f.result=await i(...w,a),f.result?.[v]&&(C=f.result[v]??[],delete f.result[v])}catch(k){f.action=g.RPC_REJECT,f.error=JSON.parse(JSON.stringify(k,Object.getOwnPropertyNames(k)))}A(r,f,p?.origin,C)}L(n,E.MESSAGE,c),s.push(()=>O(n,E.MESSAGE,c))}return()=>s.forEach((o)=>o())}function fe(e,t,n,r=new Set,a,s){return(...o)=>new Promise((i,c)=>{let p=ce();function m(){O(a,E.MESSAGE,h),r.delete(m)}function h(w){let{callID:f,connectionID:C,callName:k,result:te,error:ne,action:W}=_(w);if(!(!f||!k)&&k===e&&f===p&&C===t){if(W===g.RPC_RESOLVE)return m(),i(te);if(W===g.RPC_REJECT)return m(),c(ne)}}let R={action:g.RPC_REQUEST,args:o,callID:p,callName:e,connectionID:t},I=o.reduce((w,f)=>f[v]?.length?w.concat(f[v]):w,o[v]??[]);L(a,E.MESSAGE,h),r.add(m),A(s,R,n?.origin,I)})}function ue(e={},t=[],n,r,a,s){let o={...e},i=new Set;for(let c of t)ae(o,c,fe(c,n,r,i,a,s));return{remote:o,unregisterRemote:()=>i.forEach((c)=>c())}}function pe(e={},t){return new Promise(async(n)=>{let r=oe(e),a=de(),s=self||window;async function o(i){let c=_(i);if(c?.action!==g.HANDSHAKE_REPLY)return;let{remote:p,unregisterRemote:m}=ue(c.schema,c.methodNames,c.connectionID,i,s,a),h=le(r,c.connectionID,s,a,p);return await t?.onConnectionSetup?.(p),A(a,{action:g.HANDSHAKE_REPLY,connectionID:c.connectionID},i?.origin),n({remote:p,close:()=>{O(s,E.MESSAGE,o),m(),h()},id:c.connectionID})}L(s,E.MESSAGE,o),A(a,{action:g.HANDSHAKE_REQUEST,methodNames:Object.keys(r),schema:e})})}var J={connect:pe};var me=(e)=>typeof e===\"object\"&&e!==null,q=(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(me(e)){let t=typeof e.message===\"string\"?e.message:null,n=typeof e.stack===\"string\"?e.stack:void 0;if(t)return n?{message:t,stack:n}:{message:t};return{message:q(e)}}if(e===null||e===void 0)return{message:\"Unknown error\"};return{message:q(e)}};var N=\"(?:0|[1-9]\\\\d*)\",Ae=new RegExp(`^\\\\^(${N}\\\\.${N}\\\\.${N})$`);var H=[\"sidenav\",\"main\",\"secondary\",\"side\"];var u=(e,t)=>({extensionId:\"pstdio\",kind:e,id:t}),y={project:u(\"mode\",\"project\"),sessions:u(\"mode\",\"sessions\"),settings:u(\"mode\",\"settings\")},Te={project:{ref:y.project,regions:H},sessions:{ref:y.sessions,regions:H},settings:{ref:y.settings,regions:H}},U=(e,t,n)=>({id:e,ref:u(\"resource-kind\",e),label:t,menuSlots:n}),D=[{id:\"headerPrimary\",placement:\"header-primary\",access:\"public\"},{id:\"headerOverflow\",placement:\"header-overflow\",access:\"public\"}],K={project:U(\"project\",\"Extension\",D),session:U(\"session\",\"Session\",D),workspace:U(\"workspace\",\"Workspace\",D)},b={project:K.project.ref,session:K.session.ref,workspace:K.workspace.ref},P={start:u(\"page\",\"start\"),sessions:u(\"page\",\"sessions\"),session:u(\"page\",\"session\"),workspaces:u(\"page\",\"workspaces\"),workspace:u(\"page\",\"workspace\")},je={start:{ref:P.start,mode:y.project,path:\"\",primary:{cardinality:\"one\",resourceKinds:[]}},sessions:{ref:P.sessions,mode:y.sessions,path:\"sessions\",primary:{cardinality:\"one\",resourceKinds:[]}},session:{ref:P.session,mode:y.sessions,path:\"session\",primary:{cardinality:\"one\",resourceKinds:[\"session\",\"session-draft\"]}},workspaces:{ref:P.workspaces,mode:y.project,path:\"workspaces\",primary:{cardinality:\"one\",resourceKinds:[]}},workspace:{ref:P.workspace,mode:y.project,path:\"workspace\",primary:{cardinality:\"many\",resourceKinds:[\"workspace\"]}}},ge={projectSession:u(\"placement\",\"project-session\")},Me={projectSession:{ref:ge.projectSession,mode:y.project,cardinality:\"many\",resourceKinds:[\"session\",\"session-draft\"]}},Le={projectSettings:u(\"settings-panel\",\"project.settings\"),statusBarLeading:u(\"status-bar-item\",\"status-bar.leading\"),statusBarTrailing:u(\"status-bar-item\",\"status-bar.trailing\")};var F=(e)=>({...e,kind:\"command\"}),Oe=Object.assign(F,{forExtension:(e)=>(t)=>F({extensionId:`${e.publisher}.${e.name}`,id:t})}),ye=(e)=>({...e,kind:\"event\"}),j=(e,t)=>({id:e,kind:t.kind,label:t.label,description:t.description,metadata:t.metadata}),l=(e)=>ye({extensionId:\"pstdio\",id:e}),S=(e,t)=>j(`${e.id}.${t}`,{kind:\"menu\"}),$e={sidenav:j(\"project.sidenav\",{kind:\"panel\"}),headerPrimary:S(b.project,\"headerPrimary\"),headerOverflow:S(b.project,\"headerOverflow\"),settingsPanels:j(\"project.settingsPanels\",{kind:\"settings\"})},_e={headerPrimary:S(b.session,\"headerPrimary\"),headerOverflow:S(b.session,\"headerOverflow\")},Ne={headerPrimary:S(b.workspace,\"headerPrimary\"),headerOverflow:S(b.workspace,\"headerOverflow\"),sidenav:j(\"workspace.sidenav\",{kind:\"panel\"})},He={opened:l(\"project.opened\")},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\")},De={started:l(\"session.started\"),resumed:l(\"session.resumed\"),awaitingInput:l(\"session.awaitingInput\"),succeeded:l(\"session.succeeded\"),failed:l(\"session.failed\"),completed:l(\"session.completed\")},Ke={created:l(\"workspace.created\"),provision:l(\"workspace.provision\"),ready:l(\"workspace.ready\"),archived:l(\"workspace.archived\"),deleted:l(\"workspace.deleted\")},We={removed:l(\"worktree.removed\")},Ve={committed:l(\"git.committed\"),rebased:l(\"git.rebased\"),merged:l(\"git.merged\"),conflicted:l(\"git.conflicted\")};var he=[\"clipboard.write\",\"commands.execute\",\"commands.stream\",\"navigation.open\",\"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\"],we=[\"artifacts.read\"],ve=[\"host.dispatchKeyboardEvent\"],ze=[...he.filter((e)=>e!==\"clipboard.write\"),...we,...ve];var d=(e)=>(t)=>({...t,ref:{kind:e,id:t.id}}),Be=d(\"view\"),Ge=d(\"view-menu\"),Je=d(\"placement\"),qe=d(\"resource-kind\");var Fe=d(\"navigation-item\"),Ye=d(\"navigation-tree\"),Qe=d(\"mode\");var Xe=d(\"status-bar-item\"),Ze=d(\"status\"),et=d(\"settings-panel\"),tt=d(\"activity-item\"),nt=d(\"settings-section\"),rt=d(\"command-palette-resource\"),st=d(\"keybinding\"),ot=d(\"schedule\"),it=d(\"artifact-mount\"),at=d(\"template-type\"),ct=d(\"template\"),dt=d(\"skill\"),lt=d(\"theme\"),ft=d(\"file-icon-theme\"),ut=d(\"workspace-type\"),pt=d(\"harness\"),mt=d(\"connection\");var Y=(e,t,n)=>({call:async(r,...a)=>{try{return await e({method:r,params:a[0]})}catch(s){if(s instanceof Error)throw s;throw Error(T(s).message)}},onEvent:t,extensionId:n}),Q=(e)=>{let t=e,n=new Set;return{get:()=>t,subscribe:(r)=>(n.add(r),()=>n.delete(r)),set:(r)=>{t=r;for(let a of n)a(t)}}};var X=(e)=>{let t,n,r=!1;return{initialize:(a)=>{if(r)return Promise.resolve();return t??=e(a).then((s)=>{if(typeof s!==\"function\")return;if(r)s();else n=s}),t},dispose:()=>{r=!0,n?.(),n=void 0}}};var Z=\"pstdio-extension-mount\",Ee=()=>{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,n)=>e.set(t,n)}},be=()=>{for(let e of[\"localStorage\",\"sessionStorage\"])try{window[e]}catch{Object.defineProperty(window,e,{configurable:!0,value:Ee()})}},ee=(e,t)=>{let n=document.documentElement,r=e===\"dark\"?\"light\":\"dark\";n.classList.remove(r),n.classList.add(e),n.setAttribute(\"data-theme\",e),n.style.colorScheme=e;for(let[a,s]of Object.entries(t))if(a.startsWith(\"--\"))n.style.setProperty(a,s)},Se=(e)=>{for(let t of e){let n=document.createElement(\"link\");n.rel=\"stylesheet\",n.href=t,document.head.appendChild(n)}},Ie=()=>{let e=document.getElementById(Z);if(!e)e=document.createElement(\"div\"),e.id=Z,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})},xe=(e)=>e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement||e instanceof HTMLElement&&e.isContentEditable,Pe=async()=>{be(),ke();let e=Q(void 0),t=new Map,n=(o,i)=>{let c=t.get(o)??new Set;return c.add(i),t.set(o,c),()=>{c.delete(i)}},r=X(async(o)=>{Se(o.styles);let i=await import(o.moduleUrl),c=i.default??(i.mount?i:void 0);if(!c?.mount)throw Error(\"Extension module does not export a default view (defineExtensionView).\");let p=Y((m)=>s.remote.call(m),n,o.extensionId);return await c.mount(Ie(),p,e)}),a=!1,s=await J.connect({init:async(o)=>{try{if(ee(o.theme,o.themeVariables),e.set(o.props),await r.initialize(o),!a)a=!0,document.addEventListener(\"keydown\",(i)=>{if(!i.ctrlKey&&!i.metaKey&&!i.altKey)return;if(xe(i.target)&&!i.shiftKey)return;s.remote.call({method:\"host.dispatchKeyboardEvent\",params:{key:i.key,code:i.code,ctrlKey:i.ctrlKey,metaKey:i.metaKey,altKey:i.altKey,shiftKey:i.shiftKey,repeat:i.repeat}}).catch(()=>{})},!0)}catch(i){let c=T(i);throw s.remote.runtimeError(c),i instanceof Error?i:Error(c.message)}},themeUpdate:(o)=>{ee(o.theme,o.variables)},propsUpdate:(o)=>{e.set(o.props)},hostEvent:(o)=>{for(let i of t.get(o.scope)??[])i(o.payload)}});s.remote.ready({}),window.addEventListener(\"beforeunload\",()=>{r.dispose()})};Pe();\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 re(){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 n=t.versions??{},r=t.release?.name;if(n.bun||r===\"bun\"||e.Bun!==void 0)return\"bun\";if(n.node&&r===\"node\")return\"node\"}return e.Bun===void 0?\"browser\":\"bun\"}function M(){return re()}function z(){return M()===\"worker\"}function B(){let e=M();return e===\"node\"||e===\"bun\"}function se(){return window.self!==window.top}function oe(e){let t={};return function n(r,a=\"\"){Object.keys(r).forEach((s)=>{let o=a?`${a}.${s}`:s;r[s]===Object(r[s])&&n(r[s],o),typeof r[s]==\"function\"&&(t[o]=r[s],delete r[s])})}(e),t}function ie(e){return!e||e===\"null\"?\"*\":e}function ae(e,t,n){if(!e||typeof e!=\"object\")return e;let r=Array.isArray(t)?t:t.split(\".\").map((s)=>s.match(/^\\d+$/)?Number(s):s),a=e;for(let s=0;s<r.length;s++){let o=r[s];s===r.length-1?a[o]=n:((!a[o]||typeof a[o]!=\"object\")&&(a[o]=typeof r[s+1]==\"number\"?[]:{}),a=a[o])}return e}function ce(e=10){let t=\"\";for(let n=0;n<e;n++)t+=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\".charAt(Math.floor(Math.random()*62));return t}var V=M(),x=null;if(V===\"node\"||V===\"bun\")try{let e=globalThis.require;x=e?.(\"node:worker_threads\")?.parentPort??null}catch{}function de(){if(B())return x;if(z())return self;if(se())return window.parent;throw Error(\"No valid target found for postMessage\")}function A(e,t,n,r){if(!e)throw Error(\"Rimless Error: No target specified for postMessage\");if(B()&&e===x){e.postMessage(t,{transfer:r});return}if(z()){e.postMessage(t,{transfer:r});return}if(e.postMessage){e.postMessage(t,{targetOrigin:ie(n),transfer:r});return}throw Error(\"Rimless Error: Invalid target for postMessage\")}function G(e){return x!==null&&e===x}function L(e,t,n){G(e)?e.on(t,n):(\"addEventListener\"in e)&&e.addEventListener(t,n)}function O(e,t,n){G(e)?e.off(t,n):(\"removeEventListener\"in e)&&e.removeEventListener(t,n)}function _(e){return e.data||e}var E=function(e){return e.MESSAGE=\"message\",e}({}),g=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}({}),v=Symbol();function le(e={},t,n,r,a){let s=[];for(let[o,i]of Object.entries(e)){async function c(p){let{action:m,callID:h,connectionID:R,callName:I,args:w=[]}=_(p);if(m!==g.RPC_REQUEST||!h||!I||I!==o||R!==t)return;let u={action:g.RPC_RESOLVE,callID:h,callName:I,connectionID:R,error:null,result:null},C;try{u.result=await i(...w,a),u.result?.[v]&&(C=u.result[v]??[],delete u.result[v])}catch(k){u.action=g.RPC_REJECT,u.error=JSON.parse(JSON.stringify(k,Object.getOwnPropertyNames(k)))}A(r,u,p?.origin,C)}L(n,E.MESSAGE,c),s.push(()=>O(n,E.MESSAGE,c))}return()=>s.forEach((o)=>o())}function fe(e,t,n,r=new Set,a,s){return(...o)=>new Promise((i,c)=>{let p=ce();function m(){O(a,E.MESSAGE,h),r.delete(m)}function h(w){let{callID:u,connectionID:C,callName:k,result:te,error:ne,action:W}=_(w);if(!(!u||!k)&&k===e&&u===p&&C===t){if(W===g.RPC_RESOLVE)return m(),i(te);if(W===g.RPC_REJECT)return m(),c(ne)}}let R={action:g.RPC_REQUEST,args:o,callID:p,callName:e,connectionID:t},I=o.reduce((w,u)=>u[v]?.length?w.concat(u[v]):w,o[v]??[]);L(a,E.MESSAGE,h),r.add(m),A(s,R,n?.origin,I)})}function ue(e={},t=[],n,r,a,s){let o={...e},i=new Set;for(let c of t)ae(o,c,fe(c,n,r,i,a,s));return{remote:o,unregisterRemote:()=>i.forEach((c)=>c())}}function pe(e={},t){return new Promise(async(n)=>{let r=oe(e),a=de(),s=self||window;async function o(i){let c=_(i);if(c?.action!==g.HANDSHAKE_REPLY)return;let{remote:p,unregisterRemote:m}=ue(c.schema,c.methodNames,c.connectionID,i,s,a),h=le(r,c.connectionID,s,a,p);return await t?.onConnectionSetup?.(p),A(a,{action:g.HANDSHAKE_REPLY,connectionID:c.connectionID},i?.origin),n({remote:p,close:()=>{O(s,E.MESSAGE,o),m(),h()},id:c.connectionID})}L(s,E.MESSAGE,o),A(a,{action:g.HANDSHAKE_REQUEST,methodNames:Object.keys(r),schema:e})})}var J={connect:pe};var me=(e)=>typeof e===\"object\"&&e!==null,q=(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(me(e)){let t=typeof e.message===\"string\"?e.message:null,n=typeof e.stack===\"string\"?e.stack:void 0;if(t)return n?{message:t,stack:n}:{message:t};return{message:q(e)}}if(e===null||e===void 0)return{message:\"Unknown error\"};return{message:q(e)}};var N=\"(?:0|[1-9]\\\\d*)\",Ae=new RegExp(`^\\\\^(${N}\\\\.${N}\\\\.${N})$`);var H=[\"sidenav\",\"main\",\"secondary\",\"side\"];var f=(e,t)=>({extensionId:\"pstdio\",kind:e,id:t}),y={project:f(\"mode\",\"project\"),sessions:f(\"mode\",\"sessions\"),settings:f(\"mode\",\"settings\")},Te={project:{ref:y.project,regions:H},sessions:{ref:y.sessions,regions:H},settings:{ref:y.settings,regions:H}},U=(e,t,n)=>({id:e,ref:f(\"resource-kind\",e),label:t,menuSlots:n}),D=[{id:\"headerPrimary\",placement:\"header-primary\",access:\"public\"},{id:\"headerOverflow\",placement:\"header-overflow\",access:\"public\"}],K={project:U(\"project\",\"Extension\",D),session:U(\"session\",\"Session\",D),workspace:U(\"workspace\",\"Workspace\",D)},b={project:K.project.ref,session:K.session.ref,workspace:K.workspace.ref},P={start:f(\"page\",\"start\"),sessions:f(\"page\",\"sessions\"),session:f(\"page\",\"session\"),workspaces:f(\"page\",\"workspaces\"),workspace:f(\"page\",\"workspace\")},je={start:{ref:P.start,mode:y.project,path:\"\",primary:{cardinality:\"one\",resourceKinds:[]}},sessions:{ref:P.sessions,mode:y.sessions,path:\"sessions\",primary:{cardinality:\"one\",resourceKinds:[]}},session:{ref:P.session,mode:y.sessions,path:\"session\",primary:{cardinality:\"one\",resourceKinds:[\"session\",\"session-draft\"]}},workspaces:{ref:P.workspaces,mode:y.project,path:\"workspaces\",primary:{cardinality:\"one\",resourceKinds:[]}},workspace:{ref:P.workspace,mode:y.project,path:\"workspace\",primary:{cardinality:\"many\",resourceKinds:[\"workspace\"]}}},ge={projectSession:f(\"placement\",\"project-session\")},Me={projectSession:{ref:ge.projectSession,mode:y.project,cardinality:\"many\",resourceKinds:[\"session\",\"session-draft\"]}},Le={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\"}),Oe=Object.assign(F,{forExtension:(e)=>(t)=>F({extensionId:`${e.publisher}.${e.name}`,id:t})}),ye=(e)=>({...e,kind:\"event\"}),j=(e,t)=>({id:e,kind:t.kind,label:t.label,description:t.description,metadata:t.metadata}),l=(e)=>ye({extensionId:\"pstdio\",id:e}),S=(e,t)=>j(`${e.id}.${t}`,{kind:\"menu\"}),$e={sidenav:j(\"project.sidenav\",{kind:\"panel\"}),headerPrimary:S(b.project,\"headerPrimary\"),headerOverflow:S(b.project,\"headerOverflow\"),settingsPanels:j(\"project.settingsPanels\",{kind:\"settings\"})},_e={headerPrimary:S(b.session,\"headerPrimary\"),headerOverflow:S(b.session,\"headerOverflow\")},Ne={headerPrimary:S(b.workspace,\"headerPrimary\"),headerOverflow:S(b.workspace,\"headerOverflow\"),sidenav:j(\"workspace.sidenav\",{kind:\"panel\"})},He={opened:l(\"project.opened\")},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\")},De={started:l(\"session.started\"),resumed:l(\"session.resumed\"),awaitingInput:l(\"session.awaitingInput\"),succeeded:l(\"session.succeeded\"),failed:l(\"session.failed\"),completed:l(\"session.completed\")},Ke={created:l(\"workspace.created\"),provision:l(\"workspace.provision\"),ready:l(\"workspace.ready\"),archived:l(\"workspace.archived\"),deleted:l(\"workspace.deleted\")},We={removed:l(\"worktree.removed\")},Ve={committed:l(\"git.committed\"),rebased:l(\"git.rebased\"),merged:l(\"git.merged\"),conflicted:l(\"git.conflicted\")};var he=[\"clipboard.write\",\"commands.execute\",\"commands.stream\",\"navigation.open\",\"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\"],we=[\"artifacts.read\"],ve=[\"host.dispatchKeyboardEvent\"],ze=[...he.filter((e)=>e!==\"clipboard.write\"),...we,...ve];var d=(e)=>(t)=>({...t,ref:{kind:e,id:t.id}}),Be=d(\"view\"),Ge=d(\"view-menu\"),Je=d(\"placement\"),qe=d(\"resource-kind\");var Fe=d(\"navigation-item\"),Ye=d(\"navigation-tree\"),Qe=d(\"mode\");var Xe=d(\"status-bar-item\"),Ze=d(\"status\"),et=d(\"settings-panel\"),tt=d(\"activity-item\"),nt=d(\"settings-section\"),rt=d(\"command-palette-resource\"),st=d(\"keybinding\"),ot=d(\"schedule\"),it=d(\"artifact-mount\"),at=d(\"template-type\"),ct=d(\"template\"),dt=d(\"skill\"),lt=d(\"theme\"),ft=d(\"file-icon-theme\"),ut=d(\"workspace-type\"),pt=d(\"harness\"),mt=d(\"connection\");var Y=(e,t,n)=>({call:async(r,...a)=>{try{return await e({method:r,params:a[0]})}catch(s){if(s instanceof Error)throw s;throw Error(T(s).message)}},onEvent:t,extensionId:n}),Q=(e)=>{let t=e,n=new Set;return{get:()=>t,subscribe:(r)=>(n.add(r),()=>n.delete(r)),set:(r)=>{t=r;for(let a of n)a(t)}}};var X=(e)=>{let t,n,r=!1;return{initialize:(a)=>{if(r)return Promise.resolve();return t??=e(a).then((s)=>{if(typeof s!==\"function\")return;if(r)s();else n=s}),t},dispose:()=>{r=!0,n?.(),n=void 0}}};var Z=\"pstdio-extension-mount\",Ee=()=>{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,n)=>e.set(t,n)}},be=()=>{for(let e of[\"localStorage\",\"sessionStorage\"])try{window[e]}catch{Object.defineProperty(window,e,{configurable:!0,value:Ee()})}},ee=(e,t)=>{let n=document.documentElement,r=e===\"dark\"?\"light\":\"dark\";n.classList.remove(r),n.classList.add(e),n.setAttribute(\"data-theme\",e),n.style.colorScheme=e;for(let[a,s]of Object.entries(t))if(a.startsWith(\"--\"))n.style.setProperty(a,s)},Se=(e)=>{for(let t of e){let n=document.createElement(\"link\");n.rel=\"stylesheet\",n.href=t,document.head.appendChild(n)}},Ie=()=>{let e=document.getElementById(Z);if(!e)e=document.createElement(\"div\"),e.id=Z,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})},xe=(e)=>e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement||e instanceof HTMLElement&&e.isContentEditable,Pe=async()=>{be(),ke();let e=Q(void 0),t=new Map,n=(o,i)=>{let c=t.get(o)??new Set;return c.add(i),t.set(o,c),()=>{c.delete(i)}},r=X(async(o)=>{Se(o.styles);let i=await import(o.moduleUrl),c=i.default??(i.mount?i:void 0);if(!c?.mount)throw Error(\"Extension module does not export a default view (defineExtensionView).\");let p=Y((m)=>s.remote.call(m),n,o.extensionId);return await c.mount(Ie(),p,e)}),a=!1,s=await J.connect({init:async(o)=>{try{if(ee(o.theme,o.themeVariables),e.set(o.props),await r.initialize(o),!a)a=!0,document.addEventListener(\"keydown\",(i)=>{if(!i.ctrlKey&&!i.metaKey&&!i.altKey)return;if(xe(i.target)&&!i.shiftKey)return;s.remote.call({method:\"host.dispatchKeyboardEvent\",params:{key:i.key,code:i.code,ctrlKey:i.ctrlKey,metaKey:i.metaKey,altKey:i.altKey,shiftKey:i.shiftKey,repeat:i.repeat}}).catch(()=>{})},!0)}catch(i){let c=T(i);throw s.remote.runtimeError(c),i instanceof Error?i:Error(c.message)}},themeUpdate:(o)=>{ee(o.theme,o.variables)},propsUpdate:(o)=>{e.set(o.props)},hostEvent:(o)=>{for(let i of t.get(o.scope)??[])i(o.payload)}});s.remote.ready({}),window.addEventListener(\"beforeunload\",()=>{r.dispose()})};Pe();\n";
31
31
  //#endregion
32
32
  export { o as getExtensionRuntimeScript, i as renderExtensionRuntimeHtml, a as renderInlineExtensionRuntimeHtml };
33
33
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pstdio/workbench",
3
- "version": "0.43.1-nightly.20261013030813",
3
+ "version": "0.43.1",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/pufflyai/prompt-studio"
@@ -43,8 +43,8 @@
43
43
  },
44
44
  "dependencies": {
45
45
  "@dnd-kit/core": "^6.3.1",
46
- "@pstdio/sdk": "^0.43.1-nightly.20261013030813",
47
- "@pstdio/ui": "^0.43.1-nightly.20261013030813",
46
+ "@pstdio/sdk": "^0.43.1",
47
+ "@pstdio/ui": "^0.43.1",
48
48
  "@tanstack/react-hotkeys": "0.10.0",
49
49
  "lucide-react": "^0.557.0",
50
50
  "rimless": "0.8.3",