terminal-pilot 0.0.45 → 0.0.47

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 (351) hide show
  1. package/dist/cli.js +175 -50
  2. package/dist/cli.js.map +4 -4
  3. package/dist/commands/close-session.js +36 -0
  4. package/dist/commands/close-session.js.map +3 -3
  5. package/dist/commands/create-session.js +36 -0
  6. package/dist/commands/create-session.js.map +3 -3
  7. package/dist/commands/daemon-runtime.js +36 -0
  8. package/dist/commands/daemon-runtime.js.map +3 -3
  9. package/dist/commands/fill.js +36 -0
  10. package/dist/commands/fill.js.map +3 -3
  11. package/dist/commands/get-session.js +36 -0
  12. package/dist/commands/get-session.js.map +3 -3
  13. package/dist/commands/index.js +36 -0
  14. package/dist/commands/index.js.map +3 -3
  15. package/dist/commands/install.js +36 -0
  16. package/dist/commands/install.js.map +3 -3
  17. package/dist/commands/installer.js +36 -0
  18. package/dist/commands/installer.js.map +3 -3
  19. package/dist/commands/list-sessions.js +36 -0
  20. package/dist/commands/list-sessions.js.map +3 -3
  21. package/dist/commands/press-key.js +36 -0
  22. package/dist/commands/press-key.js.map +3 -3
  23. package/dist/commands/read-history.js +36 -0
  24. package/dist/commands/read-history.js.map +3 -3
  25. package/dist/commands/read-screen.js +36 -0
  26. package/dist/commands/read-screen.js.map +3 -3
  27. package/dist/commands/resize.js +36 -0
  28. package/dist/commands/resize.js.map +3 -3
  29. package/dist/commands/runtime.js +36 -0
  30. package/dist/commands/runtime.js.map +3 -3
  31. package/dist/commands/screenshot.js +36 -0
  32. package/dist/commands/screenshot.js.map +3 -3
  33. package/dist/commands/send-signal.js +36 -0
  34. package/dist/commands/send-signal.js.map +3 -3
  35. package/dist/commands/type.js +36 -0
  36. package/dist/commands/type.js.map +3 -3
  37. package/dist/commands/uninstall.js +36 -0
  38. package/dist/commands/uninstall.js.map +3 -3
  39. package/dist/commands/wait-for-exit.js +36 -0
  40. package/dist/commands/wait-for-exit.js.map +3 -3
  41. package/dist/commands/wait-for.js +36 -0
  42. package/dist/commands/wait-for.js.map +3 -3
  43. package/dist/composition.json +36 -1
  44. package/dist/testing/cli-repl.js +175 -50
  45. package/dist/testing/cli-repl.js.map +4 -4
  46. package/dist/testing/qa-cli.js +175 -50
  47. package/dist/testing/qa-cli.js.map +4 -4
  48. package/node_modules/@poe-code/agent-defs/package.json +0 -2
  49. package/node_modules/@poe-code/agent-skill-config/package.json +0 -2
  50. package/node_modules/@poe-code/config-mutations/package.json +0 -7
  51. package/node_modules/@poe-code/frontmatter/package.json +0 -5
  52. package/node_modules/fast-string-truncated-width/dist/index.d.ts +4 -0
  53. package/node_modules/fast-string-truncated-width/dist/index.js +111 -0
  54. package/node_modules/fast-string-truncated-width/dist/types.d.ts +19 -0
  55. package/node_modules/fast-string-truncated-width/dist/types.js +2 -0
  56. package/node_modules/fast-string-truncated-width/dist/utils.d.ts +4 -0
  57. package/node_modules/fast-string-truncated-width/dist/utils.js +20 -0
  58. package/node_modules/fast-string-truncated-width/license +21 -0
  59. package/node_modules/fast-string-truncated-width/package.json +35 -0
  60. package/node_modules/fast-string-truncated-width/readme.md +59 -0
  61. package/node_modules/fast-string-width/dist/index.d.ts +4 -0
  62. package/node_modules/fast-string-width/dist/index.js +14 -0
  63. package/node_modules/fast-string-width/license +21 -0
  64. package/node_modules/fast-string-width/package.json +34 -0
  65. package/node_modules/fast-string-width/readme.md +42 -0
  66. package/node_modules/fast-wrap-ansi/LICENSE +23 -0
  67. package/node_modules/fast-wrap-ansi/README.md +26 -0
  68. package/node_modules/fast-wrap-ansi/lib/main.d.ts +6 -0
  69. package/node_modules/fast-wrap-ansi/lib/main.js +218 -0
  70. package/node_modules/fast-wrap-ansi/package.json +51 -0
  71. package/node_modules/jsonc-parser/CHANGELOG.md +76 -0
  72. package/node_modules/jsonc-parser/LICENSE.md +21 -0
  73. package/node_modules/jsonc-parser/README.md +364 -0
  74. package/node_modules/jsonc-parser/SECURITY.md +41 -0
  75. package/node_modules/jsonc-parser/lib/esm/impl/edit.js +185 -0
  76. package/node_modules/jsonc-parser/lib/esm/impl/format.js +261 -0
  77. package/node_modules/jsonc-parser/lib/esm/impl/parser.js +659 -0
  78. package/node_modules/jsonc-parser/lib/esm/impl/scanner.js +443 -0
  79. package/node_modules/jsonc-parser/lib/esm/impl/string-intern.js +29 -0
  80. package/node_modules/jsonc-parser/lib/esm/main.d.ts +351 -0
  81. package/node_modules/jsonc-parser/lib/esm/main.js +178 -0
  82. package/node_modules/jsonc-parser/lib/umd/impl/edit.js +201 -0
  83. package/node_modules/jsonc-parser/lib/umd/impl/format.js +275 -0
  84. package/node_modules/jsonc-parser/lib/umd/impl/parser.js +682 -0
  85. package/node_modules/jsonc-parser/lib/umd/impl/scanner.js +456 -0
  86. package/node_modules/jsonc-parser/lib/umd/impl/string-intern.js +42 -0
  87. package/node_modules/jsonc-parser/lib/umd/main.d.ts +351 -0
  88. package/node_modules/jsonc-parser/lib/umd/main.js +194 -0
  89. package/node_modules/jsonc-parser/package.json +37 -0
  90. package/node_modules/sisteransi/license +21 -0
  91. package/node_modules/sisteransi/package.json +34 -0
  92. package/node_modules/sisteransi/readme.md +113 -0
  93. package/node_modules/sisteransi/src/index.js +58 -0
  94. package/node_modules/sisteransi/src/sisteransi.d.ts +35 -0
  95. package/node_modules/smol-toml/LICENSE +24 -0
  96. package/node_modules/smol-toml/README.md +239 -0
  97. package/node_modules/smol-toml/dist/date.d.ts +41 -0
  98. package/node_modules/smol-toml/dist/date.js +127 -0
  99. package/node_modules/smol-toml/dist/error.d.ts +38 -0
  100. package/node_modules/smol-toml/dist/error.js +63 -0
  101. package/node_modules/smol-toml/dist/extract.d.ts +30 -0
  102. package/node_modules/smol-toml/dist/extract.js +100 -0
  103. package/node_modules/smol-toml/dist/index.cjs +897 -0
  104. package/node_modules/smol-toml/dist/index.d.ts +43 -0
  105. package/node_modules/smol-toml/dist/index.js +33 -0
  106. package/node_modules/smol-toml/dist/parse.d.ts +37 -0
  107. package/node_modules/smol-toml/dist/parse.js +148 -0
  108. package/node_modules/smol-toml/dist/primitive.d.ts +31 -0
  109. package/node_modules/smol-toml/dist/primitive.js +179 -0
  110. package/node_modules/smol-toml/dist/stringify.d.ts +31 -0
  111. package/node_modules/smol-toml/dist/stringify.js +167 -0
  112. package/node_modules/smol-toml/dist/struct.d.ts +32 -0
  113. package/node_modules/smol-toml/dist/struct.js +184 -0
  114. package/node_modules/smol-toml/dist/util.d.ts +42 -0
  115. package/node_modules/smol-toml/dist/util.js +111 -0
  116. package/node_modules/smol-toml/package.json +54 -0
  117. package/node_modules/toolcraft-design/package.json +0 -7
  118. package/node_modules/yaml/LICENSE +13 -0
  119. package/node_modules/yaml/README.md +172 -0
  120. package/node_modules/yaml/bin.mjs +11 -0
  121. package/node_modules/yaml/browser/dist/compose/compose-collection.js +88 -0
  122. package/node_modules/yaml/browser/dist/compose/compose-doc.js +43 -0
  123. package/node_modules/yaml/browser/dist/compose/compose-node.js +109 -0
  124. package/node_modules/yaml/browser/dist/compose/compose-scalar.js +86 -0
  125. package/node_modules/yaml/browser/dist/compose/composer.js +219 -0
  126. package/node_modules/yaml/browser/dist/compose/resolve-block-map.js +115 -0
  127. package/node_modules/yaml/browser/dist/compose/resolve-block-scalar.js +198 -0
  128. package/node_modules/yaml/browser/dist/compose/resolve-block-seq.js +49 -0
  129. package/node_modules/yaml/browser/dist/compose/resolve-end.js +37 -0
  130. package/node_modules/yaml/browser/dist/compose/resolve-flow-collection.js +207 -0
  131. package/node_modules/yaml/browser/dist/compose/resolve-flow-scalar.js +225 -0
  132. package/node_modules/yaml/browser/dist/compose/resolve-props.js +146 -0
  133. package/node_modules/yaml/browser/dist/compose/util-contains-newline.js +34 -0
  134. package/node_modules/yaml/browser/dist/compose/util-empty-scalar-position.js +26 -0
  135. package/node_modules/yaml/browser/dist/compose/util-flow-indent-check.js +15 -0
  136. package/node_modules/yaml/browser/dist/compose/util-map-includes.js +13 -0
  137. package/node_modules/yaml/browser/dist/doc/Document.js +335 -0
  138. package/node_modules/yaml/browser/dist/doc/anchors.js +71 -0
  139. package/node_modules/yaml/browser/dist/doc/applyReviver.js +55 -0
  140. package/node_modules/yaml/browser/dist/doc/createNode.js +88 -0
  141. package/node_modules/yaml/browser/dist/doc/directives.js +176 -0
  142. package/node_modules/yaml/browser/dist/errors.js +57 -0
  143. package/node_modules/yaml/browser/dist/index.js +17 -0
  144. package/node_modules/yaml/browser/dist/log.js +11 -0
  145. package/node_modules/yaml/browser/dist/nodes/Alias.js +116 -0
  146. package/node_modules/yaml/browser/dist/nodes/Collection.js +147 -0
  147. package/node_modules/yaml/browser/dist/nodes/Node.js +38 -0
  148. package/node_modules/yaml/browser/dist/nodes/Pair.js +36 -0
  149. package/node_modules/yaml/browser/dist/nodes/Scalar.js +24 -0
  150. package/node_modules/yaml/browser/dist/nodes/YAMLMap.js +144 -0
  151. package/node_modules/yaml/browser/dist/nodes/YAMLSeq.js +113 -0
  152. package/node_modules/yaml/browser/dist/nodes/addPairToJSMap.js +63 -0
  153. package/node_modules/yaml/browser/dist/nodes/identity.js +36 -0
  154. package/node_modules/yaml/browser/dist/nodes/toJS.js +37 -0
  155. package/node_modules/yaml/browser/dist/parse/cst-scalar.js +214 -0
  156. package/node_modules/yaml/browser/dist/parse/cst-stringify.js +61 -0
  157. package/node_modules/yaml/browser/dist/parse/cst-visit.js +97 -0
  158. package/node_modules/yaml/browser/dist/parse/cst.js +98 -0
  159. package/node_modules/yaml/browser/dist/parse/lexer.js +721 -0
  160. package/node_modules/yaml/browser/dist/parse/line-counter.js +39 -0
  161. package/node_modules/yaml/browser/dist/parse/parser.js +975 -0
  162. package/node_modules/yaml/browser/dist/public-api.js +102 -0
  163. package/node_modules/yaml/browser/dist/schema/Schema.js +37 -0
  164. package/node_modules/yaml/browser/dist/schema/common/map.js +17 -0
  165. package/node_modules/yaml/browser/dist/schema/common/null.js +15 -0
  166. package/node_modules/yaml/browser/dist/schema/common/seq.js +17 -0
  167. package/node_modules/yaml/browser/dist/schema/common/string.js +14 -0
  168. package/node_modules/yaml/browser/dist/schema/core/bool.js +19 -0
  169. package/node_modules/yaml/browser/dist/schema/core/float.js +43 -0
  170. package/node_modules/yaml/browser/dist/schema/core/int.js +38 -0
  171. package/node_modules/yaml/browser/dist/schema/core/schema.js +23 -0
  172. package/node_modules/yaml/browser/dist/schema/json/schema.js +62 -0
  173. package/node_modules/yaml/browser/dist/schema/tags.js +96 -0
  174. package/node_modules/yaml/browser/dist/schema/yaml-1.1/binary.js +58 -0
  175. package/node_modules/yaml/browser/dist/schema/yaml-1.1/bool.js +26 -0
  176. package/node_modules/yaml/browser/dist/schema/yaml-1.1/float.js +46 -0
  177. package/node_modules/yaml/browser/dist/schema/yaml-1.1/int.js +71 -0
  178. package/node_modules/yaml/browser/dist/schema/yaml-1.1/merge.js +67 -0
  179. package/node_modules/yaml/browser/dist/schema/yaml-1.1/omap.js +74 -0
  180. package/node_modules/yaml/browser/dist/schema/yaml-1.1/pairs.js +78 -0
  181. package/node_modules/yaml/browser/dist/schema/yaml-1.1/schema.js +39 -0
  182. package/node_modules/yaml/browser/dist/schema/yaml-1.1/set.js +93 -0
  183. package/node_modules/yaml/browser/dist/schema/yaml-1.1/timestamp.js +101 -0
  184. package/node_modules/yaml/browser/dist/stringify/foldFlowLines.js +146 -0
  185. package/node_modules/yaml/browser/dist/stringify/stringify.js +129 -0
  186. package/node_modules/yaml/browser/dist/stringify/stringifyCollection.js +153 -0
  187. package/node_modules/yaml/browser/dist/stringify/stringifyComment.js +20 -0
  188. package/node_modules/yaml/browser/dist/stringify/stringifyDocument.js +85 -0
  189. package/node_modules/yaml/browser/dist/stringify/stringifyNumber.js +25 -0
  190. package/node_modules/yaml/browser/dist/stringify/stringifyPair.js +150 -0
  191. package/node_modules/yaml/browser/dist/stringify/stringifyString.js +336 -0
  192. package/node_modules/yaml/browser/dist/util.js +11 -0
  193. package/node_modules/yaml/browser/dist/visit.js +233 -0
  194. package/node_modules/yaml/browser/index.js +5 -0
  195. package/node_modules/yaml/browser/package.json +3 -0
  196. package/node_modules/yaml/dist/cli.d.ts +8 -0
  197. package/node_modules/yaml/dist/cli.mjs +201 -0
  198. package/node_modules/yaml/dist/compose/compose-collection.d.ts +11 -0
  199. package/node_modules/yaml/dist/compose/compose-collection.js +90 -0
  200. package/node_modules/yaml/dist/compose/compose-doc.d.ts +7 -0
  201. package/node_modules/yaml/dist/compose/compose-doc.js +45 -0
  202. package/node_modules/yaml/dist/compose/compose-node.d.ts +29 -0
  203. package/node_modules/yaml/dist/compose/compose-node.js +112 -0
  204. package/node_modules/yaml/dist/compose/compose-scalar.d.ts +5 -0
  205. package/node_modules/yaml/dist/compose/compose-scalar.js +88 -0
  206. package/node_modules/yaml/dist/compose/composer.d.ts +63 -0
  207. package/node_modules/yaml/dist/compose/composer.js +224 -0
  208. package/node_modules/yaml/dist/compose/resolve-block-map.d.ts +6 -0
  209. package/node_modules/yaml/dist/compose/resolve-block-map.js +117 -0
  210. package/node_modules/yaml/dist/compose/resolve-block-scalar.d.ts +11 -0
  211. package/node_modules/yaml/dist/compose/resolve-block-scalar.js +200 -0
  212. package/node_modules/yaml/dist/compose/resolve-block-seq.d.ts +6 -0
  213. package/node_modules/yaml/dist/compose/resolve-block-seq.js +51 -0
  214. package/node_modules/yaml/dist/compose/resolve-end.d.ts +6 -0
  215. package/node_modules/yaml/dist/compose/resolve-end.js +39 -0
  216. package/node_modules/yaml/dist/compose/resolve-flow-collection.d.ts +7 -0
  217. package/node_modules/yaml/dist/compose/resolve-flow-collection.js +209 -0
  218. package/node_modules/yaml/dist/compose/resolve-flow-scalar.d.ts +10 -0
  219. package/node_modules/yaml/dist/compose/resolve-flow-scalar.js +227 -0
  220. package/node_modules/yaml/dist/compose/resolve-props.d.ts +23 -0
  221. package/node_modules/yaml/dist/compose/resolve-props.js +148 -0
  222. package/node_modules/yaml/dist/compose/util-contains-newline.d.ts +2 -0
  223. package/node_modules/yaml/dist/compose/util-contains-newline.js +36 -0
  224. package/node_modules/yaml/dist/compose/util-empty-scalar-position.d.ts +2 -0
  225. package/node_modules/yaml/dist/compose/util-empty-scalar-position.js +28 -0
  226. package/node_modules/yaml/dist/compose/util-flow-indent-check.d.ts +3 -0
  227. package/node_modules/yaml/dist/compose/util-flow-indent-check.js +17 -0
  228. package/node_modules/yaml/dist/compose/util-map-includes.d.ts +4 -0
  229. package/node_modules/yaml/dist/compose/util-map-includes.js +15 -0
  230. package/node_modules/yaml/dist/doc/Document.d.ts +141 -0
  231. package/node_modules/yaml/dist/doc/Document.js +337 -0
  232. package/node_modules/yaml/dist/doc/anchors.d.ts +24 -0
  233. package/node_modules/yaml/dist/doc/anchors.js +76 -0
  234. package/node_modules/yaml/dist/doc/applyReviver.d.ts +9 -0
  235. package/node_modules/yaml/dist/doc/applyReviver.js +57 -0
  236. package/node_modules/yaml/dist/doc/createNode.d.ts +17 -0
  237. package/node_modules/yaml/dist/doc/createNode.js +90 -0
  238. package/node_modules/yaml/dist/doc/directives.d.ts +49 -0
  239. package/node_modules/yaml/dist/doc/directives.js +178 -0
  240. package/node_modules/yaml/dist/errors.d.ts +21 -0
  241. package/node_modules/yaml/dist/errors.js +62 -0
  242. package/node_modules/yaml/dist/index.d.ts +25 -0
  243. package/node_modules/yaml/dist/index.js +50 -0
  244. package/node_modules/yaml/dist/log.d.ts +3 -0
  245. package/node_modules/yaml/dist/log.js +19 -0
  246. package/node_modules/yaml/dist/nodes/Alias.d.ts +29 -0
  247. package/node_modules/yaml/dist/nodes/Alias.js +118 -0
  248. package/node_modules/yaml/dist/nodes/Collection.d.ts +73 -0
  249. package/node_modules/yaml/dist/nodes/Collection.js +151 -0
  250. package/node_modules/yaml/dist/nodes/Node.d.ts +53 -0
  251. package/node_modules/yaml/dist/nodes/Node.js +40 -0
  252. package/node_modules/yaml/dist/nodes/Pair.d.ts +22 -0
  253. package/node_modules/yaml/dist/nodes/Pair.js +39 -0
  254. package/node_modules/yaml/dist/nodes/Scalar.d.ts +47 -0
  255. package/node_modules/yaml/dist/nodes/Scalar.js +27 -0
  256. package/node_modules/yaml/dist/nodes/YAMLMap.d.ts +53 -0
  257. package/node_modules/yaml/dist/nodes/YAMLMap.js +147 -0
  258. package/node_modules/yaml/dist/nodes/YAMLSeq.d.ts +60 -0
  259. package/node_modules/yaml/dist/nodes/YAMLSeq.js +115 -0
  260. package/node_modules/yaml/dist/nodes/addPairToJSMap.d.ts +4 -0
  261. package/node_modules/yaml/dist/nodes/addPairToJSMap.js +65 -0
  262. package/node_modules/yaml/dist/nodes/identity.d.ts +23 -0
  263. package/node_modules/yaml/dist/nodes/identity.js +53 -0
  264. package/node_modules/yaml/dist/nodes/toJS.d.ts +29 -0
  265. package/node_modules/yaml/dist/nodes/toJS.js +39 -0
  266. package/node_modules/yaml/dist/options.d.ts +350 -0
  267. package/node_modules/yaml/dist/parse/cst-scalar.d.ts +64 -0
  268. package/node_modules/yaml/dist/parse/cst-scalar.js +218 -0
  269. package/node_modules/yaml/dist/parse/cst-stringify.d.ts +8 -0
  270. package/node_modules/yaml/dist/parse/cst-stringify.js +63 -0
  271. package/node_modules/yaml/dist/parse/cst-visit.d.ts +39 -0
  272. package/node_modules/yaml/dist/parse/cst-visit.js +99 -0
  273. package/node_modules/yaml/dist/parse/cst.d.ts +109 -0
  274. package/node_modules/yaml/dist/parse/cst.js +112 -0
  275. package/node_modules/yaml/dist/parse/lexer.d.ts +87 -0
  276. package/node_modules/yaml/dist/parse/lexer.js +723 -0
  277. package/node_modules/yaml/dist/parse/line-counter.d.ts +22 -0
  278. package/node_modules/yaml/dist/parse/line-counter.js +41 -0
  279. package/node_modules/yaml/dist/parse/parser.d.ts +84 -0
  280. package/node_modules/yaml/dist/parse/parser.js +980 -0
  281. package/node_modules/yaml/dist/public-api.d.ts +44 -0
  282. package/node_modules/yaml/dist/public-api.js +107 -0
  283. package/node_modules/yaml/dist/schema/Schema.d.ts +17 -0
  284. package/node_modules/yaml/dist/schema/Schema.js +39 -0
  285. package/node_modules/yaml/dist/schema/common/map.d.ts +2 -0
  286. package/node_modules/yaml/dist/schema/common/map.js +19 -0
  287. package/node_modules/yaml/dist/schema/common/null.d.ts +4 -0
  288. package/node_modules/yaml/dist/schema/common/null.js +17 -0
  289. package/node_modules/yaml/dist/schema/common/seq.d.ts +2 -0
  290. package/node_modules/yaml/dist/schema/common/seq.js +19 -0
  291. package/node_modules/yaml/dist/schema/common/string.d.ts +2 -0
  292. package/node_modules/yaml/dist/schema/common/string.js +16 -0
  293. package/node_modules/yaml/dist/schema/core/bool.d.ts +4 -0
  294. package/node_modules/yaml/dist/schema/core/bool.js +21 -0
  295. package/node_modules/yaml/dist/schema/core/float.d.ts +4 -0
  296. package/node_modules/yaml/dist/schema/core/float.js +47 -0
  297. package/node_modules/yaml/dist/schema/core/int.d.ts +4 -0
  298. package/node_modules/yaml/dist/schema/core/int.js +42 -0
  299. package/node_modules/yaml/dist/schema/core/schema.d.ts +1 -0
  300. package/node_modules/yaml/dist/schema/core/schema.js +25 -0
  301. package/node_modules/yaml/dist/schema/json/schema.d.ts +2 -0
  302. package/node_modules/yaml/dist/schema/json/schema.js +64 -0
  303. package/node_modules/yaml/dist/schema/json-schema.d.ts +69 -0
  304. package/node_modules/yaml/dist/schema/tags.d.ts +48 -0
  305. package/node_modules/yaml/dist/schema/tags.js +99 -0
  306. package/node_modules/yaml/dist/schema/types.d.ts +92 -0
  307. package/node_modules/yaml/dist/schema/yaml-1.1/binary.d.ts +2 -0
  308. package/node_modules/yaml/dist/schema/yaml-1.1/binary.js +70 -0
  309. package/node_modules/yaml/dist/schema/yaml-1.1/bool.d.ts +7 -0
  310. package/node_modules/yaml/dist/schema/yaml-1.1/bool.js +29 -0
  311. package/node_modules/yaml/dist/schema/yaml-1.1/float.d.ts +4 -0
  312. package/node_modules/yaml/dist/schema/yaml-1.1/float.js +50 -0
  313. package/node_modules/yaml/dist/schema/yaml-1.1/int.d.ts +5 -0
  314. package/node_modules/yaml/dist/schema/yaml-1.1/int.js +76 -0
  315. package/node_modules/yaml/dist/schema/yaml-1.1/merge.d.ts +9 -0
  316. package/node_modules/yaml/dist/schema/yaml-1.1/merge.js +71 -0
  317. package/node_modules/yaml/dist/schema/yaml-1.1/omap.d.ts +22 -0
  318. package/node_modules/yaml/dist/schema/yaml-1.1/omap.js +77 -0
  319. package/node_modules/yaml/dist/schema/yaml-1.1/pairs.d.ts +10 -0
  320. package/node_modules/yaml/dist/schema/yaml-1.1/pairs.js +82 -0
  321. package/node_modules/yaml/dist/schema/yaml-1.1/schema.d.ts +1 -0
  322. package/node_modules/yaml/dist/schema/yaml-1.1/schema.js +41 -0
  323. package/node_modules/yaml/dist/schema/yaml-1.1/set.d.ts +28 -0
  324. package/node_modules/yaml/dist/schema/yaml-1.1/set.js +96 -0
  325. package/node_modules/yaml/dist/schema/yaml-1.1/timestamp.d.ts +6 -0
  326. package/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js +105 -0
  327. package/node_modules/yaml/dist/stringify/foldFlowLines.d.ts +34 -0
  328. package/node_modules/yaml/dist/stringify/foldFlowLines.js +151 -0
  329. package/node_modules/yaml/dist/stringify/stringify.d.ts +21 -0
  330. package/node_modules/yaml/dist/stringify/stringify.js +132 -0
  331. package/node_modules/yaml/dist/stringify/stringifyCollection.d.ts +17 -0
  332. package/node_modules/yaml/dist/stringify/stringifyCollection.js +155 -0
  333. package/node_modules/yaml/dist/stringify/stringifyComment.d.ts +10 -0
  334. package/node_modules/yaml/dist/stringify/stringifyComment.js +24 -0
  335. package/node_modules/yaml/dist/stringify/stringifyDocument.d.ts +4 -0
  336. package/node_modules/yaml/dist/stringify/stringifyDocument.js +87 -0
  337. package/node_modules/yaml/dist/stringify/stringifyNumber.d.ts +2 -0
  338. package/node_modules/yaml/dist/stringify/stringifyNumber.js +27 -0
  339. package/node_modules/yaml/dist/stringify/stringifyPair.d.ts +3 -0
  340. package/node_modules/yaml/dist/stringify/stringifyPair.js +152 -0
  341. package/node_modules/yaml/dist/stringify/stringifyString.d.ts +9 -0
  342. package/node_modules/yaml/dist/stringify/stringifyString.js +338 -0
  343. package/node_modules/yaml/dist/test-events.d.ts +4 -0
  344. package/node_modules/yaml/dist/test-events.js +134 -0
  345. package/node_modules/yaml/dist/util.d.ts +16 -0
  346. package/node_modules/yaml/dist/util.js +28 -0
  347. package/node_modules/yaml/dist/visit.d.ts +102 -0
  348. package/node_modules/yaml/dist/visit.js +236 -0
  349. package/node_modules/yaml/package.json +97 -0
  350. package/node_modules/yaml/util.js +2 -0
  351. package/package.json +12 -6
package/dist/cli.js CHANGED
@@ -555,6 +555,42 @@ function formatReceivedDiscriminator(value) {
555
555
  return receivedValue(value);
556
556
  }
557
557
 
558
+ // ../toolcraft-schema/src/json-schema/compiler.ts
559
+ var draftTypes = ["null", "boolean", "object", "array", "number", "integer", "string"];
560
+ var draftTypeSet = new Set(draftTypes);
561
+ var metaSchemaKeywordProperties = {
562
+ type: {
563
+ anyOf: [
564
+ { enum: draftTypes },
565
+ { type: "array", items: { enum: draftTypes }, minItems: 1, uniqueItems: true }
566
+ ]
567
+ },
568
+ minLength: { type: "integer", minimum: 0 },
569
+ maxLength: { type: "integer", minimum: 0 },
570
+ minItems: { type: "integer", minimum: 0 },
571
+ maxItems: { type: "integer", minimum: 0 },
572
+ minProperties: { type: "integer", minimum: 0 },
573
+ maxProperties: { type: "integer", minimum: 0 }
574
+ };
575
+ var builtInRegistry = {
576
+ "https://json-schema.org/draft/2020-12/schema": {
577
+ $id: "https://json-schema.org/draft/2020-12/schema",
578
+ type: ["object", "boolean"],
579
+ properties: {
580
+ ...metaSchemaKeywordProperties,
581
+ $defs: { type: "object", additionalProperties: { $ref: "#" } }
582
+ }
583
+ },
584
+ "http://json-schema.org/draft-07/schema": {
585
+ $id: "http://json-schema.org/draft-07/schema#",
586
+ type: ["object", "boolean"],
587
+ properties: {
588
+ ...metaSchemaKeywordProperties,
589
+ definitions: { type: "object", additionalProperties: { $ref: "#" } }
590
+ }
591
+ }
592
+ };
593
+
558
594
  // ../toolcraft-schema/src/index.ts
559
595
  function assertValidEnumValues(values) {
560
596
  if (values.length === 0) {
@@ -3468,7 +3504,7 @@ function damerauLevenshtein(left, right) {
3468
3504
  // ../toolcraft/src/stream.ts
3469
3505
  function validationMessage(schema, value) {
3470
3506
  const result = validate(schema, value);
3471
- return result.ok ? void 0 : result.issues.map((issue) => issue.message).join("; ");
3507
+ return result.ok ? void 0 : result.issues.map((issue2) => issue2.message).join("; ");
3472
3508
  }
3473
3509
  function createManagedStream(options) {
3474
3510
  const controller = new AbortController();
@@ -4701,6 +4737,41 @@ async function writeErrorReport(context) {
4701
4737
  };
4702
4738
  }
4703
4739
 
4740
+ // ../toolcraft/src/human-in-loop/wiring.ts
4741
+ var WIRING_HINT = 'pass { humanInLoop: createHumanInLoop({ provider, ... }) } from "toolcraft/human-in-loop"';
4742
+ function assertHumanInLoopWired(root, humanInLoop) {
4743
+ if (humanInLoop !== void 0) {
4744
+ return;
4745
+ }
4746
+ const commandPath = findHumanInLoopCommandPath(root, []);
4747
+ if (commandPath !== void 0) {
4748
+ throw new UserError(
4749
+ `command '${commandPath}' declares humanInLoop but no runtime is wired \u2014 ${WIRING_HINT}`
4750
+ );
4751
+ }
4752
+ }
4753
+ function mergeApprovalsRoot(root, options) {
4754
+ if (options.approvals !== true) {
4755
+ return root;
4756
+ }
4757
+ if (options.humanInLoop === void 0) {
4758
+ throw new UserError(`approvals: true requires a wired humanInLoop runtime \u2014 ${WIRING_HINT}`);
4759
+ }
4760
+ return options.humanInLoop.mergeApprovalsGroup(root);
4761
+ }
4762
+ function findHumanInLoopCommandPath(node, path16) {
4763
+ if (node.kind === "command") {
4764
+ return node.humanInLoop ? path16.join(".") || node.name : void 0;
4765
+ }
4766
+ for (const child of node.children) {
4767
+ const found = findHumanInLoopCommandPath(child, [...path16, child.name]);
4768
+ if (found !== void 0) {
4769
+ return found;
4770
+ }
4771
+ }
4772
+ return void 0;
4773
+ }
4774
+
4704
4775
  // ../toolcraft/src/number-schema.ts
4705
4776
  function isValidNumberSchemaValue(value, schema) {
4706
4777
  return typeof value === "number" && Number.isFinite(value) && (schema.jsonType !== "integer" || Number.isInteger(value)) && (schema.minimum === void 0 || value >= schema.minimum) && (schema.maximum === void 0 || value <= schema.maximum);
@@ -4835,11 +4906,11 @@ function isPlainObject3(value) {
4835
4906
 
4836
4907
  // ../toolcraft/src/renderer.ts
4837
4908
  import YAML from "yaml";
4838
- function isObject(value) {
4909
+ function isObject2(value) {
4839
4910
  return value !== null && typeof value === "object" && !Array.isArray(value);
4840
4911
  }
4841
4912
  function isMcpCallToolResult(value) {
4842
- if (!isObject(value)) {
4913
+ if (!isObject2(value)) {
4843
4914
  return false;
4844
4915
  }
4845
4916
  const hasContent = Array.isArray(value.content);
@@ -4852,11 +4923,11 @@ function isMcpCallToolResult(value) {
4852
4923
  );
4853
4924
  }
4854
4925
  function isMcpTextContent(value) {
4855
- return isObject(value) && value.type === "text" && typeof value.text === "string";
4926
+ return isObject2(value) && value.type === "text" && typeof value.text === "string";
4856
4927
  }
4857
4928
  function extractMcpPayload(envelope) {
4858
4929
  const structuredContent = envelope.structuredContent;
4859
- if (isObject(structuredContent) && "result" in structuredContent) {
4930
+ if (isObject2(structuredContent) && "result" in structuredContent) {
4860
4931
  return structuredContent.result;
4861
4932
  }
4862
4933
  if (structuredContent !== void 0) {
@@ -4878,10 +4949,10 @@ function unwrapMcpEnvelope(result) {
4878
4949
  };
4879
4950
  }
4880
4951
  function isArrayOfObjects(value) {
4881
- return Array.isArray(value) && value.every((entry) => isObject(entry));
4952
+ return Array.isArray(value) && value.every((entry) => isObject2(entry));
4882
4953
  }
4883
4954
  function isNonEmptyArrayOfObjects(value) {
4884
- return Array.isArray(value) && value.length > 0 && value.every((entry) => isObject(entry));
4955
+ return Array.isArray(value) && value.length > 0 && value.every((entry) => isObject2(entry));
4885
4956
  }
4886
4957
  function stringifyValue(value) {
4887
4958
  if (value === void 0) {
@@ -4928,7 +4999,7 @@ function detailRows(result, depth = 0) {
4928
4999
  const rows = [];
4929
5000
  for (const [key, value] of Object.entries(result)) {
4930
5001
  const label = `${" ".repeat(depth)}${humanizeKey(key)}`;
4931
- if (isObject(value)) {
5002
+ if (isObject2(value)) {
4932
5003
  if (Object.keys(value).length === 0) {
4933
5004
  rows.push({ label, value: "{}" });
4934
5005
  continue;
@@ -4961,7 +5032,7 @@ function displayScalar(value) {
4961
5032
  if (typeof value === "boolean") {
4962
5033
  return value ? "Yes" : "No";
4963
5034
  }
4964
- if (Array.isArray(value) && value.every((entry) => !isObject(entry) && !Array.isArray(entry))) {
5035
+ if (Array.isArray(value) && value.every((entry) => !isObject2(entry) && !Array.isArray(entry))) {
4965
5036
  return value.map((entry) => displayScalar(entry)).join(", ") || "\u2014";
4966
5037
  }
4967
5038
  return stringifyValue(value) || "\u2014";
@@ -4982,10 +5053,10 @@ function displayRowValue(value) {
4982
5053
  return isUrl(value) ? compactUrl(value) : displayScalar(value);
4983
5054
  }
4984
5055
  function directScalarRows(result) {
4985
- return Object.entries(result).filter(([, value]) => !isObject(value) && !Array.isArray(value)).map(([key, value]) => ({ label: humanizeKey(key), value: displayRowValue(value) }));
5056
+ return Object.entries(result).filter(([, value]) => !isObject2(value) && !Array.isArray(value)).map(([key, value]) => ({ label: humanizeKey(key), value: displayRowValue(value) }));
4986
5057
  }
4987
5058
  function directObjectSections(result) {
4988
- return Object.entries(result).filter(([, value]) => isObject(value)).map(([key, value]) => ({ title: humanizeKey(key), rows: detailRows(value) })).filter((section) => section.rows.length > 0);
5059
+ return Object.entries(result).filter(([, value]) => isObject2(value)).map(([key, value]) => ({ title: humanizeKey(key), rows: detailRows(value) })).filter((section) => section.rows.length > 0);
4989
5060
  }
4990
5061
  function directArrayObjectSections(result) {
4991
5062
  return Object.entries(result).flatMap(([key, value]) => {
@@ -5092,7 +5163,7 @@ function autoRender(command, result, output, primitives) {
5092
5163
  if (output === "rich" && Array.isArray(result) && result.every((value) => typeof value === "string")) {
5093
5164
  return result.join("\n");
5094
5165
  }
5095
- if (isObject(result)) {
5166
+ if (isObject2(result)) {
5096
5167
  if (output === "md") {
5097
5168
  return renderObjectMarkdown(result);
5098
5169
  }
@@ -5349,8 +5420,6 @@ function validateServices(services) {
5349
5420
  configureTheme({ brand: "blue", label: "Toolcraft" });
5350
5421
  var NULL_OPTION_VALUE = /* @__PURE__ */ Symbol("toolcraft.cli.null");
5351
5422
  var optionalModulePaths = {
5352
- approvals: "./human-in-loop/approvals-commands.js",
5353
- humanInLoop: "./human-in-loop/gate.js",
5354
5423
  mcpProxy: "./mcp-proxy.js"
5355
5424
  };
5356
5425
  function importOptionalModule(specifier) {
@@ -5989,14 +6058,37 @@ function createOption(field, globalLongOptionFlags) {
5989
6058
  return [option];
5990
6059
  }
5991
6060
  function resolveCLIControls(controls) {
6061
+ const outputFormats = typeof controls?.output === "object" ? controls.output.formats ?? {} : {};
6062
+ validateOutputFormats(outputFormats);
5992
6063
  return {
5993
6064
  debug: controls?.debug === true,
5994
6065
  logLevel: controls?.logLevel === true,
5995
- output: controls?.output === true,
6066
+ output: controls?.output === true || typeof controls?.output === "object",
6067
+ outputFormats,
5996
6068
  verbose: controls?.verbose === true,
5997
6069
  yes: controls?.yes === true
5998
6070
  };
5999
6071
  }
6072
+ var BUILT_IN_OUTPUT_FORMATS = ["rich", "md", "markdown", "json"];
6073
+ function outputFormatNames(controls) {
6074
+ return [...BUILT_IN_OUTPUT_FORMATS, ...Object.keys(controls.outputFormats)];
6075
+ }
6076
+ function validateOutputFormats(formats) {
6077
+ for (const [name, renderer] of Object.entries(formats)) {
6078
+ const hasWhitespace = name.split("").some((character) => character.trim() === "");
6079
+ if (name.length === 0 || name.trim() !== name || hasWhitespace) {
6080
+ throw new ToolcraftBugError(
6081
+ `Custom output format names must be non-empty and contain no whitespace: ${JSON.stringify(name)}.`
6082
+ );
6083
+ }
6084
+ if (BUILT_IN_OUTPUT_FORMATS.includes(name)) {
6085
+ throw new ToolcraftBugError(`Custom output format "${name}" conflicts with a built-in format.`);
6086
+ }
6087
+ if (typeof renderer !== "function") {
6088
+ throw new ToolcraftBugError(`Custom output format "${name}" must define a renderer function.`);
6089
+ }
6090
+ }
6091
+ }
6000
6092
  function getGlobalLongOptionFlags(presetsEnabled, versionEnabled, controls) {
6001
6093
  const flags = [];
6002
6094
  if (presetsEnabled) {
@@ -6481,7 +6573,7 @@ function formatGlobalOptionsLine(ctx) {
6481
6573
  flags.push("--yes");
6482
6574
  }
6483
6575
  if (ctx.controls.output) {
6484
- flags.push("--output <format>");
6576
+ flags.push(`--output <${outputFormatNames(ctx.controls).join("|")}>`);
6485
6577
  }
6486
6578
  if (ctx.controls.verbose) {
6487
6579
  flags.push("-v, --verbose");
@@ -6926,17 +7018,21 @@ function addGlobalOptions(command, presetsEnabled, controls) {
6926
7018
  options.push(new Option("--yes", "Accept defaults and skip prompts."));
6927
7019
  }
6928
7020
  if (controls.output) {
7021
+ const choices2 = outputFormatNames(controls);
6929
7022
  options.push(
6930
- new Option("--output <format>", "Output format.").argParser((value) => {
7023
+ new Option("--output <format>", "Output format.").choices(choices2).argParser((value) => {
6931
7024
  if (value === "rich" || value === "md" || value === "json") {
6932
7025
  return value;
6933
7026
  }
6934
7027
  if (value === "markdown") {
6935
7028
  return "md";
6936
7029
  }
7030
+ if (Object.hasOwn(controls.outputFormats, value)) {
7031
+ return value;
7032
+ }
6937
7033
  throw new InvalidArgumentError(
6938
- formatInvalidEnumMessage("--output", value, ["rich", "md", "markdown", "json"], {
6939
- candidates: ["rich", "markdown", "json"],
7034
+ formatInvalidEnumMessage("--output", value, choices2, {
7035
+ candidates: ["rich", "markdown", "json", ...Object.keys(controls.outputFormats)],
6940
7036
  threshold: 3
6941
7037
  })
6942
7038
  );
@@ -7126,11 +7222,11 @@ function resolveOutput(resolvedFlags) {
7126
7222
  return "json";
7127
7223
  }
7128
7224
  if (resolvedFlags.output !== void 0) {
7129
- return resolvedFlags.output;
7225
+ return resolvedFlags.output === "markdown" ? "md" : resolvedFlags.output;
7130
7226
  }
7131
7227
  return "rich";
7132
7228
  }
7133
- function resolveOutputFromArgv(argv) {
7229
+ function resolveOutputFromArgv(argv, formats = {}) {
7134
7230
  for (let index = 0; index < argv.length; index += 1) {
7135
7231
  const token = argv[index] ?? "";
7136
7232
  if (token === "--json") {
@@ -7147,6 +7243,9 @@ function resolveOutputFromArgv(argv) {
7147
7243
  if (value === "markdown") {
7148
7244
  return "md";
7149
7245
  }
7246
+ if (value !== void 0 && Object.hasOwn(formats, value)) {
7247
+ return value;
7248
+ }
7150
7249
  continue;
7151
7250
  }
7152
7251
  if (token.startsWith("--output=")) {
@@ -7157,17 +7256,21 @@ function resolveOutputFromArgv(argv) {
7157
7256
  if (value === "markdown") {
7158
7257
  return "md";
7159
7258
  }
7259
+ if (Object.hasOwn(formats, value)) {
7260
+ return value;
7261
+ }
7160
7262
  }
7161
7263
  }
7162
7264
  return "rich";
7163
7265
  }
7164
- var DESIGN_SYSTEM_OUTPUT_BY_MODE = {
7165
- rich: "terminal",
7166
- md: "markdown",
7167
- json: "json"
7168
- };
7169
7266
  function toDesignSystemOutput(output) {
7170
- return DESIGN_SYSTEM_OUTPUT_BY_MODE[output];
7267
+ if (output === "md") {
7268
+ return "markdown";
7269
+ }
7270
+ if (output === "json") {
7271
+ return "json";
7272
+ }
7273
+ return "terminal";
7171
7274
  }
7172
7275
  async function withOutputFormat2(output, fn) {
7173
7276
  const previous = process.env.OUTPUT_FORMAT;
@@ -8310,9 +8413,9 @@ async function resolveParams(fields, dynamicFields, variants, positionalValues,
8310
8413
  const validation = validate(field.schema, value);
8311
8414
  if (!validation.ok) {
8312
8415
  errors.push(
8313
- ...validation.issues.map((issue) => ({
8416
+ ...validation.issues.map((issue2) => ({
8314
8417
  path: field.displayPath,
8315
- message: issue.message
8418
+ message: issue2.message
8316
8419
  }))
8317
8420
  );
8318
8421
  continue;
@@ -8384,17 +8487,18 @@ function getResolvedFlags(command) {
8384
8487
  const flags = command.optsWithGlobals();
8385
8488
  return flags;
8386
8489
  }
8387
- async function executeCommand(state, services, requirementOptions, runtimeFetch, runtimeOptions, runtimeEnv, runtimeFs, outputEmitter, promptStreams, diagnosticsOptions, onErrorReportContext) {
8490
+ async function executeCommand(state, services, requirementOptions, runtimeFetch, humanInLoop, runtimeEnv, runtimeFs, outputEmitter, outputFormats, promptStreams, diagnosticsOptions, onErrorReportContext) {
8388
8491
  const logger2 = createLogger(outputEmitter);
8492
+ const optionValues = state.actionCommand.optsWithGlobals();
8493
+ const resolvedFlags = optionValues;
8494
+ const output = resolveOutput(resolvedFlags);
8389
8495
  const primitives = {
8390
8496
  logger: logger2,
8391
8497
  renderTable,
8392
8498
  getTheme,
8393
- note
8499
+ note,
8500
+ outputFormat: output
8394
8501
  };
8395
- const optionValues = state.actionCommand.optsWithGlobals();
8396
- const resolvedFlags = optionValues;
8397
- const output = resolveOutput(resolvedFlags);
8398
8502
  const diagnostics = createRuntimeLogger({
8399
8503
  level: resolvedFlags.logLevel ?? (diagnosticsOptions.verboseControlEnabled && resolvedFlags.verbose ? "trace" : diagnosticsOptions.logLevel),
8400
8504
  logger: diagnosticsOptions.logger ?? writeCLIDiagnosticEvent
@@ -8407,7 +8511,7 @@ async function executeCommand(state, services, requirementOptions, runtimeFetch,
8407
8511
  const missingParameterContext = !resolvedFlags.yes && output === "rich" && stdinTTY && stdoutTTY ? {
8408
8512
  commandPath: state.commandPath,
8409
8513
  params: {},
8410
- output,
8514
+ output: "rich",
8411
8515
  stdinTTY,
8412
8516
  stdoutTTY
8413
8517
  } : void 0;
@@ -8494,12 +8598,15 @@ async function executeCommand(state, services, requirementOptions, runtimeFetch,
8494
8598
  outputEmitter(line);
8495
8599
  }
8496
8600
  } else {
8497
- renderResult(
8601
+ renderCLIResult(
8498
8602
  state.command,
8603
+ state.commandPath,
8499
8604
  event,
8500
8605
  output,
8501
8606
  primitives,
8502
- outputEmitter === void 0 ? void 0 : (chunk) => outputEmitter(chunk.endsWith("\n") ? chunk.slice(0, -1) : chunk)
8607
+ outputFormats,
8608
+ outputEmitter === void 0 ? void 0 : (chunk) => outputEmitter(chunk.endsWith("\n") ? chunk.slice(0, -1) : chunk),
8609
+ outputEmitter
8503
8610
  );
8504
8611
  }
8505
8612
  }
@@ -8531,9 +8638,7 @@ async function executeCommand(state, services, requirementOptions, runtimeFetch,
8531
8638
  throw new UserError("Operation cancelled.");
8532
8639
  }
8533
8640
  }
8534
- const result = state.command.humanInLoop ? await (await importOptionalModule(
8535
- optionalModulePaths.humanInLoop
8536
- )).invokeWithHumanInLoop(state.command, context, runtimeOptions, state.commandPath) : await state.command.handler(context);
8641
+ const result = state.command.humanInLoop && humanInLoop !== void 0 ? await humanInLoop.invoke(state.command, context, state.commandPath) : await state.command.handler(context);
8537
8642
  if (output === "rich" && runtime.isFixture) {
8538
8643
  writeRichHeader(`${state.command.name} (fixture)`);
8539
8644
  }
@@ -8541,12 +8646,15 @@ async function executeCommand(state, services, requirementOptions, runtimeFetch,
8541
8646
  renderHumanInLoopPending(result);
8542
8647
  return;
8543
8648
  }
8544
- const renderStatus = renderResult(
8649
+ const renderStatus = renderCLIResult(
8545
8650
  state.command,
8651
+ state.commandPath,
8546
8652
  result,
8547
8653
  output,
8548
8654
  primitives,
8549
- outputEmitter === void 0 ? void 0 : (chunk) => outputEmitter(chunk.endsWith("\n") ? chunk.slice(0, -1) : chunk)
8655
+ outputFormats,
8656
+ outputEmitter === void 0 ? void 0 : (chunk) => outputEmitter(chunk.endsWith("\n") ? chunk.slice(0, -1) : chunk),
8657
+ outputEmitter
8550
8658
  );
8551
8659
  if (renderStatus.mcpError) {
8552
8660
  process.exitCode = 1;
@@ -8562,6 +8670,23 @@ async function executeCommand(state, services, requirementOptions, runtimeFetch,
8562
8670
  throw error3;
8563
8671
  }
8564
8672
  }
8673
+ function renderCLIResult(command, commandPath, result, output, primitives, outputFormats, write2, emitExact) {
8674
+ const customRenderer = outputFormats[output];
8675
+ if (customRenderer === void 0) {
8676
+ return renderResult(command, result, output, primitives, write2);
8677
+ }
8678
+ const payload = customRenderer({ command, commandPath, primitives, result });
8679
+ if (payload !== void 0 && payload.length > 0) {
8680
+ if (emitExact !== void 0) {
8681
+ emitExact(payload);
8682
+ } else if (write2 === void 0) {
8683
+ process.stdout.write(payload);
8684
+ } else {
8685
+ write2(payload);
8686
+ }
8687
+ }
8688
+ return { mcpError: false };
8689
+ }
8565
8690
  function isStringRecord(value) {
8566
8691
  return isPlainObject4(value) && Object.values(value).every((entry) => typeof entry === "string");
8567
8692
  }
@@ -9099,20 +9224,19 @@ async function runCLI(roots, options = {}) {
9099
9224
  let errorReportContext;
9100
9225
  try {
9101
9226
  const normalizedRoot = normalizeRoots(roots, argv);
9102
- const root = options.approvals === true ? (await importOptionalModule(
9103
- optionalModulePaths.approvals
9104
- )).mergeApprovalsGroup(normalizedRoot) : normalizedRoot;
9227
+ const root = mergeApprovalsRoot(normalizedRoot, options);
9228
+ assertHumanInLoopWired(root, options.humanInLoop);
9105
9229
  if (hasMcpProxyConfig(root)) {
9106
9230
  await (await importOptionalModule(optionalModulePaths.mcpProxy)).resolveMcpProxies(root, { projectRoot: options.projectRoot });
9107
9231
  }
9108
9232
  const casing = options.casing ?? "kebab";
9109
9233
  const services = options.services ?? {};
9110
- const runtimeOptions = options.humanInLoop ?? {};
9234
+ const humanInLoop = options.humanInLoop;
9111
9235
  const runtimeFetch = options.fetch ?? globalThis.fetch;
9112
9236
  version = options.version ?? findEntrypointPackageMetadata(argv[1])?.version;
9113
9237
  const servicesWithBuiltIns = {
9114
9238
  ...services,
9115
- runtimeOptions,
9239
+ humanInLoop,
9116
9240
  root
9117
9241
  };
9118
9242
  const requirementOptions = {
@@ -9158,10 +9282,11 @@ async function runCLI(roots, options = {}) {
9158
9282
  servicesWithBuiltIns,
9159
9283
  requirementOptions,
9160
9284
  runtimeFetch,
9161
- runtimeOptions,
9285
+ humanInLoop,
9162
9286
  options.env,
9163
9287
  options.fs,
9164
9288
  options.outputEmitter,
9289
+ controls.outputFormats,
9165
9290
  {
9166
9291
  input: options.promptInput,
9167
9292
  output: options.promptOutput
@@ -9235,7 +9360,7 @@ async function runCLI(roots, options = {}) {
9235
9360
  }
9236
9361
  await handleRunError(error3, {
9237
9362
  debugStackMode: resolvedFlags !== void 0 ? resolveDebugStackMode(resolvedFlags.debug) : getDebugStackModeFromArgv(argv),
9238
- output: resolvedFlags !== void 0 ? resolveOutput(resolvedFlags) : resolveOutputFromArgv(argv),
9363
+ output: resolvedFlags !== void 0 ? resolveOutput(resolvedFlags) : resolveOutputFromArgv(argv, controls.outputFormats),
9239
9364
  verbose: resolvedFlags ? Boolean(resolvedFlags.verbose) : argv.includes("--verbose"),
9240
9365
  program,
9241
9366
  argv,
@@ -14645,7 +14770,7 @@ function sleep2(ms) {
14645
14770
  // src/cli.ts
14646
14771
  configureTheme({ brand: "green", label: "Terminal Pilot" });
14647
14772
  function getBundledPackageVersion() {
14648
- return true ? "0.0.45" : void 0;
14773
+ return true ? "0.0.47" : void 0;
14649
14774
  }
14650
14775
  function normalizeArgv(argv) {
14651
14776
  if (argv.includes("--json") && !argv.some((argument) => argument === "--output" || argument.startsWith("--output="))) {