@alumbwe/anvil 1.0.20 → 1.0.22

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 (328) hide show
  1. package/package.json +74 -70
  2. package/src/agents/bundled-agents.generated.ts +4 -4
  3. package/src/chat.tsx +1703 -1698
  4. package/src/cli-args.ts +134 -134
  5. package/src/components/status-bar.tsx +331 -313
  6. package/src/hooks/helpers/send-message.ts +663 -654
  7. package/src/hooks/use-send-message.ts +806 -773
  8. package/src/index.tsx +473 -473
  9. package/src/state/chat-store.ts +553 -544
  10. package/src/utils/create-run-config.ts +121 -121
  11. package/src/utils/format-compact-number.ts +37 -0
  12. package/vendor/@anvil/common/package.json +27 -0
  13. package/vendor/@anvil/common/src/__tests__/agent-validation.test.ts +846 -0
  14. package/vendor/@anvil/common/src/__tests__/anvil-model-availability.test.ts +101 -0
  15. package/vendor/@anvil/common/src/__tests__/anvil-models.test.ts +1408 -0
  16. package/vendor/@anvil/common/src/__tests__/anvil-public-data-use-copy.test.ts +258 -0
  17. package/vendor/@anvil/common/src/__tests__/anvil-referral-tiers.test.ts +48 -0
  18. package/vendor/@anvil/common/src/__tests__/anvil-spend-ceilings.test.ts +282 -0
  19. package/vendor/@anvil/common/src/__tests__/anvil-trust.test.ts +526 -0
  20. package/vendor/@anvil/common/src/__tests__/deepseek-direct.test.ts +68 -0
  21. package/vendor/@anvil/common/src/__tests__/disposable-email.test.ts +132 -0
  22. package/vendor/@anvil/common/src/__tests__/dynamic-agent-template-schema.test.ts +422 -0
  23. package/vendor/@anvil/common/src/__tests__/env-ci.test.ts +167 -0
  24. package/vendor/@anvil/common/src/__tests__/env-process.test.ts +145 -0
  25. package/vendor/@anvil/common/src/__tests__/foreign-client-shipped-agents.test.ts +234 -0
  26. package/vendor/@anvil/common/src/__tests__/foreign-client-signals.test.ts +379 -0
  27. package/vendor/@anvil/common/src/__tests__/free-agents.test.ts +807 -0
  28. package/vendor/@anvil/common/src/__tests__/gravity-capi.test.ts +154 -0
  29. package/vendor/@anvil/common/src/__tests__/handlesteps-parsing.test.ts +246 -0
  30. package/vendor/@anvil/common/src/__tests__/kimi-k3-god-only.test.ts +77 -0
  31. package/vendor/@anvil/common/src/__tests__/model-config.test.ts +89 -0
  32. package/vendor/@anvil/common/src/__tests__/project-file-tree.test.ts +298 -0
  33. package/vendor/@anvil/common/src/__tests__/provisioned-model-tiers.test.ts +116 -0
  34. package/vendor/@anvil/common/src/__tests__/reasoning-effort.test.ts +167 -0
  35. package/vendor/@anvil/common/src/__tests__/reddit-capi.test.ts +132 -0
  36. package/vendor/@anvil/common/src/__tests__/response-ad-positions.test.ts +72 -0
  37. package/vendor/@anvil/common/src/__tests__/user-state.test.ts +30 -0
  38. package/vendor/@anvil/common/src/actions.ts +215 -0
  39. package/vendor/@anvil/common/src/analytics-core.ts +69 -0
  40. package/vendor/@anvil/common/src/analytics.ts +93 -0
  41. package/vendor/@anvil/common/src/api-keys/constants.ts +26 -0
  42. package/vendor/@anvil/common/src/browser-actions.ts +413 -0
  43. package/vendor/@anvil/common/src/constants/__tests__/anvil-onboarding-gate.test.ts +63 -0
  44. package/vendor/@anvil/common/src/constants/__tests__/anvil-onboarding.test.ts +246 -0
  45. package/vendor/@anvil/common/src/constants/__tests__/cf-worker-signals.test.ts +106 -0
  46. package/vendor/@anvil/common/src/constants/agents.ts +99 -0
  47. package/vendor/@anvil/common/src/constants/analytics-events.ts +435 -0
  48. package/vendor/@anvil/common/src/constants/anthropic.ts +73 -0
  49. package/vendor/@anvil/common/src/constants/anvil-data-use.ts +81 -0
  50. package/vendor/@anvil/common/src/constants/anvil-errors.ts +7 -0
  51. package/vendor/@anvil/common/src/constants/anvil-gemini-thinker.ts +21 -0
  52. package/vendor/@anvil/common/src/constants/anvil-model-ids.ts +11 -0
  53. package/vendor/@anvil/common/src/constants/anvil-models.ts +2130 -0
  54. package/vendor/@anvil/common/src/constants/anvil-onboarding-gate.ts +55 -0
  55. package/vendor/@anvil/common/src/constants/anvil-onboarding.ts +307 -0
  56. package/vendor/@anvil/common/src/constants/anvil-referral-tiers.ts +87 -0
  57. package/vendor/@anvil/common/src/constants/anvil-signup-block.ts +68 -0
  58. package/vendor/@anvil/common/src/constants/anvil-spend-ceilings.ts +450 -0
  59. package/vendor/@anvil/common/src/constants/anvil-trust.ts +976 -0
  60. package/vendor/@anvil/common/src/constants/auth.ts +18 -0
  61. package/vendor/@anvil/common/src/constants/byok.ts +2 -0
  62. package/vendor/@anvil/common/src/constants/cf-worker-signals.ts +132 -0
  63. package/vendor/@anvil/common/src/constants/composio.ts +34 -0
  64. package/vendor/@anvil/common/src/constants/deepseek-direct.ts +55 -0
  65. package/vendor/@anvil/common/src/constants/feedback.ts +13 -0
  66. package/vendor/@anvil/common/src/constants/foreign-client-signals.ts +272 -0
  67. package/vendor/@anvil/common/src/constants/free-agents.ts +777 -0
  68. package/vendor/@anvil/common/src/constants/gemini.ts +15 -0
  69. package/vendor/@anvil/common/src/constants/grant-priorities.ts +13 -0
  70. package/vendor/@anvil/common/src/constants/hosts.ts +6 -0
  71. package/vendor/@anvil/common/src/constants/images.ts +51 -0
  72. package/vendor/@anvil/common/src/constants/index.ts +7 -0
  73. package/vendor/@anvil/common/src/constants/knowledge.ts +35 -0
  74. package/vendor/@anvil/common/src/constants/limits.ts +23 -0
  75. package/vendor/@anvil/common/src/constants/model-config.ts +277 -0
  76. package/vendor/@anvil/common/src/constants/openrouter-attribution.ts +8 -0
  77. package/vendor/@anvil/common/src/constants/paths.ts +69 -0
  78. package/vendor/@anvil/common/src/constants/provider-routes.ts +317 -0
  79. package/vendor/@anvil/common/src/constants/reasoning-effort.ts +79 -0
  80. package/vendor/@anvil/common/src/constants/skills.ts +60 -0
  81. package/vendor/@anvil/common/src/constants/subscription-plans.ts +49 -0
  82. package/vendor/@anvil/common/src/constants/ui.ts +25 -0
  83. package/vendor/@anvil/common/src/env-ci.ts +36 -0
  84. package/vendor/@anvil/common/src/env-process.ts +95 -0
  85. package/vendor/@anvil/common/src/env-schema.ts +95 -0
  86. package/vendor/@anvil/common/src/env.ts +24 -0
  87. package/vendor/@anvil/common/src/gravity-capi.ts +207 -0
  88. package/vendor/@anvil/common/src/mcp/client.ts +233 -0
  89. package/vendor/@anvil/common/src/old-constants.ts +10 -0
  90. package/vendor/@anvil/common/src/project-file-tree.ts +355 -0
  91. package/vendor/@anvil/common/src/reddit-capi.ts +254 -0
  92. package/vendor/@anvil/common/src/schemas/feedback.ts +52 -0
  93. package/vendor/@anvil/common/src/schemas/logs.ts +66 -0
  94. package/vendor/@anvil/common/src/templates/agent-validation.ts +392 -0
  95. package/vendor/@anvil/common/src/templates/initial-agents-dir/LICENSE +202 -0
  96. package/vendor/@anvil/common/src/templates/initial-agents-dir/README.md +294 -0
  97. package/vendor/@anvil/common/src/templates/initial-agents-dir/examples/01-basic-diff-reviewer.ts +17 -0
  98. package/vendor/@anvil/common/src/templates/initial-agents-dir/examples/02-intermediate-git-committer.ts +78 -0
  99. package/vendor/@anvil/common/src/templates/initial-agents-dir/examples/03-advanced-file-explorer.ts +73 -0
  100. package/vendor/@anvil/common/src/templates/initial-agents-dir/my-custom-agent.ts +40 -0
  101. package/vendor/@anvil/common/src/templates/initial-agents-dir/package.json +6 -0
  102. package/vendor/@anvil/common/src/templates/initial-agents-dir/skills/README.md +65 -0
  103. package/vendor/@anvil/common/src/templates/initial-agents-dir/skills/example-skill/SKILL.md +29 -0
  104. package/vendor/@anvil/common/src/templates/initial-agents-dir/types/agent-definition.ts +497 -0
  105. package/vendor/@anvil/common/src/templates/initial-agents-dir/types/tools.ts +444 -0
  106. package/vendor/@anvil/common/src/templates/initial-agents-dir/types/util-types.ts +178 -0
  107. package/vendor/@anvil/common/src/testing/TESTING_PATTERNS.md +351 -0
  108. package/vendor/@anvil/common/src/testing/anvil-offer-invariants.ts +169 -0
  109. package/vendor/@anvil/common/src/testing/errors.ts +33 -0
  110. package/vendor/@anvil/common/src/testing/fixtures/agent-runtime.ts +334 -0
  111. package/vendor/@anvil/common/src/testing/impl/agent-runtime.ts +6 -0
  112. package/vendor/@anvil/common/src/testing/index.ts +84 -0
  113. package/vendor/@anvil/common/src/testing/mock-modules.ts +53 -0
  114. package/vendor/@anvil/common/src/testing/mock-types.ts +123 -0
  115. package/vendor/@anvil/common/src/testing/mocks/analytics.ts +261 -0
  116. package/vendor/@anvil/common/src/testing/mocks/child-process.ts +93 -0
  117. package/vendor/@anvil/common/src/testing/mocks/crypto.ts +218 -0
  118. package/vendor/@anvil/common/src/testing/mocks/database.ts +337 -0
  119. package/vendor/@anvil/common/src/testing/mocks/fetch.ts +219 -0
  120. package/vendor/@anvil/common/src/testing/mocks/filesystem.ts +166 -0
  121. package/vendor/@anvil/common/src/testing/mocks/index.ts +101 -0
  122. package/vendor/@anvil/common/src/testing/mocks/logger.ts +135 -0
  123. package/vendor/@anvil/common/src/testing/mocks/stream.ts +313 -0
  124. package/vendor/@anvil/common/src/testing/mocks/timers.ts +132 -0
  125. package/vendor/@anvil/common/src/testing/mocks/tree-sitter.ts +127 -0
  126. package/vendor/@anvil/common/src/testing/setup.ts +282 -0
  127. package/vendor/@anvil/common/src/testing-env-ci.ts +15 -0
  128. package/vendor/@anvil/common/src/testing-env-process.ts +78 -0
  129. package/vendor/@anvil/common/src/tools/__tests__/compile-tool-definitions.test.ts +34 -0
  130. package/vendor/@anvil/common/src/tools/compile-tool-definitions.ts +157 -0
  131. package/vendor/@anvil/common/src/tools/constants.ts +117 -0
  132. package/vendor/@anvil/common/src/tools/list.ts +190 -0
  133. package/vendor/@anvil/common/src/tools/params/__tests__/coerce-to-array.test.ts +213 -0
  134. package/vendor/@anvil/common/src/tools/params/__tests__/read-docs.test.ts +47 -0
  135. package/vendor/@anvil/common/src/tools/params/__tests__/render-ui.test.ts +65 -0
  136. package/vendor/@anvil/common/src/tools/params/tool/__tests__/run-terminal-command-timeout.test.ts +49 -0
  137. package/vendor/@anvil/common/src/tools/params/tool/add-message.ts +39 -0
  138. package/vendor/@anvil/common/src/tools/params/tool/add-subgoal.ts +57 -0
  139. package/vendor/@anvil/common/src/tools/params/tool/apply-patch.ts +110 -0
  140. package/vendor/@anvil/common/src/tools/params/tool/ask-user.ts +181 -0
  141. package/vendor/@anvil/common/src/tools/params/tool/browser-logs.ts +85 -0
  142. package/vendor/@anvil/common/src/tools/params/tool/cloud-plan-ready.ts +94 -0
  143. package/vendor/@anvil/common/src/tools/params/tool/code-search.ts +159 -0
  144. package/vendor/@anvil/common/src/tools/params/tool/composio.ts +131 -0
  145. package/vendor/@anvil/common/src/tools/params/tool/create-plan.ts +80 -0
  146. package/vendor/@anvil/common/src/tools/params/tool/end-turn.ts +57 -0
  147. package/vendor/@anvil/common/src/tools/params/tool/find-files.ts +60 -0
  148. package/vendor/@anvil/common/src/tools/params/tool/glob.ts +80 -0
  149. package/vendor/@anvil/common/src/tools/params/tool/gravity-index.ts +93 -0
  150. package/vendor/@anvil/common/src/tools/params/tool/list-directory.ts +58 -0
  151. package/vendor/@anvil/common/src/tools/params/tool/lookup-agent-info.ts +37 -0
  152. package/vendor/@anvil/common/src/tools/params/tool/propose-str-replace.ts +103 -0
  153. package/vendor/@anvil/common/src/tools/params/tool/propose-write-file.ts +71 -0
  154. package/vendor/@anvil/common/src/tools/params/tool/read-docs.ts +90 -0
  155. package/vendor/@anvil/common/src/tools/params/tool/read-files.ts +109 -0
  156. package/vendor/@anvil/common/src/tools/params/tool/read-subtree.ts +79 -0
  157. package/vendor/@anvil/common/src/tools/params/tool/read-url.ts +81 -0
  158. package/vendor/@anvil/common/src/tools/params/tool/render-ui.ts +168 -0
  159. package/vendor/@anvil/common/src/tools/params/tool/run-file-change-hooks.ts +57 -0
  160. package/vendor/@anvil/common/src/tools/params/tool/run-terminal-command.ts +211 -0
  161. package/vendor/@anvil/common/src/tools/params/tool/screenshot.ts +97 -0
  162. package/vendor/@anvil/common/src/tools/params/tool/set-messages.ts +44 -0
  163. package/vendor/@anvil/common/src/tools/params/tool/set-output.ts +61 -0
  164. package/vendor/@anvil/common/src/tools/params/tool/skill.ts +59 -0
  165. package/vendor/@anvil/common/src/tools/params/tool/spawn-agent-inline.ts +56 -0
  166. package/vendor/@anvil/common/src/tools/params/tool/spawn-agents.ts +154 -0
  167. package/vendor/@anvil/common/src/tools/params/tool/str-replace.ts +107 -0
  168. package/vendor/@anvil/common/src/tools/params/tool/suggest-followups.ts +97 -0
  169. package/vendor/@anvil/common/src/tools/params/tool/task-completed.ts +61 -0
  170. package/vendor/@anvil/common/src/tools/params/tool/think-deeply.ts +56 -0
  171. package/vendor/@anvil/common/src/tools/params/tool/update-subgoal.ts +89 -0
  172. package/vendor/@anvil/common/src/tools/params/tool/vision-analyze.ts +82 -0
  173. package/vendor/@anvil/common/src/tools/params/tool/web-search.ts +73 -0
  174. package/vendor/@anvil/common/src/tools/params/tool/write-file.ts +71 -0
  175. package/vendor/@anvil/common/src/tools/params/tool/write-todos.ts +67 -0
  176. package/vendor/@anvil/common/src/tools/params/utils.ts +150 -0
  177. package/vendor/@anvil/common/src/tools/utils.ts +24 -0
  178. package/vendor/@anvil/common/src/types/__tests__/dynamic-agent-template.test.ts +20 -0
  179. package/vendor/@anvil/common/src/types/agent-template.ts +215 -0
  180. package/vendor/@anvil/common/src/types/anvil-session.ts +535 -0
  181. package/vendor/@anvil/common/src/types/anvil-streak.ts +6 -0
  182. package/vendor/@anvil/common/src/types/anvil-usage.ts +64 -0
  183. package/vendor/@anvil/common/src/types/api/agents/publish.ts +61 -0
  184. package/vendor/@anvil/common/src/types/bun-test.d.ts +5 -0
  185. package/vendor/@anvil/common/src/types/contracts/agent-runtime.ts +75 -0
  186. package/vendor/@anvil/common/src/types/contracts/analytics.ts +9 -0
  187. package/vendor/@anvil/common/src/types/contracts/bigquery.ts +55 -0
  188. package/vendor/@anvil/common/src/types/contracts/billing.ts +46 -0
  189. package/vendor/@anvil/common/src/types/contracts/client.ts +53 -0
  190. package/vendor/@anvil/common/src/types/contracts/database.ts +112 -0
  191. package/vendor/@anvil/common/src/types/contracts/env.ts +203 -0
  192. package/vendor/@anvil/common/src/types/contracts/llm.ts +191 -0
  193. package/vendor/@anvil/common/src/types/contracts/logger.ts +14 -0
  194. package/vendor/@anvil/common/src/types/contracts/logs.ts +34 -0
  195. package/vendor/@anvil/common/src/types/contracts/trace.ts +21 -0
  196. package/vendor/@anvil/common/src/types/dynamic-agent-template.ts +328 -0
  197. package/vendor/@anvil/common/src/types/filesystem.ts +10 -0
  198. package/vendor/@anvil/common/src/types/function-params.ts +33 -0
  199. package/vendor/@anvil/common/src/types/grant.ts +20 -0
  200. package/vendor/@anvil/common/src/types/gravity-index.ts +170 -0
  201. package/vendor/@anvil/common/src/types/json.ts +29 -0
  202. package/vendor/@anvil/common/src/types/mcp.ts +24 -0
  203. package/vendor/@anvil/common/src/types/messages/anvil-message.ts +58 -0
  204. package/vendor/@anvil/common/src/types/messages/content-part.ts +59 -0
  205. package/vendor/@anvil/common/src/types/messages/data-content.ts +14 -0
  206. package/vendor/@anvil/common/src/types/messages/provider-metadata.ts +13 -0
  207. package/vendor/@anvil/common/src/types/organization.ts +118 -0
  208. package/vendor/@anvil/common/src/types/print-mode.ts +121 -0
  209. package/vendor/@anvil/common/src/types/publisher.ts +67 -0
  210. package/vendor/@anvil/common/src/types/session-state.ts +149 -0
  211. package/vendor/@anvil/common/src/types/skill.ts +86 -0
  212. package/vendor/@anvil/common/src/types/source.ts +11 -0
  213. package/vendor/@anvil/common/src/types/spawn.ts +13 -0
  214. package/vendor/@anvil/common/src/types/subscription.ts +67 -0
  215. package/vendor/@anvil/common/src/types/usage.ts +16 -0
  216. package/vendor/@anvil/common/src/types/util.ts +3 -0
  217. package/vendor/@anvil/common/src/util/__tests__/ad-user-agent.test.ts +26 -0
  218. package/vendor/@anvil/common/src/util/__tests__/analytics-dispatcher.test.ts +122 -0
  219. package/vendor/@anvil/common/src/util/__tests__/analytics-log.test.ts +102 -0
  220. package/vendor/@anvil/common/src/util/__tests__/analytics-sampling.test.ts +143 -0
  221. package/vendor/@anvil/common/src/util/__tests__/anvil-streak.test.ts +202 -0
  222. package/vendor/@anvil/common/src/util/__tests__/anvil-usage-summary.test.ts +193 -0
  223. package/vendor/@anvil/common/src/util/__tests__/axiom-only-log.test.ts +140 -0
  224. package/vendor/@anvil/common/src/util/__tests__/client-user-agent.test.ts +148 -0
  225. package/vendor/@anvil/common/src/util/__tests__/engagement-tracker.test.ts +115 -0
  226. package/vendor/@anvil/common/src/util/__tests__/env-file-path.test.ts +57 -0
  227. package/vendor/@anvil/common/src/util/__tests__/error-abort.test.ts +774 -0
  228. package/vendor/@anvil/common/src/util/__tests__/error-api-details.test.ts +206 -0
  229. package/vendor/@anvil/common/src/util/__tests__/file-read-limits.test.ts +173 -0
  230. package/vendor/@anvil/common/src/util/__tests__/format-code-search.test.ts +60 -0
  231. package/vendor/@anvil/common/src/util/__tests__/log-mirror.test.ts +31 -0
  232. package/vendor/@anvil/common/src/util/__tests__/messages.test.ts +1252 -0
  233. package/vendor/@anvil/common/src/util/__tests__/partial-json-delta.test.ts +505 -0
  234. package/vendor/@anvil/common/src/util/__tests__/path.test.ts +22 -0
  235. package/vendor/@anvil/common/src/util/__tests__/project-ignore.test.ts +90 -0
  236. package/vendor/@anvil/common/src/util/__tests__/promise.test.ts +325 -0
  237. package/vendor/@anvil/common/src/util/__tests__/rate-limit.test.ts +28 -0
  238. package/vendor/@anvil/common/src/util/__tests__/reddit-anvil-retention.test.ts +130 -0
  239. package/vendor/@anvil/common/src/util/__tests__/saxy.test.ts +1008 -0
  240. package/vendor/@anvil/common/src/util/__tests__/split-data.test.ts +289 -0
  241. package/vendor/@anvil/common/src/util/__tests__/string.test.ts +239 -0
  242. package/vendor/@anvil/common/src/util/__tests__/thread-title.test.ts +70 -0
  243. package/vendor/@anvil/common/src/util/__tests__/tool-result-media-order.test.ts +108 -0
  244. package/vendor/@anvil/common/src/util/__tests__/ttft-histogram.test.ts +180 -0
  245. package/vendor/@anvil/common/src/util/__tests__/with-timeout.test.ts +24 -0
  246. package/vendor/@anvil/common/src/util/__tests__/zoned-time.test.ts +88 -0
  247. package/vendor/@anvil/common/src/util/ad-user-agent.ts +25 -0
  248. package/vendor/@anvil/common/src/util/agent-file-utils.ts +110 -0
  249. package/vendor/@anvil/common/src/util/agent-id-parsing.ts +136 -0
  250. package/vendor/@anvil/common/src/util/agent-name-normalization.ts +38 -0
  251. package/vendor/@anvil/common/src/util/agent-name-resolver.ts +86 -0
  252. package/vendor/@anvil/common/src/util/analytics-dispatcher.ts +82 -0
  253. package/vendor/@anvil/common/src/util/analytics-log.ts +78 -0
  254. package/vendor/@anvil/common/src/util/analytics-sampling.ts +255 -0
  255. package/vendor/@anvil/common/src/util/anvil-model-availability.ts +102 -0
  256. package/vendor/@anvil/common/src/util/anvil-privacy.ts +82 -0
  257. package/vendor/@anvil/common/src/util/anvil-streak-line.ts +103 -0
  258. package/vendor/@anvil/common/src/util/anvil-streak.ts +156 -0
  259. package/vendor/@anvil/common/src/util/anvil-usage-summary.ts +125 -0
  260. package/vendor/@anvil/common/src/util/array.ts +31 -0
  261. package/vendor/@anvil/common/src/util/axiom-only-log.ts +124 -0
  262. package/vendor/@anvil/common/src/util/cache-debug.ts +171 -0
  263. package/vendor/@anvil/common/src/util/client-user-agent.ts +114 -0
  264. package/vendor/@anvil/common/src/util/credentials.ts +26 -0
  265. package/vendor/@anvil/common/src/util/currency.ts +25 -0
  266. package/vendor/@anvil/common/src/util/dates.ts +81 -0
  267. package/vendor/@anvil/common/src/util/disposable-email.ts +277 -0
  268. package/vendor/@anvil/common/src/util/engagement-tracker.ts +129 -0
  269. package/vendor/@anvil/common/src/util/env-file-path.ts +40 -0
  270. package/vendor/@anvil/common/src/util/error.ts +562 -0
  271. package/vendor/@anvil/common/src/util/file-read-limits.ts +236 -0
  272. package/vendor/@anvil/common/src/util/file.ts +339 -0
  273. package/vendor/@anvil/common/src/util/format-code-search.ts +115 -0
  274. package/vendor/@anvil/common/src/util/lazy-response-ads.ts +92 -0
  275. package/vendor/@anvil/common/src/util/log-data.ts +57 -0
  276. package/vendor/@anvil/common/src/util/log-ingest.ts +58 -0
  277. package/vendor/@anvil/common/src/util/log-mirror.ts +34 -0
  278. package/vendor/@anvil/common/src/util/lru-cache.ts +67 -0
  279. package/vendor/@anvil/common/src/util/messages.ts +685 -0
  280. package/vendor/@anvil/common/src/util/min-heap.ts +87 -0
  281. package/vendor/@anvil/common/src/util/model-utils.ts +4 -0
  282. package/vendor/@anvil/common/src/util/object.ts +128 -0
  283. package/vendor/@anvil/common/src/util/partial-json-delta.ts +89 -0
  284. package/vendor/@anvil/common/src/util/path.ts +15 -0
  285. package/vendor/@anvil/common/src/util/project-ignore.ts +119 -0
  286. package/vendor/@anvil/common/src/util/promise.ts +73 -0
  287. package/vendor/@anvil/common/src/util/random.ts +15 -0
  288. package/vendor/@anvil/common/src/util/rate-limit.ts +56 -0
  289. package/vendor/@anvil/common/src/util/reddit-anvil-retention.ts +60 -0
  290. package/vendor/@anvil/common/src/util/reddit-capi-events.ts +36 -0
  291. package/vendor/@anvil/common/src/util/response-ad-positions.ts +54 -0
  292. package/vendor/@anvil/common/src/util/saxy.ts +741 -0
  293. package/vendor/@anvil/common/src/util/skills.test.ts +44 -0
  294. package/vendor/@anvil/common/src/util/skills.ts +36 -0
  295. package/vendor/@anvil/common/src/util/split-data.ts +259 -0
  296. package/vendor/@anvil/common/src/util/stop-sequence.ts +61 -0
  297. package/vendor/@anvil/common/src/util/string.ts +426 -0
  298. package/vendor/@anvil/common/src/util/system-info.ts +53 -0
  299. package/vendor/@anvil/common/src/util/thread-title.ts +46 -0
  300. package/vendor/@anvil/common/src/util/ttft-histogram.ts +73 -0
  301. package/vendor/@anvil/common/src/util/xml-parser.ts +27 -0
  302. package/vendor/@anvil/common/src/util/xml.ts +17 -0
  303. package/vendor/@anvil/common/src/util/zod-schema.ts +25 -0
  304. package/vendor/@anvil/common/src/util/zoned-time.ts +136 -0
  305. package/vendor/@anvil/common/src/utils/ask-user-bridge.ts +44 -0
  306. package/vendor/@anvil/sdk/dist/index.cjs +52297 -0
  307. package/vendor/@anvil/sdk/dist/index.cjs.map +440 -0
  308. package/vendor/@anvil/sdk/dist/index.d.ts +4277 -0
  309. package/vendor/@anvil/sdk/dist/index.mjs +52290 -0
  310. package/vendor/@anvil/sdk/dist/index.mjs.map +440 -0
  311. package/vendor/@anvil/sdk/dist/vendor/ai.cjs +30886 -0
  312. package/vendor/@anvil/sdk/dist/vendor/ripgrep/arm64-darwin/rg +0 -0
  313. package/vendor/@anvil/sdk/dist/vendor/ripgrep/arm64-linux/rg +0 -0
  314. package/vendor/@anvil/sdk/dist/vendor/ripgrep/x64-darwin/rg +0 -0
  315. package/vendor/@anvil/sdk/dist/vendor/ripgrep/x64-linux/rg +0 -0
  316. package/vendor/@anvil/sdk/dist/vendor/ripgrep/x64-win32/rg.exe +0 -0
  317. package/vendor/@anvil/sdk/dist/wasm/tree-sitter-c-sharp.wasm +0 -0
  318. package/vendor/@anvil/sdk/dist/wasm/tree-sitter-cpp.wasm +0 -0
  319. package/vendor/@anvil/sdk/dist/wasm/tree-sitter-go.wasm +0 -0
  320. package/vendor/@anvil/sdk/dist/wasm/tree-sitter-java.wasm +0 -0
  321. package/vendor/@anvil/sdk/dist/wasm/tree-sitter-javascript.wasm +0 -0
  322. package/vendor/@anvil/sdk/dist/wasm/tree-sitter-python.wasm +0 -0
  323. package/vendor/@anvil/sdk/dist/wasm/tree-sitter-ruby.wasm +0 -0
  324. package/vendor/@anvil/sdk/dist/wasm/tree-sitter-rust.wasm +0 -0
  325. package/vendor/@anvil/sdk/dist/wasm/tree-sitter-tsx.wasm +0 -0
  326. package/vendor/@anvil/sdk/dist/wasm/tree-sitter-typescript.wasm +0 -0
  327. package/vendor/@anvil/sdk/dist/wasm/tree-sitter.wasm +0 -0
  328. package/vendor/@anvil/sdk/package.json +21 -0
@@ -0,0 +1,497 @@
1
+ /**
2
+ * Anvil Agent Type Definitions
3
+ *
4
+ * This file provides TypeScript type definitions for creating custom Anvil agents.
5
+ * Import these types in your agent files to get full type safety and IntelliSense.
6
+ *
7
+ * Usage in .agents/your-agent.ts:
8
+ * import { AgentDefinition, ToolName, ModelName } from './types/agent-definition'
9
+ *
10
+ * const definition: AgentDefinition = {
11
+ * // ... your agent configuration with full type safety ...
12
+ * }
13
+ *
14
+ * export default definition
15
+ */
16
+
17
+ // ============================================================================
18
+ // Agent Definition and Utility Types
19
+ // ============================================================================
20
+
21
+ export interface AgentDefinition {
22
+ /** Unique identifier for this agent. Must contain only lowercase letters, numbers, and hyphens, e.g. 'code-reviewer' */
23
+ id: string
24
+
25
+ /** Version string (if not provided, will default to '0.0.1' and be bumped on each publish) */
26
+ version?: string
27
+
28
+ /** Publisher ID for the agent. Must be provided if you want to publish the agent. */
29
+ publisher?: string
30
+
31
+ /** Human-readable name for the agent */
32
+ displayName: string
33
+
34
+ /** AI model to use for this agent. Can be any model in OpenRouter: https://openrouter.ai/models */
35
+ model: ModelName
36
+
37
+ /**
38
+ * https://openrouter.ai/docs/use-cases/reasoning-tokens
39
+ * One of `max_tokens` or `effort` is required.
40
+ * If `exclude` is true, reasoning will be removed from the response. Default is false.
41
+ */
42
+ reasoningOptions?: {
43
+ enabled?: boolean
44
+ exclude?: boolean
45
+ } & (
46
+ | {
47
+ max_tokens: number
48
+ }
49
+ | {
50
+ effort: 'high' | 'medium' | 'low' | 'minimal' | 'none'
51
+ }
52
+ )
53
+
54
+ /**
55
+ * Provider routing options for OpenRouter.
56
+ * Controls which providers to use and fallback behavior.
57
+ * See https://openrouter.ai/docs/features/provider-routing
58
+ */
59
+ providerOptions?: {
60
+ /**
61
+ * List of provider slugs to try in order (e.g. ["anthropic", "openai"])
62
+ */
63
+ order?: string[]
64
+ /**
65
+ * Whether to allow backup providers when primary is unavailable (default: true)
66
+ */
67
+ allow_fallbacks?: boolean
68
+ /**
69
+ * Only use providers that support all parameters in your request (default: false)
70
+ */
71
+ require_parameters?: boolean
72
+ /**
73
+ * Control whether to use providers that may store data
74
+ */
75
+ data_collection?: 'allow' | 'deny'
76
+ /**
77
+ * List of provider slugs to allow for this request
78
+ */
79
+ only?: string[]
80
+ /**
81
+ * List of provider slugs to skip for this request
82
+ */
83
+ ignore?: string[]
84
+ /**
85
+ * List of quantization levels to filter by (e.g. ["int4", "int8"])
86
+ */
87
+ quantizations?: Array<
88
+ | 'int4'
89
+ | 'int8'
90
+ | 'fp4'
91
+ | 'fp6'
92
+ | 'fp8'
93
+ | 'fp16'
94
+ | 'bf16'
95
+ | 'fp32'
96
+ | 'unknown'
97
+ >
98
+ /**
99
+ * Sort providers by price, throughput, or latency
100
+ */
101
+ sort?: 'price' | 'throughput' | 'latency'
102
+ /**
103
+ * Maximum pricing you want to pay for this request
104
+ */
105
+ max_price?: {
106
+ prompt?: number | string
107
+ completion?: number | string
108
+ image?: number | string
109
+ audio?: number | string
110
+ request?: number | string
111
+ }
112
+ }
113
+
114
+ // ============================================================================
115
+ // Tools and Subagents
116
+ // ============================================================================
117
+
118
+ /** MCP servers by name. Names cannot contain `/`. */
119
+ mcpServers?: Record<string, MCPConfig>
120
+
121
+ /**
122
+ * Tools this agent can use.
123
+ *
124
+ * By default, all tools are available from any specified MCP server. In
125
+ * order to limit the tools from a specific MCP server, add the tool name(s)
126
+ * in the format `'mcpServerName/toolName1'`, `'mcpServerName/toolName2'`,
127
+ * etc.
128
+ */
129
+ toolNames?: (ToolName | (string & {}))[]
130
+
131
+ /** Other agents this agent can spawn, like 'anvil/file-picker@0.0.1'.
132
+ *
133
+ * Use the fully qualified agent id from the agent store, including publisher and version: 'anvil/file-picker@0.0.1'
134
+ * (publisher and version are required!)
135
+ *
136
+ * Or, use the agent id from a local agent file in your .agents directory: 'file-picker'.
137
+ */
138
+ spawnableAgents?: string[]
139
+
140
+ // ============================================================================
141
+ // Input and Output
142
+ // ============================================================================
143
+
144
+ /** The input schema required to spawn the agent. Provide a prompt string and/or a params object or none.
145
+ * 80% of the time you want just a prompt string with a description:
146
+ * inputSchema: {
147
+ * prompt: { type: 'string', description: 'A description of what info would be helpful to the agent' }
148
+ * }
149
+ */
150
+ inputSchema?: {
151
+ prompt?: { type: 'string'; description?: string }
152
+ params?: JsonObjectSchema
153
+ }
154
+
155
+ /** How the agent should output a response to its parent (defaults to 'last_message')
156
+ *
157
+ * last_message: The last message from the agent, typically after using tools.
158
+ *
159
+ * all_messages: All messages from the agent, including tool calls and results.
160
+ *
161
+ * structured_output: Make the agent output a JSON object. Can be used with outputSchema or without if you want freeform json output.
162
+ */
163
+ outputMode?: 'last_message' | 'all_messages' | 'structured_output'
164
+
165
+ /** JSON schema for structured output (when outputMode is 'structured_output') */
166
+ outputSchema?: JsonObjectSchema
167
+
168
+ // ============================================================================
169
+ // Prompts
170
+ // ============================================================================
171
+
172
+ /** Prompt for when and why to spawn this agent. Include the main purpose and use cases.
173
+ *
174
+ * This field is key if the agent is intended to be spawned by other agents. */
175
+ spawnerPrompt?: string
176
+
177
+ /** Whether to include conversation history from the parent agent in context.
178
+ *
179
+ * Defaults to false.
180
+ * Use this when the agent needs to know all the previous messages in the conversation.
181
+ */
182
+ includeMessageHistory?: boolean
183
+
184
+ /** Whether to inherit the parent agent's system prompt instead of using this agent's own systemPrompt.
185
+ *
186
+ * Defaults to false.
187
+ * Use this when you want to enable prompt caching by preserving the same system prompt prefix.
188
+ * Cannot be used together with the systemPrompt field.
189
+ */
190
+ inheritParentSystemPrompt?: boolean
191
+
192
+ /** Opt in to windowed file reads: read_files accepts { path, offset, limit }
193
+ * entries, whole-file reads are capped per file, glob results are capped, and
194
+ * the read_files/code_search tool descriptions teach a search-first reading
195
+ * style. Defaults to false, which keeps the legacy read behavior.
196
+ */
197
+ windowedFileReads?: boolean
198
+
199
+ /** Opt in to mechanical context compaction: the runtime rewrites old history
200
+ * into a condensed summary before the next step. Defaults to false.
201
+ *
202
+ * Compaction runs when the context grows past the model's budget, and also
203
+ * once the prompt cache has gone cold — the next request re-reads the whole
204
+ * history at full price anyway, so rewriting it there is free. Pass
205
+ * `{ cacheExpiryMs }` to tune that idle threshold, or `{ cacheExpiryMs: null }`
206
+ * to compact on the context limit only.
207
+ *
208
+ * The cold-cache pass is skipped on a context smaller than
209
+ * `cacheExpiryMinTokens`, since compaction always costs detail and a small
210
+ * history has little to reclaim. Pass null to take it at any size. The
211
+ * context-limit pass ignores this floor.
212
+ */
213
+ compactContext?:
214
+ | boolean
215
+ | {
216
+ cacheExpiryMs?: number | null
217
+ cacheExpiryMinTokens?: number | null
218
+ }
219
+
220
+ /** Background information for the agent. Fairly optional. Prefer using instructionsPrompt for agent instructions. */
221
+ systemPrompt?: string
222
+
223
+ /** Instructions for the agent.
224
+ *
225
+ * IMPORTANT: Updating this prompt is the best way to shape the agent's behavior.
226
+ * This prompt is inserted after each user input. */
227
+ instructionsPrompt?: string
228
+
229
+ /** Prompt inserted at each agent step.
230
+ *
231
+ * Powerful for changing the agent's behavior, but usually not necessary for smart models.
232
+ * Prefer instructionsPrompt for most instructions. */
233
+ stepPrompt?: string
234
+
235
+ // ============================================================================
236
+ // Handle Steps
237
+ // ============================================================================
238
+
239
+ /** Programmatically step the agent forward and run tools.
240
+ *
241
+ * You can either yield:
242
+ * - A tool call object with toolName and input properties.
243
+ * - 'STEP' to run agent's model and generate one assistant message.
244
+ * - 'STEP_ALL' to run the agent's model until it uses the end_turn tool or stops includes no tool calls in a message.
245
+ *
246
+ * Or use 'return' to end the turn.
247
+ *
248
+ * Example 1:
249
+ * function* handleSteps({ agentState, prompt, params, logger }) {
250
+ * logger.info('Starting file read process')
251
+ * const { toolResult } = yield {
252
+ * toolName: 'read_files',
253
+ * input: { paths: ['file1.txt', 'file2.txt'] }
254
+ * }
255
+ * yield 'STEP_ALL'
256
+ *
257
+ * // Optionally do a post-processing step here...
258
+ * logger.info('Files read successfully, setting output')
259
+ * yield {
260
+ * toolName: 'set_output',
261
+ * input: {
262
+ * output: 'The files were read successfully.',
263
+ * },
264
+ * }
265
+ * }
266
+ *
267
+ * Example 2:
268
+ * handleSteps: function* ({ agentState, prompt, params, logger }) {
269
+ * while (true) {
270
+ * logger.debug('Spawning thinker agent')
271
+ * yield {
272
+ * toolName: 'spawn_agents',
273
+ * input: {
274
+ * agents: [
275
+ * {
276
+ * agent_type: 'thinker',
277
+ * prompt: 'Think deeply about the user request',
278
+ * },
279
+ * ],
280
+ * },
281
+ * }
282
+ * const { stepsComplete } = yield 'STEP'
283
+ * if (stepsComplete) break
284
+ * }
285
+ * }
286
+ */
287
+ handleSteps?: (context: AgentStepContext) => Generator<
288
+ ToolCall | 'STEP' | 'STEP_ALL' | StepText | GenerateN,
289
+ void,
290
+ {
291
+ agentState: AgentState
292
+ toolResult: ToolResultOutput[] | undefined
293
+ stepsComplete: boolean
294
+ nResponses?: string[]
295
+ }
296
+ >
297
+ }
298
+
299
+ // ============================================================================
300
+ // Supporting Types
301
+ // ============================================================================
302
+
303
+ export interface AgentState {
304
+ agentId: string
305
+ runId: string
306
+ parentId: string | undefined
307
+
308
+ /** The agent's conversation history: messages from the user and the assistant. */
309
+ messageHistory: Message[]
310
+
311
+ /** The last value set by the set_output tool. This is a plain object or undefined if not set. */
312
+ output: Record<string, any> | undefined
313
+
314
+ /** The system prompt for this agent. */
315
+ systemPrompt: string
316
+
317
+ /** The tool definitions for this agent. */
318
+ toolDefinitions: Record<
319
+ string,
320
+ { description: string | undefined; inputSchema: {} }
321
+ >
322
+
323
+ /**
324
+ * The token count from the Anthropic API.
325
+ * This is updated on every agent step via the /api/v1/token-count endpoint.
326
+ */
327
+ contextTokenCount: number
328
+ }
329
+
330
+ /**
331
+ * Context provided to handleSteps generator function
332
+ */
333
+ export interface AgentStepContext {
334
+ agentState: AgentState
335
+ prompt?: string
336
+ params?: Record<string, any>
337
+ /**
338
+ * The model this step is running on, after any per-request override of the
339
+ * definition's `model`. `handleSteps` is serialized with `toString()`, so a
340
+ * generator cannot close over request-time state — read the model here
341
+ * instead (e.g. to size a context budget to the model's window).
342
+ *
343
+ * Supplied by the runtime; optional so a generator invoked directly (tests)
344
+ * or run on an older runtime degrades rather than throwing. Treat
345
+ * `undefined` as "unknown model" and pick a safe default.
346
+ */
347
+ model?: string
348
+ logger: Logger
349
+ }
350
+
351
+ export type StepText = { type: 'STEP_TEXT'; text: string }
352
+ export type GenerateN = { type: 'GENERATE_N'; n: number }
353
+
354
+ /**
355
+ * Tool call object for handleSteps generator
356
+ */
357
+ export type ToolCall<T extends ToolName = ToolName> = {
358
+ [K in T]: {
359
+ toolName: K
360
+ input: GetToolParams<K>
361
+ includeToolCall?: boolean
362
+ }
363
+ }[T]
364
+
365
+ // ============================================================================
366
+ // Available Tools
367
+ // ============================================================================
368
+
369
+ /**
370
+ * File operation tools
371
+ */
372
+ export type FileEditingTools = 'read_files' | 'write_file' | 'str_replace'
373
+
374
+ /**
375
+ * Code analysis tools
376
+ */
377
+ export type CodeAnalysisTools = 'code_search' | 'find_files' | 'read_files'
378
+
379
+ /**
380
+ * Terminal and system tools
381
+ */
382
+ export type TerminalTools = 'run_terminal_command' | 'code_search'
383
+
384
+ /**
385
+ * Web and browser tools
386
+ */
387
+ export type WebTools = 'web_search' | 'read_docs' | 'read_url'
388
+
389
+ /**
390
+ * Agent management tools
391
+ */
392
+ export type AgentTools = 'spawn_agents'
393
+
394
+ /**
395
+ * Output and control tools
396
+ */
397
+ export type OutputTools = 'set_output'
398
+
399
+ // ============================================================================
400
+ // Available Models (see: https://openrouter.ai/models)
401
+ // ============================================================================
402
+
403
+ /**
404
+ * AI models available for agents. Pick from our selection of recommended models or choose any model in OpenRouter.
405
+ *
406
+ * See available models at https://openrouter.ai/models
407
+ */
408
+ export type ModelName =
409
+ // Recommended Models
410
+
411
+ // OpenAI
412
+ | 'openai/gpt-5.3'
413
+ | 'openai/gpt-5.3-codex'
414
+ | 'openai/gpt-5.2'
415
+ | 'openai/gpt-5.1'
416
+ | 'openai/gpt-5.1-chat'
417
+ | 'openai/gpt-5-mini'
418
+ | 'openai/gpt-5-nano'
419
+
420
+ // Anthropic
421
+ | 'anthropic/claude-fable-5'
422
+ | 'anthropic/claude-opus-5'
423
+ | 'anthropic/claude-sonnet-4.6'
424
+ | 'anthropic/claude-opus-4.8'
425
+ | 'anthropic/claude-opus-4.7'
426
+ | 'anthropic/claude-opus-4.6'
427
+ | 'anthropic/claude-opus-4.5'
428
+ | 'anthropic/claude-haiku-4.5'
429
+ | 'anthropic/claude-sonnet-4.5'
430
+ | 'anthropic/claude-opus-4.1'
431
+
432
+ // Gemini
433
+ | 'google/gemini-3.1-pro-preview'
434
+ | 'google/gemini-3-pro-preview'
435
+ | 'google/gemini-3-flash-preview'
436
+ | 'google/gemini-3.5-flash-lite'
437
+ | 'google/gemini-3.1-flash-lite'
438
+ | 'google/gemini-2.5-pro'
439
+ | 'google/gemini-2.5-flash'
440
+ | 'google/gemini-2.5-flash-lite'
441
+
442
+ // Qwen
443
+ | 'qwen/qwen3-max'
444
+ | 'qwen/qwen3-coder-plus'
445
+ | 'qwen/qwen3-coder'
446
+ | 'qwen/qwen3-coder:nitro'
447
+ | 'qwen/qwen3-coder-flash'
448
+ | 'qwen/qwen3-235b-a22b-2507'
449
+ | 'qwen/qwen3-235b-a22b-2507:nitro'
450
+ | 'qwen/qwen3-235b-a22b-thinking-2507'
451
+ | 'qwen/qwen3-235b-a22b-thinking-2507:nitro'
452
+ | 'qwen/qwen3-30b-a3b'
453
+ | 'qwen/qwen3-30b-a3b:nitro'
454
+
455
+ // DeepSeek
456
+ | 'deepseek/deepseek-v4-pro'
457
+ | 'deepseek-v4-pro'
458
+ | 'deepseek/deepseek-v4-flash'
459
+ | 'deepseek-v4-flash'
460
+ | 'deepseek/deepseek-chat-v3-0324'
461
+ | 'deepseek/deepseek-chat-v3-0324:nitro'
462
+ | 'deepseek/deepseek-r1-0528'
463
+ | 'deepseek/deepseek-r1-0528:nitro'
464
+
465
+ // Xiaomi MiMo
466
+ | 'mimo/mimo-v2.5'
467
+ | 'mimo-v2.5'
468
+ | 'mimo/mimo-v2.5-pro'
469
+ | 'mimo-v2.5-pro'
470
+
471
+ // Other open source models
472
+ | 'moonshotai/kimi-k2'
473
+ | 'moonshotai/kimi-k2:nitro'
474
+ | 'moonshotai/kimi-k2.6'
475
+ | 'moonshotai/kimi-k2.7-code'
476
+ | 'z-ai/glm-5'
477
+ | 'z-ai/glm-5.1'
478
+ | 'z-ai/glm-4.6'
479
+ | 'z-ai/glm-4.6:nitro'
480
+ | 'z-ai/glm-4.7'
481
+ | 'z-ai/glm-4.7:nitro'
482
+ | 'z-ai/glm-4.7-flash'
483
+ | 'z-ai/glm-4.7-flash:nitro'
484
+ | 'minimax/minimax-m2.5'
485
+ | 'minimax/minimax-m3'
486
+ | (string & {})
487
+
488
+ import type { ToolName, GetToolParams } from './tools'
489
+ import type {
490
+ Message,
491
+ ToolResultOutput,
492
+ JsonObjectSchema,
493
+ MCPConfig,
494
+ Logger,
495
+ } from './util-types'
496
+
497
+ export type { ToolName, GetToolParams }