@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
package/src/env.ts ADDED
@@ -0,0 +1,29 @@
1
+ /**
2
+ * The per-invocation environment the CLI hands to each verb dispatcher.
3
+ *
4
+ * Lives in its own module so verb modules and the dispatcher share a
5
+ * single interface without re-importing from each other; the historic
6
+ * `NATIVE_VERBS` table that owned this shape is gone, but the shape
7
+ * itself is still useful as a thin adapter layer.
8
+ */
9
+
10
+ import type { ColumnRunner } from './column'
11
+ import type { GrepRunner } from './grep'
12
+ import type { TmuxRunner } from './tmux'
13
+ import type { EngineRegistryView } from './engines/registry'
14
+
15
+ /** Everything a verb handler may need beyond its arguments; injectable for tests. */
16
+ export interface NativeEnv {
17
+ /** Runs `tmux` — injected so a conformance fixture can supply a fake. */
18
+ readonly runTmux: TmuxRunner
19
+ /** Aligns tab-separated rows via `column -t` — for table-rendering verbs. */
20
+ readonly runColumn: ColumnRunner
21
+ /** Matches input against a regex via `grep -qE` — for the `poll` verb. */
22
+ readonly runGrep: GrepRunner
23
+ /** The dispatcher directory — the parent of the sibling teammate repos. */
24
+ readonly dispatcherDir: string
25
+ /** The `~/.claude/projects` directory that holds Claude Code transcripts. */
26
+ readonly projectsDir: string
27
+ /** Production Engine registry; optional for legacy tests. */
28
+ readonly engines?: EngineRegistryView
29
+ }
package/src/grep.ts ADDED
@@ -0,0 +1,39 @@
1
+ /**
2
+ * The `grep` shell-out layer.
3
+ *
4
+ * `tm poll` blocks until a teammate's pane matches a regex — `tmux capture-pane
5
+ * | grep -qE <pattern>`. The native `poll` verb keeps the poll loop in the
6
+ * core but delegates the match itself to the real `grep`, the way `states`
7
+ * delegates alignment to `column`.
8
+ *
9
+ * `grep` is not reimplemented in TypeScript on purpose: its `-E` dialect is
10
+ * POSIX extended regular expressions, which a JavaScript `RegExp` does not
11
+ * reproduce — `\d`, lookahead, and POSIX character classes all differ — and
12
+ * the pattern is `poll`'s user-facing surface, so a behavior-preserving
13
+ * migration must match `grep` exactly. The installed `grep` is faithful to
14
+ * itself.
15
+ */
16
+
17
+ import { spawnCapture } from './proc'
18
+
19
+ /**
20
+ * Runs `grep -qE <pattern>` over `input` and resolves with its exit code:
21
+ * `0` a match, `1` no match, `2` a `grep` error (an invalid pattern). `poll`
22
+ * treats only `0` as a match — exactly `tm`'s `if ... | grep -qE`.
23
+ *
24
+ * Injectable: the native `poll` verb depends on this type, not the concrete
25
+ * function, so a test can supply a stub.
26
+ */
27
+ export type GrepRunner = (pattern: string, input: string) => Promise<number>
28
+
29
+ /**
30
+ * The production `GrepRunner`: pipe `input` through `grep -qE <pattern>` —
31
+ * the exact invocation `tm poll` uses — and resolve with its exit code. The
32
+ * pattern is passed as its own argument with no `--` guard, matching `tm`, so
33
+ * a pattern that begins with `-` is read by `grep` as a flag just as it is
34
+ * under `tm`.
35
+ */
36
+ export const runGrep: GrepRunner = async (pattern, input) => {
37
+ const { code } = await spawnCapture(['grep', '-qE', pattern], { stdin: input })
38
+ return code
39
+ }
package/src/help.ts ADDED
@@ -0,0 +1,433 @@
1
+ /**
2
+ * `tm` help text — the single source of truth for the human-facing CLI help.
3
+ *
4
+ * The Bash `bin/tm` is retired on the `next` line; help that used to come from
5
+ * `cmd_help` and the per-verb `help_<verb>` heredocs lives here instead. The
6
+ * text is byte-exact with what the bash help printed (every help line ends
7
+ * with a newline, matching `cat <<'EOF'` semantics) so the conformance harness
8
+ * can golden it without surprises and `tests/help` users see no UX drift.
9
+ *
10
+ * The CLI dispatch layer (`cli/dispatch.ts`) does the routing — this module
11
+ * just owns the strings.
12
+ */
13
+
14
+ /** Top-level synopsis — printed by `tm`, `tm help`, `tm --help`, `tm -h`. */
15
+ export const OVERVIEW_HELP = `tm — teammate manager for the dispatcher skill
16
+
17
+ Run \`tm <verb> --help\` (or \`tm help <verb>\`) for per-verb detail.
18
+
19
+ NAMING (after the schema 2 cut)
20
+ Teammates have flat opaque identifiers (\`<name>\`). The source repo
21
+ is the spawn-time \`<path>\` positional, recorded in identity, and
22
+ reachable through \`tm ls\`'s REPO column. \`tm send <name>\`,
23
+ \`tm kill <name>\`, etc. are name-based — no path coupling.
24
+
25
+ USAGE (most common first)
26
+ tm spawn <path> [--name <id>] [--prompt "..."] [--no-worktree]
27
+ launch a teammate in <path>. Default
28
+ creates a git worktree at
29
+ <path>/.claude/worktrees/<name>/.
30
+ --no-worktree keeps the teammate at
31
+ <path> itself. --name overrides the
32
+ auto-generated \`<path-leaf>-<rand4>\`
33
+ (must be globally unique).
34
+ tm send <name> --prompt "..." atomic round-trip: send + wait + print reply
35
+ tm wait <name> [--fresh] wait for next Stop; print reply
36
+ tm compact <name> /compact + verify, prints "compacted"
37
+ tm resume <name> [<sid/thread-id>] resume a prior conversation
38
+ tm last <name> [--verbose] reprint last reply; Codex raw turn with --verbose
39
+ tm kill <name> graceful /exit (clean worktree auto-removed);
40
+ dirty worktree preserved with stderr note
41
+ tm reload <name>... | --all fan out /reload-plugins
42
+ tm ls list teammates (NAME REPO WORKTREE ENGINE STATE)
43
+ tm states rich fleet snapshot
44
+ tm ctx <name>... | --all real ctx-window usage from jsonl
45
+ tm history <name> [<sid/thread-prefix>] inspect past sessions for this teammate
46
+ tm mem <name> cat the parent repo's auto-memory index
47
+ tm archive <id> move finished task active→archive (stdin)
48
+ tm ask "<prompt>" one-shot turn on an idle codex teammate (pool)
49
+
50
+ DIAGNOSTIC (escape hatches — prefer the verbs above)
51
+ tm status <name> capture-pane the teammate's live screen
52
+ tm poll <name> <regex> block until pane matches
53
+ tm doctor self-check: tm path/version, env, tmux,
54
+ idle dir, active teammates
55
+
56
+ HELP
57
+ tm --help / tm -h / tm help this text
58
+ tm <verb> --help / tm help <verb> detail for one verb
59
+
60
+ ENVIRONMENT
61
+ TM_DISPATCHER_DIR Dispatcher directory (parent of sibling repos).
62
+ scripts/setup.sh writes it into the dispatcher's
63
+ .claude/settings.json on first /claudemux:setup,
64
+ and Claude Code injects it as env at every
65
+ claude launch — so tm stays correct even when
66
+ the Bash tool's cwd drifts. Falls back to $PWD
67
+ when unset. \`tm spawn <path>\` resolves a relative
68
+ <path> against this directory.
69
+ `
70
+
71
+ /** Per-verb help text — `tm <verb> --help` and `tm help <verb>` both print this. */
72
+ export const HELP_TEXTS: Readonly<Record<string, string>> = {
73
+ ls: `tm ls
74
+
75
+ List running teammate-<name> sessions. Shows tmux's raw session
76
+ row (name, window count, attached state). For a richer "who's
77
+ doing what" view, prefer \`tm states\`.
78
+ `,
79
+ states: `tm states
80
+
81
+ One-line fleet snapshot: REPO, SID / thread id (first 8
82
+ chars), BUSY, LAST (size + age of the last assistant reply),
83
+ PREVIEW (first 50 chars of that reply). Claude reads
84
+ /tmp/claude-idle/<sid>.last; Codex reads the current thread's
85
+ rollout JSONL. Use to see what every teammate is doing at a
86
+ glance.
87
+ `,
88
+ spawn: `tm spawn <path> [--name <id>] [--engine claude|codex] [--prompt "..."] [--no-worktree] [--timeout N]
89
+
90
+ Launch a teammate in <path>. <path> is positional; it may be
91
+ absolute, or relative to the dispatcher dir
92
+ (TM_DISPATCHER_DIR / $PWD). The path must be an existing
93
+ directory — it is \`realpath\`-resolved and recorded as
94
+ \`identity.repo\` so every subsequent verb (\`tm send\`,
95
+ \`tm kill\`, \`tm last\`, \`tm mem\`, …) routes by NAME without
96
+ re-walking the filesystem.
97
+
98
+ <name> conventions (after the schema 2 cut):
99
+ - \`--name <id>\` is an explicit flat identifier. Allowed
100
+ shape: \`^[A-Za-z0-9][A-Za-z0-9_-]*$\`. Must be globally
101
+ unique across the dispatcher; collisions fail with
102
+ \`already exists\`.
103
+ - Omit \`--name\` and the verb auto-generates
104
+ \`<path-leaf>-<rand4>\`. The leaf is derived from
105
+ \`basename(realpath(<path>))\`; rand4 ensures multiple
106
+ teammates can target the same repo without collision.
107
+
108
+ Default behaviour creates a git worktree at
109
+ \`<path>/.claude/worktrees/<name>/\` and runs the teammate
110
+ inside it (branch \`worktree-<name>\`, base ref HEAD). Pass
111
+ \`--no-worktree\` to keep the teammate at <path> itself —
112
+ useful for repo-wide work where a worktree would be a
113
+ negative-value isolation.
114
+
115
+ Without --prompt, the verb returns once the REPL signals
116
+ SessionStart (typically 2-4s on a warm Mac). With
117
+ \`--prompt "..."\`, the verb sleeps 3s after ready, sends the
118
+ prompt, waits for Stop, and prints the teammate's first-turn
119
+ reply on stdout — atomic bootstrap, one call.
120
+
121
+ \`--engine\` selects the teammate engine at spawn time. Default
122
+ is claude; pass \`--engine codex\` for a Codex daemon teammate.
123
+ The name carries no engine meaning, so \`codex-reviewer\` is a
124
+ Claude teammate unless \`--engine codex\` is set. Codex
125
+ teammates default to a self-managed git worktree at the same
126
+ \`.claude/worktrees/<name>/\` layout; they are not tmux sessions,
127
+ and \`--resume\` / \`--task\` are rejected on that path.
128
+
129
+ Every teammate launches with the \`AskUserQuestion\` tool
130
+ disabled — a teammate runs with no human at its terminal, and
131
+ that modal would hold the turn open. A teammate raises
132
+ questions by ending its turn with text, which \`tm send\` /
133
+ \`tm spawn --prompt\` relays straight back to the dispatcher.
134
+
135
+ Exit codes on the \`--prompt\` sync path:
136
+ 0 first-turn reply
137
+ 124 sync wait expired (teammate still booted — collect with
138
+ \`tm wait <name>\`; don't respawn, the name is taken)
139
+ 1 real failure
140
+ `,
141
+ send: `tm send <name> --prompt "..." [--pane-quiet] [--timeout N]
142
+
143
+ Atomic round-trip by default: send prompt + wait for the Stop
144
+ hook + print the teammate's reply text on stdout. The
145
+ dispatcher's primary verb — folds what used to be send +
146
+ wait-idle + last into one call. Stdout is exclusively reply
147
+ text; status lines go to stderr (pipe-friendly).
148
+ <name> is the flat teammate identifier from \`tm spawn\` /
149
+ \`tm ls\` — never a path.
150
+ --prompt "..." the prompt text. Required. Same calling form
151
+ as 'tm spawn --prompt' / 'tm resume --prompt'. Flag order is
152
+ free: 'tm send <name> --prompt "..."' and 'tm send --prompt
153
+ "..." <name>' both work.
154
+ --pane-quiet falls back to pane-quiet detection. Use for
155
+ TUI-only commands that fire no hook: /help, /effort,
156
+ /agents, permission prompts. /compact and /clear do NOT
157
+ need it — the Stop hook now covers them via PostCompact /
158
+ SessionEnd.
159
+ --timeout N overrides the 1800s default wait.
160
+ Empty stdout never silently means success: a turn with no text
161
+ (tool-only, /compact, /clear) prints the sentinel line "(no
162
+ text reply this turn — tool-only, /compact, /clear, or fresh
163
+ spawn)".
164
+ On the default (Stop-hook) path, also echoes the teammate's
165
+ post-turn ctx to stderr as "ctx: N tokens · ~M next turn · X%
166
+ of W (note)" — same data as 'tm ctx <name>' inline with the
167
+ reply. Skipped on --pane-quiet (no fresh usage path in jsonl).
168
+ Exit codes:
169
+ 0 the reply landed within --timeout; stdout is the reply.
170
+ 124 sync wait expired (no Stop hook within --timeout) but the
171
+ teammate is STILL running — stdout is the partial .last
172
+ if any, stderr names the verb to keep tailing with.
173
+ Don't respawn; the name is still taken. Re-collect with
174
+ 'tm wait <name>' or check 'tm status <name>'.
175
+ 1 real failure (no such tmux session, sid marker missing,
176
+ sendKeys broke). The teammate is gone or never started.
177
+
178
+ When <name> is a codex teammate (recorded in the identity JSON),
179
+ this verb routes into the codex driver: --prompt is
180
+ required, --timeout is accepted, stdout is the final assistant
181
+ text (same pipe-friendly contract as Claude), stderr carries
182
+ sent/sid/ctx/raw-path status lines, and --pane-quiet is rejected
183
+ explicitly rather than silently ignored. The raw Codex Turn JSON
184
+ is atomically overwritten at
185
+ /tmp/teammate-codex/<name>/last-turn.json and can be read with
186
+ 'tm last <name> --verbose'.
187
+ `,
188
+ wait: `tm wait <name> [timeout=1800] [--fresh] [--pane-quiet] [--timeout N]
189
+
190
+ Block until the teammate's next Stop hook (or pane-quiet
191
+ fallback), then print the reply to stdout — same output
192
+ contract as 'tm send'. Use when an external actor (Remote
193
+ Control web UI, mobile app, cron) drove the turn and you just
194
+ want to collect the result.
195
+ --fresh clears the idle/.last/.busy baseline up front so the
196
+ NEXT Stop unblocks the wait, not a prior one. Required when
197
+ monitoring an autonomously progressing teammate (no fresh
198
+ 'tm send' to reset the baseline for you). No-op under
199
+ --pane-quiet (pane-quiet uses send-at timing instead of a
200
+ sid-keyed marker; the "≥3s since last send" gate already
201
+ provides the freshness guarantee).
202
+ --pane-quiet falls back to pane-quiet detection (same use
203
+ case as on 'tm send').
204
+ --timeout N is the flag form of the positional [timeout=1800];
205
+ both forms are accepted, and if both are passed, whichever
206
+ is parsed last wins.
207
+ Stop-hook path also echoes ctx to stderr (see 'tm send');
208
+ skipped on --pane-quiet.
209
+ Same exit codes as 'tm send': 0 on a fresh Stop, 124 if --timeout
210
+ elapses without one (teammate still running — re-run 'tm wait'),
211
+ 1 on a real failure (no session / no sid marker).
212
+ `,
213
+ compact: `tm compact <name> [timeout=1800] [--timeout N]
214
+
215
+ Send /compact and verify PostCompact fired. Prints "compacted"
216
+ on stdout when the Stop-hook idle marker is touched. Doesn't
217
+ read ctx — run 'tm ctx <name>' separately if you want the new
218
+ size.
219
+ Default timeout is 1800s — large contexts can run many
220
+ minutes, and the cap only fires when compaction never
221
+ finishes.
222
+ Two non-success modes with different exit codes:
223
+ 1 Claude Code refuses with "Not enough messages to compact"
224
+ (transcript too short). That error fires no hook, so the
225
+ pane is scanned alongside the idle-marker poll to detect
226
+ it. /compact won't proceed; this is a true failure.
227
+ 124 PostCompact never fires within timeout. Compaction may
228
+ still be running — same "sync wait expired, teammate
229
+ still alive" semantics as 'tm send'.
230
+ `,
231
+ resume: `tm resume <name> [<sid-or-thread-id>] [--prompt "..."] [--engine claude|codex]
232
+
233
+ Resume a prior conversation. <name> is the flat teammate
234
+ identifier from a previous spawn — never a path.
235
+ Claude teammates use a transcript sid: passing <sid> validates
236
+ that transcript and launches 'claude --resume <sid>'. Without
237
+ sid, Claude's native 'claude --continue' chooses the latest
238
+ session for the cwd; the /tmp/teammate-<name>.sid marker is
239
+ written by the SessionStart hook after the REPL starts.
240
+ Codex teammates use a thread id: passing <thread-id> calls
241
+ thread/resume directly. Without thread id, claudemux starts a new
242
+ app-server daemon, calls thread/list(limit=1, sortKey=updated_at,
243
+ cwd=<recorded-cwd>) to ask Codex for the latest thread, writes
244
+ that thread id back to the Codex registry, and then calls
245
+ thread/resume.
246
+ Engine selection without an explicit id: when the teammate has no
247
+ base record left (e.g. after 'tm kill'), claudemux probes the cwd
248
+ against both engines' history (Claude project dir + Codex rollout
249
+ sessions). A single candidate auto-routes; if both engines hold
250
+ resumable history the verb refuses to guess and asks for
251
+ disambiguation. Pass --engine claude|codex to skip probing and
252
+ route directly, or supply an explicit <sid>/<thread-id>. --engine
253
+ overrides every other selector — even an active router record.
254
+ Fails if a teammate session for <name> already exists.
255
+ --prompt sends a follow-up after relaunch, atomic like
256
+ 'tm spawn --prompt' (inherits 'tm send''s stderr ctx echo on
257
+ the sync path where available).
258
+ Like every teammate launch, the resumed REPL starts with the
259
+ AskUserQuestion tool disabled (see 'tm help spawn' for why): a
260
+ resumed teammate raises questions by ending its turn with
261
+ text, not by opening a modal.
262
+ `,
263
+ last: `tm last <name> [--verbose]
264
+
265
+ Print the teammate's last-turn reply from
266
+ /tmp/claude-idle/<sid>.last. Empty or missing file dies with
267
+ "no reply yet". Use this when you want to re-read a reply the
268
+ send/wait verbs already printed (their output is one-shot).
269
+ For a Codex teammate, --verbose prints the raw
270
+ /tmp/teammate-codex/<name>/last-turn.json instead of the
271
+ assistant-text summary.
272
+ `,
273
+ mem: `tm mem <name>
274
+
275
+ Cat the sibling repo's auto-memory MEMORY.md to stdout. Use
276
+ this before composing a \`tm spawn\` / \`tm send --prompt\` that
277
+ references sibling state (feature-gate names, branch names,
278
+ in-progress projects) — sibling memories live in separate
279
+ per-cwd index files that the dispatcher's own AutoMemory does
280
+ not include. Resolves the encoded project dir as
281
+ $HOME/.claude/projects/<encoded>/memory/MEMORY.md where
282
+ <encoded> = the repo's physical cwd with every \`/\` and \`.\`
283
+ replaced by \`-\`. If no MEMORY.md exists for the repo (never
284
+ ran claude, or its project dir was pruned), prints a one-line
285
+ notice to stderr and returns 0 with empty stdout — that is
286
+ the normal "no sibling memory" case, not an error.
287
+
288
+ MEMORY.md entries can be stale. Verify any fact you are about
289
+ to inject into a teammate's prompt against current code or
290
+ git state before sending.
291
+ `,
292
+ kill: `tm kill <name>
293
+
294
+ Graceful teammate shutdown. For a Claude teammate the verb
295
+ sends \`/exit\` to the REPL and waits up to 15s for the
296
+ SessionEnd hook to fire (observed as either the tmux pane
297
+ disappearing or the teammate's idle marker being touched by
298
+ \`on-stop.sh\`, whichever comes first). \`/exit\` in a clean
299
+ worktree auto-removes both the worktree directory and the
300
+ \`worktree-<slug>\` branch; in a dirty worktree Claude shows
301
+ an interactive "Keep / Remove worktree" prompt — the verb
302
+ presses Enter (default: Keep) and waits another 5s. If
303
+ neither signal lands inside that 20s combined budget, the
304
+ verb falls back to \`tmux kill-session\` (SIGHUP) and prints
305
+ a stderr note pointing at the leftover worktree.
306
+
307
+ Override the combined budget via \`CLAUDEMUX_KILL_GRACE_MS\`
308
+ (used by the conformance harness to keep test runs fast).
309
+
310
+ For a Codex teammate the verb SIGTERMs the daemon. When the
311
+ identity record carries a \`worktreeSlug\`, the verb tries
312
+ \`git worktree remove --force <name>/.claude/worktrees/<slug>\`;
313
+ a dirty worktree is preserved with a stderr warning and a
314
+ hand-typeable removal command.
315
+
316
+ The identity JSON, \`.sid\` / \`.cwd\` / \`.ready\` / \`.send-at\`
317
+ marker files, and idle / busy / .last markers are cleared on
318
+ every exit path (clean, dirty, forced).
319
+ `,
320
+ ask: `tm ask "<prompt>"
321
+
322
+ Drive a one-shot turn on an idle codex teammate from the
323
+ Codex pool, on a fresh thread (so the borrowed teammate's
324
+ persistent conversation thread is not polluted). Prints the
325
+ turn's JSON to stdout.
326
+
327
+ Pool semantics (decision node-cli-orchestrator §6, pool decision A): the named
328
+ Codex-engine teammates are the pool. ask picks any idle one,
329
+ borrows it for one turn, and returns it. "Idle" means it has no
330
+ active borrow lock; the lock is a file under
331
+ /tmp/teammate-codex/<name>/lock.
332
+
333
+ Errors when no codex teammate has been spawned, when every
334
+ spawned teammate is dead (run 'tm doctor' to reap), or when
335
+ every alive teammate is currently borrowed (retry, or spawn one
336
+ more).
337
+ `,
338
+ reload: `tm reload <name>... | --all
339
+
340
+ Fan out /reload-plugins to one, many, or every teammate.
341
+ Sugar over 'tm send <name> --prompt /reload-plugins'. --all enumerates
342
+ from \`tmux ls\`; missing/dead teammates are skipped with a
343
+ stderr note and the exit status reflects whether every send
344
+ succeeded.
345
+ `,
346
+ ctx: `tm ctx <name>... | --all [--window 200k|1m]
347
+
348
+ Real context-window usage per teammate, read from the jsonl
349
+ usage block (more accurate than the TUI percentage). Prints
350
+ current prompt size, next-turn estimate, and percent of
351
+ window.
352
+ Window size is not in the transcript: a peak above ~210k
353
+ proves a 1M window; otherwise 200k is assumed (labelled
354
+ accordingly). --window forces the assumption.
355
+ `,
356
+ history: `tm history <name> [<sid-or-thread-prefix>]
357
+
358
+ Inspect this repo's past Claude sessions and Codex threads
359
+ (live or dead). No id: list mode, newest-first table merged by
360
+ transcript / rollout mtime. The ENGINE column identifies
361
+ claude vs codex; ID is the full Claude sid (UUIDv4) or Codex
362
+ thread id (UUIDv7) recorded in a rollout filename — the same
363
+ string 'tm resume' accepts. '*' marks the current live
364
+ teammate's session / thread. With a sid, thread id, or prefix:
365
+ detail mode (full id, transcript / rollout path, size / line
366
+ count, created time, ctx usage when present, first prompt,
367
+ last assistant text up to 1500 chars, ready-to-paste
368
+ 'tm resume' command). Boundary vs 'tm last': last covers only
369
+ the current live teammate's reply; history covers any jsonl on
370
+ disk including killed sessions.
371
+ `,
372
+ archive: `tm archive <id> [--status '<tag>']
373
+
374
+ Move a finished task from the active ledger to the archive.
375
+ Reads the compressed one/two-line outcome on stdin; copies
376
+ repo/branch/intent verbatim from the active entry and stamps
377
+ today's date. Prepends to dispatcher-tasks-archive.md (newest
378
+ on top), creating it from its shape if absent, then deletes
379
+ the entry from active-dispatcher-tasks.md. --status overrides
380
+ the carried-over [status] tag.
381
+ `,
382
+ status: `tm status <name> [lines=80]
383
+
384
+ Capture-pane the teammate's live screen. DIAGNOSTIC — the
385
+ sync send/wait verbs make this unnecessary for normal flow.
386
+ Reach for it only when you genuinely need the live pane (e.g.
387
+ confirming a TUI dialog is up).
388
+ `,
389
+ poll: `tm poll <name> <regex> [timeout=180]
390
+
391
+ Block until pane content matches a regex. DIAGNOSTIC fallback
392
+ when \`tm wait\` can't catch an interesting intermediate state.
393
+ Match the EXPECTED RESULT, not the prompt you just sent (a
394
+ pattern that appears in the sent prompt makes the wait return
395
+ instantly).
396
+ `,
397
+ doctor: `tm doctor
398
+
399
+ Self-check for the dispatcher environment. Reports, in order:
400
+ - tm executable: resolved path and reported plugin version
401
+ - dispatcher dir: TM_DISPATCHER_DIR (or $PWD fallback),
402
+ whether the env was actually set, and whether the
403
+ resolved path matches your current $PWD
404
+ - tmux: installed? version? server running? are we inside
405
+ a tmux session?
406
+ - idle dir: does /tmp/claude-idle/ exist?
407
+ - active teammates: count + names from \`tm ls\`
408
+ Read-only — doesn't change any state. Use it when something
409
+ looks off ("why is tm using the wrong path?" / "did
410
+ /claudemux:setup actually write the env?"). Exit code is
411
+ always 0; interpret the printed lines, not the status.
412
+ `,
413
+ }
414
+
415
+ /**
416
+ * Verbs removed in earlier releases. A user (or stale doc) still typing them
417
+ * gets a specific migration hint and exit 2, instead of the generic
418
+ * "unknown subcommand" path — these are part of the user-facing contract.
419
+ *
420
+ * The `--help` pre-scan in `cli/parse.ts` runs first, so e.g. `tm ask --help`
421
+ * still reaches the overview (no per-verb help exists for a removed verb) —
422
+ * matching the bash behaviour that this layer preserves.
423
+ */
424
+ export const REMOVED_VERB_MESSAGES: Readonly<Record<string, string>> = {
425
+ // `tm ask` was removed in 0.3.0 and re-introduced in stage 4 with new
426
+ // semantics (codex-mode borrow/return on a Codex-engine teammate). The
427
+ // entry is therefore intentionally absent here — `cli/dispatch.ts` routes the
428
+ // verb into the native dispatch table instead.
429
+ 'wait-idle': `tm wait-idle was renamed to 'tm wait' in 0.3.0. Same semantics; the new verb also prints .last on stdout by default.
430
+ `,
431
+ 'wait-quiet': `tm wait-quiet was folded into the --pane-quiet flag in 0.3.0. Use 'tm wait <name> --pane-quiet' (or 'tm send <name> --prompt "..." --pane-quiet' for the send-then-wait composition).
432
+ `,
433
+ }
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Teammate name validation.
3
+ *
4
+ * Schema 2 made teammate names flat opaque identifiers — fully
5
+ * decoupled from any repository path. A name must start with an
6
+ * ASCII alphanumeric character and may contain only ASCII
7
+ * alphanumerics, `-`, and `_`. `/` is forbidden, as is anything that
8
+ * looks like a path segment (`.`, `..`, leading `.`).
9
+ *
10
+ * The flat shape is what `tmuxSessionName` and every cross-process
11
+ * file path under `/tmp` consumes directly — no encoding pass, no
12
+ * round-trip ambiguity.
13
+ */
14
+
15
+ import type { TeammateName } from '../engines/types'
16
+
17
+ const NAME_REGEX = /^[A-Za-z0-9][A-Za-z0-9_-]*$/
18
+
19
+ export interface NameValidationFailure {
20
+ readonly kind: 'invalid'
21
+ readonly reason: string
22
+ }
23
+
24
+ export interface NameValidationOk {
25
+ readonly kind: 'ok'
26
+ readonly name: TeammateName
27
+ }
28
+
29
+ export type NameValidationResult = NameValidationOk | NameValidationFailure
30
+
31
+ /**
32
+ * Validate a raw CLI teammate name. The accepted form is documented
33
+ * above. Returns a discriminated result so the caller decides what
34
+ * error message the user sees.
35
+ */
36
+ export function validateTeammateName(raw: string): NameValidationResult {
37
+ if (raw.length === 0) return { kind: 'invalid', reason: 'empty' }
38
+ if (raw.includes('/')) {
39
+ return {
40
+ kind: 'invalid',
41
+ reason: "names are flat — '/' is forbidden (use a slug like 'flow-auth' instead)",
42
+ }
43
+ }
44
+ if (raw === '.' || raw === '..') {
45
+ return { kind: 'invalid', reason: `name '${raw}' is reserved` }
46
+ }
47
+ if (raw.startsWith('.')) {
48
+ return { kind: 'invalid', reason: `name '${raw}' starts with '.'` }
49
+ }
50
+ if (!NAME_REGEX.test(raw)) {
51
+ return {
52
+ kind: 'invalid',
53
+ reason:
54
+ "name must start with [A-Za-z0-9] and contain only [A-Za-z0-9_-] (no '/', no '.')",
55
+ }
56
+ }
57
+ return { kind: 'ok', name: raw }
58
+ }
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Resolve a teammate name to the engine that owns it. Decision multi-engine-tui-architecture
3
+ * §"Engine identity is the JSON's `engine` field" sets the rule: the
4
+ * router reads `/tmp/teammate-<name>.json` and routes by the `engine`
5
+ * field — no "infer from which registry directory exists" path, no
6
+ * legacy `codex-` prefix fallback.
7
+ *
8
+ * The verb-layer default impls (`statusVerb`, `killVerb`, every
9
+ * single-teammate verb) call `router.resolve(name)`; a `null` return
10
+ * is the "no such teammate" case the verb formats. The router never
11
+ * throws on a missing teammate — that is data, not an error.
12
+ *
13
+ * The production wiring may pass an identity migrator for already-running
14
+ * teammates that predate the base JSON. That migrator is allowed to
15
+ * materialise `/tmp/teammate-<name>.json`; the router still routes only by
16
+ * re-reading the JSON afterwards.
17
+ */
18
+
19
+ import { read as readIdentity } from '../persistence/identity-store'
20
+ import { validateTeammateName } from './name'
21
+ import type { Engine } from '../engines/engine'
22
+ import type { EngineRegistryView } from '../engines/registry'
23
+ import type { TeammateName } from '../engines/types'
24
+
25
+ /** One resolved teammate — the name plus the engine that owns it. */
26
+ export interface ResolvedTeammate {
27
+ readonly name: TeammateName
28
+ readonly engine: Engine
29
+ }
30
+
31
+ /** The seam every single-teammate verb consults. */
32
+ export interface TeammateRouter {
33
+ /** `null` means "no teammate by that name" — a data outcome, not an error. */
34
+ resolve(name: TeammateName): Promise<ResolvedTeammate | null>
35
+ }
36
+
37
+ /** Optional one-shot materialisation for pre-identity running teammates. */
38
+ export type IdentityMigrator = (name: TeammateName) => Promise<void>
39
+
40
+ /**
41
+ * Production router. Reads the base TeammateRecord JSON via the identity
42
+ * store; looks up the engine for the recorded kind through the registry.
43
+ * If either step misses, the result is `null` and the verb formats
44
+ * "no such teammate".
45
+ *
46
+ * A teammate whose JSON records an engine kind that this process has
47
+ * not registered (e.g. a stale `codex` record while running a build
48
+ * without Codex wired up) also resolves to `null` — the verb says "no
49
+ * such teammate" rather than crashing on `engines.get(undefined)`.
50
+ */
51
+ export class ProductionTeammateRouter implements TeammateRouter {
52
+ constructor(
53
+ private readonly engines: EngineRegistryView,
54
+ private readonly migrateMissingIdentity: IdentityMigrator | null = null,
55
+ ) {}
56
+
57
+ async resolve(name: TeammateName): Promise<ResolvedTeammate | null> {
58
+ if (validateTeammateName(name).kind !== 'ok') return null
59
+ let record = readIdentity(name)
60
+ if (record === null && this.migrateMissingIdentity !== null) {
61
+ await this.migrateMissingIdentity(name)
62
+ record = readIdentity(name)
63
+ }
64
+ if (record === null) return null
65
+ const engine = this.engines.get(record.engine)
66
+ if (engine === undefined) return null
67
+ return { name, engine }
68
+ }
69
+ }
70
+
71
+ /**
72
+ * Test-only router. Returns `null` for every name. Phase 1 used this as
73
+ * the default; Phase 2a keeps it for tests that need to exercise the
74
+ * "not found" branch without setting up the identity store.
75
+ */
76
+ export class EmptyTeammateRouter implements TeammateRouter {
77
+ async resolve(_name: TeammateName): Promise<ResolvedTeammate | null> {
78
+ return null
79
+ }
80
+ }