@excitedjs/tm 1.1.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 (702) hide show
  1. package/bin/tm +76 -0
  2. package/package.json +39 -0
  3. package/resolver-register.mjs +7 -0
  4. package/resolver.mjs +86 -0
  5. package/src/cli/context.ts +63 -0
  6. package/src/cli/dispatch.ts +444 -0
  7. package/src/cli/errors.ts +45 -0
  8. package/src/cli/parse.ts +265 -0
  9. package/src/cli.ts +12 -0
  10. package/src/codex-protocol/AbsolutePathBuf.ts +14 -0
  11. package/src/codex-protocol/AgentPath.ts +5 -0
  12. package/src/codex-protocol/ApplyPatchApprovalParams.ts +21 -0
  13. package/src/codex-protocol/ApplyPatchApprovalResponse.ts +6 -0
  14. package/src/codex-protocol/AuthMode.ts +8 -0
  15. package/src/codex-protocol/AutoCompactTokenLimitScope.ts +9 -0
  16. package/src/codex-protocol/ClientInfo.ts +5 -0
  17. package/src/codex-protocol/ClientNotification.ts +5 -0
  18. package/src/codex-protocol/ClientRequest.ts +110 -0
  19. package/src/codex-protocol/CollaborationMode.ts +10 -0
  20. package/src/codex-protocol/ContentItem.ts +6 -0
  21. package/src/codex-protocol/ConversationGitInfo.ts +5 -0
  22. package/src/codex-protocol/ConversationSummary.ts +8 -0
  23. package/src/codex-protocol/ExecCommandApprovalParams.ts +16 -0
  24. package/src/codex-protocol/ExecCommandApprovalResponse.ts +6 -0
  25. package/src/codex-protocol/ExecPolicyAmendment.ts +12 -0
  26. package/src/codex-protocol/FileChange.ts +5 -0
  27. package/src/codex-protocol/ForcedLoginMethod.ts +5 -0
  28. package/src/codex-protocol/FunctionCallOutputBody.ts +6 -0
  29. package/src/codex-protocol/FunctionCallOutputContentItem.ts +10 -0
  30. package/src/codex-protocol/FuzzyFileSearchMatchType.ts +5 -0
  31. package/src/codex-protocol/FuzzyFileSearchParams.ts +5 -0
  32. package/src/codex-protocol/FuzzyFileSearchResponse.ts +6 -0
  33. package/src/codex-protocol/FuzzyFileSearchResult.ts +9 -0
  34. package/src/codex-protocol/FuzzyFileSearchSessionCompletedNotification.ts +5 -0
  35. package/src/codex-protocol/FuzzyFileSearchSessionStartParams.ts +5 -0
  36. package/src/codex-protocol/FuzzyFileSearchSessionStartResponse.ts +5 -0
  37. package/src/codex-protocol/FuzzyFileSearchSessionStopParams.ts +5 -0
  38. package/src/codex-protocol/FuzzyFileSearchSessionStopResponse.ts +5 -0
  39. package/src/codex-protocol/FuzzyFileSearchSessionUpdateParams.ts +5 -0
  40. package/src/codex-protocol/FuzzyFileSearchSessionUpdateResponse.ts +5 -0
  41. package/src/codex-protocol/FuzzyFileSearchSessionUpdatedNotification.ts +6 -0
  42. package/src/codex-protocol/GetAuthStatusParams.ts +5 -0
  43. package/src/codex-protocol/GetAuthStatusResponse.ts +6 -0
  44. package/src/codex-protocol/GetConversationSummaryParams.ts +6 -0
  45. package/src/codex-protocol/GetConversationSummaryResponse.ts +6 -0
  46. package/src/codex-protocol/GitDiffToRemoteParams.ts +5 -0
  47. package/src/codex-protocol/GitDiffToRemoteResponse.ts +6 -0
  48. package/src/codex-protocol/GitSha.ts +5 -0
  49. package/src/codex-protocol/ImageDetail.ts +5 -0
  50. package/src/codex-protocol/InitializeCapabilities.ts +21 -0
  51. package/src/codex-protocol/InitializeParams.ts +7 -0
  52. package/src/codex-protocol/InitializeResponse.ts +20 -0
  53. package/src/codex-protocol/InputModality.ts +8 -0
  54. package/src/codex-protocol/InternalSessionSource.ts +5 -0
  55. package/src/codex-protocol/LocalShellAction.ts +6 -0
  56. package/src/codex-protocol/LocalShellExecAction.ts +5 -0
  57. package/src/codex-protocol/LocalShellStatus.ts +5 -0
  58. package/src/codex-protocol/MessagePhase.ts +11 -0
  59. package/src/codex-protocol/ModeKind.ts +8 -0
  60. package/src/codex-protocol/NetworkPolicyAmendment.ts +6 -0
  61. package/src/codex-protocol/NetworkPolicyRuleAction.ts +5 -0
  62. package/src/codex-protocol/ParsedCommand.ts +12 -0
  63. package/src/codex-protocol/Personality.ts +5 -0
  64. package/src/codex-protocol/PlanType.ts +5 -0
  65. package/src/codex-protocol/RealtimeConversationVersion.ts +5 -0
  66. package/src/codex-protocol/RealtimeOutputModality.ts +5 -0
  67. package/src/codex-protocol/RealtimeVoice.ts +5 -0
  68. package/src/codex-protocol/RealtimeVoicesList.ts +6 -0
  69. package/src/codex-protocol/ReasoningEffort.ts +8 -0
  70. package/src/codex-protocol/ReasoningItemContent.ts +5 -0
  71. package/src/codex-protocol/ReasoningItemReasoningSummary.ts +5 -0
  72. package/src/codex-protocol/ReasoningSummary.ts +10 -0
  73. package/src/codex-protocol/RequestId.ts +5 -0
  74. package/src/codex-protocol/Resource.ts +9 -0
  75. package/src/codex-protocol/ResourceContent.ts +17 -0
  76. package/src/codex-protocol/ResourceTemplate.ts +9 -0
  77. package/src/codex-protocol/ResponseItem.ts +17 -0
  78. package/src/codex-protocol/ReviewDecision.ts +10 -0
  79. package/src/codex-protocol/ServerNotification.ts +73 -0
  80. package/src/codex-protocol/ServerRequest.ts +19 -0
  81. package/src/codex-protocol/SessionSource.ts +7 -0
  82. package/src/codex-protocol/Settings.ts +9 -0
  83. package/src/codex-protocol/SubAgentSource.ts +7 -0
  84. package/src/codex-protocol/ThreadId.ts +5 -0
  85. package/src/codex-protocol/ThreadMemoryMode.ts +5 -0
  86. package/src/codex-protocol/Tool.ts +9 -0
  87. package/src/codex-protocol/Verbosity.ts +9 -0
  88. package/src/codex-protocol/WebSearchAction.ts +5 -0
  89. package/src/codex-protocol/WebSearchContextSize.ts +5 -0
  90. package/src/codex-protocol/WebSearchLocation.ts +5 -0
  91. package/src/codex-protocol/WebSearchMode.ts +5 -0
  92. package/src/codex-protocol/WebSearchToolConfig.ts +7 -0
  93. package/src/codex-protocol/index.ts +86 -0
  94. package/src/codex-protocol/serde_json/JsonValue.ts +5 -0
  95. package/src/codex-protocol/v2/Account.ts +6 -0
  96. package/src/codex-protocol/v2/AccountLoginCompletedNotification.ts +5 -0
  97. package/src/codex-protocol/v2/AccountRateLimitsUpdatedNotification.ts +6 -0
  98. package/src/codex-protocol/v2/AccountUpdatedNotification.ts +7 -0
  99. package/src/codex-protocol/v2/ActivePermissionProfile.ts +15 -0
  100. package/src/codex-protocol/v2/AddCreditsNudgeCreditType.ts +5 -0
  101. package/src/codex-protocol/v2/AddCreditsNudgeEmailStatus.ts +5 -0
  102. package/src/codex-protocol/v2/AdditionalFileSystemPermissions.ts +15 -0
  103. package/src/codex-protocol/v2/AdditionalNetworkPermissions.ts +5 -0
  104. package/src/codex-protocol/v2/AdditionalPermissionProfile.ts +11 -0
  105. package/src/codex-protocol/v2/AgentMessageDeltaNotification.ts +5 -0
  106. package/src/codex-protocol/v2/AnalyticsConfig.ts +6 -0
  107. package/src/codex-protocol/v2/AppBranding.ts +8 -0
  108. package/src/codex-protocol/v2/AppInfo.ts +19 -0
  109. package/src/codex-protocol/v2/AppListUpdatedNotification.ts +9 -0
  110. package/src/codex-protocol/v2/AppMetadata.ts +7 -0
  111. package/src/codex-protocol/v2/AppReview.ts +5 -0
  112. package/src/codex-protocol/v2/AppScreenshot.ts +5 -0
  113. package/src/codex-protocol/v2/AppSummary.ts +8 -0
  114. package/src/codex-protocol/v2/AppToolApproval.ts +5 -0
  115. package/src/codex-protocol/v2/AppToolsConfig.ts +6 -0
  116. package/src/codex-protocol/v2/ApprovalsReviewer.ts +12 -0
  117. package/src/codex-protocol/v2/AppsConfig.ts +8 -0
  118. package/src/codex-protocol/v2/AppsDefaultConfig.ts +5 -0
  119. package/src/codex-protocol/v2/AppsListParams.ts +24 -0
  120. package/src/codex-protocol/v2/AppsListResponse.ts +14 -0
  121. package/src/codex-protocol/v2/AskForApproval.ts +5 -0
  122. package/src/codex-protocol/v2/AttestationGenerateParams.ts +5 -0
  123. package/src/codex-protocol/v2/AttestationGenerateResponse.ts +9 -0
  124. package/src/codex-protocol/v2/AutoReviewDecisionSource.ts +8 -0
  125. package/src/codex-protocol/v2/ByteRange.ts +5 -0
  126. package/src/codex-protocol/v2/CancelLoginAccountParams.ts +5 -0
  127. package/src/codex-protocol/v2/CancelLoginAccountResponse.ts +6 -0
  128. package/src/codex-protocol/v2/CancelLoginAccountStatus.ts +5 -0
  129. package/src/codex-protocol/v2/ChatgptAuthTokensRefreshParams.ts +16 -0
  130. package/src/codex-protocol/v2/ChatgptAuthTokensRefreshReason.ts +5 -0
  131. package/src/codex-protocol/v2/ChatgptAuthTokensRefreshResponse.ts +5 -0
  132. package/src/codex-protocol/v2/CodexErrorInfo.ts +12 -0
  133. package/src/codex-protocol/v2/CollabAgentState.ts +6 -0
  134. package/src/codex-protocol/v2/CollabAgentStatus.ts +5 -0
  135. package/src/codex-protocol/v2/CollabAgentTool.ts +5 -0
  136. package/src/codex-protocol/v2/CollabAgentToolCallStatus.ts +5 -0
  137. package/src/codex-protocol/v2/CollaborationModeListParams.ts +8 -0
  138. package/src/codex-protocol/v2/CollaborationModeListResponse.ts +9 -0
  139. package/src/codex-protocol/v2/CollaborationModeMask.ts +10 -0
  140. package/src/codex-protocol/v2/CommandAction.ts +6 -0
  141. package/src/codex-protocol/v2/CommandExecOutputDeltaNotification.ts +30 -0
  142. package/src/codex-protocol/v2/CommandExecOutputStream.ts +8 -0
  143. package/src/codex-protocol/v2/CommandExecParams.ts +105 -0
  144. package/src/codex-protocol/v2/CommandExecResizeParams.ts +18 -0
  145. package/src/codex-protocol/v2/CommandExecResizeResponse.ts +8 -0
  146. package/src/codex-protocol/v2/CommandExecResponse.ts +24 -0
  147. package/src/codex-protocol/v2/CommandExecTerminalSize.ts +16 -0
  148. package/src/codex-protocol/v2/CommandExecTerminateParams.ts +13 -0
  149. package/src/codex-protocol/v2/CommandExecTerminateResponse.ts +8 -0
  150. package/src/codex-protocol/v2/CommandExecWriteParams.ts +22 -0
  151. package/src/codex-protocol/v2/CommandExecWriteResponse.ts +8 -0
  152. package/src/codex-protocol/v2/CommandExecutionApprovalDecision.ts +7 -0
  153. package/src/codex-protocol/v2/CommandExecutionOutputDeltaNotification.ts +5 -0
  154. package/src/codex-protocol/v2/CommandExecutionRequestApprovalParams.ts +62 -0
  155. package/src/codex-protocol/v2/CommandExecutionRequestApprovalResponse.ts +6 -0
  156. package/src/codex-protocol/v2/CommandExecutionSource.ts +5 -0
  157. package/src/codex-protocol/v2/CommandExecutionStatus.ts +5 -0
  158. package/src/codex-protocol/v2/CommandMigration.ts +5 -0
  159. package/src/codex-protocol/v2/ComputerUseRequirements.ts +5 -0
  160. package/src/codex-protocol/v2/Config.ts +26 -0
  161. package/src/codex-protocol/v2/ConfigBatchWriteParams.ts +14 -0
  162. package/src/codex-protocol/v2/ConfigEdit.ts +7 -0
  163. package/src/codex-protocol/v2/ConfigLayer.ts +7 -0
  164. package/src/codex-protocol/v2/ConfigLayerMetadata.ts +6 -0
  165. package/src/codex-protocol/v2/ConfigLayerSource.ts +21 -0
  166. package/src/codex-protocol/v2/ConfigReadParams.ts +11 -0
  167. package/src/codex-protocol/v2/ConfigReadResponse.ts +8 -0
  168. package/src/codex-protocol/v2/ConfigRequirements.ts +13 -0
  169. package/src/codex-protocol/v2/ConfigRequirementsReadResponse.ts +10 -0
  170. package/src/codex-protocol/v2/ConfigValueWriteParams.ts +11 -0
  171. package/src/codex-protocol/v2/ConfigWarningNotification.ts +22 -0
  172. package/src/codex-protocol/v2/ConfigWriteResponse.ts +12 -0
  173. package/src/codex-protocol/v2/ConfiguredHookHandler.ts +5 -0
  174. package/src/codex-protocol/v2/ConfiguredHookMatcherGroup.ts +6 -0
  175. package/src/codex-protocol/v2/ContextCompactedNotification.ts +8 -0
  176. package/src/codex-protocol/v2/CreditsSnapshot.ts +5 -0
  177. package/src/codex-protocol/v2/DeprecationNoticeNotification.ts +13 -0
  178. package/src/codex-protocol/v2/DynamicToolCallOutputContentItem.ts +5 -0
  179. package/src/codex-protocol/v2/DynamicToolCallParams.ts +6 -0
  180. package/src/codex-protocol/v2/DynamicToolCallResponse.ts +6 -0
  181. package/src/codex-protocol/v2/DynamicToolCallStatus.ts +5 -0
  182. package/src/codex-protocol/v2/DynamicToolSpec.ts +6 -0
  183. package/src/codex-protocol/v2/EnvironmentAddParams.ts +5 -0
  184. package/src/codex-protocol/v2/EnvironmentAddResponse.ts +5 -0
  185. package/src/codex-protocol/v2/ErrorNotification.ts +6 -0
  186. package/src/codex-protocol/v2/ExecPolicyAmendment.ts +5 -0
  187. package/src/codex-protocol/v2/ExperimentalFeature.ts +37 -0
  188. package/src/codex-protocol/v2/ExperimentalFeatureEnablementSetParams.ts +12 -0
  189. package/src/codex-protocol/v2/ExperimentalFeatureEnablementSetResponse.ts +9 -0
  190. package/src/codex-protocol/v2/ExperimentalFeatureListParams.ts +19 -0
  191. package/src/codex-protocol/v2/ExperimentalFeatureListResponse.ts +11 -0
  192. package/src/codex-protocol/v2/ExperimentalFeatureStage.ts +5 -0
  193. package/src/codex-protocol/v2/ExternalAgentConfigDetectParams.ts +13 -0
  194. package/src/codex-protocol/v2/ExternalAgentConfigDetectResponse.ts +6 -0
  195. package/src/codex-protocol/v2/ExternalAgentConfigImportCompletedNotification.ts +5 -0
  196. package/src/codex-protocol/v2/ExternalAgentConfigImportParams.ts +6 -0
  197. package/src/codex-protocol/v2/ExternalAgentConfigImportResponse.ts +5 -0
  198. package/src/codex-protocol/v2/ExternalAgentConfigMigrationItem.ts +11 -0
  199. package/src/codex-protocol/v2/ExternalAgentConfigMigrationItemType.ts +5 -0
  200. package/src/codex-protocol/v2/FeedbackUploadParams.ts +5 -0
  201. package/src/codex-protocol/v2/FeedbackUploadResponse.ts +5 -0
  202. package/src/codex-protocol/v2/FileChangeApprovalDecision.ts +5 -0
  203. package/src/codex-protocol/v2/FileChangeOutputDeltaNotification.ts +10 -0
  204. package/src/codex-protocol/v2/FileChangePatchUpdatedNotification.ts +6 -0
  205. package/src/codex-protocol/v2/FileChangeRequestApprovalParams.ts +18 -0
  206. package/src/codex-protocol/v2/FileChangeRequestApprovalResponse.ts +6 -0
  207. package/src/codex-protocol/v2/FileSystemAccessMode.ts +5 -0
  208. package/src/codex-protocol/v2/FileSystemPath.ts +7 -0
  209. package/src/codex-protocol/v2/FileSystemSandboxEntry.ts +7 -0
  210. package/src/codex-protocol/v2/FileSystemSpecialPath.ts +5 -0
  211. package/src/codex-protocol/v2/FileUpdateChange.ts +6 -0
  212. package/src/codex-protocol/v2/ForcedChatgptWorkspaceIds.ts +8 -0
  213. package/src/codex-protocol/v2/FsChangedNotification.ts +17 -0
  214. package/src/codex-protocol/v2/FsCopyParams.ts +21 -0
  215. package/src/codex-protocol/v2/FsCopyResponse.ts +8 -0
  216. package/src/codex-protocol/v2/FsCreateDirectoryParams.ts +17 -0
  217. package/src/codex-protocol/v2/FsCreateDirectoryResponse.ts +8 -0
  218. package/src/codex-protocol/v2/FsGetMetadataParams.ts +13 -0
  219. package/src/codex-protocol/v2/FsGetMetadataResponse.ts +28 -0
  220. package/src/codex-protocol/v2/FsReadDirectoryEntry.ts +20 -0
  221. package/src/codex-protocol/v2/FsReadDirectoryParams.ts +13 -0
  222. package/src/codex-protocol/v2/FsReadDirectoryResponse.ts +13 -0
  223. package/src/codex-protocol/v2/FsReadFileParams.ts +13 -0
  224. package/src/codex-protocol/v2/FsReadFileResponse.ts +12 -0
  225. package/src/codex-protocol/v2/FsRemoveParams.ts +21 -0
  226. package/src/codex-protocol/v2/FsRemoveResponse.ts +8 -0
  227. package/src/codex-protocol/v2/FsUnwatchParams.ts +12 -0
  228. package/src/codex-protocol/v2/FsUnwatchResponse.ts +8 -0
  229. package/src/codex-protocol/v2/FsWatchParams.ts +17 -0
  230. package/src/codex-protocol/v2/FsWatchResponse.ts +13 -0
  231. package/src/codex-protocol/v2/FsWriteFileParams.ts +17 -0
  232. package/src/codex-protocol/v2/FsWriteFileResponse.ts +8 -0
  233. package/src/codex-protocol/v2/GetAccountParams.ts +13 -0
  234. package/src/codex-protocol/v2/GetAccountRateLimitsResponse.ts +14 -0
  235. package/src/codex-protocol/v2/GetAccountResponse.ts +6 -0
  236. package/src/codex-protocol/v2/GitInfo.ts +5 -0
  237. package/src/codex-protocol/v2/GrantedPermissionProfile.ts +7 -0
  238. package/src/codex-protocol/v2/GuardianApprovalReview.ts +13 -0
  239. package/src/codex-protocol/v2/GuardianApprovalReviewAction.ts +9 -0
  240. package/src/codex-protocol/v2/GuardianApprovalReviewStatus.ts +8 -0
  241. package/src/codex-protocol/v2/GuardianCommandSource.ts +5 -0
  242. package/src/codex-protocol/v2/GuardianRiskLevel.ts +8 -0
  243. package/src/codex-protocol/v2/GuardianUserAuthorization.ts +8 -0
  244. package/src/codex-protocol/v2/GuardianWarningNotification.ts +13 -0
  245. package/src/codex-protocol/v2/HookCompletedNotification.ts +6 -0
  246. package/src/codex-protocol/v2/HookErrorInfo.ts +5 -0
  247. package/src/codex-protocol/v2/HookEventName.ts +5 -0
  248. package/src/codex-protocol/v2/HookExecutionMode.ts +5 -0
  249. package/src/codex-protocol/v2/HookHandlerType.ts +5 -0
  250. package/src/codex-protocol/v2/HookMetadata.ts +10 -0
  251. package/src/codex-protocol/v2/HookMigration.ts +5 -0
  252. package/src/codex-protocol/v2/HookOutputEntry.ts +6 -0
  253. package/src/codex-protocol/v2/HookOutputEntryKind.ts +5 -0
  254. package/src/codex-protocol/v2/HookPromptFragment.ts +5 -0
  255. package/src/codex-protocol/v2/HookRunStatus.ts +5 -0
  256. package/src/codex-protocol/v2/HookRunSummary.ts +13 -0
  257. package/src/codex-protocol/v2/HookScope.ts +5 -0
  258. package/src/codex-protocol/v2/HookSource.ts +5 -0
  259. package/src/codex-protocol/v2/HookStartedNotification.ts +6 -0
  260. package/src/codex-protocol/v2/HookTrustStatus.ts +5 -0
  261. package/src/codex-protocol/v2/HooksListEntry.ts +7 -0
  262. package/src/codex-protocol/v2/HooksListParams.ts +9 -0
  263. package/src/codex-protocol/v2/HooksListResponse.ts +6 -0
  264. package/src/codex-protocol/v2/ItemCompletedNotification.ts +10 -0
  265. package/src/codex-protocol/v2/ItemGuardianApprovalReviewCompletedNotification.ts +38 -0
  266. package/src/codex-protocol/v2/ItemGuardianApprovalReviewStartedNotification.ts +33 -0
  267. package/src/codex-protocol/v2/ItemStartedNotification.ts +10 -0
  268. package/src/codex-protocol/v2/ListMcpServerStatusParams.ts +19 -0
  269. package/src/codex-protocol/v2/ListMcpServerStatusResponse.ts +11 -0
  270. package/src/codex-protocol/v2/LoginAccountParams.ts +21 -0
  271. package/src/codex-protocol/v2/LoginAccountResponse.ts +17 -0
  272. package/src/codex-protocol/v2/LogoutAccountResponse.ts +5 -0
  273. package/src/codex-protocol/v2/ManagedHooksRequirements.ts +6 -0
  274. package/src/codex-protocol/v2/MarketplaceAddParams.ts +5 -0
  275. package/src/codex-protocol/v2/MarketplaceAddResponse.ts +6 -0
  276. package/src/codex-protocol/v2/MarketplaceInterface.ts +5 -0
  277. package/src/codex-protocol/v2/MarketplaceLoadErrorInfo.ts +6 -0
  278. package/src/codex-protocol/v2/MarketplaceRemoveParams.ts +5 -0
  279. package/src/codex-protocol/v2/MarketplaceRemoveResponse.ts +6 -0
  280. package/src/codex-protocol/v2/MarketplaceUpgradeErrorInfo.ts +5 -0
  281. package/src/codex-protocol/v2/MarketplaceUpgradeParams.ts +5 -0
  282. package/src/codex-protocol/v2/MarketplaceUpgradeResponse.ts +7 -0
  283. package/src/codex-protocol/v2/McpAuthStatus.ts +5 -0
  284. package/src/codex-protocol/v2/McpElicitationArrayType.ts +5 -0
  285. package/src/codex-protocol/v2/McpElicitationBooleanSchema.ts +6 -0
  286. package/src/codex-protocol/v2/McpElicitationBooleanType.ts +5 -0
  287. package/src/codex-protocol/v2/McpElicitationConstOption.ts +5 -0
  288. package/src/codex-protocol/v2/McpElicitationEnumSchema.ts +8 -0
  289. package/src/codex-protocol/v2/McpElicitationLegacyTitledEnumSchema.ts +6 -0
  290. package/src/codex-protocol/v2/McpElicitationMultiSelectEnumSchema.ts +7 -0
  291. package/src/codex-protocol/v2/McpElicitationNumberSchema.ts +6 -0
  292. package/src/codex-protocol/v2/McpElicitationNumberType.ts +5 -0
  293. package/src/codex-protocol/v2/McpElicitationObjectType.ts +5 -0
  294. package/src/codex-protocol/v2/McpElicitationPrimitiveSchema.ts +9 -0
  295. package/src/codex-protocol/v2/McpElicitationSchema.ts +13 -0
  296. package/src/codex-protocol/v2/McpElicitationSingleSelectEnumSchema.ts +7 -0
  297. package/src/codex-protocol/v2/McpElicitationStringFormat.ts +5 -0
  298. package/src/codex-protocol/v2/McpElicitationStringSchema.ts +7 -0
  299. package/src/codex-protocol/v2/McpElicitationStringType.ts +5 -0
  300. package/src/codex-protocol/v2/McpElicitationTitledEnumItems.ts +6 -0
  301. package/src/codex-protocol/v2/McpElicitationTitledMultiSelectEnumSchema.ts +7 -0
  302. package/src/codex-protocol/v2/McpElicitationTitledSingleSelectEnumSchema.ts +7 -0
  303. package/src/codex-protocol/v2/McpElicitationUntitledEnumItems.ts +6 -0
  304. package/src/codex-protocol/v2/McpElicitationUntitledMultiSelectEnumSchema.ts +7 -0
  305. package/src/codex-protocol/v2/McpElicitationUntitledSingleSelectEnumSchema.ts +6 -0
  306. package/src/codex-protocol/v2/McpResourceReadParams.ts +5 -0
  307. package/src/codex-protocol/v2/McpResourceReadResponse.ts +6 -0
  308. package/src/codex-protocol/v2/McpServerElicitationAction.ts +5 -0
  309. package/src/codex-protocol/v2/McpServerElicitationRequestParams.ts +16 -0
  310. package/src/codex-protocol/v2/McpServerElicitationRequestResponse.ts +17 -0
  311. package/src/codex-protocol/v2/McpServerMigration.ts +5 -0
  312. package/src/codex-protocol/v2/McpServerOauthLoginCompletedNotification.ts +5 -0
  313. package/src/codex-protocol/v2/McpServerOauthLoginParams.ts +5 -0
  314. package/src/codex-protocol/v2/McpServerOauthLoginResponse.ts +5 -0
  315. package/src/codex-protocol/v2/McpServerRefreshResponse.ts +5 -0
  316. package/src/codex-protocol/v2/McpServerStartupState.ts +5 -0
  317. package/src/codex-protocol/v2/McpServerStatus.ts +9 -0
  318. package/src/codex-protocol/v2/McpServerStatusDetail.ts +5 -0
  319. package/src/codex-protocol/v2/McpServerStatusUpdatedNotification.ts +6 -0
  320. package/src/codex-protocol/v2/McpServerToolCallParams.ts +6 -0
  321. package/src/codex-protocol/v2/McpServerToolCallResponse.ts +6 -0
  322. package/src/codex-protocol/v2/McpToolCallError.ts +5 -0
  323. package/src/codex-protocol/v2/McpToolCallProgressNotification.ts +5 -0
  324. package/src/codex-protocol/v2/McpToolCallResult.ts +6 -0
  325. package/src/codex-protocol/v2/McpToolCallStatus.ts +5 -0
  326. package/src/codex-protocol/v2/MemoryCitation.ts +6 -0
  327. package/src/codex-protocol/v2/MemoryCitationEntry.ts +5 -0
  328. package/src/codex-protocol/v2/MemoryResetResponse.ts +5 -0
  329. package/src/codex-protocol/v2/MergeStrategy.ts +5 -0
  330. package/src/codex-protocol/v2/MigrationDetails.ts +11 -0
  331. package/src/codex-protocol/v2/MockExperimentalMethodParams.ts +9 -0
  332. package/src/codex-protocol/v2/MockExperimentalMethodResponse.ts +9 -0
  333. package/src/codex-protocol/v2/Model.ts +19 -0
  334. package/src/codex-protocol/v2/ModelAvailabilityNux.ts +5 -0
  335. package/src/codex-protocol/v2/ModelListParams.ts +17 -0
  336. package/src/codex-protocol/v2/ModelListResponse.ts +11 -0
  337. package/src/codex-protocol/v2/ModelProviderCapabilitiesReadParams.ts +5 -0
  338. package/src/codex-protocol/v2/ModelProviderCapabilitiesReadResponse.ts +5 -0
  339. package/src/codex-protocol/v2/ModelRerouteReason.ts +5 -0
  340. package/src/codex-protocol/v2/ModelReroutedNotification.ts +6 -0
  341. package/src/codex-protocol/v2/ModelServiceTier.ts +5 -0
  342. package/src/codex-protocol/v2/ModelUpgradeInfo.ts +5 -0
  343. package/src/codex-protocol/v2/ModelVerification.ts +5 -0
  344. package/src/codex-protocol/v2/ModelVerificationNotification.ts +6 -0
  345. package/src/codex-protocol/v2/NetworkAccess.ts +5 -0
  346. package/src/codex-protocol/v2/NetworkApprovalContext.ts +6 -0
  347. package/src/codex-protocol/v2/NetworkApprovalProtocol.ts +5 -0
  348. package/src/codex-protocol/v2/NetworkDomainPermission.ts +5 -0
  349. package/src/codex-protocol/v2/NetworkPolicyAmendment.ts +6 -0
  350. package/src/codex-protocol/v2/NetworkPolicyRuleAction.ts +5 -0
  351. package/src/codex-protocol/v2/NetworkRequirements.ts +32 -0
  352. package/src/codex-protocol/v2/NetworkUnixSocketPermission.ts +5 -0
  353. package/src/codex-protocol/v2/NonSteerableTurnKind.ts +5 -0
  354. package/src/codex-protocol/v2/OverriddenMetadata.ts +7 -0
  355. package/src/codex-protocol/v2/PatchApplyStatus.ts +5 -0
  356. package/src/codex-protocol/v2/PatchChangeKind.ts +5 -0
  357. package/src/codex-protocol/v2/PermissionGrantScope.ts +5 -0
  358. package/src/codex-protocol/v2/PermissionProfileListParams.ts +17 -0
  359. package/src/codex-protocol/v2/PermissionProfileListResponse.ts +11 -0
  360. package/src/codex-protocol/v2/PermissionProfileSummary.ts +13 -0
  361. package/src/codex-protocol/v2/PermissionsRequestApprovalParams.ts +11 -0
  362. package/src/codex-protocol/v2/PermissionsRequestApprovalResponse.ts +11 -0
  363. package/src/codex-protocol/v2/PlanDeltaNotification.ts +9 -0
  364. package/src/codex-protocol/v2/PluginAuthPolicy.ts +5 -0
  365. package/src/codex-protocol/v2/PluginAvailability.ts +5 -0
  366. package/src/codex-protocol/v2/PluginDetail.ts +10 -0
  367. package/src/codex-protocol/v2/PluginHookSummary.ts +6 -0
  368. package/src/codex-protocol/v2/PluginInstallParams.ts +6 -0
  369. package/src/codex-protocol/v2/PluginInstallPolicy.ts +5 -0
  370. package/src/codex-protocol/v2/PluginInstallResponse.ts +7 -0
  371. package/src/codex-protocol/v2/PluginInstalledParams.ts +15 -0
  372. package/src/codex-protocol/v2/PluginInstalledResponse.ts +7 -0
  373. package/src/codex-protocol/v2/PluginInterface.ts +35 -0
  374. package/src/codex-protocol/v2/PluginListMarketplaceKind.ts +5 -0
  375. package/src/codex-protocol/v2/PluginListParams.ts +17 -0
  376. package/src/codex-protocol/v2/PluginListResponse.ts +7 -0
  377. package/src/codex-protocol/v2/PluginMarketplaceEntry.ts +13 -0
  378. package/src/codex-protocol/v2/PluginReadParams.ts +6 -0
  379. package/src/codex-protocol/v2/PluginReadResponse.ts +6 -0
  380. package/src/codex-protocol/v2/PluginShareCheckoutParams.ts +5 -0
  381. package/src/codex-protocol/v2/PluginShareCheckoutResponse.ts +6 -0
  382. package/src/codex-protocol/v2/PluginShareContext.ts +11 -0
  383. package/src/codex-protocol/v2/PluginShareDeleteParams.ts +5 -0
  384. package/src/codex-protocol/v2/PluginShareDeleteResponse.ts +5 -0
  385. package/src/codex-protocol/v2/PluginShareDiscoverability.ts +5 -0
  386. package/src/codex-protocol/v2/PluginShareListItem.ts +7 -0
  387. package/src/codex-protocol/v2/PluginShareListParams.ts +5 -0
  388. package/src/codex-protocol/v2/PluginShareListResponse.ts +6 -0
  389. package/src/codex-protocol/v2/PluginSharePrincipal.ts +7 -0
  390. package/src/codex-protocol/v2/PluginSharePrincipalRole.ts +5 -0
  391. package/src/codex-protocol/v2/PluginSharePrincipalType.ts +5 -0
  392. package/src/codex-protocol/v2/PluginShareSaveParams.ts +8 -0
  393. package/src/codex-protocol/v2/PluginShareSaveResponse.ts +5 -0
  394. package/src/codex-protocol/v2/PluginShareTarget.ts +7 -0
  395. package/src/codex-protocol/v2/PluginShareTargetRole.ts +5 -0
  396. package/src/codex-protocol/v2/PluginShareUpdateDiscoverability.ts +5 -0
  397. package/src/codex-protocol/v2/PluginShareUpdateTargetsParams.ts +7 -0
  398. package/src/codex-protocol/v2/PluginShareUpdateTargetsResponse.ts +7 -0
  399. package/src/codex-protocol/v2/PluginSkillReadParams.ts +5 -0
  400. package/src/codex-protocol/v2/PluginSkillReadResponse.ts +5 -0
  401. package/src/codex-protocol/v2/PluginSource.ts +6 -0
  402. package/src/codex-protocol/v2/PluginSummary.ts +27 -0
  403. package/src/codex-protocol/v2/PluginUninstallParams.ts +5 -0
  404. package/src/codex-protocol/v2/PluginUninstallResponse.ts +5 -0
  405. package/src/codex-protocol/v2/PluginsMigration.ts +5 -0
  406. package/src/codex-protocol/v2/ProcessExitedNotification.ts +42 -0
  407. package/src/codex-protocol/v2/ProcessKillParams.ts +12 -0
  408. package/src/codex-protocol/v2/ProcessKillResponse.ts +8 -0
  409. package/src/codex-protocol/v2/ProcessOutputDeltaNotification.ts +26 -0
  410. package/src/codex-protocol/v2/ProcessOutputStream.ts +8 -0
  411. package/src/codex-protocol/v2/ProcessResizePtyParams.ts +17 -0
  412. package/src/codex-protocol/v2/ProcessResizePtyResponse.ts +8 -0
  413. package/src/codex-protocol/v2/ProcessSpawnParams.ts +73 -0
  414. package/src/codex-protocol/v2/ProcessSpawnResponse.ts +8 -0
  415. package/src/codex-protocol/v2/ProcessTerminalSize.ts +16 -0
  416. package/src/codex-protocol/v2/ProcessWriteStdinParams.ts +21 -0
  417. package/src/codex-protocol/v2/ProcessWriteStdinResponse.ts +8 -0
  418. package/src/codex-protocol/v2/ProfileV2.ts +19 -0
  419. package/src/codex-protocol/v2/RateLimitReachedType.ts +5 -0
  420. package/src/codex-protocol/v2/RateLimitSnapshot.ts +9 -0
  421. package/src/codex-protocol/v2/RateLimitWindow.ts +5 -0
  422. package/src/codex-protocol/v2/RawResponseItemCompletedNotification.ts +6 -0
  423. package/src/codex-protocol/v2/ReasoningEffortOption.ts +6 -0
  424. package/src/codex-protocol/v2/ReasoningSummaryPartAddedNotification.ts +5 -0
  425. package/src/codex-protocol/v2/ReasoningSummaryTextDeltaNotification.ts +5 -0
  426. package/src/codex-protocol/v2/ReasoningTextDeltaNotification.ts +5 -0
  427. package/src/codex-protocol/v2/RemoteControlConnectionStatus.ts +5 -0
  428. package/src/codex-protocol/v2/RemoteControlDisableResponse.ts +6 -0
  429. package/src/codex-protocol/v2/RemoteControlEnableResponse.ts +6 -0
  430. package/src/codex-protocol/v2/RemoteControlStatusChangedNotification.ts +9 -0
  431. package/src/codex-protocol/v2/RemoteControlStatusReadResponse.ts +6 -0
  432. package/src/codex-protocol/v2/RequestPermissionProfile.ts +7 -0
  433. package/src/codex-protocol/v2/ResidencyRequirement.ts +5 -0
  434. package/src/codex-protocol/v2/ReviewDelivery.ts +5 -0
  435. package/src/codex-protocol/v2/ReviewStartParams.ts +12 -0
  436. package/src/codex-protocol/v2/ReviewStartResponse.ts +13 -0
  437. package/src/codex-protocol/v2/ReviewTarget.ts +9 -0
  438. package/src/codex-protocol/v2/SandboxMode.ts +5 -0
  439. package/src/codex-protocol/v2/SandboxPolicy.ts +7 -0
  440. package/src/codex-protocol/v2/SandboxWorkspaceWrite.ts +5 -0
  441. package/src/codex-protocol/v2/SendAddCreditsNudgeEmailParams.ts +6 -0
  442. package/src/codex-protocol/v2/SendAddCreditsNudgeEmailResponse.ts +6 -0
  443. package/src/codex-protocol/v2/ServerRequestResolvedNotification.ts +6 -0
  444. package/src/codex-protocol/v2/SessionMigration.ts +5 -0
  445. package/src/codex-protocol/v2/SessionSource.ts +6 -0
  446. package/src/codex-protocol/v2/SkillDependencies.ts +6 -0
  447. package/src/codex-protocol/v2/SkillErrorInfo.ts +5 -0
  448. package/src/codex-protocol/v2/SkillInterface.ts +6 -0
  449. package/src/codex-protocol/v2/SkillMetadata.ts +13 -0
  450. package/src/codex-protocol/v2/SkillScope.ts +5 -0
  451. package/src/codex-protocol/v2/SkillSummary.ts +7 -0
  452. package/src/codex-protocol/v2/SkillToolDependency.ts +5 -0
  453. package/src/codex-protocol/v2/SkillsChangedNotification.ts +11 -0
  454. package/src/codex-protocol/v2/SkillsConfigWriteParams.ts +14 -0
  455. package/src/codex-protocol/v2/SkillsConfigWriteResponse.ts +5 -0
  456. package/src/codex-protocol/v2/SkillsListEntry.ts +7 -0
  457. package/src/codex-protocol/v2/SkillsListParams.ts +13 -0
  458. package/src/codex-protocol/v2/SkillsListResponse.ts +6 -0
  459. package/src/codex-protocol/v2/SortDirection.ts +5 -0
  460. package/src/codex-protocol/v2/SubagentMigration.ts +5 -0
  461. package/src/codex-protocol/v2/TerminalInteractionNotification.ts +5 -0
  462. package/src/codex-protocol/v2/TextElement.ts +14 -0
  463. package/src/codex-protocol/v2/TextPosition.ts +13 -0
  464. package/src/codex-protocol/v2/TextRange.ts +6 -0
  465. package/src/codex-protocol/v2/Thread.ts +86 -0
  466. package/src/codex-protocol/v2/ThreadActiveFlag.ts +5 -0
  467. package/src/codex-protocol/v2/ThreadApproveGuardianDeniedActionParams.ts +10 -0
  468. package/src/codex-protocol/v2/ThreadApproveGuardianDeniedActionResponse.ts +5 -0
  469. package/src/codex-protocol/v2/ThreadArchiveParams.ts +5 -0
  470. package/src/codex-protocol/v2/ThreadArchiveResponse.ts +5 -0
  471. package/src/codex-protocol/v2/ThreadArchivedNotification.ts +5 -0
  472. package/src/codex-protocol/v2/ThreadBackgroundTerminalsCleanParams.ts +5 -0
  473. package/src/codex-protocol/v2/ThreadBackgroundTerminalsCleanResponse.ts +5 -0
  474. package/src/codex-protocol/v2/ThreadClosedNotification.ts +5 -0
  475. package/src/codex-protocol/v2/ThreadCompactStartParams.ts +5 -0
  476. package/src/codex-protocol/v2/ThreadCompactStartResponse.ts +5 -0
  477. package/src/codex-protocol/v2/ThreadDecrementElicitationParams.ts +12 -0
  478. package/src/codex-protocol/v2/ThreadDecrementElicitationResponse.ts +16 -0
  479. package/src/codex-protocol/v2/ThreadForkParams.ts +60 -0
  480. package/src/codex-protocol/v2/ThreadForkResponse.ts +35 -0
  481. package/src/codex-protocol/v2/ThreadGoal.ts +6 -0
  482. package/src/codex-protocol/v2/ThreadGoalClearParams.ts +5 -0
  483. package/src/codex-protocol/v2/ThreadGoalClearResponse.ts +5 -0
  484. package/src/codex-protocol/v2/ThreadGoalClearedNotification.ts +5 -0
  485. package/src/codex-protocol/v2/ThreadGoalGetParams.ts +5 -0
  486. package/src/codex-protocol/v2/ThreadGoalGetResponse.ts +6 -0
  487. package/src/codex-protocol/v2/ThreadGoalSetParams.ts +6 -0
  488. package/src/codex-protocol/v2/ThreadGoalSetResponse.ts +6 -0
  489. package/src/codex-protocol/v2/ThreadGoalStatus.ts +5 -0
  490. package/src/codex-protocol/v2/ThreadGoalUpdatedNotification.ts +6 -0
  491. package/src/codex-protocol/v2/ThreadIncrementElicitationParams.ts +12 -0
  492. package/src/codex-protocol/v2/ThreadIncrementElicitationResponse.ts +16 -0
  493. package/src/codex-protocol/v2/ThreadInjectItemsParams.ts +10 -0
  494. package/src/codex-protocol/v2/ThreadInjectItemsResponse.ts +5 -0
  495. package/src/codex-protocol/v2/ThreadItem.ts +101 -0
  496. package/src/codex-protocol/v2/ThreadListParams.ts +54 -0
  497. package/src/codex-protocol/v2/ThreadListResponse.ts +18 -0
  498. package/src/codex-protocol/v2/ThreadLoadedListParams.ts +13 -0
  499. package/src/codex-protocol/v2/ThreadLoadedListResponse.ts +14 -0
  500. package/src/codex-protocol/v2/ThreadMemoryModeSetParams.ts +6 -0
  501. package/src/codex-protocol/v2/ThreadMemoryModeSetResponse.ts +5 -0
  502. package/src/codex-protocol/v2/ThreadMetadataGitInfoUpdateParams.ts +20 -0
  503. package/src/codex-protocol/v2/ThreadMetadataUpdateParams.ts +12 -0
  504. package/src/codex-protocol/v2/ThreadMetadataUpdateResponse.ts +6 -0
  505. package/src/codex-protocol/v2/ThreadNameUpdatedNotification.ts +5 -0
  506. package/src/codex-protocol/v2/ThreadReadParams.ts +9 -0
  507. package/src/codex-protocol/v2/ThreadReadResponse.ts +6 -0
  508. package/src/codex-protocol/v2/ThreadRealtimeAppendAudioParams.ts +9 -0
  509. package/src/codex-protocol/v2/ThreadRealtimeAppendAudioResponse.ts +8 -0
  510. package/src/codex-protocol/v2/ThreadRealtimeAppendTextParams.ts +8 -0
  511. package/src/codex-protocol/v2/ThreadRealtimeAppendTextResponse.ts +8 -0
  512. package/src/codex-protocol/v2/ThreadRealtimeAudioChunk.ts +8 -0
  513. package/src/codex-protocol/v2/ThreadRealtimeClosedNotification.ts +8 -0
  514. package/src/codex-protocol/v2/ThreadRealtimeErrorNotification.ts +8 -0
  515. package/src/codex-protocol/v2/ThreadRealtimeItemAddedNotification.ts +9 -0
  516. package/src/codex-protocol/v2/ThreadRealtimeListVoicesParams.ts +8 -0
  517. package/src/codex-protocol/v2/ThreadRealtimeListVoicesResponse.ts +9 -0
  518. package/src/codex-protocol/v2/ThreadRealtimeOutputAudioDeltaNotification.ts +9 -0
  519. package/src/codex-protocol/v2/ThreadRealtimeSdpNotification.ts +8 -0
  520. package/src/codex-protocol/v2/ThreadRealtimeStartParams.ts +16 -0
  521. package/src/codex-protocol/v2/ThreadRealtimeStartResponse.ts +8 -0
  522. package/src/codex-protocol/v2/ThreadRealtimeStartTransport.ts +13 -0
  523. package/src/codex-protocol/v2/ThreadRealtimeStartedNotification.ts +9 -0
  524. package/src/codex-protocol/v2/ThreadRealtimeStopParams.ts +8 -0
  525. package/src/codex-protocol/v2/ThreadRealtimeStopResponse.ts +8 -0
  526. package/src/codex-protocol/v2/ThreadRealtimeTranscriptDeltaNotification.ts +13 -0
  527. package/src/codex-protocol/v2/ThreadRealtimeTranscriptDoneNotification.ts +13 -0
  528. package/src/codex-protocol/v2/ThreadResumeParams.ts +71 -0
  529. package/src/codex-protocol/v2/ThreadResumeResponse.ts +35 -0
  530. package/src/codex-protocol/v2/ThreadRollbackParams.ts +12 -0
  531. package/src/codex-protocol/v2/ThreadRollbackResponse.ts +14 -0
  532. package/src/codex-protocol/v2/ThreadSetNameParams.ts +5 -0
  533. package/src/codex-protocol/v2/ThreadSetNameResponse.ts +5 -0
  534. package/src/codex-protocol/v2/ThreadSettings.ts +14 -0
  535. package/src/codex-protocol/v2/ThreadSettingsUpdateParams.ts +61 -0
  536. package/src/codex-protocol/v2/ThreadSettingsUpdateResponse.ts +5 -0
  537. package/src/codex-protocol/v2/ThreadSettingsUpdatedNotification.ts +6 -0
  538. package/src/codex-protocol/v2/ThreadShellCommandParams.ts +12 -0
  539. package/src/codex-protocol/v2/ThreadShellCommandResponse.ts +5 -0
  540. package/src/codex-protocol/v2/ThreadSortKey.ts +5 -0
  541. package/src/codex-protocol/v2/ThreadSource.ts +5 -0
  542. package/src/codex-protocol/v2/ThreadSourceKind.ts +5 -0
  543. package/src/codex-protocol/v2/ThreadStartParams.ts +57 -0
  544. package/src/codex-protocol/v2/ThreadStartResponse.ts +35 -0
  545. package/src/codex-protocol/v2/ThreadStartSource.ts +5 -0
  546. package/src/codex-protocol/v2/ThreadStartedNotification.ts +6 -0
  547. package/src/codex-protocol/v2/ThreadStatus.ts +6 -0
  548. package/src/codex-protocol/v2/ThreadStatusChangedNotification.ts +6 -0
  549. package/src/codex-protocol/v2/ThreadTokenUsage.ts +6 -0
  550. package/src/codex-protocol/v2/ThreadTokenUsageUpdatedNotification.ts +6 -0
  551. package/src/codex-protocol/v2/ThreadTurnsItemsListParams.ts +18 -0
  552. package/src/codex-protocol/v2/ThreadTurnsItemsListResponse.ts +16 -0
  553. package/src/codex-protocol/v2/ThreadTurnsListParams.ts +23 -0
  554. package/src/codex-protocol/v2/ThreadTurnsListResponse.ts +18 -0
  555. package/src/codex-protocol/v2/ThreadUnarchiveParams.ts +5 -0
  556. package/src/codex-protocol/v2/ThreadUnarchiveResponse.ts +6 -0
  557. package/src/codex-protocol/v2/ThreadUnarchivedNotification.ts +5 -0
  558. package/src/codex-protocol/v2/ThreadUnsubscribeParams.ts +5 -0
  559. package/src/codex-protocol/v2/ThreadUnsubscribeResponse.ts +6 -0
  560. package/src/codex-protocol/v2/ThreadUnsubscribeStatus.ts +5 -0
  561. package/src/codex-protocol/v2/TokenUsageBreakdown.ts +5 -0
  562. package/src/codex-protocol/v2/ToolRequestUserInputAnswer.ts +8 -0
  563. package/src/codex-protocol/v2/ToolRequestUserInputOption.ts +8 -0
  564. package/src/codex-protocol/v2/ToolRequestUserInputParams.ts +9 -0
  565. package/src/codex-protocol/v2/ToolRequestUserInputQuestion.ts +9 -0
  566. package/src/codex-protocol/v2/ToolRequestUserInputResponse.ts +9 -0
  567. package/src/codex-protocol/v2/ToolsV2.ts +6 -0
  568. package/src/codex-protocol/v2/Turn.ts +33 -0
  569. package/src/codex-protocol/v2/TurnCompletedNotification.ts +6 -0
  570. package/src/codex-protocol/v2/TurnDiffUpdatedNotification.ts +9 -0
  571. package/src/codex-protocol/v2/TurnEnvironmentParams.ts +6 -0
  572. package/src/codex-protocol/v2/TurnError.ts +6 -0
  573. package/src/codex-protocol/v2/TurnInterruptParams.ts +5 -0
  574. package/src/codex-protocol/v2/TurnInterruptResponse.ts +5 -0
  575. package/src/codex-protocol/v2/TurnItemsView.ts +5 -0
  576. package/src/codex-protocol/v2/TurnPlanStep.ts +6 -0
  577. package/src/codex-protocol/v2/TurnPlanStepStatus.ts +5 -0
  578. package/src/codex-protocol/v2/TurnPlanUpdatedNotification.ts +6 -0
  579. package/src/codex-protocol/v2/TurnStartParams.ts +88 -0
  580. package/src/codex-protocol/v2/TurnStartResponse.ts +6 -0
  581. package/src/codex-protocol/v2/TurnStartedNotification.ts +6 -0
  582. package/src/codex-protocol/v2/TurnStatus.ts +5 -0
  583. package/src/codex-protocol/v2/TurnSteerParams.ts +15 -0
  584. package/src/codex-protocol/v2/TurnSteerResponse.ts +5 -0
  585. package/src/codex-protocol/v2/UserInput.ts +11 -0
  586. package/src/codex-protocol/v2/WarningNotification.ts +13 -0
  587. package/src/codex-protocol/v2/WebSearchAction.ts +5 -0
  588. package/src/codex-protocol/v2/WindowsSandboxReadiness.ts +5 -0
  589. package/src/codex-protocol/v2/WindowsSandboxReadinessResponse.ts +6 -0
  590. package/src/codex-protocol/v2/WindowsSandboxSetupCompletedNotification.ts +6 -0
  591. package/src/codex-protocol/v2/WindowsSandboxSetupMode.ts +5 -0
  592. package/src/codex-protocol/v2/WindowsSandboxSetupStartParams.ts +7 -0
  593. package/src/codex-protocol/v2/WindowsSandboxSetupStartResponse.ts +5 -0
  594. package/src/codex-protocol/v2/WindowsWorldWritableWarningNotification.ts +5 -0
  595. package/src/codex-protocol/v2/WriteStatus.ts +5 -0
  596. package/src/codex-protocol/v2/index.ts +503 -0
  597. package/src/column.ts +44 -0
  598. package/src/engines/claude/claude-engine.ts +769 -0
  599. package/src/engines/claude/clock.ts +48 -0
  600. package/src/engines/claude/compact.ts +107 -0
  601. package/src/engines/claude/ctx.ts +239 -0
  602. package/src/engines/claude/doctor.ts +202 -0
  603. package/src/engines/claude/env.ts +16 -0
  604. package/src/engines/claude/history.ts +504 -0
  605. package/src/engines/claude/identifiers.ts +25 -0
  606. package/src/engines/claude/identity-migration.ts +16 -0
  607. package/src/engines/claude/idle.ts +91 -0
  608. package/src/engines/claude/keys.ts +163 -0
  609. package/src/engines/claude/last.ts +52 -0
  610. package/src/engines/claude/mem.ts +124 -0
  611. package/src/engines/claude/persistence.ts +41 -0
  612. package/src/engines/claude/post-turn.ts +45 -0
  613. package/src/engines/claude/reload.ts +53 -0
  614. package/src/engines/claude/repo-fs.ts +63 -0
  615. package/src/engines/claude/resume.ts +145 -0
  616. package/src/engines/claude/send.ts +86 -0
  617. package/src/engines/claude/spawn.ts +435 -0
  618. package/src/engines/claude/state.ts +124 -0
  619. package/src/engines/claude/tmux.ts +99 -0
  620. package/src/engines/claude/wait-signals.ts +128 -0
  621. package/src/engines/claude/wait.ts +59 -0
  622. package/src/engines/codex/ask.ts +69 -0
  623. package/src/engines/codex/engine.ts +1261 -0
  624. package/src/engines/codex/events.ts +106 -0
  625. package/src/engines/codex/history.ts +385 -0
  626. package/src/engines/codex/identity-migration.ts +14 -0
  627. package/src/engines/codex/ipc-bridge-process.ts +14 -0
  628. package/src/engines/codex/ipc-bridge.ts +844 -0
  629. package/src/engines/codex/persistence.ts +236 -0
  630. package/src/engines/codex/rollout.ts +384 -0
  631. package/src/engines/codex/rpc.ts +311 -0
  632. package/src/engines/codex/supervisor.ts +648 -0
  633. package/src/engines/codex/ui-ipc.ts +374 -0
  634. package/src/engines/codex/verb-common.ts +34 -0
  635. package/src/engines/codex/verb-lifecycle.ts +94 -0
  636. package/src/engines/codex/verb-state.ts +19 -0
  637. package/src/engines/codex/verb-turns.ts +49 -0
  638. package/src/engines/codex/verbs.ts +15 -0
  639. package/src/engines/engine.ts +91 -0
  640. package/src/engines/git-worktree.ts +137 -0
  641. package/src/engines/production.ts +19 -0
  642. package/src/engines/registry.ts +70 -0
  643. package/src/engines/teammate-record.ts +113 -0
  644. package/src/engines/types.ts +334 -0
  645. package/src/env.ts +29 -0
  646. package/src/grep.ts +39 -0
  647. package/src/help.ts +433 -0
  648. package/src/identity/name.ts +58 -0
  649. package/src/identity/router.ts +80 -0
  650. package/src/identity/uuid-prefix.ts +40 -0
  651. package/src/main.ts +39 -0
  652. package/src/persistence/atomic-file.ts +74 -0
  653. package/src/persistence/identity-store.ts +294 -0
  654. package/src/persistence/identity-writer.ts +28 -0
  655. package/src/persistence/paths.ts +138 -0
  656. package/src/plugin-root.ts +26 -0
  657. package/src/proc.ts +66 -0
  658. package/src/shared/verb-args.ts +331 -0
  659. package/src/tm.ts +54 -0
  660. package/src/tmux.ts +57 -0
  661. package/src/verbs/archive.ts +211 -0
  662. package/src/verbs/ask.ts +29 -0
  663. package/src/verbs/compact.ts +25 -0
  664. package/src/verbs/context.ts +68 -0
  665. package/src/verbs/ctx.ts +21 -0
  666. package/src/verbs/format.ts +213 -0
  667. package/src/verbs/history.ts +190 -0
  668. package/src/verbs/kill.ts +61 -0
  669. package/src/verbs/last.ts +34 -0
  670. package/src/verbs/ls.ts +27 -0
  671. package/src/verbs/mem.ts +40 -0
  672. package/src/verbs/poll.ts +61 -0
  673. package/src/verbs/reload.ts +17 -0
  674. package/src/verbs/resolve.ts +14 -0
  675. package/src/verbs/resume.ts +170 -0
  676. package/src/verbs/send.ts +36 -0
  677. package/src/verbs/spawn.ts +81 -0
  678. package/src/verbs/states.ts +74 -0
  679. package/src/verbs/status.ts +26 -0
  680. package/src/verbs/wait.ts +40 -0
  681. package/src/verbs.ts +56 -0
  682. package/src/ws-types.d.ts +9 -0
  683. package/third_party/ws/LICENSE +20 -0
  684. package/third_party/ws/README.md +548 -0
  685. package/third_party/ws/UPSTREAM.md +55 -0
  686. package/third_party/ws/browser.js +8 -0
  687. package/third_party/ws/index.js +22 -0
  688. package/third_party/ws/lib/buffer-util.js +131 -0
  689. package/third_party/ws/lib/constants.js +19 -0
  690. package/third_party/ws/lib/event-target.js +292 -0
  691. package/third_party/ws/lib/extension.js +203 -0
  692. package/third_party/ws/lib/limiter.js +55 -0
  693. package/third_party/ws/lib/permessage-deflate.js +528 -0
  694. package/third_party/ws/lib/receiver.js +760 -0
  695. package/third_party/ws/lib/sender.js +607 -0
  696. package/third_party/ws/lib/stream.js +161 -0
  697. package/third_party/ws/lib/subprotocol.js +62 -0
  698. package/third_party/ws/lib/validation.js +152 -0
  699. package/third_party/ws/lib/websocket-server.js +562 -0
  700. package/third_party/ws/lib/websocket.js +1407 -0
  701. package/third_party/ws/package.json +13 -0
  702. package/third_party/ws/wrapper.mjs +21 -0
@@ -0,0 +1,137 @@
1
+ /**
2
+ * Self-managed git worktree helpers — used by engines (currently
3
+ * Codex) that do not have a native worktree concept.
4
+ *
5
+ * The Claude engine relies on `claude --worktree <slug>` and does not
6
+ * call into this module. Codex has no equivalent flag, so claudemux
7
+ * drives `git worktree add` / `git worktree remove` itself; the
8
+ * resulting worktree layout matches Claude's:
9
+ *
10
+ * <repo>/.claude/worktrees/<slug> ← runtime cwd
11
+ * branch: worktree-<slug> ← matches `claude --worktree`
12
+ *
13
+ * Decisions:
14
+ *
15
+ * - `baseRef = HEAD`. The user's pinned default for both engines;
16
+ * Claude's side configures this through its `--settings` worktree
17
+ * block, ours is just `git worktree add -b worktree-<slug> <path>
18
+ * HEAD`.
19
+ *
20
+ * - `--no-worktree` does not call these helpers; the daemon's cwd
21
+ * stays at the repo root.
22
+ */
23
+
24
+ import { existsSync } from 'node:fs'
25
+
26
+ import { spawnCapture } from '../proc'
27
+ import { worktreeBranchFor, worktreePathFor } from '../persistence/paths'
28
+
29
+ /**
30
+ * Create the worktree for a Codex teammate. Returns `null` on
31
+ * success, or a human-readable error message describing why the
32
+ * `git worktree add` invocation failed.
33
+ *
34
+ * Idempotent: a worktree-path that already exists is accepted —
35
+ * either the previous spawn left a clean directory or the user
36
+ * pre-created it via `claude --worktree <slug>` from the same repo.
37
+ */
38
+ export async function provisionCodexWorktree(
39
+ repo: string,
40
+ slug: string,
41
+ ): Promise<string | null> {
42
+ const path = worktreePathFor(repo, slug)
43
+ if (existsSync(path)) return null
44
+ const branch = worktreeBranchFor(slug)
45
+ const args = ['git', '-C', repo, 'worktree', 'add', '-b', branch, path, 'HEAD']
46
+ const result = await spawnCapture(args)
47
+ if (result.code === 0) return null
48
+ return (
49
+ `git worktree add failed (code ${result.code}): ` +
50
+ (result.stderr.trim() || result.stdout.trim() || `unknown failure running ${args.join(' ')}`)
51
+ )
52
+ }
53
+
54
+ /**
55
+ * Tear down the worktree for a Codex teammate. Returns the
56
+ * resolution:
57
+ *
58
+ * - `removed` — the worktree was cleanly cleared AND the
59
+ * `worktree-<slug>` branch was removable (either fully merged
60
+ * into the parent HEAD or already gone elsewhere).
61
+ * - `preserved-dirty` — `git status --porcelain` reported uncommitted
62
+ * changes; the worktree and the branch are both kept.
63
+ * - `preserved-unmerged` — the worktree itself had no uncommitted
64
+ * changes, but its branch carries commits that are not merged
65
+ * into the parent HEAD. The worktree was removed (its content
66
+ * is reachable via the surviving branch ref); the branch is
67
+ * preserved so the user's committed work does not become a
68
+ * dangling object.
69
+ * - `not-present` — nothing to remove.
70
+ * - `failed` — some `git` invocation failed.
71
+ */
72
+ export type CodexWorktreeReap =
73
+ | { kind: 'removed' }
74
+ | { kind: 'preserved-dirty'; path: string }
75
+ | { kind: 'preserved-unmerged'; path: string; branch: string }
76
+ | { kind: 'not-present' }
77
+ | { kind: 'failed'; message: string }
78
+
79
+ export async function reapCodexWorktree(
80
+ repo: string,
81
+ slug: string,
82
+ ): Promise<CodexWorktreeReap> {
83
+ const path = worktreePathFor(repo, slug)
84
+ if (!existsSync(path)) return { kind: 'not-present' }
85
+ const status = await spawnCapture(['git', '-C', path, 'status', '--porcelain'])
86
+ if (status.code !== 0) {
87
+ return {
88
+ kind: 'failed',
89
+ message:
90
+ `git status failed (code ${status.code}): ${status.stderr.trim() || status.stdout.trim()}`,
91
+ }
92
+ }
93
+ if (status.stdout.trim().length > 0) {
94
+ return { kind: 'preserved-dirty', path }
95
+ }
96
+ const remove = await spawnCapture(['git', '-C', repo, 'worktree', 'remove', '--force', path])
97
+ if (remove.code !== 0) {
98
+ return {
99
+ kind: 'failed',
100
+ message:
101
+ `git worktree remove failed (code ${remove.code}): ${remove.stderr.trim() || remove.stdout.trim()}`,
102
+ }
103
+ }
104
+ // `provisionCodexWorktree` created the branch with `worktree add
105
+ // -b worktree-<slug>`; `git worktree remove` does NOT delete the
106
+ // branch ref. Use `git branch -d` (safe) — it refuses to delete a
107
+ // branch carrying commits not yet merged into HEAD, which is
108
+ // exactly the case where a force-delete would orphan committed
109
+ // user work into a dangling commit. On `-d` refusal, restore the
110
+ // worktree path (so the user can resume the conversation /
111
+ // recover from the branch) and report `preserved-unmerged`. If
112
+ // `-d` succeeds (branch was merged or already gone), the slug
113
+ // is now fully free for a subsequent same-name `tm spawn`.
114
+ const branch = worktreeBranchFor(slug)
115
+ const branchDelete = await spawnCapture(['git', '-C', repo, 'branch', '-d', branch])
116
+ if (branchDelete.code === 0) return { kind: 'removed' }
117
+ const stderr = branchDelete.stderr.trim()
118
+ // `not fully merged` is what `git branch -d` prints when refusing
119
+ // because of unmerged commits. If git failed for any *other*
120
+ // reason (e.g. the branch was already gone), the slug is still
121
+ // free, so treat it the same as `removed`.
122
+ if (!/not fully merged/i.test(stderr)) return { kind: 'removed' }
123
+ // The branch ref carries unmerged work. Recreate the worktree
124
+ // pointing back at it so the user can recover. If even this
125
+ // restore fails, the data is still safe at the branch ref — but
126
+ // we surface a `failed` so the user can intervene.
127
+ const restore = await spawnCapture(['git', '-C', repo, 'worktree', 'add', path, branch])
128
+ if (restore.code !== 0) {
129
+ return {
130
+ kind: 'failed',
131
+ message:
132
+ `branch '${branch}' has unmerged commits and the recovery worktree-restore failed: ` +
133
+ (restore.stderr.trim() || restore.stdout.trim()),
134
+ }
135
+ }
136
+ return { kind: 'preserved-unmerged', path, branch }
137
+ }
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Production engine wiring for one `tm` process.
3
+ *
4
+ * Phase 2a registers the Claude engine; Phase 2b registers the Codex
5
+ * engine. Keep both registrations in this one invocation-scoped helper so
6
+ * verb defaults see the full fleet.
7
+ */
8
+
9
+ import type { NativeEnv } from '../env'
10
+ import { ClaudeEngine } from './claude/claude-engine'
11
+ import { CodexEngine } from './codex/engine'
12
+ import { EngineRegistry } from './registry'
13
+
14
+ export function productionRegistry(env: NativeEnv): EngineRegistry {
15
+ const registry = new EngineRegistry()
16
+ registry.register(new ClaudeEngine(env))
17
+ registry.register(new CodexEngine())
18
+ return registry
19
+ }
@@ -0,0 +1,70 @@
1
+ /**
2
+ * The engine registry — one place where every concrete engine
3
+ * registers itself, and every verb-layer default implementation pulls
4
+ * the engines it needs to fan out over.
5
+ *
6
+ * Decision multi-engine-tui-architecture §"Verb is the abstraction" leans on this seam: `tm ls`
7
+ * iterates `registered()` and concatenates `Engine.list()` rows; the
8
+ * status / kill verbs resolve a teammate's engine through the identity
9
+ * router (decision multi-engine-tui-architecture §"Engine identity is the JSON's `engine` field")
10
+ * and the registry hands back the implementation. Phase 1 ships the
11
+ * empty registry; Phase 2a registers the Claude engine, Phase 2b
12
+ * registers the Codex engine.
13
+ *
14
+ * The registry is invocation-scoped: each `tm` process creates one,
15
+ * the production wiring populates it, tests inject their own. There is
16
+ * no module-level singleton.
17
+ */
18
+
19
+ import type { Engine } from './engine'
20
+ import type { EngineKind } from './types'
21
+
22
+ /**
23
+ * A read-only view of registered engines. Verb-layer default impls
24
+ * accept this view (not the mutable registry), so a verb cannot
25
+ * accidentally re-register an engine mid-dispatch.
26
+ */
27
+ export interface EngineRegistryView {
28
+ /** Look up by kind; `undefined` when no engine of that kind is registered. */
29
+ get(kind: EngineKind): Engine | undefined
30
+ /** Every registered engine, in deterministic order (insertion order). */
31
+ registered(): readonly Engine[]
32
+ /** Every kind currently registered. */
33
+ kinds(): readonly EngineKind[]
34
+ }
35
+
36
+ /**
37
+ * The mutable registry. The production wiring constructs one of these,
38
+ * registers each engine implementation, then hands the view to the
39
+ * verb dispatcher.
40
+ */
41
+ export class EngineRegistry implements EngineRegistryView {
42
+ private readonly engines: Map<EngineKind, Engine> = new Map()
43
+
44
+ /** Add an engine; throws if a kind is registered twice in one process. */
45
+ register(engine: Engine): void {
46
+ if (this.engines.has(engine.kind)) {
47
+ throw new Error(
48
+ `EngineRegistry.register: engine '${engine.kind}' is already registered in this process`,
49
+ )
50
+ }
51
+ this.engines.set(engine.kind, engine)
52
+ }
53
+
54
+ get(kind: EngineKind): Engine | undefined {
55
+ return this.engines.get(kind)
56
+ }
57
+
58
+ registered(): readonly Engine[] {
59
+ return Array.from(this.engines.values())
60
+ }
61
+
62
+ kinds(): readonly EngineKind[] {
63
+ return Array.from(this.engines.keys())
64
+ }
65
+ }
66
+
67
+ /** Convenience constructor for tests / empty production wiring. */
68
+ export function emptyRegistry(): EngineRegistry {
69
+ return new EngineRegistry()
70
+ }
@@ -0,0 +1,113 @@
1
+ /**
2
+ * The single source of truth for a teammate's identity. Decision multi-engine-tui-architecture
3
+ * §"TeammateRecord — one base JSON, engine-private extensions, hooks-
4
+ * managed files left alone" collapses what `tm` itself writes and reads
5
+ * (engine, repo, cwd, worktreeSlug, createdAt, …) into one JSON at
6
+ * `/tmp/teammate-<name>.json`; engine-private state lives under the
7
+ * engine's persistence module; hooks-managed marker files (`.busy`,
8
+ * `.last`, `.sid`, `.ready`, idle marker) stay separate because Bash
9
+ * hooks cannot atomically rewrite JSON.
10
+ *
11
+ * `TeammateRecord` is the abstract base every per-engine record extends.
12
+ * It owns the JSON-serialised base fields plus the `markerPath(name)`
13
+ * builder (one named function, so the file shape is changed in one
14
+ * place — decision cross-process-cross-platform-invariants's path-builder discipline). A subclass declares
15
+ * its engine-private extension files via `engineExtensionFiles()`, which
16
+ * `tm doctor` consumes to enumerate everything to reap for a given
17
+ * teammate.
18
+ *
19
+ * Schema 2 — the name/repo decoupling cut. The teammate `name` is a
20
+ * flat opaque identifier; `repo` is the physical path of the source
21
+ * repository (recorded once at spawn); `cwd` is the runtime working
22
+ * directory (= `repo/.claude/worktrees/<worktreeSlug>` when a worktree
23
+ * is in use, `= repo` otherwise); `worktreeSlug` is the short name of
24
+ * the worktree under `.claude/worktrees/`, or `null` for
25
+ * `--no-worktree`.
26
+ */
27
+
28
+ import type { EngineKind, TeammateName } from './types'
29
+
30
+ /** Current on-disk schema for `/tmp/teammate-<name>.json`. */
31
+ export const TEAMMATE_RECORD_SCHEMA = 2 as const
32
+
33
+ /** The JSON shape `tm` writes at spawn and reads on every verb. */
34
+ export interface TeammateRecordJson {
35
+ readonly schema: typeof TEAMMATE_RECORD_SCHEMA
36
+ readonly name: TeammateName
37
+ readonly engine: EngineKind
38
+ /** Physical path of the source repository (parent of any worktree). */
39
+ readonly repo: string
40
+ /**
41
+ * Runtime working directory the teammate process is launched in.
42
+ * Equal to `<repo>/.claude/worktrees/<worktreeSlug>` when a worktree
43
+ * is in use; equal to `repo` otherwise.
44
+ */
45
+ readonly cwd: string
46
+ /** Short name of the worktree under `.claude/worktrees/`; `null` for `--no-worktree`. */
47
+ readonly worktreeSlug: string | null
48
+ readonly createdAt: number
49
+ readonly displayName: string | null
50
+ }
51
+
52
+ /**
53
+ * Base carrier for a teammate identity. Subclasses live under
54
+ * `engines/<kind>/persistence.ts` and add engine-private file builders
55
+ * (e.g., `.cwd`, `.sid`, `/tmp/teammate-codex/<name>/socket`); the base
56
+ * fields are written once by the registry layer and never mutated.
57
+ */
58
+ export abstract class TeammateRecord {
59
+ readonly schema: typeof TEAMMATE_RECORD_SCHEMA = TEAMMATE_RECORD_SCHEMA
60
+ readonly name: TeammateName
61
+ abstract readonly engine: EngineKind
62
+ readonly repo: string
63
+ readonly cwd: string
64
+ readonly worktreeSlug: string | null
65
+ readonly createdAt: number
66
+ readonly displayName: string | null
67
+
68
+ protected constructor(args: {
69
+ name: TeammateName
70
+ repo: string
71
+ cwd: string
72
+ worktreeSlug: string | null
73
+ createdAt: number
74
+ displayName: string | null
75
+ }) {
76
+ this.name = args.name
77
+ this.repo = args.repo
78
+ this.cwd = args.cwd
79
+ this.worktreeSlug = args.worktreeSlug
80
+ this.createdAt = args.createdAt
81
+ this.displayName = args.displayName
82
+ }
83
+
84
+ /**
85
+ * Absolute path of the base JSON file for this teammate. The single
86
+ * builder so the file shape changes in one place.
87
+ */
88
+ static markerPath(name: TeammateName): string {
89
+ return `/tmp/teammate-${name}.json`
90
+ }
91
+
92
+ /** Serialise this record's base fields to the on-disk JSON shape. */
93
+ toJson(): TeammateRecordJson {
94
+ return {
95
+ schema: this.schema,
96
+ name: this.name,
97
+ engine: this.engine,
98
+ repo: this.repo,
99
+ cwd: this.cwd,
100
+ worktreeSlug: this.worktreeSlug,
101
+ createdAt: this.createdAt,
102
+ displayName: this.displayName,
103
+ }
104
+ }
105
+
106
+ /**
107
+ * The engine-private files that belong to this teammate. `tm doctor`
108
+ * walks this list when reaping an orphaned identity. The base file
109
+ * (`/tmp/teammate-<name>.json`) is not part of the list — the
110
+ * registry layer owns it.
111
+ */
112
+ abstract engineExtensionFiles(): readonly string[]
113
+ }
@@ -0,0 +1,334 @@
1
+ /**
2
+ * The shared request / result / value types that the `Engine` interface
3
+ * and every verb-layer default implementation speak in.
4
+ *
5
+ * Decision multi-engine-tui-architecture §"Engine interface" and §"Capabilities are structured,
6
+ * not stringly-typed" anchor this file. Three rules carry through:
7
+ *
8
+ * - Every operation result is a discriminated union keyed by `kind`, so
9
+ * the verb formatter can `switch` exhaustively and TypeScript will
10
+ * reject a missing case at compile time. There is no `string`
11
+ * fallback on a capability slot; a future engine adding a mode bumps
12
+ * the union here in one place.
13
+ * - Every result includes a `not-supported` variant carrying a short
14
+ * `reason` string. An engine that genuinely cannot perform a verb
15
+ * still implements the method and returns this variant — the CLI
16
+ * surface gives the agent a one-line "why", not a stack trace.
17
+ * - Teammate names may contain `/` (decision multi-engine-tui-architecture §"Nested teammate
18
+ * names"). Path builders treat the name as opaque; engine-specific
19
+ * encoding (e.g., the Claude engine's tmux session name) lives behind
20
+ * named path builders.
21
+ *
22
+ * Phase 1 lands this file as a contract. The engine implementations
23
+ * (Phase 2a for Claude, Phase 2b for Codex) consume it without
24
+ * touching it.
25
+ */
26
+
27
+ import type { TmResult } from '../tm'
28
+
29
+ /** The closed set of engine kinds. New kinds extend this union here. */
30
+ export type EngineKind = 'claude' | 'codex'
31
+
32
+ /**
33
+ * A teammate name as it appears on the CLI. Single-segment is the
34
+ * common case; nested segments (e.g., `flow/flow-1`) are allowed.
35
+ * Validation lives in `identity/name.ts` once it lands; this alias
36
+ * documents intent at the call sites.
37
+ */
38
+ export type TeammateName = string
39
+
40
+ /**
41
+ * Shared environment passed to every Engine method. Phase 2 will widen
42
+ * this with the production runtime (file system, process runner, clock,
43
+ * tmux adapter); Phase 1 keeps the surface minimal so engine stubs can
44
+ * already match the contract.
45
+ */
46
+ export interface EngineContext {
47
+ /** Wall-clock reader — engines must not call `Date.now()` directly. */
48
+ now(): number
49
+ /** Process environment, scoped per invocation so tests can inject. */
50
+ env: NodeJS.ProcessEnv
51
+ }
52
+
53
+ /**
54
+ * Capabilities reported by an engine. Every slot is a discriminated
55
+ * literal union or a boolean — no `string` fallback. A verb that
56
+ * branches on a capability gets exhaustive `switch` checking.
57
+ *
58
+ * `atomicSend` is the literal `true`, not `boolean`: the verb contract
59
+ * demands atomic round-trips, and an engine that cannot do that does
60
+ * not qualify as a `tm` engine.
61
+ */
62
+ export interface EngineCapabilities {
63
+ readonly atomicSend: true
64
+ readonly atomicSpawnPrompt: boolean
65
+ readonly compaction: 'manual' | 'auto' | 'unsupported'
66
+ readonly contextUsage: 'transcript-jsonl' | 'rpc-token-usage' | 'unsupported'
67
+ readonly history: 'transcript-files' | 'rpc-thread-list' | 'unsupported'
68
+ readonly memory: 'claude-project-memory' | 'engine-native' | 'unsupported'
69
+ readonly reload: 'prompt-command' | 'native-command' | 'unsupported'
70
+ readonly resume: 'transcript-id' | 'thread-id' | 'unsupported'
71
+ readonly detachedTurn: 'unsupported' | 'replayable' | 'best-effort-push'
72
+ readonly events: 'push' | 'synthesized' | 'none'
73
+ }
74
+
75
+ /** One typed item emitted within a turn (assistant text, tool call, …). */
76
+ export type InteractionItem =
77
+ | { kind: 'assistant-text'; text: string }
78
+ | { kind: 'tool-call'; tool: string; argsJson: string }
79
+ | { kind: 'tool-result'; tool: string; ok: boolean; textOrJson: string }
80
+ | { kind: 'system-note'; text: string }
81
+
82
+ // ─── Spawn ──────────────────────────────────────────────────────────────
83
+
84
+ export interface SpawnRequest {
85
+ readonly name: TeammateName
86
+ /**
87
+ * Physical path of the source repository. Equal to `cwd` when
88
+ * `worktreeSlug` is `null` (`--no-worktree`); otherwise the parent
89
+ * of the worktree path.
90
+ */
91
+ readonly repo: string
92
+ /**
93
+ * Runtime working directory the engine launches the teammate in.
94
+ * `repo/.claude/worktrees/<worktreeSlug>` when a worktree is in use,
95
+ * `repo` otherwise.
96
+ */
97
+ readonly cwd: string
98
+ /** Short name of the worktree under `.claude/worktrees/`; `null` for `--no-worktree`. */
99
+ readonly worktreeSlug: string | null
100
+ /** Optional engine-specific resume checkpoint. */
101
+ readonly resumeCheckpoint: string | null
102
+ /** Optional first-turn prompt — when present, spawn is an atomic round-trip. */
103
+ readonly prompt: string | null
104
+ /** Optional caller-supplied wall-clock cap; `null` means unbounded. */
105
+ readonly timeoutMs: number | null
106
+ /** Human-readable display name for fleet listing; null falls back to `name`. */
107
+ readonly displayName: string | null
108
+ }
109
+
110
+ /**
111
+ * Temporary compatibility carrier for migrated Claude verbs whose public
112
+ * stdout/stderr contract is already pinned by conformance goldens. The
113
+ * structured fields stay authoritative for engine-neutral verbs; CLI
114
+ * formatters can return `tmResult` verbatim when it is present.
115
+ */
116
+ export interface RawTmResult {
117
+ readonly tmResult?: TmResult
118
+ }
119
+
120
+ export type SpawnResult =
121
+ | ({ kind: 'spawned'; name: TeammateName; firstTurn: TurnResult | null } & RawTmResult)
122
+ | ({ kind: 'already-exists'; existingEngine: EngineKind } & RawTmResult)
123
+ | ({ kind: 'failed'; message: string } & RawTmResult)
124
+
125
+ // ─── Send / Wait ────────────────────────────────────────────────────────
126
+
127
+ export interface SendRequest {
128
+ readonly name: TeammateName
129
+ readonly prompt: string
130
+ readonly timeoutMs: number | null
131
+ readonly paneQuiet: boolean
132
+ }
133
+
134
+ export interface WaitRequest {
135
+ readonly name: TeammateName
136
+ /** A previous turn-id to recover from, when send/spawn aborted before reading. */
137
+ readonly recoverFor: string | null
138
+ readonly timeoutMs: number | null
139
+ readonly fresh: boolean
140
+ readonly paneQuiet: boolean
141
+ }
142
+
143
+ export type TurnResult =
144
+ | ({
145
+ kind: 'completed'
146
+ text: string
147
+ items: readonly InteractionItem[]
148
+ context: ContextResult | null
149
+ } & RawTmResult)
150
+ | ({ kind: 'failed'; message: string; recoverable: boolean } & RawTmResult)
151
+ | ({ kind: 'timed-out'; elapsedMs: number } & RawTmResult)
152
+ | ({ kind: 'not-supported'; reason: string } & RawTmResult)
153
+ | ({ kind: 'no-op'; reason: string } & RawTmResult)
154
+
155
+ // ─── Kill ───────────────────────────────────────────────────────────────
156
+
157
+ export interface KillRequest {
158
+ readonly name: TeammateName
159
+ }
160
+
161
+ export type KillResult =
162
+ | { kind: 'killed'; note?: string }
163
+ | { kind: 'not-found' }
164
+ | { kind: 'failed'; message: string }
165
+
166
+ // ─── Compact / Resume / Reload ──────────────────────────────────────────
167
+
168
+ export interface CompactRequest {
169
+ readonly name: TeammateName
170
+ readonly timeoutMs: number | null
171
+ }
172
+
173
+ export type CompactResult =
174
+ | ({ kind: 'compacted' } & RawTmResult)
175
+ | ({ kind: 'not-needed'; reason: string } & RawTmResult)
176
+ | ({ kind: 'not-supported'; reason: string } & RawTmResult)
177
+ | ({ kind: 'failed'; message: string } & RawTmResult)
178
+
179
+ export interface ResumeRequest {
180
+ readonly name: TeammateName
181
+ /** Physical repo path the teammate is bound to; `null` when unknown. */
182
+ readonly repo: string | null
183
+ /** Absolute working directory used by engines that relaunch a process. */
184
+ readonly cwd: string | null
185
+ /** Worktree slug under `.claude/worktrees/`; `null` for `--no-worktree`. */
186
+ readonly worktreeSlug: string | null
187
+ /** Engine-specific identifier (Claude sid / Codex thread id); null lets the engine auto-pick when supported. */
188
+ readonly checkpoint: string | null
189
+ /** Optional first-turn prompt after the resumed teammate is relaunched. */
190
+ readonly prompt: string | null
191
+ /** Optional display relabel for engines that expose one. */
192
+ readonly displayName: string | null
193
+ }
194
+
195
+ export type ResumeResult =
196
+ | ({ kind: 'resumed'; checkpoint: string | null } & RawTmResult)
197
+ | ({ kind: 'not-found'; reason: string } & RawTmResult)
198
+ | ({ kind: 'not-supported'; reason: string } & RawTmResult)
199
+ | ({ kind: 'failed'; message: string } & RawTmResult)
200
+
201
+ export interface ReloadRequest {
202
+ readonly name: TeammateName
203
+ }
204
+
205
+ export type ReloadResult =
206
+ | ({ kind: 'reloaded' } & RawTmResult)
207
+ | ({ kind: 'not-supported'; reason: string } & RawTmResult)
208
+ | ({ kind: 'failed'; message: string } & RawTmResult)
209
+
210
+ // ─── Last / Ctx / History / Mem ────────────────────────────────────────
211
+
212
+ export interface LastRequest {
213
+ readonly name: TeammateName
214
+ readonly verbose: boolean
215
+ }
216
+
217
+ export interface ContextRequest {
218
+ readonly name: TeammateName
219
+ readonly windowOverride: '' | '200k' | '1m'
220
+ }
221
+
222
+ export type ContextResult =
223
+ | ({ kind: 'usage'; tokensUsed: number; tokensTotal: number; pct: number } & RawTmResult)
224
+ | ({ kind: 'not-supported'; reason: string } & RawTmResult)
225
+ | ({ kind: 'failed'; message: string } & RawTmResult)
226
+
227
+ export interface HistoryRequest {
228
+ readonly name: TeammateName
229
+ /** Absolute working directory used by engines whose history is keyed by cwd. */
230
+ readonly cwd: string | null
231
+ /** `null` = list view; non-null = engine-specific detail selector. */
232
+ readonly index: string | null
233
+ }
234
+
235
+ export type HistoryResult =
236
+ | ({ kind: 'list'; turns: readonly HistoryTurn[]; entries?: readonly HistoryListEntry[] } & RawTmResult)
237
+ | ({ kind: 'detail'; turn: HistoryTurn; items: readonly InteractionItem[] } & RawTmResult)
238
+ | ({ kind: 'not-supported'; reason: string } & RawTmResult)
239
+ | ({ kind: 'failed'; message: string } & RawTmResult)
240
+
241
+ export interface HistoryListEntry {
242
+ readonly engine: EngineKind
243
+ readonly id: string
244
+ readonly mtimeMs: number
245
+ readonly size: number
246
+ readonly topic: string
247
+ readonly active: boolean
248
+ }
249
+
250
+ export interface HistoryTurn {
251
+ readonly index: number
252
+ readonly startedAt: number
253
+ readonly summary: string
254
+ }
255
+
256
+ export interface MemoryRequest {
257
+ readonly name: TeammateName
258
+ }
259
+
260
+ /**
261
+ * Plain-text payload — used for `mem`, `last`, and any other verb whose
262
+ * engine result is "here are some bytes, render them as-is".
263
+ */
264
+ export type TextResult =
265
+ | ({ kind: 'text'; text: string } & RawTmResult)
266
+ | ({ kind: 'not-found'; reason: string } & RawTmResult)
267
+ | ({ kind: 'not-supported'; reason: string } & RawTmResult)
268
+ | ({ kind: 'failed'; message: string } & RawTmResult)
269
+
270
+ // ─── Fleet visibility (list / status) ──────────────────────────────────
271
+
272
+ /**
273
+ * One row of `tm ls` — the cross-engine listing default impl concatenates
274
+ * what every engine returns. Engines stay free to add engine-private
275
+ * fields by extending `extras`; the verb formatter ignores unknown keys.
276
+ */
277
+ export interface TeammateListing {
278
+ readonly name: TeammateName
279
+ readonly engine: EngineKind
280
+ readonly state: 'idle' | 'busy' | 'unknown'
281
+ /** Physical repo path the teammate is bound to. */
282
+ readonly repo: string
283
+ /** Runtime working directory (worktree path or `repo`). */
284
+ readonly cwd: string
285
+ /** Worktree slug, or `null` for `--no-worktree`. */
286
+ readonly worktreeSlug: string | null
287
+ readonly displayName: string | null
288
+ readonly extras: Readonly<Record<string, string>>
289
+ }
290
+
291
+ export interface StatusRequest {
292
+ readonly name: TeammateName
293
+ /** Verb-layer hint for scrollback depth (status pane capture). */
294
+ readonly lines: number | null
295
+ }
296
+
297
+ export type TeammateStatus =
298
+ | {
299
+ kind: 'present'
300
+ name: TeammateName
301
+ engine: EngineKind
302
+ state: 'idle' | 'busy' | 'unknown'
303
+ cwd: string
304
+ pane: string | null
305
+ diagnostics: Readonly<Record<string, string>>
306
+ }
307
+ | { kind: 'not-found' }
308
+ | { kind: 'failed'; message: string }
309
+
310
+ // ─── Doctor / Inspect ───────────────────────────────────────────────────
311
+
312
+ export interface InspectRequest {
313
+ readonly name: TeammateName
314
+ }
315
+
316
+ export interface EngineSnapshot {
317
+ readonly engine: EngineKind
318
+ readonly name: TeammateName
319
+ /** Free-form key/value diagnostic dump. */
320
+ readonly fields: Readonly<Record<string, string>>
321
+ }
322
+
323
+ /** One section of the `tm doctor` output, contributed by one engine. */
324
+ export interface DoctorSection {
325
+ readonly engine: EngineKind
326
+ readonly findings: readonly DoctorFinding[]
327
+ }
328
+
329
+ export interface DoctorFinding {
330
+ readonly severity: 'ok' | 'warn' | 'error'
331
+ readonly summary: string
332
+ /** Optional remediation hint shown after the summary line. */
333
+ readonly fix: string | null
334
+ }