@treeseed/core 0.1.2

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 (384) hide show
  1. package/README.md +145 -0
  2. package/dist/agents/index.js +5 -0
  3. package/dist/agents/registry-helper.js +14 -0
  4. package/dist/agents/registry.js +88 -0
  5. package/dist/components/DevWatchReload.astro +45 -0
  6. package/dist/components/SiteTitle.astro +51 -0
  7. package/dist/components/content/ContentStatusLegend.astro +18 -0
  8. package/dist/components/content/StatusBadge.astro +11 -0
  9. package/dist/components/docs/BookFontControls.astro +180 -0
  10. package/dist/components/docs/DesktopSidebarToggle.astro +88 -0
  11. package/dist/components/docs/DownloadBook.astro +34 -0
  12. package/dist/components/docs/Footer.astro +196 -0
  13. package/dist/components/docs/Header.astro +150 -0
  14. package/dist/components/docs/PageFrame.astro +260 -0
  15. package/dist/components/docs/PageSidebar.astro +63 -0
  16. package/dist/components/docs/PageTitle.astro +39 -0
  17. package/dist/components/docs/Sidebar.astro +41 -0
  18. package/dist/components/docs/ThemeSelect.astro +3 -0
  19. package/dist/components/forms/ContactForm.astro +234 -0
  20. package/dist/components/forms/FooterSubscribeForm.astro +189 -0
  21. package/dist/components/site/BookList.astro +27 -0
  22. package/dist/components/site/CTASection.astro +24 -0
  23. package/dist/components/site/ChronicleList.astro +33 -0
  24. package/dist/components/site/Hero.astro +18 -0
  25. package/dist/components/site/NotesList.astro +18 -0
  26. package/dist/components/site/PathCard.astro +16 -0
  27. package/dist/components/site/ProfileList.astro +30 -0
  28. package/dist/components/site/SectionIntro.astro +9 -0
  29. package/dist/components/site/StageBanner.astro +8 -0
  30. package/dist/components/site/TrustCallout.astro +9 -0
  31. package/dist/components/starlight.js +6 -0
  32. package/dist/config.js +8 -0
  33. package/dist/content-config.js +9 -0
  34. package/dist/content.js +230 -0
  35. package/dist/contracts.d.ts +130 -0
  36. package/dist/contracts.js +0 -0
  37. package/dist/deploy/config.d.ts +4 -0
  38. package/dist/deploy/config.js +154 -0
  39. package/dist/deploy/runtime.js +77 -0
  40. package/dist/env.yaml +322 -0
  41. package/dist/environment.d.ts +130 -0
  42. package/dist/environment.js +324 -0
  43. package/dist/index.js +81 -0
  44. package/dist/layouts/AuthoredEntryLayout.astro +87 -0
  45. package/dist/layouts/BookLayout.astro +35 -0
  46. package/dist/layouts/BridgeLayout.astro +11 -0
  47. package/dist/layouts/ContentLayout.astro +24 -0
  48. package/dist/layouts/MainLayout.astro +203 -0
  49. package/dist/layouts/NoteLayout.astro +26 -0
  50. package/dist/layouts/ProfileLayout.astro +81 -0
  51. package/dist/middleware/starlightRouteData.js +45 -0
  52. package/dist/pages/404.astro +29 -0
  53. package/dist/pages/[slug].astro +30 -0
  54. package/dist/pages/agents/[slug].astro +29 -0
  55. package/dist/pages/agents/index.astro +27 -0
  56. package/dist/pages/api/form/submit.js +14 -0
  57. package/dist/pages/books/[slug].astro +19 -0
  58. package/dist/pages/books/index.astro +28 -0
  59. package/dist/pages/contact.astro +27 -0
  60. package/dist/pages/feed.xml.js +34 -0
  61. package/dist/pages/index.astro +290 -0
  62. package/dist/pages/notes/[slug].astro +19 -0
  63. package/dist/pages/notes/index.astro +21 -0
  64. package/dist/pages/objectives/[slug].astro +31 -0
  65. package/dist/pages/objectives/index.astro +30 -0
  66. package/dist/pages/people/[slug].astro +29 -0
  67. package/dist/pages/people/index.astro +28 -0
  68. package/dist/pages/questions/[slug].astro +31 -0
  69. package/dist/pages/questions/index.astro +30 -0
  70. package/dist/plugin-default.js +4 -0
  71. package/dist/plugins/builtin/default-plugin.d.ts +21 -0
  72. package/dist/plugins/builtin/default-plugin.js +32 -0
  73. package/dist/plugins/constants.d.ts +21 -0
  74. package/dist/plugins/constants.js +28 -0
  75. package/dist/plugins/plugin.d.ts +42 -0
  76. package/dist/plugins/plugin.js +6 -0
  77. package/dist/plugins/runtime.d.ts +31 -0
  78. package/dist/plugins/runtime.js +120 -0
  79. package/dist/scripts/aggregate-book.js +112 -0
  80. package/dist/scripts/assert-release-tag-version.js +21 -0
  81. package/dist/scripts/build-dist.js +384 -0
  82. package/dist/scripts/build-tenant-worker.js +36 -0
  83. package/dist/scripts/package-tools.js +88 -0
  84. package/dist/scripts/patch-starlight-content-path.js +172 -0
  85. package/dist/scripts/paths.js +11 -0
  86. package/dist/scripts/publish-package.js +20 -0
  87. package/dist/scripts/release-verify.js +52 -0
  88. package/dist/scripts/run-fixture-astro-command.js +21 -0
  89. package/dist/scripts/tenant-astro-command.js +3 -0
  90. package/dist/scripts/tenant-build.js +16 -0
  91. package/dist/scripts/tenant-check.js +7 -0
  92. package/dist/scripts/test-smoke.js +105 -0
  93. package/dist/server.js +53 -0
  94. package/dist/site-resources.d.ts +29 -0
  95. package/dist/site-resources.js +127 -0
  96. package/dist/site.js +313 -0
  97. package/dist/styles/global.css +683 -0
  98. package/dist/styles/prose.css +89 -0
  99. package/dist/styles/tokens.css +24 -0
  100. package/dist/tenant/bridge.js +5 -0
  101. package/dist/tenant/config.d.ts +9 -0
  102. package/dist/tenant/config.js +124 -0
  103. package/dist/tenant/runtime-config.js +20 -0
  104. package/dist/tsconfigs/strict.json +3 -0
  105. package/dist/types/agents.d.ts +1 -0
  106. package/dist/types/agents.js +1 -0
  107. package/dist/types/astro-build.d.js +0 -0
  108. package/dist/types/cloudflare-sockets.d.js +0 -0
  109. package/dist/types/cloudflare.d.ts +1 -0
  110. package/dist/types/cloudflare.js +1 -0
  111. package/dist/types/forms.js +4 -0
  112. package/dist/utils/agents/adapters/execution.js +90 -0
  113. package/dist/utils/agents/adapters/mutations.js +30 -0
  114. package/dist/utils/agents/adapters/notification.js +16 -0
  115. package/dist/utils/agents/adapters/repository.js +61 -0
  116. package/dist/utils/agents/adapters/research.js +25 -0
  117. package/dist/utils/agents/adapters/verification.js +62 -0
  118. package/dist/utils/agents/cli-tools.js +5 -0
  119. package/dist/utils/agents/contracts/messages.d.ts +88 -0
  120. package/dist/utils/agents/contracts/messages.js +138 -0
  121. package/dist/utils/agents/contracts/run.d.ts +20 -0
  122. package/dist/utils/agents/contracts/run.js +0 -0
  123. package/dist/utils/agents/runtime-types.d.ts +117 -0
  124. package/dist/utils/agents/runtime-types.js +4 -0
  125. package/dist/utils/books-data.js +82 -0
  126. package/dist/utils/content-status.js +38 -0
  127. package/dist/utils/forms/config.js +87 -0
  128. package/dist/utils/forms/constants.js +27 -0
  129. package/dist/utils/forms/contact-submissions-local.js +19 -0
  130. package/dist/utils/forms/contact-submissions.js +72 -0
  131. package/dist/utils/forms/crypto.js +64 -0
  132. package/dist/utils/forms/guard.js +76 -0
  133. package/dist/utils/forms/http.js +51 -0
  134. package/dist/utils/forms/provider-core.js +88 -0
  135. package/dist/utils/forms/routing-core.js +7 -0
  136. package/dist/utils/forms/routing.js +13 -0
  137. package/dist/utils/forms/runtime-core.js +17 -0
  138. package/dist/utils/forms/runtime.js +27 -0
  139. package/dist/utils/forms/service-core.js +256 -0
  140. package/dist/utils/forms/service.js +55 -0
  141. package/dist/utils/forms/session.js +57 -0
  142. package/dist/utils/forms/smtp-cloudflare.js +107 -0
  143. package/dist/utils/forms/smtp-node.js +27 -0
  144. package/dist/utils/forms/smtp.js +10 -0
  145. package/dist/utils/forms/subscribers-local.js +21 -0
  146. package/dist/utils/forms/subscribers.js +53 -0
  147. package/dist/utils/forms/turnstile.js +31 -0
  148. package/dist/utils/forms/validation.js +58 -0
  149. package/dist/utils/hub-content.js +28 -0
  150. package/dist/utils/plugin-runtime.js +158 -0
  151. package/dist/utils/routes.js +17 -0
  152. package/dist/utils/seo.js +4 -0
  153. package/dist/utils/site-config-schema.js +282 -0
  154. package/dist/utils/site-config.js +122 -0
  155. package/dist/utils/starlight-nav.js +62 -0
  156. package/dist/utils/theme.js +49 -0
  157. package/dist/vendor/starlight/components/AnchorHeading.astro +53 -0
  158. package/dist/vendor/starlight/components/Banner.astro +23 -0
  159. package/dist/vendor/starlight/components/ContentNotice.astro +33 -0
  160. package/dist/vendor/starlight/components/ContentPanel.astro +27 -0
  161. package/dist/vendor/starlight/components/DraftContentNotice.astro +5 -0
  162. package/dist/vendor/starlight/components/EditLink.astro +28 -0
  163. package/dist/vendor/starlight/components/FallbackContentNotice.astro +5 -0
  164. package/dist/vendor/starlight/components/Footer.astro +61 -0
  165. package/dist/vendor/starlight/components/Head.astro +5 -0
  166. package/dist/vendor/starlight/components/Header.astro +94 -0
  167. package/dist/vendor/starlight/components/Hero.astro +143 -0
  168. package/dist/vendor/starlight/components/Icons.js +121 -0
  169. package/dist/vendor/starlight/components/LanguageSelect.astro +57 -0
  170. package/dist/vendor/starlight/components/LastUpdated.astro +14 -0
  171. package/dist/vendor/starlight/components/MarkdownContent.astro +5 -0
  172. package/dist/vendor/starlight/components/MobileMenuFooter.astro +35 -0
  173. package/dist/vendor/starlight/components/MobileMenuToggle.astro +107 -0
  174. package/dist/vendor/starlight/components/MobileTableOfContents.astro +151 -0
  175. package/dist/vendor/starlight/components/Page.astro +126 -0
  176. package/dist/vendor/starlight/components/PageFrame.astro +97 -0
  177. package/dist/vendor/starlight/components/PageSidebar.astro +59 -0
  178. package/dist/vendor/starlight/components/PageTitle.astro +17 -0
  179. package/dist/vendor/starlight/components/Pagination.astro +79 -0
  180. package/dist/vendor/starlight/components/Search.astro +488 -0
  181. package/dist/vendor/starlight/components/Select.astro +99 -0
  182. package/dist/vendor/starlight/components/Sidebar.astro +15 -0
  183. package/dist/vendor/starlight/components/SidebarPersistState.js +43 -0
  184. package/dist/vendor/starlight/components/SidebarPersister.astro +78 -0
  185. package/dist/vendor/starlight/components/SidebarRestorePoint.astro +12 -0
  186. package/dist/vendor/starlight/components/SidebarSublist.astro +154 -0
  187. package/dist/vendor/starlight/components/SiteTitle.astro +59 -0
  188. package/dist/vendor/starlight/components/SkipLink.astro +26 -0
  189. package/dist/vendor/starlight/components/SocialIcons.astro +32 -0
  190. package/dist/vendor/starlight/components/StarlightPage.astro +17 -0
  191. package/dist/vendor/starlight/components/TableOfContents/TableOfContentsList.astro +79 -0
  192. package/dist/vendor/starlight/components/TableOfContents/starlight-toc.js +93 -0
  193. package/dist/vendor/starlight/components/TableOfContents.astro +18 -0
  194. package/dist/vendor/starlight/components/ThemeProvider.astro +38 -0
  195. package/dist/vendor/starlight/components/ThemeSelect.astro +73 -0
  196. package/dist/vendor/starlight/components/TwoColumnContent.astro +54 -0
  197. package/dist/vendor/starlight/components.js +26 -0
  198. package/dist/vendor/starlight/constants.js +4 -0
  199. package/dist/vendor/starlight/expressive-code.d.js +1 -0
  200. package/dist/vendor/starlight/global.d.js +0 -0
  201. package/dist/vendor/starlight/i18n.d.js +1 -0
  202. package/dist/vendor/starlight/index.js +119 -0
  203. package/dist/vendor/starlight/integrations/asides-error.js +12 -0
  204. package/dist/vendor/starlight/integrations/asides.js +179 -0
  205. package/dist/vendor/starlight/integrations/code-rtl-support.js +21 -0
  206. package/dist/vendor/starlight/integrations/expressive-code/hast.d.js +1 -0
  207. package/dist/vendor/starlight/integrations/expressive-code/index.js +63 -0
  208. package/dist/vendor/starlight/integrations/expressive-code/preprocessor.js +92 -0
  209. package/dist/vendor/starlight/integrations/expressive-code/themes/night-owl-dark.jsonc +1796 -0
  210. package/dist/vendor/starlight/integrations/expressive-code/themes/night-owl-dark.jsonc.js +1 -0
  211. package/dist/vendor/starlight/integrations/expressive-code/themes/night-owl-light.jsonc +1695 -0
  212. package/dist/vendor/starlight/integrations/expressive-code/themes/night-owl-light.jsonc.js +1 -0
  213. package/dist/vendor/starlight/integrations/expressive-code/theming.js +62 -0
  214. package/dist/vendor/starlight/integrations/expressive-code/translations.js +29 -0
  215. package/dist/vendor/starlight/integrations/heading-links.js +61 -0
  216. package/dist/vendor/starlight/integrations/pagefind.js +43 -0
  217. package/dist/vendor/starlight/integrations/remark-rehype.js +68 -0
  218. package/dist/vendor/starlight/integrations/shared/absolutePathToLang.js +15 -0
  219. package/dist/vendor/starlight/integrations/shared/localeToLang.js +9 -0
  220. package/dist/vendor/starlight/integrations/shared/slugToLocale.js +10 -0
  221. package/dist/vendor/starlight/integrations/sitemap.js +20 -0
  222. package/dist/vendor/starlight/integrations/virtual-user-config.js +110 -0
  223. package/dist/vendor/starlight/integrations/vite-layer-order.js +42 -0
  224. package/dist/vendor/starlight/internal.js +6 -0
  225. package/dist/vendor/starlight/loaders.js +36 -0
  226. package/dist/vendor/starlight/locals.d.js +0 -0
  227. package/dist/vendor/starlight/locals.js +30 -0
  228. package/dist/vendor/starlight/package.json +231 -0
  229. package/dist/vendor/starlight/package.json.js +248 -0
  230. package/dist/vendor/starlight/props.js +0 -0
  231. package/dist/vendor/starlight/route-data.js +6 -0
  232. package/dist/vendor/starlight/routes/common.astro +23 -0
  233. package/dist/vendor/starlight/routes/ssr/404.astro +7 -0
  234. package/dist/vendor/starlight/routes/ssr/index.astro +14 -0
  235. package/dist/vendor/starlight/routes/static/404.astro +7 -0
  236. package/dist/vendor/starlight/routes/static/index.astro +12 -0
  237. package/dist/vendor/starlight/schema.js +102 -0
  238. package/dist/vendor/starlight/schemas/badge.js +26 -0
  239. package/dist/vendor/starlight/schemas/components.js +235 -0
  240. package/dist/vendor/starlight/schemas/expressiveCode.js +12 -0
  241. package/dist/vendor/starlight/schemas/favicon.js +33 -0
  242. package/dist/vendor/starlight/schemas/head.js +32 -0
  243. package/dist/vendor/starlight/schemas/hero.js +57 -0
  244. package/dist/vendor/starlight/schemas/i18n.js +101 -0
  245. package/dist/vendor/starlight/schemas/icon.js +7 -0
  246. package/dist/vendor/starlight/schemas/logo.js +24 -0
  247. package/dist/vendor/starlight/schemas/pagefind.js +108 -0
  248. package/dist/vendor/starlight/schemas/prevNextLink.js +14 -0
  249. package/dist/vendor/starlight/schemas/sidebar.js +80 -0
  250. package/dist/vendor/starlight/schemas/site-title.js +19 -0
  251. package/dist/vendor/starlight/schemas/social.js +19 -0
  252. package/dist/vendor/starlight/schemas/tableOfContents.js +16 -0
  253. package/dist/vendor/starlight/style/anchor-links.css +131 -0
  254. package/dist/vendor/starlight/style/asides.css +51 -0
  255. package/dist/vendor/starlight/style/layers.css +1 -0
  256. package/dist/vendor/starlight/style/markdown.css +253 -0
  257. package/dist/vendor/starlight/style/print.css +175 -0
  258. package/dist/vendor/starlight/style/props.css +188 -0
  259. package/dist/vendor/starlight/style/reset.css +52 -0
  260. package/dist/vendor/starlight/style/util.css +63 -0
  261. package/dist/vendor/starlight/translations/ar.json +30 -0
  262. package/dist/vendor/starlight/translations/ar.json.js +32 -0
  263. package/dist/vendor/starlight/translations/ca.json +43 -0
  264. package/dist/vendor/starlight/translations/ca.json.js +45 -0
  265. package/dist/vendor/starlight/translations/cs.json +43 -0
  266. package/dist/vendor/starlight/translations/cs.json.js +45 -0
  267. package/dist/vendor/starlight/translations/da.json +30 -0
  268. package/dist/vendor/starlight/translations/da.json.js +32 -0
  269. package/dist/vendor/starlight/translations/de.json +30 -0
  270. package/dist/vendor/starlight/translations/de.json.js +32 -0
  271. package/dist/vendor/starlight/translations/el.json +30 -0
  272. package/dist/vendor/starlight/translations/el.json.js +32 -0
  273. package/dist/vendor/starlight/translations/en.json +30 -0
  274. package/dist/vendor/starlight/translations/en.json.js +32 -0
  275. package/dist/vendor/starlight/translations/es.json +43 -0
  276. package/dist/vendor/starlight/translations/es.json.js +45 -0
  277. package/dist/vendor/starlight/translations/fa.json +30 -0
  278. package/dist/vendor/starlight/translations/fa.json.js +32 -0
  279. package/dist/vendor/starlight/translations/fi.json +30 -0
  280. package/dist/vendor/starlight/translations/fi.json.js +32 -0
  281. package/dist/vendor/starlight/translations/fr.json +33 -0
  282. package/dist/vendor/starlight/translations/fr.json.js +35 -0
  283. package/dist/vendor/starlight/translations/gl.json +43 -0
  284. package/dist/vendor/starlight/translations/gl.json.js +45 -0
  285. package/dist/vendor/starlight/translations/he.json +30 -0
  286. package/dist/vendor/starlight/translations/he.json.js +32 -0
  287. package/dist/vendor/starlight/translations/hi.json +30 -0
  288. package/dist/vendor/starlight/translations/hi.json.js +32 -0
  289. package/dist/vendor/starlight/translations/hu.json +43 -0
  290. package/dist/vendor/starlight/translations/hu.json.js +45 -0
  291. package/dist/vendor/starlight/translations/id.json +30 -0
  292. package/dist/vendor/starlight/translations/id.json.js +32 -0
  293. package/dist/vendor/starlight/translations/index.js +77 -0
  294. package/dist/vendor/starlight/translations/it.json +30 -0
  295. package/dist/vendor/starlight/translations/it.json.js +32 -0
  296. package/dist/vendor/starlight/translations/ja.json +30 -0
  297. package/dist/vendor/starlight/translations/ja.json.js +32 -0
  298. package/dist/vendor/starlight/translations/ko.json +30 -0
  299. package/dist/vendor/starlight/translations/ko.json.js +32 -0
  300. package/dist/vendor/starlight/translations/lv.json +30 -0
  301. package/dist/vendor/starlight/translations/lv.json.js +32 -0
  302. package/dist/vendor/starlight/translations/nb.json +30 -0
  303. package/dist/vendor/starlight/translations/nb.json.js +32 -0
  304. package/dist/vendor/starlight/translations/nl.json +30 -0
  305. package/dist/vendor/starlight/translations/nl.json.js +32 -0
  306. package/dist/vendor/starlight/translations/pl.json +33 -0
  307. package/dist/vendor/starlight/translations/pl.json.js +35 -0
  308. package/dist/vendor/starlight/translations/pt.json +30 -0
  309. package/dist/vendor/starlight/translations/pt.json.js +32 -0
  310. package/dist/vendor/starlight/translations/ro.json +30 -0
  311. package/dist/vendor/starlight/translations/ro.json.js +32 -0
  312. package/dist/vendor/starlight/translations/ru.json +33 -0
  313. package/dist/vendor/starlight/translations/ru.json.js +35 -0
  314. package/dist/vendor/starlight/translations/sk.json +30 -0
  315. package/dist/vendor/starlight/translations/sk.json.js +32 -0
  316. package/dist/vendor/starlight/translations/sv.json +30 -0
  317. package/dist/vendor/starlight/translations/sv.json.js +32 -0
  318. package/dist/vendor/starlight/translations/th.json +30 -0
  319. package/dist/vendor/starlight/translations/th.json.js +32 -0
  320. package/dist/vendor/starlight/translations/tr.json +30 -0
  321. package/dist/vendor/starlight/translations/tr.json.js +32 -0
  322. package/dist/vendor/starlight/translations/uk.json +30 -0
  323. package/dist/vendor/starlight/translations/uk.json.js +32 -0
  324. package/dist/vendor/starlight/translations/vi.json +30 -0
  325. package/dist/vendor/starlight/translations/vi.json.js +32 -0
  326. package/dist/vendor/starlight/translations/zh-CN.json +30 -0
  327. package/dist/vendor/starlight/translations/zh-CN.json.js +32 -0
  328. package/dist/vendor/starlight/translations/zh-TW.json +30 -0
  329. package/dist/vendor/starlight/translations/zh-TW.json.js +32 -0
  330. package/dist/vendor/starlight/types.js +0 -0
  331. package/dist/vendor/starlight/user-components/Aside.astro +40 -0
  332. package/dist/vendor/starlight/user-components/Badge.astro +148 -0
  333. package/dist/vendor/starlight/user-components/Card.astro +68 -0
  334. package/dist/vendor/starlight/user-components/CardGrid.astro +38 -0
  335. package/dist/vendor/starlight/user-components/FileTree.astro +137 -0
  336. package/dist/vendor/starlight/user-components/Icon.astro +42 -0
  337. package/dist/vendor/starlight/user-components/LinkButton.astro +78 -0
  338. package/dist/vendor/starlight/user-components/LinkCard.astro +78 -0
  339. package/dist/vendor/starlight/user-components/Steps.astro +90 -0
  340. package/dist/vendor/starlight/user-components/TabItem.astro +19 -0
  341. package/dist/vendor/starlight/user-components/Tabs.astro +268 -0
  342. package/dist/vendor/starlight/user-components/file-tree-icons.js +608 -0
  343. package/dist/vendor/starlight/user-components/rehype-file-tree.js +160 -0
  344. package/dist/vendor/starlight/user-components/rehype-steps.js +53 -0
  345. package/dist/vendor/starlight/user-components/rehype-tabs.js +73 -0
  346. package/dist/vendor/starlight/utils/base.js +14 -0
  347. package/dist/vendor/starlight/utils/canonical.js +13 -0
  348. package/dist/vendor/starlight/utils/collection-fs.js +13 -0
  349. package/dist/vendor/starlight/utils/collection.js +16 -0
  350. package/dist/vendor/starlight/utils/createPathFormatter.js +39 -0
  351. package/dist/vendor/starlight/utils/createTranslationSystem.js +60 -0
  352. package/dist/vendor/starlight/utils/error-map.js +110 -0
  353. package/dist/vendor/starlight/utils/format-path.js +9 -0
  354. package/dist/vendor/starlight/utils/generateToC.js +18 -0
  355. package/dist/vendor/starlight/utils/git.js +92 -0
  356. package/dist/vendor/starlight/utils/gitInlined.js +13 -0
  357. package/dist/vendor/starlight/utils/head.js +156 -0
  358. package/dist/vendor/starlight/utils/i18n.js +121 -0
  359. package/dist/vendor/starlight/utils/localizedUrl.js +37 -0
  360. package/dist/vendor/starlight/utils/navigation.js +320 -0
  361. package/dist/vendor/starlight/utils/path.js +52 -0
  362. package/dist/vendor/starlight/utils/plugins.js +355 -0
  363. package/dist/vendor/starlight/utils/routing/data.js +116 -0
  364. package/dist/vendor/starlight/utils/routing/index.js +107 -0
  365. package/dist/vendor/starlight/utils/routing/middleware.js +40 -0
  366. package/dist/vendor/starlight/utils/routing/types.js +0 -0
  367. package/dist/vendor/starlight/utils/routing.js +1 -0
  368. package/dist/vendor/starlight/utils/slugs.js +70 -0
  369. package/dist/vendor/starlight/utils/starlight-page.js +123 -0
  370. package/dist/vendor/starlight/utils/translations-fs.js +31 -0
  371. package/dist/vendor/starlight/utils/translations.js +31 -0
  372. package/dist/vendor/starlight/utils/types.js +0 -0
  373. package/dist/vendor/starlight/utils/url.js +5 -0
  374. package/dist/vendor/starlight/utils/user-config.js +255 -0
  375. package/dist/vendor/starlight/utils/validateLogoImports.js +22 -0
  376. package/dist/vendor/starlight/virtual-internal.d.js +0 -0
  377. package/dist/vendor/starlight/virtual.d.js +0 -0
  378. package/dist/worker/forms-worker.js +141 -0
  379. package/package.json +156 -0
  380. package/style/anchor-links.css +131 -0
  381. package/templates/github/deploy.workflow.yml +47 -0
  382. package/tsconfigs/strict.json +3 -0
  383. package/utils/git.ts +121 -0
  384. package/utils/gitInlined.ts +20 -0
@@ -0,0 +1,89 @@
1
+ .prose-karyon {
2
+ color: var(--site-text);
3
+ font-size: 1.08rem;
4
+ }
5
+
6
+ .prose-karyon h1,
7
+ .prose-karyon h2,
8
+ .prose-karyon h3 {
9
+ color: var(--site-text);
10
+ line-height: 1.12;
11
+ font-weight: 700;
12
+ }
13
+
14
+ .prose-karyon h1 {
15
+ font-size: clamp(2.4rem, 5vw, 4.1rem);
16
+ margin-bottom: 1.2rem;
17
+ font-family: var(--font-serif);
18
+ }
19
+
20
+ .prose-karyon h2 {
21
+ font-size: clamp(1.85rem, 2.8vw, 2.5rem);
22
+ margin-top: 3.1rem;
23
+ margin-bottom: 1rem;
24
+ }
25
+
26
+ .prose-karyon h3 {
27
+ font-size: 1.32rem;
28
+ margin-top: 2rem;
29
+ margin-bottom: 0.7rem;
30
+ }
31
+
32
+ .prose-karyon p,
33
+ .prose-karyon li {
34
+ color: var(--site-text-muted);
35
+ line-height: 1.85;
36
+ }
37
+
38
+ .prose-karyon p {
39
+ margin: 1rem 0 1.2rem;
40
+ }
41
+
42
+ .prose-karyon p + p {
43
+ margin-top: 1.35rem;
44
+ }
45
+
46
+ .prose-karyon a {
47
+ color: var(--site-accent-strong);
48
+ text-decoration: underline;
49
+ text-underline-offset: 0.16em;
50
+ font-weight: 600;
51
+ }
52
+
53
+ .prose-karyon strong {
54
+ color: var(--site-text);
55
+ }
56
+
57
+ .prose-karyon ul,
58
+ .prose-karyon ol {
59
+ padding-left: 1.3rem;
60
+ }
61
+
62
+ .prose-karyon blockquote {
63
+ border-left: 4px solid var(--site-accent);
64
+ padding-left: 1rem;
65
+ color: var(--site-text-muted);
66
+ }
67
+
68
+ .prose-karyon code {
69
+ background: rgba(95, 141, 164, 0.12);
70
+ border: 1px solid rgba(95, 141, 164, 0.22);
71
+ border-radius: 0.5rem;
72
+ padding: 0.1rem 0.35rem;
73
+ }
74
+
75
+ .prose-karyon hr {
76
+ border-color: var(--site-border);
77
+ margin: 2.4rem 0;
78
+ }
79
+
80
+ .prose-karyon :where(table) {
81
+ width: 100%;
82
+ border-collapse: collapse;
83
+ }
84
+
85
+ .prose-karyon :where(th, td) {
86
+ border-bottom: 1px solid var(--site-border);
87
+ padding: 0.85rem 0.75rem;
88
+ text-align: left;
89
+ }
@@ -0,0 +1,24 @@
1
+ :root {
2
+ --site-bg: #f4ede0;
3
+ --site-bg-elevated: #ede4d2;
4
+ --site-bg-soft: #f8f3e9;
5
+ --site-panel: rgba(244, 237, 224, 0.86);
6
+ --site-panel-strong: #e7dcc8;
7
+ --site-border: rgba(88, 77, 61, 0.16);
8
+ --site-border-strong: rgba(104, 132, 98, 0.34);
9
+ --site-grid: rgba(132, 154, 132, 0.14);
10
+ --site-text: #2e261c;
11
+ --site-text-muted: #4d4638;
12
+ --site-text-soft: #6b665b;
13
+ --site-accent: #c7dbc4;
14
+ --site-accent-strong: #5f7c5f;
15
+ --site-accent-soft: #e9f0e5;
16
+ --site-blue: #86aac0;
17
+ --site-blue-strong: #456679;
18
+ --site-blue-soft: #e4eef3;
19
+ --site-warm: #d7b07b;
20
+ --site-warm-strong: #7c5a2d;
21
+ --site-shadow: 0 24px 56px rgba(75, 60, 32, 0.08);
22
+ --site-radius: 0.65rem;
23
+ --site-max: 76rem;
24
+ }
@@ -0,0 +1,5 @@
1
+ import { loadTreeseedManifest } from "./config.js";
2
+ const PROJECT_TENANT = loadTreeseedManifest();
3
+ export {
4
+ PROJECT_TENANT
5
+ };
@@ -0,0 +1,9 @@
1
+ import type { TreeseedTenantConfig } from '../contracts';
2
+ declare function resolveTenantRoot(): string;
3
+ export declare function defineTreeseedTenant<T>(tenantConfig: T): T;
4
+ export declare function loadTreeseedManifest(manifestPath?: string): TreeseedTenantConfig;
5
+ export declare const loadTreeseedTenantManifest: typeof loadTreeseedManifest;
6
+ export declare const resolveTreeseedTenantRoot: typeof resolveTenantRoot;
7
+ export declare function getTenantContentRoot(tenantConfig: Pick<TreeseedTenantConfig, 'content'>, collectionName: string): string;
8
+ export declare function tenantFeatureEnabled(tenantConfig: Pick<TreeseedTenantConfig, 'features'>, featureName: string): boolean;
9
+ export {};
@@ -0,0 +1,124 @@
1
+ import { existsSync, readFileSync } from "node:fs";
2
+ import { dirname, resolve } from "node:path";
3
+ import { fileURLToPath } from "node:url";
4
+ import { parse as parseYaml } from "yaml";
5
+ function resolvePackageRoot() {
6
+ const moduleUrl = typeof import.meta?.url === "string" ? import.meta.url : null;
7
+ if (!moduleUrl) {
8
+ return process.cwd();
9
+ }
10
+ return resolve(dirname(fileURLToPath(moduleUrl)), "../..");
11
+ }
12
+ const packageRoot = resolvePackageRoot();
13
+ const packageFixtureRoot = resolve(packageRoot, ".fixtures", "treeseed-fixtures", "sites", "working-site");
14
+ const explicitTenantRoot = process.env.TREESEED_TENANT_ROOT ? resolve(process.env.TREESEED_TENANT_ROOT) : null;
15
+ function pathWithin(parent, candidate) {
16
+ const normalizedParent = resolve(parent);
17
+ const normalizedCandidate = resolve(candidate);
18
+ return normalizedCandidate === normalizedParent || normalizedCandidate.startsWith(`${normalizedParent}/`);
19
+ }
20
+ function collectTenantRootCandidates(start) {
21
+ const candidates = [];
22
+ let current = resolve(start);
23
+ while (true) {
24
+ candidates.push(
25
+ current,
26
+ resolve(current, ".fixtures", "treeseed-fixtures", "sites", "working-site"),
27
+ resolve(current, "fixture")
28
+ );
29
+ const parent = resolve(current, "..");
30
+ if (parent === current) {
31
+ break;
32
+ }
33
+ current = parent;
34
+ }
35
+ return candidates;
36
+ }
37
+ function uniqueCandidates(entries) {
38
+ return [...new Set(entries.map((entry) => resolve(entry)))];
39
+ }
40
+ function tenantRootCandidates() {
41
+ const cwd = resolve(process.cwd());
42
+ const cwdCandidates = collectTenantRootCandidates(cwd);
43
+ const packageCandidates = collectTenantRootCandidates(packageRoot);
44
+ if (explicitTenantRoot) {
45
+ return uniqueCandidates([explicitTenantRoot, ...cwdCandidates, packageFixtureRoot, ...packageCandidates]);
46
+ }
47
+ if (pathWithin(packageRoot, cwd)) {
48
+ return uniqueCandidates([packageFixtureRoot, ...cwdCandidates, ...packageCandidates]);
49
+ }
50
+ return uniqueCandidates([...cwdCandidates, packageFixtureRoot, ...packageCandidates]);
51
+ }
52
+ function resolveTenantPath(manifestPath) {
53
+ if (existsSync(manifestPath)) {
54
+ return resolve(manifestPath);
55
+ }
56
+ const candidates = tenantRootCandidates().map((root) => resolve(root, manifestPath));
57
+ for (const candidate of candidates) {
58
+ if (existsSync(candidate)) {
59
+ return candidate;
60
+ }
61
+ }
62
+ throw new Error(
63
+ `Unable to resolve Treeseed tenant manifest at "${manifestPath}" from ${process.cwd()} or ${packageFixtureRoot}.`
64
+ );
65
+ }
66
+ function resolveTenantRoot() {
67
+ const candidates = tenantRootCandidates();
68
+ for (const candidate of candidates) {
69
+ if (existsSync(resolve(candidate, "src/manifest.yaml"))) {
70
+ return candidate;
71
+ }
72
+ }
73
+ throw new Error(
74
+ `Unable to resolve a Treeseed tenant root from ${process.cwd()} or ${packageFixtureRoot}.`
75
+ );
76
+ }
77
+ function defineTreeseedTenant(tenantConfig) {
78
+ return tenantConfig;
79
+ }
80
+ function loadTreeseedManifest(manifestPath = "./src/manifest.yaml") {
81
+ const resolvedManifestPath = resolveTenantPath(manifestPath);
82
+ const tenantRoot = resolve(dirname(resolvedManifestPath), "..");
83
+ const parsed = parseYaml(readFileSync(resolvedManifestPath, "utf8"));
84
+ const tenantConfig = defineTreeseedTenant({
85
+ ...parsed,
86
+ siteConfigPath: resolve(tenantRoot, parsed.siteConfigPath),
87
+ content: Object.fromEntries(
88
+ Object.entries(parsed.content ?? {}).map(([collectionName, rootPath]) => [
89
+ collectionName,
90
+ resolve(tenantRoot, String(rootPath))
91
+ ])
92
+ ),
93
+ overrides: parsed.overrides ? {
94
+ pagesRoot: parsed.overrides.pagesRoot ? resolve(tenantRoot, parsed.overrides.pagesRoot) : void 0,
95
+ stylesRoot: parsed.overrides.stylesRoot ? resolve(tenantRoot, parsed.overrides.stylesRoot) : void 0,
96
+ componentsRoot: parsed.overrides.componentsRoot ? resolve(tenantRoot, parsed.overrides.componentsRoot) : void 0
97
+ } : void 0
98
+ });
99
+ Object.defineProperty(tenantConfig, "__tenantRoot", {
100
+ value: tenantRoot,
101
+ enumerable: false
102
+ });
103
+ return tenantConfig;
104
+ }
105
+ const loadTreeseedTenantManifest = loadTreeseedManifest;
106
+ const resolveTreeseedTenantRoot = resolveTenantRoot;
107
+ function getTenantContentRoot(tenantConfig, collectionName) {
108
+ const root = tenantConfig.content[collectionName];
109
+ if (!root) {
110
+ throw new Error(`Unknown tenant content collection: ${collectionName}`);
111
+ }
112
+ return root;
113
+ }
114
+ function tenantFeatureEnabled(tenantConfig, featureName) {
115
+ return tenantConfig.features?.[featureName] !== false;
116
+ }
117
+ export {
118
+ defineTreeseedTenant,
119
+ getTenantContentRoot,
120
+ loadTreeseedManifest,
121
+ loadTreeseedTenantManifest,
122
+ resolveTreeseedTenantRoot,
123
+ tenantFeatureEnabled
124
+ };
@@ -0,0 +1,20 @@
1
+ import { readFileSync } from "node:fs";
2
+ import { loadTreeseedManifest } from "./config.js";
3
+ import { parseSiteConfig } from "../utils/site-config-schema.js";
4
+ const injectedTenantConfig = typeof __TREESEED_TENANT_CONFIG__ !== "undefined" ? __TREESEED_TENANT_CONFIG__ : null;
5
+ const injectedProjectRoot = typeof __TREESEED_PROJECT_ROOT__ !== "undefined" ? __TREESEED_PROJECT_ROOT__ : null;
6
+ const injectedSiteConfig = typeof __TREESEED_SITE_CONFIG__ !== "undefined" ? __TREESEED_SITE_CONFIG__ : null;
7
+ const RUNTIME_TENANT = injectedTenantConfig ?? loadTreeseedManifest();
8
+ const RUNTIME_PROJECT_ROOT = injectedProjectRoot ?? process.cwd();
9
+ const RUNTIME_SITE_CONFIG = injectedSiteConfig ?? (() => {
10
+ try {
11
+ return parseSiteConfig(readFileSync(RUNTIME_TENANT.siteConfigPath, "utf8"));
12
+ } catch {
13
+ return null;
14
+ }
15
+ })();
16
+ export {
17
+ RUNTIME_PROJECT_ROOT,
18
+ RUNTIME_SITE_CONFIG,
19
+ RUNTIME_TENANT
20
+ };
@@ -0,0 +1,3 @@
1
+ {
2
+ "extends": "astro/tsconfigs/strict"
3
+ }
@@ -0,0 +1 @@
1
+ export * from '@treeseed/sdk/types/agents';
@@ -0,0 +1 @@
1
+ export * from "@treeseed/sdk/types/agents";
File without changes
File without changes
@@ -0,0 +1 @@
1
+ export * from '@treeseed/sdk/types/cloudflare';
@@ -0,0 +1 @@
1
+ export * from "@treeseed/sdk/types/cloudflare";
@@ -0,0 +1,4 @@
1
+ const CONTACT_TYPES = ["question", "feedback", "collaboration", "issue"];
2
+ export {
3
+ CONTACT_TYPES
4
+ };
@@ -0,0 +1,90 @@
1
+ import { execFile } from "node:child_process";
2
+ import { promisify } from "node:util";
3
+ import { normalizeAgentCliOptions, buildCopilotAllowToolArgs } from "../cli-tools.js";
4
+ import { getTreeseedAgentProviderSelections } from "../../../deploy/runtime.js";
5
+ const execFileAsync = promisify(execFile);
6
+ class StubExecutionAdapter {
7
+ async runTask(input) {
8
+ return {
9
+ status: "completed",
10
+ summary: `Stubbed Copilot execution for ${input.runId}.`,
11
+ stdout: [
12
+ "# Planned Task",
13
+ "",
14
+ "1. Inspect the requested architecture context.",
15
+ "2. Produce a safe local change artifact.",
16
+ "3. Summarize the implementation intent.",
17
+ "",
18
+ `Prompt digest: ${input.prompt.slice(0, 240)}`
19
+ ].join("\n"),
20
+ stderr: ""
21
+ };
22
+ }
23
+ }
24
+ class CopilotExecutionAdapter {
25
+ async runTask(input) {
26
+ const cli = normalizeAgentCliOptions(input.agent.cli);
27
+ const args = ["copilot", "-p", input.prompt];
28
+ if (cli.model) {
29
+ args.push("--model", cli.model);
30
+ }
31
+ args.push(...buildCopilotAllowToolArgs(cli.allowTools));
32
+ args.push(...cli.additionalArgs ?? []);
33
+ try {
34
+ const { stdout, stderr } = await execFileAsync("gh", args, {
35
+ cwd: process.cwd(),
36
+ env: process.env,
37
+ maxBuffer: 10 * 1024 * 1024
38
+ });
39
+ return {
40
+ status: "completed",
41
+ summary: "Copilot task completed.",
42
+ stdout,
43
+ stderr
44
+ };
45
+ } catch (error) {
46
+ const stderr = error && typeof error === "object" && "stderr" in error ? String(error.stderr ?? "") : error instanceof Error ? error.message : String(error);
47
+ return {
48
+ status: "failed",
49
+ summary: "Copilot task failed.",
50
+ stdout: "",
51
+ stderr
52
+ };
53
+ }
54
+ }
55
+ }
56
+ class ManualExecutionAdapter {
57
+ async runTask(input) {
58
+ return {
59
+ status: "completed",
60
+ summary: `Manual execution mode is enabled for ${input.runId}.`,
61
+ stdout: [
62
+ "# Manual Execution Required",
63
+ "",
64
+ "This agent run is configured for manual execution.",
65
+ "Review the prompt below and complete the work outside the automated adapter.",
66
+ "",
67
+ input.prompt
68
+ ].join("\n"),
69
+ stderr: ""
70
+ };
71
+ }
72
+ }
73
+ function createExecutionAdapter() {
74
+ const configuredMode = String(
75
+ process.env.TREESEED_AGENT_EXECUTION_PROVIDER ?? getTreeseedAgentProviderSelections().execution
76
+ ).toLowerCase();
77
+ if (configuredMode === "manual") {
78
+ return new ManualExecutionAdapter();
79
+ }
80
+ if (configuredMode !== "copilot") {
81
+ return new StubExecutionAdapter();
82
+ }
83
+ return new CopilotExecutionAdapter();
84
+ }
85
+ export {
86
+ CopilotExecutionAdapter,
87
+ ManualExecutionAdapter,
88
+ StubExecutionAdapter,
89
+ createExecutionAdapter
90
+ };
@@ -0,0 +1,30 @@
1
+ import { mkdir, writeFile } from "node:fs/promises";
2
+ import path from "node:path";
3
+ import { GitRuntime } from "@treeseed/sdk/git-runtime";
4
+ class LocalBranchMutationAdapter {
5
+ git;
6
+ constructor(repoRoot) {
7
+ this.git = new GitRuntime(
8
+ repoRoot,
9
+ process.env.TREESEED_AGENT_DISABLE_GIT === "true"
10
+ );
11
+ }
12
+ async writeArtifact(input) {
13
+ const branchName = `${input.agent.execution.branchPrefix}/${input.runId}`;
14
+ const worktreePath = await this.git.ensureWorktree(branchName);
15
+ const filePath = path.join(worktreePath, input.relativePath);
16
+ await mkdir(path.dirname(filePath), { recursive: true });
17
+ await writeFile(filePath, input.content, "utf8");
18
+ const git = await this.git.commitFileChange(filePath, branchName, input.commitMessage);
19
+ return {
20
+ branchName: git.branchName,
21
+ commitMessage: git.commitMessage,
22
+ worktreePath: git.worktreePath,
23
+ commitSha: git.commitSha,
24
+ changedPaths: git.changedPaths
25
+ };
26
+ }
27
+ }
28
+ export {
29
+ LocalBranchMutationAdapter
30
+ };
@@ -0,0 +1,16 @@
1
+ class StubNotificationAdapter {
2
+ async deliver(input) {
3
+ return {
4
+ status: input.recipients.length ? "completed" : "waiting",
5
+ summary: input.recipients.length ? `Prepared ${input.recipients.length} notification(s).` : "No recipients available for notification.",
6
+ deliveredCount: input.recipients.length
7
+ };
8
+ }
9
+ }
10
+ function createNotificationAdapter() {
11
+ return new StubNotificationAdapter();
12
+ }
13
+ export {
14
+ StubNotificationAdapter,
15
+ createNotificationAdapter
16
+ };
@@ -0,0 +1,61 @@
1
+ import { execFile } from "node:child_process";
2
+ import { promisify } from "node:util";
3
+ import { getTreeseedAgentProviderSelections } from "../../../deploy/runtime.js";
4
+ const execFileAsync = promisify(execFile);
5
+ class StubRepositoryInspectionAdapter {
6
+ async inspectBranch(input) {
7
+ return {
8
+ branchName: input.branchName,
9
+ changedPaths: [],
10
+ commitSha: null,
11
+ summary: input.branchName ? `Stub repository inspection for ${input.branchName}.` : "No branch to inspect."
12
+ };
13
+ }
14
+ }
15
+ class GitRepositoryInspectionAdapter {
16
+ async inspectBranch(input) {
17
+ if (!input.branchName) {
18
+ return {
19
+ branchName: null,
20
+ changedPaths: [],
21
+ commitSha: null,
22
+ summary: "No branch to inspect."
23
+ };
24
+ }
25
+ try {
26
+ const { stdout: changedStdout } = await execFileAsync(
27
+ "git",
28
+ ["diff", "--name-only", "HEAD~1..HEAD"],
29
+ { cwd: input.repoRoot, env: process.env }
30
+ );
31
+ const { stdout: shaStdout } = await execFileAsync("git", ["rev-parse", "HEAD"], {
32
+ cwd: input.repoRoot,
33
+ env: process.env
34
+ });
35
+ const changedPaths = changedStdout.split("\n").map((entry) => entry.trim()).filter(Boolean);
36
+ return {
37
+ branchName: input.branchName,
38
+ changedPaths,
39
+ commitSha: shaStdout.trim() || null,
40
+ summary: `Inspected ${changedPaths.length} changed path(s) on ${input.branchName}.`
41
+ };
42
+ } catch {
43
+ return {
44
+ branchName: input.branchName,
45
+ changedPaths: [],
46
+ commitSha: null,
47
+ summary: `Unable to inspect branch ${input.branchName}.`
48
+ };
49
+ }
50
+ }
51
+ }
52
+ function createRepositoryInspectionAdapter() {
53
+ return String(
54
+ process.env.TREESEED_AGENT_REPOSITORY_PROVIDER ?? getTreeseedAgentProviderSelections().repository
55
+ ).toLowerCase() !== "git" ? new StubRepositoryInspectionAdapter() : new GitRepositoryInspectionAdapter();
56
+ }
57
+ export {
58
+ GitRepositoryInspectionAdapter,
59
+ StubRepositoryInspectionAdapter,
60
+ createRepositoryInspectionAdapter
61
+ };
@@ -0,0 +1,25 @@
1
+ class StubResearchAdapter {
2
+ async research(input) {
3
+ return {
4
+ status: "completed",
5
+ summary: `Research prepared for ${input.questionId}.`,
6
+ markdown: [
7
+ "# Research Summary",
8
+ "",
9
+ `Question: ${input.questionId}`,
10
+ `Reason: ${input.reason ?? "not provided"}`,
11
+ `Run: ${input.runId}`,
12
+ "",
13
+ "This is a stub research summary produced by the runtime adapter."
14
+ ].join("\n"),
15
+ sources: []
16
+ };
17
+ }
18
+ }
19
+ function createResearchAdapter() {
20
+ return new StubResearchAdapter();
21
+ }
22
+ export {
23
+ StubResearchAdapter,
24
+ createResearchAdapter
25
+ };
@@ -0,0 +1,62 @@
1
+ import { execFile } from "node:child_process";
2
+ import { promisify } from "node:util";
3
+ import { getTreeseedAgentProviderSelections } from "../../../deploy/runtime.js";
4
+ const execFileAsync = promisify(execFile);
5
+ class StubVerificationAdapter {
6
+ async runChecks(input) {
7
+ return {
8
+ status: "completed",
9
+ summary: input.commands.length ? `Stub verification completed for ${input.runId}.` : "No verification commands configured.",
10
+ stdout: input.commands.join("\n"),
11
+ stderr: ""
12
+ };
13
+ }
14
+ }
15
+ class LocalVerificationAdapter {
16
+ async runChecks(input) {
17
+ if (!input.commands.length) {
18
+ return {
19
+ status: "waiting",
20
+ summary: "No verification commands configured.",
21
+ stdout: "",
22
+ stderr: ""
23
+ };
24
+ }
25
+ const stdoutChunks = [];
26
+ const stderrChunks = [];
27
+ for (const command of input.commands) {
28
+ try {
29
+ const { stdout, stderr } = await execFileAsync("/bin/bash", ["-lc", command], {
30
+ env: process.env,
31
+ maxBuffer: 10 * 1024 * 1024
32
+ });
33
+ stdoutChunks.push(stdout);
34
+ stderrChunks.push(stderr);
35
+ } catch (error) {
36
+ return {
37
+ status: "failed",
38
+ summary: `Verification command failed: ${command}`,
39
+ stdout: stdoutChunks.join("\n"),
40
+ stderr: error && typeof error === "object" && "stderr" in error ? String(error.stderr ?? "") : String(error),
41
+ errorCategory: "execution_error"
42
+ };
43
+ }
44
+ }
45
+ return {
46
+ status: "completed",
47
+ summary: `Verification completed for ${input.commands.length} command(s).`,
48
+ stdout: stdoutChunks.join("\n"),
49
+ stderr: stderrChunks.join("\n")
50
+ };
51
+ }
52
+ }
53
+ function createVerificationAdapter() {
54
+ return String(
55
+ process.env.TREESEED_AGENT_VERIFICATION_PROVIDER ?? getTreeseedAgentProviderSelections().verification
56
+ ).toLowerCase() !== "local" ? new StubVerificationAdapter() : new LocalVerificationAdapter();
57
+ }
58
+ export {
59
+ LocalVerificationAdapter,
60
+ StubVerificationAdapter,
61
+ createVerificationAdapter
62
+ };
@@ -0,0 +1,5 @@
1
+ import { normalizeAgentCliOptions, buildCopilotAllowToolArgs } from "@treeseed/sdk/cli-tools";
2
+ export {
3
+ buildCopilotAllowToolArgs,
4
+ normalizeAgentCliOptions
5
+ };