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
@@ -638,6 +638,42 @@ function formatReceivedDiscriminator(value) {
638
638
  return receivedValue(value);
639
639
  }
640
640
 
641
+ // ../toolcraft-schema/src/json-schema/compiler.ts
642
+ var draftTypes = ["null", "boolean", "object", "array", "number", "integer", "string"];
643
+ var draftTypeSet = new Set(draftTypes);
644
+ var metaSchemaKeywordProperties = {
645
+ type: {
646
+ anyOf: [
647
+ { enum: draftTypes },
648
+ { type: "array", items: { enum: draftTypes }, minItems: 1, uniqueItems: true }
649
+ ]
650
+ },
651
+ minLength: { type: "integer", minimum: 0 },
652
+ maxLength: { type: "integer", minimum: 0 },
653
+ minItems: { type: "integer", minimum: 0 },
654
+ maxItems: { type: "integer", minimum: 0 },
655
+ minProperties: { type: "integer", minimum: 0 },
656
+ maxProperties: { type: "integer", minimum: 0 }
657
+ };
658
+ var builtInRegistry = {
659
+ "https://json-schema.org/draft/2020-12/schema": {
660
+ $id: "https://json-schema.org/draft/2020-12/schema",
661
+ type: ["object", "boolean"],
662
+ properties: {
663
+ ...metaSchemaKeywordProperties,
664
+ $defs: { type: "object", additionalProperties: { $ref: "#" } }
665
+ }
666
+ },
667
+ "http://json-schema.org/draft-07/schema": {
668
+ $id: "http://json-schema.org/draft-07/schema#",
669
+ type: ["object", "boolean"],
670
+ properties: {
671
+ ...metaSchemaKeywordProperties,
672
+ definitions: { type: "object", additionalProperties: { $ref: "#" } }
673
+ }
674
+ }
675
+ };
676
+
641
677
  // ../toolcraft-schema/src/index.ts
642
678
  function assertValidEnumValues(values) {
643
679
  if (values.length === 0) {
@@ -3551,7 +3587,7 @@ function damerauLevenshtein(left, right) {
3551
3587
  // ../toolcraft/src/stream.ts
3552
3588
  function validationMessage(schema, value) {
3553
3589
  const result = validate(schema, value);
3554
- return result.ok ? void 0 : result.issues.map((issue) => issue.message).join("; ");
3590
+ return result.ok ? void 0 : result.issues.map((issue2) => issue2.message).join("; ");
3555
3591
  }
3556
3592
  function createManagedStream(options) {
3557
3593
  const controller = new AbortController();
@@ -4784,6 +4820,41 @@ async function writeErrorReport(context) {
4784
4820
  };
4785
4821
  }
4786
4822
 
4823
+ // ../toolcraft/src/human-in-loop/wiring.ts
4824
+ var WIRING_HINT = 'pass { humanInLoop: createHumanInLoop({ provider, ... }) } from "toolcraft/human-in-loop"';
4825
+ function assertHumanInLoopWired(root, humanInLoop) {
4826
+ if (humanInLoop !== void 0) {
4827
+ return;
4828
+ }
4829
+ const commandPath = findHumanInLoopCommandPath(root, []);
4830
+ if (commandPath !== void 0) {
4831
+ throw new UserError(
4832
+ `command '${commandPath}' declares humanInLoop but no runtime is wired \u2014 ${WIRING_HINT}`
4833
+ );
4834
+ }
4835
+ }
4836
+ function mergeApprovalsRoot(root, options) {
4837
+ if (options.approvals !== true) {
4838
+ return root;
4839
+ }
4840
+ if (options.humanInLoop === void 0) {
4841
+ throw new UserError(`approvals: true requires a wired humanInLoop runtime \u2014 ${WIRING_HINT}`);
4842
+ }
4843
+ return options.humanInLoop.mergeApprovalsGroup(root);
4844
+ }
4845
+ function findHumanInLoopCommandPath(node, path18) {
4846
+ if (node.kind === "command") {
4847
+ return node.humanInLoop ? path18.join(".") || node.name : void 0;
4848
+ }
4849
+ for (const child of node.children) {
4850
+ const found = findHumanInLoopCommandPath(child, [...path18, child.name]);
4851
+ if (found !== void 0) {
4852
+ return found;
4853
+ }
4854
+ }
4855
+ return void 0;
4856
+ }
4857
+
4787
4858
  // ../toolcraft/src/number-schema.ts
4788
4859
  function isValidNumberSchemaValue(value, schema) {
4789
4860
  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);
@@ -4918,11 +4989,11 @@ function isPlainObject3(value) {
4918
4989
 
4919
4990
  // ../toolcraft/src/renderer.ts
4920
4991
  import YAML from "yaml";
4921
- function isObject(value) {
4992
+ function isObject2(value) {
4922
4993
  return value !== null && typeof value === "object" && !Array.isArray(value);
4923
4994
  }
4924
4995
  function isMcpCallToolResult(value) {
4925
- if (!isObject(value)) {
4996
+ if (!isObject2(value)) {
4926
4997
  return false;
4927
4998
  }
4928
4999
  const hasContent = Array.isArray(value.content);
@@ -4935,11 +5006,11 @@ function isMcpCallToolResult(value) {
4935
5006
  );
4936
5007
  }
4937
5008
  function isMcpTextContent(value) {
4938
- return isObject(value) && value.type === "text" && typeof value.text === "string";
5009
+ return isObject2(value) && value.type === "text" && typeof value.text === "string";
4939
5010
  }
4940
5011
  function extractMcpPayload(envelope) {
4941
5012
  const structuredContent = envelope.structuredContent;
4942
- if (isObject(structuredContent) && "result" in structuredContent) {
5013
+ if (isObject2(structuredContent) && "result" in structuredContent) {
4943
5014
  return structuredContent.result;
4944
5015
  }
4945
5016
  if (structuredContent !== void 0) {
@@ -4961,10 +5032,10 @@ function unwrapMcpEnvelope(result) {
4961
5032
  };
4962
5033
  }
4963
5034
  function isArrayOfObjects(value) {
4964
- return Array.isArray(value) && value.every((entry) => isObject(entry));
5035
+ return Array.isArray(value) && value.every((entry) => isObject2(entry));
4965
5036
  }
4966
5037
  function isNonEmptyArrayOfObjects(value) {
4967
- return Array.isArray(value) && value.length > 0 && value.every((entry) => isObject(entry));
5038
+ return Array.isArray(value) && value.length > 0 && value.every((entry) => isObject2(entry));
4968
5039
  }
4969
5040
  function stringifyValue(value) {
4970
5041
  if (value === void 0) {
@@ -5011,7 +5082,7 @@ function detailRows(result, depth = 0) {
5011
5082
  const rows = [];
5012
5083
  for (const [key, value] of Object.entries(result)) {
5013
5084
  const label = `${" ".repeat(depth)}${humanizeKey(key)}`;
5014
- if (isObject(value)) {
5085
+ if (isObject2(value)) {
5015
5086
  if (Object.keys(value).length === 0) {
5016
5087
  rows.push({ label, value: "{}" });
5017
5088
  continue;
@@ -5044,7 +5115,7 @@ function displayScalar(value) {
5044
5115
  if (typeof value === "boolean") {
5045
5116
  return value ? "Yes" : "No";
5046
5117
  }
5047
- if (Array.isArray(value) && value.every((entry) => !isObject(entry) && !Array.isArray(entry))) {
5118
+ if (Array.isArray(value) && value.every((entry) => !isObject2(entry) && !Array.isArray(entry))) {
5048
5119
  return value.map((entry) => displayScalar(entry)).join(", ") || "\u2014";
5049
5120
  }
5050
5121
  return stringifyValue(value) || "\u2014";
@@ -5065,10 +5136,10 @@ function displayRowValue(value) {
5065
5136
  return isUrl(value) ? compactUrl(value) : displayScalar(value);
5066
5137
  }
5067
5138
  function directScalarRows(result) {
5068
- return Object.entries(result).filter(([, value]) => !isObject(value) && !Array.isArray(value)).map(([key, value]) => ({ label: humanizeKey(key), value: displayRowValue(value) }));
5139
+ return Object.entries(result).filter(([, value]) => !isObject2(value) && !Array.isArray(value)).map(([key, value]) => ({ label: humanizeKey(key), value: displayRowValue(value) }));
5069
5140
  }
5070
5141
  function directObjectSections(result) {
5071
- return Object.entries(result).filter(([, value]) => isObject(value)).map(([key, value]) => ({ title: humanizeKey(key), rows: detailRows(value) })).filter((section) => section.rows.length > 0);
5142
+ return Object.entries(result).filter(([, value]) => isObject2(value)).map(([key, value]) => ({ title: humanizeKey(key), rows: detailRows(value) })).filter((section) => section.rows.length > 0);
5072
5143
  }
5073
5144
  function directArrayObjectSections(result) {
5074
5145
  return Object.entries(result).flatMap(([key, value]) => {
@@ -5175,7 +5246,7 @@ function autoRender(command, result, output, primitives) {
5175
5246
  if (output === "rich" && Array.isArray(result) && result.every((value) => typeof value === "string")) {
5176
5247
  return result.join("\n");
5177
5248
  }
5178
- if (isObject(result)) {
5249
+ if (isObject2(result)) {
5179
5250
  if (output === "md") {
5180
5251
  return renderObjectMarkdown(result);
5181
5252
  }
@@ -5432,8 +5503,6 @@ function validateServices(services) {
5432
5503
  configureTheme({ brand: "blue", label: "Toolcraft" });
5433
5504
  var NULL_OPTION_VALUE = /* @__PURE__ */ Symbol("toolcraft.cli.null");
5434
5505
  var optionalModulePaths = {
5435
- approvals: "./human-in-loop/approvals-commands.js",
5436
- humanInLoop: "./human-in-loop/gate.js",
5437
5506
  mcpProxy: "./mcp-proxy.js"
5438
5507
  };
5439
5508
  function importOptionalModule(specifier) {
@@ -6072,14 +6141,37 @@ function createOption(field, globalLongOptionFlags) {
6072
6141
  return [option];
6073
6142
  }
6074
6143
  function resolveCLIControls(controls) {
6144
+ const outputFormats = typeof controls?.output === "object" ? controls.output.formats ?? {} : {};
6145
+ validateOutputFormats(outputFormats);
6075
6146
  return {
6076
6147
  debug: controls?.debug === true,
6077
6148
  logLevel: controls?.logLevel === true,
6078
- output: controls?.output === true,
6149
+ output: controls?.output === true || typeof controls?.output === "object",
6150
+ outputFormats,
6079
6151
  verbose: controls?.verbose === true,
6080
6152
  yes: controls?.yes === true
6081
6153
  };
6082
6154
  }
6155
+ var BUILT_IN_OUTPUT_FORMATS = ["rich", "md", "markdown", "json"];
6156
+ function outputFormatNames(controls) {
6157
+ return [...BUILT_IN_OUTPUT_FORMATS, ...Object.keys(controls.outputFormats)];
6158
+ }
6159
+ function validateOutputFormats(formats) {
6160
+ for (const [name, renderer] of Object.entries(formats)) {
6161
+ const hasWhitespace = name.split("").some((character) => character.trim() === "");
6162
+ if (name.length === 0 || name.trim() !== name || hasWhitespace) {
6163
+ throw new ToolcraftBugError(
6164
+ `Custom output format names must be non-empty and contain no whitespace: ${JSON.stringify(name)}.`
6165
+ );
6166
+ }
6167
+ if (BUILT_IN_OUTPUT_FORMATS.includes(name)) {
6168
+ throw new ToolcraftBugError(`Custom output format "${name}" conflicts with a built-in format.`);
6169
+ }
6170
+ if (typeof renderer !== "function") {
6171
+ throw new ToolcraftBugError(`Custom output format "${name}" must define a renderer function.`);
6172
+ }
6173
+ }
6174
+ }
6083
6175
  function getGlobalLongOptionFlags(presetsEnabled, versionEnabled, controls) {
6084
6176
  const flags = [];
6085
6177
  if (presetsEnabled) {
@@ -6564,7 +6656,7 @@ function formatGlobalOptionsLine(ctx) {
6564
6656
  flags.push("--yes");
6565
6657
  }
6566
6658
  if (ctx.controls.output) {
6567
- flags.push("--output <format>");
6659
+ flags.push(`--output <${outputFormatNames(ctx.controls).join("|")}>`);
6568
6660
  }
6569
6661
  if (ctx.controls.verbose) {
6570
6662
  flags.push("-v, --verbose");
@@ -7009,17 +7101,21 @@ function addGlobalOptions(command, presetsEnabled, controls) {
7009
7101
  options.push(new Option("--yes", "Accept defaults and skip prompts."));
7010
7102
  }
7011
7103
  if (controls.output) {
7104
+ const choices2 = outputFormatNames(controls);
7012
7105
  options.push(
7013
- new Option("--output <format>", "Output format.").argParser((value) => {
7106
+ new Option("--output <format>", "Output format.").choices(choices2).argParser((value) => {
7014
7107
  if (value === "rich" || value === "md" || value === "json") {
7015
7108
  return value;
7016
7109
  }
7017
7110
  if (value === "markdown") {
7018
7111
  return "md";
7019
7112
  }
7113
+ if (Object.hasOwn(controls.outputFormats, value)) {
7114
+ return value;
7115
+ }
7020
7116
  throw new InvalidArgumentError(
7021
- formatInvalidEnumMessage("--output", value, ["rich", "md", "markdown", "json"], {
7022
- candidates: ["rich", "markdown", "json"],
7117
+ formatInvalidEnumMessage("--output", value, choices2, {
7118
+ candidates: ["rich", "markdown", "json", ...Object.keys(controls.outputFormats)],
7023
7119
  threshold: 3
7024
7120
  })
7025
7121
  );
@@ -7209,11 +7305,11 @@ function resolveOutput(resolvedFlags) {
7209
7305
  return "json";
7210
7306
  }
7211
7307
  if (resolvedFlags.output !== void 0) {
7212
- return resolvedFlags.output;
7308
+ return resolvedFlags.output === "markdown" ? "md" : resolvedFlags.output;
7213
7309
  }
7214
7310
  return "rich";
7215
7311
  }
7216
- function resolveOutputFromArgv(argv) {
7312
+ function resolveOutputFromArgv(argv, formats = {}) {
7217
7313
  for (let index = 0; index < argv.length; index += 1) {
7218
7314
  const token = argv[index] ?? "";
7219
7315
  if (token === "--json") {
@@ -7230,6 +7326,9 @@ function resolveOutputFromArgv(argv) {
7230
7326
  if (value === "markdown") {
7231
7327
  return "md";
7232
7328
  }
7329
+ if (value !== void 0 && Object.hasOwn(formats, value)) {
7330
+ return value;
7331
+ }
7233
7332
  continue;
7234
7333
  }
7235
7334
  if (token.startsWith("--output=")) {
@@ -7240,17 +7339,21 @@ function resolveOutputFromArgv(argv) {
7240
7339
  if (value === "markdown") {
7241
7340
  return "md";
7242
7341
  }
7342
+ if (Object.hasOwn(formats, value)) {
7343
+ return value;
7344
+ }
7243
7345
  }
7244
7346
  }
7245
7347
  return "rich";
7246
7348
  }
7247
- var DESIGN_SYSTEM_OUTPUT_BY_MODE = {
7248
- rich: "terminal",
7249
- md: "markdown",
7250
- json: "json"
7251
- };
7252
7349
  function toDesignSystemOutput(output) {
7253
- return DESIGN_SYSTEM_OUTPUT_BY_MODE[output];
7350
+ if (output === "md") {
7351
+ return "markdown";
7352
+ }
7353
+ if (output === "json") {
7354
+ return "json";
7355
+ }
7356
+ return "terminal";
7254
7357
  }
7255
7358
  async function withOutputFormat2(output, fn) {
7256
7359
  const previous = process.env.OUTPUT_FORMAT;
@@ -8393,9 +8496,9 @@ async function resolveParams(fields, dynamicFields, variants, positionalValues,
8393
8496
  const validation = validate(field.schema, value);
8394
8497
  if (!validation.ok) {
8395
8498
  errors.push(
8396
- ...validation.issues.map((issue) => ({
8499
+ ...validation.issues.map((issue2) => ({
8397
8500
  path: field.displayPath,
8398
- message: issue.message
8501
+ message: issue2.message
8399
8502
  }))
8400
8503
  );
8401
8504
  continue;
@@ -8467,17 +8570,18 @@ function getResolvedFlags(command) {
8467
8570
  const flags = command.optsWithGlobals();
8468
8571
  return flags;
8469
8572
  }
8470
- async function executeCommand(state, services, requirementOptions, runtimeFetch, runtimeOptions, runtimeEnv, runtimeFs, outputEmitter, promptStreams, diagnosticsOptions, onErrorReportContext) {
8573
+ async function executeCommand(state, services, requirementOptions, runtimeFetch, humanInLoop, runtimeEnv, runtimeFs, outputEmitter, outputFormats, promptStreams, diagnosticsOptions, onErrorReportContext) {
8471
8574
  const logger2 = createLogger(outputEmitter);
8575
+ const optionValues = state.actionCommand.optsWithGlobals();
8576
+ const resolvedFlags = optionValues;
8577
+ const output = resolveOutput(resolvedFlags);
8472
8578
  const primitives = {
8473
8579
  logger: logger2,
8474
8580
  renderTable,
8475
8581
  getTheme,
8476
- note
8582
+ note,
8583
+ outputFormat: output
8477
8584
  };
8478
- const optionValues = state.actionCommand.optsWithGlobals();
8479
- const resolvedFlags = optionValues;
8480
- const output = resolveOutput(resolvedFlags);
8481
8585
  const diagnostics = createRuntimeLogger({
8482
8586
  level: resolvedFlags.logLevel ?? (diagnosticsOptions.verboseControlEnabled && resolvedFlags.verbose ? "trace" : diagnosticsOptions.logLevel),
8483
8587
  logger: diagnosticsOptions.logger ?? writeCLIDiagnosticEvent
@@ -8490,7 +8594,7 @@ async function executeCommand(state, services, requirementOptions, runtimeFetch,
8490
8594
  const missingParameterContext = !resolvedFlags.yes && output === "rich" && stdinTTY && stdoutTTY ? {
8491
8595
  commandPath: state.commandPath,
8492
8596
  params: {},
8493
- output,
8597
+ output: "rich",
8494
8598
  stdinTTY,
8495
8599
  stdoutTTY
8496
8600
  } : void 0;
@@ -8577,12 +8681,15 @@ async function executeCommand(state, services, requirementOptions, runtimeFetch,
8577
8681
  outputEmitter(line);
8578
8682
  }
8579
8683
  } else {
8580
- renderResult(
8684
+ renderCLIResult(
8581
8685
  state.command,
8686
+ state.commandPath,
8582
8687
  event,
8583
8688
  output,
8584
8689
  primitives,
8585
- outputEmitter === void 0 ? void 0 : (chunk) => outputEmitter(chunk.endsWith("\n") ? chunk.slice(0, -1) : chunk)
8690
+ outputFormats,
8691
+ outputEmitter === void 0 ? void 0 : (chunk) => outputEmitter(chunk.endsWith("\n") ? chunk.slice(0, -1) : chunk),
8692
+ outputEmitter
8586
8693
  );
8587
8694
  }
8588
8695
  }
@@ -8614,9 +8721,7 @@ async function executeCommand(state, services, requirementOptions, runtimeFetch,
8614
8721
  throw new UserError("Operation cancelled.");
8615
8722
  }
8616
8723
  }
8617
- const result = state.command.humanInLoop ? await (await importOptionalModule(
8618
- optionalModulePaths.humanInLoop
8619
- )).invokeWithHumanInLoop(state.command, context, runtimeOptions, state.commandPath) : await state.command.handler(context);
8724
+ const result = state.command.humanInLoop && humanInLoop !== void 0 ? await humanInLoop.invoke(state.command, context, state.commandPath) : await state.command.handler(context);
8620
8725
  if (output === "rich" && runtime.isFixture) {
8621
8726
  writeRichHeader(`${state.command.name} (fixture)`);
8622
8727
  }
@@ -8624,12 +8729,15 @@ async function executeCommand(state, services, requirementOptions, runtimeFetch,
8624
8729
  renderHumanInLoopPending(result);
8625
8730
  return;
8626
8731
  }
8627
- const renderStatus = renderResult(
8732
+ const renderStatus = renderCLIResult(
8628
8733
  state.command,
8734
+ state.commandPath,
8629
8735
  result,
8630
8736
  output,
8631
8737
  primitives,
8632
- outputEmitter === void 0 ? void 0 : (chunk) => outputEmitter(chunk.endsWith("\n") ? chunk.slice(0, -1) : chunk)
8738
+ outputFormats,
8739
+ outputEmitter === void 0 ? void 0 : (chunk) => outputEmitter(chunk.endsWith("\n") ? chunk.slice(0, -1) : chunk),
8740
+ outputEmitter
8633
8741
  );
8634
8742
  if (renderStatus.mcpError) {
8635
8743
  process.exitCode = 1;
@@ -8645,6 +8753,23 @@ async function executeCommand(state, services, requirementOptions, runtimeFetch,
8645
8753
  throw error3;
8646
8754
  }
8647
8755
  }
8756
+ function renderCLIResult(command, commandPath, result, output, primitives, outputFormats, write2, emitExact) {
8757
+ const customRenderer = outputFormats[output];
8758
+ if (customRenderer === void 0) {
8759
+ return renderResult(command, result, output, primitives, write2);
8760
+ }
8761
+ const payload = customRenderer({ command, commandPath, primitives, result });
8762
+ if (payload !== void 0 && payload.length > 0) {
8763
+ if (emitExact !== void 0) {
8764
+ emitExact(payload);
8765
+ } else if (write2 === void 0) {
8766
+ process.stdout.write(payload);
8767
+ } else {
8768
+ write2(payload);
8769
+ }
8770
+ }
8771
+ return { mcpError: false };
8772
+ }
8648
8773
  function isStringRecord(value) {
8649
8774
  return isPlainObject4(value) && Object.values(value).every((entry) => typeof entry === "string");
8650
8775
  }
@@ -9182,20 +9307,19 @@ async function runCLI(roots, options = {}) {
9182
9307
  let errorReportContext;
9183
9308
  try {
9184
9309
  const normalizedRoot = normalizeRoots(roots, argv);
9185
- const root = options.approvals === true ? (await importOptionalModule(
9186
- optionalModulePaths.approvals
9187
- )).mergeApprovalsGroup(normalizedRoot) : normalizedRoot;
9310
+ const root = mergeApprovalsRoot(normalizedRoot, options);
9311
+ assertHumanInLoopWired(root, options.humanInLoop);
9188
9312
  if (hasMcpProxyConfig(root)) {
9189
9313
  await (await importOptionalModule(optionalModulePaths.mcpProxy)).resolveMcpProxies(root, { projectRoot: options.projectRoot });
9190
9314
  }
9191
9315
  const casing = options.casing ?? "kebab";
9192
9316
  const services = options.services ?? {};
9193
- const runtimeOptions = options.humanInLoop ?? {};
9317
+ const humanInLoop = options.humanInLoop;
9194
9318
  const runtimeFetch = options.fetch ?? globalThis.fetch;
9195
9319
  version = options.version ?? findEntrypointPackageMetadata(argv[1])?.version;
9196
9320
  const servicesWithBuiltIns = {
9197
9321
  ...services,
9198
- runtimeOptions,
9322
+ humanInLoop,
9199
9323
  root
9200
9324
  };
9201
9325
  const requirementOptions = {
@@ -9241,10 +9365,11 @@ async function runCLI(roots, options = {}) {
9241
9365
  servicesWithBuiltIns,
9242
9366
  requirementOptions,
9243
9367
  runtimeFetch,
9244
- runtimeOptions,
9368
+ humanInLoop,
9245
9369
  options.env,
9246
9370
  options.fs,
9247
9371
  options.outputEmitter,
9372
+ controls.outputFormats,
9248
9373
  {
9249
9374
  input: options.promptInput,
9250
9375
  output: options.promptOutput
@@ -9318,7 +9443,7 @@ async function runCLI(roots, options = {}) {
9318
9443
  }
9319
9444
  await handleRunError(error3, {
9320
9445
  debugStackMode: resolvedFlags !== void 0 ? resolveDebugStackMode(resolvedFlags.debug) : getDebugStackModeFromArgv(argv),
9321
- output: resolvedFlags !== void 0 ? resolveOutput(resolvedFlags) : resolveOutputFromArgv(argv),
9446
+ output: resolvedFlags !== void 0 ? resolveOutput(resolvedFlags) : resolveOutputFromArgv(argv, controls.outputFormats),
9322
9447
  verbose: resolvedFlags ? Boolean(resolvedFlags.verbose) : argv.includes("--verbose"),
9323
9448
  program,
9324
9449
  argv,
@@ -14655,7 +14780,7 @@ function sleep2(ms) {
14655
14780
  // src/cli.ts
14656
14781
  configureTheme({ brand: "green", label: "Terminal Pilot" });
14657
14782
  function getBundledPackageVersion() {
14658
- return true ? "0.0.45" : void 0;
14783
+ return true ? "0.0.47" : void 0;
14659
14784
  }
14660
14785
  function normalizeArgv(argv) {
14661
14786
  if (argv.includes("--json") && !argv.some((argument) => argument === "--output" || argument.startsWith("--output="))) {