t3code-cli 0.9.1 → 0.11.0

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 (126) hide show
  1. package/README.md +52 -14
  2. package/dist/application.js +2 -2
  3. package/dist/auth.js +1 -1
  4. package/dist/bin.js +1556 -341
  5. package/dist/cli.js +1 -1
  6. package/dist/config.js +1 -1
  7. package/dist/connection.js +1 -11
  8. package/dist/index.js +1 -1
  9. package/dist/layout.js +1 -1
  10. package/dist/node.js +2 -0
  11. package/dist/orchestration.js +2 -2
  12. package/dist/rpc.js +2 -2
  13. package/dist/runtime.js +1 -1
  14. package/dist/scope.js +1 -1
  15. package/dist/shared.js +1734 -756
  16. package/dist/src/application/index.d.ts +3 -2
  17. package/dist/src/application/layer.d.ts +82 -841
  18. package/dist/src/application/model-selection.d.ts +15 -0
  19. package/dist/src/application/models.d.ts +1 -87
  20. package/dist/src/application/project-commands.d.ts +9 -0
  21. package/dist/src/application/projects.d.ts +13 -135
  22. package/dist/src/application/service.d.ts +84 -5
  23. package/dist/src/application/shell-sequence.d.ts +2 -12
  24. package/dist/src/application/terminals.d.ts +66 -0
  25. package/dist/src/application/thread-commands.d.ts +47 -0
  26. package/dist/src/application/thread-update.d.ts +8 -0
  27. package/dist/src/application/thread-wait.d.ts +3 -14
  28. package/dist/src/application/threads.d.ts +21 -50
  29. package/dist/src/cli/flags.d.ts +3 -0
  30. package/dist/src/cli/output-format.d.ts +2 -0
  31. package/dist/src/domain/error.d.ts +14 -1
  32. package/dist/src/domain/helpers.d.ts +0 -9
  33. package/dist/src/domain/model-config.d.ts +29 -3
  34. package/dist/src/domain/thread-lifecycle.d.ts +2 -10
  35. package/dist/src/node/index.d.ts +2 -0
  36. package/dist/src/orchestration/index.d.ts +1 -0
  37. package/dist/src/orchestration/layer.d.ts +177 -1032
  38. package/dist/src/orchestration/service.d.ts +1 -0
  39. package/dist/src/rpc/error.d.ts +4 -2
  40. package/dist/src/rpc/index.d.ts +5 -0
  41. package/dist/src/rpc/layer.d.ts +1097 -499
  42. package/dist/src/rpc/operation.d.ts +5752 -0
  43. package/dist/src/rpc/ws-group.d.ts +327 -147
  44. package/dist/src/runtime/layer.d.ts +1 -1
  45. package/dist/t3tools.js +2 -2
  46. package/dist/upstream-t3code/packages/contracts/src/environmentHttp.d.ts +10 -33
  47. package/dist/upstream-t3code/packages/contracts/src/ipc.d.ts +0 -6
  48. package/dist/upstream-t3code/packages/contracts/src/orchestration.d.ts +1 -657
  49. package/dist/upstream-t3code/packages/contracts/src/provider.d.ts +0 -14
  50. package/dist/upstream-t3code/packages/contracts/src/providerRuntime.d.ts +1 -175
  51. package/dist/upstream-t3code/packages/contracts/src/rpc.d.ts +0 -492
  52. package/dist/upstream-t3code/packages/contracts/src/server.d.ts +0 -45
  53. package/dist/upstream-t3code/packages/contracts/src/settings.d.ts +0 -21
  54. package/dist/upstream-t3code/packages/contracts/src/terminal.d.ts +3 -6
  55. package/package.json +6 -2
  56. package/src/application/index.ts +28 -2
  57. package/src/application/layer.ts +34 -5
  58. package/src/application/model-selection.ts +68 -2
  59. package/src/application/models.ts +14 -14
  60. package/src/application/project-commands.ts +15 -0
  61. package/src/application/projects.ts +43 -13
  62. package/src/application/service.ts +196 -77
  63. package/src/application/shell-sequence.ts +5 -7
  64. package/src/application/terminals.ts +207 -0
  65. package/src/application/thread-commands.test.ts +43 -0
  66. package/src/application/thread-commands.ts +81 -0
  67. package/src/application/thread-update.ts +72 -0
  68. package/src/application/thread-wait.ts +46 -47
  69. package/src/application/threads.test.ts +166 -0
  70. package/src/application/threads.ts +123 -40
  71. package/src/bin.ts +2 -0
  72. package/src/cli/app.ts +14 -0
  73. package/src/cli/confirm.ts +31 -0
  74. package/src/cli/error.ts +26 -3
  75. package/src/cli/flags.ts +15 -0
  76. package/src/cli/input/layer.ts +20 -0
  77. package/src/cli/input/service.ts +1 -0
  78. package/src/cli/output-format.ts +6 -2
  79. package/src/cli/project-format.ts +7 -0
  80. package/src/cli/project.ts +2 -1
  81. package/src/cli/projects/delete.ts +50 -0
  82. package/src/cli/self-action.ts +34 -0
  83. package/src/cli/terminal/attach.ts +32 -0
  84. package/src/cli/terminal/commands.test.ts +101 -0
  85. package/src/cli/terminal/create.ts +54 -0
  86. package/src/cli/terminal/destroy.ts +60 -0
  87. package/src/cli/terminal/encoding.test.ts +63 -0
  88. package/src/cli/terminal/encoding.ts +23 -0
  89. package/src/cli/terminal/error.ts +14 -0
  90. package/src/cli/terminal/io-node-layer.ts +82 -0
  91. package/src/cli/terminal/io-service.ts +25 -0
  92. package/src/cli/terminal/list.ts +35 -0
  93. package/src/cli/terminal/read.ts +102 -0
  94. package/src/cli/terminal/scope.ts +30 -0
  95. package/src/cli/terminal/shared.ts +250 -0
  96. package/src/cli/terminal/stream.ts +64 -0
  97. package/src/cli/terminal/wait.test.ts +146 -0
  98. package/src/cli/terminal/wait.ts +222 -0
  99. package/src/cli/terminal/write.ts +132 -0
  100. package/src/cli/terminal-format.ts +167 -0
  101. package/src/cli/terminal.ts +26 -0
  102. package/src/cli/thread-format.test.ts +32 -0
  103. package/src/cli/thread-format.ts +8 -1
  104. package/src/cli/thread.ts +9 -13
  105. package/src/cli/threads/archive.ts +11 -18
  106. package/src/cli/threads/delete.ts +61 -0
  107. package/src/cli/threads/interrupt.ts +52 -0
  108. package/src/cli/threads/list.test.ts +69 -0
  109. package/src/cli/threads/list.ts +15 -3
  110. package/src/cli/threads/messages.ts +3 -3
  111. package/src/cli/threads/send.ts +22 -2
  112. package/src/cli/threads/unarchive.ts +44 -0
  113. package/src/cli/threads/update.ts +150 -0
  114. package/src/domain/error.ts +20 -1
  115. package/src/domain/model-config.ts +4 -0
  116. package/src/domain/thread-lifecycle.test.ts +35 -0
  117. package/src/domain/thread-lifecycle.ts +29 -6
  118. package/src/node/index.ts +2 -0
  119. package/src/orchestration/index.ts +1 -0
  120. package/src/orchestration/layer.ts +33 -85
  121. package/src/orchestration/service.ts +4 -0
  122. package/src/rpc/error.ts +10 -0
  123. package/src/rpc/index.ts +5 -0
  124. package/src/rpc/operation.ts +83 -0
  125. package/src/rpc/ws-group.ts +24 -0
  126. package/src/runtime/layer.ts +7 -2
@@ -9,6 +9,221 @@ import { RpcError } from "./error.ts";
9
9
  import { T3Rpc } from "./service.ts";
10
10
  export declare const makeT3RpcLayer: () => Effect.Effect<{
11
11
  getClient: Effect.Effect<{
12
+ readonly "terminal.open": <const AsQueue extends boolean = false, const Discard = false>(input: {
13
+ readonly cwd: string;
14
+ readonly terminalId: string;
15
+ readonly threadId: string;
16
+ readonly worktreePath?: string | null | undefined;
17
+ readonly cols?: number | undefined;
18
+ readonly rows?: number | undefined;
19
+ readonly env?: {
20
+ readonly [x: string]: string;
21
+ } | undefined;
22
+ }, options?: {
23
+ readonly headers?: import("effect/unstable/http/Headers").Input | undefined;
24
+ readonly context?: Context.Context<never> | undefined;
25
+ readonly discard?: Discard | undefined;
26
+ } | undefined) => Effect.Effect<Discard extends true ? void : {
27
+ readonly threadId: string;
28
+ readonly terminalId: string;
29
+ readonly cwd: string;
30
+ readonly worktreePath: string | null;
31
+ readonly status: "error" | "starting" | "running" | "exited";
32
+ readonly pid: number | null;
33
+ readonly history: string;
34
+ readonly exitCode: number | null;
35
+ readonly exitSignal: number | null;
36
+ readonly label: string;
37
+ readonly updatedAt: string;
38
+ readonly sequence?: number | undefined;
39
+ }, import("effect/unstable/rpc/RpcClientError").RpcClientError | (Discard extends true ? never : import("#t3tools/contracts").EnvironmentAuthorizationError | import("#t3tools/contracts").TerminalCwdError | import("#t3tools/contracts").TerminalHistoryError | import("#t3tools/contracts").TerminalSessionLookupError | import("#t3tools/contracts").TerminalNotRunningError), never>;
40
+ readonly "terminal.attach": <const AsQueue extends boolean = false, const Discard = false>(input: {
41
+ readonly terminalId: string;
42
+ readonly threadId: string;
43
+ readonly cwd?: string | undefined;
44
+ readonly worktreePath?: string | null | undefined;
45
+ readonly cols?: number | undefined;
46
+ readonly rows?: number | undefined;
47
+ readonly env?: {
48
+ readonly [x: string]: string;
49
+ } | undefined;
50
+ readonly restartIfNotRunning?: boolean | undefined;
51
+ }, options?: {
52
+ readonly asQueue?: AsQueue | undefined;
53
+ readonly streamBufferSize?: number | undefined;
54
+ readonly headers?: import("effect/unstable/http/Headers").Input | undefined;
55
+ readonly context?: Context.Context<never> | undefined;
56
+ } | undefined) => AsQueue extends true ? Effect.Effect<import("effect/Queue").Dequeue<{
57
+ readonly type: "output";
58
+ readonly data: string;
59
+ readonly threadId: string;
60
+ readonly terminalId: string;
61
+ readonly sequence?: number | undefined;
62
+ } | {
63
+ readonly type: "exited";
64
+ readonly exitCode: number | null;
65
+ readonly exitSignal: number | null;
66
+ readonly threadId: string;
67
+ readonly terminalId: string;
68
+ readonly sequence?: number | undefined;
69
+ } | {
70
+ readonly type: "closed";
71
+ readonly threadId: string;
72
+ readonly terminalId: string;
73
+ readonly sequence?: number | undefined;
74
+ } | {
75
+ readonly type: "error";
76
+ readonly message: string;
77
+ readonly threadId: string;
78
+ readonly terminalId: string;
79
+ readonly sequence?: number | undefined;
80
+ } | {
81
+ readonly type: "cleared";
82
+ readonly threadId: string;
83
+ readonly terminalId: string;
84
+ readonly sequence?: number | undefined;
85
+ } | {
86
+ readonly type: "restarted";
87
+ readonly snapshot: {
88
+ readonly threadId: string;
89
+ readonly terminalId: string;
90
+ readonly cwd: string;
91
+ readonly worktreePath: string | null;
92
+ readonly status: "error" | "starting" | "running" | "exited";
93
+ readonly pid: number | null;
94
+ readonly history: string;
95
+ readonly exitCode: number | null;
96
+ readonly exitSignal: number | null;
97
+ readonly label: string;
98
+ readonly updatedAt: string;
99
+ readonly sequence?: number | undefined;
100
+ };
101
+ readonly threadId: string;
102
+ readonly terminalId: string;
103
+ readonly sequence?: number | undefined;
104
+ } | {
105
+ readonly type: "activity";
106
+ readonly hasRunningSubprocess: boolean;
107
+ readonly label: string;
108
+ readonly threadId: string;
109
+ readonly terminalId: string;
110
+ readonly sequence?: number | undefined;
111
+ } | {
112
+ readonly type: "snapshot";
113
+ readonly snapshot: {
114
+ readonly threadId: string;
115
+ readonly terminalId: string;
116
+ readonly cwd: string;
117
+ readonly worktreePath: string | null;
118
+ readonly status: "error" | "starting" | "running" | "exited";
119
+ readonly pid: number | null;
120
+ readonly history: string;
121
+ readonly exitCode: number | null;
122
+ readonly exitSignal: number | null;
123
+ readonly label: string;
124
+ readonly updatedAt: string;
125
+ readonly sequence?: number | undefined;
126
+ };
127
+ }, import("#t3tools/contracts").EnvironmentAuthorizationError | import("#t3tools/contracts").TerminalCwdError | import("#t3tools/contracts").TerminalHistoryError | import("#t3tools/contracts").TerminalSessionLookupError | import("#t3tools/contracts").TerminalNotRunningError | import("effect/unstable/rpc/RpcClientError").RpcClientError | import("effect/Cause").Done<void>>, never, Scope.Scope> : import("effect/Stream").Stream<{
128
+ readonly type: "output";
129
+ readonly data: string;
130
+ readonly threadId: string;
131
+ readonly terminalId: string;
132
+ readonly sequence?: number | undefined;
133
+ } | {
134
+ readonly type: "exited";
135
+ readonly exitCode: number | null;
136
+ readonly exitSignal: number | null;
137
+ readonly threadId: string;
138
+ readonly terminalId: string;
139
+ readonly sequence?: number | undefined;
140
+ } | {
141
+ readonly type: "closed";
142
+ readonly threadId: string;
143
+ readonly terminalId: string;
144
+ readonly sequence?: number | undefined;
145
+ } | {
146
+ readonly type: "error";
147
+ readonly message: string;
148
+ readonly threadId: string;
149
+ readonly terminalId: string;
150
+ readonly sequence?: number | undefined;
151
+ } | {
152
+ readonly type: "cleared";
153
+ readonly threadId: string;
154
+ readonly terminalId: string;
155
+ readonly sequence?: number | undefined;
156
+ } | {
157
+ readonly type: "restarted";
158
+ readonly snapshot: {
159
+ readonly threadId: string;
160
+ readonly terminalId: string;
161
+ readonly cwd: string;
162
+ readonly worktreePath: string | null;
163
+ readonly status: "error" | "starting" | "running" | "exited";
164
+ readonly pid: number | null;
165
+ readonly history: string;
166
+ readonly exitCode: number | null;
167
+ readonly exitSignal: number | null;
168
+ readonly label: string;
169
+ readonly updatedAt: string;
170
+ readonly sequence?: number | undefined;
171
+ };
172
+ readonly threadId: string;
173
+ readonly terminalId: string;
174
+ readonly sequence?: number | undefined;
175
+ } | {
176
+ readonly type: "activity";
177
+ readonly hasRunningSubprocess: boolean;
178
+ readonly label: string;
179
+ readonly threadId: string;
180
+ readonly terminalId: string;
181
+ readonly sequence?: number | undefined;
182
+ } | {
183
+ readonly type: "snapshot";
184
+ readonly snapshot: {
185
+ readonly threadId: string;
186
+ readonly terminalId: string;
187
+ readonly cwd: string;
188
+ readonly worktreePath: string | null;
189
+ readonly status: "error" | "starting" | "running" | "exited";
190
+ readonly pid: number | null;
191
+ readonly history: string;
192
+ readonly exitCode: number | null;
193
+ readonly exitSignal: number | null;
194
+ readonly label: string;
195
+ readonly updatedAt: string;
196
+ readonly sequence?: number | undefined;
197
+ };
198
+ }, import("#t3tools/contracts").EnvironmentAuthorizationError | import("#t3tools/contracts").TerminalCwdError | import("#t3tools/contracts").TerminalHistoryError | import("#t3tools/contracts").TerminalSessionLookupError | import("#t3tools/contracts").TerminalNotRunningError | import("effect/unstable/rpc/RpcClientError").RpcClientError, never>;
199
+ readonly "terminal.write": <const AsQueue extends boolean = false, const Discard = false>(input: {
200
+ readonly data: string;
201
+ readonly terminalId: string;
202
+ readonly threadId: string;
203
+ }, options?: {
204
+ readonly headers?: import("effect/unstable/http/Headers").Input | undefined;
205
+ readonly context?: Context.Context<never> | undefined;
206
+ readonly discard?: Discard | undefined;
207
+ } | undefined) => Effect.Effect<Discard extends true ? void : void, import("effect/unstable/rpc/RpcClientError").RpcClientError | (Discard extends true ? never : import("#t3tools/contracts").EnvironmentAuthorizationError | import("#t3tools/contracts").TerminalCwdError | import("#t3tools/contracts").TerminalHistoryError | import("#t3tools/contracts").TerminalSessionLookupError | import("#t3tools/contracts").TerminalNotRunningError), never>;
208
+ readonly "terminal.resize": <const AsQueue extends boolean = false, const Discard = false>(input: {
209
+ readonly cols: number;
210
+ readonly rows: number;
211
+ readonly terminalId: string;
212
+ readonly threadId: string;
213
+ }, options?: {
214
+ readonly headers?: import("effect/unstable/http/Headers").Input | undefined;
215
+ readonly context?: Context.Context<never> | undefined;
216
+ readonly discard?: Discard | undefined;
217
+ } | undefined) => Effect.Effect<Discard extends true ? void : void, import("effect/unstable/rpc/RpcClientError").RpcClientError | (Discard extends true ? never : import("#t3tools/contracts").EnvironmentAuthorizationError | import("#t3tools/contracts").TerminalCwdError | import("#t3tools/contracts").TerminalHistoryError | import("#t3tools/contracts").TerminalSessionLookupError | import("#t3tools/contracts").TerminalNotRunningError), never>;
218
+ readonly "terminal.close": <const AsQueue extends boolean = false, const Discard = false>(input: {
219
+ readonly threadId: string;
220
+ readonly terminalId?: string | undefined;
221
+ readonly deleteHistory?: boolean | undefined;
222
+ }, options?: {
223
+ readonly headers?: import("effect/unstable/http/Headers").Input | undefined;
224
+ readonly context?: Context.Context<never> | undefined;
225
+ readonly discard?: Discard | undefined;
226
+ } | undefined) => Effect.Effect<Discard extends true ? void : void, import("effect/unstable/rpc/RpcClientError").RpcClientError | (Discard extends true ? never : import("#t3tools/contracts").EnvironmentAuthorizationError | import("#t3tools/contracts").TerminalCwdError | import("#t3tools/contracts").TerminalHistoryError | import("#t3tools/contracts").TerminalSessionLookupError | import("#t3tools/contracts").TerminalNotRunningError), never>;
12
227
  readonly "orchestration.dispatchCommand": <const AsQueue extends boolean = false, const Discard = false>(input: {
13
228
  readonly type: "project.create";
14
229
  readonly commandId: string & import("effect/Brand").Brand<"CommandId">;
@@ -142,20 +357,6 @@ export declare const makeT3RpcLayer: () => Effect.Effect<{
142
357
  readonly commandId: string & import("effect/Brand").Brand<"CommandId">;
143
358
  readonly threadId: string & import("effect/Brand").Brand<"ThreadId">;
144
359
  readonly createdAt: string;
145
- } | {
146
- readonly type: "thread.goal.request";
147
- readonly commandId: string & import("effect/Brand").Brand<"CommandId">;
148
- readonly threadId: string & import("effect/Brand").Brand<"ThreadId">;
149
- readonly request: {
150
- readonly kind: "status";
151
- } | {
152
- readonly kind: "control";
153
- readonly action: "pause" | "resume" | "clear";
154
- } | {
155
- readonly kind: "set";
156
- readonly objective: string;
157
- };
158
- readonly createdAt: string;
159
360
  } | {
160
361
  readonly type: "thread.turn.start";
161
362
  readonly commandId: string & import("effect/Brand").Brand<"CommandId">;
@@ -220,6 +421,95 @@ export declare const makeT3RpcLayer: () => Effect.Effect<{
220
421
  } | undefined) => Effect.Effect<Discard extends true ? void : {
221
422
  readonly sequence: number;
222
423
  }, import("effect/unstable/rpc/RpcClientError").RpcClientError | (Discard extends true ? never : import("#t3tools/contracts").EnvironmentAuthorizationError | import("#t3tools/contracts").OrchestrationDispatchCommandError), never>;
424
+ readonly "orchestration.getArchivedShellSnapshot": <const AsQueue extends boolean = false, const Discard = false>(input: {}, options?: {
425
+ readonly headers?: import("effect/unstable/http/Headers").Input | undefined;
426
+ readonly context?: Context.Context<never> | undefined;
427
+ readonly discard?: Discard | undefined;
428
+ } | undefined) => Effect.Effect<Discard extends true ? void : {
429
+ readonly snapshotSequence: number;
430
+ readonly projects: readonly {
431
+ readonly id: string & import("effect/Brand").Brand<"ProjectId">;
432
+ readonly title: string;
433
+ readonly workspaceRoot: string;
434
+ readonly defaultModelSelection: {
435
+ readonly instanceId: string & import("effect/Brand").Brand<"ProviderInstanceId">;
436
+ readonly model: string;
437
+ readonly options?: readonly {
438
+ readonly id: string;
439
+ readonly value: string | boolean;
440
+ }[];
441
+ } | null;
442
+ readonly scripts: readonly {
443
+ readonly id: string;
444
+ readonly name: string;
445
+ readonly command: string;
446
+ readonly icon: "play" | "test" | "lint" | "configure" | "build" | "debug";
447
+ readonly runOnWorktreeCreate: boolean;
448
+ }[];
449
+ readonly createdAt: string;
450
+ readonly updatedAt: string;
451
+ readonly repositoryIdentity?: {
452
+ readonly canonicalKey: string;
453
+ readonly locator: {
454
+ readonly source: "git-remote";
455
+ readonly remoteName: string;
456
+ readonly remoteUrl: string;
457
+ };
458
+ readonly rootPath?: string;
459
+ readonly displayName?: string;
460
+ readonly provider?: string;
461
+ readonly owner?: string;
462
+ readonly name?: string;
463
+ } | null | undefined;
464
+ }[];
465
+ readonly threads: readonly {
466
+ readonly id: string & import("effect/Brand").Brand<"ThreadId">;
467
+ readonly projectId: string & import("effect/Brand").Brand<"ProjectId">;
468
+ readonly title: string;
469
+ readonly modelSelection: {
470
+ readonly instanceId: string & import("effect/Brand").Brand<"ProviderInstanceId">;
471
+ readonly model: string;
472
+ readonly options?: readonly {
473
+ readonly id: string;
474
+ readonly value: string | boolean;
475
+ }[];
476
+ };
477
+ readonly runtimeMode: "approval-required" | "auto-accept-edits" | "full-access";
478
+ readonly interactionMode: "default" | "plan";
479
+ readonly branch: string | null;
480
+ readonly worktreePath: string | null;
481
+ readonly latestTurn: {
482
+ readonly turnId: string & import("effect/Brand").Brand<"TurnId">;
483
+ readonly state: "error" | "running" | "interrupted" | "completed";
484
+ readonly requestedAt: string;
485
+ readonly startedAt: string | null;
486
+ readonly completedAt: string | null;
487
+ readonly assistantMessageId: (string & import("effect/Brand").Brand<"MessageId">) | null;
488
+ readonly sourceProposedPlan?: {
489
+ readonly threadId: string & import("effect/Brand").Brand<"ThreadId">;
490
+ readonly planId: string;
491
+ } | undefined;
492
+ } | null;
493
+ readonly createdAt: string;
494
+ readonly updatedAt: string;
495
+ readonly archivedAt: string | null;
496
+ readonly session: {
497
+ readonly threadId: string & import("effect/Brand").Brand<"ThreadId">;
498
+ readonly status: "error" | "idle" | "starting" | "running" | "ready" | "interrupted" | "stopped";
499
+ readonly providerName: string | null;
500
+ readonly runtimeMode: "approval-required" | "auto-accept-edits" | "full-access";
501
+ readonly activeTurnId: (string & import("effect/Brand").Brand<"TurnId">) | null;
502
+ readonly lastError: string | null;
503
+ readonly updatedAt: string;
504
+ readonly providerInstanceId?: (string & import("effect/Brand").Brand<"ProviderInstanceId">) | undefined;
505
+ } | null;
506
+ readonly latestUserMessageAt: string | null;
507
+ readonly hasPendingApprovals: boolean;
508
+ readonly hasPendingUserInput: boolean;
509
+ readonly hasActionableProposedPlan: boolean;
510
+ }[];
511
+ readonly updatedAt: string;
512
+ }, import("effect/unstable/rpc/RpcClientError").RpcClientError | (Discard extends true ? never : import("#t3tools/contracts").EnvironmentAuthorizationError | import("#t3tools/contracts").OrchestrationGetSnapshotError), never>;
223
513
  readonly "orchestration.subscribeShell": <const AsQueue extends boolean = false, const Discard = false>(input: {}, options?: {
224
514
  readonly asQueue?: AsQueue | undefined;
225
515
  readonly streamBufferSize?: number | undefined;
@@ -311,15 +601,6 @@ export declare const makeT3RpcLayer: () => Effect.Effect<{
311
601
  readonly updatedAt: string;
312
602
  readonly providerInstanceId?: (string & import("effect/Brand").Brand<"ProviderInstanceId">) | undefined;
313
603
  } | null;
314
- readonly goal: {
315
- readonly objective: string;
316
- readonly status: "active" | "paused" | "budgetLimited" | "complete";
317
- readonly tokensUsed: number;
318
- readonly tokenBudget: number | null;
319
- readonly timeUsedSeconds: number;
320
- readonly createdAt: string;
321
- readonly updatedAt: string;
322
- } | null;
323
604
  readonly latestUserMessageAt: string | null;
324
605
  readonly hasPendingApprovals: boolean;
325
606
  readonly hasPendingUserInput: boolean;
@@ -409,15 +690,6 @@ export declare const makeT3RpcLayer: () => Effect.Effect<{
409
690
  readonly updatedAt: string;
410
691
  readonly providerInstanceId?: (string & import("effect/Brand").Brand<"ProviderInstanceId">) | undefined;
411
692
  } | null;
412
- readonly goal: {
413
- readonly objective: string;
414
- readonly status: "active" | "paused" | "budgetLimited" | "complete";
415
- readonly tokensUsed: number;
416
- readonly tokenBudget: number | null;
417
- readonly timeUsedSeconds: number;
418
- readonly createdAt: string;
419
- readonly updatedAt: string;
420
- } | null;
421
693
  readonly latestUserMessageAt: string | null;
422
694
  readonly hasPendingApprovals: boolean;
423
695
  readonly hasPendingUserInput: boolean;
@@ -511,15 +783,6 @@ export declare const makeT3RpcLayer: () => Effect.Effect<{
511
783
  readonly updatedAt: string;
512
784
  readonly providerInstanceId?: (string & import("effect/Brand").Brand<"ProviderInstanceId">) | undefined;
513
785
  } | null;
514
- readonly goal: {
515
- readonly objective: string;
516
- readonly status: "active" | "paused" | "budgetLimited" | "complete";
517
- readonly tokensUsed: number;
518
- readonly tokenBudget: number | null;
519
- readonly timeUsedSeconds: number;
520
- readonly createdAt: string;
521
- readonly updatedAt: string;
522
- } | null;
523
786
  readonly latestUserMessageAt: string | null;
524
787
  readonly hasPendingApprovals: boolean;
525
788
  readonly hasPendingUserInput: boolean;
@@ -609,15 +872,6 @@ export declare const makeT3RpcLayer: () => Effect.Effect<{
609
872
  readonly updatedAt: string;
610
873
  readonly providerInstanceId?: (string & import("effect/Brand").Brand<"ProviderInstanceId">) | undefined;
611
874
  } | null;
612
- readonly goal: {
613
- readonly objective: string;
614
- readonly status: "active" | "paused" | "budgetLimited" | "complete";
615
- readonly tokensUsed: number;
616
- readonly tokenBudget: number | null;
617
- readonly timeUsedSeconds: number;
618
- readonly createdAt: string;
619
- readonly updatedAt: string;
620
- } | null;
621
875
  readonly latestUserMessageAt: string | null;
622
876
  readonly hasPendingApprovals: boolean;
623
877
  readonly hasPendingUserInput: boolean;
@@ -669,15 +923,6 @@ export declare const makeT3RpcLayer: () => Effect.Effect<{
669
923
  readonly updatedAt: string;
670
924
  readonly archivedAt: string | null;
671
925
  readonly deletedAt: string | null;
672
- readonly goal: {
673
- readonly objective: string;
674
- readonly status: "active" | "paused" | "budgetLimited" | "complete";
675
- readonly tokensUsed: number;
676
- readonly tokenBudget: number | null;
677
- readonly timeUsedSeconds: number;
678
- readonly createdAt: string;
679
- readonly updatedAt: string;
680
- } | null;
681
926
  readonly messages: readonly {
682
927
  readonly id: string & import("effect/Brand").Brand<"MessageId">;
683
928
  readonly role: "user" | "assistant" | "system";
@@ -1276,85 +1521,6 @@ export declare const makeT3RpcLayer: () => Effect.Effect<{
1276
1521
  readonly requestId?: (string & import("effect/Brand").Brand<"ApprovalRequestId">) | undefined;
1277
1522
  readonly ingestedAt?: string | undefined;
1278
1523
  };
1279
- } | {
1280
- readonly type: "thread.goal-requested";
1281
- readonly payload: {
1282
- readonly threadId: string & import("effect/Brand").Brand<"ThreadId">;
1283
- readonly request: {
1284
- readonly kind: "status";
1285
- } | {
1286
- readonly kind: "control";
1287
- readonly action: "pause" | "resume" | "clear";
1288
- } | {
1289
- readonly kind: "set";
1290
- readonly objective: string;
1291
- };
1292
- readonly createdAt: string;
1293
- };
1294
- readonly sequence: number;
1295
- readonly eventId: string & import("effect/Brand").Brand<"EventId">;
1296
- readonly aggregateKind: "project" | "thread";
1297
- readonly aggregateId: (string & import("effect/Brand").Brand<"ThreadId">) | (string & import("effect/Brand").Brand<"ProjectId">);
1298
- readonly occurredAt: string;
1299
- readonly commandId: (string & import("effect/Brand").Brand<"CommandId">) | null;
1300
- readonly causationEventId: (string & import("effect/Brand").Brand<"EventId">) | null;
1301
- readonly correlationId: (string & import("effect/Brand").Brand<"CommandId">) | null;
1302
- readonly metadata: {
1303
- readonly providerTurnId?: string | undefined;
1304
- readonly providerItemId?: (string & import("effect/Brand").Brand<"ProviderItemId">) | undefined;
1305
- readonly adapterKey?: string | undefined;
1306
- readonly requestId?: (string & import("effect/Brand").Brand<"ApprovalRequestId">) | undefined;
1307
- readonly ingestedAt?: string | undefined;
1308
- };
1309
- } | {
1310
- readonly type: "thread.goal-updated";
1311
- readonly payload: {
1312
- readonly threadId: string & import("effect/Brand").Brand<"ThreadId">;
1313
- readonly goal: {
1314
- readonly objective: string;
1315
- readonly status: "active" | "paused" | "budgetLimited" | "complete";
1316
- readonly tokensUsed: number;
1317
- readonly tokenBudget: number | null;
1318
- readonly timeUsedSeconds: number;
1319
- readonly createdAt: string;
1320
- readonly updatedAt: string;
1321
- };
1322
- };
1323
- readonly sequence: number;
1324
- readonly eventId: string & import("effect/Brand").Brand<"EventId">;
1325
- readonly aggregateKind: "project" | "thread";
1326
- readonly aggregateId: (string & import("effect/Brand").Brand<"ThreadId">) | (string & import("effect/Brand").Brand<"ProjectId">);
1327
- readonly occurredAt: string;
1328
- readonly commandId: (string & import("effect/Brand").Brand<"CommandId">) | null;
1329
- readonly causationEventId: (string & import("effect/Brand").Brand<"EventId">) | null;
1330
- readonly correlationId: (string & import("effect/Brand").Brand<"CommandId">) | null;
1331
- readonly metadata: {
1332
- readonly providerTurnId?: string | undefined;
1333
- readonly providerItemId?: (string & import("effect/Brand").Brand<"ProviderItemId">) | undefined;
1334
- readonly adapterKey?: string | undefined;
1335
- readonly requestId?: (string & import("effect/Brand").Brand<"ApprovalRequestId">) | undefined;
1336
- readonly ingestedAt?: string | undefined;
1337
- };
1338
- } | {
1339
- readonly type: "thread.goal-cleared";
1340
- readonly payload: {
1341
- readonly threadId: string & import("effect/Brand").Brand<"ThreadId">;
1342
- };
1343
- readonly sequence: number;
1344
- readonly eventId: string & import("effect/Brand").Brand<"EventId">;
1345
- readonly aggregateKind: "project" | "thread";
1346
- readonly aggregateId: (string & import("effect/Brand").Brand<"ThreadId">) | (string & import("effect/Brand").Brand<"ProjectId">);
1347
- readonly occurredAt: string;
1348
- readonly commandId: (string & import("effect/Brand").Brand<"CommandId">) | null;
1349
- readonly causationEventId: (string & import("effect/Brand").Brand<"EventId">) | null;
1350
- readonly correlationId: (string & import("effect/Brand").Brand<"CommandId">) | null;
1351
- readonly metadata: {
1352
- readonly providerTurnId?: string | undefined;
1353
- readonly providerItemId?: (string & import("effect/Brand").Brand<"ProviderItemId">) | undefined;
1354
- readonly adapterKey?: string | undefined;
1355
- readonly requestId?: (string & import("effect/Brand").Brand<"ApprovalRequestId">) | undefined;
1356
- readonly ingestedAt?: string | undefined;
1357
- };
1358
1524
  } | {
1359
1525
  readonly type: "thread.proposed-plan-upserted";
1360
1526
  readonly payload: {
@@ -1483,15 +1649,6 @@ export declare const makeT3RpcLayer: () => Effect.Effect<{
1483
1649
  readonly updatedAt: string;
1484
1650
  readonly archivedAt: string | null;
1485
1651
  readonly deletedAt: string | null;
1486
- readonly goal: {
1487
- readonly objective: string;
1488
- readonly status: "active" | "paused" | "budgetLimited" | "complete";
1489
- readonly tokensUsed: number;
1490
- readonly tokenBudget: number | null;
1491
- readonly timeUsedSeconds: number;
1492
- readonly createdAt: string;
1493
- readonly updatedAt: string;
1494
- } | null;
1495
1652
  readonly messages: readonly {
1496
1653
  readonly id: string & import("effect/Brand").Brand<"MessageId">;
1497
1654
  readonly role: "user" | "assistant" | "system";
@@ -2091,19 +2248,18 @@ export declare const makeT3RpcLayer: () => Effect.Effect<{
2091
2248
  readonly ingestedAt?: string | undefined;
2092
2249
  };
2093
2250
  } | {
2094
- readonly type: "thread.goal-requested";
2251
+ readonly type: "thread.proposed-plan-upserted";
2095
2252
  readonly payload: {
2096
2253
  readonly threadId: string & import("effect/Brand").Brand<"ThreadId">;
2097
- readonly request: {
2098
- readonly kind: "status";
2099
- } | {
2100
- readonly kind: "control";
2101
- readonly action: "pause" | "resume" | "clear";
2102
- } | {
2103
- readonly kind: "set";
2104
- readonly objective: string;
2254
+ readonly proposedPlan: {
2255
+ readonly id: string;
2256
+ readonly turnId: (string & import("effect/Brand").Brand<"TurnId">) | null;
2257
+ readonly planMarkdown: string;
2258
+ readonly implementedAt: string | null;
2259
+ readonly implementationThreadId: (string & import("effect/Brand").Brand<"ThreadId">) | null;
2260
+ readonly createdAt: string;
2261
+ readonly updatedAt: string;
2105
2262
  };
2106
- readonly createdAt: string;
2107
2263
  };
2108
2264
  readonly sequence: number;
2109
2265
  readonly eventId: string & import("effect/Brand").Brand<"EventId">;
@@ -2121,85 +2277,7 @@ export declare const makeT3RpcLayer: () => Effect.Effect<{
2121
2277
  readonly ingestedAt?: string | undefined;
2122
2278
  };
2123
2279
  } | {
2124
- readonly type: "thread.goal-updated";
2125
- readonly payload: {
2126
- readonly threadId: string & import("effect/Brand").Brand<"ThreadId">;
2127
- readonly goal: {
2128
- readonly objective: string;
2129
- readonly status: "active" | "paused" | "budgetLimited" | "complete";
2130
- readonly tokensUsed: number;
2131
- readonly tokenBudget: number | null;
2132
- readonly timeUsedSeconds: number;
2133
- readonly createdAt: string;
2134
- readonly updatedAt: string;
2135
- };
2136
- };
2137
- readonly sequence: number;
2138
- readonly eventId: string & import("effect/Brand").Brand<"EventId">;
2139
- readonly aggregateKind: "project" | "thread";
2140
- readonly aggregateId: (string & import("effect/Brand").Brand<"ThreadId">) | (string & import("effect/Brand").Brand<"ProjectId">);
2141
- readonly occurredAt: string;
2142
- readonly commandId: (string & import("effect/Brand").Brand<"CommandId">) | null;
2143
- readonly causationEventId: (string & import("effect/Brand").Brand<"EventId">) | null;
2144
- readonly correlationId: (string & import("effect/Brand").Brand<"CommandId">) | null;
2145
- readonly metadata: {
2146
- readonly providerTurnId?: string | undefined;
2147
- readonly providerItemId?: (string & import("effect/Brand").Brand<"ProviderItemId">) | undefined;
2148
- readonly adapterKey?: string | undefined;
2149
- readonly requestId?: (string & import("effect/Brand").Brand<"ApprovalRequestId">) | undefined;
2150
- readonly ingestedAt?: string | undefined;
2151
- };
2152
- } | {
2153
- readonly type: "thread.goal-cleared";
2154
- readonly payload: {
2155
- readonly threadId: string & import("effect/Brand").Brand<"ThreadId">;
2156
- };
2157
- readonly sequence: number;
2158
- readonly eventId: string & import("effect/Brand").Brand<"EventId">;
2159
- readonly aggregateKind: "project" | "thread";
2160
- readonly aggregateId: (string & import("effect/Brand").Brand<"ThreadId">) | (string & import("effect/Brand").Brand<"ProjectId">);
2161
- readonly occurredAt: string;
2162
- readonly commandId: (string & import("effect/Brand").Brand<"CommandId">) | null;
2163
- readonly causationEventId: (string & import("effect/Brand").Brand<"EventId">) | null;
2164
- readonly correlationId: (string & import("effect/Brand").Brand<"CommandId">) | null;
2165
- readonly metadata: {
2166
- readonly providerTurnId?: string | undefined;
2167
- readonly providerItemId?: (string & import("effect/Brand").Brand<"ProviderItemId">) | undefined;
2168
- readonly adapterKey?: string | undefined;
2169
- readonly requestId?: (string & import("effect/Brand").Brand<"ApprovalRequestId">) | undefined;
2170
- readonly ingestedAt?: string | undefined;
2171
- };
2172
- } | {
2173
- readonly type: "thread.proposed-plan-upserted";
2174
- readonly payload: {
2175
- readonly threadId: string & import("effect/Brand").Brand<"ThreadId">;
2176
- readonly proposedPlan: {
2177
- readonly id: string;
2178
- readonly turnId: (string & import("effect/Brand").Brand<"TurnId">) | null;
2179
- readonly planMarkdown: string;
2180
- readonly implementedAt: string | null;
2181
- readonly implementationThreadId: (string & import("effect/Brand").Brand<"ThreadId">) | null;
2182
- readonly createdAt: string;
2183
- readonly updatedAt: string;
2184
- };
2185
- };
2186
- readonly sequence: number;
2187
- readonly eventId: string & import("effect/Brand").Brand<"EventId">;
2188
- readonly aggregateKind: "project" | "thread";
2189
- readonly aggregateId: (string & import("effect/Brand").Brand<"ThreadId">) | (string & import("effect/Brand").Brand<"ProjectId">);
2190
- readonly occurredAt: string;
2191
- readonly commandId: (string & import("effect/Brand").Brand<"CommandId">) | null;
2192
- readonly causationEventId: (string & import("effect/Brand").Brand<"EventId">) | null;
2193
- readonly correlationId: (string & import("effect/Brand").Brand<"CommandId">) | null;
2194
- readonly metadata: {
2195
- readonly providerTurnId?: string | undefined;
2196
- readonly providerItemId?: (string & import("effect/Brand").Brand<"ProviderItemId">) | undefined;
2197
- readonly adapterKey?: string | undefined;
2198
- readonly requestId?: (string & import("effect/Brand").Brand<"ApprovalRequestId">) | undefined;
2199
- readonly ingestedAt?: string | undefined;
2200
- };
2201
- } | {
2202
- readonly type: "thread.turn-diff-completed";
2280
+ readonly type: "thread.turn-diff-completed";
2203
2281
  readonly payload: {
2204
2282
  readonly threadId: string & import("effect/Brand").Brand<"ThreadId">;
2205
2283
  readonly turnId: string & import("effect/Brand").Brand<"TurnId">;
@@ -2262,6 +2340,234 @@ export declare const makeT3RpcLayer: () => Effect.Effect<{
2262
2340
  };
2263
2341
  };
2264
2342
  }, import("#t3tools/contracts").EnvironmentAuthorizationError | import("#t3tools/contracts").OrchestrationGetSnapshotError | import("effect/unstable/rpc/RpcClientError").RpcClientError, never>;
2343
+ readonly subscribeTerminalEvents: <const AsQueue extends boolean = false, const Discard = false>(input: {}, options?: {
2344
+ readonly asQueue?: AsQueue | undefined;
2345
+ readonly streamBufferSize?: number | undefined;
2346
+ readonly headers?: import("effect/unstable/http/Headers").Input | undefined;
2347
+ readonly context?: Context.Context<never> | undefined;
2348
+ } | undefined) => AsQueue extends true ? Effect.Effect<import("effect/Queue").Dequeue<{
2349
+ readonly type: "started";
2350
+ readonly snapshot: {
2351
+ readonly threadId: string;
2352
+ readonly terminalId: string;
2353
+ readonly cwd: string;
2354
+ readonly worktreePath: string | null;
2355
+ readonly status: "error" | "starting" | "running" | "exited";
2356
+ readonly pid: number | null;
2357
+ readonly history: string;
2358
+ readonly exitCode: number | null;
2359
+ readonly exitSignal: number | null;
2360
+ readonly label: string;
2361
+ readonly updatedAt: string;
2362
+ readonly sequence?: number | undefined;
2363
+ };
2364
+ readonly threadId: string;
2365
+ readonly terminalId: string;
2366
+ readonly sequence?: number | undefined;
2367
+ } | {
2368
+ readonly type: "output";
2369
+ readonly data: string;
2370
+ readonly threadId: string;
2371
+ readonly terminalId: string;
2372
+ readonly sequence?: number | undefined;
2373
+ } | {
2374
+ readonly type: "exited";
2375
+ readonly exitCode: number | null;
2376
+ readonly exitSignal: number | null;
2377
+ readonly threadId: string;
2378
+ readonly terminalId: string;
2379
+ readonly sequence?: number | undefined;
2380
+ } | {
2381
+ readonly type: "closed";
2382
+ readonly threadId: string;
2383
+ readonly terminalId: string;
2384
+ readonly sequence?: number | undefined;
2385
+ } | {
2386
+ readonly type: "error";
2387
+ readonly message: string;
2388
+ readonly threadId: string;
2389
+ readonly terminalId: string;
2390
+ readonly sequence?: number | undefined;
2391
+ } | {
2392
+ readonly type: "cleared";
2393
+ readonly threadId: string;
2394
+ readonly terminalId: string;
2395
+ readonly sequence?: number | undefined;
2396
+ } | {
2397
+ readonly type: "restarted";
2398
+ readonly snapshot: {
2399
+ readonly threadId: string;
2400
+ readonly terminalId: string;
2401
+ readonly cwd: string;
2402
+ readonly worktreePath: string | null;
2403
+ readonly status: "error" | "starting" | "running" | "exited";
2404
+ readonly pid: number | null;
2405
+ readonly history: string;
2406
+ readonly exitCode: number | null;
2407
+ readonly exitSignal: number | null;
2408
+ readonly label: string;
2409
+ readonly updatedAt: string;
2410
+ readonly sequence?: number | undefined;
2411
+ };
2412
+ readonly threadId: string;
2413
+ readonly terminalId: string;
2414
+ readonly sequence?: number | undefined;
2415
+ } | {
2416
+ readonly type: "activity";
2417
+ readonly hasRunningSubprocess: boolean;
2418
+ readonly label: string;
2419
+ readonly threadId: string;
2420
+ readonly terminalId: string;
2421
+ readonly sequence?: number | undefined;
2422
+ }, import("#t3tools/contracts").EnvironmentAuthorizationError | import("effect/unstable/rpc/RpcClientError").RpcClientError | import("effect/Cause").Done<void>>, never, Scope.Scope> : import("effect/Stream").Stream<{
2423
+ readonly type: "started";
2424
+ readonly snapshot: {
2425
+ readonly threadId: string;
2426
+ readonly terminalId: string;
2427
+ readonly cwd: string;
2428
+ readonly worktreePath: string | null;
2429
+ readonly status: "error" | "starting" | "running" | "exited";
2430
+ readonly pid: number | null;
2431
+ readonly history: string;
2432
+ readonly exitCode: number | null;
2433
+ readonly exitSignal: number | null;
2434
+ readonly label: string;
2435
+ readonly updatedAt: string;
2436
+ readonly sequence?: number | undefined;
2437
+ };
2438
+ readonly threadId: string;
2439
+ readonly terminalId: string;
2440
+ readonly sequence?: number | undefined;
2441
+ } | {
2442
+ readonly type: "output";
2443
+ readonly data: string;
2444
+ readonly threadId: string;
2445
+ readonly terminalId: string;
2446
+ readonly sequence?: number | undefined;
2447
+ } | {
2448
+ readonly type: "exited";
2449
+ readonly exitCode: number | null;
2450
+ readonly exitSignal: number | null;
2451
+ readonly threadId: string;
2452
+ readonly terminalId: string;
2453
+ readonly sequence?: number | undefined;
2454
+ } | {
2455
+ readonly type: "closed";
2456
+ readonly threadId: string;
2457
+ readonly terminalId: string;
2458
+ readonly sequence?: number | undefined;
2459
+ } | {
2460
+ readonly type: "error";
2461
+ readonly message: string;
2462
+ readonly threadId: string;
2463
+ readonly terminalId: string;
2464
+ readonly sequence?: number | undefined;
2465
+ } | {
2466
+ readonly type: "cleared";
2467
+ readonly threadId: string;
2468
+ readonly terminalId: string;
2469
+ readonly sequence?: number | undefined;
2470
+ } | {
2471
+ readonly type: "restarted";
2472
+ readonly snapshot: {
2473
+ readonly threadId: string;
2474
+ readonly terminalId: string;
2475
+ readonly cwd: string;
2476
+ readonly worktreePath: string | null;
2477
+ readonly status: "error" | "starting" | "running" | "exited";
2478
+ readonly pid: number | null;
2479
+ readonly history: string;
2480
+ readonly exitCode: number | null;
2481
+ readonly exitSignal: number | null;
2482
+ readonly label: string;
2483
+ readonly updatedAt: string;
2484
+ readonly sequence?: number | undefined;
2485
+ };
2486
+ readonly threadId: string;
2487
+ readonly terminalId: string;
2488
+ readonly sequence?: number | undefined;
2489
+ } | {
2490
+ readonly type: "activity";
2491
+ readonly hasRunningSubprocess: boolean;
2492
+ readonly label: string;
2493
+ readonly threadId: string;
2494
+ readonly terminalId: string;
2495
+ readonly sequence?: number | undefined;
2496
+ }, import("#t3tools/contracts").EnvironmentAuthorizationError | import("effect/unstable/rpc/RpcClientError").RpcClientError, never>;
2497
+ readonly subscribeTerminalMetadata: <const AsQueue extends boolean = false, const Discard = false>(input: {}, options?: {
2498
+ readonly asQueue?: AsQueue | undefined;
2499
+ readonly streamBufferSize?: number | undefined;
2500
+ readonly headers?: import("effect/unstable/http/Headers").Input | undefined;
2501
+ readonly context?: Context.Context<never> | undefined;
2502
+ } | undefined) => AsQueue extends true ? Effect.Effect<import("effect/Queue").Dequeue<{
2503
+ readonly type: "snapshot";
2504
+ readonly terminals: readonly {
2505
+ readonly threadId: string;
2506
+ readonly terminalId: string;
2507
+ readonly cwd: string;
2508
+ readonly worktreePath: string | null;
2509
+ readonly status: "error" | "starting" | "running" | "exited";
2510
+ readonly pid: number | null;
2511
+ readonly exitCode: number | null;
2512
+ readonly exitSignal: number | null;
2513
+ readonly hasRunningSubprocess: boolean;
2514
+ readonly label: string;
2515
+ readonly updatedAt: string;
2516
+ }[];
2517
+ } | {
2518
+ readonly type: "upsert";
2519
+ readonly terminal: {
2520
+ readonly threadId: string;
2521
+ readonly terminalId: string;
2522
+ readonly cwd: string;
2523
+ readonly worktreePath: string | null;
2524
+ readonly status: "error" | "starting" | "running" | "exited";
2525
+ readonly pid: number | null;
2526
+ readonly exitCode: number | null;
2527
+ readonly exitSignal: number | null;
2528
+ readonly hasRunningSubprocess: boolean;
2529
+ readonly label: string;
2530
+ readonly updatedAt: string;
2531
+ };
2532
+ } | {
2533
+ readonly type: "remove";
2534
+ readonly threadId: string;
2535
+ readonly terminalId: string;
2536
+ }, import("#t3tools/contracts").EnvironmentAuthorizationError | import("effect/unstable/rpc/RpcClientError").RpcClientError | import("effect/Cause").Done<void>>, never, Scope.Scope> : import("effect/Stream").Stream<{
2537
+ readonly type: "snapshot";
2538
+ readonly terminals: readonly {
2539
+ readonly threadId: string;
2540
+ readonly terminalId: string;
2541
+ readonly cwd: string;
2542
+ readonly worktreePath: string | null;
2543
+ readonly status: "error" | "starting" | "running" | "exited";
2544
+ readonly pid: number | null;
2545
+ readonly exitCode: number | null;
2546
+ readonly exitSignal: number | null;
2547
+ readonly hasRunningSubprocess: boolean;
2548
+ readonly label: string;
2549
+ readonly updatedAt: string;
2550
+ }[];
2551
+ } | {
2552
+ readonly type: "upsert";
2553
+ readonly terminal: {
2554
+ readonly threadId: string;
2555
+ readonly terminalId: string;
2556
+ readonly cwd: string;
2557
+ readonly worktreePath: string | null;
2558
+ readonly status: "error" | "starting" | "running" | "exited";
2559
+ readonly pid: number | null;
2560
+ readonly exitCode: number | null;
2561
+ readonly exitSignal: number | null;
2562
+ readonly hasRunningSubprocess: boolean;
2563
+ readonly label: string;
2564
+ readonly updatedAt: string;
2565
+ };
2566
+ } | {
2567
+ readonly type: "remove";
2568
+ readonly threadId: string;
2569
+ readonly terminalId: string;
2570
+ }, import("#t3tools/contracts").EnvironmentAuthorizationError | import("effect/unstable/rpc/RpcClientError").RpcClientError, never>;
2265
2571
  readonly "server.getConfig": <const AsQueue extends boolean = false, const Discard = false>(input: {}, options?: {
2266
2572
  readonly headers?: import("effect/unstable/http/Headers").Input | undefined;
2267
2573
  readonly context?: Context.Context<never> | undefined;
@@ -2387,7 +2693,6 @@ export declare const makeT3RpcLayer: () => Effect.Effect<{
2387
2693
  readonly groupKey: string;
2388
2694
  } | undefined;
2389
2695
  readonly showInteractionModeToggle?: boolean | undefined;
2390
- readonly requiresNewThreadForModelChange?: boolean | undefined;
2391
2696
  readonly message?: string | undefined;
2392
2697
  readonly availability?: "available" | "unavailable" | undefined;
2393
2698
  readonly unavailableReason?: string | undefined;
@@ -2451,11 +2756,6 @@ export declare const makeT3RpcLayer: () => Effect.Effect<{
2451
2756
  readonly apiEndpoint: string;
2452
2757
  readonly customModels: readonly string[];
2453
2758
  };
2454
- readonly grok: {
2455
- readonly enabled: boolean;
2456
- readonly binaryPath: string;
2457
- readonly customModels: readonly string[];
2458
- };
2459
2759
  readonly opencode: {
2460
2760
  readonly enabled: boolean;
2461
2761
  readonly binaryPath: string;
@@ -2551,7 +2851,6 @@ export declare const makeT3RpcLayer: () => Effect.Effect<{
2551
2851
  readonly groupKey: string;
2552
2852
  } | undefined;
2553
2853
  readonly showInteractionModeToggle?: boolean | undefined;
2554
- readonly requiresNewThreadForModelChange?: boolean | undefined;
2555
2854
  readonly message?: string | undefined;
2556
2855
  readonly availability?: "available" | "unavailable" | undefined;
2557
2856
  readonly unavailableReason?: string | undefined;
@@ -2576,6 +2875,221 @@ export declare const makeT3RpcLayer: () => Effect.Effect<{
2576
2875
  }, RpcError, never>;
2577
2876
  disconnect: Effect.Effect<void, never, never>;
2578
2877
  reconnect: Effect.Effect<{
2878
+ readonly "terminal.open": <const AsQueue extends boolean = false, const Discard = false>(input: {
2879
+ readonly cwd: string;
2880
+ readonly terminalId: string;
2881
+ readonly threadId: string;
2882
+ readonly worktreePath?: string | null | undefined;
2883
+ readonly cols?: number | undefined;
2884
+ readonly rows?: number | undefined;
2885
+ readonly env?: {
2886
+ readonly [x: string]: string;
2887
+ } | undefined;
2888
+ }, options?: {
2889
+ readonly headers?: import("effect/unstable/http/Headers").Input | undefined;
2890
+ readonly context?: Context.Context<never> | undefined;
2891
+ readonly discard?: Discard | undefined;
2892
+ } | undefined) => Effect.Effect<Discard extends true ? void : {
2893
+ readonly threadId: string;
2894
+ readonly terminalId: string;
2895
+ readonly cwd: string;
2896
+ readonly worktreePath: string | null;
2897
+ readonly status: "error" | "starting" | "running" | "exited";
2898
+ readonly pid: number | null;
2899
+ readonly history: string;
2900
+ readonly exitCode: number | null;
2901
+ readonly exitSignal: number | null;
2902
+ readonly label: string;
2903
+ readonly updatedAt: string;
2904
+ readonly sequence?: number | undefined;
2905
+ }, import("effect/unstable/rpc/RpcClientError").RpcClientError | (Discard extends true ? never : import("#t3tools/contracts").EnvironmentAuthorizationError | import("#t3tools/contracts").TerminalCwdError | import("#t3tools/contracts").TerminalHistoryError | import("#t3tools/contracts").TerminalSessionLookupError | import("#t3tools/contracts").TerminalNotRunningError), never>;
2906
+ readonly "terminal.attach": <const AsQueue extends boolean = false, const Discard = false>(input: {
2907
+ readonly terminalId: string;
2908
+ readonly threadId: string;
2909
+ readonly cwd?: string | undefined;
2910
+ readonly worktreePath?: string | null | undefined;
2911
+ readonly cols?: number | undefined;
2912
+ readonly rows?: number | undefined;
2913
+ readonly env?: {
2914
+ readonly [x: string]: string;
2915
+ } | undefined;
2916
+ readonly restartIfNotRunning?: boolean | undefined;
2917
+ }, options?: {
2918
+ readonly asQueue?: AsQueue | undefined;
2919
+ readonly streamBufferSize?: number | undefined;
2920
+ readonly headers?: import("effect/unstable/http/Headers").Input | undefined;
2921
+ readonly context?: Context.Context<never> | undefined;
2922
+ } | undefined) => AsQueue extends true ? Effect.Effect<import("effect/Queue").Dequeue<{
2923
+ readonly type: "output";
2924
+ readonly data: string;
2925
+ readonly threadId: string;
2926
+ readonly terminalId: string;
2927
+ readonly sequence?: number | undefined;
2928
+ } | {
2929
+ readonly type: "exited";
2930
+ readonly exitCode: number | null;
2931
+ readonly exitSignal: number | null;
2932
+ readonly threadId: string;
2933
+ readonly terminalId: string;
2934
+ readonly sequence?: number | undefined;
2935
+ } | {
2936
+ readonly type: "closed";
2937
+ readonly threadId: string;
2938
+ readonly terminalId: string;
2939
+ readonly sequence?: number | undefined;
2940
+ } | {
2941
+ readonly type: "error";
2942
+ readonly message: string;
2943
+ readonly threadId: string;
2944
+ readonly terminalId: string;
2945
+ readonly sequence?: number | undefined;
2946
+ } | {
2947
+ readonly type: "cleared";
2948
+ readonly threadId: string;
2949
+ readonly terminalId: string;
2950
+ readonly sequence?: number | undefined;
2951
+ } | {
2952
+ readonly type: "restarted";
2953
+ readonly snapshot: {
2954
+ readonly threadId: string;
2955
+ readonly terminalId: string;
2956
+ readonly cwd: string;
2957
+ readonly worktreePath: string | null;
2958
+ readonly status: "error" | "starting" | "running" | "exited";
2959
+ readonly pid: number | null;
2960
+ readonly history: string;
2961
+ readonly exitCode: number | null;
2962
+ readonly exitSignal: number | null;
2963
+ readonly label: string;
2964
+ readonly updatedAt: string;
2965
+ readonly sequence?: number | undefined;
2966
+ };
2967
+ readonly threadId: string;
2968
+ readonly terminalId: string;
2969
+ readonly sequence?: number | undefined;
2970
+ } | {
2971
+ readonly type: "activity";
2972
+ readonly hasRunningSubprocess: boolean;
2973
+ readonly label: string;
2974
+ readonly threadId: string;
2975
+ readonly terminalId: string;
2976
+ readonly sequence?: number | undefined;
2977
+ } | {
2978
+ readonly type: "snapshot";
2979
+ readonly snapshot: {
2980
+ readonly threadId: string;
2981
+ readonly terminalId: string;
2982
+ readonly cwd: string;
2983
+ readonly worktreePath: string | null;
2984
+ readonly status: "error" | "starting" | "running" | "exited";
2985
+ readonly pid: number | null;
2986
+ readonly history: string;
2987
+ readonly exitCode: number | null;
2988
+ readonly exitSignal: number | null;
2989
+ readonly label: string;
2990
+ readonly updatedAt: string;
2991
+ readonly sequence?: number | undefined;
2992
+ };
2993
+ }, import("#t3tools/contracts").EnvironmentAuthorizationError | import("#t3tools/contracts").TerminalCwdError | import("#t3tools/contracts").TerminalHistoryError | import("#t3tools/contracts").TerminalSessionLookupError | import("#t3tools/contracts").TerminalNotRunningError | import("effect/unstable/rpc/RpcClientError").RpcClientError | import("effect/Cause").Done<void>>, never, Scope.Scope> : import("effect/Stream").Stream<{
2994
+ readonly type: "output";
2995
+ readonly data: string;
2996
+ readonly threadId: string;
2997
+ readonly terminalId: string;
2998
+ readonly sequence?: number | undefined;
2999
+ } | {
3000
+ readonly type: "exited";
3001
+ readonly exitCode: number | null;
3002
+ readonly exitSignal: number | null;
3003
+ readonly threadId: string;
3004
+ readonly terminalId: string;
3005
+ readonly sequence?: number | undefined;
3006
+ } | {
3007
+ readonly type: "closed";
3008
+ readonly threadId: string;
3009
+ readonly terminalId: string;
3010
+ readonly sequence?: number | undefined;
3011
+ } | {
3012
+ readonly type: "error";
3013
+ readonly message: string;
3014
+ readonly threadId: string;
3015
+ readonly terminalId: string;
3016
+ readonly sequence?: number | undefined;
3017
+ } | {
3018
+ readonly type: "cleared";
3019
+ readonly threadId: string;
3020
+ readonly terminalId: string;
3021
+ readonly sequence?: number | undefined;
3022
+ } | {
3023
+ readonly type: "restarted";
3024
+ readonly snapshot: {
3025
+ readonly threadId: string;
3026
+ readonly terminalId: string;
3027
+ readonly cwd: string;
3028
+ readonly worktreePath: string | null;
3029
+ readonly status: "error" | "starting" | "running" | "exited";
3030
+ readonly pid: number | null;
3031
+ readonly history: string;
3032
+ readonly exitCode: number | null;
3033
+ readonly exitSignal: number | null;
3034
+ readonly label: string;
3035
+ readonly updatedAt: string;
3036
+ readonly sequence?: number | undefined;
3037
+ };
3038
+ readonly threadId: string;
3039
+ readonly terminalId: string;
3040
+ readonly sequence?: number | undefined;
3041
+ } | {
3042
+ readonly type: "activity";
3043
+ readonly hasRunningSubprocess: boolean;
3044
+ readonly label: string;
3045
+ readonly threadId: string;
3046
+ readonly terminalId: string;
3047
+ readonly sequence?: number | undefined;
3048
+ } | {
3049
+ readonly type: "snapshot";
3050
+ readonly snapshot: {
3051
+ readonly threadId: string;
3052
+ readonly terminalId: string;
3053
+ readonly cwd: string;
3054
+ readonly worktreePath: string | null;
3055
+ readonly status: "error" | "starting" | "running" | "exited";
3056
+ readonly pid: number | null;
3057
+ readonly history: string;
3058
+ readonly exitCode: number | null;
3059
+ readonly exitSignal: number | null;
3060
+ readonly label: string;
3061
+ readonly updatedAt: string;
3062
+ readonly sequence?: number | undefined;
3063
+ };
3064
+ }, import("#t3tools/contracts").EnvironmentAuthorizationError | import("#t3tools/contracts").TerminalCwdError | import("#t3tools/contracts").TerminalHistoryError | import("#t3tools/contracts").TerminalSessionLookupError | import("#t3tools/contracts").TerminalNotRunningError | import("effect/unstable/rpc/RpcClientError").RpcClientError, never>;
3065
+ readonly "terminal.write": <const AsQueue extends boolean = false, const Discard = false>(input: {
3066
+ readonly data: string;
3067
+ readonly terminalId: string;
3068
+ readonly threadId: string;
3069
+ }, options?: {
3070
+ readonly headers?: import("effect/unstable/http/Headers").Input | undefined;
3071
+ readonly context?: Context.Context<never> | undefined;
3072
+ readonly discard?: Discard | undefined;
3073
+ } | undefined) => Effect.Effect<Discard extends true ? void : void, import("effect/unstable/rpc/RpcClientError").RpcClientError | (Discard extends true ? never : import("#t3tools/contracts").EnvironmentAuthorizationError | import("#t3tools/contracts").TerminalCwdError | import("#t3tools/contracts").TerminalHistoryError | import("#t3tools/contracts").TerminalSessionLookupError | import("#t3tools/contracts").TerminalNotRunningError), never>;
3074
+ readonly "terminal.resize": <const AsQueue extends boolean = false, const Discard = false>(input: {
3075
+ readonly cols: number;
3076
+ readonly rows: number;
3077
+ readonly terminalId: string;
3078
+ readonly threadId: string;
3079
+ }, options?: {
3080
+ readonly headers?: import("effect/unstable/http/Headers").Input | undefined;
3081
+ readonly context?: Context.Context<never> | undefined;
3082
+ readonly discard?: Discard | undefined;
3083
+ } | undefined) => Effect.Effect<Discard extends true ? void : void, import("effect/unstable/rpc/RpcClientError").RpcClientError | (Discard extends true ? never : import("#t3tools/contracts").EnvironmentAuthorizationError | import("#t3tools/contracts").TerminalCwdError | import("#t3tools/contracts").TerminalHistoryError | import("#t3tools/contracts").TerminalSessionLookupError | import("#t3tools/contracts").TerminalNotRunningError), never>;
3084
+ readonly "terminal.close": <const AsQueue extends boolean = false, const Discard = false>(input: {
3085
+ readonly threadId: string;
3086
+ readonly terminalId?: string | undefined;
3087
+ readonly deleteHistory?: boolean | undefined;
3088
+ }, options?: {
3089
+ readonly headers?: import("effect/unstable/http/Headers").Input | undefined;
3090
+ readonly context?: Context.Context<never> | undefined;
3091
+ readonly discard?: Discard | undefined;
3092
+ } | undefined) => Effect.Effect<Discard extends true ? void : void, import("effect/unstable/rpc/RpcClientError").RpcClientError | (Discard extends true ? never : import("#t3tools/contracts").EnvironmentAuthorizationError | import("#t3tools/contracts").TerminalCwdError | import("#t3tools/contracts").TerminalHistoryError | import("#t3tools/contracts").TerminalSessionLookupError | import("#t3tools/contracts").TerminalNotRunningError), never>;
2579
3093
  readonly "orchestration.dispatchCommand": <const AsQueue extends boolean = false, const Discard = false>(input: {
2580
3094
  readonly type: "project.create";
2581
3095
  readonly commandId: string & import("effect/Brand").Brand<"CommandId">;
@@ -2709,20 +3223,6 @@ export declare const makeT3RpcLayer: () => Effect.Effect<{
2709
3223
  readonly commandId: string & import("effect/Brand").Brand<"CommandId">;
2710
3224
  readonly threadId: string & import("effect/Brand").Brand<"ThreadId">;
2711
3225
  readonly createdAt: string;
2712
- } | {
2713
- readonly type: "thread.goal.request";
2714
- readonly commandId: string & import("effect/Brand").Brand<"CommandId">;
2715
- readonly threadId: string & import("effect/Brand").Brand<"ThreadId">;
2716
- readonly request: {
2717
- readonly kind: "status";
2718
- } | {
2719
- readonly kind: "control";
2720
- readonly action: "pause" | "resume" | "clear";
2721
- } | {
2722
- readonly kind: "set";
2723
- readonly objective: string;
2724
- };
2725
- readonly createdAt: string;
2726
3226
  } | {
2727
3227
  readonly type: "thread.turn.start";
2728
3228
  readonly commandId: string & import("effect/Brand").Brand<"CommandId">;
@@ -2764,29 +3264,118 @@ export declare const makeT3RpcLayer: () => Effect.Effect<{
2764
3264
  }[];
2765
3265
  };
2766
3266
  readonly runtimeMode: "approval-required" | "auto-accept-edits" | "full-access";
2767
- readonly interactionMode: "default" | "plan";
2768
- readonly branch: string | null;
2769
- readonly worktreePath: string | null;
2770
- readonly createdAt: string;
2771
- } | undefined;
2772
- readonly prepareWorktree?: {
2773
- readonly projectCwd: string;
2774
- readonly baseBranch: string;
2775
- readonly branch?: string | undefined;
2776
- } | undefined;
2777
- readonly runSetupScript?: boolean | undefined;
2778
- } | undefined;
2779
- readonly sourceProposedPlan?: {
2780
- readonly threadId: string & import("effect/Brand").Brand<"ThreadId">;
2781
- readonly planId: string;
2782
- } | undefined;
2783
- }, options?: {
2784
- readonly headers?: import("effect/unstable/http/Headers").Input | undefined;
2785
- readonly context?: Context.Context<never> | undefined;
2786
- readonly discard?: Discard | undefined;
2787
- } | undefined) => Effect.Effect<Discard extends true ? void : {
2788
- readonly sequence: number;
2789
- }, import("effect/unstable/rpc/RpcClientError").RpcClientError | (Discard extends true ? never : import("#t3tools/contracts").EnvironmentAuthorizationError | import("#t3tools/contracts").OrchestrationDispatchCommandError), never>;
3267
+ readonly interactionMode: "default" | "plan";
3268
+ readonly branch: string | null;
3269
+ readonly worktreePath: string | null;
3270
+ readonly createdAt: string;
3271
+ } | undefined;
3272
+ readonly prepareWorktree?: {
3273
+ readonly projectCwd: string;
3274
+ readonly baseBranch: string;
3275
+ readonly branch?: string | undefined;
3276
+ } | undefined;
3277
+ readonly runSetupScript?: boolean | undefined;
3278
+ } | undefined;
3279
+ readonly sourceProposedPlan?: {
3280
+ readonly threadId: string & import("effect/Brand").Brand<"ThreadId">;
3281
+ readonly planId: string;
3282
+ } | undefined;
3283
+ }, options?: {
3284
+ readonly headers?: import("effect/unstable/http/Headers").Input | undefined;
3285
+ readonly context?: Context.Context<never> | undefined;
3286
+ readonly discard?: Discard | undefined;
3287
+ } | undefined) => Effect.Effect<Discard extends true ? void : {
3288
+ readonly sequence: number;
3289
+ }, import("effect/unstable/rpc/RpcClientError").RpcClientError | (Discard extends true ? never : import("#t3tools/contracts").EnvironmentAuthorizationError | import("#t3tools/contracts").OrchestrationDispatchCommandError), never>;
3290
+ readonly "orchestration.getArchivedShellSnapshot": <const AsQueue extends boolean = false, const Discard = false>(input: {}, options?: {
3291
+ readonly headers?: import("effect/unstable/http/Headers").Input | undefined;
3292
+ readonly context?: Context.Context<never> | undefined;
3293
+ readonly discard?: Discard | undefined;
3294
+ } | undefined) => Effect.Effect<Discard extends true ? void : {
3295
+ readonly snapshotSequence: number;
3296
+ readonly projects: readonly {
3297
+ readonly id: string & import("effect/Brand").Brand<"ProjectId">;
3298
+ readonly title: string;
3299
+ readonly workspaceRoot: string;
3300
+ readonly defaultModelSelection: {
3301
+ readonly instanceId: string & import("effect/Brand").Brand<"ProviderInstanceId">;
3302
+ readonly model: string;
3303
+ readonly options?: readonly {
3304
+ readonly id: string;
3305
+ readonly value: string | boolean;
3306
+ }[];
3307
+ } | null;
3308
+ readonly scripts: readonly {
3309
+ readonly id: string;
3310
+ readonly name: string;
3311
+ readonly command: string;
3312
+ readonly icon: "play" | "test" | "lint" | "configure" | "build" | "debug";
3313
+ readonly runOnWorktreeCreate: boolean;
3314
+ }[];
3315
+ readonly createdAt: string;
3316
+ readonly updatedAt: string;
3317
+ readonly repositoryIdentity?: {
3318
+ readonly canonicalKey: string;
3319
+ readonly locator: {
3320
+ readonly source: "git-remote";
3321
+ readonly remoteName: string;
3322
+ readonly remoteUrl: string;
3323
+ };
3324
+ readonly rootPath?: string;
3325
+ readonly displayName?: string;
3326
+ readonly provider?: string;
3327
+ readonly owner?: string;
3328
+ readonly name?: string;
3329
+ } | null | undefined;
3330
+ }[];
3331
+ readonly threads: readonly {
3332
+ readonly id: string & import("effect/Brand").Brand<"ThreadId">;
3333
+ readonly projectId: string & import("effect/Brand").Brand<"ProjectId">;
3334
+ readonly title: string;
3335
+ readonly modelSelection: {
3336
+ readonly instanceId: string & import("effect/Brand").Brand<"ProviderInstanceId">;
3337
+ readonly model: string;
3338
+ readonly options?: readonly {
3339
+ readonly id: string;
3340
+ readonly value: string | boolean;
3341
+ }[];
3342
+ };
3343
+ readonly runtimeMode: "approval-required" | "auto-accept-edits" | "full-access";
3344
+ readonly interactionMode: "default" | "plan";
3345
+ readonly branch: string | null;
3346
+ readonly worktreePath: string | null;
3347
+ readonly latestTurn: {
3348
+ readonly turnId: string & import("effect/Brand").Brand<"TurnId">;
3349
+ readonly state: "error" | "running" | "interrupted" | "completed";
3350
+ readonly requestedAt: string;
3351
+ readonly startedAt: string | null;
3352
+ readonly completedAt: string | null;
3353
+ readonly assistantMessageId: (string & import("effect/Brand").Brand<"MessageId">) | null;
3354
+ readonly sourceProposedPlan?: {
3355
+ readonly threadId: string & import("effect/Brand").Brand<"ThreadId">;
3356
+ readonly planId: string;
3357
+ } | undefined;
3358
+ } | null;
3359
+ readonly createdAt: string;
3360
+ readonly updatedAt: string;
3361
+ readonly archivedAt: string | null;
3362
+ readonly session: {
3363
+ readonly threadId: string & import("effect/Brand").Brand<"ThreadId">;
3364
+ readonly status: "error" | "idle" | "starting" | "running" | "ready" | "interrupted" | "stopped";
3365
+ readonly providerName: string | null;
3366
+ readonly runtimeMode: "approval-required" | "auto-accept-edits" | "full-access";
3367
+ readonly activeTurnId: (string & import("effect/Brand").Brand<"TurnId">) | null;
3368
+ readonly lastError: string | null;
3369
+ readonly updatedAt: string;
3370
+ readonly providerInstanceId?: (string & import("effect/Brand").Brand<"ProviderInstanceId">) | undefined;
3371
+ } | null;
3372
+ readonly latestUserMessageAt: string | null;
3373
+ readonly hasPendingApprovals: boolean;
3374
+ readonly hasPendingUserInput: boolean;
3375
+ readonly hasActionableProposedPlan: boolean;
3376
+ }[];
3377
+ readonly updatedAt: string;
3378
+ }, import("effect/unstable/rpc/RpcClientError").RpcClientError | (Discard extends true ? never : import("#t3tools/contracts").EnvironmentAuthorizationError | import("#t3tools/contracts").OrchestrationGetSnapshotError), never>;
2790
3379
  readonly "orchestration.subscribeShell": <const AsQueue extends boolean = false, const Discard = false>(input: {}, options?: {
2791
3380
  readonly asQueue?: AsQueue | undefined;
2792
3381
  readonly streamBufferSize?: number | undefined;
@@ -2878,15 +3467,6 @@ export declare const makeT3RpcLayer: () => Effect.Effect<{
2878
3467
  readonly updatedAt: string;
2879
3468
  readonly providerInstanceId?: (string & import("effect/Brand").Brand<"ProviderInstanceId">) | undefined;
2880
3469
  } | null;
2881
- readonly goal: {
2882
- readonly objective: string;
2883
- readonly status: "active" | "paused" | "budgetLimited" | "complete";
2884
- readonly tokensUsed: number;
2885
- readonly tokenBudget: number | null;
2886
- readonly timeUsedSeconds: number;
2887
- readonly createdAt: string;
2888
- readonly updatedAt: string;
2889
- } | null;
2890
3470
  readonly latestUserMessageAt: string | null;
2891
3471
  readonly hasPendingApprovals: boolean;
2892
3472
  readonly hasPendingUserInput: boolean;
@@ -2976,15 +3556,6 @@ export declare const makeT3RpcLayer: () => Effect.Effect<{
2976
3556
  readonly updatedAt: string;
2977
3557
  readonly providerInstanceId?: (string & import("effect/Brand").Brand<"ProviderInstanceId">) | undefined;
2978
3558
  } | null;
2979
- readonly goal: {
2980
- readonly objective: string;
2981
- readonly status: "active" | "paused" | "budgetLimited" | "complete";
2982
- readonly tokensUsed: number;
2983
- readonly tokenBudget: number | null;
2984
- readonly timeUsedSeconds: number;
2985
- readonly createdAt: string;
2986
- readonly updatedAt: string;
2987
- } | null;
2988
3559
  readonly latestUserMessageAt: string | null;
2989
3560
  readonly hasPendingApprovals: boolean;
2990
3561
  readonly hasPendingUserInput: boolean;
@@ -3078,15 +3649,6 @@ export declare const makeT3RpcLayer: () => Effect.Effect<{
3078
3649
  readonly updatedAt: string;
3079
3650
  readonly providerInstanceId?: (string & import("effect/Brand").Brand<"ProviderInstanceId">) | undefined;
3080
3651
  } | null;
3081
- readonly goal: {
3082
- readonly objective: string;
3083
- readonly status: "active" | "paused" | "budgetLimited" | "complete";
3084
- readonly tokensUsed: number;
3085
- readonly tokenBudget: number | null;
3086
- readonly timeUsedSeconds: number;
3087
- readonly createdAt: string;
3088
- readonly updatedAt: string;
3089
- } | null;
3090
3652
  readonly latestUserMessageAt: string | null;
3091
3653
  readonly hasPendingApprovals: boolean;
3092
3654
  readonly hasPendingUserInput: boolean;
@@ -3176,15 +3738,6 @@ export declare const makeT3RpcLayer: () => Effect.Effect<{
3176
3738
  readonly updatedAt: string;
3177
3739
  readonly providerInstanceId?: (string & import("effect/Brand").Brand<"ProviderInstanceId">) | undefined;
3178
3740
  } | null;
3179
- readonly goal: {
3180
- readonly objective: string;
3181
- readonly status: "active" | "paused" | "budgetLimited" | "complete";
3182
- readonly tokensUsed: number;
3183
- readonly tokenBudget: number | null;
3184
- readonly timeUsedSeconds: number;
3185
- readonly createdAt: string;
3186
- readonly updatedAt: string;
3187
- } | null;
3188
3741
  readonly latestUserMessageAt: string | null;
3189
3742
  readonly hasPendingApprovals: boolean;
3190
3743
  readonly hasPendingUserInput: boolean;
@@ -3236,15 +3789,6 @@ export declare const makeT3RpcLayer: () => Effect.Effect<{
3236
3789
  readonly updatedAt: string;
3237
3790
  readonly archivedAt: string | null;
3238
3791
  readonly deletedAt: string | null;
3239
- readonly goal: {
3240
- readonly objective: string;
3241
- readonly status: "active" | "paused" | "budgetLimited" | "complete";
3242
- readonly tokensUsed: number;
3243
- readonly tokenBudget: number | null;
3244
- readonly timeUsedSeconds: number;
3245
- readonly createdAt: string;
3246
- readonly updatedAt: string;
3247
- } | null;
3248
3792
  readonly messages: readonly {
3249
3793
  readonly id: string & import("effect/Brand").Brand<"MessageId">;
3250
3794
  readonly role: "user" | "assistant" | "system";
@@ -3843,85 +4387,6 @@ export declare const makeT3RpcLayer: () => Effect.Effect<{
3843
4387
  readonly requestId?: (string & import("effect/Brand").Brand<"ApprovalRequestId">) | undefined;
3844
4388
  readonly ingestedAt?: string | undefined;
3845
4389
  };
3846
- } | {
3847
- readonly type: "thread.goal-requested";
3848
- readonly payload: {
3849
- readonly threadId: string & import("effect/Brand").Brand<"ThreadId">;
3850
- readonly request: {
3851
- readonly kind: "status";
3852
- } | {
3853
- readonly kind: "control";
3854
- readonly action: "pause" | "resume" | "clear";
3855
- } | {
3856
- readonly kind: "set";
3857
- readonly objective: string;
3858
- };
3859
- readonly createdAt: string;
3860
- };
3861
- readonly sequence: number;
3862
- readonly eventId: string & import("effect/Brand").Brand<"EventId">;
3863
- readonly aggregateKind: "project" | "thread";
3864
- readonly aggregateId: (string & import("effect/Brand").Brand<"ThreadId">) | (string & import("effect/Brand").Brand<"ProjectId">);
3865
- readonly occurredAt: string;
3866
- readonly commandId: (string & import("effect/Brand").Brand<"CommandId">) | null;
3867
- readonly causationEventId: (string & import("effect/Brand").Brand<"EventId">) | null;
3868
- readonly correlationId: (string & import("effect/Brand").Brand<"CommandId">) | null;
3869
- readonly metadata: {
3870
- readonly providerTurnId?: string | undefined;
3871
- readonly providerItemId?: (string & import("effect/Brand").Brand<"ProviderItemId">) | undefined;
3872
- readonly adapterKey?: string | undefined;
3873
- readonly requestId?: (string & import("effect/Brand").Brand<"ApprovalRequestId">) | undefined;
3874
- readonly ingestedAt?: string | undefined;
3875
- };
3876
- } | {
3877
- readonly type: "thread.goal-updated";
3878
- readonly payload: {
3879
- readonly threadId: string & import("effect/Brand").Brand<"ThreadId">;
3880
- readonly goal: {
3881
- readonly objective: string;
3882
- readonly status: "active" | "paused" | "budgetLimited" | "complete";
3883
- readonly tokensUsed: number;
3884
- readonly tokenBudget: number | null;
3885
- readonly timeUsedSeconds: number;
3886
- readonly createdAt: string;
3887
- readonly updatedAt: string;
3888
- };
3889
- };
3890
- readonly sequence: number;
3891
- readonly eventId: string & import("effect/Brand").Brand<"EventId">;
3892
- readonly aggregateKind: "project" | "thread";
3893
- readonly aggregateId: (string & import("effect/Brand").Brand<"ThreadId">) | (string & import("effect/Brand").Brand<"ProjectId">);
3894
- readonly occurredAt: string;
3895
- readonly commandId: (string & import("effect/Brand").Brand<"CommandId">) | null;
3896
- readonly causationEventId: (string & import("effect/Brand").Brand<"EventId">) | null;
3897
- readonly correlationId: (string & import("effect/Brand").Brand<"CommandId">) | null;
3898
- readonly metadata: {
3899
- readonly providerTurnId?: string | undefined;
3900
- readonly providerItemId?: (string & import("effect/Brand").Brand<"ProviderItemId">) | undefined;
3901
- readonly adapterKey?: string | undefined;
3902
- readonly requestId?: (string & import("effect/Brand").Brand<"ApprovalRequestId">) | undefined;
3903
- readonly ingestedAt?: string | undefined;
3904
- };
3905
- } | {
3906
- readonly type: "thread.goal-cleared";
3907
- readonly payload: {
3908
- readonly threadId: string & import("effect/Brand").Brand<"ThreadId">;
3909
- };
3910
- readonly sequence: number;
3911
- readonly eventId: string & import("effect/Brand").Brand<"EventId">;
3912
- readonly aggregateKind: "project" | "thread";
3913
- readonly aggregateId: (string & import("effect/Brand").Brand<"ThreadId">) | (string & import("effect/Brand").Brand<"ProjectId">);
3914
- readonly occurredAt: string;
3915
- readonly commandId: (string & import("effect/Brand").Brand<"CommandId">) | null;
3916
- readonly causationEventId: (string & import("effect/Brand").Brand<"EventId">) | null;
3917
- readonly correlationId: (string & import("effect/Brand").Brand<"CommandId">) | null;
3918
- readonly metadata: {
3919
- readonly providerTurnId?: string | undefined;
3920
- readonly providerItemId?: (string & import("effect/Brand").Brand<"ProviderItemId">) | undefined;
3921
- readonly adapterKey?: string | undefined;
3922
- readonly requestId?: (string & import("effect/Brand").Brand<"ApprovalRequestId">) | undefined;
3923
- readonly ingestedAt?: string | undefined;
3924
- };
3925
4390
  } | {
3926
4391
  readonly type: "thread.proposed-plan-upserted";
3927
4392
  readonly payload: {
@@ -4050,15 +4515,6 @@ export declare const makeT3RpcLayer: () => Effect.Effect<{
4050
4515
  readonly updatedAt: string;
4051
4516
  readonly archivedAt: string | null;
4052
4517
  readonly deletedAt: string | null;
4053
- readonly goal: {
4054
- readonly objective: string;
4055
- readonly status: "active" | "paused" | "budgetLimited" | "complete";
4056
- readonly tokensUsed: number;
4057
- readonly tokenBudget: number | null;
4058
- readonly timeUsedSeconds: number;
4059
- readonly createdAt: string;
4060
- readonly updatedAt: string;
4061
- } | null;
4062
4518
  readonly messages: readonly {
4063
4519
  readonly id: string & import("effect/Brand").Brand<"MessageId">;
4064
4520
  readonly role: "user" | "assistant" | "system";
@@ -4657,85 +5113,6 @@ export declare const makeT3RpcLayer: () => Effect.Effect<{
4657
5113
  readonly requestId?: (string & import("effect/Brand").Brand<"ApprovalRequestId">) | undefined;
4658
5114
  readonly ingestedAt?: string | undefined;
4659
5115
  };
4660
- } | {
4661
- readonly type: "thread.goal-requested";
4662
- readonly payload: {
4663
- readonly threadId: string & import("effect/Brand").Brand<"ThreadId">;
4664
- readonly request: {
4665
- readonly kind: "status";
4666
- } | {
4667
- readonly kind: "control";
4668
- readonly action: "pause" | "resume" | "clear";
4669
- } | {
4670
- readonly kind: "set";
4671
- readonly objective: string;
4672
- };
4673
- readonly createdAt: string;
4674
- };
4675
- readonly sequence: number;
4676
- readonly eventId: string & import("effect/Brand").Brand<"EventId">;
4677
- readonly aggregateKind: "project" | "thread";
4678
- readonly aggregateId: (string & import("effect/Brand").Brand<"ThreadId">) | (string & import("effect/Brand").Brand<"ProjectId">);
4679
- readonly occurredAt: string;
4680
- readonly commandId: (string & import("effect/Brand").Brand<"CommandId">) | null;
4681
- readonly causationEventId: (string & import("effect/Brand").Brand<"EventId">) | null;
4682
- readonly correlationId: (string & import("effect/Brand").Brand<"CommandId">) | null;
4683
- readonly metadata: {
4684
- readonly providerTurnId?: string | undefined;
4685
- readonly providerItemId?: (string & import("effect/Brand").Brand<"ProviderItemId">) | undefined;
4686
- readonly adapterKey?: string | undefined;
4687
- readonly requestId?: (string & import("effect/Brand").Brand<"ApprovalRequestId">) | undefined;
4688
- readonly ingestedAt?: string | undefined;
4689
- };
4690
- } | {
4691
- readonly type: "thread.goal-updated";
4692
- readonly payload: {
4693
- readonly threadId: string & import("effect/Brand").Brand<"ThreadId">;
4694
- readonly goal: {
4695
- readonly objective: string;
4696
- readonly status: "active" | "paused" | "budgetLimited" | "complete";
4697
- readonly tokensUsed: number;
4698
- readonly tokenBudget: number | null;
4699
- readonly timeUsedSeconds: number;
4700
- readonly createdAt: string;
4701
- readonly updatedAt: string;
4702
- };
4703
- };
4704
- readonly sequence: number;
4705
- readonly eventId: string & import("effect/Brand").Brand<"EventId">;
4706
- readonly aggregateKind: "project" | "thread";
4707
- readonly aggregateId: (string & import("effect/Brand").Brand<"ThreadId">) | (string & import("effect/Brand").Brand<"ProjectId">);
4708
- readonly occurredAt: string;
4709
- readonly commandId: (string & import("effect/Brand").Brand<"CommandId">) | null;
4710
- readonly causationEventId: (string & import("effect/Brand").Brand<"EventId">) | null;
4711
- readonly correlationId: (string & import("effect/Brand").Brand<"CommandId">) | null;
4712
- readonly metadata: {
4713
- readonly providerTurnId?: string | undefined;
4714
- readonly providerItemId?: (string & import("effect/Brand").Brand<"ProviderItemId">) | undefined;
4715
- readonly adapterKey?: string | undefined;
4716
- readonly requestId?: (string & import("effect/Brand").Brand<"ApprovalRequestId">) | undefined;
4717
- readonly ingestedAt?: string | undefined;
4718
- };
4719
- } | {
4720
- readonly type: "thread.goal-cleared";
4721
- readonly payload: {
4722
- readonly threadId: string & import("effect/Brand").Brand<"ThreadId">;
4723
- };
4724
- readonly sequence: number;
4725
- readonly eventId: string & import("effect/Brand").Brand<"EventId">;
4726
- readonly aggregateKind: "project" | "thread";
4727
- readonly aggregateId: (string & import("effect/Brand").Brand<"ThreadId">) | (string & import("effect/Brand").Brand<"ProjectId">);
4728
- readonly occurredAt: string;
4729
- readonly commandId: (string & import("effect/Brand").Brand<"CommandId">) | null;
4730
- readonly causationEventId: (string & import("effect/Brand").Brand<"EventId">) | null;
4731
- readonly correlationId: (string & import("effect/Brand").Brand<"CommandId">) | null;
4732
- readonly metadata: {
4733
- readonly providerTurnId?: string | undefined;
4734
- readonly providerItemId?: (string & import("effect/Brand").Brand<"ProviderItemId">) | undefined;
4735
- readonly adapterKey?: string | undefined;
4736
- readonly requestId?: (string & import("effect/Brand").Brand<"ApprovalRequestId">) | undefined;
4737
- readonly ingestedAt?: string | undefined;
4738
- };
4739
5116
  } | {
4740
5117
  readonly type: "thread.proposed-plan-upserted";
4741
5118
  readonly payload: {
@@ -4829,6 +5206,234 @@ export declare const makeT3RpcLayer: () => Effect.Effect<{
4829
5206
  };
4830
5207
  };
4831
5208
  }, import("#t3tools/contracts").EnvironmentAuthorizationError | import("#t3tools/contracts").OrchestrationGetSnapshotError | import("effect/unstable/rpc/RpcClientError").RpcClientError, never>;
5209
+ readonly subscribeTerminalEvents: <const AsQueue extends boolean = false, const Discard = false>(input: {}, options?: {
5210
+ readonly asQueue?: AsQueue | undefined;
5211
+ readonly streamBufferSize?: number | undefined;
5212
+ readonly headers?: import("effect/unstable/http/Headers").Input | undefined;
5213
+ readonly context?: Context.Context<never> | undefined;
5214
+ } | undefined) => AsQueue extends true ? Effect.Effect<import("effect/Queue").Dequeue<{
5215
+ readonly type: "started";
5216
+ readonly snapshot: {
5217
+ readonly threadId: string;
5218
+ readonly terminalId: string;
5219
+ readonly cwd: string;
5220
+ readonly worktreePath: string | null;
5221
+ readonly status: "error" | "starting" | "running" | "exited";
5222
+ readonly pid: number | null;
5223
+ readonly history: string;
5224
+ readonly exitCode: number | null;
5225
+ readonly exitSignal: number | null;
5226
+ readonly label: string;
5227
+ readonly updatedAt: string;
5228
+ readonly sequence?: number | undefined;
5229
+ };
5230
+ readonly threadId: string;
5231
+ readonly terminalId: string;
5232
+ readonly sequence?: number | undefined;
5233
+ } | {
5234
+ readonly type: "output";
5235
+ readonly data: string;
5236
+ readonly threadId: string;
5237
+ readonly terminalId: string;
5238
+ readonly sequence?: number | undefined;
5239
+ } | {
5240
+ readonly type: "exited";
5241
+ readonly exitCode: number | null;
5242
+ readonly exitSignal: number | null;
5243
+ readonly threadId: string;
5244
+ readonly terminalId: string;
5245
+ readonly sequence?: number | undefined;
5246
+ } | {
5247
+ readonly type: "closed";
5248
+ readonly threadId: string;
5249
+ readonly terminalId: string;
5250
+ readonly sequence?: number | undefined;
5251
+ } | {
5252
+ readonly type: "error";
5253
+ readonly message: string;
5254
+ readonly threadId: string;
5255
+ readonly terminalId: string;
5256
+ readonly sequence?: number | undefined;
5257
+ } | {
5258
+ readonly type: "cleared";
5259
+ readonly threadId: string;
5260
+ readonly terminalId: string;
5261
+ readonly sequence?: number | undefined;
5262
+ } | {
5263
+ readonly type: "restarted";
5264
+ readonly snapshot: {
5265
+ readonly threadId: string;
5266
+ readonly terminalId: string;
5267
+ readonly cwd: string;
5268
+ readonly worktreePath: string | null;
5269
+ readonly status: "error" | "starting" | "running" | "exited";
5270
+ readonly pid: number | null;
5271
+ readonly history: string;
5272
+ readonly exitCode: number | null;
5273
+ readonly exitSignal: number | null;
5274
+ readonly label: string;
5275
+ readonly updatedAt: string;
5276
+ readonly sequence?: number | undefined;
5277
+ };
5278
+ readonly threadId: string;
5279
+ readonly terminalId: string;
5280
+ readonly sequence?: number | undefined;
5281
+ } | {
5282
+ readonly type: "activity";
5283
+ readonly hasRunningSubprocess: boolean;
5284
+ readonly label: string;
5285
+ readonly threadId: string;
5286
+ readonly terminalId: string;
5287
+ readonly sequence?: number | undefined;
5288
+ }, import("#t3tools/contracts").EnvironmentAuthorizationError | import("effect/unstable/rpc/RpcClientError").RpcClientError | import("effect/Cause").Done<void>>, never, Scope.Scope> : import("effect/Stream").Stream<{
5289
+ readonly type: "started";
5290
+ readonly snapshot: {
5291
+ readonly threadId: string;
5292
+ readonly terminalId: string;
5293
+ readonly cwd: string;
5294
+ readonly worktreePath: string | null;
5295
+ readonly status: "error" | "starting" | "running" | "exited";
5296
+ readonly pid: number | null;
5297
+ readonly history: string;
5298
+ readonly exitCode: number | null;
5299
+ readonly exitSignal: number | null;
5300
+ readonly label: string;
5301
+ readonly updatedAt: string;
5302
+ readonly sequence?: number | undefined;
5303
+ };
5304
+ readonly threadId: string;
5305
+ readonly terminalId: string;
5306
+ readonly sequence?: number | undefined;
5307
+ } | {
5308
+ readonly type: "output";
5309
+ readonly data: string;
5310
+ readonly threadId: string;
5311
+ readonly terminalId: string;
5312
+ readonly sequence?: number | undefined;
5313
+ } | {
5314
+ readonly type: "exited";
5315
+ readonly exitCode: number | null;
5316
+ readonly exitSignal: number | null;
5317
+ readonly threadId: string;
5318
+ readonly terminalId: string;
5319
+ readonly sequence?: number | undefined;
5320
+ } | {
5321
+ readonly type: "closed";
5322
+ readonly threadId: string;
5323
+ readonly terminalId: string;
5324
+ readonly sequence?: number | undefined;
5325
+ } | {
5326
+ readonly type: "error";
5327
+ readonly message: string;
5328
+ readonly threadId: string;
5329
+ readonly terminalId: string;
5330
+ readonly sequence?: number | undefined;
5331
+ } | {
5332
+ readonly type: "cleared";
5333
+ readonly threadId: string;
5334
+ readonly terminalId: string;
5335
+ readonly sequence?: number | undefined;
5336
+ } | {
5337
+ readonly type: "restarted";
5338
+ readonly snapshot: {
5339
+ readonly threadId: string;
5340
+ readonly terminalId: string;
5341
+ readonly cwd: string;
5342
+ readonly worktreePath: string | null;
5343
+ readonly status: "error" | "starting" | "running" | "exited";
5344
+ readonly pid: number | null;
5345
+ readonly history: string;
5346
+ readonly exitCode: number | null;
5347
+ readonly exitSignal: number | null;
5348
+ readonly label: string;
5349
+ readonly updatedAt: string;
5350
+ readonly sequence?: number | undefined;
5351
+ };
5352
+ readonly threadId: string;
5353
+ readonly terminalId: string;
5354
+ readonly sequence?: number | undefined;
5355
+ } | {
5356
+ readonly type: "activity";
5357
+ readonly hasRunningSubprocess: boolean;
5358
+ readonly label: string;
5359
+ readonly threadId: string;
5360
+ readonly terminalId: string;
5361
+ readonly sequence?: number | undefined;
5362
+ }, import("#t3tools/contracts").EnvironmentAuthorizationError | import("effect/unstable/rpc/RpcClientError").RpcClientError, never>;
5363
+ readonly subscribeTerminalMetadata: <const AsQueue extends boolean = false, const Discard = false>(input: {}, options?: {
5364
+ readonly asQueue?: AsQueue | undefined;
5365
+ readonly streamBufferSize?: number | undefined;
5366
+ readonly headers?: import("effect/unstable/http/Headers").Input | undefined;
5367
+ readonly context?: Context.Context<never> | undefined;
5368
+ } | undefined) => AsQueue extends true ? Effect.Effect<import("effect/Queue").Dequeue<{
5369
+ readonly type: "snapshot";
5370
+ readonly terminals: readonly {
5371
+ readonly threadId: string;
5372
+ readonly terminalId: string;
5373
+ readonly cwd: string;
5374
+ readonly worktreePath: string | null;
5375
+ readonly status: "error" | "starting" | "running" | "exited";
5376
+ readonly pid: number | null;
5377
+ readonly exitCode: number | null;
5378
+ readonly exitSignal: number | null;
5379
+ readonly hasRunningSubprocess: boolean;
5380
+ readonly label: string;
5381
+ readonly updatedAt: string;
5382
+ }[];
5383
+ } | {
5384
+ readonly type: "upsert";
5385
+ readonly terminal: {
5386
+ readonly threadId: string;
5387
+ readonly terminalId: string;
5388
+ readonly cwd: string;
5389
+ readonly worktreePath: string | null;
5390
+ readonly status: "error" | "starting" | "running" | "exited";
5391
+ readonly pid: number | null;
5392
+ readonly exitCode: number | null;
5393
+ readonly exitSignal: number | null;
5394
+ readonly hasRunningSubprocess: boolean;
5395
+ readonly label: string;
5396
+ readonly updatedAt: string;
5397
+ };
5398
+ } | {
5399
+ readonly type: "remove";
5400
+ readonly threadId: string;
5401
+ readonly terminalId: string;
5402
+ }, import("#t3tools/contracts").EnvironmentAuthorizationError | import("effect/unstable/rpc/RpcClientError").RpcClientError | import("effect/Cause").Done<void>>, never, Scope.Scope> : import("effect/Stream").Stream<{
5403
+ readonly type: "snapshot";
5404
+ readonly terminals: readonly {
5405
+ readonly threadId: string;
5406
+ readonly terminalId: string;
5407
+ readonly cwd: string;
5408
+ readonly worktreePath: string | null;
5409
+ readonly status: "error" | "starting" | "running" | "exited";
5410
+ readonly pid: number | null;
5411
+ readonly exitCode: number | null;
5412
+ readonly exitSignal: number | null;
5413
+ readonly hasRunningSubprocess: boolean;
5414
+ readonly label: string;
5415
+ readonly updatedAt: string;
5416
+ }[];
5417
+ } | {
5418
+ readonly type: "upsert";
5419
+ readonly terminal: {
5420
+ readonly threadId: string;
5421
+ readonly terminalId: string;
5422
+ readonly cwd: string;
5423
+ readonly worktreePath: string | null;
5424
+ readonly status: "error" | "starting" | "running" | "exited";
5425
+ readonly pid: number | null;
5426
+ readonly exitCode: number | null;
5427
+ readonly exitSignal: number | null;
5428
+ readonly hasRunningSubprocess: boolean;
5429
+ readonly label: string;
5430
+ readonly updatedAt: string;
5431
+ };
5432
+ } | {
5433
+ readonly type: "remove";
5434
+ readonly threadId: string;
5435
+ readonly terminalId: string;
5436
+ }, import("#t3tools/contracts").EnvironmentAuthorizationError | import("effect/unstable/rpc/RpcClientError").RpcClientError, never>;
4832
5437
  readonly "server.getConfig": <const AsQueue extends boolean = false, const Discard = false>(input: {}, options?: {
4833
5438
  readonly headers?: import("effect/unstable/http/Headers").Input | undefined;
4834
5439
  readonly context?: Context.Context<never> | undefined;
@@ -4954,7 +5559,6 @@ export declare const makeT3RpcLayer: () => Effect.Effect<{
4954
5559
  readonly groupKey: string;
4955
5560
  } | undefined;
4956
5561
  readonly showInteractionModeToggle?: boolean | undefined;
4957
- readonly requiresNewThreadForModelChange?: boolean | undefined;
4958
5562
  readonly message?: string | undefined;
4959
5563
  readonly availability?: "available" | "unavailable" | undefined;
4960
5564
  readonly unavailableReason?: string | undefined;
@@ -5018,11 +5622,6 @@ export declare const makeT3RpcLayer: () => Effect.Effect<{
5018
5622
  readonly apiEndpoint: string;
5019
5623
  readonly customModels: readonly string[];
5020
5624
  };
5021
- readonly grok: {
5022
- readonly enabled: boolean;
5023
- readonly binaryPath: string;
5024
- readonly customModels: readonly string[];
5025
- };
5026
5625
  readonly opencode: {
5027
5626
  readonly enabled: boolean;
5028
5627
  readonly binaryPath: string;
@@ -5118,7 +5717,6 @@ export declare const makeT3RpcLayer: () => Effect.Effect<{
5118
5717
  readonly groupKey: string;
5119
5718
  } | undefined;
5120
5719
  readonly showInteractionModeToggle?: boolean | undefined;
5121
- readonly requiresNewThreadForModelChange?: boolean | undefined;
5122
5720
  readonly message?: string | undefined;
5123
5721
  readonly availability?: "available" | "unavailable" | undefined;
5124
5722
  readonly unavailableReason?: string | undefined;