t3code-cli 0.11.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 (330) hide show
  1. package/README.md +42 -10
  2. package/dist/application.js +2 -2
  3. package/dist/auth.js +1 -1
  4. package/dist/bin.js +85549 -2668
  5. package/dist/cli.js +15 -2
  6. package/dist/config.js +120 -2
  7. package/dist/connection.js +2 -2
  8. package/dist/index.js +1 -1
  9. package/dist/node.js +6 -2
  10. package/dist/orchestration.js +2 -2
  11. package/dist/rolldown-runtime.js +1 -1
  12. package/dist/rpc.js +1 -1
  13. package/dist/runtime.js +2 -2
  14. package/dist/shared.js +23313 -8022
  15. package/dist/src/application/actions.d.ts +25 -0
  16. package/dist/src/application/index.d.ts +3 -3
  17. package/dist/src/application/layer.d.ts +66 -50
  18. package/dist/src/application/model-selection.d.ts +2 -2
  19. package/dist/src/application/models.d.ts +1 -1
  20. package/dist/src/application/project-commands.d.ts +23 -3
  21. package/dist/src/application/projects.d.ts +7 -7
  22. package/dist/src/application/service.d.ts +65 -2
  23. package/dist/src/application/shell-sequence.d.ts +25 -19
  24. package/dist/src/application/terminals.d.ts +8 -8
  25. package/dist/src/application/thread-commands.d.ts +19 -19
  26. package/dist/src/application/thread-update.d.ts +1 -1
  27. package/dist/src/application/thread-wait.d.ts +19 -15
  28. package/dist/src/application/threads.d.ts +134 -108
  29. package/dist/src/auth/error.d.ts +3 -3
  30. package/dist/src/auth/index.d.ts +1 -1
  31. package/dist/src/auth/layer.d.ts +36 -8
  32. package/dist/src/auth/local-base-dir.d.ts +5 -2
  33. package/dist/src/auth/local-origin.d.ts +3 -3
  34. package/dist/src/auth/local-token.d.ts +3 -3
  35. package/dist/src/auth/remote-error.d.ts +3 -0
  36. package/dist/src/auth/service.d.ts +15 -3
  37. package/dist/src/auth/type.d.ts +40 -1
  38. package/dist/src/cli/env/flag.d.ts +2 -0
  39. package/dist/src/cli/env/index.d.ts +2 -0
  40. package/dist/src/cli/env/selection-layer.d.ts +3 -0
  41. package/dist/src/cli/flags.d.ts +2 -0
  42. package/dist/src/cli/format/index.d.ts +1 -0
  43. package/dist/src/cli/format/output.d.ts +12 -0
  44. package/dist/src/cli/index.d.ts +4 -0
  45. package/dist/src/cli/runtime/index.d.ts +1 -0
  46. package/dist/src/cli/runtime/service.d.ts +16 -0
  47. package/dist/src/{scope → cli/scope}/resolve.d.ts +5 -4
  48. package/dist/src/config/config.d.ts +49 -0
  49. package/dist/src/config/credential/cipher-node.d.ts +3 -0
  50. package/dist/src/config/credential/cipher-web.d.ts +3 -0
  51. package/dist/src/config/credential/cipher.d.ts +29 -0
  52. package/dist/src/config/credential/env.d.ts +3 -0
  53. package/dist/src/config/credential/error.d.ts +8 -0
  54. package/dist/src/config/credential/index.d.ts +6 -0
  55. package/dist/src/config/credential/service.d.ts +34 -0
  56. package/dist/src/config/env/env.d.ts +55 -0
  57. package/dist/src/config/env/index.d.ts +2 -0
  58. package/dist/src/{layout/base-dir.d.ts → config/env/layout.d.ts} +0 -1
  59. package/dist/src/config/environment-name/index.d.ts +1 -0
  60. package/dist/src/config/environment-name/name.d.ts +10 -0
  61. package/dist/src/config/error.d.ts +4 -11
  62. package/dist/src/config/index.d.ts +10 -5
  63. package/dist/src/config/keystore/error.d.ts +8 -0
  64. package/dist/src/config/keystore/file.d.ts +9 -0
  65. package/dist/src/config/keystore/index.d.ts +4 -0
  66. package/dist/src/config/keystore/keyring-node.d.ts +4 -0
  67. package/dist/src/config/keystore/service.d.ts +33 -0
  68. package/dist/src/config/paths/index.d.ts +1 -0
  69. package/dist/src/config/paths/paths.d.ts +6 -0
  70. package/dist/src/config/persist/file-mode.d.ts +4 -0
  71. package/dist/src/config/persist/migration.d.ts +68 -0
  72. package/dist/src/config/persist/persist.d.ts +40 -0
  73. package/dist/src/config/persist/schema.d.ts +68 -0
  74. package/dist/src/config/resolve/resolve.d.ts +40 -0
  75. package/dist/src/config/selection/index.d.ts +1 -0
  76. package/dist/src/config/selection/resolve.d.ts +4 -0
  77. package/dist/src/config/selection/service.d.ts +10 -0
  78. package/dist/src/config/types.d.ts +36 -0
  79. package/dist/src/config/url/error.d.ts +10 -0
  80. package/dist/src/config/url/index.d.ts +2 -0
  81. package/dist/src/connection/error.d.ts +3 -1
  82. package/dist/src/connection/index.d.ts +0 -1
  83. package/dist/src/connection/prepared.d.ts +14 -0
  84. package/dist/src/contracts/index.d.ts +1 -1
  85. package/dist/src/domain/error.d.ts +14 -1
  86. package/dist/src/domain/helpers.d.ts +53 -43
  87. package/dist/src/domain/model-config.d.ts +92 -84
  88. package/dist/src/domain/thread-activities.d.ts +1 -1
  89. package/dist/src/domain/thread-lifecycle.d.ts +24 -20
  90. package/dist/src/index.d.ts +1 -2
  91. package/dist/src/{connection/node.d.ts → node/connection.d.ts} +1 -1
  92. package/dist/src/node/index.d.ts +1 -2
  93. package/dist/src/orchestration/index.d.ts +0 -1
  94. package/dist/src/orchestration/layer.d.ts +321 -390
  95. package/dist/src/orchestration/service.d.ts +1 -1
  96. package/dist/src/rpc/error.d.ts +4 -6
  97. package/dist/src/rpc/layer.d.ts +2036 -1917
  98. package/dist/src/rpc/operation.d.ts +4 -5732
  99. package/dist/src/rpc/service.d.ts +1 -1
  100. package/dist/src/rpc/session.d.ts +22 -0
  101. package/dist/src/rpc/ws-group.d.ts +456 -1032
  102. package/dist/src/runtime/index.d.ts +1 -2
  103. package/dist/src/runtime/layer.d.ts +12 -8
  104. package/dist/src/sql/node-sqlite-client.d.ts +1 -1
  105. package/dist/src/t3tools/index.d.ts +1 -1
  106. package/dist/t3tools.js +2 -2
  107. package/package.json +30 -25
  108. package/src/application/actions.test.ts +328 -0
  109. package/src/application/actions.ts +475 -0
  110. package/src/application/index.ts +9 -5
  111. package/src/application/layer.ts +9 -0
  112. package/src/application/model-selection.ts +2 -2
  113. package/src/application/project-commands.ts +23 -5
  114. package/src/application/projects.ts +6 -7
  115. package/src/application/service.ts +79 -1
  116. package/src/application/shell-sequence.ts +1 -1
  117. package/src/application/terminals.ts +2 -1
  118. package/src/application/thread-commands.ts +1 -1
  119. package/src/application/thread-update.ts +1 -1
  120. package/src/application/thread-wait.ts +5 -1
  121. package/src/application/threads.test.ts +9 -3
  122. package/src/application/threads.ts +6 -6
  123. package/src/auth/error.ts +4 -9
  124. package/src/auth/index.ts +7 -0
  125. package/src/auth/layer.test-utils.ts +34 -0
  126. package/src/auth/layer.ts +116 -34
  127. package/src/auth/local-base-dir.ts +13 -6
  128. package/src/auth/local-origin.ts +10 -7
  129. package/src/auth/local-token.ts +28 -23
  130. package/src/auth/remote-error.ts +17 -0
  131. package/src/auth/service.test.ts +200 -0
  132. package/src/auth/service.ts +27 -3
  133. package/src/auth/transport.ts +45 -114
  134. package/src/auth/type.ts +47 -1
  135. package/src/bin.ts +24 -6
  136. package/src/cli/action-format.ts +110 -0
  137. package/src/cli/action.ts +398 -0
  138. package/src/cli/app.ts +6 -0
  139. package/src/cli/auth.ts +76 -23
  140. package/src/cli/env/flag.ts +8 -0
  141. package/src/cli/env/index.ts +2 -0
  142. package/src/cli/env/selection-layer.test.ts +49 -0
  143. package/src/cli/env/selection-layer.ts +27 -0
  144. package/src/cli/env.ts +107 -0
  145. package/src/cli/extra-args.test.ts +32 -0
  146. package/src/cli/extra-args.ts +22 -0
  147. package/src/cli/flags.ts +11 -1
  148. package/src/cli/format/auth.ts +92 -0
  149. package/src/cli/format/human.ts +131 -0
  150. package/src/cli/format/index.ts +12 -0
  151. package/src/cli/format/model.ts +29 -0
  152. package/src/cli/format/output.ts +51 -0
  153. package/src/cli/format/project.ts +32 -0
  154. package/src/cli/format/terminal.ts +87 -0
  155. package/src/cli/{thread-format.test.ts → format/thread.test.ts} +6 -4
  156. package/src/cli/format/thread.ts +185 -0
  157. package/src/cli/index.ts +20 -0
  158. package/src/cli/interaction/confirm.ts +64 -0
  159. package/src/cli/{self-action.ts → interaction/self-action.ts} +8 -6
  160. package/src/cli/message-input.ts +1 -1
  161. package/src/cli/model.ts +9 -5
  162. package/src/cli/project.ts +13 -7
  163. package/src/cli/projects/delete.ts +13 -12
  164. package/src/cli/require.ts +9 -7
  165. package/src/cli/runtime/index.ts +1 -0
  166. package/src/cli/runtime/service.ts +28 -0
  167. package/src/{scope → cli/scope}/resolve.ts +11 -9
  168. package/src/cli/terminal/attach.ts +3 -6
  169. package/src/cli/terminal/create.ts +10 -9
  170. package/src/cli/terminal/destroy.ts +13 -11
  171. package/src/cli/terminal/list.ts +10 -9
  172. package/src/cli/terminal/read.test-utils.ts +48 -0
  173. package/src/cli/terminal/read.test.ts +35 -0
  174. package/src/cli/terminal/read.ts +3 -6
  175. package/src/cli/terminal/scope.ts +10 -5
  176. package/src/cli/terminal/shared.ts +1 -1
  177. package/src/cli/terminal/stream.ts +3 -6
  178. package/src/cli/terminal/wait.test.ts +5 -3
  179. package/src/cli/terminal/wait.ts +10 -9
  180. package/src/cli/terminal/write.test.ts +34 -0
  181. package/src/cli/terminal/write.ts +10 -9
  182. package/src/cli/threads/approve.ts +11 -7
  183. package/src/cli/threads/archive.ts +14 -9
  184. package/src/cli/threads/callback.ts +6 -4
  185. package/src/cli/threads/delete.ts +17 -11
  186. package/src/cli/threads/interrupt.ts +14 -9
  187. package/src/cli/threads/list.test.ts +5 -3
  188. package/src/cli/threads/list.ts +10 -10
  189. package/src/cli/threads/messages.ts +11 -7
  190. package/src/cli/threads/respond.ts +11 -7
  191. package/src/cli/threads/send.ts +19 -9
  192. package/src/cli/threads/show.ts +11 -7
  193. package/src/cli/threads/start.ts +18 -13
  194. package/src/cli/threads/unarchive.ts +11 -7
  195. package/src/cli/threads/update.ts +14 -9
  196. package/src/cli/threads/wait.ts +11 -7
  197. package/src/cli/wait-events.ts +1 -1
  198. package/src/config/config.ts +260 -0
  199. package/src/config/credential/cipher-node.ts +40 -0
  200. package/src/config/credential/cipher-web.ts +82 -0
  201. package/src/config/credential/cipher.ts +39 -0
  202. package/src/config/credential/env.ts +13 -0
  203. package/src/config/credential/error.ts +9 -0
  204. package/src/config/credential/index.ts +6 -0
  205. package/src/config/credential/service.test-utils.ts +25 -0
  206. package/src/config/credential/service.test.ts +116 -0
  207. package/src/config/credential/service.ts +205 -0
  208. package/src/config/env/env.test-utils.ts +14 -0
  209. package/src/config/env/env.ts +81 -0
  210. package/src/config/env/index.ts +2 -0
  211. package/src/{layout/base-dir.ts → config/env/layout.ts} +0 -9
  212. package/src/config/environment-name/index.ts +7 -0
  213. package/src/config/environment-name/name.test.ts +66 -0
  214. package/src/config/environment-name/name.ts +49 -0
  215. package/src/config/error.ts +6 -8
  216. package/src/config/index.ts +16 -5
  217. package/src/config/keystore/error.ts +9 -0
  218. package/src/config/keystore/file.ts +96 -0
  219. package/src/config/keystore/index.ts +4 -0
  220. package/src/config/keystore/keyring-node.test.ts +12 -0
  221. package/src/config/keystore/keyring-node.ts +100 -0
  222. package/src/config/keystore/service.test-utils.ts +15 -0
  223. package/src/config/keystore/service.test.ts +18 -0
  224. package/src/config/keystore/service.ts +29 -0
  225. package/src/config/layer.test-utils.ts +45 -0
  226. package/src/config/layer.test.ts +209 -0
  227. package/src/config/paths/index.ts +1 -0
  228. package/src/config/paths/paths.ts +36 -0
  229. package/src/config/persist/file-mode.ts +21 -0
  230. package/src/config/persist/migration.test.ts +71 -0
  231. package/src/config/persist/migration.ts +82 -0
  232. package/src/config/persist/persist.test.ts +113 -0
  233. package/src/config/persist/persist.ts +65 -0
  234. package/src/config/persist/schema.ts +37 -0
  235. package/src/config/platform.test-utils.ts +20 -0
  236. package/src/config/resolve/resolve.test-utils.ts +20 -0
  237. package/src/config/resolve/resolve.test.ts +137 -0
  238. package/src/config/resolve/resolve.ts +104 -0
  239. package/src/config/selection/index.ts +1 -0
  240. package/src/config/selection/resolve.ts +14 -0
  241. package/src/config/selection/service.ts +29 -0
  242. package/src/config/temp-home.test-utils.ts +7 -0
  243. package/src/config/types.ts +49 -0
  244. package/src/config/url/error.ts +8 -0
  245. package/src/config/url/index.ts +7 -0
  246. package/src/config/url/url.test.ts +31 -0
  247. package/src/connection/error.ts +4 -1
  248. package/src/connection/index.ts +0 -1
  249. package/src/connection/layer.ts +5 -2
  250. package/src/connection/prepared.ts +83 -0
  251. package/src/contracts/index.ts +1 -1
  252. package/src/domain/error.ts +20 -1
  253. package/src/domain/helpers.test.ts +1 -1
  254. package/src/domain/helpers.ts +1 -1
  255. package/src/domain/model-config.ts +1 -1
  256. package/src/domain/thread-activities.test.ts +1 -1
  257. package/src/domain/thread-activities.ts +1 -1
  258. package/src/domain/thread-lifecycle.test.ts +1 -1
  259. package/src/domain/thread-lifecycle.ts +1 -1
  260. package/src/effect.test-utils.ts +25 -0
  261. package/src/index.ts +1 -1
  262. package/src/{connection/node.ts → node/connection.ts} +1 -1
  263. package/src/node/index.ts +1 -2
  264. package/src/orchestration/index.ts +0 -1
  265. package/src/orchestration/layer.ts +3 -2
  266. package/src/orchestration/service.ts +1 -1
  267. package/src/rpc/error.ts +10 -17
  268. package/src/rpc/layer.ts +17 -51
  269. package/src/rpc/operation.ts +16 -2
  270. package/src/rpc/service.ts +2 -1
  271. package/src/rpc/session.ts +168 -0
  272. package/src/rpc/ws-group.ts +13 -27
  273. package/src/runtime/index.ts +2 -1
  274. package/src/runtime/layer.test-utils.ts +32 -0
  275. package/src/runtime/layer.test.ts +66 -0
  276. package/src/runtime/layer.ts +21 -12
  277. package/src/t3tools/index.ts +1 -1
  278. package/src/types/marked-terminal.d.ts +11 -0
  279. package/dist/layout.js +0 -2
  280. package/dist/scope.js +0 -2
  281. package/dist/src/cli/output-format.d.ts +0 -11
  282. package/dist/src/config/layer.d.ts +0 -22
  283. package/dist/src/config/service.d.ts +0 -22
  284. package/dist/src/environment/layer.d.ts +0 -3
  285. package/dist/src/environment/service.d.ts +0 -12
  286. package/dist/src/layout/index.d.ts +0 -1
  287. package/dist/upstream-t3code/packages/contracts/src/auth.d.ts +0 -441
  288. package/dist/upstream-t3code/packages/contracts/src/baseSchemas.d.ts +0 -38
  289. package/dist/upstream-t3code/packages/contracts/src/desktopBootstrap.d.ts +0 -14
  290. package/dist/upstream-t3code/packages/contracts/src/editor.d.ts +0 -124
  291. package/dist/upstream-t3code/packages/contracts/src/environment.d.ts +0 -64
  292. package/dist/upstream-t3code/packages/contracts/src/environmentHttp.d.ts +0 -762
  293. package/dist/upstream-t3code/packages/contracts/src/filesystem.d.ts +0 -26
  294. package/dist/upstream-t3code/packages/contracts/src/git.d.ts +0 -500
  295. package/dist/upstream-t3code/packages/contracts/src/index.d.ts +0 -25
  296. package/dist/upstream-t3code/packages/contracts/src/ipc.d.ts +0 -490
  297. package/dist/upstream-t3code/packages/contracts/src/keybindings.d.ts +0 -133
  298. package/dist/upstream-t3code/packages/contracts/src/model.d.ts +0 -112
  299. package/dist/upstream-t3code/packages/contracts/src/orchestration.d.ts +0 -6682
  300. package/dist/upstream-t3code/packages/contracts/src/project.d.ts +0 -45
  301. package/dist/upstream-t3code/packages/contracts/src/provider.d.ts +0 -116
  302. package/dist/upstream-t3code/packages/contracts/src/providerInstance.d.ts +0 -99
  303. package/dist/upstream-t3code/packages/contracts/src/providerRuntime.d.ts +0 -4276
  304. package/dist/upstream-t3code/packages/contracts/src/relay.d.ts +0 -1262
  305. package/dist/upstream-t3code/packages/contracts/src/relayClient.d.ts +0 -48
  306. package/dist/upstream-t3code/packages/contracts/src/remoteAccess.d.ts +0 -45
  307. package/dist/upstream-t3code/packages/contracts/src/review.d.ts +0 -37
  308. package/dist/upstream-t3code/packages/contracts/src/rpc.d.ts +0 -8218
  309. package/dist/upstream-t3code/packages/contracts/src/server.d.ts +0 -2291
  310. package/dist/upstream-t3code/packages/contracts/src/settings.d.ts +0 -271
  311. package/dist/upstream-t3code/packages/contracts/src/sourceControl.d.ts +0 -177
  312. package/dist/upstream-t3code/packages/contracts/src/terminal.d.ts +0 -330
  313. package/dist/upstream-t3code/packages/contracts/src/vcs.d.ts +0 -148
  314. package/src/cli/auth-format.ts +0 -45
  315. package/src/cli/confirm.ts +0 -31
  316. package/src/cli/model-format.ts +0 -18
  317. package/src/cli/output-format.ts +0 -45
  318. package/src/cli/project-format.ts +0 -18
  319. package/src/cli/terminal/commands.test.ts +0 -101
  320. package/src/cli/terminal-format.ts +0 -167
  321. package/src/cli/thread-format.ts +0 -128
  322. package/src/config/layer.ts +0 -105
  323. package/src/config/service.ts +0 -26
  324. package/src/environment/layer.ts +0 -12
  325. package/src/environment/service.ts +0 -13
  326. package/src/layout/index.ts +0 -1
  327. /package/dist/src/{scope → cli/scope}/index.d.ts +0 -0
  328. /package/dist/src/config/{url.d.ts → url/url.d.ts} +0 -0
  329. /package/src/{scope → cli/scope}/index.ts +0 -0
  330. /package/src/config/{url.ts → url/url.ts} +0 -0
@@ -0,0 +1,25 @@
1
+ import * as Crypto from "effect/Crypto";
2
+ import * as Effect from "effect/Effect";
3
+ import * as Path from "effect/Path";
4
+ import { type OrchestrationProjectShell, type ProjectScript } from "@t3tools/contracts";
5
+ import { T3Orchestration } from "../orchestration/service.ts";
6
+ import { T3TerminalApplication, type AddProjectActionInput, type ProjectActionSelector, type UpdateProjectActionInput } from "./service.ts";
7
+ export declare const makeActionApplication: () => Effect.Effect<{
8
+ addAction: (input: AddProjectActionInput) => Effect.Effect<import("./service.ts").ProjectActionMutationResult, import("./error.ts").ApplicationError>;
9
+ deleteAction: (input: {
10
+ readonly projectRef: string;
11
+ readonly selector: ProjectActionSelector;
12
+ }) => Effect.Effect<import("./service.ts").ProjectActionDeleteResult, import("./error.ts").ApplicationError>;
13
+ listActions: (projectRef: string) => Effect.Effect<{
14
+ readonly project: OrchestrationProjectShell;
15
+ readonly actions: ReadonlyArray<ProjectScript>;
16
+ }, import("./error.ts").ApplicationError>;
17
+ runAction: (input: {
18
+ readonly threadId: string;
19
+ readonly selector: ProjectActionSelector;
20
+ readonly terminalId?: string;
21
+ }) => Effect.Effect<import("./service.ts").ProjectActionRunResult, import("./error.ts").ApplicationError>;
22
+ updateAction: (input: UpdateProjectActionInput) => Effect.Effect<import("./service.ts").ProjectActionMutationResult, import("./error.ts").ApplicationError>;
23
+ }, never, Crypto.Crypto | Path.Path | T3Orchestration | T3TerminalApplication>;
24
+ export declare function nextProjectScriptId(name: string, existingIds: Iterable<string>): string;
25
+ export declare function resolveActionBySelector(scripts: ReadonlyArray<ProjectScript>, selector: ProjectActionSelector, projectId: string): ProjectScript;
@@ -1,4 +1,4 @@
1
- export { T3Application, T3ModelApplication, T3ProjectApplication, T3TerminalApplication, T3ThreadApplication, } from "./service.ts";
2
- export { makeT3Application, T3ApplicationLive, T3ApplicationSlicesLive, T3ModelApplicationLive, T3ProjectApplicationLive, T3TerminalApplicationLive, T3ThreadApplicationLive, } from "./layer.ts";
3
- export type { SendThreadInput, StartThreadInput, StartThreadPolicy, T3ApplicationService, T3ModelApplicationService, T3ProjectApplicationService, T3TerminalApplicationService, T3ThreadApplicationService, UpdateThreadInput, WaitEvent, } from "./service.ts";
1
+ export { T3ActionApplication, T3Application, T3ModelApplication, T3ProjectApplication, T3TerminalApplication, T3ThreadApplication, } from "./service.ts";
2
+ export { makeT3Application, T3ActionApplicationLive, T3ApplicationLive, T3ApplicationSlicesLive, T3ModelApplicationLive, T3ProjectApplicationLive, T3TerminalApplicationLive, T3ThreadApplicationLive, } from "./layer.ts";
3
+ export type { AddProjectActionInput, ProjectActionDeleteResult, ProjectActionMutationResult, ProjectActionRunResult, ProjectActionSelector, SendThreadInput, StartThreadInput, StartThreadPolicy, T3ActionApplicationService, UpdateProjectActionInput, UpdateThreadInput, WaitEvent, } from "./service.ts";
4
4
  export type { ApplicationError } from "./error.ts";
@@ -1,14 +1,49 @@
1
1
  import * as Effect from "effect/Effect";
2
2
  import * as Layer from "effect/Layer";
3
- import { T3Application, T3ModelApplication, T3ProjectApplication, T3TerminalApplication, T3ThreadApplication } from "./service.ts";
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<{
8
- readonly project: import("#t3tools/contracts").OrchestrationProjectShell;
9
- readonly threads: ReadonlyArray<import("#t3tools/contracts").OrchestrationThreadShell>;
43
+ readonly project: import("@t3tools/contracts").OrchestrationProjectShell;
44
+ readonly threads: ReadonlyArray<import("@t3tools/contracts").OrchestrationThreadShell>;
10
45
  }, import("./error.ts").ApplicationError>;
11
- getThreadMessages: (threadId: string) => Effect.Effect<import("#t3tools/contracts").OrchestrationThread, import("./error.ts").ApplicationError>;
46
+ getThreadMessages: (threadId: string) => Effect.Effect<import("@t3tools/contracts").OrchestrationThread, import("./error.ts").ApplicationError>;
12
47
  showThread: (threadId: string) => Effect.Effect<import("./threads.ts").ThreadShow, import("./error.ts").ApplicationError>;
13
48
  approveThread: (input: {
14
49
  readonly threadId: string;
@@ -17,51 +52,51 @@ export declare const makeT3Application: () => Effect.Effect<{
17
52
  }) => Effect.Effect<{
18
53
  readonly threadId: string;
19
54
  readonly requestId: string;
20
- readonly dispatch: import("#t3tools/contracts").DispatchResult;
55
+ readonly dispatch: import("@t3tools/contracts").DispatchResult;
21
56
  }, import("./error.ts").ApplicationError>;
22
57
  respondToThread: (input: {
23
58
  readonly threadId: string;
24
59
  readonly requestId: string;
25
- readonly answers: import("#t3tools/contracts").ProviderUserInputAnswers;
60
+ readonly answers: import("@t3tools/contracts").ProviderUserInputAnswers;
26
61
  }) => Effect.Effect<{
27
62
  readonly threadId: string;
28
63
  readonly requestId: string;
29
- readonly dispatch: import("#t3tools/contracts").DispatchResult;
64
+ readonly dispatch: import("@t3tools/contracts").DispatchResult;
30
65
  }, import("./error.ts").ApplicationError>;
31
- archiveThread: (threadId: string) => Effect.Effect<import("#t3tools/contracts").DispatchResult, import("./error.ts").ApplicationError>;
32
- interruptThread: (threadId: string) => Effect.Effect<import("#t3tools/contracts").DispatchResult, import("./error.ts").ApplicationError>;
33
- unarchiveThread: (threadId: string) => Effect.Effect<import("#t3tools/contracts").DispatchResult, import("./error.ts").ApplicationError>;
66
+ archiveThread: (threadId: string) => Effect.Effect<import("@t3tools/contracts").DispatchResult, import("./error.ts").ApplicationError>;
67
+ interruptThread: (threadId: string) => Effect.Effect<import("@t3tools/contracts").DispatchResult, import("./error.ts").ApplicationError>;
68
+ unarchiveThread: (threadId: string) => Effect.Effect<import("@t3tools/contracts").DispatchResult, import("./error.ts").ApplicationError>;
34
69
  deleteThread: (threadId: string) => Effect.Effect<{
35
70
  readonly threadId: string;
36
- readonly dispatch: import("#t3tools/contracts").DispatchResult;
71
+ readonly dispatch: import("@t3tools/contracts").DispatchResult;
37
72
  }, import("./error.ts").ApplicationError>;
38
- updateThread: (input: import("./service.ts").UpdateThreadInput) => Effect.Effect<import("#t3tools/contracts").DispatchResult, import("./error.ts").ApplicationError>;
73
+ updateThread: (input: import("./service.ts").UpdateThreadInput) => Effect.Effect<import("@t3tools/contracts").DispatchResult, import("./error.ts").ApplicationError>;
39
74
  startThread: (input: import("./service.ts").StartThreadInput, policy?: import("./service.ts").StartThreadPolicy) => Effect.Effect<{
40
- readonly dispatch: import("#t3tools/contracts").DispatchResult;
41
- readonly project: import("#t3tools/contracts").OrchestrationProjectShell;
75
+ readonly dispatch: import("@t3tools/contracts").DispatchResult;
76
+ readonly project: import("@t3tools/contracts").OrchestrationProjectShell;
42
77
  readonly threadId: string;
43
- readonly thread?: import("#t3tools/contracts").OrchestrationThread;
78
+ readonly thread?: import("@t3tools/contracts").OrchestrationThread;
44
79
  }, import("./error.ts").ApplicationError>;
45
80
  sendThread: (input: import("./service.ts").SendThreadInput, policy?: import("./service.ts").StartThreadPolicy) => Effect.Effect<{
46
- readonly dispatch: import("#t3tools/contracts").DispatchResult;
81
+ readonly dispatch: import("@t3tools/contracts").DispatchResult;
47
82
  readonly threadId: string;
48
- readonly thread?: import("#t3tools/contracts").OrchestrationThread;
83
+ readonly thread?: import("@t3tools/contracts").OrchestrationThread;
49
84
  }, import("./error.ts").ApplicationError>;
50
85
  watchThread: (threadId: string) => import("effect/Stream").Stream<import("./service.ts").WaitEvent, import("./error.ts").ApplicationError>;
51
- waitForThread: (threadId: string) => Effect.Effect<import("#t3tools/contracts").OrchestrationThread, import("./error.ts").ApplicationError>;
86
+ waitForThread: (threadId: string) => Effect.Effect<import("@t3tools/contracts").OrchestrationThread, import("./error.ts").ApplicationError>;
52
87
  callbackThread: (input: import("./service.ts").CallbackThreadInput) => Effect.Effect<{
53
- readonly dispatch: import("#t3tools/contracts").DispatchResult;
88
+ readonly dispatch: import("@t3tools/contracts").DispatchResult;
54
89
  readonly targetThreadId: string;
55
90
  }, import("./error.ts").ApplicationError>;
56
- listTerminals: (threadId: string) => Effect.Effect<ReadonlyArray<import("#t3tools/contracts").TerminalSummary>, import("./error.ts").ApplicationError>;
57
- getTerminal: (terminal: import("./service.ts").TerminalRef) => Effect.Effect<import("#t3tools/contracts").TerminalSummary, import("./error.ts").ApplicationError>;
58
- createTerminal: (input: import("./service.ts").CreateTerminalInput) => Effect.Effect<import("#t3tools/contracts").TerminalSessionSnapshot, import("./error.ts").ApplicationError>;
91
+ listTerminals: (threadId: string) => Effect.Effect<ReadonlyArray<import("@t3tools/contracts").TerminalSummary>, import("./error.ts").ApplicationError>;
92
+ getTerminal: (terminal: import("./service.ts").TerminalRef) => Effect.Effect<import("@t3tools/contracts").TerminalSummary, import("./error.ts").ApplicationError>;
93
+ createTerminal: (input: import("./service.ts").CreateTerminalInput) => Effect.Effect<import("@t3tools/contracts").TerminalSessionSnapshot, import("./error.ts").ApplicationError>;
59
94
  attachTerminal: (input: {
60
95
  readonly terminal: import("./service.ts").TerminalAttachTarget;
61
96
  readonly cols?: number;
62
97
  readonly rows?: number;
63
- }) => import("effect/Stream").Stream<import("#t3tools/contracts").TerminalAttachStreamEvent, import("./error.ts").ApplicationError>;
64
- watchTerminalMetadata: () => import("effect/Stream").Stream<import("#t3tools/contracts").TerminalMetadataStreamEvent, import("./error.ts").ApplicationError>;
98
+ }) => import("effect/Stream").Stream<import("@t3tools/contracts").TerminalAttachStreamEvent, import("./error.ts").ApplicationError>;
99
+ watchTerminalMetadata: () => import("effect/Stream").Stream<import("@t3tools/contracts").TerminalMetadataStreamEvent, import("./error.ts").ApplicationError>;
65
100
  writeTerminal: (input: {
66
101
  readonly terminal: import("./service.ts").TerminalRef;
67
102
  readonly data: string;
@@ -72,30 +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
- }, never, T3ModelApplication | T3ProjectApplication | T3ThreadApplication | T3TerminalApplication>;
110
+ }, never, T3ActionApplication | T3ModelApplication | T3ProjectApplication | T3TerminalApplication | T3ThreadApplication>;
96
111
  export declare const T3ModelApplicationLive: Layer.Layer<T3ModelApplication, never, import("../orchestration/service.ts").T3Orchestration>;
97
- export declare const T3ProjectApplicationLive: Layer.Layer<T3ProjectApplication, never, import("../environment/service.ts").Environment | import("../orchestration/service.ts").T3Orchestration | import("effect/Path").Path | import("effect/Crypto").Crypto>;
98
- export declare const T3TerminalApplicationLive: Layer.Layer<T3TerminalApplication, never, import("../orchestration/service.ts").T3Orchestration | import("effect/Crypto").Crypto | import("../rpc/operation.ts").T3RpcOperations>;
99
- export declare const T3ThreadApplicationLive: Layer.Layer<T3ThreadApplication, never, import("../environment/service.ts").Environment | import("../orchestration/service.ts").T3Orchestration | import("effect/Path").Path | import("effect/Crypto").Crypto>;
100
- export declare const T3ApplicationSlicesLive: Layer.Layer<T3ModelApplication | T3ProjectApplication | T3ThreadApplication | T3TerminalApplication, never, import("../environment/service.ts").Environment | import("../orchestration/service.ts").T3Orchestration | import("effect/Path").Path | import("effect/Crypto").Crypto | import("../rpc/operation.ts").T3RpcOperations>;
101
- export declare const T3ApplicationLive: Layer.Layer<T3Application, never, import("../environment/service.ts").Environment | 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>;
@@ -1,6 +1,6 @@
1
1
  import * as Effect from "effect/Effect";
2
- import { ModelSelection } from "#t3tools/contracts";
3
- import type { OrchestrationProjectShell } from "#t3tools/contracts";
2
+ import { ModelSelection } from "@t3tools/contracts";
3
+ import type { OrchestrationProjectShell } from "@t3tools/contracts";
4
4
  import { ModelSelectionError } from "../domain/error.ts";
5
5
  import type { ServerConfigForCli } from "../orchestration/service.ts";
6
6
  import type { StartThreadInput } from "./service.ts";
@@ -4,5 +4,5 @@ export declare const makeModelsApplication: () => Effect.Effect<{
4
4
  listModels: (input: {
5
5
  readonly all?: boolean;
6
6
  readonly provider?: string;
7
- }) => Effect.Effect<ReadonlyArray<import("#t3tools/contracts").ServerProvider>, import("./error.ts").ApplicationError>;
7
+ }) => Effect.Effect<ReadonlyArray<import("@t3tools/contracts").ServerProvider>, import("./error.ts").ApplicationError>;
8
8
  }, never, T3Orchestration>;
@@ -1,10 +1,11 @@
1
1
  import * as Crypto from "effect/Crypto";
2
2
  import * as Effect from "effect/Effect";
3
3
  import * as Path from "effect/Path";
4
- import { Environment } from "../environment/service.ts";
4
+ import { type ClientOrchestrationCommand } from "@t3tools/contracts";
5
5
  export declare const makeProjectCreateCommand: (input: {
6
6
  readonly path: string;
7
7
  readonly title?: string;
8
+ readonly cwd: string;
8
9
  }) => Effect.Effect<{
9
10
  type: "project.create";
10
11
  commandId: string & import("effect/Brand").Brand<"CommandId">;
@@ -12,13 +13,32 @@ export declare const makeProjectCreateCommand: (input: {
12
13
  title: string;
13
14
  workspaceRoot: string;
14
15
  createdAt: string;
15
- }, never, Environment | Path.Path | Crypto.Crypto>;
16
+ }, never, Crypto.Crypto | Path.Path>;
16
17
  export declare const makeProjectDeleteCommand: (input: {
17
18
  readonly projectId: string;
18
19
  readonly force?: boolean;
19
20
  }) => Effect.Effect<{
20
- force?: true;
21
21
  type: "project.delete";
22
22
  commandId: string & import("effect/Brand").Brand<"CommandId">;
23
23
  projectId: string & import("effect/Brand").Brand<"ProjectId">;
24
+ force?: true;
25
+ }, never, Crypto.Crypto>;
26
+ export declare const makeProjectMetaUpdateCommand: (input: {
27
+ readonly projectId: string;
28
+ readonly scripts: Extract<ClientOrchestrationCommand, {
29
+ readonly type: "project.meta.update";
30
+ }>["scripts"];
31
+ }) => Effect.Effect<{
32
+ type: "project.meta.update";
33
+ commandId: string & import("effect/Brand").Brand<"CommandId">;
34
+ projectId: string & import("effect/Brand").Brand<"ProjectId">;
35
+ scripts: readonly {
36
+ readonly id: string;
37
+ readonly name: string;
38
+ readonly command: string;
39
+ readonly icon: "build" | "configure" | "debug" | "lint" | "play" | "test";
40
+ readonly runOnWorktreeCreate: boolean;
41
+ readonly previewUrl?: string | undefined;
42
+ readonly autoOpenPreview?: boolean | undefined;
43
+ }[] | undefined;
24
44
  }, never, Crypto.Crypto>;
@@ -1,23 +1,23 @@
1
1
  import * as Crypto from "effect/Crypto";
2
2
  import * as Effect from "effect/Effect";
3
3
  import * as Path from "effect/Path";
4
- import { Environment } from "../environment/service.ts";
4
+ import { CliRuntime } from "../cli/runtime/service.ts";
5
5
  import { T3Orchestration } from "../orchestration/service.ts";
6
6
  export declare const makeProjectApplication: () => Effect.Effect<{
7
- loadShell: () => Effect.Effect<import("#t3tools/contracts").OrchestrationShellSnapshot, import("./error.ts").ApplicationError>;
7
+ loadShell: () => Effect.Effect<import("@t3tools/contracts").OrchestrationShellSnapshot, import("./error.ts").ApplicationError>;
8
8
  addProject: (input: {
9
9
  readonly path: string;
10
10
  readonly title?: string;
11
11
  }) => Effect.Effect<{
12
- readonly dispatch: import("#t3tools/contracts").DispatchResult;
13
- readonly project: import("#t3tools/contracts").OrchestrationProjectShell;
12
+ readonly dispatch: import("@t3tools/contracts").DispatchResult;
13
+ readonly project: import("@t3tools/contracts").OrchestrationProjectShell;
14
14
  }, import("./error.ts").ApplicationError>;
15
- resolveProject: (projectRef: string) => Effect.Effect<import("#t3tools/contracts").OrchestrationProjectShell, import("./error.ts").ApplicationError>;
15
+ resolveProject: (projectRef: string) => Effect.Effect<import("@t3tools/contracts").OrchestrationProjectShell, import("./error.ts").ApplicationError>;
16
16
  deleteProject: (input: {
17
17
  readonly projectId: string;
18
18
  readonly force?: boolean;
19
19
  }) => Effect.Effect<{
20
20
  readonly projectId: string;
21
- readonly dispatch: import("#t3tools/contracts").DispatchResult;
21
+ readonly dispatch: import("@t3tools/contracts").DispatchResult;
22
22
  }, import("./error.ts").ApplicationError>;
23
- }, never, Environment | T3Orchestration | Path.Path | Crypto.Crypto>;
23
+ }, never, CliRuntime | Crypto.Crypto | Path.Path | T3Orchestration>;
@@ -1,7 +1,7 @@
1
1
  import * as Context from "effect/Context";
2
2
  import type * as Effect from "effect/Effect";
3
3
  import type * as Stream from "effect/Stream";
4
- import type { DispatchResult, ModelSelection, OrchestrationMessage, OrchestrationProjectShell, OrchestrationShellSnapshot, OrchestrationThread, OrchestrationThreadShell, ProviderUserInputAnswers, ServerProvider, TerminalAttachStreamEvent, TerminalMetadataStreamEvent, TerminalSessionSnapshot, TerminalSummary } from "#t3tools/contracts";
4
+ import type { DispatchResult, ModelSelection, OrchestrationMessage, OrchestrationProjectShell, OrchestrationShellSnapshot, OrchestrationThread, OrchestrationThreadShell, ProjectScript, ProjectScriptIcon, ProviderUserInputAnswers, ServerProvider, TerminalAttachStreamEvent, TerminalMetadataStreamEvent, TerminalSessionSnapshot, TerminalSummary } from "@t3tools/contracts";
5
5
  import type { ApplicationError } from "./error.ts";
6
6
  import type { ThreadShow } from "./threads.ts";
7
7
  export type StartThreadInput = {
@@ -17,6 +17,7 @@ export type CreateTerminalInput = {
17
17
  readonly threadId: string;
18
18
  readonly terminalId?: string;
19
19
  readonly command?: string;
20
+ readonly env?: Readonly<Record<string, string>>;
20
21
  };
21
22
  export type TerminalRef = {
22
23
  readonly threadId: string;
@@ -63,6 +64,68 @@ export type WaitEvent = {
63
64
  readonly type: "done";
64
65
  readonly thread: OrchestrationThread;
65
66
  };
67
+ export type ProjectActionSelector = {
68
+ readonly id: string;
69
+ readonly name?: never;
70
+ } | {
71
+ readonly id?: never;
72
+ readonly name: string;
73
+ };
74
+ export type AddProjectActionInput = {
75
+ readonly projectRef: string;
76
+ readonly id?: string;
77
+ readonly name: string;
78
+ readonly command: string;
79
+ readonly icon?: ProjectScriptIcon;
80
+ readonly setup?: boolean;
81
+ readonly previewUrl?: string;
82
+ readonly autoOpenPreview?: boolean;
83
+ };
84
+ export type UpdateProjectActionInput = {
85
+ readonly projectRef: string;
86
+ readonly selector: ProjectActionSelector;
87
+ readonly name?: string;
88
+ readonly command?: string;
89
+ readonly icon?: ProjectScriptIcon;
90
+ readonly setup?: boolean;
91
+ readonly previewUrl?: string | null;
92
+ readonly autoOpenPreview?: boolean | null;
93
+ };
94
+ export type ProjectActionMutationResult = {
95
+ readonly dispatch: DispatchResult;
96
+ readonly project: OrchestrationProjectShell;
97
+ readonly action: ProjectScript;
98
+ };
99
+ export type ProjectActionDeleteResult = {
100
+ readonly dispatch: DispatchResult;
101
+ readonly project: OrchestrationProjectShell;
102
+ readonly action: ProjectScript;
103
+ };
104
+ export type ProjectActionRunResult = {
105
+ readonly project: OrchestrationProjectShell;
106
+ readonly action: ProjectScript;
107
+ readonly terminal: TerminalSessionSnapshot;
108
+ };
109
+ export type T3ActionApplicationService = {
110
+ readonly listActions: (projectRef: string) => Effect.Effect<{
111
+ readonly project: OrchestrationProjectShell;
112
+ readonly actions: ReadonlyArray<ProjectScript>;
113
+ }, ApplicationError>;
114
+ readonly addAction: (input: AddProjectActionInput) => Effect.Effect<ProjectActionMutationResult, ApplicationError>;
115
+ readonly updateAction: (input: UpdateProjectActionInput) => Effect.Effect<ProjectActionMutationResult, ApplicationError>;
116
+ readonly deleteAction: (input: {
117
+ readonly projectRef: string;
118
+ readonly selector: ProjectActionSelector;
119
+ }) => Effect.Effect<ProjectActionDeleteResult, ApplicationError>;
120
+ readonly runAction: (input: {
121
+ readonly threadId: string;
122
+ readonly selector: ProjectActionSelector;
123
+ readonly terminalId?: string;
124
+ }) => Effect.Effect<ProjectActionRunResult, ApplicationError>;
125
+ };
126
+ declare const T3ActionApplication_base: Context.ServiceClass<T3ActionApplication, "t3cli/T3ActionApplication", T3ActionApplicationService>;
127
+ export declare class T3ActionApplication extends T3ActionApplication_base {
128
+ }
66
129
  export type T3ModelApplicationService = {
67
130
  readonly listModels: (input: {
68
131
  readonly all?: boolean;
@@ -173,7 +236,7 @@ export type T3TerminalApplicationService = {
173
236
  declare const T3TerminalApplication_base: Context.ServiceClass<T3TerminalApplication, "t3cli/T3TerminalApplication", T3TerminalApplicationService>;
174
237
  export declare class T3TerminalApplication extends T3TerminalApplication_base {
175
238
  }
176
- export type T3ApplicationService = T3ModelApplicationService & T3ProjectApplicationService & T3ThreadApplicationService & T3TerminalApplicationService;
239
+ export type T3ApplicationService = T3ModelApplicationService & T3ActionApplicationService & T3ProjectApplicationService & T3ThreadApplicationService & T3TerminalApplicationService;
177
240
  declare const T3Application_base: Context.ServiceClass<T3Application, "t3cli/T3Application", T3ApplicationService>;
178
241
  export declare class T3Application extends T3Application_base {
179
242
  }
@@ -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,24 +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;
39
+ readonly previewUrl?: string | undefined;
40
+ readonly autoOpenPreview?: boolean | undefined;
26
41
  }[];
27
42
  readonly createdAt: string;
28
43
  readonly updatedAt: string;
29
- readonly repositoryIdentity?: {
30
- readonly canonicalKey: string;
31
- readonly locator: {
32
- readonly source: "git-remote";
33
- readonly remoteName: string;
34
- readonly remoteUrl: string;
35
- };
36
- readonly rootPath?: string;
37
- readonly displayName?: string;
38
- readonly provider?: string;
39
- readonly owner?: string;
40
- readonly name?: string;
41
- } | null | undefined;
42
44
  }[];
43
45
  readonly threads: readonly {
44
46
  readonly id: string & import("effect/Brand").Brand<"ThreadId">;
@@ -52,13 +54,13 @@ export declare function waitForShellSequence(input: {
52
54
  readonly value: string | boolean;
53
55
  }[];
54
56
  };
55
- readonly runtimeMode: "approval-required" | "auto-accept-edits" | "full-access";
57
+ readonly runtimeMode: "approval-required" | "auto" | "auto-accept-edits" | "full-access";
56
58
  readonly interactionMode: "default" | "plan";
57
59
  readonly branch: string | null;
58
60
  readonly worktreePath: string | null;
59
61
  readonly latestTurn: {
60
62
  readonly turnId: string & import("effect/Brand").Brand<"TurnId">;
61
- readonly state: "error" | "running" | "interrupted" | "completed";
63
+ readonly state: "completed" | "error" | "interrupted" | "running";
62
64
  readonly requestedAt: string;
63
65
  readonly startedAt: string | null;
64
66
  readonly completedAt: string | null;
@@ -71,15 +73,19 @@ export declare function waitForShellSequence(input: {
71
73
  readonly createdAt: string;
72
74
  readonly updatedAt: string;
73
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;
74
80
  readonly session: {
75
81
  readonly threadId: string & import("effect/Brand").Brand<"ThreadId">;
76
- readonly status: "error" | "idle" | "starting" | "running" | "ready" | "interrupted" | "stopped";
82
+ readonly status: "error" | "idle" | "interrupted" | "ready" | "running" | "starting" | "stopped";
77
83
  readonly providerName: string | null;
78
- 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";
79
86
  readonly activeTurnId: (string & import("effect/Brand").Brand<"TurnId">) | null;
80
87
  readonly lastError: string | null;
81
88
  readonly updatedAt: string;
82
- readonly providerInstanceId?: (string & import("effect/Brand").Brand<"ProviderInstanceId">) | undefined;
83
89
  } | null;
84
90
  readonly latestUserMessageAt: string | null;
85
91
  readonly hasPendingApprovals: boolean;
@@ -11,13 +11,13 @@ export declare const makeTerminalApplication: () => Effect.Effect<{
11
11
  readonly terminal: import("./service.ts").TerminalAttachTarget;
12
12
  readonly cols?: number;
13
13
  readonly rows?: number;
14
- }) => Stream.Stream<import("#t3tools/contracts").TerminalAttachStreamEvent, import("./error.ts").ApplicationError>;
14
+ }) => Stream.Stream<import("@t3tools/contracts").TerminalAttachStreamEvent, import("./error.ts").ApplicationError>;
15
15
  createTerminal: (input: CreateTerminalInput) => Effect.Effect<{
16
16
  readonly threadId: string;
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,35 +32,35 @@ 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;
59
59
  readonly rows: number;
60
60
  }) => Effect.Effect<void, RpcError, never>;
61
- watchTerminalMetadata: () => Stream.Stream<import("#t3tools/contracts").TerminalMetadataStreamEvent, import("./error.ts").ApplicationError>;
61
+ watchTerminalMetadata: () => Stream.Stream<import("@t3tools/contracts").TerminalMetadataStreamEvent, import("./error.ts").ApplicationError>;
62
62
  writeTerminal: (input: {
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>;