@compozy/extension-sdk 0.3.0-beta.18 → 0.3.0-beta.20

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.
Files changed (100) hide show
  1. package/dist/cjs/connectivity-provider.js +11 -24
  2. package/dist/cjs/connectivity-provider.js.map +1 -1
  3. package/dist/cjs/errors.js +6 -1
  4. package/dist/cjs/errors.js.map +1 -1
  5. package/dist/cjs/extension-context.js +2 -1
  6. package/dist/cjs/extension-context.js.map +1 -1
  7. package/dist/cjs/extension-describe.js +9 -0
  8. package/dist/cjs/extension-describe.js.map +1 -1
  9. package/dist/cjs/extension-initialize.js +5 -0
  10. package/dist/cjs/extension-initialize.js.map +1 -1
  11. package/dist/cjs/extension-session.js +3 -0
  12. package/dist/cjs/extension-session.js.map +1 -1
  13. package/dist/cjs/extension-tool-dispatch.js +35 -0
  14. package/dist/cjs/extension-tool-dispatch.js.map +1 -0
  15. package/dist/cjs/extension.js +40 -54
  16. package/dist/cjs/extension.js.map +1 -1
  17. package/dist/cjs/generated/contracts.js +2 -0
  18. package/dist/cjs/generated/contracts.js.map +1 -1
  19. package/dist/cjs/index.js +10 -1
  20. package/dist/cjs/index.js.map +1 -1
  21. package/dist/cjs/protocol-params.js +23 -0
  22. package/dist/cjs/protocol-params.js.map +1 -0
  23. package/dist/cjs/testing/harness.js +4 -3
  24. package/dist/cjs/testing/harness.js.map +1 -1
  25. package/dist/cjs/testing/mock-transport.js +42 -2
  26. package/dist/cjs/testing/mock-transport.js.map +1 -1
  27. package/dist/cjs/transport.js +81 -8
  28. package/dist/cjs/transport.js.map +1 -1
  29. package/dist/cjs/types.js.map +1 -1
  30. package/dist/cjs/view-provider.js +137 -0
  31. package/dist/cjs/view-provider.js.map +1 -0
  32. package/dist/cjs/view-session-registry.js +41 -0
  33. package/dist/cjs/view-session-registry.js.map +1 -0
  34. package/dist/esm/connectivity-provider.js +4 -17
  35. package/dist/esm/connectivity-provider.js.map +1 -1
  36. package/dist/esm/errors.js +6 -1
  37. package/dist/esm/errors.js.map +1 -1
  38. package/dist/esm/extension-context.js +2 -1
  39. package/dist/esm/extension-context.js.map +1 -1
  40. package/dist/esm/extension-describe.js +8 -0
  41. package/dist/esm/extension-describe.js.map +1 -1
  42. package/dist/esm/extension-initialize.js +5 -0
  43. package/dist/esm/extension-initialize.js.map +1 -1
  44. package/dist/esm/extension-session.js +3 -0
  45. package/dist/esm/extension-session.js.map +1 -1
  46. package/dist/esm/extension-tool-dispatch.js +31 -0
  47. package/dist/esm/extension-tool-dispatch.js.map +1 -0
  48. package/dist/esm/extension.js +42 -56
  49. package/dist/esm/extension.js.map +1 -1
  50. package/dist/esm/generated/contracts.js +2 -0
  51. package/dist/esm/generated/contracts.js.map +1 -1
  52. package/dist/esm/index.js +3 -1
  53. package/dist/esm/index.js.map +1 -1
  54. package/dist/esm/protocol-params.js +18 -0
  55. package/dist/esm/protocol-params.js.map +1 -0
  56. package/dist/esm/testing/harness.js +4 -3
  57. package/dist/esm/testing/harness.js.map +1 -1
  58. package/dist/esm/testing/mock-transport.js +42 -2
  59. package/dist/esm/testing/mock-transport.js.map +1 -1
  60. package/dist/esm/transport.js +80 -7
  61. package/dist/esm/transport.js.map +1 -1
  62. package/dist/esm/types.js.map +1 -1
  63. package/dist/esm/view-provider.js +133 -0
  64. package/dist/esm/view-provider.js.map +1 -0
  65. package/dist/esm/view-session-registry.js +37 -0
  66. package/dist/esm/view-session-registry.js.map +1 -0
  67. package/dist/types/connectivity-provider.d.ts.map +1 -1
  68. package/dist/types/errors.d.ts +1 -0
  69. package/dist/types/errors.d.ts.map +1 -1
  70. package/dist/types/extension-context.d.ts +1 -1
  71. package/dist/types/extension-context.d.ts.map +1 -1
  72. package/dist/types/extension-contract.d.ts +1 -0
  73. package/dist/types/extension-contract.d.ts.map +1 -1
  74. package/dist/types/extension-describe.d.ts +2 -1
  75. package/dist/types/extension-describe.d.ts.map +1 -1
  76. package/dist/types/extension-initialize.d.ts.map +1 -1
  77. package/dist/types/extension-session.d.ts.map +1 -1
  78. package/dist/types/extension-tool-dispatch.d.ts +5 -0
  79. package/dist/types/extension-tool-dispatch.d.ts.map +1 -0
  80. package/dist/types/extension.d.ts +2 -1
  81. package/dist/types/extension.d.ts.map +1 -1
  82. package/dist/types/generated/contracts.d.ts +381 -2
  83. package/dist/types/generated/contracts.d.ts.map +1 -1
  84. package/dist/types/index.d.ts +5 -2
  85. package/dist/types/index.d.ts.map +1 -1
  86. package/dist/types/protocol-params.d.ts +4 -0
  87. package/dist/types/protocol-params.d.ts.map +1 -0
  88. package/dist/types/testing/harness.d.ts +1 -1
  89. package/dist/types/testing/harness.d.ts.map +1 -1
  90. package/dist/types/testing/mock-transport.d.ts +1 -1
  91. package/dist/types/testing/mock-transport.d.ts.map +1 -1
  92. package/dist/types/transport.d.ts +8 -4
  93. package/dist/types/transport.d.ts.map +1 -1
  94. package/dist/types/types.d.ts +1 -16
  95. package/dist/types/types.d.ts.map +1 -1
  96. package/dist/types/view-provider.d.ts +18 -0
  97. package/dist/types/view-provider.d.ts.map +1 -0
  98. package/dist/types/view-session-registry.d.ts +12 -0
  99. package/dist/types/view-session-registry.d.ts.map +1 -0
  100. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  import type { ISODateTime, JSONValue } from "../base-types.js";
2
- export type HostAPIMethod = "agents/heartbeat/delete" | "agents/heartbeat/get" | "agents/heartbeat/history" | "agents/heartbeat/put" | "agents/heartbeat/rollback" | "agents/heartbeat/status" | "agents/heartbeat/validate" | "agents/heartbeat/wake" | "agents/soul/delete" | "agents/soul/get" | "agents/soul/history" | "agents/soul/put" | "agents/soul/rollback" | "agents/soul/validate" | "automation/jobs" | "automation/jobs/create" | "automation/jobs/delete" | "automation/jobs/get" | "automation/jobs/runs" | "automation/jobs/trigger" | "automation/jobs/update" | "automation/runs" | "automation/triggers" | "automation/triggers/create" | "automation/triggers/delete" | "automation/triggers/fire" | "automation/triggers/get" | "automation/triggers/runs" | "automation/triggers/update" | "bridges/instances/get" | "bridges/instances/list" | "bridges/instances/report_state" | "bridges/messages/ingest" | "clarify/ask" | "logs/list" | "memory/forget" | "memory/recall" | "memory/store" | "models/list" | "models/refresh" | "models/status" | "network/channels" | "network/direct/messages" | "network/direct/resolve" | "network/directs" | "network/peers" | "network/send" | "network/status" | "network/thread/get" | "network/thread/messages" | "network/threads" | "network/usage" | "network/work/get" | "observe/health" | "resources/get" | "resources/list" | "resources/snapshot" | "sandbox/exec" | "sandbox/info" | "sandbox/list" | "sessions/archive" | "sessions/create" | "sessions/events" | "sessions/health/get" | "sessions/inputs/cancel" | "sessions/inputs/list" | "sessions/inputs/promote" | "sessions/inputs/replace" | "sessions/list" | "sessions/prompt" | "sessions/runtime/clear" | "sessions/runtime/set" | "sessions/soul/refresh" | "sessions/status" | "sessions/status/get" | "sessions/stop" | "sessions/unarchive" | "skills/list" | "tasks" | "tasks/cancel" | "tasks/create" | "tasks/dashboard" | "tasks/get" | "tasks/inbox" | "tasks/runs" | "tasks/runs/attach_session" | "tasks/runs/cancel" | "tasks/runs/complete" | "tasks/runs/enqueue" | "tasks/runs/fail" | "tasks/runs/get" | "tasks/runs/start" | "tasks/timeline" | "tasks/tree" | "tasks/update";
2
+ export type HostAPIMethod = "agents/heartbeat/delete" | "agents/heartbeat/get" | "agents/heartbeat/history" | "agents/heartbeat/put" | "agents/heartbeat/rollback" | "agents/heartbeat/status" | "agents/heartbeat/validate" | "agents/heartbeat/wake" | "agents/soul/delete" | "agents/soul/get" | "agents/soul/history" | "agents/soul/put" | "agents/soul/rollback" | "agents/soul/validate" | "automation/jobs" | "automation/jobs/create" | "automation/jobs/delete" | "automation/jobs/get" | "automation/jobs/runs" | "automation/jobs/trigger" | "automation/jobs/update" | "automation/runs" | "automation/triggers" | "automation/triggers/create" | "automation/triggers/delete" | "automation/triggers/fire" | "automation/triggers/get" | "automation/triggers/runs" | "automation/triggers/update" | "bridges/instances/get" | "bridges/instances/list" | "bridges/instances/report_state" | "bridges/messages/ingest" | "clarify/ask" | "logs/list" | "memory/forget" | "memory/recall" | "memory/store" | "models/list" | "models/refresh" | "models/status" | "network/channels" | "network/direct/messages" | "network/direct/resolve" | "network/directs" | "network/peers" | "network/send" | "network/status" | "network/thread/get" | "network/thread/messages" | "network/threads" | "network/usage" | "network/work/get" | "observe/health" | "resources/get" | "resources/list" | "resources/snapshot" | "sandbox/exec" | "sandbox/info" | "sandbox/list" | "sessions/archive" | "sessions/create" | "sessions/events" | "sessions/health/get" | "sessions/inputs/cancel" | "sessions/inputs/list" | "sessions/inputs/promote" | "sessions/inputs/replace" | "sessions/list" | "sessions/prompt" | "sessions/runtime/clear" | "sessions/runtime/set" | "sessions/soul/refresh" | "sessions/status" | "sessions/status/get" | "sessions/stop" | "sessions/unarchive" | "skills/list" | "tasks" | "tasks/cancel" | "tasks/create" | "tasks/dashboard" | "tasks/get" | "tasks/inbox" | "tasks/runs" | "tasks/runs/attach_session" | "tasks/runs/cancel" | "tasks/runs/complete" | "tasks/runs/enqueue" | "tasks/runs/fail" | "tasks/runs/get" | "tasks/runs/start" | "tasks/timeline" | "tasks/tree" | "tasks/update" | "view/patch";
3
3
  export interface AcceptedCapabilities {
4
4
  provides: string[];
5
5
  permissions: HostAPIMethod[];
@@ -7,7 +7,7 @@ export interface AcceptedCapabilities {
7
7
  export interface AgentCrashedPatch {
8
8
  labels?: Record<string, string>;
9
9
  }
10
- export type HookEvent = "session.pre_create" | "session.post_create" | "session.pre_resume" | "session.post_resume" | "session.pre_stop" | "session.post_stop" | "session.message_persisted" | "sandbox.prepare" | "sandbox.ready" | "sandbox.sync.before" | "sandbox.sync.after" | "sandbox.stop" | "input.pre_submit" | "prompt.post_assemble" | "event.pre_record" | "event.post_record" | "automation.job.pre_fire" | "automation.job.post_fire" | "automation.trigger.pre_fire" | "automation.trigger.post_fire" | "automation.run.completed" | "automation.run.failed" | "agent.pre_start" | "agent.spawned" | "agent.crashed" | "agent.stopped" | "agent.soul.snapshot.resolved" | "agent.soul.mutation.after" | "agent.heartbeat.policy.resolved" | "agent.heartbeat.wake.before" | "agent.heartbeat.wake.after" | "session.health.update.after" | "turn.start" | "turn.end" | "message.start" | "message.delta" | "message.end" | "tool.pre_call" | "tool.post_call" | "tool.post_error" | "permission.request" | "permission.resolved" | "permission.denied" | "context.pre_compact" | "context.post_compact" | "coordinator.pre_spawn" | "coordinator.spawned" | "coordinator.decision" | "coordinator.stopped" | "coordinator.failed" | "task.blocked" | "task.unblocked" | "task.needs_attention" | "task.recovered" | "task.status_changed" | "task.run.enqueued" | "task.run.pre_claim" | "task.run.post_claim" | "task.run.lease_extended" | "task.run.lease_expired" | "task.run.lease_recovered" | "task.run.released" | "task.run.completed" | "task.run.failed" | "loop.started" | "loop.generation.pre" | "loop.generation.post" | "loop.gate.pre" | "loop.gate.post" | "loop.node.terminal" | "loop.terminal" | "spawn.pre_create" | "spawn.created" | "spawn.parent_stopped" | "spawn.ttl_expired" | "spawn.reaped" | "session.attention.changed" | "network.thread.opened" | "network.direct_room.opened" | "network.message.persisted" | "network.work.opened" | "network.work.transitioned" | "network.work.closed" | "network.peer.joined" | "network.peer.left" | "network.participation.pre_resolve" | "network.participation.resolved" | "window_manager.layout.applied" | "window_manager.desktop.created" | "window_manager.desktop.deleted" | "window_manager.window.moved" | "window_manager.window.opened" | "window_manager.window.closed" | "window_manager.stack.grouped" | "window_manager.stack.ungrouped" | "window_manager.stack.activated" | "worktree.pre_create" | "worktree.pre_remove" | "worktree.created" | "worktree.adopted" | "worktree.removed";
10
+ export type HookEvent = "session.pre_create" | "session.post_create" | "session.pre_resume" | "session.post_resume" | "session.pre_stop" | "session.post_stop" | "session.message_persisted" | "session.runtime_recovery.started" | "session.runtime_recovery.succeeded" | "session.runtime_recovery.exhausted" | "sandbox.prepare" | "sandbox.ready" | "sandbox.sync.before" | "sandbox.sync.after" | "sandbox.stop" | "input.pre_submit" | "prompt.post_assemble" | "event.pre_record" | "event.post_record" | "automation.job.pre_fire" | "automation.job.post_fire" | "automation.trigger.pre_fire" | "automation.trigger.post_fire" | "automation.run.completed" | "automation.run.failed" | "agent.pre_start" | "agent.spawned" | "agent.crashed" | "agent.stopped" | "agent.soul.snapshot.resolved" | "agent.soul.mutation.after" | "agent.heartbeat.policy.resolved" | "agent.heartbeat.wake.before" | "agent.heartbeat.wake.after" | "session.health.update.after" | "turn.start" | "turn.end" | "message.start" | "message.delta" | "message.end" | "tool.pre_call" | "tool.post_call" | "tool.post_error" | "permission.request" | "permission.resolved" | "permission.denied" | "context.pre_compact" | "context.post_compact" | "coordinator.pre_spawn" | "coordinator.spawned" | "coordinator.decision" | "coordinator.stopped" | "coordinator.failed" | "task.blocked" | "task.unblocked" | "task.needs_attention" | "task.recovered" | "task.status_changed" | "task.run.enqueued" | "task.run.pre_claim" | "task.run.post_claim" | "task.run.lease_extended" | "task.run.lease_expired" | "task.run.lease_recovered" | "task.run.released" | "task.run.completed" | "task.run.failed" | "loop.started" | "loop.generation.pre" | "loop.generation.post" | "loop.gate.pre" | "loop.gate.post" | "loop.node.terminal" | "loop.terminal" | "spawn.pre_create" | "spawn.created" | "spawn.parent_stopped" | "spawn.ttl_expired" | "spawn.reaped" | "session.attention.changed" | "network.thread.opened" | "network.direct_room.opened" | "network.message.persisted" | "network.work.opened" | "network.work.transitioned" | "network.work.closed" | "network.peer.joined" | "network.peer.left" | "network.participation.pre_resolve" | "network.participation.resolved" | "window_manager.layout.applied" | "window_manager.desktop.created" | "window_manager.desktop.deleted" | "window_manager.window.moved" | "window_manager.window.opened" | "window_manager.window.closed" | "window_manager.stack.grouped" | "window_manager.stack.ungrouped" | "window_manager.stack.activated" | "worktree.pre_create" | "worktree.pre_remove" | "worktree.created" | "worktree.adopted" | "worktree.removed";
11
11
  export interface AgentCrashedPayload {
12
12
  event: HookEvent;
13
13
  timestamp: ISODateTime;
@@ -899,6 +899,57 @@ export interface ClarifyAskParams {
899
899
  question: string;
900
900
  choices?: string[];
901
901
  }
902
+ export interface CmdPaletteArgument {
903
+ name: string;
904
+ type: string;
905
+ placeholder?: string;
906
+ required?: boolean;
907
+ options?: string[];
908
+ }
909
+ export interface CmdPaletteAction {
910
+ kind: string;
911
+ tool?: string;
912
+ view?: string;
913
+ app?: string;
914
+ url?: string;
915
+ args?: Record<string, JSONValue>;
916
+ }
917
+ export interface CmdPaletteConfirmation {
918
+ title: string;
919
+ body?: string;
920
+ confirm: string;
921
+ }
922
+ export interface CmdPaletteExecutionPolicy {
923
+ single_flight?: boolean;
924
+ retry_safe?: boolean;
925
+ }
926
+ export interface CmdPaletteCommand {
927
+ id: string;
928
+ title: string;
929
+ section?: string;
930
+ icon: string;
931
+ keywords?: string[];
932
+ arguments?: CmdPaletteArgument[];
933
+ action: CmdPaletteAction;
934
+ destructive?: boolean;
935
+ confirmation?: CmdPaletteConfirmation;
936
+ default_shortcut?: string;
937
+ execution?: CmdPaletteExecutionPolicy;
938
+ }
939
+ export interface CmdPaletteViewSource {
940
+ tool: string;
941
+ }
942
+ export interface CmdPaletteView {
943
+ id: string;
944
+ title: string;
945
+ kind: string;
946
+ source?: CmdPaletteViewSource;
947
+ program?: boolean;
948
+ }
949
+ export interface CmdPaletteConfig {
950
+ commands?: CmdPaletteCommand[];
951
+ views?: CmdPaletteView[];
952
+ }
902
953
  export type CommandFlagType = "string" | "boolean" | "integer" | "number";
903
954
  export interface CommandFlag {
904
955
  name: string;
@@ -1287,6 +1338,7 @@ export interface DescribeResources {
1287
1338
  agents?: string[];
1288
1339
  automation?: string[];
1289
1340
  layouts?: string[];
1341
+ cmd_palette?: CmdPaletteConfig;
1290
1342
  }
1291
1343
  export interface DescribeSubprocess {
1292
1344
  command: string;
@@ -1340,9 +1392,14 @@ export interface DescribePayload {
1340
1392
  tools?: ExtensionToolRuntimeDescriptor[];
1341
1393
  hook_events?: string[];
1342
1394
  watch_source_kinds?: string[];
1395
+ cmd_palette_views?: string[];
1343
1396
  command_groups?: ExtensionCommandGroupSpec[];
1344
1397
  sdk: DescribeSDKInfo;
1345
1398
  }
1399
+ export interface EffectResult {
1400
+ effect_id: string;
1401
+ payload?: JSONValue;
1402
+ }
1346
1403
  export type EmptyResult = Record<string, never>;
1347
1404
  export interface EventPostRecordPatch {
1348
1405
  labels?: Record<string, string>;
@@ -1933,6 +1990,7 @@ export interface InitializeRuntime {
1933
1990
  health_check_timeout_ms: number;
1934
1991
  shutdown_timeout_ms: number;
1935
1992
  default_hook_timeout_ms: number;
1993
+ default_view_timeout_ms?: number;
1936
1994
  bridge?: InitializeBridgeRuntime;
1937
1995
  }
1938
1996
  export interface InitializeRequest {
@@ -1955,6 +2013,7 @@ export interface InitializeResponse {
1955
2013
  implemented_methods: string[];
1956
2014
  supported_hook_events: string[];
1957
2015
  watch_source_kinds?: string[];
2016
+ cmd_palette_views?: string[];
1958
2017
  supports: InitializeSupports;
1959
2018
  }
1960
2019
  export interface InputPreSubmitPatch {
@@ -4041,6 +4100,75 @@ export interface SessionRuntimeClearParams {
4041
4100
  session_id: string;
4042
4101
  expected_revision?: number;
4043
4102
  }
4103
+ export interface SessionRuntimeRecoveryExhaustedPayload {
4104
+ event: HookEvent;
4105
+ timestamp: ISODateTime;
4106
+ session_id?: string;
4107
+ session_name?: string;
4108
+ session_type?: string;
4109
+ agent_name?: string;
4110
+ workspace_id?: string;
4111
+ workspace?: string;
4112
+ worktree_id?: string;
4113
+ acp_session_id?: string;
4114
+ state?: string;
4115
+ soul_snapshot_id?: string;
4116
+ soul_digest?: string;
4117
+ created_at: ISODateTime;
4118
+ updated_at: ISODateTime;
4119
+ turn_id?: string;
4120
+ attempt: number;
4121
+ max_attempts: number;
4122
+ generation: number;
4123
+ failure_kind?: string;
4124
+ failure_detail?: string;
4125
+ }
4126
+ export interface SessionRuntimeRecoveryStartedPayload {
4127
+ event: HookEvent;
4128
+ timestamp: ISODateTime;
4129
+ session_id?: string;
4130
+ session_name?: string;
4131
+ session_type?: string;
4132
+ agent_name?: string;
4133
+ workspace_id?: string;
4134
+ workspace?: string;
4135
+ worktree_id?: string;
4136
+ acp_session_id?: string;
4137
+ state?: string;
4138
+ soul_snapshot_id?: string;
4139
+ soul_digest?: string;
4140
+ created_at: ISODateTime;
4141
+ updated_at: ISODateTime;
4142
+ turn_id?: string;
4143
+ attempt: number;
4144
+ max_attempts: number;
4145
+ generation: number;
4146
+ failure_kind?: string;
4147
+ failure_detail?: string;
4148
+ }
4149
+ export interface SessionRuntimeRecoverySucceededPayload {
4150
+ event: HookEvent;
4151
+ timestamp: ISODateTime;
4152
+ session_id?: string;
4153
+ session_name?: string;
4154
+ session_type?: string;
4155
+ agent_name?: string;
4156
+ workspace_id?: string;
4157
+ workspace?: string;
4158
+ worktree_id?: string;
4159
+ acp_session_id?: string;
4160
+ state?: string;
4161
+ soul_snapshot_id?: string;
4162
+ soul_digest?: string;
4163
+ created_at: ISODateTime;
4164
+ updated_at: ISODateTime;
4165
+ turn_id?: string;
4166
+ attempt: number;
4167
+ max_attempts: number;
4168
+ generation: number;
4169
+ failure_kind?: string;
4170
+ failure_detail?: string;
4171
+ }
4044
4172
  export interface SessionRuntimeSelectionPayload {
4045
4173
  provider: string;
4046
4174
  model?: string;
@@ -4065,6 +4193,15 @@ export interface SessionSoulRefreshRequest {
4065
4193
  }
4066
4194
  export type SessionRuntimeStatus = string;
4067
4195
  export type SessionRuntimeTransition = string;
4196
+ export interface SessionRuntimeRecoveryPayload {
4197
+ attempt: number;
4198
+ max_attempts: number;
4199
+ generation: number;
4200
+ started_at: ISODateTime;
4201
+ last_attempt_at: ISODateTime;
4202
+ next_attempt_at?: ISODateTime;
4203
+ last_error?: string;
4204
+ }
4068
4205
  export type ResolutionStatus = string;
4069
4206
  export type ResolutionReason = string;
4070
4207
  export interface Resolution {
@@ -4104,6 +4241,8 @@ export interface SessionRuntimePayload {
4104
4241
  status: SessionRuntimeStatus;
4105
4242
  transition?: SessionRuntimeTransition;
4106
4243
  failure?: string;
4244
+ generation?: number;
4245
+ recovery?: SessionRuntimeRecoveryPayload;
4107
4246
  selected?: PromptRuntimeSelectionPayload;
4108
4247
  selection_revision: number;
4109
4248
  effective?: RuntimeSelectionPayload;
@@ -4428,6 +4567,15 @@ export interface Origin {
4428
4567
  kind: OriginKind;
4429
4568
  ref: string;
4430
4569
  }
4570
+ export type LoopProvenanceRole = "coordinator" | "cell";
4571
+ export interface LoopProvenance {
4572
+ run_id: string;
4573
+ loop_name?: string;
4574
+ role: LoopProvenanceRole;
4575
+ generation?: number;
4576
+ node_id?: string;
4577
+ item_index?: number;
4578
+ }
4431
4579
  export interface Task {
4432
4580
  id: string;
4433
4581
  identifier?: string;
@@ -4465,6 +4613,7 @@ export interface Task {
4465
4613
  updated_at: ISODateTime;
4466
4614
  closed_at?: ISODateTime;
4467
4615
  metadata?: JSONValue;
4616
+ loop?: LoopProvenance;
4468
4617
  }
4469
4618
  export interface TaskBlockedPayload {
4470
4619
  event: HookEvent;
@@ -5445,6 +5594,7 @@ export interface TaskTimelineItem {
5445
5594
  task: TaskReferencePayload;
5446
5595
  run?: TaskRunSummaryPayload;
5447
5596
  event_type: string;
5597
+ reason?: string;
5448
5598
  actor: ActorIdentity;
5449
5599
  origin: Origin;
5450
5600
  payload?: JSONValue;
@@ -5514,6 +5664,8 @@ export interface TasksParams {
5514
5664
  status?: Status;
5515
5665
  priority?: Priority;
5516
5666
  include_drafts?: boolean;
5667
+ include_loop?: boolean;
5668
+ loop_run_id?: string;
5517
5669
  approval_state?: ApprovalState;
5518
5670
  owner_kind?: OwnerKind;
5519
5671
  owner_ref?: string;
@@ -5557,6 +5709,7 @@ export interface TaskCatalogItemPayload {
5557
5709
  dependency_count?: number;
5558
5710
  active_run?: TaskCatalogRunPayload;
5559
5711
  last_activity_at?: ISODateTime;
5712
+ loop?: LoopProvenance;
5560
5713
  }
5561
5714
  export interface TaskCatalogStatusFacetPayload {
5562
5715
  status: Status;
@@ -5800,6 +5953,221 @@ export interface TurnStartPayload {
5800
5953
  input_class?: string;
5801
5954
  user_message?: string;
5802
5955
  }
5956
+ export interface ViewCloseRequest {
5957
+ view_session: string;
5958
+ reason?: string;
5959
+ }
5960
+ export interface ViewEvent {
5961
+ view_session: string;
5962
+ handler: string;
5963
+ args?: JSONValue[];
5964
+ revision: string;
5965
+ seq: number;
5966
+ generation: number;
5967
+ ack_effects?: string[];
5968
+ effect_result?: EffectResult;
5969
+ }
5970
+ export interface Pagination {
5971
+ has_more: boolean;
5972
+ page_size?: number;
5973
+ }
5974
+ export interface ViewChrome {
5975
+ is_loading?: boolean;
5976
+ search_text?: string;
5977
+ event_count?: number;
5978
+ search_placeholder?: string;
5979
+ throttle_ms?: number;
5980
+ filtering?: boolean;
5981
+ complete?: boolean;
5982
+ active_chip?: string;
5983
+ columns?: number;
5984
+ pagination?: Pagination;
5985
+ on_search?: string;
5986
+ on_chip?: string;
5987
+ on_selection?: string;
5988
+ on_load_more?: string;
5989
+ }
5990
+ export interface ViewBadge {
5991
+ label: string;
5992
+ tone: string;
5993
+ }
5994
+ export interface MetaField {
5995
+ label: string;
5996
+ value: string;
5997
+ requires?: Record<string, string>;
5998
+ fallback?: string;
5999
+ }
6000
+ export interface Confirmation {
6001
+ title: string;
6002
+ body?: string;
6003
+ confirm: string;
6004
+ }
6005
+ export type ActionKind = string;
6006
+ export interface Action {
6007
+ kind: ActionKind;
6008
+ op?: string;
6009
+ tool?: string;
6010
+ view?: string;
6011
+ app?: string;
6012
+ url?: string;
6013
+ args?: Record<string, JSONValue>;
6014
+ }
6015
+ export interface RowAction {
6016
+ title: string;
6017
+ icon?: string;
6018
+ section?: string;
6019
+ primary?: boolean;
6020
+ destructive?: boolean;
6021
+ confirmation?: Confirmation;
6022
+ shortcut?: string;
6023
+ action?: Action;
6024
+ handler?: string;
6025
+ submit_form?: boolean;
6026
+ requires?: Record<string, string>;
6027
+ fallback?: string;
6028
+ }
6029
+ export interface DetailBody {
6030
+ is_loading?: boolean;
6031
+ markdown?: string;
6032
+ metadata?: MetaField[];
6033
+ actions?: RowAction[];
6034
+ }
6035
+ export interface Row {
6036
+ id: string;
6037
+ title: string;
6038
+ subtitle?: string;
6039
+ icon?: string;
6040
+ badge?: ViewBadge;
6041
+ keywords?: string[];
6042
+ accessories?: string[];
6043
+ detail?: DetailBody;
6044
+ actions?: RowAction[];
6045
+ requires?: Record<string, string>;
6046
+ fallback?: string;
6047
+ }
6048
+ export interface Section {
6049
+ title?: string;
6050
+ rows: Row[];
6051
+ }
6052
+ export interface Chip {
6053
+ id: string;
6054
+ label: string;
6055
+ count?: number;
6056
+ requires?: Record<string, string>;
6057
+ fallback?: string;
6058
+ }
6059
+ export interface EmptyState {
6060
+ title: string;
6061
+ hint?: string;
6062
+ icon?: string;
6063
+ }
6064
+ export interface FormField {
6065
+ id: string;
6066
+ type: string;
6067
+ label: string;
6068
+ placeholder?: string;
6069
+ required?: boolean;
6070
+ options?: string[];
6071
+ directories?: boolean;
6072
+ default?: JSONValue;
6073
+ error?: string;
6074
+ empty_hint?: string;
6075
+ on_change?: string;
6076
+ on_blur?: string;
6077
+ event_count?: number;
6078
+ requires?: Record<string, string>;
6079
+ fallback?: string;
6080
+ }
6081
+ export interface FormBody {
6082
+ fields: FormField[];
6083
+ submit?: RowAction;
6084
+ on_submit?: string;
6085
+ }
6086
+ export interface Image {
6087
+ url?: string;
6088
+ token?: string;
6089
+ emoji?: string;
6090
+ }
6091
+ export interface GridTile {
6092
+ id: string;
6093
+ title: string;
6094
+ image: Image;
6095
+ badge?: ViewBadge;
6096
+ actions?: RowAction[];
6097
+ requires?: Record<string, string>;
6098
+ fallback?: string;
6099
+ }
6100
+ export interface GridSection {
6101
+ title?: string;
6102
+ tiles: GridTile[];
6103
+ }
6104
+ export interface GridBody {
6105
+ sections: GridSection[];
6106
+ }
6107
+ export interface ViewPayload {
6108
+ view: string;
6109
+ chrome?: ViewChrome;
6110
+ sections?: Section[];
6111
+ chips?: Chip[];
6112
+ empty?: EmptyState;
6113
+ detail?: DetailBody;
6114
+ form?: FormBody;
6115
+ grid?: GridBody;
6116
+ }
6117
+ export interface PatchOp {
6118
+ op: string;
6119
+ path: string;
6120
+ value?: JSONValue;
6121
+ }
6122
+ export interface ViewPatch {
6123
+ view_id: string;
6124
+ from: string;
6125
+ to: string;
6126
+ ops: PatchOp[];
6127
+ }
6128
+ export interface ToastEffect {
6129
+ tone: string;
6130
+ message: string;
6131
+ }
6132
+ export interface CopyEffect {
6133
+ content: string;
6134
+ }
6135
+ export interface OpenURLEffect {
6136
+ url: string;
6137
+ }
6138
+ export interface OpenAppEffect {
6139
+ app: string;
6140
+ }
6141
+ export interface PickFilesEffect {
6142
+ directories?: boolean;
6143
+ }
6144
+ export interface Effect {
6145
+ id: string;
6146
+ toast?: ToastEffect;
6147
+ copy?: CopyEffect;
6148
+ open_url?: OpenURLEffect;
6149
+ open_app?: OpenAppEffect;
6150
+ pick_files?: PickFilesEffect;
6151
+ }
6152
+ export interface ViewFrame {
6153
+ view_session: string;
6154
+ revision: string;
6155
+ in_reply_to?: number;
6156
+ generation: number;
6157
+ payload?: ViewPayload;
6158
+ patch?: ViewPatch;
6159
+ effects?: Effect[];
6160
+ handlers: string[];
6161
+ }
6162
+ export type WorkspaceID = string;
6163
+ export type ClientID = string;
6164
+ export interface ViewOpenRequest {
6165
+ view_session: string;
6166
+ view: string;
6167
+ workspace: WorkspaceID;
6168
+ client: ClientID;
6169
+ args?: Record<string, JSONValue>;
6170
+ }
5803
6171
  export interface WindowManagerChanges {
5804
6172
  desktop_ids?: string[];
5805
6173
  window_ids?: string[];
@@ -5969,6 +6337,9 @@ export interface HookPayloadByEvent {
5969
6337
  "session.pre_stop": SessionPreStopPayload;
5970
6338
  "session.post_stop": SessionPostStopPayload;
5971
6339
  "session.message_persisted": SessionMessagePersistedPayload;
6340
+ "session.runtime_recovery.started": SessionRuntimeRecoveryStartedPayload;
6341
+ "session.runtime_recovery.succeeded": SessionRuntimeRecoverySucceededPayload;
6342
+ "session.runtime_recovery.exhausted": SessionRuntimeRecoveryExhaustedPayload;
5972
6343
  "sandbox.prepare": SandboxPreparePayload;
5973
6344
  "sandbox.ready": SandboxReadyPayload;
5974
6345
  "sandbox.sync.before": SandboxSyncBeforePayload;
@@ -6072,6 +6443,9 @@ export interface HookPatchByEvent {
6072
6443
  "session.pre_stop": SessionPreStopPatch;
6073
6444
  "session.post_stop": SessionPostStopPatch;
6074
6445
  "session.message_persisted": AuthoredContextObservationPatch;
6446
+ "session.runtime_recovery.started": AuthoredContextObservationPatch;
6447
+ "session.runtime_recovery.succeeded": AuthoredContextObservationPatch;
6448
+ "session.runtime_recovery.exhausted": AuthoredContextObservationPatch;
6075
6449
  "sandbox.prepare": SandboxPreparePatch;
6076
6450
  "sandbox.ready": SandboxReadyPatch;
6077
6451
  "sandbox.sync.before": SandboxSyncBeforePatch;
@@ -6340,6 +6714,10 @@ export interface HostAPIMethodMap {
6340
6714
  params: AgentHeartbeatWakeParams;
6341
6715
  result: HeartbeatWakeResponse;
6342
6716
  };
6717
+ "view/patch": {
6718
+ params: ViewFrame;
6719
+ result: EmptyResult;
6720
+ };
6343
6721
  "automation/jobs": {
6344
6722
  params: AutomationJobsParams | undefined;
6345
6723
  result: AutomationJobsResult;
@@ -6557,6 +6935,7 @@ export declare const REQUIRED_METHODS_BY_PROVIDE: {
6557
6935
  readonly "memory.backend": readonly ["memory/forget", "memory/recall", "memory/store"];
6558
6936
  readonly "model.source": readonly ["models/list"];
6559
6937
  readonly "tool.provider": readonly ["provide_tools", "tools/call"];
6938
+ readonly "view.provider": readonly ["view/close", "view/event", "view/open"];
6560
6939
  };
6561
6940
  export interface ProvideConformanceFixture {
6562
6941
  provide: string;