t3code-cli 0.12.0 → 0.13.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 (64) hide show
  1. package/dist/application.js +1 -1
  2. package/dist/auth.js +1 -1
  3. package/dist/bin.js +48 -31
  4. package/dist/cli.js +1 -1
  5. package/dist/config.js +1 -1
  6. package/dist/connection.js +1 -1
  7. package/dist/index.js +1 -1
  8. package/dist/node.js +1 -1
  9. package/dist/rolldown-runtime.js +1 -1
  10. package/dist/rpc.js +1 -1
  11. package/dist/shared.js +11971 -1517
  12. package/dist/src/application/actions.d.ts +1 -1
  13. package/dist/src/application/layer.d.ts +42 -42
  14. package/dist/src/application/project-commands.d.ts +3 -3
  15. package/dist/src/application/projects.d.ts +1 -1
  16. package/dist/src/application/shell-sequence.d.ts +23 -28
  17. package/dist/src/application/terminals.d.ts +6 -6
  18. package/dist/src/application/thread-commands.d.ts +18 -18
  19. package/dist/src/application/thread-update.d.ts +1 -1
  20. package/dist/src/application/thread-wait.d.ts +19 -24
  21. package/dist/src/application/threads.d.ts +124 -149
  22. package/dist/src/auth/error.d.ts +1 -2
  23. package/dist/src/auth/layer.d.ts +2 -2
  24. package/dist/src/auth/local-origin.d.ts +2 -2
  25. package/dist/src/auth/local-token.d.ts +2 -2
  26. package/dist/src/auth/remote-error.d.ts +3 -0
  27. package/dist/src/config/config.d.ts +2 -2
  28. package/dist/src/config/credential/service.d.ts +2 -2
  29. package/dist/src/config/keystore/file.d.ts +1 -1
  30. package/dist/src/config/persist/migration.d.ts +3 -3
  31. package/dist/src/config/persist/persist.d.ts +4 -4
  32. package/dist/src/connection/error.d.ts +3 -1
  33. package/dist/src/connection/prepared.d.ts +14 -0
  34. package/dist/src/domain/helpers.d.ts +46 -51
  35. package/dist/src/domain/model-config.d.ts +91 -86
  36. package/dist/src/domain/thread-lifecycle.d.ts +23 -28
  37. package/dist/src/orchestration/layer.d.ts +308 -523
  38. package/dist/src/rpc/error.d.ts +4 -6
  39. package/dist/src/rpc/index.d.ts +3 -2
  40. package/dist/src/rpc/layer.d.ts +1890 -2299
  41. package/dist/src/rpc/operation.d.ts +4 -6260
  42. package/dist/src/rpc/service.d.ts +1 -1
  43. package/dist/src/rpc/session.d.ts +22 -0
  44. package/dist/src/rpc/ws-group.d.ts +439 -1180
  45. package/dist/src/runtime/layer.d.ts +10 -10
  46. package/dist/src/sql/node-sqlite-client.d.ts +1 -1
  47. package/dist/t3tools.js +2 -2
  48. package/package.json +8 -7
  49. package/src/application/thread-wait.ts +4 -0
  50. package/src/auth/error.ts +2 -8
  51. package/src/auth/remote-error.ts +17 -0
  52. package/src/auth/transport.ts +45 -114
  53. package/src/connection/error.ts +4 -1
  54. package/src/connection/layer.ts +5 -2
  55. package/src/connection/prepared.ts +83 -0
  56. package/src/orchestration/layer.ts +2 -1
  57. package/src/rpc/error.ts +9 -16
  58. package/src/rpc/index.ts +3 -2
  59. package/src/rpc/layer.ts +17 -51
  60. package/src/rpc/operation.ts +16 -2
  61. package/src/rpc/service.ts +2 -1
  62. package/src/rpc/session.ts +168 -0
  63. package/src/rpc/ws-group.ts +12 -26
  64. package/src/runtime/layer.ts +6 -3
@@ -20,6 +20,6 @@ export declare const makeActionApplication: () => Effect.Effect<{
20
20
  readonly terminalId?: string;
21
21
  }) => Effect.Effect<import("./service.ts").ProjectActionRunResult, import("./error.ts").ApplicationError>;
22
22
  updateAction: (input: UpdateProjectActionInput) => Effect.Effect<import("./service.ts").ProjectActionMutationResult, import("./error.ts").ApplicationError>;
23
- }, never, T3Orchestration | Path.Path | Crypto.Crypto | T3TerminalApplication>;
23
+ }, never, Crypto.Crypto | Path.Path | T3Orchestration | T3TerminalApplication>;
24
24
  export declare function nextProjectScriptId(name: string, existingIds: Iterable<string>): string;
25
25
  export declare function resolveActionBySelector(scripts: ReadonlyArray<ProjectScript>, selector: ProjectActionSelector, projectId: string): ProjectScript;
@@ -2,6 +2,41 @@ import * as Effect from "effect/Effect";
2
2
  import * as Layer from "effect/Layer";
3
3
  import { T3ActionApplication, T3Application, T3ModelApplication, T3ProjectApplication, T3TerminalApplication, T3ThreadApplication } from "./service.ts";
4
4
  export declare const makeT3Application: () => Effect.Effect<{
5
+ listActions: (projectRef: string) => Effect.Effect<{
6
+ readonly project: import("@t3tools/contracts").OrchestrationProjectShell;
7
+ readonly actions: ReadonlyArray<import("@t3tools/contracts").ProjectScript>;
8
+ }, import("./error.ts").ApplicationError>;
9
+ addAction: (input: import("./service.ts").AddProjectActionInput) => Effect.Effect<import("./service.ts").ProjectActionMutationResult, import("./error.ts").ApplicationError>;
10
+ updateAction: (input: import("./service.ts").UpdateProjectActionInput) => Effect.Effect<import("./service.ts").ProjectActionMutationResult, import("./error.ts").ApplicationError>;
11
+ deleteAction: (input: {
12
+ readonly projectRef: string;
13
+ readonly selector: import("./service.ts").ProjectActionSelector;
14
+ }) => Effect.Effect<import("./service.ts").ProjectActionDeleteResult, import("./error.ts").ApplicationError>;
15
+ runAction: (input: {
16
+ readonly threadId: string;
17
+ readonly selector: import("./service.ts").ProjectActionSelector;
18
+ readonly terminalId?: string;
19
+ }) => Effect.Effect<import("./service.ts").ProjectActionRunResult, import("./error.ts").ApplicationError>;
20
+ listModels: (input: {
21
+ readonly all?: boolean;
22
+ readonly provider?: string;
23
+ }) => Effect.Effect<ReadonlyArray<import("@t3tools/contracts").ServerProvider>, import("./error.ts").ApplicationError>;
24
+ loadShell: () => Effect.Effect<import("@t3tools/contracts").OrchestrationShellSnapshot, import("./error.ts").ApplicationError>;
25
+ addProject: (input: {
26
+ readonly path: string;
27
+ readonly title?: string;
28
+ }) => Effect.Effect<{
29
+ readonly dispatch: import("@t3tools/contracts").DispatchResult;
30
+ readonly project: import("@t3tools/contracts").OrchestrationProjectShell;
31
+ }, import("./error.ts").ApplicationError>;
32
+ resolveProject: (projectRef: string) => Effect.Effect<import("@t3tools/contracts").OrchestrationProjectShell, import("./error.ts").ApplicationError>;
33
+ deleteProject: (input: {
34
+ readonly projectId: string;
35
+ readonly force?: boolean;
36
+ }) => Effect.Effect<{
37
+ readonly projectId: string;
38
+ readonly dispatch: import("@t3tools/contracts").DispatchResult;
39
+ }, import("./error.ts").ApplicationError>;
5
40
  listThreads: (projectRef: string, options?: {
6
41
  readonly include?: import("./service.ts").ListThreadsInclude;
7
42
  }) => Effect.Effect<{
@@ -72,46 +107,11 @@ export declare const makeT3Application: () => Effect.Effect<{
72
107
  readonly rows: number;
73
108
  }) => Effect.Effect<void, import("./error.ts").ApplicationError>;
74
109
  destroyTerminal: (terminal: import("./service.ts").TerminalRef) => Effect.Effect<void, import("./error.ts").ApplicationError>;
75
- loadShell: () => Effect.Effect<import("@t3tools/contracts").OrchestrationShellSnapshot, import("./error.ts").ApplicationError>;
76
- addProject: (input: {
77
- readonly path: string;
78
- readonly title?: string;
79
- }) => Effect.Effect<{
80
- readonly dispatch: import("@t3tools/contracts").DispatchResult;
81
- readonly project: import("@t3tools/contracts").OrchestrationProjectShell;
82
- }, import("./error.ts").ApplicationError>;
83
- resolveProject: (projectRef: string) => Effect.Effect<import("@t3tools/contracts").OrchestrationProjectShell, import("./error.ts").ApplicationError>;
84
- deleteProject: (input: {
85
- readonly projectId: string;
86
- readonly force?: boolean;
87
- }) => Effect.Effect<{
88
- readonly projectId: string;
89
- readonly dispatch: import("@t3tools/contracts").DispatchResult;
90
- }, import("./error.ts").ApplicationError>;
91
- listModels: (input: {
92
- readonly all?: boolean;
93
- readonly provider?: string;
94
- }) => Effect.Effect<ReadonlyArray<import("@t3tools/contracts").ServerProvider>, import("./error.ts").ApplicationError>;
95
- listActions: (projectRef: string) => Effect.Effect<{
96
- readonly project: import("@t3tools/contracts").OrchestrationProjectShell;
97
- readonly actions: ReadonlyArray<import("@t3tools/contracts").ProjectScript>;
98
- }, import("./error.ts").ApplicationError>;
99
- addAction: (input: import("./service.ts").AddProjectActionInput) => Effect.Effect<import("./service.ts").ProjectActionMutationResult, import("./error.ts").ApplicationError>;
100
- updateAction: (input: import("./service.ts").UpdateProjectActionInput) => Effect.Effect<import("./service.ts").ProjectActionMutationResult, import("./error.ts").ApplicationError>;
101
- deleteAction: (input: {
102
- readonly projectRef: string;
103
- readonly selector: import("./service.ts").ProjectActionSelector;
104
- }) => Effect.Effect<import("./service.ts").ProjectActionDeleteResult, import("./error.ts").ApplicationError>;
105
- runAction: (input: {
106
- readonly threadId: string;
107
- readonly selector: import("./service.ts").ProjectActionSelector;
108
- readonly terminalId?: string;
109
- }) => Effect.Effect<import("./service.ts").ProjectActionRunResult, import("./error.ts").ApplicationError>;
110
- }, never, T3ActionApplication | T3ModelApplication | T3ProjectApplication | T3ThreadApplication | T3TerminalApplication>;
110
+ }, never, T3ActionApplication | T3ModelApplication | T3ProjectApplication | T3TerminalApplication | T3ThreadApplication>;
111
111
  export declare const T3ModelApplicationLive: Layer.Layer<T3ModelApplication, never, import("../orchestration/service.ts").T3Orchestration>;
112
- export declare const T3ProjectApplicationLive: Layer.Layer<T3ProjectApplication, never, import("../cli/runtime/service.ts").CliRuntime | import("../orchestration/service.ts").T3Orchestration | import("effect/Path").Path | import("effect/Crypto").Crypto>;
113
- export declare const T3TerminalApplicationLive: Layer.Layer<T3TerminalApplication, never, import("../orchestration/service.ts").T3Orchestration | import("effect/Crypto").Crypto | import("../rpc/operation.ts").T3RpcOperations>;
114
- export declare const T3ActionApplicationLive: Layer.Layer<T3ActionApplication, never, import("../orchestration/service.ts").T3Orchestration | import("effect/Path").Path | import("effect/Crypto").Crypto | import("../rpc/operation.ts").T3RpcOperations>;
115
- export declare const T3ThreadApplicationLive: Layer.Layer<T3ThreadApplication, never, import("../cli/runtime/service.ts").CliRuntime | import("../orchestration/service.ts").T3Orchestration | import("effect/Path").Path | import("effect/Crypto").Crypto>;
116
- export declare const T3ApplicationSlicesLive: Layer.Layer<T3ActionApplication | T3ModelApplication | T3ProjectApplication | T3ThreadApplication | T3TerminalApplication, never, import("../cli/runtime/service.ts").CliRuntime | import("../orchestration/service.ts").T3Orchestration | import("effect/Path").Path | import("effect/Crypto").Crypto | import("../rpc/operation.ts").T3RpcOperations>;
117
- export declare const T3ApplicationLive: Layer.Layer<T3Application, never, import("../cli/runtime/service.ts").CliRuntime | import("../orchestration/service.ts").T3Orchestration | import("effect/Path").Path | import("effect/Crypto").Crypto | import("../rpc/operation.ts").T3RpcOperations>;
112
+ export declare const T3ProjectApplicationLive: Layer.Layer<T3ProjectApplication, never, import("../cli/runtime/service.ts").CliRuntime | import("effect/Crypto").Crypto | import("effect/Path").Path | import("../orchestration/service.ts").T3Orchestration>;
113
+ export declare const T3TerminalApplicationLive: Layer.Layer<T3TerminalApplication, never, import("effect/Crypto").Crypto | import("../orchestration/service.ts").T3Orchestration | import("../rpc/operation.ts").T3RpcOperations>;
114
+ export declare const T3ActionApplicationLive: Layer.Layer<T3ActionApplication, never, import("effect/Crypto").Crypto | import("effect/Path").Path | import("../orchestration/service.ts").T3Orchestration | import("../rpc/operation.ts").T3RpcOperations>;
115
+ export declare const T3ThreadApplicationLive: Layer.Layer<T3ThreadApplication, never, import("../cli/runtime/service.ts").CliRuntime | import("effect/Crypto").Crypto | import("effect/Path").Path | import("../orchestration/service.ts").T3Orchestration>;
116
+ export declare const T3ApplicationSlicesLive: Layer.Layer<T3ActionApplication | T3ModelApplication | T3ProjectApplication | T3TerminalApplication | T3ThreadApplication, never, import("../cli/runtime/service.ts").CliRuntime | import("effect/Crypto").Crypto | import("effect/Path").Path | import("../orchestration/service.ts").T3Orchestration | import("../rpc/operation.ts").T3RpcOperations>;
117
+ export declare const T3ApplicationLive: Layer.Layer<T3Application, never, import("../cli/runtime/service.ts").CliRuntime | import("effect/Crypto").Crypto | import("effect/Path").Path | import("../orchestration/service.ts").T3Orchestration | import("../rpc/operation.ts").T3RpcOperations>;
@@ -13,15 +13,15 @@ export declare const makeProjectCreateCommand: (input: {
13
13
  title: string;
14
14
  workspaceRoot: string;
15
15
  createdAt: string;
16
- }, never, Path.Path | Crypto.Crypto>;
16
+ }, never, Crypto.Crypto | Path.Path>;
17
17
  export declare const makeProjectDeleteCommand: (input: {
18
18
  readonly projectId: string;
19
19
  readonly force?: boolean;
20
20
  }) => Effect.Effect<{
21
- force?: true;
22
21
  type: "project.delete";
23
22
  commandId: string & import("effect/Brand").Brand<"CommandId">;
24
23
  projectId: string & import("effect/Brand").Brand<"ProjectId">;
24
+ force?: true;
25
25
  }, never, Crypto.Crypto>;
26
26
  export declare const makeProjectMetaUpdateCommand: (input: {
27
27
  readonly projectId: string;
@@ -36,7 +36,7 @@ export declare const makeProjectMetaUpdateCommand: (input: {
36
36
  readonly id: string;
37
37
  readonly name: string;
38
38
  readonly command: string;
39
- readonly icon: "play" | "test" | "lint" | "configure" | "build" | "debug";
39
+ readonly icon: "build" | "configure" | "debug" | "lint" | "play" | "test";
40
40
  readonly runOnWorktreeCreate: boolean;
41
41
  readonly previewUrl?: string | undefined;
42
42
  readonly autoOpenPreview?: boolean | undefined;
@@ -20,4 +20,4 @@ export declare const makeProjectApplication: () => Effect.Effect<{
20
20
  readonly projectId: string;
21
21
  readonly dispatch: import("@t3tools/contracts").DispatchResult;
22
22
  }, import("./error.ts").ApplicationError>;
23
- }, never, CliRuntime | T3Orchestration | Path.Path | Crypto.Crypto>;
23
+ }, never, CliRuntime | Crypto.Crypto | Path.Path | T3Orchestration>;
@@ -9,6 +9,19 @@ export declare function waitForShellSequence(input: {
9
9
  readonly id: string & import("effect/Brand").Brand<"ProjectId">;
10
10
  readonly title: string;
11
11
  readonly workspaceRoot: string;
12
+ readonly repositoryIdentity?: {
13
+ readonly canonicalKey: string;
14
+ readonly locator: {
15
+ readonly source: "git-remote";
16
+ readonly remoteName: string;
17
+ readonly remoteUrl: string;
18
+ };
19
+ readonly rootPath?: string;
20
+ readonly displayName?: string;
21
+ readonly provider?: string;
22
+ readonly owner?: string;
23
+ readonly name?: string;
24
+ } | null | undefined;
12
25
  readonly defaultModelSelection: {
13
26
  readonly instanceId: string & import("effect/Brand").Brand<"ProviderInstanceId">;
14
27
  readonly model: string;
@@ -21,26 +34,13 @@ export declare function waitForShellSequence(input: {
21
34
  readonly id: string;
22
35
  readonly name: string;
23
36
  readonly command: string;
24
- readonly icon: "play" | "test" | "lint" | "configure" | "build" | "debug";
37
+ readonly icon: "build" | "configure" | "debug" | "lint" | "play" | "test";
25
38
  readonly runOnWorktreeCreate: boolean;
26
39
  readonly previewUrl?: string | undefined;
27
40
  readonly autoOpenPreview?: boolean | undefined;
28
41
  }[];
29
42
  readonly createdAt: string;
30
43
  readonly updatedAt: string;
31
- readonly repositoryIdentity?: {
32
- readonly canonicalKey: string;
33
- readonly locator: {
34
- readonly source: "git-remote";
35
- readonly remoteName: string;
36
- readonly remoteUrl: string;
37
- };
38
- readonly rootPath?: string;
39
- readonly displayName?: string;
40
- readonly provider?: string;
41
- readonly owner?: string;
42
- readonly name?: string;
43
- } | null | undefined;
44
44
  }[];
45
45
  readonly threads: readonly {
46
46
  readonly id: string & import("effect/Brand").Brand<"ThreadId">;
@@ -54,13 +54,13 @@ export declare function waitForShellSequence(input: {
54
54
  readonly value: string | boolean;
55
55
  }[];
56
56
  };
57
- readonly runtimeMode: "approval-required" | "auto-accept-edits" | "full-access";
57
+ readonly runtimeMode: "approval-required" | "auto" | "auto-accept-edits" | "full-access";
58
58
  readonly interactionMode: "default" | "plan";
59
59
  readonly branch: string | null;
60
60
  readonly worktreePath: string | null;
61
61
  readonly latestTurn: {
62
62
  readonly turnId: string & import("effect/Brand").Brand<"TurnId">;
63
- readonly state: "error" | "running" | "interrupted" | "completed";
63
+ readonly state: "completed" | "error" | "interrupted" | "running";
64
64
  readonly requestedAt: string;
65
65
  readonly startedAt: string | null;
66
66
  readonly completedAt: string | null;
@@ -73,24 +73,19 @@ export declare function waitForShellSequence(input: {
73
73
  readonly createdAt: string;
74
74
  readonly updatedAt: string;
75
75
  readonly archivedAt: string | null;
76
+ readonly settledOverride: "active" | "settled" | null;
77
+ readonly settledAt: string | null;
78
+ readonly snoozedUntil?: string | null | undefined;
79
+ readonly snoozedAt?: string | null | undefined;
76
80
  readonly session: {
77
81
  readonly threadId: string & import("effect/Brand").Brand<"ThreadId">;
78
- readonly status: "error" | "idle" | "starting" | "running" | "ready" | "interrupted" | "stopped";
82
+ readonly status: "error" | "idle" | "interrupted" | "ready" | "running" | "starting" | "stopped";
79
83
  readonly providerName: string | null;
80
- readonly runtimeMode: "approval-required" | "auto-accept-edits" | "full-access";
84
+ readonly providerInstanceId?: (string & import("effect/Brand").Brand<"ProviderInstanceId">) | undefined;
85
+ readonly runtimeMode: "approval-required" | "auto" | "auto-accept-edits" | "full-access";
81
86
  readonly activeTurnId: (string & import("effect/Brand").Brand<"TurnId">) | null;
82
87
  readonly lastError: string | null;
83
88
  readonly updatedAt: string;
84
- readonly providerInstanceId?: (string & import("effect/Brand").Brand<"ProviderInstanceId">) | undefined;
85
- } | null;
86
- readonly goal: {
87
- readonly objective: string;
88
- readonly status: "active" | "paused" | "blocked" | "usageLimited" | "budgetLimited" | "complete";
89
- readonly tokensUsed: number;
90
- readonly tokenBudget: number | null;
91
- readonly timeUsedSeconds: number;
92
- readonly createdAt: string;
93
- readonly updatedAt: string;
94
89
  } | null;
95
90
  readonly latestUserMessageAt: string | null;
96
91
  readonly hasPendingApprovals: boolean;
@@ -17,7 +17,7 @@ export declare const makeTerminalApplication: () => Effect.Effect<{
17
17
  readonly terminalId: string;
18
18
  readonly cwd: string;
19
19
  readonly worktreePath: string | null;
20
- readonly status: "error" | "starting" | "running" | "exited";
20
+ readonly status: "error" | "exited" | "running" | "starting";
21
21
  readonly pid: number | null;
22
22
  readonly history: string;
23
23
  readonly exitCode: number | null;
@@ -32,27 +32,27 @@ export declare const makeTerminalApplication: () => Effect.Effect<{
32
32
  readonly terminalId: string;
33
33
  readonly cwd: string;
34
34
  readonly worktreePath: string | null;
35
- readonly status: "error" | "starting" | "running" | "exited";
35
+ readonly status: "error" | "exited" | "running" | "starting";
36
36
  readonly pid: number | null;
37
37
  readonly exitCode: number | null;
38
38
  readonly exitSignal: number | null;
39
39
  readonly hasRunningSubprocess: boolean;
40
40
  readonly label: string;
41
41
  readonly updatedAt: string;
42
- }, ThreadLookupError | TerminalLookupError | RpcError, never>;
42
+ }, RpcError | TerminalLookupError | ThreadLookupError, never>;
43
43
  listTerminals: (threadId: string) => Effect.Effect<{
44
44
  readonly threadId: string;
45
45
  readonly terminalId: string;
46
46
  readonly cwd: string;
47
47
  readonly worktreePath: string | null;
48
- readonly status: "error" | "starting" | "running" | "exited";
48
+ readonly status: "error" | "exited" | "running" | "starting";
49
49
  readonly pid: number | null;
50
50
  readonly exitCode: number | null;
51
51
  readonly exitSignal: number | null;
52
52
  readonly hasRunningSubprocess: boolean;
53
53
  readonly label: string;
54
54
  readonly updatedAt: string;
55
- }[], ThreadLookupError | RpcError, never>;
55
+ }[], RpcError | ThreadLookupError, never>;
56
56
  resizeTerminal: (input: {
57
57
  readonly terminal: TerminalRef;
58
58
  readonly cols: number;
@@ -63,4 +63,4 @@ export declare const makeTerminalApplication: () => Effect.Effect<{
63
63
  readonly terminal: TerminalRef;
64
64
  readonly data: string;
65
65
  }) => Effect.Effect<void, RpcError, never>;
66
- }, never, T3Orchestration | Crypto.Crypto | T3RpcOperations>;
66
+ }, never, Crypto.Crypto | T3Orchestration | T3RpcOperations>;
@@ -56,15 +56,6 @@ export declare const makeThreadStartCommands: (input: {
56
56
  export declare const makeThreadTurnContinueCommand: (input: SendThreadInput & {
57
57
  readonly modelSelection?: ModelSelection;
58
58
  }) => Effect.Effect<{
59
- createdAt: string;
60
- modelSelection?: {
61
- readonly instanceId: string & import("effect/Brand").Brand<"ProviderInstanceId">;
62
- readonly model: string;
63
- readonly options?: readonly {
64
- readonly id: string;
65
- readonly value: string | boolean;
66
- }[];
67
- };
68
59
  type: "thread.turn.start";
69
60
  commandId: string & import("effect/Brand").Brand<"CommandId">;
70
61
  threadId: string & import("effect/Brand").Brand<"ThreadId">;
@@ -76,6 +67,15 @@ export declare const makeThreadTurnContinueCommand: (input: SendThreadInput & {
76
67
  };
77
68
  runtimeMode: "full-access";
78
69
  interactionMode: "default";
70
+ modelSelection?: {
71
+ readonly instanceId: string & import("effect/Brand").Brand<"ProviderInstanceId">;
72
+ readonly model: string;
73
+ readonly options?: readonly {
74
+ readonly id: string;
75
+ readonly value: string | boolean;
76
+ }[];
77
+ };
78
+ createdAt: string;
79
79
  }, never, Crypto.Crypto>;
80
80
  export declare const makeThreadArchiveCommand: (threadId: string) => Effect.Effect<{
81
81
  type: "thread.archive";
@@ -102,11 +102,11 @@ export declare const makeThreadInterruptCommand: (input: {
102
102
  readonly threadId: string;
103
103
  readonly turnId?: string;
104
104
  }) => Effect.Effect<{
105
- createdAt: string;
106
- turnId?: string & import("effect/Brand").Brand<"TurnId">;
107
105
  type: "thread.turn.interrupt";
108
106
  commandId: string & import("effect/Brand").Brand<"CommandId">;
109
107
  threadId: string & import("effect/Brand").Brand<"ThreadId">;
108
+ turnId?: string & import("effect/Brand").Brand<"TurnId">;
109
+ createdAt: string;
110
110
  }, never, Crypto.Crypto>;
111
111
  export declare const makeThreadApprovalRespondCommand: (input: {
112
112
  readonly threadId: string;
@@ -117,7 +117,7 @@ export declare const makeThreadApprovalRespondCommand: (input: {
117
117
  commandId: string & import("effect/Brand").Brand<"CommandId">;
118
118
  threadId: string & import("effect/Brand").Brand<"ThreadId">;
119
119
  requestId: string & import("effect/Brand").Brand<"ApprovalRequestId">;
120
- decision: "accept" | "acceptForSession" | "decline" | "cancel";
120
+ decision: "accept" | "acceptForSession" | "cancel" | "decline";
121
121
  createdAt: string;
122
122
  }, never, Crypto.Crypto>;
123
123
  export declare const makeThreadUserInputRespondCommand: (input: {
@@ -140,8 +140,10 @@ export declare const makeThreadMetaUpdateCommand: (threadId: string, input: {
140
140
  readonly branch?: string | null;
141
141
  readonly worktreePath?: string | null;
142
142
  }) => Effect.Effect<{
143
- worktreePath?: string | null;
144
- branch?: string | null;
143
+ type: "thread.meta.update";
144
+ commandId: string & import("effect/Brand").Brand<"CommandId">;
145
+ threadId: string & import("effect/Brand").Brand<"ThreadId">;
146
+ title?: string;
145
147
  modelSelection?: {
146
148
  readonly instanceId: string & import("effect/Brand").Brand<"ProviderInstanceId">;
147
149
  readonly model: string;
@@ -150,8 +152,6 @@ export declare const makeThreadMetaUpdateCommand: (threadId: string, input: {
150
152
  readonly value: string | boolean;
151
153
  }[];
152
154
  };
153
- title?: string;
154
- type: "thread.meta.update";
155
- commandId: string & import("effect/Brand").Brand<"CommandId">;
156
- threadId: string & import("effect/Brand").Brand<"ThreadId">;
155
+ branch?: string | null;
156
+ worktreePath?: string | null;
157
157
  }, never, Crypto.Crypto>;
@@ -5,4 +5,4 @@ import { T3Orchestration } from "../orchestration/service.ts";
5
5
  import type { UpdateThreadInput } from "./service.ts";
6
6
  export declare function makeUpdateThread(): (input: UpdateThreadInput) => Effect.Effect<{
7
7
  readonly sequence: number;
8
- }, ModelSelectionError | ThreadEventError | import("../rpc/error.ts").RpcError, T3Orchestration | Crypto.Crypto>;
8
+ }, ModelSelectionError | import("../rpc/error.ts").RpcError | ThreadEventError, Crypto.Crypto | T3Orchestration>;
@@ -5,7 +5,7 @@ import { T3Orchestration } from "../orchestration/service.ts";
5
5
  import type { WaitEvent } from "./service.ts";
6
6
  export declare function watchThread(input: {
7
7
  readonly threadId: string;
8
- }): Stream.Stream<WaitEvent, ThreadSessionError | import("../rpc/error.ts").RpcError, T3Orchestration>;
8
+ }): Stream.Stream<WaitEvent, import("../rpc/error.ts").RpcError | ThreadSessionError, T3Orchestration>;
9
9
  export declare function waitForThread(input: {
10
10
  readonly threadId: string;
11
11
  }): Effect.Effect<{
@@ -20,13 +20,13 @@ export declare function waitForThread(input: {
20
20
  readonly value: string | boolean;
21
21
  }[];
22
22
  };
23
- readonly runtimeMode: "approval-required" | "auto-accept-edits" | "full-access";
23
+ readonly runtimeMode: "approval-required" | "auto" | "auto-accept-edits" | "full-access";
24
24
  readonly interactionMode: "default" | "plan";
25
25
  readonly branch: string | null;
26
26
  readonly worktreePath: string | null;
27
27
  readonly latestTurn: {
28
28
  readonly turnId: string & import("effect/Brand").Brand<"TurnId">;
29
- readonly state: "error" | "running" | "interrupted" | "completed";
29
+ readonly state: "completed" | "error" | "interrupted" | "running";
30
30
  readonly requestedAt: string;
31
31
  readonly startedAt: string | null;
32
32
  readonly completedAt: string | null;
@@ -39,24 +39,15 @@ export declare function waitForThread(input: {
39
39
  readonly createdAt: string;
40
40
  readonly updatedAt: string;
41
41
  readonly archivedAt: string | null;
42
+ readonly settledOverride: "active" | "settled" | null;
43
+ readonly settledAt: string | null;
44
+ readonly snoozedUntil?: string | null | undefined;
45
+ readonly snoozedAt?: string | null | undefined;
42
46
  readonly deletedAt: string | null;
43
- readonly goal: {
44
- readonly objective: string;
45
- readonly status: "active" | "paused" | "blocked" | "usageLimited" | "budgetLimited" | "complete";
46
- readonly tokensUsed: number;
47
- readonly tokenBudget: number | null;
48
- readonly timeUsedSeconds: number;
49
- readonly createdAt: string;
50
- readonly updatedAt: string;
51
- } | null;
52
47
  readonly messages: readonly {
53
48
  readonly id: string & import("effect/Brand").Brand<"MessageId">;
54
- readonly role: "user" | "assistant" | "system";
49
+ readonly role: "assistant" | "system" | "user";
55
50
  readonly text: string;
56
- readonly turnId: (string & import("effect/Brand").Brand<"TurnId">) | null;
57
- readonly streaming: boolean;
58
- readonly createdAt: string;
59
- readonly updatedAt: string;
60
51
  readonly attachments?: readonly {
61
52
  readonly type: "image";
62
53
  readonly id: string;
@@ -64,6 +55,10 @@ export declare function waitForThread(input: {
64
55
  readonly mimeType: string;
65
56
  readonly sizeBytes: number;
66
57
  }[] | undefined;
58
+ readonly turnId: (string & import("effect/Brand").Brand<"TurnId">) | null;
59
+ readonly streaming: boolean;
60
+ readonly createdAt: string;
61
+ readonly updatedAt: string;
67
62
  }[];
68
63
  readonly proposedPlans: readonly {
69
64
  readonly id: string;
@@ -76,19 +71,19 @@ export declare function waitForThread(input: {
76
71
  }[];
77
72
  readonly activities: readonly {
78
73
  readonly id: string & import("effect/Brand").Brand<"EventId">;
79
- readonly tone: "error" | "info" | "tool" | "approval";
74
+ readonly tone: "approval" | "error" | "info" | "tool";
80
75
  readonly kind: string;
81
76
  readonly summary: string;
82
77
  readonly payload: unknown;
83
78
  readonly turnId: (string & import("effect/Brand").Brand<"TurnId">) | null;
84
- readonly createdAt: string;
85
79
  readonly sequence?: number | undefined;
80
+ readonly createdAt: string;
86
81
  }[];
87
82
  readonly checkpoints: readonly {
88
83
  readonly turnId: string & import("effect/Brand").Brand<"TurnId">;
89
84
  readonly checkpointTurnCount: number;
90
85
  readonly checkpointRef: string & import("effect/Brand").Brand<"CheckpointRef">;
91
- readonly status: "error" | "ready" | "missing";
86
+ readonly status: "error" | "missing" | "ready";
92
87
  readonly files: readonly {
93
88
  readonly path: string;
94
89
  readonly kind: string;
@@ -100,12 +95,12 @@ export declare function waitForThread(input: {
100
95
  }[];
101
96
  readonly session: {
102
97
  readonly threadId: string & import("effect/Brand").Brand<"ThreadId">;
103
- readonly status: "error" | "idle" | "starting" | "running" | "ready" | "interrupted" | "stopped";
98
+ readonly status: "error" | "idle" | "interrupted" | "ready" | "running" | "starting" | "stopped";
104
99
  readonly providerName: string | null;
105
- readonly runtimeMode: "approval-required" | "auto-accept-edits" | "full-access";
100
+ readonly providerInstanceId?: (string & import("effect/Brand").Brand<"ProviderInstanceId">) | undefined;
101
+ readonly runtimeMode: "approval-required" | "auto" | "auto-accept-edits" | "full-access";
106
102
  readonly activeTurnId: (string & import("effect/Brand").Brand<"TurnId">) | null;
107
103
  readonly lastError: string | null;
108
104
  readonly updatedAt: string;
109
- readonly providerInstanceId?: (string & import("effect/Brand").Brand<"ProviderInstanceId">) | undefined;
110
105
  } | null;
111
- }, ThreadSessionError | import("../rpc/error.ts").RpcError, T3Orchestration>;
106
+ }, import("../rpc/error.ts").RpcError | ThreadSessionError, T3Orchestration>;