remote-codex 0.11.28 → 0.11.30

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.
@@ -1,4 +1,4 @@
1
- import{r as s,R as Tv,a as Tw,j as v,b as Fv}from"./react-vendor-CgLzZcV4.js";function mN(t,a){if(typeof t=="function")return t(a);t!=null&&(t.current=a)}function Fw(...t){return a=>{let c=!1;const n=t.map(i=>{const d=mN(i,a);return!c&&typeof d=="function"&&(c=!0),d});if(c)return()=>{for(let i=0;i<n.length;i++){const d=n[i];typeof d=="function"?d():mN(t[i],null)}}}}function B(...t){return s.useCallback(Fw(...t),t)}function Da(t){const a=s.forwardRef((c,n)=>{let{children:i,...d}=c,r=null,h=!1;const o=[];gN(i)&&typeof Tg=="function"&&(i=Tg(i._payload)),s.Children.forEach(i,k=>{var _;if(Gw(k)){h=!0;const f=k;let u="child"in f.props?f.props.child:f.props.children;gN(u)&&typeof Tg=="function"&&(u=Tg(u._payload)),r=Ew(f,u),o.push((_=r==null?void 0:r.props)==null?void 0:_.children)}else o.push(k)}),r?r=s.cloneElement(r,void 0,o):!h&&s.Children.count(i)===1&&s.isValidElement(i)&&(r=i);const y=r?Ww(r):void 0,l=B(n,y);if(!r){if(i||i===0)throw new Error(h?Qw(t):Kw(t));return i}const p=Uw(d,r.props??{});return r.type!==s.Fragment&&(p.ref=n?l:y),s.cloneElement(r,p)});return a.displayName=`${t}.Slot`,a}var Rae=Da("Slot"),GN=Symbol.for("radix.slottable");function Ow(t){const a=c=>"child"in c?c.children(c.child):c.children;return a.displayName=`${t}.Slottable`,a.__radixId=GN,a}var Ew=(t,a)=>{if("child"in t.props){const c=t.props.child;return s.isValidElement(c)?s.cloneElement(c,void 0,t.props.children(c.props.children)):null}return s.isValidElement(a)?a:null};function Uw(t,a){const c={...a};for(const n in a){const i=t[n],d=a[n];/^on[A-Z]/.test(n)?i&&d?c[n]=(...h)=>{const o=d(...h);return i(...h),o}:i&&(c[n]=i):n==="style"?c[n]={...i,...d}:n==="className"&&(c[n]=[i,d].filter(Boolean).join(" "))}return{...t,...c}}function Ww(t){var n,i;let a=(n=Object.getOwnPropertyDescriptor(t.props,"ref"))==null?void 0:n.get,c=a&&"isReactWarning"in a&&a.isReactWarning;return c?t.ref:(a=(i=Object.getOwnPropertyDescriptor(t,"ref"))==null?void 0:i.get,c=a&&"isReactWarning"in a&&a.isReactWarning,c?t.props.ref:t.props.ref||t.ref)}function Gw(t){return s.isValidElement(t)&&typeof t.type=="function"&&"__radixId"in t.type&&t.type.__radixId===GN}var Zw=Symbol.for("react.lazy");function gN(t){return t!=null&&typeof t=="object"&&"$$typeof"in t&&t.$$typeof===Zw&&"_payload"in t&&Xw(t._payload)}function Xw(t){return typeof t=="object"&&t!==null&&"then"in t}var Kw=t=>`${t} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,Qw=t=>`${t} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,Tg=Tv[" use ".trim().toString()],e={};/**
1
+ import{r as s,R as Tv,a as Tw,j as v,b as Fv}from"./react-vendor-Dfg_6BLf.js";function mN(t,a){if(typeof t=="function")return t(a);t!=null&&(t.current=a)}function Fw(...t){return a=>{let c=!1;const n=t.map(i=>{const d=mN(i,a);return!c&&typeof d=="function"&&(c=!0),d});if(c)return()=>{for(let i=0;i<n.length;i++){const d=n[i];typeof d=="function"?d():mN(t[i],null)}}}}function B(...t){return s.useCallback(Fw(...t),t)}function Da(t){const a=s.forwardRef((c,n)=>{let{children:i,...d}=c,r=null,h=!1;const o=[];gN(i)&&typeof Tg=="function"&&(i=Tg(i._payload)),s.Children.forEach(i,k=>{var _;if(Gw(k)){h=!0;const f=k;let u="child"in f.props?f.props.child:f.props.children;gN(u)&&typeof Tg=="function"&&(u=Tg(u._payload)),r=Ew(f,u),o.push((_=r==null?void 0:r.props)==null?void 0:_.children)}else o.push(k)}),r?r=s.cloneElement(r,void 0,o):!h&&s.Children.count(i)===1&&s.isValidElement(i)&&(r=i);const y=r?Ww(r):void 0,l=B(n,y);if(!r){if(i||i===0)throw new Error(h?Qw(t):Kw(t));return i}const p=Uw(d,r.props??{});return r.type!==s.Fragment&&(p.ref=n?l:y),s.cloneElement(r,p)});return a.displayName=`${t}.Slot`,a}var Rae=Da("Slot"),GN=Symbol.for("radix.slottable");function Ow(t){const a=c=>"child"in c?c.children(c.child):c.children;return a.displayName=`${t}.Slottable`,a.__radixId=GN,a}var Ew=(t,a)=>{if("child"in t.props){const c=t.props.child;return s.isValidElement(c)?s.cloneElement(c,void 0,t.props.children(c.props.children)):null}return s.isValidElement(a)?a:null};function Uw(t,a){const c={...a};for(const n in a){const i=t[n],d=a[n];/^on[A-Z]/.test(n)?i&&d?c[n]=(...h)=>{const o=d(...h);return i(...h),o}:i&&(c[n]=i):n==="style"?c[n]={...i,...d}:n==="className"&&(c[n]=[i,d].filter(Boolean).join(" "))}return{...t,...c}}function Ww(t){var n,i;let a=(n=Object.getOwnPropertyDescriptor(t.props,"ref"))==null?void 0:n.get,c=a&&"isReactWarning"in a&&a.isReactWarning;return c?t.ref:(a=(i=Object.getOwnPropertyDescriptor(t,"ref"))==null?void 0:i.get,c=a&&"isReactWarning"in a&&a.isReactWarning,c?t.props.ref:t.props.ref||t.ref)}function Gw(t){return s.isValidElement(t)&&typeof t.type=="function"&&"__radixId"in t.type&&t.type.__radixId===GN}var Zw=Symbol.for("react.lazy");function gN(t){return t!=null&&typeof t=="object"&&"$$typeof"in t&&t.$$typeof===Zw&&"_payload"in t&&Xw(t._payload)}function Xw(t){return typeof t=="object"&&t!==null&&"then"in t}var Kw=t=>`${t} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,Qw=t=>`${t} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,Tg=Tv[" use ".trim().toString()],e={};/**
2
2
  * @license lucide-react v0.544.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -4,16 +4,16 @@
4
4
  <meta charset="UTF-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <title>Remote Codex Supervisor</title>
7
- <script type="module" crossorigin src="/assets/index-Dpf8YNxk.js"></script>
8
- <link rel="modulepreload" crossorigin href="/assets/react-vendor-CgLzZcV4.js">
9
- <link rel="modulepreload" crossorigin href="/assets/ui-vendor-CeKGesq3.js">
10
- <link rel="modulepreload" crossorigin href="/assets/graph-vendor-DVPtkh3h.js">
11
- <link rel="modulepreload" crossorigin href="/assets/terminal-vendor-B365Go3Z.js">
12
- <link rel="modulepreload" crossorigin href="/assets/markdown-vendor-BQJfKm05.js">
13
- <link rel="modulepreload" crossorigin href="/assets/thread-ui-BnLdOiXc.js">
7
+ <script type="module" crossorigin src="/assets/index-BnpZn_3_.js"></script>
8
+ <link rel="modulepreload" crossorigin href="/assets/react-vendor-Dfg_6BLf.js">
9
+ <link rel="modulepreload" crossorigin href="/assets/ui-vendor-CuR8GHb0.js">
10
+ <link rel="modulepreload" crossorigin href="/assets/graph-vendor-DVQUpZ8C.js">
11
+ <link rel="modulepreload" crossorigin href="/assets/terminal-vendor-C5bTa-Ka.js">
12
+ <link rel="modulepreload" crossorigin href="/assets/markdown-vendor-RZk8L7-L.js">
13
+ <link rel="modulepreload" crossorigin href="/assets/thread-ui-C0VPL4Uk.js">
14
14
  <link rel="stylesheet" crossorigin href="/assets/graph-vendor-C5ap-Sga.css">
15
15
  <link rel="stylesheet" crossorigin href="/assets/terminal-vendor-Beg8tuEN.css">
16
- <link rel="stylesheet" crossorigin href="/assets/index-IJffwc2e.css">
16
+ <link rel="stylesheet" crossorigin href="/assets/index-CJFMmjP5.css">
17
17
  </head>
18
18
  <body class="bg-stone-950">
19
19
  <div id="root"></div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "remote-codex",
3
- "version": "0.11.28",
3
+ "version": "0.11.30",
4
4
  "description": "Local web supervisor for Codex workspaces and threads.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -156,6 +156,8 @@ export interface RelayPendingRegistrationDto {
156
156
 
157
157
  export type RelayThreadAccessDto = 'read' | 'control';
158
158
  export type RelayWorkspaceAccessDto = 'none' | 'read' | 'write';
159
+ export type RelayShareScopeDto = 'thread' | 'workspace' | 'device';
160
+ export type RelayWorkspaceScopeDto = 'all' | 'selected';
159
161
 
160
162
  export interface CreateRelaySessionShareInput {
161
163
  targetIdentifier: string;
@@ -204,15 +206,91 @@ export interface RelaySessionShareAccessDto {
204
206
  shareId: string;
205
207
  userId: string;
206
208
  username: string;
209
+ kind: RelayAccessEventKindDto;
207
210
  accessedAt: string;
208
211
  }
209
212
 
213
+ export type RelayAccessEventKindDto =
214
+ | 'access'
215
+ | 'open_device'
216
+ | 'open_thread'
217
+ | 'create_thread'
218
+ | 'send_prompt'
219
+ | 'read_workspace_file'
220
+ | 'write_workspace_file';
221
+
222
+ export interface RelayAccessGrantEventDto {
223
+ id: string;
224
+ grantId: string;
225
+ userId: string;
226
+ username: string;
227
+ kind: RelayAccessEventKindDto;
228
+ accessedAt: string;
229
+ }
230
+
231
+ export interface CreateRelayAccessGrantInput {
232
+ targetIdentifier: string;
233
+ deviceId: string;
234
+ scope: RelayShareScopeDto;
235
+ threadId?: string | null;
236
+ workspaceId?: string | null;
237
+ workspaceScope?: RelayWorkspaceScopeDto;
238
+ workspaceIds?: string[];
239
+ label?: string | null;
240
+ threadAccess: RelayThreadAccessDto;
241
+ workspaceAccess: RelayWorkspaceAccessDto;
242
+ canCreateThreads?: boolean;
243
+ expiresAt?: string | null;
244
+ }
245
+
246
+ export interface UpdateRelayAccessGrantInput {
247
+ workspaceId?: string | null | undefined;
248
+ workspaceScope?: RelayWorkspaceScopeDto | undefined;
249
+ workspaceIds?: string[] | undefined;
250
+ label?: string | null | undefined;
251
+ threadAccess?: RelayThreadAccessDto | undefined;
252
+ workspaceAccess?: RelayWorkspaceAccessDto | undefined;
253
+ canCreateThreads?: boolean | undefined;
254
+ expiresAt?: string | null | undefined;
255
+ }
256
+
257
+ export interface RelayAccessGrantDto {
258
+ id: string;
259
+ ownerUserId: string;
260
+ ownerUsername: string;
261
+ targetUserId: string;
262
+ targetUsername: string;
263
+ deviceId: string;
264
+ deviceName: string;
265
+ scope: RelayShareScopeDto;
266
+ threadId: string | null;
267
+ threadTitle: string | null;
268
+ workspaceId: string | null;
269
+ workspaceLabel: string | null;
270
+ workspaceScope: RelayWorkspaceScopeDto;
271
+ workspaceIds: string[];
272
+ label: string | null;
273
+ threadAccess: RelayThreadAccessDto;
274
+ workspaceAccess: RelayWorkspaceAccessDto;
275
+ canCreateThreads: boolean;
276
+ createdAt: string;
277
+ revokedAt: string | null;
278
+ expiresAt: string | null;
279
+ lastAccessedAt: string | null;
280
+ lastAccessedByUsername: string | null;
281
+ accessEvents: RelayAccessGrantEventDto[];
282
+ }
283
+
210
284
  export interface RelayEffectiveAccessDto {
211
285
  kind: 'owner' | 'shared';
286
+ grantId?: string | null;
212
287
  shareId: string | null;
288
+ scope?: 'owner' | RelayShareScopeDto;
213
289
  threadAccess: RelayThreadAccessDto;
214
290
  workspaceAccess: RelayWorkspaceAccessDto;
215
291
  workspaceId: string | null;
292
+ workspaceScope?: RelayWorkspaceScopeDto | null;
293
+ canCreateThreads?: boolean;
216
294
  }
217
295
 
218
296
  export interface RelaySessionDto {
@@ -243,12 +321,16 @@ export interface RelayPortalSummaryDto {
243
321
  devices: RelayDeviceDto[];
244
322
  sharedWithMe: RelaySessionShareDto[];
245
323
  sharedByMe: RelaySessionShareDto[];
324
+ sharedDevicesWithMe?: RelayAccessGrantDto[];
325
+ sharedThreadsWithMe?: RelayAccessGrantDto[];
326
+ grantsByMe?: RelayAccessGrantDto[];
246
327
  }
247
328
 
248
329
  export interface RelayAdminSummaryDto {
249
330
  users: RelayAdminUserDto[];
250
331
  devices: RelayAdminDeviceDto[];
251
332
  shares: RelaySessionShareDto[];
333
+ grants?: RelayAccessGrantDto[];
252
334
  pendingRegistrations: RelayPendingRegistrationDto[];
253
335
  settings: RelayRegistrationSettingsDto;
254
336
  conversationWindowDays: number;