@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,504 @@
1
+ /**
2
+ * `tm history` — inspect a teammate name's past Claude Code sessions.
3
+ *
4
+ * Two modes: a list view (every transcript jsonl, newest first) and a
5
+ * detail view (one chosen transcript's headers + first prompt + last
6
+ * assistant text). Both modes parse the transcript jsonl natively,
7
+ * mirroring the `jq -s` / `jq` passes `bin/tm`'s `cmd_history` ran.
8
+ */
9
+
10
+ import { readdirSync, readFileSync, statSync } from 'node:fs'
11
+ import { join } from 'node:path'
12
+
13
+ import { encodeProjectDir } from '../../persistence/paths'
14
+ import { fmtAge, fmtLocalDateTime } from './clock'
15
+ import { isDirectory, isRegularFile, resolveSid } from './idle'
16
+ import { dieRepoNotFound, projectDirForCwd } from './repo-fs'
17
+ import { die } from './tmux'
18
+ import type { ClaudeVerbEnv } from './env'
19
+ import type { TmResult } from '../../tm'
20
+ import type { HistoryListEntry } from '../types'
21
+
22
+ function isPlainObject(value: unknown): value is Record<string, unknown> {
23
+ return typeof value === 'object' && value !== null && !Array.isArray(value)
24
+ }
25
+
26
+ /**
27
+ * One-decimal string of `value`, rounding a `.x5` tie to even — C
28
+ * `printf`'s `%.1f`, which `fmt_size`'s `awk` uses. `Number.toFixed`
29
+ * rounds half away from zero, so it would print `1.3M` where `awk`
30
+ * prints `1.2M` for a file of exactly 1.25 MiB; this keeps the size
31
+ * cells byte-identical to `tm`.
32
+ */
33
+ function toFixed1HalfEven(value: number): string {
34
+ const tenths = value * 10
35
+ const floor = Math.floor(tenths)
36
+ const frac = tenths - floor
37
+ let rounded: number
38
+ if (frac < 0.5) rounded = floor
39
+ else if (frac > 0.5) rounded = floor + 1
40
+ else rounded = floor % 2 === 0 ? floor : floor + 1
41
+ return (rounded / 10).toFixed(1)
42
+ }
43
+
44
+ /** Format a byte count as a short human size — `tm`'s `fmt_size`. */
45
+ function fmtSize(bytes: number): string {
46
+ if (bytes < 1024) return `${bytes}B`
47
+ if (bytes < 1048576) return `${Math.trunc(bytes / 1024)}K`
48
+ if (bytes < 1073741824) return `${toFixed1HalfEven(bytes / 1048576)}M`
49
+ return `${toFixed1HalfEven(bytes / 1073741824)}G`
50
+ }
51
+
52
+ /** `tm`'s `sed -E 's/T/ /; s/\.[0-9]+Z?$//; s/Z$//'` on a transcript timestamp. */
53
+ function mungeCreated(ts: string): string {
54
+ return ts.replace('T', ' ').replace(/\.[0-9]+Z?$/, '').replace(/Z$/, '')
55
+ }
56
+
57
+ /** Prefix every line of `text` with two spaces — `tm`'s `sed 's/^/ /'`. */
58
+ function indent(text: string): string {
59
+ return text
60
+ .split('\n')
61
+ .map((line) => ` ${line}`)
62
+ .join('\n')
63
+ }
64
+
65
+ /** A bare-integer string's numeric value, as bash arithmetic reads it (`null` → 0). */
66
+ function bashNum(value: string): number {
67
+ const n = Number(value)
68
+ return Number.isInteger(n) ? n : 0
69
+ }
70
+
71
+ /**
72
+ * The `text`-typed items of a transcript entry's `content` array.
73
+ * Returns the list of their `.text` values when the array has at least
74
+ * one text item, or `null` when it has none. Throws on a shape `jq`
75
+ * errors on — a non-object array item, or a non-string non-null
76
+ * `.text`.
77
+ */
78
+ function contentTextItems(content: readonly unknown[]): string[] | null {
79
+ let hasText = false
80
+ const texts: string[] = []
81
+ for (const item of content) {
82
+ if (!isPlainObject(item)) throw new Error('jq-fail')
83
+ if (item.type === 'text') {
84
+ hasText = true
85
+ const t = item.text
86
+ if (t === null || t === undefined) texts.push('')
87
+ else if (typeof t === 'string') texts.push(t)
88
+ else throw new Error('jq-fail')
89
+ }
90
+ }
91
+ return hasText ? texts : null
92
+ }
93
+
94
+ /**
95
+ * The prompt text of a `user` transcript entry — `tm`'s shared filter:
96
+ * a string `content` is the text itself; an array `content` joins its
97
+ * `text` items with a space. Returns `null` when the entry is not a
98
+ * selectable user prompt.
99
+ */
100
+ function userPromptText(entry: Record<string, unknown>): string | null {
101
+ const message = entry.message
102
+ if (message === null || message === undefined) return null
103
+ if (!isPlainObject(message)) throw new Error('jq-fail')
104
+ if (message.role !== 'user') return null
105
+ const content = message.content
106
+ if (typeof content === 'string') return content
107
+ if (Array.isArray(content)) {
108
+ const texts = contentTextItems(content)
109
+ return texts === null ? null : texts.join(' ')
110
+ }
111
+ return null
112
+ }
113
+
114
+ /** A `message.usage` object's cache-inclusive input total — `null` when every field is absent. */
115
+ function historyUsageSum(usage: unknown): number | null {
116
+ if (!isPlainObject(usage)) throw new Error('jq-fail')
117
+ let sum: number | null = null
118
+ for (const key of [
119
+ 'input_tokens',
120
+ 'cache_creation_input_tokens',
121
+ 'cache_read_input_tokens',
122
+ ] as const) {
123
+ const value = usage[key]
124
+ if (value === null || value === undefined) continue
125
+ if (typeof value !== 'number') throw new Error('jq-fail')
126
+ sum = (sum ?? 0) + value
127
+ }
128
+ return sum
129
+ }
130
+
131
+ /** `jq`'s `tostring` on a usage sum: a number, or the literal `null`. */
132
+ function historyUsageStr(sum: number | null): string {
133
+ return sum === null ? 'null' : String(sum)
134
+ }
135
+
136
+ /** First-line-of-first-user-prompt — `tm`'s `history_first_prompt`. */
137
+ function historyFirstPrompt(content: string): string {
138
+ // `head -200`: a human first prompt sits near the file head, so the
139
+ // scan is capped there. `jq` without `-s` reports a bad line and
140
+ // moves on, so a parse error or a filter error skips that line
141
+ // rather than failing.
142
+ for (const line of content.split('\n').slice(0, 200)) {
143
+ if (line.trim() === '') continue
144
+ let entry: unknown
145
+ try {
146
+ entry = JSON.parse(line)
147
+ } catch {
148
+ continue
149
+ }
150
+ if (!isPlainObject(entry) || entry.type !== 'user') continue
151
+ let text: string | null
152
+ try {
153
+ text = userPromptText(entry)
154
+ } catch {
155
+ continue
156
+ }
157
+ if (text === null) continue
158
+ return text.split('\n')[0] ?? ''
159
+ }
160
+ return ''
161
+ }
162
+
163
+ /** The `TOPIC` cell — first prompt, control chars stripped, 60 chars. */
164
+ function historyTopic(content: string): string {
165
+ const stripped = [...historyFirstPrompt(content)].filter(
166
+ (ch) => (ch.codePointAt(0) ?? 0) > 0x1f,
167
+ )
168
+ const topic = stripped.slice(0, 60).join('')
169
+ return topic.length > 0 ? topic : '(no user prompt)'
170
+ }
171
+
172
+ interface HistoryData {
173
+ firstPrompt: string
174
+ lastAssistant: string
175
+ createdTs: string
176
+ used: string
177
+ peak: string
178
+ }
179
+
180
+ const EMPTY_HISTORY: HistoryData = {
181
+ firstPrompt: '',
182
+ lastAssistant: '',
183
+ createdTs: '',
184
+ used: '',
185
+ peak: '',
186
+ }
187
+
188
+ /**
189
+ * Read a transcript's `history_detail` data — the native form of `tm`'s
190
+ * `jq -r -s` pass. `jq -s` slurps the whole file: one unparseable line,
191
+ * or any line `jq` errors while indexing, fails the entire pass — `tm`
192
+ * catches that with `|| echo $'\t\t\t\t\t'`. So any such failure here
193
+ * returns `EMPTY_HISTORY`, which renders identically to a transcript
194
+ * that simply has no prompts, assistant text, or usage.
195
+ */
196
+ function readHistoryData(content: string): HistoryData {
197
+ try {
198
+ const uPrompts: string[] = []
199
+ const aTexts: string[] = []
200
+ const usages: unknown[] = []
201
+ const timestamps: unknown[] = []
202
+ for (const line of content.split('\n')) {
203
+ if (line.trim() === '') continue
204
+ const entry: unknown = JSON.parse(line)
205
+ if (entry === null) continue
206
+ if (!isPlainObject(entry)) throw new Error('jq-fail')
207
+ if (entry.type === 'user') {
208
+ const text = userPromptText(entry)
209
+ if (text !== null) uPrompts.push(text)
210
+ } else if (entry.type === 'assistant') {
211
+ const message = entry.message
212
+ if (message !== null && message !== undefined) {
213
+ if (!isPlainObject(message)) throw new Error('jq-fail')
214
+ if (Array.isArray(message.content)) {
215
+ const texts = contentTextItems(message.content)
216
+ if (texts !== null) aTexts.push(texts.join('\n'))
217
+ }
218
+ if (message.usage !== null && message.usage !== undefined) {
219
+ usages.push(message.usage)
220
+ }
221
+ }
222
+ }
223
+ const ts = entry.timestamp
224
+ if (ts !== null && ts !== undefined) timestamps.push(ts)
225
+ }
226
+
227
+ let createdTs = ''
228
+ if (timestamps.length > 0) {
229
+ const first = timestamps[0]
230
+ if (first === false) createdTs = ''
231
+ else if (typeof first === 'string') createdTs = first
232
+ else throw new Error('jq-fail')
233
+ }
234
+
235
+ let used = ''
236
+ let peak = ''
237
+ if (usages.length > 0) {
238
+ const sums = usages.map(historyUsageSum)
239
+ used = historyUsageStr(sums[sums.length - 1] ?? null)
240
+ let peakNum: number | null = null
241
+ for (const sum of sums) {
242
+ if (sum !== null && (peakNum === null || sum > peakNum)) peakNum = sum
243
+ }
244
+ peak = historyUsageStr(peakNum)
245
+ }
246
+
247
+ return {
248
+ firstPrompt: (uPrompts[0] ?? '').replace(/\n+$/, ''),
249
+ lastAssistant: (aTexts[aTexts.length - 1] ?? '').replace(/\n+$/, ''),
250
+ createdTs,
251
+ used,
252
+ peak,
253
+ }
254
+ } catch {
255
+ return EMPTY_HISTORY
256
+ }
257
+ }
258
+
259
+ /**
260
+ * Read list-mode rows for Claude Code sessions. `null` means the Claude
261
+ * project directory does not exist; an empty array means it exists but has
262
+ * no transcript files.
263
+ */
264
+ function claudeHistoryListEntries(
265
+ name: string,
266
+ projectDir: string,
267
+ ): readonly HistoryListEntry[] | null {
268
+ if (!isDirectory(projectDir)) {
269
+ return null
270
+ }
271
+ let names: string[]
272
+ try {
273
+ names = readdirSync(projectDir).filter((name) => name.endsWith('.jsonl'))
274
+ } catch {
275
+ names = []
276
+ }
277
+ if (names.length === 0) {
278
+ return []
279
+ }
280
+
281
+ const liveSid = resolveSid(name) ?? ''
282
+ const entries = names.map((name) => {
283
+ const full = join(projectDir, name)
284
+ const sidFull = name.replace(/\.jsonl$/, '')
285
+ let mtimeMs = 0
286
+ let size = 0
287
+ try {
288
+ const stat = statSync(full)
289
+ mtimeMs = stat.mtimeMs
290
+ size = stat.size
291
+ } catch {
292
+ mtimeMs = 0
293
+ size = 0
294
+ }
295
+ let content = ''
296
+ try {
297
+ content = readFileSync(full, 'utf8')
298
+ } catch {
299
+ content = ''
300
+ }
301
+ return {
302
+ engine: 'claude',
303
+ id: sidFull,
304
+ mtimeMs,
305
+ size,
306
+ topic: historyTopic(content),
307
+ active: liveSid !== '' && sidFull === liveSid,
308
+ } satisfies HistoryListEntry
309
+ })
310
+ // `ls -t` — newest first; equal mtimes break by name (a `<`/`>`
311
+ // compare, not `localeCompare`, so the tie order is the same on
312
+ // every CI runner).
313
+ entries.sort((a, b) => b.mtimeMs - a.mtimeMs || (a.id < b.id ? -1 : a.id > b.id ? 1 : 0))
314
+ return entries
315
+ }
316
+
317
+ /**
318
+ * Both the formatted `TmResult` and the structured entries from one
319
+ * project-dir scan. The engine adapter consumes both halves; the bash-
320
+ * compatible `claudeHistory` entry point drops the entries and returns
321
+ * the `TmResult` only.
322
+ */
323
+ export interface ClaudeHistoryListResult {
324
+ readonly tmResult: TmResult
325
+ readonly entries: readonly HistoryListEntry[]
326
+ }
327
+
328
+ /**
329
+ * `tm history <name>` — list a teammate name's past Claude Code
330
+ * sessions, one per transcript jsonl, newest first. One project-dir
331
+ * walk produces both the structured entries (returned for engine-level
332
+ * consumers like `Engine.history`'s `HistoryResult.entries`) and the
333
+ * `column -t`-aligned text rows. Repo-missing surfaces as `{ tmResult:
334
+ * die..., entries: [] }`.
335
+ */
336
+ export async function claudeHistoryList(name: string, cwd: string | null, env: ClaudeVerbEnv): Promise<ClaudeHistoryListResult> {
337
+ const target = cwd ?? join(env.dispatcherDir, name)
338
+ if (!isDirectory(target)) {
339
+ return { tmResult: dieRepoNotFound('history', name, target, env.dispatcherDir), entries: [] }
340
+ }
341
+ const projectDir = projectDirForCwd(target, env)
342
+ const entries = claudeHistoryListEntries(name, projectDir)
343
+ if (entries === null || entries.length === 0) {
344
+ return {
345
+ tmResult: { code: 0, stdout: `(no past sessions for ${name})\n`, stderr: '' },
346
+ entries: entries ?? [],
347
+ }
348
+ }
349
+ const now = Math.floor(Date.now() / 1000)
350
+ // Full id, not an 8-char prefix — keeps this engine-raw fallback render
351
+ // (used when verbs/history.ts can't take its cross-engine merge path)
352
+ // byte-consistent with the merged renderer, so a single-engine call site
353
+ // never silently emits a different ID column shape than the dispatcher one.
354
+ const rows: string[][] = [[' ', 'ENGINE', 'ID', 'AGE', 'SIZE', 'TOPIC']]
355
+ for (const entry of entries) {
356
+ rows.push([
357
+ entry.active ? '*' : ' ',
358
+ entry.engine,
359
+ entry.id,
360
+ fmtAge(Math.max(0, now - Math.floor(entry.mtimeMs / 1000))),
361
+ fmtSize(entry.size),
362
+ entry.topic,
363
+ ])
364
+ }
365
+ const tmResult = await env.runColumn(`${rows.map((row) => row.join('\t')).join('\n')}\n`)
366
+ return { tmResult, entries }
367
+ }
368
+
369
+ /**
370
+ * `tm history <name> <sid-or-prefix>` — the detail view of one past
371
+ * session. Resolves the prefix to a unique transcript, then prints
372
+ * the history-detail block.
373
+ */
374
+ function historyDetail(teammateName: string, projectDir: string, prefix: string): TmResult {
375
+ if (!/^[0-9a-f-]{1,36}$/.test(prefix)) {
376
+ return die(`tm history: invalid sid prefix '${prefix}' — must match ^[0-9a-f-]{1,36}$`)
377
+ }
378
+ if (!isDirectory(projectDir)) {
379
+ return die(`tm history: no project dir at ${projectDir} for ${teammateName} (no sessions yet)`)
380
+ }
381
+
382
+ let files: string[]
383
+ try {
384
+ files = readdirSync(projectDir).filter(
385
+ (file) =>
386
+ file.startsWith(prefix) &&
387
+ file.endsWith('.jsonl') &&
388
+ isRegularFile(join(projectDir, file)),
389
+ )
390
+ } catch {
391
+ files = []
392
+ }
393
+ files.sort()
394
+ if (files.length === 0) {
395
+ return die(`tm history: no session matching '${prefix}' in ${teammateName}`)
396
+ }
397
+ if (files.length > 1) {
398
+ const cands = `${files.map((f) => f.replace(/\.jsonl$/, '')).join(' ')} `
399
+ return die(
400
+ `tm history: prefix '${prefix}' matches ${files.length} sessions — ` +
401
+ `be more specific: ${cands}`,
402
+ )
403
+ }
404
+
405
+ const fname = files[0]!
406
+ const file = join(projectDir, fname)
407
+ const sidFull = fname.replace(/\.jsonl$/, '')
408
+ let size = 0
409
+ let mtime = 0
410
+ try {
411
+ const stat = statSync(file)
412
+ size = stat.size
413
+ mtime = Math.floor(stat.mtimeMs / 1000)
414
+ } catch {
415
+ size = 0
416
+ mtime = 0
417
+ }
418
+ let content = ''
419
+ try {
420
+ content = readFileSync(file, 'utf8')
421
+ } catch {
422
+ content = ''
423
+ }
424
+ const lineCount = (content.match(/\n/g) ?? []).length
425
+ const now = Math.floor(Date.now() / 1000)
426
+ const data = readHistoryData(content)
427
+
428
+ const createdStr = data.createdTs !== '' ? mungeCreated(data.createdTs) : ''
429
+ let ctxStr = '(no usage data)'
430
+ if (data.used !== '' && data.peak !== '') {
431
+ const window = bashNum(data.peak) > 210000 ? 1000000 : 200000
432
+ const pct = Math.trunc((bashNum(data.used) * 100) / window)
433
+ const wlabel = window >= 1000000 ? '1M' : '200k'
434
+ const note = window >= 1000000 ? 'detected 1M' : 'assumed 200k'
435
+ ctxStr = `${data.used} tokens · ${pct}% of ${wlabel} (${note})`
436
+ }
437
+
438
+ let laDisplay = data.lastAssistant !== '' ? data.lastAssistant : '(no assistant text)'
439
+ if (data.lastAssistant !== '') {
440
+ const cps = [...data.lastAssistant]
441
+ if (cps.length > 1500) {
442
+ laDisplay =
443
+ `${cps.slice(0, 1500).join('')}\n` +
444
+ `... (${cps.length - 1500} chars truncated; full text in jsonl)`
445
+ }
446
+ }
447
+ const fpDisplay = data.firstPrompt !== '' ? data.firstPrompt : '(no user prompt)'
448
+
449
+ const stdout =
450
+ `sid: ${sidFull}\n` +
451
+ `file: ${file}\n` +
452
+ ` (${fmtSize(size)} · ${lineCount} lines)\n` +
453
+ `created: ${createdStr !== '' ? createdStr : '(unknown)'}\n` +
454
+ `last_seen: ${fmtLocalDateTime(mtime)} (${fmtAge(now - mtime)} ago)\n` +
455
+ `ctx: ${ctxStr}\n` +
456
+ '\n' +
457
+ 'first prompt:\n' +
458
+ `${indent(fpDisplay)}\n` +
459
+ '\n' +
460
+ 'last assistant:\n' +
461
+ `${indent(laDisplay)}\n` +
462
+ '\n' +
463
+ `resume: tm resume ${teammateName} ${sidFull}\n`
464
+ return { code: 0, stdout, stderr: '' }
465
+ }
466
+
467
+ /**
468
+ * Existence-only check: does the Claude Code project dir for `cwd`
469
+ * hold any transcript jsonl? Mirrors `hasCodexHistoryForCwd` — both
470
+ * resume-probing callers ask the same question of each engine and
471
+ * branch on the answer, so the two helpers must agree on what
472
+ * "has candidate" means (any file present; depth-read is intentionally
473
+ * absent, since `claude --continue` will itself pick the latest).
474
+ *
475
+ * `projectsDir` is plumbed in by the caller (cli/context.ts owns env wiring
476
+ * via `NativeEnv.projectsDir`); deriving from `$HOME` here would
477
+ * diverge from tests that inject a tmpdir `projectsDir`.
478
+ */
479
+ export function hasClaudeHistoryForCwd(cwd: string, projectsDir: string): boolean {
480
+ const projectDir = join(projectsDir, encodeProjectDir(cwd))
481
+ if (!isDirectory(projectDir)) return false
482
+ try {
483
+ for (const name of readdirSync(projectDir)) {
484
+ if (name.endsWith('.jsonl')) return true
485
+ }
486
+ } catch {
487
+ return false
488
+ }
489
+ return false
490
+ }
491
+
492
+ export async function claudeHistory(args: readonly string[], env: ClaudeVerbEnv): Promise<TmResult> {
493
+ const name = args[0] ?? ''
494
+ if (name.length === 0) return die('usage: tm history <name> [<sid-or-prefix>]')
495
+
496
+ const sidArg = args[1] ?? ''
497
+ const cwdArg = args[2] && args[2].length > 0 ? args[2] : null
498
+ if (sidArg === '') return (await claudeHistoryList(name, cwdArg, env)).tmResult
499
+
500
+ const cwd = cwdArg ?? join(env.dispatcherDir, name)
501
+ if (!isDirectory(cwd)) return dieRepoNotFound('history', name, cwd, env.dispatcherDir)
502
+ const projectDir = projectDirForCwd(cwd, env)
503
+ return historyDetail(name, projectDir, sidArg)
504
+ }
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Claude-engine identifier helpers — the random sid + suffix + slug
3
+ * minting `tm spawn` and `tm resume` reach for. Centralised so a future
4
+ * change to the alphabet, length, or slug allowlist is a one-site edit.
5
+ */
6
+
7
+ import { randomBytes, randomUUID } from 'node:crypto'
8
+
9
+ /** `tm`'s `new_sid`: a lowercase UUID. Claude Code normalizes sids to lower. */
10
+ export function newSid(): string {
11
+ return randomUUID().toLowerCase()
12
+ }
13
+
14
+ /** `tm`'s `rand_suffix`: 4 chars drawn from `[a-z0-9]`. */
15
+ export function randSuffix(): string {
16
+ const alphabet = 'abcdefghijklmnopqrstuvwxyz0123456789'
17
+ const bytes = randomBytes(4)
18
+ let out = ''
19
+ for (let i = 0; i < 4; i++) out += alphabet[bytes[i]! % alphabet.length]
20
+ return out
21
+ }
22
+
23
+ /** A UUID — the format `tm resume` requires for a resolved sid. */
24
+ export const UUID_RE =
25
+ /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Identity migration for Claude teammates was a one-shot helper that
3
+ * materialised `/tmp/teammate-<name>.json` from a live tmux session
4
+ * or pre-JSON `.cwd` / `.sid` markers (schema 1). The schema 2 cut
5
+ * removed that path: any live teammate predating the new layout no
6
+ * longer has a recordable `repo` field, so the migrator returns a
7
+ * no-op. The verb layer reports the record as missing and the user
8
+ * `tm kill`s + `tm spawn`s to recover.
9
+ */
10
+
11
+ import type { NativeEnv } from '../../env'
12
+ import type { IdentityMigrator } from '../../identity/router'
13
+
14
+ export function createClaudeIdentityMigrator(_env: NativeEnv): IdentityMigrator {
15
+ return async () => {}
16
+ }
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Claude-engine idle / sid utilities. The on-busy and on-stop hooks
3
+ * write `/tmp/claude-idle/<sid>{,.busy,.last}` markers, and several
4
+ * hot-path verbs need to clear or wait on those markers around a turn.
5
+ *
6
+ * Decision cross-process-cross-platform-invariants (path-builder discipline) keeps the marker paths in
7
+ * `persistence/paths.ts`; this module composes them into the runtime
8
+ * operations the verb bodies use.
9
+ */
10
+
11
+ import { rmSync, statSync, readFileSync } from 'node:fs'
12
+
13
+ import {
14
+ busyMarkerFor,
15
+ idleMarkerFor,
16
+ lastFileFor,
17
+ sidFile,
18
+ } from '../../persistence/paths'
19
+ import { die } from './tmux'
20
+ import type { TeammateName } from '../types'
21
+ import type { TmResult } from '../../tm'
22
+
23
+ /** Read a file only if it exists and is non-empty (`tm`'s `[[ -s file ]]`). */
24
+ export function readIfNonEmpty(file: string): string | null {
25
+ try {
26
+ if (statSync(file).size === 0) return null
27
+ return readFileSync(file, 'utf8')
28
+ } catch {
29
+ return null
30
+ }
31
+ }
32
+
33
+ /** Whether a path is a regular file (`tm`'s `[[ -f file ]]`). */
34
+ export function isRegularFile(path: string): boolean {
35
+ try {
36
+ return statSync(path).isFile()
37
+ } catch {
38
+ return false
39
+ }
40
+ }
41
+
42
+ /** Whether a path is a directory (`tm`'s `[[ -d path ]]`). */
43
+ export function isDirectory(path: string): boolean {
44
+ try {
45
+ return statSync(path).isDirectory()
46
+ } catch {
47
+ return false
48
+ }
49
+ }
50
+
51
+ /** Strip trailing newlines (the effect of bash `$(cat ...)`). */
52
+ export function rstrip(text: string): string {
53
+ return text.replace(/\n+$/, '')
54
+ }
55
+
56
+ /** Read the recorded sid for a teammate — `tm`'s `resolve_sid`. */
57
+ export function resolveSid(name: TeammateName): string | null {
58
+ const raw = readIfNonEmpty(sidFile(name))
59
+ return raw === null ? null : rstrip(raw)
60
+ }
61
+
62
+ /**
63
+ * `resolveSid` that dies with `tm`'s shared error when the sid is
64
+ * missing. Returned in a discriminated shape the caller branches on.
65
+ */
66
+ export function resolveSidOrDie(
67
+ name: TeammateName,
68
+ ): { sid: string } | { error: TmResult } {
69
+ const sid = resolveSid(name)
70
+ if (sid === null) {
71
+ return {
72
+ error: die(
73
+ `no sid file for ${name} at ${sidFile(name)} — was this teammate ` +
74
+ "spawned via 'tm spawn'? (raw 'tmux new-session' won't seed the sid)",
75
+ ),
76
+ }
77
+ }
78
+ return { sid }
79
+ }
80
+
81
+ /**
82
+ * `tm`'s `clear_idle`: drop a sid's three hook artifacts together —
83
+ * the idle marker, the `.last` text, and the `.busy` marker — so a later
84
+ * wait/last sees the next turn, not a stale one. No-op for an empty sid.
85
+ */
86
+ export function clearIdle(sid: string): void {
87
+ if (sid === '') return
88
+ for (const file of [idleMarkerFor(sid), lastFileFor(sid), busyMarkerFor(sid)]) {
89
+ rmSync(file, { force: true })
90
+ }
91
+ }