@trenchwork/coder 1.3.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 (560) hide show
  1. package/LICENSE +16 -0
  2. package/README.md +173 -0
  3. package/agents/trenchwork-code.rules.json +199 -0
  4. package/dist/bin/deepseek.d.ts +3 -0
  5. package/dist/bin/deepseek.d.ts.map +1 -0
  6. package/dist/bin/deepseek.js +23 -0
  7. package/dist/bin/deepseek.js.map +1 -0
  8. package/dist/capabilities/baseCapability.d.ts +72 -0
  9. package/dist/capabilities/baseCapability.d.ts.map +1 -0
  10. package/dist/capabilities/baseCapability.js +183 -0
  11. package/dist/capabilities/baseCapability.js.map +1 -0
  12. package/dist/capabilities/bashCapability.d.ts +13 -0
  13. package/dist/capabilities/bashCapability.d.ts.map +1 -0
  14. package/dist/capabilities/bashCapability.js +24 -0
  15. package/dist/capabilities/bashCapability.js.map +1 -0
  16. package/dist/capabilities/editCapability.d.ts +17 -0
  17. package/dist/capabilities/editCapability.d.ts.map +1 -0
  18. package/dist/capabilities/editCapability.js +27 -0
  19. package/dist/capabilities/editCapability.js.map +1 -0
  20. package/dist/capabilities/enhancedGitCapability.d.ts +7 -0
  21. package/dist/capabilities/enhancedGitCapability.d.ts.map +1 -0
  22. package/dist/capabilities/enhancedGitCapability.js +220 -0
  23. package/dist/capabilities/enhancedGitCapability.js.map +1 -0
  24. package/dist/capabilities/filesystemCapability.d.ts +13 -0
  25. package/dist/capabilities/filesystemCapability.d.ts.map +1 -0
  26. package/dist/capabilities/filesystemCapability.js +24 -0
  27. package/dist/capabilities/filesystemCapability.js.map +1 -0
  28. package/dist/capabilities/gitHistoryCapability.d.ts +6 -0
  29. package/dist/capabilities/gitHistoryCapability.d.ts.map +1 -0
  30. package/dist/capabilities/gitHistoryCapability.js +184 -0
  31. package/dist/capabilities/gitHistoryCapability.js.map +1 -0
  32. package/dist/capabilities/hitlCapability.d.ts +18 -0
  33. package/dist/capabilities/hitlCapability.d.ts.map +1 -0
  34. package/dist/capabilities/hitlCapability.js +29 -0
  35. package/dist/capabilities/hitlCapability.js.map +1 -0
  36. package/dist/capabilities/index.d.ts +11 -0
  37. package/dist/capabilities/index.d.ts.map +1 -0
  38. package/dist/capabilities/index.js +16 -0
  39. package/dist/capabilities/index.js.map +1 -0
  40. package/dist/capabilities/memoryCapability.d.ts +10 -0
  41. package/dist/capabilities/memoryCapability.d.ts.map +1 -0
  42. package/dist/capabilities/memoryCapability.js +22 -0
  43. package/dist/capabilities/memoryCapability.js.map +1 -0
  44. package/dist/capabilities/notebookCapability.d.ts +6 -0
  45. package/dist/capabilities/notebookCapability.d.ts.map +1 -0
  46. package/dist/capabilities/notebookCapability.js +17 -0
  47. package/dist/capabilities/notebookCapability.js.map +1 -0
  48. package/dist/capabilities/searchCapability.d.ts +19 -0
  49. package/dist/capabilities/searchCapability.d.ts.map +1 -0
  50. package/dist/capabilities/searchCapability.js +29 -0
  51. package/dist/capabilities/searchCapability.js.map +1 -0
  52. package/dist/capabilities/skillCapability.d.ts +6 -0
  53. package/dist/capabilities/skillCapability.d.ts.map +1 -0
  54. package/dist/capabilities/skillCapability.js +17 -0
  55. package/dist/capabilities/skillCapability.js.map +1 -0
  56. package/dist/capabilities/todoCapability.d.ts +11 -0
  57. package/dist/capabilities/todoCapability.d.ts.map +1 -0
  58. package/dist/capabilities/todoCapability.js +22 -0
  59. package/dist/capabilities/todoCapability.js.map +1 -0
  60. package/dist/capabilities/toolManifest.d.ts +3 -0
  61. package/dist/capabilities/toolManifest.d.ts.map +1 -0
  62. package/dist/capabilities/toolManifest.js +163 -0
  63. package/dist/capabilities/toolManifest.js.map +1 -0
  64. package/dist/capabilities/toolRegistry.d.ts +25 -0
  65. package/dist/capabilities/toolRegistry.d.ts.map +1 -0
  66. package/dist/capabilities/toolRegistry.js +150 -0
  67. package/dist/capabilities/toolRegistry.js.map +1 -0
  68. package/dist/capabilities/unifiedCodingCapability.d.ts +62 -0
  69. package/dist/capabilities/unifiedCodingCapability.d.ts.map +1 -0
  70. package/dist/capabilities/unifiedCodingCapability.js +790 -0
  71. package/dist/capabilities/unifiedCodingCapability.js.map +1 -0
  72. package/dist/capabilities/webCapability.d.ts +23 -0
  73. package/dist/capabilities/webCapability.d.ts.map +1 -0
  74. package/dist/capabilities/webCapability.js +33 -0
  75. package/dist/capabilities/webCapability.js.map +1 -0
  76. package/dist/config.d.ts +25 -0
  77. package/dist/config.d.ts.map +1 -0
  78. package/dist/config.js +181 -0
  79. package/dist/config.js.map +1 -0
  80. package/dist/contracts/agent-profiles.schema.json +25 -0
  81. package/dist/contracts/agent-schemas.json +158 -0
  82. package/dist/contracts/models.schema.json +9 -0
  83. package/dist/contracts/module-schema.json +367 -0
  84. package/dist/contracts/schemas/agent-profile.schema.json +157 -0
  85. package/dist/contracts/schemas/agent-rules.schema.json +238 -0
  86. package/dist/contracts/schemas/agent-schemas.schema.json +528 -0
  87. package/dist/contracts/schemas/agent.schema.json +90 -0
  88. package/dist/contracts/schemas/tool-selection.schema.json +174 -0
  89. package/dist/contracts/tools.schema.json +42 -0
  90. package/dist/contracts/unified-schema.json +40 -0
  91. package/dist/contracts/v1/agent.d.ts +225 -0
  92. package/dist/contracts/v1/agent.d.ts.map +1 -0
  93. package/dist/contracts/v1/agent.js +8 -0
  94. package/dist/contracts/v1/agent.js.map +1 -0
  95. package/dist/contracts/v1/agentProfileManifest.d.ts +60 -0
  96. package/dist/contracts/v1/agentProfileManifest.d.ts.map +1 -0
  97. package/dist/contracts/v1/agentProfileManifest.js +9 -0
  98. package/dist/contracts/v1/agentProfileManifest.js.map +1 -0
  99. package/dist/contracts/v1/agentRules.d.ts +60 -0
  100. package/dist/contracts/v1/agentRules.d.ts.map +1 -0
  101. package/dist/contracts/v1/agentRules.js +10 -0
  102. package/dist/contracts/v1/agentRules.js.map +1 -0
  103. package/dist/contracts/v1/provider.d.ts +149 -0
  104. package/dist/contracts/v1/provider.d.ts.map +1 -0
  105. package/dist/contracts/v1/provider.js +7 -0
  106. package/dist/contracts/v1/provider.js.map +1 -0
  107. package/dist/contracts/v1/tool.d.ts +136 -0
  108. package/dist/contracts/v1/tool.d.ts.map +1 -0
  109. package/dist/contracts/v1/tool.js +7 -0
  110. package/dist/contracts/v1/tool.js.map +1 -0
  111. package/dist/contracts/v1/toolAccess.d.ts +43 -0
  112. package/dist/contracts/v1/toolAccess.d.ts.map +1 -0
  113. package/dist/contracts/v1/toolAccess.js +9 -0
  114. package/dist/contracts/v1/toolAccess.js.map +1 -0
  115. package/dist/core/adversarial.d.ts +38 -0
  116. package/dist/core/adversarial.d.ts.map +1 -0
  117. package/dist/core/adversarial.js +106 -0
  118. package/dist/core/adversarial.js.map +1 -0
  119. package/dist/core/adversarialCorrection.d.ts +22 -0
  120. package/dist/core/adversarialCorrection.d.ts.map +1 -0
  121. package/dist/core/adversarialCorrection.js +25 -0
  122. package/dist/core/adversarialCorrection.js.map +1 -0
  123. package/dist/core/agent.d.ts +331 -0
  124. package/dist/core/agent.d.ts.map +1 -0
  125. package/dist/core/agent.js +1637 -0
  126. package/dist/core/agent.js.map +1 -0
  127. package/dist/core/agentProfileManifest.d.ts +3 -0
  128. package/dist/core/agentProfileManifest.d.ts.map +1 -0
  129. package/dist/core/agentProfileManifest.js +188 -0
  130. package/dist/core/agentProfileManifest.js.map +1 -0
  131. package/dist/core/agentProfiles.d.ts +22 -0
  132. package/dist/core/agentProfiles.d.ts.map +1 -0
  133. package/dist/core/agentProfiles.js +35 -0
  134. package/dist/core/agentProfiles.js.map +1 -0
  135. package/dist/core/agentRegistry.d.ts +111 -0
  136. package/dist/core/agentRegistry.d.ts.map +1 -0
  137. package/dist/core/agentRegistry.js +229 -0
  138. package/dist/core/agentRegistry.js.map +1 -0
  139. package/dist/core/agentRulebook.d.ts +11 -0
  140. package/dist/core/agentRulebook.d.ts.map +1 -0
  141. package/dist/core/agentRulebook.js +136 -0
  142. package/dist/core/agentRulebook.js.map +1 -0
  143. package/dist/core/agentSchemaLoader.d.ts +131 -0
  144. package/dist/core/agentSchemaLoader.d.ts.map +1 -0
  145. package/dist/core/agentSchemaLoader.js +235 -0
  146. package/dist/core/agentSchemaLoader.js.map +1 -0
  147. package/dist/core/aiErrorFixer.d.ts +57 -0
  148. package/dist/core/aiErrorFixer.d.ts.map +1 -0
  149. package/dist/core/aiErrorFixer.js +214 -0
  150. package/dist/core/aiErrorFixer.js.map +1 -0
  151. package/dist/core/bashCommandGuidance.d.ts +16 -0
  152. package/dist/core/bashCommandGuidance.d.ts.map +1 -0
  153. package/dist/core/bashCommandGuidance.js +40 -0
  154. package/dist/core/bashCommandGuidance.js.map +1 -0
  155. package/dist/core/compactionNote.d.ts +13 -0
  156. package/dist/core/compactionNote.d.ts.map +1 -0
  157. package/dist/core/compactionNote.js +13 -0
  158. package/dist/core/compactionNote.js.map +1 -0
  159. package/dist/core/constants.d.ts +31 -0
  160. package/dist/core/constants.d.ts.map +1 -0
  161. package/dist/core/constants.js +62 -0
  162. package/dist/core/constants.js.map +1 -0
  163. package/dist/core/contextManager.d.ts +271 -0
  164. package/dist/core/contextManager.d.ts.map +1 -0
  165. package/dist/core/contextManager.js +1076 -0
  166. package/dist/core/contextManager.js.map +1 -0
  167. package/dist/core/contextUsage.d.ts +28 -0
  168. package/dist/core/contextUsage.d.ts.map +1 -0
  169. package/dist/core/contextUsage.js +62 -0
  170. package/dist/core/contextUsage.js.map +1 -0
  171. package/dist/core/contextWindow.d.ts +42 -0
  172. package/dist/core/contextWindow.d.ts.map +1 -0
  173. package/dist/core/contextWindow.js +127 -0
  174. package/dist/core/contextWindow.js.map +1 -0
  175. package/dist/core/customCommands.d.ts +19 -0
  176. package/dist/core/customCommands.d.ts.map +1 -0
  177. package/dist/core/customCommands.js +85 -0
  178. package/dist/core/customCommands.js.map +1 -0
  179. package/dist/core/diffPanel.d.ts +30 -0
  180. package/dist/core/diffPanel.d.ts.map +1 -0
  181. package/dist/core/diffPanel.js +48 -0
  182. package/dist/core/diffPanel.js.map +1 -0
  183. package/dist/core/errorClassification.d.ts +44 -0
  184. package/dist/core/errorClassification.d.ts.map +1 -0
  185. package/dist/core/errorClassification.js +333 -0
  186. package/dist/core/errorClassification.js.map +1 -0
  187. package/dist/core/errors/apiKeyErrors.d.ts +11 -0
  188. package/dist/core/errors/apiKeyErrors.d.ts.map +1 -0
  189. package/dist/core/errors/apiKeyErrors.js +159 -0
  190. package/dist/core/errors/apiKeyErrors.js.map +1 -0
  191. package/dist/core/errors/errorTypes.d.ts +111 -0
  192. package/dist/core/errors/errorTypes.d.ts.map +1 -0
  193. package/dist/core/errors/errorTypes.js +345 -0
  194. package/dist/core/errors/errorTypes.js.map +1 -0
  195. package/dist/core/errors/index.d.ts +50 -0
  196. package/dist/core/errors/index.d.ts.map +1 -0
  197. package/dist/core/errors/index.js +156 -0
  198. package/dist/core/errors/index.js.map +1 -0
  199. package/dist/core/errors/networkErrors.d.ts +14 -0
  200. package/dist/core/errors/networkErrors.d.ts.map +1 -0
  201. package/dist/core/errors/networkErrors.js +53 -0
  202. package/dist/core/errors/networkErrors.js.map +1 -0
  203. package/dist/core/errors/safetyValidator.d.ts +109 -0
  204. package/dist/core/errors/safetyValidator.d.ts.map +1 -0
  205. package/dist/core/errors/safetyValidator.js +272 -0
  206. package/dist/core/errors/safetyValidator.js.map +1 -0
  207. package/dist/core/errors.d.ts +4 -0
  208. package/dist/core/errors.d.ts.map +1 -0
  209. package/dist/core/errors.js +33 -0
  210. package/dist/core/errors.js.map +1 -0
  211. package/dist/core/failureRegistry.d.ts +30 -0
  212. package/dist/core/failureRegistry.d.ts.map +1 -0
  213. package/dist/core/failureRegistry.js +74 -0
  214. package/dist/core/failureRegistry.js.map +1 -0
  215. package/dist/core/fileMentions.d.ts +40 -0
  216. package/dist/core/fileMentions.d.ts.map +1 -0
  217. package/dist/core/fileMentions.js +136 -0
  218. package/dist/core/fileMentions.js.map +1 -0
  219. package/dist/core/finalResponseFormatter.d.ts +10 -0
  220. package/dist/core/finalResponseFormatter.d.ts.map +1 -0
  221. package/dist/core/finalResponseFormatter.js +14 -0
  222. package/dist/core/finalResponseFormatter.js.map +1 -0
  223. package/dist/core/guardrails.d.ts +146 -0
  224. package/dist/core/guardrails.d.ts.map +1 -0
  225. package/dist/core/guardrails.js +361 -0
  226. package/dist/core/guardrails.js.map +1 -0
  227. package/dist/core/hitl.d.ts +119 -0
  228. package/dist/core/hitl.d.ts.map +1 -0
  229. package/dist/core/hitl.js +396 -0
  230. package/dist/core/hitl.js.map +1 -0
  231. package/dist/core/hooks.d.ts +95 -0
  232. package/dist/core/hooks.d.ts.map +1 -0
  233. package/dist/core/hooks.js +236 -0
  234. package/dist/core/hooks.js.map +1 -0
  235. package/dist/core/hostedAuth.d.ts +88 -0
  236. package/dist/core/hostedAuth.d.ts.map +1 -0
  237. package/dist/core/hostedAuth.js +219 -0
  238. package/dist/core/hostedAuth.js.map +1 -0
  239. package/dist/core/inputProtection.d.ts +122 -0
  240. package/dist/core/inputProtection.d.ts.map +1 -0
  241. package/dist/core/inputProtection.js +422 -0
  242. package/dist/core/inputProtection.js.map +1 -0
  243. package/dist/core/modelDiscovery.d.ts +102 -0
  244. package/dist/core/modelDiscovery.d.ts.map +1 -0
  245. package/dist/core/modelDiscovery.js +416 -0
  246. package/dist/core/modelDiscovery.js.map +1 -0
  247. package/dist/core/multilinePasteHandler.d.ts +35 -0
  248. package/dist/core/multilinePasteHandler.d.ts.map +1 -0
  249. package/dist/core/multilinePasteHandler.js +81 -0
  250. package/dist/core/multilinePasteHandler.js.map +1 -0
  251. package/dist/core/permissionMode.d.ts +40 -0
  252. package/dist/core/permissionMode.d.ts.map +1 -0
  253. package/dist/core/permissionMode.js +86 -0
  254. package/dist/core/permissionMode.js.map +1 -0
  255. package/dist/core/postWriteDiagnostics.d.ts +32 -0
  256. package/dist/core/postWriteDiagnostics.d.ts.map +1 -0
  257. package/dist/core/postWriteDiagnostics.js +127 -0
  258. package/dist/core/postWriteDiagnostics.js.map +1 -0
  259. package/dist/core/preferences.d.ts +66 -0
  260. package/dist/core/preferences.d.ts.map +1 -0
  261. package/dist/core/preferences.js +310 -0
  262. package/dist/core/preferences.js.map +1 -0
  263. package/dist/core/quota.d.ts +61 -0
  264. package/dist/core/quota.d.ts.map +1 -0
  265. package/dist/core/quota.js +104 -0
  266. package/dist/core/quota.js.map +1 -0
  267. package/dist/core/quotaErrors.d.ts +42 -0
  268. package/dist/core/quotaErrors.d.ts.map +1 -0
  269. package/dist/core/quotaErrors.js +86 -0
  270. package/dist/core/quotaErrors.js.map +1 -0
  271. package/dist/core/refusalDetection.d.ts +2 -0
  272. package/dist/core/refusalDetection.d.ts.map +1 -0
  273. package/dist/core/refusalDetection.js +51 -0
  274. package/dist/core/refusalDetection.js.map +1 -0
  275. package/dist/core/relativeTime.d.ts +8 -0
  276. package/dist/core/relativeTime.d.ts.map +1 -0
  277. package/dist/core/relativeTime.js +29 -0
  278. package/dist/core/relativeTime.js.map +1 -0
  279. package/dist/core/resultVerification.d.ts +48 -0
  280. package/dist/core/resultVerification.d.ts.map +1 -0
  281. package/dist/core/resultVerification.js +127 -0
  282. package/dist/core/resultVerification.js.map +1 -0
  283. package/dist/core/rewind.d.ts +14 -0
  284. package/dist/core/rewind.d.ts.map +1 -0
  285. package/dist/core/rewind.js +25 -0
  286. package/dist/core/rewind.js.map +1 -0
  287. package/dist/core/schemaValidator.d.ts +49 -0
  288. package/dist/core/schemaValidator.d.ts.map +1 -0
  289. package/dist/core/schemaValidator.js +234 -0
  290. package/dist/core/schemaValidator.js.map +1 -0
  291. package/dist/core/secretStore.d.ts +59 -0
  292. package/dist/core/secretStore.d.ts.map +1 -0
  293. package/dist/core/secretStore.js +278 -0
  294. package/dist/core/secretStore.js.map +1 -0
  295. package/dist/core/sessionStorage.d.ts +10 -0
  296. package/dist/core/sessionStorage.d.ts.map +1 -0
  297. package/dist/core/sessionStorage.js +46 -0
  298. package/dist/core/sessionStorage.js.map +1 -0
  299. package/dist/core/sessionStore.d.ts +35 -0
  300. package/dist/core/sessionStore.d.ts.map +1 -0
  301. package/dist/core/sessionStore.js +190 -0
  302. package/dist/core/sessionStore.js.map +1 -0
  303. package/dist/core/shutdown.d.ts +34 -0
  304. package/dist/core/shutdown.d.ts.map +1 -0
  305. package/dist/core/shutdown.js +186 -0
  306. package/dist/core/shutdown.js.map +1 -0
  307. package/dist/core/slashCommands.d.ts +38 -0
  308. package/dist/core/slashCommands.d.ts.map +1 -0
  309. package/dist/core/slashCommands.js +72 -0
  310. package/dist/core/slashCommands.js.map +1 -0
  311. package/dist/core/subAgentNote.d.ts +15 -0
  312. package/dist/core/subAgentNote.d.ts.map +1 -0
  313. package/dist/core/subAgentNote.js +16 -0
  314. package/dist/core/subAgentNote.js.map +1 -0
  315. package/dist/core/sudoPasswordManager.d.ts +52 -0
  316. package/dist/core/sudoPasswordManager.d.ts.map +1 -0
  317. package/dist/core/sudoPasswordManager.js +115 -0
  318. package/dist/core/sudoPasswordManager.js.map +1 -0
  319. package/dist/core/taskCompletionDetector.d.ts +117 -0
  320. package/dist/core/taskCompletionDetector.d.ts.map +1 -0
  321. package/dist/core/taskCompletionDetector.js +532 -0
  322. package/dist/core/taskCompletionDetector.js.map +1 -0
  323. package/dist/core/testFailureMonitor.d.ts +67 -0
  324. package/dist/core/testFailureMonitor.d.ts.map +1 -0
  325. package/dist/core/testFailureMonitor.js +262 -0
  326. package/dist/core/testFailureMonitor.js.map +1 -0
  327. package/dist/core/thinkingVerbs.d.ts +31 -0
  328. package/dist/core/thinkingVerbs.d.ts.map +1 -0
  329. package/dist/core/thinkingVerbs.js +58 -0
  330. package/dist/core/thinkingVerbs.js.map +1 -0
  331. package/dist/core/toolPreconditions.d.ts +34 -0
  332. package/dist/core/toolPreconditions.d.ts.map +1 -0
  333. package/dist/core/toolPreconditions.js +242 -0
  334. package/dist/core/toolPreconditions.js.map +1 -0
  335. package/dist/core/toolRuntime.d.ts +193 -0
  336. package/dist/core/toolRuntime.d.ts.map +1 -0
  337. package/dist/core/toolRuntime.js +526 -0
  338. package/dist/core/toolRuntime.js.map +1 -0
  339. package/dist/core/turnGovernor.d.ts +63 -0
  340. package/dist/core/turnGovernor.d.ts.map +1 -0
  341. package/dist/core/turnGovernor.js +94 -0
  342. package/dist/core/turnGovernor.js.map +1 -0
  343. package/dist/core/types/utilityTypes.d.ts +183 -0
  344. package/dist/core/types/utilityTypes.d.ts.map +1 -0
  345. package/dist/core/types/utilityTypes.js +273 -0
  346. package/dist/core/types/utilityTypes.js.map +1 -0
  347. package/dist/core/types.d.ts +334 -0
  348. package/dist/core/types.d.ts.map +1 -0
  349. package/dist/core/types.js +76 -0
  350. package/dist/core/types.js.map +1 -0
  351. package/dist/core/updateChecker.d.ts +148 -0
  352. package/dist/core/updateChecker.d.ts.map +1 -0
  353. package/dist/core/updateChecker.js +605 -0
  354. package/dist/core/updateChecker.js.map +1 -0
  355. package/dist/core/usage.d.ts +28 -0
  356. package/dist/core/usage.d.ts.map +1 -0
  357. package/dist/core/usage.js +77 -0
  358. package/dist/core/usage.js.map +1 -0
  359. package/dist/headless/interactiveShell.d.ts +47 -0
  360. package/dist/headless/interactiveShell.d.ts.map +1 -0
  361. package/dist/headless/interactiveShell.js +2495 -0
  362. package/dist/headless/interactiveShell.js.map +1 -0
  363. package/dist/leanAgent.d.ts +73 -0
  364. package/dist/leanAgent.d.ts.map +1 -0
  365. package/dist/leanAgent.js +177 -0
  366. package/dist/leanAgent.js.map +1 -0
  367. package/dist/plugins/providers/deepseek/index.d.ts +12 -0
  368. package/dist/plugins/providers/deepseek/index.d.ts.map +1 -0
  369. package/dist/plugins/providers/deepseek/index.js +123 -0
  370. package/dist/plugins/providers/deepseek/index.js.map +1 -0
  371. package/dist/plugins/providers/index.d.ts +2 -0
  372. package/dist/plugins/providers/index.d.ts.map +1 -0
  373. package/dist/plugins/providers/index.js +10 -0
  374. package/dist/plugins/providers/index.js.map +1 -0
  375. package/dist/providers/baseProvider.d.ts +140 -0
  376. package/dist/providers/baseProvider.d.ts.map +1 -0
  377. package/dist/providers/baseProvider.js +230 -0
  378. package/dist/providers/baseProvider.js.map +1 -0
  379. package/dist/providers/openaiChatCompletionsProvider.d.ts +70 -0
  380. package/dist/providers/openaiChatCompletionsProvider.d.ts.map +1 -0
  381. package/dist/providers/openaiChatCompletionsProvider.js +971 -0
  382. package/dist/providers/openaiChatCompletionsProvider.js.map +1 -0
  383. package/dist/providers/providerFactory.d.ts +22 -0
  384. package/dist/providers/providerFactory.d.ts.map +1 -0
  385. package/dist/providers/providerFactory.js +25 -0
  386. package/dist/providers/providerFactory.js.map +1 -0
  387. package/dist/providers/resilientProvider.d.ts +96 -0
  388. package/dist/providers/resilientProvider.d.ts.map +1 -0
  389. package/dist/providers/resilientProvider.js +251 -0
  390. package/dist/providers/resilientProvider.js.map +1 -0
  391. package/dist/runtime/agentController.d.ts +137 -0
  392. package/dist/runtime/agentController.d.ts.map +1 -0
  393. package/dist/runtime/agentController.js +784 -0
  394. package/dist/runtime/agentController.js.map +1 -0
  395. package/dist/runtime/agentHost.d.ts +61 -0
  396. package/dist/runtime/agentHost.d.ts.map +1 -0
  397. package/dist/runtime/agentHost.js +158 -0
  398. package/dist/runtime/agentHost.js.map +1 -0
  399. package/dist/runtime/agentSession.d.ts +49 -0
  400. package/dist/runtime/agentSession.d.ts.map +1 -0
  401. package/dist/runtime/agentSession.js +218 -0
  402. package/dist/runtime/agentSession.js.map +1 -0
  403. package/dist/runtime/agentSpawningWiring.d.ts +32 -0
  404. package/dist/runtime/agentSpawningWiring.d.ts.map +1 -0
  405. package/dist/runtime/agentSpawningWiring.js +114 -0
  406. package/dist/runtime/agentSpawningWiring.js.map +1 -0
  407. package/dist/runtime/node.d.ts +7 -0
  408. package/dist/runtime/node.d.ts.map +1 -0
  409. package/dist/runtime/node.js +50 -0
  410. package/dist/runtime/node.js.map +1 -0
  411. package/dist/runtime/universal.d.ts +18 -0
  412. package/dist/runtime/universal.d.ts.map +1 -0
  413. package/dist/runtime/universal.js +21 -0
  414. package/dist/runtime/universal.js.map +1 -0
  415. package/dist/shell/liveStatus.d.ts +27 -0
  416. package/dist/shell/liveStatus.d.ts.map +1 -0
  417. package/dist/shell/liveStatus.js +53 -0
  418. package/dist/shell/liveStatus.js.map +1 -0
  419. package/dist/shell/systemPrompt.d.ts +12 -0
  420. package/dist/shell/systemPrompt.d.ts.map +1 -0
  421. package/dist/shell/systemPrompt.js +16 -0
  422. package/dist/shell/systemPrompt.js.map +1 -0
  423. package/dist/shell/toolPresentation.d.ts +54 -0
  424. package/dist/shell/toolPresentation.d.ts.map +1 -0
  425. package/dist/shell/toolPresentation.js +334 -0
  426. package/dist/shell/toolPresentation.js.map +1 -0
  427. package/dist/tools/bashTools.d.ts +11 -0
  428. package/dist/tools/bashTools.d.ts.map +1 -0
  429. package/dist/tools/bashTools.js +785 -0
  430. package/dist/tools/bashTools.js.map +1 -0
  431. package/dist/tools/diffUtils.d.ts +43 -0
  432. package/dist/tools/diffUtils.d.ts.map +1 -0
  433. package/dist/tools/diffUtils.js +607 -0
  434. package/dist/tools/diffUtils.js.map +1 -0
  435. package/dist/tools/editTools.d.ts +29 -0
  436. package/dist/tools/editTools.d.ts.map +1 -0
  437. package/dist/tools/editTools.js +792 -0
  438. package/dist/tools/editTools.js.map +1 -0
  439. package/dist/tools/fileChangeTracker.d.ts +47 -0
  440. package/dist/tools/fileChangeTracker.d.ts.map +1 -0
  441. package/dist/tools/fileChangeTracker.js +154 -0
  442. package/dist/tools/fileChangeTracker.js.map +1 -0
  443. package/dist/tools/fileReadTracker.d.ts +69 -0
  444. package/dist/tools/fileReadTracker.d.ts.map +1 -0
  445. package/dist/tools/fileReadTracker.js +213 -0
  446. package/dist/tools/fileReadTracker.js.map +1 -0
  447. package/dist/tools/fileTools.d.ts +3 -0
  448. package/dist/tools/fileTools.d.ts.map +1 -0
  449. package/dist/tools/fileTools.js +389 -0
  450. package/dist/tools/fileTools.js.map +1 -0
  451. package/dist/tools/grepTools.d.ts +3 -0
  452. package/dist/tools/grepTools.d.ts.map +1 -0
  453. package/dist/tools/grepTools.js +137 -0
  454. package/dist/tools/grepTools.js.map +1 -0
  455. package/dist/tools/hitlTools.d.ts +7 -0
  456. package/dist/tools/hitlTools.d.ts.map +1 -0
  457. package/dist/tools/hitlTools.js +185 -0
  458. package/dist/tools/hitlTools.js.map +1 -0
  459. package/dist/tools/memoryTools.d.ts +27 -0
  460. package/dist/tools/memoryTools.d.ts.map +1 -0
  461. package/dist/tools/memoryTools.js +197 -0
  462. package/dist/tools/memoryTools.js.map +1 -0
  463. package/dist/tools/notebookTools.d.ts +20 -0
  464. package/dist/tools/notebookTools.d.ts.map +1 -0
  465. package/dist/tools/notebookTools.js +140 -0
  466. package/dist/tools/notebookTools.js.map +1 -0
  467. package/dist/tools/searchTools.d.ts +12 -0
  468. package/dist/tools/searchTools.d.ts.map +1 -0
  469. package/dist/tools/searchTools.js +414 -0
  470. package/dist/tools/searchTools.js.map +1 -0
  471. package/dist/tools/skillTools.d.ts +24 -0
  472. package/dist/tools/skillTools.d.ts.map +1 -0
  473. package/dist/tools/skillTools.js +140 -0
  474. package/dist/tools/skillTools.js.map +1 -0
  475. package/dist/tools/todoTools.d.ts +23 -0
  476. package/dist/tools/todoTools.d.ts.map +1 -0
  477. package/dist/tools/todoTools.js +120 -0
  478. package/dist/tools/todoTools.js.map +1 -0
  479. package/dist/tools/webTools.d.ts +26 -0
  480. package/dist/tools/webTools.d.ts.map +1 -0
  481. package/dist/tools/webTools.js +467 -0
  482. package/dist/tools/webTools.js.map +1 -0
  483. package/dist/ui/ink/App.d.ts +53 -0
  484. package/dist/ui/ink/App.d.ts.map +1 -0
  485. package/dist/ui/ink/App.js +13 -0
  486. package/dist/ui/ink/App.js.map +1 -0
  487. package/dist/ui/ink/ChatStatic.d.ts +30 -0
  488. package/dist/ui/ink/ChatStatic.d.ts.map +1 -0
  489. package/dist/ui/ink/ChatStatic.js +83 -0
  490. package/dist/ui/ink/ChatStatic.js.map +1 -0
  491. package/dist/ui/ink/InkPromptController.d.ts +321 -0
  492. package/dist/ui/ink/InkPromptController.d.ts.map +1 -0
  493. package/dist/ui/ink/InkPromptController.js +667 -0
  494. package/dist/ui/ink/InkPromptController.js.map +1 -0
  495. package/dist/ui/ink/Menu.d.ts +21 -0
  496. package/dist/ui/ink/Menu.d.ts.map +1 -0
  497. package/dist/ui/ink/Menu.js +61 -0
  498. package/dist/ui/ink/Menu.js.map +1 -0
  499. package/dist/ui/ink/Prompt.d.ts +47 -0
  500. package/dist/ui/ink/Prompt.d.ts.map +1 -0
  501. package/dist/ui/ink/Prompt.js +571 -0
  502. package/dist/ui/ink/Prompt.js.map +1 -0
  503. package/dist/ui/ink/StatusLine.d.ts +35 -0
  504. package/dist/ui/ink/StatusLine.d.ts.map +1 -0
  505. package/dist/ui/ink/StatusLine.js +66 -0
  506. package/dist/ui/ink/StatusLine.js.map +1 -0
  507. package/dist/ui/ink/pasteBuffer.d.ts +44 -0
  508. package/dist/ui/ink/pasteBuffer.d.ts.map +1 -0
  509. package/dist/ui/ink/pasteBuffer.js +73 -0
  510. package/dist/ui/ink/pasteBuffer.js.map +1 -0
  511. package/dist/ui/theme.d.ts +351 -0
  512. package/dist/ui/theme.d.ts.map +1 -0
  513. package/dist/ui/theme.js +435 -0
  514. package/dist/ui/theme.js.map +1 -0
  515. package/dist/utils/analytics.d.ts +2 -0
  516. package/dist/utils/analytics.d.ts.map +1 -0
  517. package/dist/utils/analytics.js +51 -0
  518. package/dist/utils/analytics.js.map +1 -0
  519. package/dist/utils/asyncUtils.d.ts +95 -0
  520. package/dist/utils/asyncUtils.d.ts.map +1 -0
  521. package/dist/utils/asyncUtils.js +286 -0
  522. package/dist/utils/asyncUtils.js.map +1 -0
  523. package/dist/utils/debugLogger.d.ts +6 -0
  524. package/dist/utils/debugLogger.d.ts.map +1 -0
  525. package/dist/utils/debugLogger.js +39 -0
  526. package/dist/utils/debugLogger.js.map +1 -0
  527. package/dist/utils/errorUtils.d.ts +12 -0
  528. package/dist/utils/errorUtils.d.ts.map +1 -0
  529. package/dist/utils/errorUtils.js +83 -0
  530. package/dist/utils/errorUtils.js.map +1 -0
  531. package/dist/utils/frontmatter.d.ts +10 -0
  532. package/dist/utils/frontmatter.d.ts.map +1 -0
  533. package/dist/utils/frontmatter.js +78 -0
  534. package/dist/utils/frontmatter.js.map +1 -0
  535. package/dist/utils/packageInfo.d.ts +14 -0
  536. package/dist/utils/packageInfo.d.ts.map +1 -0
  537. package/dist/utils/packageInfo.js +45 -0
  538. package/dist/utils/packageInfo.js.map +1 -0
  539. package/dist/utils/planFormatter.d.ts +34 -0
  540. package/dist/utils/planFormatter.d.ts.map +1 -0
  541. package/dist/utils/planFormatter.js +141 -0
  542. package/dist/utils/planFormatter.js.map +1 -0
  543. package/dist/utils/securityUtils.d.ts +132 -0
  544. package/dist/utils/securityUtils.d.ts.map +1 -0
  545. package/dist/utils/securityUtils.js +324 -0
  546. package/dist/utils/securityUtils.js.map +1 -0
  547. package/dist/utils/statusReporter.d.ts +6 -0
  548. package/dist/utils/statusReporter.d.ts.map +1 -0
  549. package/dist/utils/statusReporter.js +26 -0
  550. package/dist/utils/statusReporter.js.map +1 -0
  551. package/dist/workspace.d.ts +8 -0
  552. package/dist/workspace.d.ts.map +1 -0
  553. package/dist/workspace.js +135 -0
  554. package/dist/workspace.js.map +1 -0
  555. package/dist/workspace.validator.d.ts +49 -0
  556. package/dist/workspace.validator.d.ts.map +1 -0
  557. package/dist/workspace.validator.js +215 -0
  558. package/dist/workspace.validator.js.map +1 -0
  559. package/package.json +116 -0
  560. package/scripts/postinstall.cjs +56 -0
@@ -0,0 +1,53 @@
1
+ /**
2
+ * App — Phase 3 root that mounts the Phase 1 StatusLine + Phase 2 Prompt
3
+ * together and exposes a minimal command surface.
4
+ *
5
+ * This is the integration that proves the Ink tree can replace the
6
+ * sticky-bottom panel of the existing renderer wholesale: status row on
7
+ * top, suggestions list, prompt at the bottom. The host (eventually
8
+ * interactiveShell.ts) drives state via the props on this component.
9
+ *
10
+ * Phase 4 will add a `<Static>` chat-history block above this component;
11
+ * the API stays the same — only the host's rendering of past events
12
+ * changes.
13
+ */
14
+ import React from 'react';
15
+ import { type StatusLineProps } from './StatusLine.js';
16
+ import { type PromptProps } from './Prompt.js';
17
+ import { type ChatItem } from './ChatStatic.js';
18
+ import { type MenuProps } from './Menu.js';
19
+ export interface Suggestion {
20
+ label: string;
21
+ hint?: string;
22
+ }
23
+ export interface AppProps {
24
+ /** Past chat events. Rendered via <Static> so scrollback is permanent. */
25
+ history?: ChatItem[];
26
+ /**
27
+ * In-progress assistant message. Streaming deltas accumulate here so
28
+ * the text grows in place; once the model emits its `response` event
29
+ * the controller moves the final text into `history` and clears
30
+ * this. Without this slot, every delta would create its own
31
+ * <Static> entry — which is what produced the "one word per line"
32
+ * symptom users saw in 1.1.0/1.1.1.
33
+ */
34
+ streamingMessage?: string | null;
35
+ status?: StatusLineProps;
36
+ prompt: PromptProps;
37
+ suggestions?: Suggestion[];
38
+ /** When present, an interactive menu replaces the prompt and owns input. */
39
+ menu?: MenuProps;
40
+ /** The dim hint line under the input box. Reflects the active permission mode. */
41
+ permissionHint?: string;
42
+ /** Live follow-up queue (Claude Code parity): shown only while spinning, above the input. Not in <Static> history. */
43
+ queuedPrompts?: string[];
44
+ /**
45
+ * A dismissable panel (/help, /keys, /context, /secrets) shown above the
46
+ * input. Pre-formatted chalk lines from the host; rendered as a block —
47
+ * before this, only the first line leaked into the meta chips, so panel
48
+ * bodies were invisible on the real terminal.
49
+ */
50
+ inlinePanel?: string[];
51
+ }
52
+ export declare const App: React.FC<AppProps>;
53
+ //# sourceMappingURL=App.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../../src/ui/ink/App.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAc,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AAEjD,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,QAAQ;IACvB,0EAA0E;IAC1E,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC;IACrB;;;;;;;OAOG;IACH,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,MAAM,EAAE,WAAW,CAAC;IACpB,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;IAC3B,4EAA4E;IAC5E,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,kFAAkF;IAClF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,sHAAsH;IACtH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,eAAO,MAAM,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,QAAQ,CA6ElC,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { Box, Text } from 'ink';
3
+ import { StatusLine } from './StatusLine.js';
4
+ import { Prompt } from './Prompt.js';
5
+ import { ChatStatic } from './ChatStatic.js';
6
+ import { Menu } from './Menu.js';
7
+ export const App = ({ history, streamingMessage, status, prompt, suggestions, menu, permissionHint, queuedPrompts, inlinePanel }) => {
8
+ return (_jsxs(Box, { flexDirection: "column", children: [history && history.length > 0 ? _jsx(ChatStatic, { items: history }) : null, menu ? (_jsx(Box, { marginTop: 1, children: _jsx(Menu, { ...menu }, `${menu.title ?? ''}:${menu.items.length}`) })) : (_jsxs(_Fragment, { children: [streamingMessage ? (_jsxs(Box, { children: [_jsx(Text, { color: "#ff6a1f", children: "\u23FA " }), _jsx(Box, { flexGrow: 1, children: _jsx(Text, { color: "#ece6da", children: streamingMessage }) })] })) : null, status ? _jsx(StatusLine, { ...status }) : null, suggestions && suggestions.length > 0 ? (_jsx(Box, { flexDirection: "column", marginTop: 1, children: suggestions.map((s, i) => (_jsxs(Box, { children: [_jsxs(Text, { color: i === 0 ? '#ff6a1f' : undefined, children: [i === 0 ? '▸ ' : ' ', s.label] }), s.hint ? _jsxs(Text, { dimColor: true, children: [" ", s.hint] }) : null] }, `s-${i}-${s.label}`))) })) : null, queuedPrompts && queuedPrompts.length > 0 ? (_jsxs(Box, { marginTop: 1, paddingLeft: 1, children: [_jsxs(Text, { dimColor: true, children: ["\u23F3 Queued (", queuedPrompts.length, ")"] }), queuedPrompts.slice(0, 2).map((p, i) => {
9
+ const short = p.length > 38 ? p.slice(0, 35) + '…' : p;
10
+ return _jsxs(Text, { dimColor: true, children: [" ", short] }, i);
11
+ }), queuedPrompts.length > 2 ? (_jsxs(Text, { dimColor: true, children: [" +", queuedPrompts.length - 2, " more"] })) : null] })) : null, inlinePanel && inlinePanel.length > 0 ? (_jsx(Box, { flexDirection: "column", marginTop: 1, children: inlinePanel.map((line, i) => (_jsx(Text, { children: line.length ? line : ' ' }, `ip-${i}`))) })) : null, _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Box, { borderStyle: "round", borderColor: "gray", paddingX: 1, children: _jsx(Prompt, { ...prompt }) }), _jsx(Box, { paddingLeft: 2, children: _jsx(Text, { dimColor: true, children: permissionHint ?? '? for shortcuts' }) })] })] }))] }));
12
+ };
13
+ //# sourceMappingURL=App.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"App.js","sourceRoot":"","sources":["../../../src/ui/ink/App.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * ChatStatic — Phase 4 of the Ink migration.
3
+ *
4
+ * Wraps Ink's <Static> component so chat history is committed to
5
+ * scrollback exactly once and never repainted. This is the architectural
6
+ * fix for the resize / rapid-paste / overlay-leak bugs that motivated
7
+ * the Ink switch: messages above the live UI become real terminal lines
8
+ * that no longer participate in any frame diff. <Static> writes a row,
9
+ * then forgets it.
10
+ *
11
+ * Styling follows the Claude Code transcript shape (see
12
+ * src/ui/CLAUDE_CODE_UX.md): every action — an assistant turn or a tool
13
+ * call — opens with a flare `⏺` bullet; tool results render dim under a
14
+ * `⎿` turn. The host emits pre-formatted text; this component owns the
15
+ * colour roles per kind.
16
+ */
17
+ import React from 'react';
18
+ export interface ChatItem {
19
+ /** Stable identity for React's key prop — usually a monotonic id. */
20
+ id: string;
21
+ /** Tag the host can use to dispatch on style. */
22
+ kind: 'user' | 'assistant' | 'system' | 'tool' | 'toolResult' | 'error' | 'banner';
23
+ /** Pre-formatted content (already wrapped / styled by the caller). */
24
+ text: string;
25
+ }
26
+ export interface ChatStaticProps {
27
+ items: ChatItem[];
28
+ }
29
+ export declare const ChatStatic: React.FC<ChatStaticProps>;
30
+ //# sourceMappingURL=ChatStatic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatStatic.d.ts","sourceRoot":"","sources":["../../../src/ui/ink/ChatStatic.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,WAAW,QAAQ;IACvB,qEAAqE;IACrE,EAAE,EAAE,MAAM,CAAC;IACX,iDAAiD;IACjD,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,GAAG,YAAY,GAAG,OAAO,GAAG,QAAQ,CAAC;IACnF,sEAAsE;IACtE,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,QAAQ,EAAE,CAAC;CACnB;AAkGD,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAahD,CAAC"}
@@ -0,0 +1,83 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Static, Box, Text } from 'ink';
3
+ // Glasswing brand roles (mirror src/ui/theme.ts).
4
+ const FLARE = '#ff6a1f'; // action bullet / user
5
+ const BONE = '#ece6da'; // assistant / tool-name foreground
6
+ const ASH = '#948d80'; // dim — system + tool results
7
+ const RUBY = '#ff4d3d'; // errors / diff removals
8
+ const EMERALD = '#28c840'; // diff additions
9
+ const AMBER = '#ffb142'; // post-write diagnostics warning
10
+ // A write/edit tool-result carries a line-numbered diff from
11
+ // src/tools/diffUtils.ts (formatDiffClaudeStyle): ` 12 + added`,
12
+ // ` 12 - removed`, ` 12 context`. The 3 spaces after the +/- marker
13
+ // make the shape distinctive enough that ordinary tool output won't match.
14
+ const DIFF_ADDED = /^\s*\d+ \+ /;
15
+ const DIFF_REMOVED = /^\s*\d+ - /;
16
+ /**
17
+ * Tool result. When it contains diff lines (write/edit), each line is colored
18
+ * — additions green, removals red, the `⎿` summary + context dim — the way
19
+ * Claude Code renders an edit. Non-diff results stay a single dim block.
20
+ */
21
+ const ToolResult = ({ text }) => {
22
+ const lines = text.split('\n');
23
+ const hasDiff = lines.some((l) => DIFF_ADDED.test(l) || DIFF_REMOVED.test(l));
24
+ if (!hasDiff)
25
+ return _jsx(Text, { color: ASH, children: text });
26
+ return (_jsx(Box, { flexDirection: "column", children: lines.map((l, i) => {
27
+ const color = l.includes('⚠ diagnostics:') ? AMBER
28
+ : DIFF_ADDED.test(l) ? EMERALD
29
+ : DIFF_REMOVED.test(l) ? RUBY
30
+ : ASH;
31
+ // Empty <Text> children collide on React keys / fail to mount.
32
+ return _jsx(Text, { color: color, children: l.length ? l : ' ' }, i);
33
+ }) }));
34
+ };
35
+ /** An action line: flare bullet + a hang-indented body. */
36
+ const Action = ({ body }) => (_jsxs(Box, { children: [_jsx(Text, { color: FLARE, children: "\u23FA " }), _jsx(Box, { flexGrow: 1, children: _jsx(Text, { color: BONE, children: body }) })] }));
37
+ /**
38
+ * A tool action: flare bullet, then the tool NAME bold and its argument PLAIN
39
+ * (CLAUDE_CODE_UX.md §2/§47). Body arrives as `ToolName(arg)`; split at the
40
+ * first `(` so `Write(fib.py)` renders `Write` bold, `(fib.py)` plain. A name
41
+ * with no argument (e.g. `Update Todos`) stays bold in whole, matching §2.
42
+ */
43
+ const ToolAction = ({ body }) => {
44
+ const i = body.indexOf('(');
45
+ const name = i === -1 ? body : body.slice(0, i);
46
+ const arg = i === -1 ? '' : body.slice(i);
47
+ return (_jsxs(Box, { children: [_jsx(Text, { color: FLARE, children: "\u23FA " }), _jsx(Box, { flexGrow: 1, children: _jsxs(Text, { color: BONE, children: [_jsx(Text, { bold: true, children: name }), arg] }) })] }));
48
+ };
49
+ function renderItem(item) {
50
+ switch (item.kind) {
51
+ case 'tool': {
52
+ // Text arrives as `⏺ ToolName(arg)`; re-render so the bullet is flare and
53
+ // the tool name is bone-bold with the argument plain (§2/§47).
54
+ const body = item.text.startsWith('⏺') ? item.text.replace(/^⏺\s?/, '') : item.text;
55
+ return _jsx(ToolAction, { body: body });
56
+ }
57
+ case 'assistant':
58
+ return _jsx(Action, { body: item.text });
59
+ case 'toolResult':
60
+ // Already carries its ` ⎿ …` lead-in + continuation indent. Diffs are
61
+ // colored line-by-line; plain results render as one dim block.
62
+ return _jsx(ToolResult, { text: item.text });
63
+ case 'user':
64
+ return _jsx(Text, { color: FLARE, bold: true, children: item.text });
65
+ case 'system':
66
+ return _jsx(Text, { color: ASH, dimColor: true, children: item.text });
67
+ case 'error':
68
+ return _jsx(Text, { color: RUBY, children: item.text });
69
+ case 'banner':
70
+ // Banners embed their own chalk colour (rounded welcome box, etc.).
71
+ return _jsx(Text, { children: item.text });
72
+ default:
73
+ return _jsx(Text, { children: item.text });
74
+ }
75
+ }
76
+ export const ChatStatic = ({ items }) => {
77
+ return (_jsx(Static, { items: items, children: (item, index) => (
78
+ // §1: one blank line between consecutive ⏺ blocks (distinct paragraphs).
79
+ // A toolResult (⎿) hugs the action above it, so no gap there; the first
80
+ // item gets no leading gap.
81
+ _jsx(Box, { flexDirection: "column", marginTop: index > 0 && item.kind !== 'toolResult' ? 1 : 0, children: renderItem(item) }, item.id)) }));
82
+ };
83
+ //# sourceMappingURL=ChatStatic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatStatic.js","sourceRoot":"","sources":["../../../src/ui/ink/ChatStatic.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,321 @@
1
+ /**
2
+ * InkPromptController — the CLI's prompt controller, backed by the Ink
3
+ * renderer. Constructed via createPromptController(); it is the only
4
+ * renderer the shell uses.
5
+ *
6
+ * Goal: satisfy every method that src/headless/interactiveShell.ts calls
7
+ * so the rest of the codebase doesn't notice the swap. Live methods
8
+ * (status, history, secret mode, menu) drive an Ink reconciler commit;
9
+ * decorative methods that don't yet have an Ink implementation are
10
+ * marked as TODOs and behave as no-ops, with the call recorded so
11
+ * future hardening can fill the gaps with real behaviour rather than
12
+ * silent drift.
13
+ *
14
+ * Renderer shim: interactiveShell.ts also calls a handful of methods
15
+ * directly via promptController.getRenderer() — addEvent, addOutputTap,
16
+ * captureInput, clearBuffer, setSecretMode, forceRender. We expose a
17
+ * facade implementing exactly those.
18
+ */
19
+ import { EventEmitter } from 'node:events';
20
+ import type { Writable, Readable } from 'node:stream';
21
+ import type { ChatItem } from './ChatStatic.js';
22
+ export type EditGuardMode = 'display-edits' | 'require-approval' | 'block-writes' | 'ask-permission' | 'plan';
23
+ export interface PromptCallbacks {
24
+ onSubmit: (text: string) => void;
25
+ onQueue: (text: string) => void;
26
+ onInterrupt: () => void;
27
+ onExit?: () => void;
28
+ onCtrlC?: (info: {
29
+ hadBuffer: boolean;
30
+ }) => void;
31
+ onResume?: () => void;
32
+ onChange?: (event: {
33
+ text: string;
34
+ cursor: number;
35
+ }) => void;
36
+ onEditModeChange?: (mode: EditGuardMode) => void;
37
+ onToggleAutoContinue?: () => void;
38
+ onClearContext?: () => void;
39
+ onExpandToolResult?: () => void;
40
+ /** Fired on Esc (outside any menu/search) — interrupts a running turn. */
41
+ onEscape?: () => void;
42
+ /** Fired on `?` with an empty buffer — show the keyboard-shortcuts panel. */
43
+ onShowShortcuts?: () => void;
44
+ /** Fired on any key while a dismissable inline panel is open — dismiss it. */
45
+ onDismissPanel?: () => void;
46
+ onToggleHITL?: () => void;
47
+ /** Fired after Shift+Tab cycles the permission mode, with the new mode. */
48
+ onCyclePermissionMode?: (mode: string) => void;
49
+ }
50
+ export interface CommandSuggestion {
51
+ command: string;
52
+ description: string;
53
+ category?: string;
54
+ }
55
+ export interface MenuItem {
56
+ id: string;
57
+ label: string;
58
+ description?: string;
59
+ category?: string;
60
+ disabled?: boolean;
61
+ isActive?: boolean;
62
+ }
63
+ type Mode = 'idle' | 'streaming';
64
+ interface ModeToggleState {
65
+ autoMode: 'off' | 'on';
66
+ autoContinueHotkey?: string;
67
+ debugEnabled?: boolean;
68
+ hitlMode: 'off' | 'on';
69
+ hitlHotkey?: string;
70
+ }
71
+ export interface IPromptController extends EventEmitter {
72
+ start(): void;
73
+ whenReady(): Promise<void>;
74
+ stop(): void;
75
+ setStreaming(s: boolean): void;
76
+ getMode(): Mode;
77
+ setContextUsage(p: number | null): void;
78
+ setModeToggles(opts: Partial<ModeToggleState>): void;
79
+ setDebugMode(enabled: boolean): void;
80
+ toggleAutoContinue(): void;
81
+ getAutoMode(): 'off' | 'on';
82
+ setAutoMode(m: 'off' | 'on'): void;
83
+ toggleHITL(): void;
84
+ getHITLMode(): 'off' | 'on';
85
+ getModeToggleState(): Readonly<ModeToggleState>;
86
+ setStatusMessage(message: string | null): void;
87
+ setOverrideStatus(message: string | null): void;
88
+ setStreamingLabel(label: string | null): void;
89
+ setStatusLine(s: {
90
+ main?: string | null;
91
+ override?: string | null;
92
+ streaming?: string | null;
93
+ }): void;
94
+ setMetaStatus(meta: {
95
+ elapsedSeconds?: number | null;
96
+ tokensUsed?: number | null;
97
+ tokenLimit?: number | null;
98
+ thinkingMs?: number | null;
99
+ thinkingHasContent?: boolean;
100
+ }): void;
101
+ clearAllStatus(): void;
102
+ setModelContext(opts: {
103
+ model?: string | null;
104
+ provider?: string | null;
105
+ }): void;
106
+ setChromeMeta(meta: {
107
+ workspace?: string;
108
+ directory?: string;
109
+ writes?: string;
110
+ sessionLabel?: string;
111
+ thinkingLabel?: string;
112
+ autosave?: boolean;
113
+ version?: string;
114
+ }): void;
115
+ setAvailableCommands(commands: CommandSuggestion[]): void;
116
+ setInlinePanel(lines: string[]): void;
117
+ clearInlinePanel(): void;
118
+ supportsInlinePanel(): boolean;
119
+ setPinnedPrompt(text: string | null): void;
120
+ getPinnedPrompt(): string | null;
121
+ clearPinnedPrompt(): void;
122
+ setMenu(items: MenuItem[], options: {
123
+ title?: string;
124
+ initialIndex?: number;
125
+ }, callback: (item: MenuItem | null) => void): void;
126
+ closeMenu(): void;
127
+ isMenuActive(): boolean;
128
+ setActivityMessage(message: string | null): void;
129
+ setCompletionFiles(files: string[]): void;
130
+ setEditMode(mode: EditGuardMode): void;
131
+ applyEditMode(mode: EditGuardMode): void;
132
+ getEditMode(): EditGuardMode;
133
+ getBuffer(): string;
134
+ getCursor(): number;
135
+ setBuffer(text: string, cursorPos?: number): void;
136
+ setSecretMode(enabled: boolean): void;
137
+ clear(): void;
138
+ clearScreen(): void;
139
+ render(): void;
140
+ forceRender(): void;
141
+ handleResize(): void;
142
+ dispose(): void;
143
+ getRenderer(): any;
144
+ }
145
+ export declare class InkPromptController extends EventEmitter implements IPromptController {
146
+ private readonly callbacks;
147
+ private inkRender;
148
+ private React;
149
+ private AppComponent;
150
+ private inst;
151
+ private readonly shim;
152
+ private readonly stdin;
153
+ private readonly stdout;
154
+ private streamingText;
155
+ private idSeq;
156
+ private statusMain;
157
+ private statusOverride;
158
+ private statusStreaming;
159
+ private activityMessage;
160
+ private mode;
161
+ private metaInfo;
162
+ private spinStart;
163
+ private history;
164
+ private suggestions;
165
+ private inlinePanel;
166
+ private secretMode;
167
+ private editMode;
168
+ private pinnedPrompt;
169
+ private modeToggleState;
170
+ private buffer;
171
+ private readonly promptHistory;
172
+ private completionFiles;
173
+ private captureSubmit;
174
+ private menuCallback;
175
+ private menuItems;
176
+ private followUpQueueMode;
177
+ private queuedPrompts;
178
+ private menuTitle?;
179
+ private menuOpen;
180
+ private started;
181
+ private disposed;
182
+ private resolveReady;
183
+ private readonly readyPromise;
184
+ constructor(stdin: Readable, stdout: Writable, callbacks: PromptCallbacks);
185
+ /**
186
+ * Async start so the Ink + React modules can be loaded via dynamic
187
+ * import (the dist build emits ESM under `module: NodeNext`, where
188
+ * `require()` mixed with top-level await is a hard error in Node 22+).
189
+ * Call sites that go through createPromptController() should await
190
+ * .start(); the legacy controller's start() is sync, so the IPrompt
191
+ * interface defines start() as `void` and we coerce here.
192
+ */
193
+ start(): void;
194
+ /** Resolves once Ink has mounted and rendered its first frame. */
195
+ whenReady(): Promise<void>;
196
+ private startAsync;
197
+ stop(): void;
198
+ dispose(): void;
199
+ /** Manual repaint hook — Ink owns its tick, so render/forceRender are coalesced into a rerender(). */
200
+ render(): void;
201
+ forceRender(): void;
202
+ handleResize(): void;
203
+ /**
204
+ * Reset the chat surface (the shell's /clear). Ink's <Static> is
205
+ * append-only — it slices items from an internal index that only grows
206
+ * — so shrinking the history array cannot clear committed scrollback.
207
+ * The only correct reset is to unmount, clear the terminal while Ink is
208
+ * NOT mounted (so the escape can't desync a live render), and remount
209
+ * with empty history; the fresh <Static> restarts at index 0.
210
+ */
211
+ clearScreen(): void;
212
+ setStatusMessage(message: string | null): void;
213
+ setOverrideStatus(message: string | null): void;
214
+ setStreamingLabel(label: string | null): void;
215
+ setStatusLine(status: {
216
+ main?: string | null;
217
+ override?: string | null;
218
+ streaming?: string | null;
219
+ }): void;
220
+ clearAllStatus(): void;
221
+ setActivityMessage(message: string | null): void;
222
+ setStreaming(streaming: boolean): void;
223
+ getMode(): Mode;
224
+ setContextUsage(percentage: number | null): void;
225
+ setMetaStatus(meta: {
226
+ elapsedSeconds?: number | null;
227
+ tokensUsed?: number | null;
228
+ tokenLimit?: number | null;
229
+ }): void;
230
+ setModelContext(options: {
231
+ model?: string | null;
232
+ provider?: string | null;
233
+ }): void;
234
+ setChromeMeta(meta: {
235
+ workspace?: string;
236
+ directory?: string;
237
+ }): void;
238
+ setModeToggles(options: Partial<ModeToggleState>): void;
239
+ setDebugMode(enabled: boolean): void;
240
+ toggleAutoContinue(): void;
241
+ getAutoMode(): 'off' | 'on';
242
+ setAutoMode(mode: 'off' | 'on'): void;
243
+ toggleHITL(): void;
244
+ getHITLMode(): 'off' | 'on';
245
+ getModeToggleState(): Readonly<ModeToggleState>;
246
+ setAvailableCommands(commands: CommandSuggestion[]): void;
247
+ setInlinePanel(lines: string[]): void;
248
+ clearInlinePanel(): void;
249
+ supportsInlinePanel(): boolean;
250
+ setPinnedPrompt(text: string | null): void;
251
+ getPinnedPrompt(): string | null;
252
+ clearPinnedPrompt(): void;
253
+ setMenu(items: MenuItem[], options: {
254
+ title?: string;
255
+ initialIndex?: number;
256
+ }, callback: (item: MenuItem | null) => void): void;
257
+ closeMenu(): void;
258
+ isMenuActive(): boolean;
259
+ /** Close the menu and fire the stored callback exactly once. */
260
+ private resolveMenu;
261
+ setSecretMode(enabled: boolean): void;
262
+ setEditMode(mode: EditGuardMode): void;
263
+ applyEditMode(mode: EditGuardMode): void;
264
+ getEditMode(): EditGuardMode;
265
+ /**
266
+ * The input buffer in the Ink path is owned by the Prompt component,
267
+ * not by this controller. We keep `this.buffer` as a snapshot for
268
+ * legacy callers asking for getBuffer/getCursor; updates flow when the
269
+ * Prompt's onSubmit / clear actions fire. setBuffer drives a new
270
+ * `initial` prop on the next mount.
271
+ */
272
+ getBuffer(): string;
273
+ getCursor(): number;
274
+ setBuffer(text: string, _cursorPos?: number): void;
275
+ clear(): void;
276
+ setFollowUpQueueMode(on: boolean): void;
277
+ setQueuedPrompts(prompts: string[]): void;
278
+ setCompletionFiles(files: string[]): void;
279
+ addUserHistoryItem(text: string): void;
280
+ getRenderer(): any;
281
+ /** Append history (used by the renderer shim's addEvent). */
282
+ _appendHistoryEntry(item: ChatItem): void;
283
+ /**
284
+ * Streaming accumulators. Deltas append to streamingText, which App
285
+ * renders live as the dynamic region below ChatStatic (<Static>). The
286
+ * old duplication bug — partial text orphaned in scrollback when a
287
+ * Static item appended below it — cannot recur: ChatStatic is the ONLY
288
+ * Static node and renders first, so nothing Static ever appends below
289
+ * the live region, and _commitStreaming pushes history + clears
290
+ * streamingText in a single atomic rerender.
291
+ */
292
+ _appendStreamingDelta(delta: string): void;
293
+ _commitStreaming(finalText: string): void;
294
+ _finalizeStreamingIfAny(): void;
295
+ /** Shift+Tab from the Prompt: advance the permission mode and repaint. */
296
+ private cyclePermissionModeFromUI;
297
+ _setBuffer(text: string): void;
298
+ _setSecretMode(enabled: boolean): void;
299
+ _installCaptureHandler(handler: (text: string) => void): void;
300
+ _restoreSubmitHandler(): void;
301
+ private rerender;
302
+ private buildTree;
303
+ /**
304
+ * The dim mode line under the spinner. Claude Code keeps this minimal and
305
+ * emoji-free: product, model, context left, then active toggles. The cwd and
306
+ * elapsed time deliberately don't live here (cwd is in the welcome box;
307
+ * elapsed rides the spinner).
308
+ */
309
+ private formatModeChips;
310
+ }
311
+ /**
312
+ * Factory — returns the Ink-backed controller. Ink is now the only
313
+ * renderer; the legacy UnifiedUIRenderer + PromptController have been
314
+ * removed. interactiveShell.ts exits early on non-TTY so Ink's
315
+ * raw-mode requirement is always satisfied here. Plain mode
316
+ * (NO_COLOR / TERM=dumb) still flows through Ink — Ink itself
317
+ * down-styles when colours are disabled.
318
+ */
319
+ export declare function createPromptController(stdin: Readable, stdout: Writable, callbacks: PromptCallbacks): Promise<IPromptController>;
320
+ export {};
321
+ //# sourceMappingURL=InkPromptController.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InkPromptController.d.ts","sourceRoot":"","sources":["../../../src/ui/ink/InkPromptController.ts"],"names":[],"mappings":"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"}