@parall/sdk 1.55.3 → 1.55.5

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/types.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import type { Label, LabelCreatedData, LabelDeletedData, LabelUpdatedData } from './task-label-types.js';
2
+ export type { CompletedUploadPart, FileUrlResponse, PresignedUploadPart, PresignResponse, PresignUploadRequest, } from './attachment-types.js';
2
3
  export type UserType = 'human' | 'agent';
3
4
  export type UserStatus = 'active' | 'disabled';
4
5
  export interface User {
@@ -47,9 +48,25 @@ export interface Chat {
47
48
  pinned: boolean;
48
49
  hidden: boolean;
49
50
  my_notification_level?: NotificationLevel;
51
+ /**
52
+ * Resolved per-(agent, chat) reply policy for an AGENT caller: override →
53
+ * room default → mentions_only floor, gated on the runtime capability.
54
+ * Absent for human callers, DMs, and smart chats — a runtime reading
55
+ * nothing here falls back to its legacy agent_routing_mode check.
56
+ */
57
+ my_agent_reply_policy?: AgentReplyPolicy;
50
58
  }
51
59
  export type ChatMemberRole = 'owner' | 'admin' | 'member';
52
60
  export type NotificationLevel = 'all' | 'mentions_only' | 'none';
61
+ /** Trigger axis of the per-(agent, chat) reply policy. No 'none': @mentions
62
+ * are an unsuppressible floor, so it would equal 'mentions_only'. */
63
+ export type AgentReplyTrigger = 'all' | 'mentions_only';
64
+ /** Reply-form axis; V1 defines only 'full'. */
65
+ export type AgentReplyForm = 'full';
66
+ export interface AgentReplyPolicy {
67
+ trigger: AgentReplyTrigger;
68
+ form: AgentReplyForm;
69
+ }
53
70
  export interface PushSubscribeRequest {
54
71
  platform: 'web' | 'ios' | 'android';
55
72
  token: string;
@@ -80,6 +97,14 @@ export interface ChatMember {
80
97
  pinned: boolean;
81
98
  hidden: boolean;
82
99
  joined_at: string;
100
+ /**
101
+ * Per-(agent, chat) trigger override on an AGENT member row; absent/null =
102
+ * follow the room default. Writable by chat owners/admins and org admins
103
+ * only — never by the agent itself.
104
+ */
105
+ agent_reply_trigger?: AgentReplyTrigger | null;
106
+ /** Reply-form axis; always 'full' in V1. Absent on older servers. */
107
+ agent_reply_form?: AgentReplyForm;
83
108
  /** Org-scoped public title. Omitted by older servers and for former DM peers. */
84
109
  title?: string;
85
110
  user?: User;
@@ -89,6 +114,11 @@ export interface UpdateChatMemberRequest {
89
114
  pinned?: boolean;
90
115
  hidden?: boolean;
91
116
  notification_level?: NotificationLevel;
117
+ /** 'all' | 'mentions_only' sets the override; '' clears it (follow the
118
+ * room default). Chat-governance authz — agents can never write it. */
119
+ agent_reply_trigger?: AgentReplyTrigger | '';
120
+ /** V1 accepts only 'full'. */
121
+ agent_reply_form?: AgentReplyForm;
92
122
  }
93
123
  export interface TransferChatOwnershipRequest {
94
124
  target_user_id: string;
@@ -175,6 +205,8 @@ export interface ApprovalCardContent {
175
205
  display: {
176
206
  title: string;
177
207
  description?: string;
208
+ request_reason?: string;
209
+ resource_label?: string;
178
210
  requester?: {
179
211
  id: string;
180
212
  name: string;
@@ -189,6 +221,7 @@ export interface ApprovalCardContent {
189
221
  status: string;
190
222
  decided_by?: string;
191
223
  decided_at?: string;
224
+ decision_reason?: string | null;
192
225
  execution_status?: ExecutionStatus | null;
193
226
  execution_error?: string | null;
194
227
  executed_at?: string | null;
@@ -213,6 +246,7 @@ export interface SystemContent {
213
246
  actor_name: string;
214
247
  target_id?: string;
215
248
  target_name?: string;
249
+ decision_reason?: string;
216
250
  }
217
251
  export type MessageContent = TextContent | ToolCallContent | ToolResultContent | ApprovalCardContent | StateDeltaContent | SystemContent | IssueProjectionContent | CardContent;
218
252
  export interface Message {
@@ -289,9 +323,12 @@ export interface Approval {
289
323
  resource_uri: string;
290
324
  action_payload: Record<string, unknown>;
291
325
  title: string;
326
+ request_reason?: string | null;
327
+ resource_label?: string | null;
292
328
  requester_id: string;
293
329
  decided_by: string | null;
294
330
  decided_at: string | null;
331
+ decision_reason?: string | null;
295
332
  status: ApprovalStatus;
296
333
  expires_at: string | null;
297
334
  execution_status?: ExecutionStatus | null;
@@ -317,6 +354,9 @@ export interface Organization {
317
354
  avatar_url: string | null;
318
355
  is_personal: boolean;
319
356
  member_limit: number | null;
357
+ attachment_max_file_size_bytes?: number | null;
358
+ attachment_storage_limit_bytes?: number | null;
359
+ attachment_storage_used_bytes?: number;
320
360
  /** Org-level default smart routing strategy: 'llm' | 'agent' | null. */
321
361
  smart_routing_strategy: string | null;
322
362
  /** Agent ID for strategy='agent'. NULL when strategy is 'llm' or unset. */
@@ -543,11 +583,6 @@ export interface CheckEmailResponse {
543
583
  exists: boolean;
544
584
  pending_verification?: boolean;
545
585
  }
546
- export interface PresignResponse {
547
- upload_url: string;
548
- attachment_id: string;
549
- expires_in: number;
550
- }
551
586
  export interface WsTicketResponse {
552
587
  ticket: string;
553
588
  expires_at: string;
@@ -808,6 +843,13 @@ export interface SendMessageRequest {
808
843
  export interface MessageDispatchSource {
809
844
  source_type: string;
810
845
  source_id: string;
846
+ /**
847
+ * Conversation generation of the sending execution (parel v2 invocation
848
+ * context). Required by the server for agents on the direct_session_v2
849
+ * transport; a value older than the current New Session barrier is
850
+ * rejected (STALE_GENERATION).
851
+ */
852
+ generation?: number;
811
853
  }
812
854
  /** One WorkItem source pointer for the by-source complete surface. */
813
855
  export interface DispatchSourceRef {
@@ -1221,21 +1263,6 @@ export interface LaunchCredentialResponse {
1221
1263
  id: string;
1222
1264
  agent_id: string;
1223
1265
  }
1224
- export interface PresignUploadRequest {
1225
- file_name: string;
1226
- file_size: number;
1227
- mime_type?: string;
1228
- }
1229
- export interface FileUrlResponse {
1230
- url: string;
1231
- is_proxy_url?: boolean;
1232
- expires_in: number;
1233
- width?: number;
1234
- height?: number;
1235
- file_name: string;
1236
- file_size: number;
1237
- mime_type: string;
1238
- }
1239
1266
  export interface AvatarUploadResponse {
1240
1267
  avatar_url: string;
1241
1268
  }
@@ -1390,16 +1417,25 @@ export interface UpdateTaskRequest {
1390
1417
  */
1391
1418
  label_ids?: string[] | null;
1392
1419
  /**
1393
- * Dispatch lane binding (agent senders during a typed dispatch turn).
1394
- * dispatch_lane + dispatch_event_id bind the update to the claimed typed
1395
- * lane (incumbency-checked); dispatch_effect_key — exactly
1396
- * "task_update:<dispatch_event_id>" additionally commits the update as
1420
+ * Dispatch binding (agent senders during a typed dispatch turn).
1421
+ * Lane-bound form (v1 consumers): dispatch_lane + dispatch_event_id bind
1422
+ * the update to the claimed typed lane (incumbency-checked).
1423
+ * By-id form (parel v2 converged consumers — no lane exists):
1424
+ * dispatch_event_id + dispatch_generation bind the update to the WorkItem
1425
+ * directly under the conversation-generation fence.
1426
+ * In both forms dispatch_effect_key additionally commits the update as
1397
1427
  * the dispatch's idempotent Effect and resolves the WorkItem in the same
1398
- * transaction (first update only).
1428
+ * transaction. Lane-bound: exactly "task_update:<dispatch_event_id>" —
1429
+ * first update only; later updates go fenced keyless (the CLI sidecar
1430
+ * arbitrates). By-id: "task_update:<dispatch_event_id>:<payload-hash>" —
1431
+ * content-addressed, every distinct update carries its own key; the first
1432
+ * resolves the WorkItem and later keys land as their own Effects against
1433
+ * the already-resolved row.
1399
1434
  */
1400
1435
  dispatch_lane?: string;
1401
1436
  dispatch_event_id?: string;
1402
1437
  dispatch_effect_key?: string;
1438
+ dispatch_generation?: number;
1403
1439
  }
1404
1440
  export interface CreateTaskRelationRequest {
1405
1441
  target_type: TaskRelationTargetType;
@@ -1826,10 +1862,32 @@ export interface ScheduleFiredData {
1826
1862
  actual_fired_at: string;
1827
1863
  }
1828
1864
  export type WikiChangesetStatus = 'draft' | 'proposed' | 'approval_pending' | 'approved' | 'rejected' | 'merged' | 'closed' | 'superseded' | 'conflict';
1865
+ export type WikiAccessTier = 'public' | 'restricted' | 'private';
1866
+ export type WikiMemberRole = 'viewer' | 'editor' | 'manager';
1867
+ export interface WikiAccessPolicyMember {
1868
+ subject: string;
1869
+ role: WikiMemberRole;
1870
+ }
1871
+ /** GET/PUT shape of the who-can-access projection (membership design §4).
1872
+ * PUT must echo the revision from the latest GET (409 POLICY_REVISION_STALE
1873
+ * on mismatch). Container policy bits ride the root ('' path) PUT only. */
1874
+ export interface WikiAccessPolicy {
1875
+ path: string;
1876
+ general_access: WikiAccessTier | 'inherit';
1877
+ default_role?: 'editor' | 'viewer';
1878
+ discoverable: boolean;
1879
+ members: WikiAccessPolicyMember[];
1880
+ revision: string;
1881
+ /** Stored rows the projection cannot express — route to the advanced rules surface. */
1882
+ advanced?: boolean;
1883
+ editors_can_invite?: boolean;
1884
+ viewers_can_download?: boolean;
1885
+ }
1829
1886
  export interface Wiki {
1830
1887
  id: string;
1831
1888
  org_id: string;
1832
- slug: string;
1889
+ /** Absent on degraded listing entries (discoverable-but-unreadable). */
1890
+ slug?: string;
1833
1891
  name: string;
1834
1892
  repo_owner: string;
1835
1893
  repo_name: string;
@@ -1850,6 +1908,14 @@ export interface Wiki {
1850
1908
  purge_eligible_at?: string | null;
1851
1909
  /** Server-computed restore availability for recycle-bin rows. */
1852
1910
  restorable?: boolean | null;
1911
+ /** Derived from the root path rules (never stored): public | restricted | private. */
1912
+ access_tier?: 'public' | 'restricted' | 'private';
1913
+ /** Caller's explicit membership at the library root: none | viewer | editor | manager. */
1914
+ my_membership?: 'none' | 'viewer' | 'editor' | 'manager';
1915
+ /** True for discoverable-but-unreadable listing entries: only id, name and
1916
+ * access_tier are populated — enough to request to join, nothing else.
1917
+ * Degraded entries must not be mounted, synced or treated as content. */
1918
+ degraded?: boolean;
1853
1919
  }
1854
1920
  export interface WikiFileChange {
1855
1921
  path: string;
@@ -1884,6 +1950,12 @@ export interface WikiTreeEntry {
1884
1950
  * entry; use it to badge private folders, never for access decisions.
1885
1951
  */
1886
1952
  restricted?: boolean;
1953
+ /**
1954
+ * Committer date (RFC3339) of the newest default-branch commit touching this
1955
+ * entry — the listing's "Last published" value. Present only when the tree
1956
+ * was requested with `last_commit: true` and the lookup succeeded.
1957
+ */
1958
+ last_commit_at?: string;
1887
1959
  }
1888
1960
  export interface WikiTreeResponse {
1889
1961
  data: WikiTreeEntry[];
@@ -2310,6 +2382,7 @@ export interface CardUpdateData {
2310
2382
  execution_status?: ExecutionStatus | null;
2311
2383
  decided_by?: string;
2312
2384
  decided_at?: string;
2385
+ decision_reason?: string | null;
2313
2386
  executed_at?: string | null;
2314
2387
  execution_error?: string | null;
2315
2388
  }
@@ -2322,7 +2395,7 @@ export interface WatchingData {
2322
2395
  export interface MembershipChangedData {
2323
2396
  chat_id: string;
2324
2397
  user_id: string;
2325
- action: 'added' | 'removed' | 'role_changed';
2398
+ action: 'added' | 'removed' | 'role_changed' | 'policy_changed';
2326
2399
  }
2327
2400
  /**
2328
2401
  * A member was removed from an org — kicked by an admin or self-removal
@@ -3317,6 +3390,7 @@ export interface PresenceUpdateData {
3317
3390
  export interface ResolveRefsRequest {
3318
3391
  refs: string[];
3319
3392
  source_message_id?: string;
3393
+ full?: boolean;
3320
3394
  }
3321
3395
  export interface ResolvedRef {
3322
3396
  type: string;
@@ -4159,6 +4233,12 @@ export interface EdgeBrowserProfile {
4159
4233
  edge_id: string;
4160
4234
  name: string;
4161
4235
  is_default: boolean;
4236
+ /** Stable compare-and-swap revision for Local BYOC Profile operations. */
4237
+ version: number;
4238
+ /** Stable configuration binding used by Alias readiness and execution. */
4239
+ config_revision: number;
4240
+ /** Authoritative persisted Profile operation lifecycle. */
4241
+ lifecycle_state: 'active' | 'pending_create' | 'pending_rename' | 'pending_delete';
4162
4242
  created_at: string;
4163
4243
  updated_at: string;
4164
4244
  /**
@@ -4169,6 +4249,282 @@ export interface EdgeBrowserProfile {
4169
4249
  */
4170
4250
  proxy_configured?: boolean;
4171
4251
  }
4252
+ export type EdgeProfileOperationAction = 'create' | 'rename' | 'delete';
4253
+ export type EdgeProfileOperationStatus = 'confirmation_required' | 'pending' | 'retryable' | 'rejected' | 'outcome_unknown' | 'succeeded';
4254
+ export type EdgeProfileOperationOutcome = 'applied' | 'retryable' | 'rejected';
4255
+ export type EdgeProfileOperationErrorCode = 'JWT_REQUIRED' | 'HUMAN_REQUIRED' | 'EDGE_NOT_FOUND' | 'EDGE_OFFLINE' | 'EDGE_STATUS_UNAVAILABLE' | 'PROFILE_NOT_FOUND' | 'PROFILE_VERSION_CONFLICT' | 'PROFILE_OPERATION_IN_PROGRESS' | 'PROFILE_OPERATION_NOT_FOUND' | 'PROFILE_OPERATION_CONFLICT' | 'PROFILE_DELETE_IMPACT_CHANGED' | 'IDEMPOTENCY_CONFLICT' | 'INVALID_IDEMPOTENCY_KEY' | 'INVALID_INPUT';
4256
+ export type EdgeProfileOperationRequest = {
4257
+ action: 'create';
4258
+ name: string;
4259
+ } | {
4260
+ action: 'rename';
4261
+ profile_id: string;
4262
+ expected_version: number;
4263
+ name: string;
4264
+ } | {
4265
+ action: 'delete';
4266
+ profile_id: string;
4267
+ expected_version: number;
4268
+ };
4269
+ export interface EdgeProfileOperationConfirmRequest {
4270
+ impact_hash: string;
4271
+ confirmation_token: string;
4272
+ }
4273
+ export interface EdgeProfileDeleteImpact {
4274
+ profile_id: string;
4275
+ profile_version: number;
4276
+ aliases: Array<{
4277
+ alias_id: string;
4278
+ name: string;
4279
+ }>;
4280
+ /** Classified legacy rows block confirmation; they are never silently deleted. */
4281
+ legacy_connections: Array<{
4282
+ connection_id: string;
4283
+ classification: string;
4284
+ }>;
4285
+ grants_count: number;
4286
+ accepted_or_running_executions: number;
4287
+ impact_hash: string;
4288
+ confirmation_token: string;
4289
+ }
4290
+ export interface EdgeProfileOperationReceipt {
4291
+ operation_id: string;
4292
+ edge_id: string;
4293
+ profile_id: string;
4294
+ action: EdgeProfileOperationAction;
4295
+ status: EdgeProfileOperationStatus;
4296
+ expected_version?: number;
4297
+ target_version: number;
4298
+ attempt: number;
4299
+ name_before?: string;
4300
+ name_after?: string;
4301
+ impact?: EdgeProfileDeleteImpact;
4302
+ /** Present only while a Delete is awaiting the explicit strong confirmation. */
4303
+ confirmation_token?: string;
4304
+ /** Exact Edge outcome only; Server-private lifecycle evidence is never exposed here. */
4305
+ edge_outcome?: EdgeProfileOperationOutcome;
4306
+ error?: {
4307
+ code: string;
4308
+ message?: string;
4309
+ };
4310
+ created_at: string;
4311
+ updated_at: string;
4312
+ completed_at?: string;
4313
+ }
4314
+ export interface BrowserAliasCreateRequest {
4315
+ name: string;
4316
+ clip_id: string;
4317
+ edge_id: string;
4318
+ profile_id: string;
4319
+ idempotency_key: string;
4320
+ }
4321
+ export interface BrowserAliasRenameRequest {
4322
+ name: string;
4323
+ expected_version: number;
4324
+ idempotency_key: string;
4325
+ }
4326
+ export interface BrowserAliasDeleteRequest {
4327
+ expected_version: number;
4328
+ idempotency_key: string;
4329
+ }
4330
+ export type BrowserAliasErrorCode = 'JWT_REQUIRED' | 'HUMAN_REQUIRED' | 'INVALID_REQUEST' | 'INVALID_ALIAS_NAME' | 'CLIP_NOT_AVAILABLE' | 'PROFILE_NOT_FOUND' | 'ALIAS_NOT_FOUND' | 'ALIAS_NOT_READY' | 'ALIAS_NAME_TAKEN' | 'ALIAS_STALE' | 'PROFILE_OPERATION_IN_PROGRESS' | 'IDEMPOTENCY_CONFLICT' | 'EDGE_OFFLINE' | 'EDGE_STATUS_UNAVAILABLE';
4331
+ export interface BrowserAliasVersion {
4332
+ id: string;
4333
+ version_seq: number;
4334
+ source_kind: 'publisher_working_copy' | 'approved_public_snapshot';
4335
+ source_clip_version_id?: string;
4336
+ source_working_revision?: string;
4337
+ version_label?: string;
4338
+ artifact_digest?: string;
4339
+ preparation_status: 'pending' | 'preparing' | 'ready' | 'failed';
4340
+ preparation_result?: Record<string, unknown>;
4341
+ created_at: string;
4342
+ updated_at: string;
4343
+ }
4344
+ export type BrowserAliasReadinessStatus = 'checking' | 'ready' | 'needs_action' | 'unavailable' | 'error';
4345
+ export declare const BROWSER_ALIAS_READINESS_REASON_CODES: readonly ["edge_offline", "profile_not_found", "profile_damaged", "artifact_invalid", "runtime_incompatible", "needs_login", "target_service_unavailable", "readiness_check_running", "readiness_check_timeout", "readiness_contract_error"];
4346
+ export type BrowserAliasReadinessReasonCode = (typeof BROWSER_ALIAS_READINESS_REASON_CODES)[number];
4347
+ export interface BrowserAliasReadinessReason {
4348
+ code: BrowserAliasReadinessReasonCode;
4349
+ status: BrowserAliasReadinessStatus;
4350
+ hint: string;
4351
+ observed_at: string;
4352
+ retry_after_ms?: number;
4353
+ }
4354
+ export interface BrowserAliasReadiness {
4355
+ alias_id: string;
4356
+ status: BrowserAliasReadinessStatus;
4357
+ blocking_reasons: BrowserAliasReadinessReason[];
4358
+ primary_reason?: BrowserAliasReadinessReasonCode;
4359
+ hint?: string;
4360
+ observed_at: string;
4361
+ source: 'server' | 'edge';
4362
+ retry_after_ms?: number;
4363
+ alias_revision: number;
4364
+ active_alias_version_id?: string;
4365
+ profile_revision: number;
4366
+ profile_config_revision: number;
4367
+ generation: number;
4368
+ updated_at: string;
4369
+ }
4370
+ export interface BrowserAliasReadinessCheckRequest {
4371
+ idempotency_key: string;
4372
+ }
4373
+ export type BrowserAliasReadinessCheckStatus = 'pending' | 'dispatched' | 'succeeded' | 'rejected';
4374
+ export interface BrowserAliasReadinessCheckReceipt {
4375
+ check_id: string;
4376
+ alias_id: string;
4377
+ status: BrowserAliasReadinessCheckStatus;
4378
+ error_code?: 'REPORT_STALE';
4379
+ generation: number;
4380
+ attempt: number;
4381
+ readiness?: BrowserAliasReadiness;
4382
+ created_at: string;
4383
+ updated_at: string;
4384
+ dispatched_at?: string;
4385
+ completed_at?: string;
4386
+ }
4387
+ export interface BrowserAlias {
4388
+ id: string;
4389
+ name: string;
4390
+ version: number;
4391
+ lifecycle: 'preparing' | 'active' | 'update_preparing' | 'update_failed' | 'deleting';
4392
+ edge: {
4393
+ id: string;
4394
+ name: string;
4395
+ status: 'online' | 'offline';
4396
+ placement: 'byoc' | 'hosted';
4397
+ };
4398
+ profile: {
4399
+ id: string;
4400
+ name: string;
4401
+ version: number;
4402
+ config_revision: number;
4403
+ lifecycle_state: string;
4404
+ };
4405
+ clip: {
4406
+ id: string;
4407
+ name: string;
4408
+ version?: string;
4409
+ };
4410
+ desired_version?: BrowserAliasVersion;
4411
+ active_version?: BrowserAliasVersion;
4412
+ active_artifact_digest?: string;
4413
+ preparation_result?: Record<string, unknown>;
4414
+ update_result?: Record<string, unknown>;
4415
+ readiness?: BrowserAliasReadiness;
4416
+ created_at: string;
4417
+ updated_at: string;
4418
+ }
4419
+ export interface BrowserAliasDeleteProof {
4420
+ alias_deleted: true;
4421
+ grants_deleted: number;
4422
+ name_released: true;
4423
+ }
4424
+ export interface BrowserAliasCommandContractSnapshot {
4425
+ command_name: string;
4426
+ input_schema: Record<string, unknown>;
4427
+ output_schema: Record<string, unknown> | null;
4428
+ side_effect_level: string;
4429
+ data_scopes: string[];
4430
+ allowed_domains: string[];
4431
+ required_capabilities: string[];
4432
+ }
4433
+ export interface BrowserAliasGrantContractEvidence {
4434
+ contract_hash: string;
4435
+ contract_snapshot: BrowserAliasCommandContractSnapshot;
4436
+ }
4437
+ export interface BrowserAliasGrantCommand {
4438
+ command_name: string;
4439
+ status: 'missing' | 'active' | 'review_required';
4440
+ authorized?: BrowserAliasGrantContractEvidence;
4441
+ current: BrowserAliasGrantContractEvidence;
4442
+ delta?: {
4443
+ changed_fields: string[];
4444
+ };
4445
+ }
4446
+ export interface BrowserAliasGrantSet {
4447
+ key_id: string;
4448
+ alias: {
4449
+ id: string;
4450
+ name: string;
4451
+ clip: BrowserAlias['clip'];
4452
+ };
4453
+ /** Zero means this Key+Alias set has never been written. */
4454
+ version: number;
4455
+ commands: BrowserAliasGrantCommand[];
4456
+ updated_at?: string;
4457
+ }
4458
+ export interface BrowserAliasGrantReplaceRequest {
4459
+ expected_version: number;
4460
+ idempotency_key: string;
4461
+ commands: Array<{
4462
+ command_name: string;
4463
+ authorized_contract_hash: string;
4464
+ authorized_contract_snapshot: BrowserAliasCommandContractSnapshot;
4465
+ }>;
4466
+ }
4467
+ export interface ManagedBrowserAliasSummary {
4468
+ id: string;
4469
+ name: string;
4470
+ clip: BrowserAlias['clip'];
4471
+ readiness?: BrowserAliasReadiness;
4472
+ commands: string[];
4473
+ needs_owner_review: string[];
4474
+ }
4475
+ export interface ManagedBrowserAliasCommand {
4476
+ name: string;
4477
+ status: 'active';
4478
+ description: string;
4479
+ input_schema: Record<string, unknown>;
4480
+ output_schema: Record<string, unknown> | null;
4481
+ side_effect_level: string;
4482
+ data_scopes: string[];
4483
+ allowed_domains: string[];
4484
+ required_capabilities: string[];
4485
+ }
4486
+ export interface ManagedBrowserAliasReviewRequiredCommand {
4487
+ name: string;
4488
+ status: 'review_required';
4489
+ hint: string;
4490
+ }
4491
+ export interface ManagedBrowserAliasInfo {
4492
+ id: string;
4493
+ name: string;
4494
+ clip: BrowserAlias['clip'];
4495
+ readiness?: BrowserAliasReadiness;
4496
+ commands: ManagedBrowserAliasCommand[];
4497
+ needs_owner_review: ManagedBrowserAliasReviewRequiredCommand[];
4498
+ }
4499
+ export type BrowserAliasExecutionStatus = 'accepted' | 'running' | 'succeeded' | 'failed' | 'outcome_unknown';
4500
+ export interface BrowserAliasExecutionRequest {
4501
+ request_id: string;
4502
+ alias: string;
4503
+ command: string;
4504
+ args: Record<string, unknown>;
4505
+ }
4506
+ export interface BrowserAliasExecutionError {
4507
+ code: string;
4508
+ message: string;
4509
+ hint?: string;
4510
+ }
4511
+ /** Redacted managed-key/Owner recovery DTO. It never contains target IDs,
4512
+ * hashes, dispatch claims or Edge-ledger evidence. */
4513
+ export interface BrowserAliasExecutionReceipt {
4514
+ request_id: string;
4515
+ alias: string;
4516
+ command: string;
4517
+ status: BrowserAliasExecutionStatus;
4518
+ dispatched: true;
4519
+ command_timeout_ms: number;
4520
+ execution_deadline: string;
4521
+ result?: Record<string, unknown>;
4522
+ error?: BrowserAliasExecutionError;
4523
+ accepted_at: string;
4524
+ running_at?: string;
4525
+ terminal_at?: string;
4526
+ updated_at: string;
4527
+ }
4172
4528
  /**
4173
4529
  * Sanitized per-profile egress proxy status (hosted Cloud Profiles) — the GET
4174
4530
  * response and the PUT/DELETE result. NEVER carries the password; `password_set`
@@ -4665,5 +5021,4 @@ export interface EdgeOnboardingStatus {
4665
5021
  hosted_profile_created?: boolean;
4666
5022
  hosted_connection_created?: boolean;
4667
5023
  }
4668
- export {};
4669
5024
  //# sourceMappingURL=types.d.ts.map