@owlmeans/viable-sdk 0.1.18-rc.8 → 0.1.18

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 (498) hide show
  1. package/README.md +29 -11
  2. package/agent-meta/manifest.json +16 -0
  3. package/agent-meta/skills/viable-sdk/SKILL.md +1033 -0
  4. package/build/api/collect/types.d.ts +30 -0
  5. package/build/api/collect/types.d.ts.map +1 -0
  6. package/build/api/collect/types.js +2 -0
  7. package/build/api/collect/types.js.map +1 -0
  8. package/build/api/collect.d.ts +14 -0
  9. package/build/api/collect.d.ts.map +1 -0
  10. package/build/api/collect.js +132 -0
  11. package/build/api/collect.js.map +1 -0
  12. package/build/api/consts.local.d.ts +21 -0
  13. package/build/api/consts.local.d.ts.map +1 -0
  14. package/build/api/consts.local.js +25 -0
  15. package/build/api/consts.local.js.map +1 -0
  16. package/build/api/index.d.ts +5 -0
  17. package/build/api/index.d.ts.map +1 -1
  18. package/build/api/index.js +2 -0
  19. package/build/api/index.js.map +1 -1
  20. package/build/api/remote.d.ts +13 -6
  21. package/build/api/remote.d.ts.map +1 -1
  22. package/build/api/remote.js +302 -35
  23. package/build/api/remote.js.map +1 -1
  24. package/build/api/transport/types.d.ts +14 -0
  25. package/build/api/transport/types.d.ts.map +1 -0
  26. package/build/api/transport/types.js +2 -0
  27. package/build/api/transport/types.js.map +1 -0
  28. package/build/api/transport.d.ts +4 -0
  29. package/build/api/transport.d.ts.map +1 -0
  30. package/build/api/transport.js +32 -0
  31. package/build/api/transport.js.map +1 -0
  32. package/build/api/types.d.ts +9 -0
  33. package/build/api/types.d.ts.map +1 -0
  34. package/build/api/types.js +2 -0
  35. package/build/api/types.js.map +1 -0
  36. package/build/api/types.local.d.ts +3 -0
  37. package/build/api/types.local.d.ts.map +1 -0
  38. package/build/api/types.local.js +2 -0
  39. package/build/api/types.local.js.map +1 -0
  40. package/build/consts.d.ts +29 -14
  41. package/build/consts.d.ts.map +1 -1
  42. package/build/consts.js +30 -14
  43. package/build/consts.js.map +1 -1
  44. package/build/context/consts.local.d.ts +18 -0
  45. package/build/context/consts.local.d.ts.map +1 -0
  46. package/build/context/consts.local.js +18 -0
  47. package/build/context/consts.local.js.map +1 -0
  48. package/build/context/index.d.ts +3 -7
  49. package/build/context/index.d.ts.map +1 -1
  50. package/build/context/index.js +58 -25
  51. package/build/context/index.js.map +1 -1
  52. package/build/context/types.d.ts +26 -0
  53. package/build/context/types.d.ts.map +1 -0
  54. package/build/context/types.js +2 -0
  55. package/build/context/types.js.map +1 -0
  56. package/build/executor/boot-check.d.ts +1 -40
  57. package/build/executor/boot-check.d.ts.map +1 -1
  58. package/build/executor/boot-check.js +22 -19
  59. package/build/executor/boot-check.js.map +1 -1
  60. package/build/executor/consts.d.ts +55 -0
  61. package/build/executor/consts.d.ts.map +1 -0
  62. package/build/executor/consts.js +66 -0
  63. package/build/executor/consts.js.map +1 -0
  64. package/build/executor/consts.local.d.ts +63 -0
  65. package/build/executor/consts.local.d.ts.map +1 -0
  66. package/build/executor/consts.local.js +69 -0
  67. package/build/executor/consts.local.js.map +1 -0
  68. package/build/executor/env/types.d.ts +40 -0
  69. package/build/executor/env/types.d.ts.map +1 -0
  70. package/build/executor/env/types.js +2 -0
  71. package/build/executor/env/types.js.map +1 -0
  72. package/build/executor/env.d.ts +11 -20
  73. package/build/executor/env.d.ts.map +1 -1
  74. package/build/executor/env.js +39 -59
  75. package/build/executor/env.js.map +1 -1
  76. package/build/executor/errors.d.ts +15 -0
  77. package/build/executor/errors.d.ts.map +1 -1
  78. package/build/executor/errors.js +19 -2
  79. package/build/executor/errors.js.map +1 -1
  80. package/build/executor/files/types.d.ts +106 -0
  81. package/build/executor/files/types.d.ts.map +1 -0
  82. package/build/executor/files/types.js +2 -0
  83. package/build/executor/files/types.js.map +1 -0
  84. package/build/executor/files.d.ts +2 -50
  85. package/build/executor/files.d.ts.map +1 -1
  86. package/build/executor/files.js +225 -68
  87. package/build/executor/files.js.map +1 -1
  88. package/build/executor/git/types.d.ts +19 -0
  89. package/build/executor/git/types.d.ts.map +1 -0
  90. package/build/executor/git/types.js +2 -0
  91. package/build/executor/git/types.js.map +1 -0
  92. package/build/executor/git.d.ts +4 -36
  93. package/build/executor/git.d.ts.map +1 -1
  94. package/build/executor/git.js +206 -241
  95. package/build/executor/git.js.map +1 -1
  96. package/build/executor/glob/types.d.ts +12 -0
  97. package/build/executor/glob/types.d.ts.map +1 -0
  98. package/build/executor/glob/types.js +2 -0
  99. package/build/executor/glob/types.js.map +1 -0
  100. package/build/executor/glob.d.ts +4 -0
  101. package/build/executor/glob.d.ts.map +1 -0
  102. package/build/executor/glob.js +11 -0
  103. package/build/executor/glob.js.map +1 -0
  104. package/build/executor/health/types.d.ts +39 -0
  105. package/build/executor/health/types.d.ts.map +1 -0
  106. package/build/executor/health/types.js +2 -0
  107. package/build/executor/health/types.js.map +1 -0
  108. package/build/executor/health.d.ts +3 -83
  109. package/build/executor/health.d.ts.map +1 -1
  110. package/build/executor/health.js +76 -91
  111. package/build/executor/health.js.map +1 -1
  112. package/build/executor/index.d.ts +14 -15
  113. package/build/executor/index.d.ts.map +1 -1
  114. package/build/executor/index.js +36 -18
  115. package/build/executor/index.js.map +1 -1
  116. package/build/executor/integrity/types.d.ts +25 -0
  117. package/build/executor/integrity/types.d.ts.map +1 -0
  118. package/build/executor/integrity/types.js +2 -0
  119. package/build/executor/integrity/types.js.map +1 -0
  120. package/build/executor/integrity.d.ts +5 -15
  121. package/build/executor/integrity.d.ts.map +1 -1
  122. package/build/executor/integrity.js +28 -39
  123. package/build/executor/integrity.js.map +1 -1
  124. package/build/executor/layout/types.d.ts +69 -0
  125. package/build/executor/layout/types.d.ts.map +1 -0
  126. package/build/executor/layout/types.js +2 -0
  127. package/build/executor/layout/types.js.map +1 -0
  128. package/build/executor/layout.d.ts +9 -56
  129. package/build/executor/layout.d.ts.map +1 -1
  130. package/build/executor/layout.js +35 -82
  131. package/build/executor/layout.js.map +1 -1
  132. package/build/executor/shell/types.d.ts +76 -0
  133. package/build/executor/shell/types.d.ts.map +1 -0
  134. package/build/executor/shell/types.js +2 -0
  135. package/build/executor/shell/types.js.map +1 -0
  136. package/build/executor/shell.d.ts +3 -78
  137. package/build/executor/shell.d.ts.map +1 -1
  138. package/build/executor/shell.js +61 -91
  139. package/build/executor/shell.js.map +1 -1
  140. package/build/executor/spawn/types.d.ts +98 -0
  141. package/build/executor/spawn/types.d.ts.map +1 -0
  142. package/build/executor/spawn/types.js +2 -0
  143. package/build/executor/spawn/types.js.map +1 -0
  144. package/build/executor/spawn.d.ts +3 -103
  145. package/build/executor/spawn.d.ts.map +1 -1
  146. package/build/executor/spawn.js +192 -274
  147. package/build/executor/spawn.js.map +1 -1
  148. package/build/executor/types.d.ts +123 -0
  149. package/build/executor/types.d.ts.map +1 -0
  150. package/build/executor/types.js +2 -0
  151. package/build/executor/types.js.map +1 -0
  152. package/build/executor/types.local.d.ts +6 -0
  153. package/build/executor/types.local.d.ts.map +1 -0
  154. package/build/executor/types.local.js +2 -0
  155. package/build/executor/types.local.js.map +1 -0
  156. package/build/index.d.ts +14 -1
  157. package/build/index.d.ts.map +1 -1
  158. package/build/index.js +5 -1
  159. package/build/index.js.map +1 -1
  160. package/build/project/consts.d.ts +17 -0
  161. package/build/project/consts.d.ts.map +1 -0
  162. package/build/project/consts.js +17 -0
  163. package/build/project/consts.js.map +1 -0
  164. package/build/project/consts.local.d.ts +4 -0
  165. package/build/project/consts.local.d.ts.map +1 -0
  166. package/build/project/consts.local.js +4 -0
  167. package/build/project/consts.local.js.map +1 -0
  168. package/build/project/dotenv/types.d.ts +39 -0
  169. package/build/project/dotenv/types.d.ts.map +1 -0
  170. package/build/project/dotenv/types.js +2 -0
  171. package/build/project/dotenv/types.js.map +1 -0
  172. package/build/project/dotenv.d.ts +4 -0
  173. package/build/project/dotenv.d.ts.map +1 -0
  174. package/build/project/dotenv.js +56 -0
  175. package/build/project/dotenv.js.map +1 -0
  176. package/build/project/env/types.d.ts +40 -0
  177. package/build/project/env/types.d.ts.map +1 -0
  178. package/build/project/env/types.js +2 -0
  179. package/build/project/env/types.js.map +1 -0
  180. package/build/project/env.d.ts +2 -98
  181. package/build/project/env.d.ts.map +1 -1
  182. package/build/project/env.js +63 -215
  183. package/build/project/env.js.map +1 -1
  184. package/build/project/marker/types.d.ts +33 -0
  185. package/build/project/marker/types.d.ts.map +1 -0
  186. package/build/project/marker/types.js +2 -0
  187. package/build/project/marker/types.js.map +1 -0
  188. package/build/project/marker.d.ts +4 -25
  189. package/build/project/marker.d.ts.map +1 -1
  190. package/build/project/marker.js +40 -43
  191. package/build/project/marker.js.map +1 -1
  192. package/build/project/probe/types.d.ts +22 -0
  193. package/build/project/probe/types.d.ts.map +1 -0
  194. package/build/project/probe/types.js +2 -0
  195. package/build/project/probe/types.js.map +1 -0
  196. package/build/project/probe.d.ts +4 -0
  197. package/build/project/probe.d.ts.map +1 -0
  198. package/build/project/probe.js +39 -0
  199. package/build/project/probe.js.map +1 -0
  200. package/build/project/report/types.d.ts +18 -0
  201. package/build/project/report/types.d.ts.map +1 -0
  202. package/build/project/report/types.js +2 -0
  203. package/build/project/report/types.js.map +1 -0
  204. package/build/project/report.d.ts +7 -0
  205. package/build/project/report.d.ts.map +1 -0
  206. package/build/project/report.js +68 -0
  207. package/build/project/report.js.map +1 -0
  208. package/build/project/setup/types.d.ts +32 -0
  209. package/build/project/setup/types.d.ts.map +1 -0
  210. package/build/project/setup/types.js +2 -0
  211. package/build/project/setup/types.js.map +1 -0
  212. package/build/project/setup.d.ts +4 -53
  213. package/build/project/setup.d.ts.map +1 -1
  214. package/build/project/setup.js +112 -175
  215. package/build/project/setup.js.map +1 -1
  216. package/build/project/types.d.ts +37 -0
  217. package/build/project/types.d.ts.map +1 -0
  218. package/build/project/types.js +2 -0
  219. package/build/project/types.js.map +1 -0
  220. package/build/run/consts.local.d.ts +3 -0
  221. package/build/run/consts.local.d.ts.map +1 -0
  222. package/build/run/consts.local.js +26 -0
  223. package/build/run/consts.local.js.map +1 -0
  224. package/build/run/index.d.ts +11 -69
  225. package/build/run/index.d.ts.map +1 -1
  226. package/build/run/index.js +9 -147
  227. package/build/run/index.js.map +1 -1
  228. package/build/run/local/types.d.ts +39 -0
  229. package/build/run/local/types.d.ts.map +1 -0
  230. package/build/run/local/types.js +2 -0
  231. package/build/run/local/types.js.map +1 -0
  232. package/build/run/local.d.ts +3 -0
  233. package/build/run/local.d.ts.map +1 -0
  234. package/build/run/local.js +130 -0
  235. package/build/run/local.js.map +1 -0
  236. package/build/run/process/types.d.ts +15 -0
  237. package/build/run/process/types.d.ts.map +1 -0
  238. package/build/run/process/types.js +2 -0
  239. package/build/run/process/types.js.map +1 -0
  240. package/build/run/process.d.ts +4 -0
  241. package/build/run/process.d.ts.map +1 -0
  242. package/build/run/process.js +20 -0
  243. package/build/run/process.js.map +1 -0
  244. package/build/run/serve.d.ts +14 -9
  245. package/build/run/serve.d.ts.map +1 -1
  246. package/build/run/serve.js +1 -25
  247. package/build/run/serve.js.map +1 -1
  248. package/build/run/state/types.d.ts +35 -0
  249. package/build/run/state/types.d.ts.map +1 -0
  250. package/build/run/state/types.js +2 -0
  251. package/build/run/state/types.js.map +1 -0
  252. package/build/run/state.d.ts +3 -62
  253. package/build/run/state.d.ts.map +1 -1
  254. package/build/run/state.js +96 -123
  255. package/build/run/state.js.map +1 -1
  256. package/build/run/types.d.ts +78 -0
  257. package/build/run/types.d.ts.map +1 -0
  258. package/build/run/types.js +2 -0
  259. package/build/run/types.js.map +1 -0
  260. package/build/session/consts.local.d.ts +5 -0
  261. package/build/session/consts.local.d.ts.map +1 -0
  262. package/build/session/consts.local.js +5 -0
  263. package/build/session/consts.local.js.map +1 -0
  264. package/build/session/index.d.ts +5 -10
  265. package/build/session/index.d.ts.map +1 -1
  266. package/build/session/index.js +84 -15
  267. package/build/session/index.js.map +1 -1
  268. package/build/session/questions.d.ts +16 -0
  269. package/build/session/questions.d.ts.map +1 -0
  270. package/build/session/questions.js +17 -0
  271. package/build/session/questions.js.map +1 -0
  272. package/build/session/queue.d.ts +61 -0
  273. package/build/session/queue.d.ts.map +1 -0
  274. package/build/session/queue.js +156 -0
  275. package/build/session/queue.js.map +1 -0
  276. package/build/session/tasks.d.ts +11 -30
  277. package/build/session/tasks.d.ts.map +1 -1
  278. package/build/session/tasks.js +18 -78
  279. package/build/session/tasks.js.map +1 -1
  280. package/build/session/types.d.ts +20 -0
  281. package/build/session/types.d.ts.map +1 -0
  282. package/build/session/types.js +2 -0
  283. package/build/session/types.js.map +1 -0
  284. package/build/task/consts.d.ts +12 -0
  285. package/build/task/consts.d.ts.map +1 -0
  286. package/build/task/consts.js +12 -0
  287. package/build/task/consts.js.map +1 -0
  288. package/build/task/consts.local.d.ts +19 -0
  289. package/build/task/consts.local.d.ts.map +1 -0
  290. package/build/task/consts.local.js +72 -0
  291. package/build/task/consts.local.js.map +1 -0
  292. package/build/task/driver.d.ts +1 -28
  293. package/build/task/driver.d.ts.map +1 -1
  294. package/build/task/driver.js +2 -9
  295. package/build/task/driver.js.map +1 -1
  296. package/build/task/envelope/types.d.ts +29 -0
  297. package/build/task/envelope/types.d.ts.map +1 -0
  298. package/build/task/envelope/types.js +2 -0
  299. package/build/task/envelope/types.js.map +1 -0
  300. package/build/task/envelope.d.ts +4 -34
  301. package/build/task/envelope.d.ts.map +1 -1
  302. package/build/task/envelope.js +103 -165
  303. package/build/task/envelope.js.map +1 -1
  304. package/build/task/index.d.ts +5 -0
  305. package/build/task/index.d.ts.map +1 -1
  306. package/build/task/index.js +2 -0
  307. package/build/task/index.js.map +1 -1
  308. package/build/task/inquiry/types.d.ts +38 -0
  309. package/build/task/inquiry/types.d.ts.map +1 -0
  310. package/build/task/inquiry/types.js +2 -0
  311. package/build/task/inquiry/types.js.map +1 -0
  312. package/build/task/inquiry.d.ts +5 -0
  313. package/build/task/inquiry.d.ts.map +1 -0
  314. package/build/task/inquiry.js +188 -0
  315. package/build/task/inquiry.js.map +1 -0
  316. package/build/task/types.d.ts +48 -0
  317. package/build/task/types.d.ts.map +1 -0
  318. package/build/task/types.js +2 -0
  319. package/build/task/types.js.map +1 -0
  320. package/build/tools/account/types.d.ts +24 -0
  321. package/build/tools/account/types.d.ts.map +1 -0
  322. package/build/tools/account/types.js +2 -0
  323. package/build/tools/account/types.js.map +1 -0
  324. package/build/tools/account.d.ts +4 -0
  325. package/build/tools/account.d.ts.map +1 -0
  326. package/build/tools/account.js +72 -0
  327. package/build/tools/account.js.map +1 -0
  328. package/build/tools/blueprints/types.d.ts +5 -0
  329. package/build/tools/blueprints/types.d.ts.map +1 -0
  330. package/build/tools/blueprints/types.js +2 -0
  331. package/build/tools/blueprints/types.js.map +1 -0
  332. package/build/tools/blueprints.d.ts +4 -0
  333. package/build/tools/blueprints.d.ts.map +1 -0
  334. package/build/tools/blueprints.js +23 -0
  335. package/build/tools/blueprints.js.map +1 -0
  336. package/build/tools/catalogue/types.d.ts +8 -0
  337. package/build/tools/catalogue/types.d.ts.map +1 -0
  338. package/build/tools/catalogue/types.js +2 -0
  339. package/build/tools/catalogue/types.js.map +1 -0
  340. package/build/tools/catalogue.d.ts +8 -6
  341. package/build/tools/catalogue.d.ts.map +1 -1
  342. package/build/tools/catalogue.js +2565 -213
  343. package/build/tools/catalogue.js.map +1 -1
  344. package/build/tools/config/types.d.ts +19 -0
  345. package/build/tools/config/types.d.ts.map +1 -0
  346. package/build/tools/config/types.js +2 -0
  347. package/build/tools/config/types.js.map +1 -0
  348. package/build/tools/config.d.ts +4 -0
  349. package/build/tools/config.d.ts.map +1 -0
  350. package/build/tools/config.js +42 -0
  351. package/build/tools/config.js.map +1 -0
  352. package/build/tools/consts.d.ts +61 -0
  353. package/build/tools/consts.d.ts.map +1 -0
  354. package/build/tools/consts.js +515 -0
  355. package/build/tools/consts.js.map +1 -0
  356. package/build/tools/consts.local.d.ts +131 -0
  357. package/build/tools/consts.local.d.ts.map +1 -0
  358. package/build/tools/consts.local.js +236 -0
  359. package/build/tools/consts.local.js.map +1 -0
  360. package/build/tools/control/types.d.ts +17 -0
  361. package/build/tools/control/types.d.ts.map +1 -0
  362. package/build/tools/control/types.js +2 -0
  363. package/build/tools/control/types.js.map +1 -0
  364. package/build/tools/control.d.ts +4 -0
  365. package/build/tools/control.d.ts.map +1 -0
  366. package/build/tools/control.js +44 -0
  367. package/build/tools/control.js.map +1 -0
  368. package/build/tools/feed/types.d.ts +21 -0
  369. package/build/tools/feed/types.d.ts.map +1 -0
  370. package/build/tools/feed/types.js +2 -0
  371. package/build/tools/feed/types.js.map +1 -0
  372. package/build/tools/feed.d.ts +4 -0
  373. package/build/tools/feed.d.ts.map +1 -0
  374. package/build/tools/feed.js +75 -0
  375. package/build/tools/feed.js.map +1 -0
  376. package/build/tools/git/types.d.ts +25 -0
  377. package/build/tools/git/types.d.ts.map +1 -0
  378. package/build/tools/git/types.js +2 -0
  379. package/build/tools/git/types.js.map +1 -0
  380. package/build/tools/git.d.ts +4 -0
  381. package/build/tools/git.d.ts.map +1 -0
  382. package/build/tools/git.js +83 -0
  383. package/build/tools/git.js.map +1 -0
  384. package/build/tools/handover/types.d.ts +49 -0
  385. package/build/tools/handover/types.d.ts.map +1 -0
  386. package/build/tools/handover/types.js +2 -0
  387. package/build/tools/handover/types.js.map +1 -0
  388. package/build/tools/handover.d.ts +8 -0
  389. package/build/tools/handover.d.ts.map +1 -0
  390. package/build/tools/handover.js +138 -0
  391. package/build/tools/handover.js.map +1 -0
  392. package/build/tools/host/types.d.ts +34 -0
  393. package/build/tools/host/types.d.ts.map +1 -0
  394. package/build/tools/host/types.js +2 -0
  395. package/build/tools/host/types.js.map +1 -0
  396. package/build/tools/host.d.ts +4 -0
  397. package/build/tools/host.d.ts.map +1 -0
  398. package/build/tools/host.js +13 -0
  399. package/build/tools/host.js.map +1 -0
  400. package/build/tools/iam/types.d.ts +44 -0
  401. package/build/tools/iam/types.d.ts.map +1 -0
  402. package/build/tools/iam/types.js +2 -0
  403. package/build/tools/iam/types.js.map +1 -0
  404. package/build/tools/iam.d.ts +4 -0
  405. package/build/tools/iam.d.ts.map +1 -0
  406. package/build/tools/iam.js +229 -0
  407. package/build/tools/iam.js.map +1 -0
  408. package/build/tools/index.d.ts +27 -1
  409. package/build/tools/index.d.ts.map +1 -1
  410. package/build/tools/index.js +14 -1
  411. package/build/tools/index.js.map +1 -1
  412. package/build/tools/inflight/types.d.ts +47 -0
  413. package/build/tools/inflight/types.d.ts.map +1 -0
  414. package/build/tools/inflight/types.js +2 -0
  415. package/build/tools/inflight/types.js.map +1 -0
  416. package/build/tools/inflight.d.ts +3 -0
  417. package/build/tools/inflight.d.ts.map +1 -0
  418. package/build/tools/inflight.js +88 -0
  419. package/build/tools/inflight.js.map +1 -0
  420. package/build/tools/kits/types.d.ts +12 -0
  421. package/build/tools/kits/types.d.ts.map +1 -0
  422. package/build/tools/kits/types.js +2 -0
  423. package/build/tools/kits/types.js.map +1 -0
  424. package/build/tools/kits.d.ts +4 -0
  425. package/build/tools/kits.d.ts.map +1 -0
  426. package/build/tools/kits.js +33 -0
  427. package/build/tools/kits.js.map +1 -0
  428. package/build/tools/mcp.d.ts +13 -19
  429. package/build/tools/mcp.d.ts.map +1 -1
  430. package/build/tools/mcp.js +117 -38
  431. package/build/tools/mcp.js.map +1 -1
  432. package/build/tools/platform.d.ts +14 -0
  433. package/build/tools/platform.d.ts.map +1 -0
  434. package/build/tools/platform.js +90 -0
  435. package/build/tools/platform.js.map +1 -0
  436. package/build/tools/production/types.d.ts +22 -0
  437. package/build/tools/production/types.d.ts.map +1 -0
  438. package/build/tools/production/types.js +2 -0
  439. package/build/tools/production/types.js.map +1 -0
  440. package/build/tools/production.d.ts +4 -0
  441. package/build/tools/production.d.ts.map +1 -0
  442. package/build/tools/production.js +80 -0
  443. package/build/tools/production.js.map +1 -0
  444. package/build/tools/refusal/types.d.ts +95 -0
  445. package/build/tools/refusal/types.d.ts.map +1 -0
  446. package/build/tools/refusal/types.js +2 -0
  447. package/build/tools/refusal/types.js.map +1 -0
  448. package/build/tools/refusal.d.ts +4 -0
  449. package/build/tools/refusal.d.ts.map +1 -0
  450. package/build/tools/refusal.js +663 -0
  451. package/build/tools/refusal.js.map +1 -0
  452. package/build/tools/settings/types.d.ts +42 -0
  453. package/build/tools/settings/types.d.ts.map +1 -0
  454. package/build/tools/settings/types.js +2 -0
  455. package/build/tools/settings/types.js.map +1 -0
  456. package/build/tools/settings.d.ts +4 -0
  457. package/build/tools/settings.d.ts.map +1 -0
  458. package/build/tools/settings.js +71 -0
  459. package/build/tools/settings.js.map +1 -0
  460. package/build/tools/status/types.d.ts +25 -0
  461. package/build/tools/status/types.d.ts.map +1 -0
  462. package/build/tools/status/types.js +2 -0
  463. package/build/tools/status/types.js.map +1 -0
  464. package/build/tools/status.d.ts +4 -0
  465. package/build/tools/status.d.ts.map +1 -0
  466. package/build/tools/status.js +183 -0
  467. package/build/tools/status.js.map +1 -0
  468. package/build/tools/stories/types.d.ts +48 -0
  469. package/build/tools/stories/types.d.ts.map +1 -0
  470. package/build/tools/stories/types.js +2 -0
  471. package/build/tools/stories/types.js.map +1 -0
  472. package/build/tools/stories.d.ts +8 -0
  473. package/build/tools/stories.d.ts.map +1 -0
  474. package/build/tools/stories.js +79 -0
  475. package/build/tools/stories.js.map +1 -0
  476. package/build/tools/types.d.ts +177 -26
  477. package/build/tools/types.d.ts.map +1 -1
  478. package/build/tools/types.js +1 -32
  479. package/build/tools/types.js.map +1 -1
  480. package/build/types.d.ts +391 -26
  481. package/build/types.d.ts.map +1 -1
  482. package/build/utils.d.ts +8 -0
  483. package/build/utils.d.ts.map +1 -0
  484. package/build/utils.js +12 -0
  485. package/build/utils.js.map +1 -0
  486. package/package.json +30 -34
  487. package/build/harness/index.d.ts +0 -28
  488. package/build/harness/index.d.ts.map +0 -1
  489. package/build/harness/index.js +0 -83
  490. package/build/harness/index.js.map +0 -1
  491. package/build/harness/templates.d.ts +0 -30
  492. package/build/harness/templates.d.ts.map +0 -1
  493. package/build/harness/templates.js +0 -154
  494. package/build/harness/templates.js.map +0 -1
  495. package/build/tools/jobs.d.ts +0 -12
  496. package/build/tools/jobs.d.ts.map +0 -1
  497. package/build/tools/jobs.js +0 -47
  498. package/build/tools/jobs.js.map +0 -1
@@ -0,0 +1,106 @@
1
+ import type { StatTreeResult, SubProject } from '@owlmeans/viable-common';
2
+ import type { LocalSourceFile, SourceListOptions } from '../types.js';
3
+ /**
4
+ * The target's files, as the platform asks for them.
5
+ *
6
+ * Shaped exactly like the publisher's `createFileHelper`, because the caller is the same code:
7
+ * the agent's remote helper sends a `SlotFileCommand` and parses one of these answers, and it has
8
+ * no way to know whether a pod or a laptop produced it.
9
+ */
10
+ export interface LocalFileHelper {
11
+ /**
12
+ * Wipe the project, keeping what the caller names and what is never ours to delete.
13
+ *
14
+ * The kept paths are project-relative and may be NESTED — `.agents/memory/history.md` is one
15
+ * the reinit pipeline passes, and `sources/web/.env` is one this helper adds itself. Matching
16
+ * them against top-level `readdir` names alone is what deleted the first: `.agents` matched
17
+ * nothing in the ignore set, so the whole harness tree went along with the one file the
18
+ * caller had explicitly asked to preserve — and nothing failed.
19
+ *
20
+ * So a directory is removed whole only when nothing kept lives under it; otherwise it is
21
+ * walked and pruned entry by entry.
22
+ */
23
+ emptyProject: (ignore?: string[]) => Promise<void>;
24
+ deleteProject: () => Promise<void>;
25
+ /**
26
+ * Finish an installed template: make sure the root manifest declares its workspaces.
27
+ *
28
+ * The agent pushes every template file itself, so this is only the finalizer. The workspace
29
+ * list is written only when the manifest does not already declare one — the template ships
30
+ * `["sources/*"]`, and injecting the explicit list beside it produced a manifest carrying the
31
+ * key TWICE, valid only because JSON keeps the last one.
32
+ */
33
+ initializeProject: () => Promise<void>;
34
+ getSourceList: (pattern?: string, options?: SourceListOptions) => Promise<string[]>;
35
+ getStructuredList: (patterns: string[]) => Promise<string[]>;
36
+ readFile: (path: string, notThrow?: boolean) => Promise<string>;
37
+ readSource: (filePath: string) => Promise<LocalSourceFile>;
38
+ readPossibleSource: (filePath: string) => Promise<LocalSourceFile>;
39
+ readSources: (files: string | string[]) => Promise<LocalSourceFile[]>;
40
+ writeFile: (filePath: string, content: string) => Promise<void>;
41
+ writeSource: (file: {
42
+ path: string;
43
+ code: string;
44
+ }) => Promise<void>;
45
+ deleteFile: (filePath: string, noThrow?: boolean) => Promise<void>;
46
+ /**
47
+ * The tree, one line per file, bounded.
48
+ *
49
+ * One command rather than a listing plus a read per entry: the caller is a census over a
50
+ * repository somebody else wrote, which may hold a hundred thousand files, and one round trip
51
+ * each — over a connector, on somebody's laptop — is not a slower walk but a walk that never
52
+ * finishes.
53
+ *
54
+ * `total` counts what the walk SAW and `entries` what it returned. They differ once the limit
55
+ * is reached, and that difference is the only thing that tells a caller its picture of the
56
+ * tree is partial: a listing that reported only its own length would be indistinguishable
57
+ * from a small repository.
58
+ *
59
+ * Every entry's `path` is relative to the directory ASKED FOR, not to the project root. That
60
+ * is the contract the in-process helper and the publisher answer, and one executor answering
61
+ * a different relativity is worse than either choice: the caller is a census that follows a
62
+ * listing with a `readHead` of what it listed, and nothing downstream knows which of the
63
+ * three produced the path it is holding.
64
+ */
65
+ statTree: (dir?: string, limit?: number) => Promise<StatTreeResult>;
66
+ /**
67
+ * The first bytes of one file, decoded as text.
68
+ *
69
+ * A classification reads a head; reading whole files to do it would hold a megabyte export in
70
+ * memory to look at its first line. Whatever the decoding produces for a binary head is the
71
+ * answer — that IS the signal an entropy classification wants, and cleaning it up would hide
72
+ * the one thing the caller is asking about.
73
+ */
74
+ readHead: (filePath: string, bytes: number) => Promise<string>;
75
+ /**
76
+ * Move everything in the project root under one directory, leaving a named few where they are.
77
+ *
78
+ * What makes a converted project possible: the origin's own tree goes below, a Viable target
79
+ * is grown above it, and the two never share a path. It is the same walk `emptyProject` does —
80
+ * kept paths may be nested, a directory holding one is walked rather than moved, and a
81
+ * directory left empty by that walk does not survive as a shell.
82
+ *
83
+ * The always-keep set applies here too and for the same reason: `.git` is the developer's
84
+ * history and moving it under the origin would take the project's whole history with it,
85
+ * `.viable` is how a later session recognizes the project, and the two `.env` files hold what
86
+ * the platform cannot re-derive.
87
+ *
88
+ * Refuses a destination that already holds something. A relocation into an occupied directory
89
+ * interleaves two trees, and nothing afterwards can tell which files came from where.
90
+ */
91
+ relocate: (dir: string, keep?: string[]) => Promise<{
92
+ moved: number;
93
+ kept: string[];
94
+ }>;
95
+ /**
96
+ * Delete a directory and everything under it — the purge of a relocated origin.
97
+ *
98
+ * Refuses the project root: emptying the project is `emptyProject`, which has a keep list this
99
+ * does not, and a purge that resolved to `.` would take the developer's `.git` and `.env` with
100
+ * the origin it was asked to remove.
101
+ */
102
+ removeTree: (dir: string) => Promise<void>;
103
+ getRootPath: (subproject?: SubProject) => string;
104
+ findFilesWithEnvVars: (frontend?: boolean) => Promise<string[]>;
105
+ }
106
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/executor/files/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAErE;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;;;;;;;;OAWG;IACH,YAAY,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAClD,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAClC;;;;;;;OAOG;IACH,iBAAiB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACtC,aAAa,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IACnF,iBAAiB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IAC5D,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IAC/D,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,CAAC,CAAA;IAC1D,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,CAAC,CAAA;IAClE,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,OAAO,CAAC,eAAe,EAAE,CAAC,CAAA;IACrE,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/D,WAAW,EAAE,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACpE,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAClE;;;;;;;;;;;;;;;;;;OAkBG;IACH,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,CAAC,CAAA;IACnE;;;;;;;OAOG;IACH,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IAC9D;;;;;;;;;;;;;;;OAeG;IACH,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAA;IACtF;;;;;;OAMG;IACH,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1C,WAAW,EAAE,CAAC,UAAU,CAAC,EAAE,UAAU,KAAK,MAAM,CAAA;IAChD,oBAAoB,EAAE,CAAC,QAAQ,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;CAChE"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/executor/files/types.ts"],"names":[],"mappings":""}
@@ -1,13 +1,4 @@
1
- import { SubProject } from '@owlmeans/viable-common';
2
- /** What `readSource` and friends answer with — the shape the platform's file helpers parse. */
3
- export interface LocalSourceFile {
4
- path: string;
5
- code?: string;
6
- }
7
- export interface SourceListOptions {
8
- skipUIElements?: boolean;
9
- excludes?: string[];
10
- }
1
+ import type { LocalFileHelper } from './files/types.js';
11
2
  /**
12
3
  * The target's files, as the platform asks for them.
13
4
  *
@@ -15,46 +6,7 @@ export interface SourceListOptions {
15
6
  * the agent's remote helper sends a `SlotFileCommand` and parses one of these answers, and it has
16
7
  * no way to know whether a pod or a laptop produced it.
17
8
  */
18
- export declare const createLocalFileHelper: (projectPath: string) => {
19
- /**
20
- * Wipe the project, keeping what the caller names and what is never ours to delete.
21
- *
22
- * The kept paths are project-relative and may be NESTED — `.agents/memory/history.md` is one
23
- * the reinit pipeline passes, and `sources/web/.env` is one this helper adds itself. Matching
24
- * them against top-level `readdir` names alone is what deleted the first: `.agents` matched
25
- * nothing in the ignore set, so the whole harness tree went along with the one file the
26
- * caller had explicitly asked to preserve — and nothing failed.
27
- *
28
- * So a directory is removed whole only when nothing kept lives under it; otherwise it is
29
- * walked and pruned entry by entry.
30
- */
31
- emptyProject: (ignore?: string[]) => Promise<void>;
32
- deleteProject: () => Promise<void>;
33
- /**
34
- * Finish an installed template: make sure the root manifest declares its workspaces.
35
- *
36
- * The agent pushes every template file itself, so this is only the finalizer. The workspace
37
- * list is written only when the manifest does not already declare one — the template ships
38
- * `["sources/*"]`, and injecting the explicit list beside it produced a manifest carrying the
39
- * key TWICE, valid only because JSON keeps the last one.
40
- */
41
- initializeProject: () => Promise<void>;
42
- getSourceList: (pattern?: string, options?: SourceListOptions) => Promise<string[]>;
43
- getStructuredList: (patterns: string[]) => Promise<string[]>;
44
- readFile: (path: string, notThrow?: boolean) => Promise<string>;
45
- readSource: (filePath: string) => Promise<LocalSourceFile>;
46
- readPossibleSource: (filePath: string) => Promise<LocalSourceFile>;
47
- readSources: (files: string | string[]) => Promise<LocalSourceFile[]>;
48
- writeFile: (filePath: string, content: string) => Promise<void>;
49
- writeSource: (file: {
50
- path: string;
51
- code: string;
52
- }) => Promise<void>;
53
- deleteFile: (filePath: string, noThrow?: boolean) => Promise<void>;
54
- getRootPath: (subproject?: SubProject) => string;
55
- findFilesWithEnvVars: (frontend?: boolean) => Promise<string[]>;
56
- };
57
- export type LocalFileHelper = ReturnType<typeof createLocalFileHelper>;
9
+ export declare const createLocalFileHelper: (projectPath: string) => LocalFileHelper;
58
10
  /**
59
11
  * The same confinement, for callers outside this helper.
60
12
  *
@@ -1 +1 @@
1
- {"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../src/executor/files.ts"],"names":[],"mappings":"AAIA,OAAO,EAAwD,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAK1G,+FAA+F;AAC/F,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,iBAAiB;IAChC,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;CACpB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,gBAAiB,MAAM;IAgCrD;;;;;;;;;;;OAWG;4BAC2B,MAAM,EAAE;;IAgDtC;;;;;;;OAOG;;gDA6BQ,iBAAiB,KACzB,OAAO,CAAC,MAAM,EAAE,CAAC;kCAyCgB,MAAM,EAAE,KAAG,OAAO,CAAC,MAAM,EAAE,CAAC;qBASzC,MAAM,yBAAqB,OAAO,CAAC,MAAM,CAAC;2BAWpC,MAAM,KAAG,OAAO,CAAC,eAAe,CAAC;mCAOzB,MAAM,KAAG,OAAO,CAAC,eAAe,CAAC;yBAQ3C,MAAM,GAAG,MAAM,EAAE,KAAG,OAAO,CAAC,eAAe,EAAE,CAAC;0BAY7C,MAAM,WAAW,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;wBAMzC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAAG,OAAO,CAAC,IAAI,CAAC;2BAM3C,MAAM,wBAAmB,OAAO,CAAC,IAAI,CAAC;+BAWxC,UAAU,KAAG,MAAM;sCAIN,OAAO,KAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CA+BtE,CAAA;AAED,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAoCtE;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,QAAS,MAAM,QAAQ,MAAM,KAAG,MACU,CAAA"}
1
+ {"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../src/executor/files.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAoCvD;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,gBAAiB,MAAM,KAAG,eAkb3D,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,QAAS,MAAM,QAAQ,MAAM,KAAG,MACU,CAAA"}
@@ -1,9 +1,37 @@
1
1
  import fs from 'fs-extra';
2
- import { globby } from 'globby';
2
+ import { globHelper } from './glob.js';
3
+ import fsp from 'node:fs/promises';
3
4
  import p from 'node:path';
4
- import { CONNECT_MARKER_DIR, METADATA_DIRS, METADATA_SUFFIXES, SubProject } from '@owlmeans/viable-common';
5
- import { SandboxPathError } from './errors.js';
6
- import { subprojectDir, targetPaths } from './layout.js';
5
+ import { BINARY_PROBE_BYTES, CENSUS_MAX_ENTRIES, CENSUS_MAX_HEAD_BYTES, CONNECT_MARKER_DIR, METADATA_SUFFIXES, SOURCE_LIST_EXCLUSIONS, SubProject, censusHelper } from '@owlmeans/viable-common';
6
+ import { FileCommandRefused, SandboxPathError } from './errors.js';
7
+ import { makeLayoutHelper } from './layout.js';
8
+ import { WALK_SKIP } from './consts.local.js';
9
+ const wrapWithSlashes = (path) => path.endsWith('/') ? path : `${path}/`;
10
+ const cleanUpPath = (file, { rootPath }) => file.replace(rootPath, '').replace(/^\/+/, '');
11
+ /**
12
+ * Resolve a caller-supplied project path to the absolute path it names inside the project.
13
+ *
14
+ * Paths arrive from the platform in both shapes — root-relative (`sources/web/src/app.tsx`) and
15
+ * already absolute — so **every** fs call has to apply the same normalization, not just the read
16
+ * side. Concatenating an absolute path onto the root instead builds a shadow tree: the write
17
+ * reports success, a later read of the same name resolves to the untouched original, and the
18
+ * change looks like it was silently ignored.
19
+ *
20
+ * The refusal is confinement, not sanitization: only a fully resolved path can be compared to the
21
+ * root, and a `..`-to-`.` replace at one caller is a guard on that caller rather than on the tree.
22
+ */
23
+ const resolveInProject = (file, { rootPath }) => {
24
+ const resolved = p.resolve(rootPath, cleanUpPath(file, { rootPath }));
25
+ const root = p.resolve(rootPath);
26
+ if (resolved !== root && !resolved.startsWith(wrapWithSlashes(root))) {
27
+ throw new SandboxPathError(file);
28
+ }
29
+ return resolved;
30
+ };
31
+ const normalizePaths = (files, { rootPath }) => {
32
+ const fileList = Array.isArray(files) ? files : [files];
33
+ return fileList.map(file => file.startsWith('/') ? cleanUpPath(file, { rootPath }) : file);
34
+ };
7
35
  /**
8
36
  * The target's files, as the platform asks for them.
9
37
  *
@@ -13,11 +41,39 @@ import { subprojectDir, targetPaths } from './layout.js';
13
41
  */
14
42
  export const createLocalFileHelper = (projectPath) => {
15
43
  const rootPath = wrapWithSlashes(p.resolve(projectPath));
44
+ /**
45
+ * Whether a file is binary, by git's own heuristic: a NUL byte near the beginning.
46
+ *
47
+ * Asked only where {@link binaryByExtension} says nothing, and that ordering is the contract
48
+ * rather than an optimization: a probe alone answers `false` for a small `.ico` with no NUL in its
49
+ * first bytes, so a census run here and the same census run in the slot disagreed about one file
50
+ * of one repository — with the tail table consulted first, all three executors agree.
51
+ */
52
+ const isBinary = async (path, size) => {
53
+ if (size < 1)
54
+ return false;
55
+ const handle = await fsp.open(path, 'r').catch(() => null);
56
+ if (handle == null)
57
+ return false;
58
+ try {
59
+ const length = Math.min(size, BINARY_PROBE_BYTES);
60
+ const buffer = Buffer.alloc(length);
61
+ const { bytesRead } = await handle.read(buffer, 0, length, 0);
62
+ return buffer.subarray(0, bytesRead).includes(0);
63
+ }
64
+ catch {
65
+ return false;
66
+ }
67
+ finally {
68
+ await handle.close();
69
+ }
70
+ };
16
71
  // Every path below asks the tree which layout it holds, per call, rather than closing over one
17
72
  // answer: a project is re-initialized in place, and this helper outlives that. `packages/` for
18
73
  // a target generated before the move, `sources/` for one generated after it.
19
- const layout = () => targetPaths(rootPath);
20
- const dirOf = (role) => subprojectDir(rootPath, role);
74
+ const targetLayout = makeLayoutHelper(rootPath);
75
+ const layout = () => targetLayout.targetPaths();
76
+ const dirOf = (role) => targetLayout.subprojectDir(role);
21
77
  /**
22
78
  * What a wipe must never take, whatever the caller asked to keep.
23
79
  *
@@ -39,31 +95,31 @@ export const createLocalFileHelper = (projectPath) => {
39
95
  `${layout().dir}/${dirOf(SubProject.Web)}/.env`,
40
96
  '.git',
41
97
  ];
98
+ /**
99
+ * The two questions a wipe and a relocation both ask of every entry they walk.
100
+ *
101
+ * Shared because they are the same walk with a different verb: one removes what it passes and
102
+ * the other moves it, and both must leave a nested keep — `.agents/memory/history.md`,
103
+ * `sources/web/.env` — where it is. Matching kept paths against top-level names alone is what
104
+ * once deleted a whole harness tree along with the one file the caller had asked to preserve.
105
+ */
106
+ const keepGuards = (entries) => {
107
+ const keep = new Set(entries.map(entry => entry.replace(/^\.?\//, '').replace(/\/+$/, '')));
108
+ const holdsKept = (rel) => {
109
+ const prefix = `${rel}/`;
110
+ for (const entry of keep) {
111
+ if (entry.startsWith(prefix))
112
+ return true;
113
+ }
114
+ return false;
115
+ };
116
+ return { keep, isKept: (rel) => keep.has(rel), holdsKept };
117
+ };
42
118
  const helper = {
43
- /**
44
- * Wipe the project, keeping what the caller names and what is never ours to delete.
45
- *
46
- * The kept paths are project-relative and may be NESTED — `.agents/memory/history.md` is one
47
- * the reinit pipeline passes, and `sources/web/.env` is one this helper adds itself. Matching
48
- * them against top-level `readdir` names alone is what deleted the first: `.agents` matched
49
- * nothing in the ignore set, so the whole harness tree went along with the one file the
50
- * caller had explicitly asked to preserve — and nothing failed.
51
- *
52
- * So a directory is removed whole only when nothing kept lives under it; otherwise it is
53
- * walked and pruned entry by entry.
54
- */
55
119
  emptyProject: async (ignore) => {
56
- const keep = new Set([...(ignore ?? []), ...alwaysKeep()].map(entry => entry.replace(/^\.?\//, '')));
57
- const isKept = (rel) => keep.has(rel);
58
- // Something kept lives below here, so this directory has to be walked rather than removed.
59
- const holdsKept = (rel) => {
60
- const prefix = `${rel}/`;
61
- for (const entry of keep) {
62
- if (entry.startsWith(prefix))
63
- return true;
64
- }
65
- return false;
66
- };
120
+ // `holdsKept` says something kept lives below here, so this directory has to be walked
121
+ // rather than removed.
122
+ const { isKept, holdsKept } = keepGuards([...(ignore ?? []), ...alwaysKeep()]);
67
123
  const prune = async (rel) => {
68
124
  const dir = rel === '' ? rootPath : p.join(rootPath, rel);
69
125
  const entries = await fs.readdir(dir);
@@ -93,14 +149,6 @@ export const createLocalFileHelper = (projectPath) => {
93
149
  deleteProject: async () => {
94
150
  await helper.emptyProject();
95
151
  },
96
- /**
97
- * Finish an installed template: make sure the root manifest declares its workspaces.
98
- *
99
- * The agent pushes every template file itself, so this is only the finalizer. The workspace
100
- * list is written only when the manifest does not already declare one — the template ships
101
- * `["sources/*"]`, and injecting the explicit list beside it produced a manifest carrying the
102
- * key TWICE, valid only because JSON keeps the last one.
103
- */
104
152
  initializeProject: async () => {
105
153
  const manifestPath = `${rootPath}package.json`;
106
154
  if (await fs.pathExists(manifestPath) === false) {
@@ -127,7 +175,7 @@ ${present.map(path => ` "${path}"`).join(',\n')}
127
175
  getSourceList: async (pattern = `${rootPath}**/*`, options = {}) => {
128
176
  const { skipUIElements = false, excludes = [] } = options;
129
177
  pattern = pattern.startsWith(rootPath) ? pattern : p.join(rootPath, pattern);
130
- const files = await globby([
178
+ const files = await globHelper.list([
131
179
  pattern,
132
180
  `!${rootPath}**/rollup.config.js`,
133
181
  `!${rootPath}**/rollup.build.mjs`,
@@ -151,9 +199,13 @@ ${present.map(path => ` "${path}"`).join(',\n')}
151
199
  `!${rootPath}**/build/**/*`,
152
200
  `!${rootPath}**/node_modules/**/*`,
153
201
  `!${rootPath}spectator-log/**/*`,
154
- // The target's own documentation and agent harness, plus the co-located metadata files
202
+ // The target's own documentation and agent harness, and the origin tree a conversion
203
+ // keeps beside the generated application — ONE constant, shared with the publisher and
204
+ // the library, because three copies of this list is three chances for one of them to
205
+ // keep listing the origin, and the symptom is a coder helper reading a foreign
206
+ // framework's files as if they were the target's. Plus the co-located metadata files
155
207
  // (*.spec.md, *.ux.md, *.ui.md).
156
- ...METADATA_DIRS.map(dir => `!${rootPath}${dir}/**/*`),
208
+ ...SOURCE_LIST_EXCLUSIONS.map(dir => `!${rootPath}${dir}/**/*`),
157
209
  ...METADATA_SUFFIXES.map(suffix => `!${rootPath}**/*${suffix}`),
158
210
  ...excludes.map(exclude => `!${rootPath}${exclude}`),
159
211
  ...(skipUIElements
@@ -164,7 +216,7 @@ ${present.map(path => ` "${path}"`).join(',\n')}
164
216
  },
165
217
  getStructuredList: async (patterns) => {
166
218
  const resolved = patterns.map(pattern => pattern.startsWith(rootPath) ? pattern : p.join(rootPath, pattern));
167
- const files = await globby(resolved);
219
+ const files = await globHelper.list(resolved);
168
220
  return files.map(file => cleanUpPath(file, { rootPath }));
169
221
  },
170
222
  readFile: async (path, notThrow = false) => {
@@ -220,6 +272,137 @@ ${present.map(path => ` "${path}"`).join(',\n')}
220
272
  }
221
273
  }
222
274
  },
275
+ statTree: async (dir, limit) => {
276
+ const start = dir != null && dir !== ''
277
+ ? resolveInProject(dir, { rootPath })
278
+ : p.resolve(rootPath);
279
+ const cap = limit != null && limit > 0 ? limit : CENSUS_MAX_ENTRIES;
280
+ const entries = [];
281
+ let total = 0;
282
+ const walk = async (absolute) => {
283
+ const listed = await fs.readdir(absolute, { withFileTypes: true }).catch(() => []);
284
+ for (const entry of listed) {
285
+ if (WALK_SKIP.has(entry.name))
286
+ continue;
287
+ const child = p.join(absolute, entry.name);
288
+ if (entry.isDirectory()) {
289
+ await walk(child);
290
+ continue;
291
+ }
292
+ // Symlinks and devices are counted by nobody: a census describes files a model could
293
+ // read, and following a link would leave the tree it was asked about.
294
+ if (!entry.isFile())
295
+ continue;
296
+ total += 1;
297
+ if (entries.length >= cap)
298
+ continue;
299
+ const stat = await fs.stat(child).catch(() => null);
300
+ if (stat == null)
301
+ continue;
302
+ const rel = p.relative(start, child);
303
+ const known = censusHelper.binaryByExtension(rel);
304
+ entries.push({
305
+ path: rel,
306
+ bytes: stat.size,
307
+ binary: known ?? await isBinary(child, stat.size),
308
+ modifiedAt: stat.mtime.toISOString(),
309
+ });
310
+ }
311
+ };
312
+ await walk(start);
313
+ return { entries, truncated: total > entries.length, total };
314
+ },
315
+ readHead: async (filePath, bytes) => {
316
+ // Confinement first, and it is the ONE thing here that still raises: a path resolving
317
+ // outside the project is a caller's bug, never an entry of a tree.
318
+ const path = resolveInProject(filePath, { rootPath });
319
+ // Everything else answers `''`. A census hands this whatever a walk over somebody else's
320
+ // tree produced — a directory, a symlink, a file deleted between the listing and the read —
321
+ // and one unreadable entry must not fail the pass that is classifying the rest. A directory
322
+ // is the case that made this necessary: `open` succeeds on one and the read then throws
323
+ // EISDIR, so the tolerant answer has to cover the read as well as the open.
324
+ const stat = await fs.stat(path).catch(() => null);
325
+ if (stat == null || !stat.isFile())
326
+ return '';
327
+ const length = Math.min(Math.max(bytes, 0), stat.size, CENSUS_MAX_HEAD_BYTES);
328
+ if (length < 1)
329
+ return '';
330
+ const handle = await fsp.open(path, 'r').catch(() => null);
331
+ if (handle == null)
332
+ return '';
333
+ try {
334
+ const buffer = Buffer.alloc(length);
335
+ const { bytesRead } = await handle.read(buffer, 0, length, 0);
336
+ return buffer.subarray(0, bytesRead).toString('utf-8');
337
+ }
338
+ catch {
339
+ return '';
340
+ }
341
+ finally {
342
+ await handle.close();
343
+ }
344
+ },
345
+ relocate: async (dir, keep) => {
346
+ // Resolved FIRST, and the project-relative name derived back from the resolved path. A
347
+ // destination arrives in both shapes like every other path a caller sends, and normalizing
348
+ // the string ahead of the confinement is what builds the shadow tree `resolveInProject`
349
+ // exists to prevent: an absolute destination lost its leading slash, resolved under the root
350
+ // a second time, and the keep set then no longer matched the top-level name it had created.
351
+ // It also subsumes `.`, `''` and a trailing slash, which all resolve to the root itself.
352
+ const destinationPath = resolveInProject(dir ?? '', { rootPath });
353
+ const destination = p.relative(p.resolve(rootPath), destinationPath);
354
+ if (destination === '') {
355
+ throw new FileCommandRefused('relocate needs a directory to move the project into');
356
+ }
357
+ if (await fs.pathExists(destinationPath)) {
358
+ const existing = await fs.readdir(destinationPath);
359
+ if (existing.length > 0) {
360
+ throw new FileCommandRefused(`relocation target is not empty: ${destination}`);
361
+ }
362
+ }
363
+ // The destination is kept like anything else, which is what stops the walk moving it into
364
+ // itself — a keep is checked before a move, and this one always matches first.
365
+ const { keep: kept, isKept, holdsKept } = keepGuards([destination, ...(keep ?? []), ...alwaysKeep()]);
366
+ const move = async (rel) => {
367
+ const from = rel === '' ? rootPath : p.join(rootPath, rel);
368
+ const entries = await fs.readdir(from);
369
+ let moved = 0;
370
+ // Serial: a relocation is one operation from the caller's point of view, and a half-moved
371
+ // tree is neither the origin nor a target.
372
+ for (const name of entries) {
373
+ const child = rel === '' ? name : `${rel}/${name}`;
374
+ if (isKept(child))
375
+ continue;
376
+ if (holdsKept(child)) {
377
+ moved += await move(child);
378
+ const remaining = await fs.readdir(p.join(rootPath, child));
379
+ if (remaining.length === 0)
380
+ await fs.remove(p.join(rootPath, child));
381
+ continue;
382
+ }
383
+ const to = p.join(destinationPath, child);
384
+ await fs.ensureDir(p.dirname(to));
385
+ await fs.move(p.join(rootPath, child), to);
386
+ moved += 1;
387
+ }
388
+ return moved;
389
+ };
390
+ await fs.ensureDir(destinationPath);
391
+ const moved = await move('');
392
+ // The whole keep set, exactly as the publisher and the library helper answer it — this is a
393
+ // report of what the relocation was told to leave alone, not a listing of what happens to be
394
+ // on disk afterwards. Filtering it by existence made the same relocation answer differently
395
+ // here than in a slot, over paths (a project without local branding has no web `.env`) whose
396
+ // absence says nothing about the move.
397
+ return { moved, kept: [...kept] };
398
+ },
399
+ removeTree: async (dir) => {
400
+ const path = resolveInProject(dir, { rootPath });
401
+ if (path === p.resolve(rootPath)) {
402
+ throw new FileCommandRefused('removeTree cannot delete the project root');
403
+ }
404
+ await fs.remove(path);
405
+ },
223
406
  getRootPath: (subproject) => subproject == null
224
407
  ? rootPath
225
408
  : p.join(rootPath, layout().dir, dirOf(subproject)),
@@ -229,7 +412,7 @@ ${present.map(path => ` "${path}"`).join(',\n')}
229
412
  : frontend === false
230
413
  ? `${rootPath}${layout().dir}/${dirOf(SubProject.Backend)}/src/**/*.ts`
231
414
  : `${rootPath}**/*.ts`;
232
- const files = await globby([
415
+ const files = await globHelper.list([
233
416
  searchPattern,
234
417
  `!${rootPath}**/node_modules/**/*`,
235
418
  `!${rootPath}**/owlmeans.ts`,
@@ -251,32 +434,6 @@ ${present.map(path => ` "${path}"`).join(',\n')}
251
434
  };
252
435
  return helper;
253
436
  };
254
- const wrapWithSlashes = (path) => path.endsWith('/') ? path : `${path}/`;
255
- const cleanUpPath = (file, { rootPath }) => file.replace(rootPath, '').replace(/^\/+/, '');
256
- /**
257
- * Resolve a caller-supplied project path to the absolute path it names inside the project.
258
- *
259
- * Paths arrive from the platform in both shapes — root-relative (`sources/web/src/app.tsx`) and
260
- * already absolute — so **every** fs call has to apply the same normalization, not just the read
261
- * side. Concatenating an absolute path onto the root instead builds a shadow tree: the write
262
- * reports success, a later read of the same name resolves to the untouched original, and the
263
- * change looks like it was silently ignored.
264
- *
265
- * The refusal is confinement, not sanitization: only a fully resolved path can be compared to the
266
- * root, and a `..`-to-`.` replace at one caller is a guard on that caller rather than on the tree.
267
- */
268
- const resolveInProject = (file, { rootPath }) => {
269
- const resolved = p.resolve(rootPath, cleanUpPath(file, { rootPath }));
270
- const root = p.resolve(rootPath);
271
- if (resolved !== root && !resolved.startsWith(wrapWithSlashes(root))) {
272
- throw new SandboxPathError(file);
273
- }
274
- return resolved;
275
- };
276
- const normalizePaths = (files, { rootPath }) => {
277
- const fileList = Array.isArray(files) ? files : [files];
278
- return fileList.map(file => file.startsWith('/') ? cleanUpPath(file, { rootPath }) : file);
279
- };
280
437
  /**
281
438
  * The same confinement, for callers outside this helper.
282
439
  *
@@ -1 +1 @@
1
- {"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/executor/files.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/executor/files.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { SlotGitCommand } from '@owlmeans/viable-common';
2
+ /**
3
+ * Git in ONE local project directory, answered the way the publisher answers a slot's git
4
+ * commands. Every dispatch is serialized per directory: git takes `.git/*.lock` files for the
5
+ * duration of a write, so two concurrent operations on one repository fail.
6
+ */
7
+ export interface LocalGitHelper {
8
+ /**
9
+ * Answer one `SlotGitCommand` against the directory. The three that touch a remote, and a clone,
10
+ * are refused as TEXT in the shape their caller parses — a policy, not a failure.
11
+ */
12
+ dispatchGitCommand: (command: SlotGitCommand, args?: Record<string, any>) => Promise<Record<string, unknown>>;
13
+ /**
14
+ * Make the directory a repository the platform can work in, and change nothing else: no baseline
15
+ * commit, and an identity only when there is none.
16
+ */
17
+ ensureGitRepo: () => Promise<void>;
18
+ }
19
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/executor/git/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAE7D;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,kBAAkB,EAAE,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IAC7G;;;OAGG;IACH,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CACnC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map