savant-code 0.0.19 → 0.0.20

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 (1591) hide show
  1. package/README.md +381 -550
  2. package/{cli/release/index.js → index.js} +0 -0
  3. package/package.json +44 -71
  4. package/.agents/skills/coding-csharp/SKILL.md +0 -82
  5. package/.agents/skills/coding-go/SKILL.md +0 -76
  6. package/.agents/skills/coding-java/SKILL.md +0 -79
  7. package/.agents/skills/coding-python/SKILL.md +0 -87
  8. package/.agents/skills/coding-rust/SKILL.md +0 -83
  9. package/.agents/skills/coding-typescript/SKILL.md +0 -90
  10. package/.agents/skills/release-workflow/SKILL.md +0 -69
  11. package/.bun-version +0 -1
  12. package/.commandcode/settings.json +0 -11
  13. package/.commandcode/taste/workflow/taste.md +0 -6
  14. package/.env.example +0 -95
  15. package/.gitattributes +0 -43
  16. package/.githooks/pre-push +0 -35
  17. package/.github/workflows/build-release-binaries.yml +0 -163
  18. package/.markdownlint.json +0 -42
  19. package/.markdownlintignore +0 -21
  20. package/.prettierignore +0 -9
  21. package/.prettierrc +0 -23
  22. package/.savantignore +0 -3
  23. package/AGENTS.md +0 -97
  24. package/ARCHITECTURE.md +0 -241
  25. package/CHANGELOG.md +0 -2631
  26. package/CONTRIBUTING.md +0 -88
  27. package/ECHO-freebuff.md +0 -22
  28. package/ECHO.md +0 -722
  29. package/FREEREADME.md +0 -35
  30. package/LEARNINGS.md +0 -345
  31. package/NOTICE +0 -15
  32. package/README.zh-CN.md +0 -479
  33. package/SECURITY.md +0 -8
  34. package/VERSION +0 -1
  35. package/WINDOWS.md +0 -238
  36. package/agents/README.md +0 -41
  37. package/agents/base-chat.ts +0 -44
  38. package/agents/basher.ts +0 -107
  39. package/agents/browser-use/browser-use.test.ts +0 -211
  40. package/agents/browser-use/browser-use.ts +0 -259
  41. package/agents/constants.ts +0 -1
  42. package/agents/context-pruner.ts +0 -1076
  43. package/agents/detective/detective.ts +0 -168
  44. package/agents/editor/best-of-n/best-of-n-selector2.ts +0 -148
  45. package/agents/editor/best-of-n/editor-implementor-gpt-5.ts +0 -7
  46. package/agents/editor/best-of-n/editor-implementor-opus.ts +0 -7
  47. package/agents/editor/best-of-n/editor-implementor.ts +0 -196
  48. package/agents/editor/best-of-n/editor-multi-prompt.ts +0 -265
  49. package/agents/file-explorer/directory-lister.ts +0 -92
  50. package/agents/file-explorer/glob-matcher.ts +0 -96
  51. package/agents/forge/forge.ts +0 -146
  52. package/agents/librarian/librarian.test.ts +0 -289
  53. package/agents/librarian/librarian.ts +0 -158
  54. package/agents/package.json +0 -11
  55. package/agents/recorder/recorder.ts +0 -104
  56. package/agents/researcher/researcher-docs.ts +0 -32
  57. package/agents/researcher/researcher-web.ts +0 -40
  58. package/agents/savant/savant-analyze.ts +0 -11
  59. package/agents/savant/savant-free-deepseek-flash.ts +0 -13
  60. package/agents/savant/savant-free-deepseek.ts +0 -13
  61. package/agents/savant/savant-free-evals.ts +0 -9
  62. package/agents/savant/savant-free-glm.ts +0 -13
  63. package/agents/savant/savant-free-kimi.ts +0 -13
  64. package/agents/savant/savant-free-mimo-pro.ts +0 -13
  65. package/agents/savant/savant-free-mimo.ts +0 -13
  66. package/agents/savant/savant-free-minimax-m3.ts +0 -13
  67. package/agents/savant/savant-free.ts +0 -9
  68. package/agents/savant/savant-scaffold.ts +0 -15
  69. package/agents/savant/savant.ts +0 -706
  70. package/agents/scout/scout.ts +0 -305
  71. package/agents/scribe/scribe.ts +0 -54
  72. package/agents/thinker/thinker-gemini.ts +0 -26
  73. package/agents/thinker/thinker-gpt.ts +0 -21
  74. package/agents/thinker/thinker-with-files-gemini.ts +0 -66
  75. package/agents/thinker/thinker.ts +0 -99
  76. package/agents/tmux-cli.ts +0 -724
  77. package/agents/tsconfig.json +0 -12
  78. package/agents/types/agent-definition.ts +0 -1
  79. package/agents/types/secret-agent-definition.ts +0 -103
  80. package/agents/types/tools.ts +0 -465
  81. package/agents/types/util-types.ts +0 -167
  82. package/agents/verifier/verifier.ts +0 -80
  83. package/art/savant-redesign.md +0 -7
  84. package/art/savant-text-graf.md +0 -5
  85. package/art/savant_ascii.md +0 -88
  86. package/assets/banner.png +0 -0
  87. package/bun.lock +0 -1979
  88. package/bunfig.toml +0 -7
  89. package/cli/README.md +0 -111
  90. package/cli/bunfig.toml +0 -2
  91. package/cli/cli_exit +0 -1
  92. package/cli/package.json +0 -66
  93. package/cli/release/README.md +0 -348
  94. package/cli/release/package.json +0 -56
  95. package/cli/release-core/README.md +0 -20
  96. package/cli/release-core/package.json +0 -4
  97. package/cli/release-core/prepare-package.js +0 -31
  98. package/cli/release-staging/README.md +0 -70
  99. package/cli/release-staging/index.js +0 -42
  100. package/cli/release-staging/package.json +0 -43
  101. package/cli/scripts/build-binary.ts +0 -469
  102. package/cli/scripts/clean.ts +0 -16
  103. package/cli/scripts/prebuild-agents.ts +0 -250
  104. package/cli/scripts/release.ts +0 -103
  105. package/cli/scripts/smoke-binary.ts +0 -280
  106. package/cli/scripts/test-sdk-file-hooks.sh +0 -87
  107. package/cli/scripts/validate-cli-with-tmux.sh +0 -43
  108. package/cli/src/__tests__/README.md +0 -256
  109. package/cli/src/__tests__/bash-mode.test.ts +0 -442
  110. package/cli/src/__tests__/cli-args.test.ts +0 -241
  111. package/cli/src/__tests__/e2e/first-time-login.test.ts +0 -173
  112. package/cli/src/__tests__/e2e/logout-relogin-flow.test.ts +0 -110
  113. package/cli/src/__tests__/e2e/returning-user-auth.test.ts +0 -111
  114. package/cli/src/__tests__/e2e-cli.test.ts +0 -185
  115. package/cli/src/__tests__/helpers/mock-api-client.ts +0 -64
  116. package/cli/src/__tests__/helpers/terminal-watchdog-fixture.ts +0 -50
  117. package/cli/src/__tests__/home-directory-detection.test.ts +0 -213
  118. package/cli/src/__tests__/integration/agent-toolnames-validation.test.ts +0 -63
  119. package/cli/src/__tests__/integration/api-integration.test.ts +0 -289
  120. package/cli/src/__tests__/integration/credentials-storage.test.ts +0 -453
  121. package/cli/src/__tests__/integration/local-agents.test.ts +0 -1187
  122. package/cli/src/__tests__/integration/login-flow-instrumentation.test.ts +0 -146
  123. package/cli/src/__tests__/integration/login-polling-working.test.ts +0 -287
  124. package/cli/src/__tests__/integration/usage-refresh-on-completion.test.ts +0 -177
  125. package/cli/src/__tests__/integration-tmux.test.ts +0 -186
  126. package/cli/src/__tests__/mocks/hover-toggle-controller.ts +0 -71
  127. package/cli/src/__tests__/path-completion.test.ts +0 -243
  128. package/cli/src/__tests__/project-files-chat-id.test.ts +0 -34
  129. package/cli/src/__tests__/release/proxy-http-get.test.ts +0 -670
  130. package/cli/src/__tests__/release/wrapper-safety.test.ts +0 -177
  131. package/cli/src/__tests__/rerender-perf.integration.test.ts +0 -283
  132. package/cli/src/__tests__/terminal-reset-sequences.test.ts +0 -36
  133. package/cli/src/__tests__/terminal-watchdog.test.ts +0 -114
  134. package/cli/src/__tests__/test-utils.ts +0 -266
  135. package/cli/src/__tests__/tmux-poc.ts +0 -150
  136. package/cli/src/__tests__/unit/agent-mode-toggle.test.ts +0 -138
  137. package/cli/src/__tests__/unit/copy-button.test.tsx +0 -188
  138. package/cli/src/__tests__/unit/create-run-config.test.ts +0 -77
  139. package/cli/src/__tests__/unit/publish-confirmation.test.ts +0 -70
  140. package/cli/src/__tests__/unit/segmented-control.test.ts +0 -167
  141. package/cli/src/__tests__/utils/env.test.ts +0 -210
  142. package/cli/src/__tests__/utils/project-picker.test.ts +0 -39
  143. package/cli/src/agents/bundled-agents.generated.d.ts +0 -14
  144. package/cli/src/agents/bundled-agents.generated.ts +0 -1962
  145. package/cli/src/app.tsx +0 -383
  146. package/cli/src/chat.tsx +0 -2008
  147. package/cli/src/cli-args.ts +0 -183
  148. package/cli/src/commands/__tests__/bash-command.test.ts +0 -449
  149. package/cli/src/commands/__tests__/command-args.test.ts +0 -325
  150. package/cli/src/commands/__tests__/copy-conversation.test.ts +0 -240
  151. package/cli/src/commands/__tests__/dev-command.test.ts +0 -128
  152. package/cli/src/commands/__tests__/diagnostics-command.test.ts +0 -35
  153. package/cli/src/commands/__tests__/image.test.ts +0 -99
  154. package/cli/src/commands/__tests__/init.test.ts +0 -479
  155. package/cli/src/commands/__tests__/loop-command.test.ts +0 -89
  156. package/cli/src/commands/__tests__/new-command-rotates-chat.test.ts +0 -87
  157. package/cli/src/commands/__tests__/permissions-command.test.ts +0 -93
  158. package/cli/src/commands/__tests__/process-diagnostics.test.ts +0 -54
  159. package/cli/src/commands/__tests__/prompt-builders.test.ts +0 -69
  160. package/cli/src/commands/__tests__/registry-gating.test.ts +0 -125
  161. package/cli/src/commands/__tests__/rewind-command.test.ts +0 -227
  162. package/cli/src/commands/__tests__/router-connect-chatgpt.test.ts +0 -72
  163. package/cli/src/commands/__tests__/router-input.test.ts +0 -302
  164. package/cli/src/commands/__tests__/router-provider-setup.test.ts +0 -180
  165. package/cli/src/commands/__tests__/savant-free-command-aliases.test.ts +0 -56
  166. package/cli/src/commands/ads.ts +0 -45
  167. package/cli/src/commands/command-registry.ts +0 -1112
  168. package/cli/src/commands/copy-conversation.ts +0 -386
  169. package/cli/src/commands/goal.ts +0 -87
  170. package/cli/src/commands/health-command.ts +0 -61
  171. package/cli/src/commands/help.ts +0 -13
  172. package/cli/src/commands/image.ts +0 -20
  173. package/cli/src/commands/init.ts +0 -121
  174. package/cli/src/commands/loop.ts +0 -182
  175. package/cli/src/commands/process-diagnostics.ts +0 -120
  176. package/cli/src/commands/prompt-builders.ts +0 -140
  177. package/cli/src/commands/publish.ts +0 -261
  178. package/cli/src/commands/rewind.ts +0 -130
  179. package/cli/src/commands/router-utils.ts +0 -80
  180. package/cli/src/commands/router.ts +0 -589
  181. package/cli/src/commands/telemetry.ts +0 -68
  182. package/cli/src/commands/usage.ts +0 -26
  183. package/cli/src/components/__tests__/ad-banner.test.tsx +0 -84
  184. package/cli/src/components/__tests__/block-helpers.test.tsx +0 -139
  185. package/cli/src/components/__tests__/clickable.test.tsx +0 -39
  186. package/cli/src/components/__tests__/grid-layout.integration.test.tsx +0 -365
  187. package/cli/src/components/__tests__/grid-layout.test.tsx +0 -1033
  188. package/cli/src/components/__tests__/markdown-content.test.tsx +0 -163
  189. package/cli/src/components/__tests__/message-block.completion.test.tsx +0 -104
  190. package/cli/src/components/__tests__/message-block.streaming.test.tsx +0 -78
  191. package/cli/src/components/__tests__/message-with-agents.test.tsx +0 -571
  192. package/cli/src/components/__tests__/multiline-input.test.tsx +0 -1129
  193. package/cli/src/components/__tests__/selectable-list.test.ts +0 -232
  194. package/cli/src/components/__tests__/shimmer-text.test.tsx +0 -32
  195. package/cli/src/components/__tests__/status-indicator.test.tsx +0 -184
  196. package/cli/src/components/__tests__/user-error-banner.test.tsx +0 -100
  197. package/cli/src/components/ad-banner.tsx +0 -351
  198. package/cli/src/components/agent-checklist.tsx +0 -385
  199. package/cli/src/components/agent-mode-toggle.tsx +0 -294
  200. package/cli/src/components/ask-user/__tests__/multiple-choice-form.test.ts +0 -432
  201. package/cli/src/components/ask-user/__tests__/validation.test.ts +0 -213
  202. package/cli/src/components/ask-user/components/accordion-question.tsx +0 -153
  203. package/cli/src/components/ask-user/components/custom-answer-input.tsx +0 -66
  204. package/cli/src/components/ask-user/components/options-list.tsx +0 -139
  205. package/cli/src/components/ask-user/components/question-header.tsx +0 -80
  206. package/cli/src/components/ask-user/components/question-option.tsx +0 -94
  207. package/cli/src/components/ask-user/constants.ts +0 -35
  208. package/cli/src/components/ask-user/index.tsx +0 -660
  209. package/cli/src/components/ask-user/utils/validation.ts +0 -85
  210. package/cli/src/components/attachment-card.tsx +0 -67
  211. package/cli/src/components/blocks/agent-block-grid.tsx +0 -58
  212. package/cli/src/components/blocks/agent-branch-item.tsx +0 -230
  213. package/cli/src/components/blocks/agent-branch-wrapper.tsx +0 -524
  214. package/cli/src/components/blocks/agent-list-branch.tsx +0 -77
  215. package/cli/src/components/blocks/ask-user-branch.tsx +0 -98
  216. package/cli/src/components/blocks/block-helpers.tsx +0 -257
  217. package/cli/src/components/blocks/blocks-renderer.tsx +0 -296
  218. package/cli/src/components/blocks/content-with-markdown.tsx +0 -34
  219. package/cli/src/components/blocks/copy-button.tsx +0 -106
  220. package/cli/src/components/blocks/copyable-block.tsx +0 -47
  221. package/cli/src/components/blocks/image-block.tsx +0 -128
  222. package/cli/src/components/blocks/implementor-row.tsx +0 -453
  223. package/cli/src/components/blocks/markdown-content.tsx +0 -360
  224. package/cli/src/components/blocks/markdown-renderables.tsx +0 -347
  225. package/cli/src/components/blocks/single-block.tsx +0 -210
  226. package/cli/src/components/blocks/thinking-block.tsx +0 -77
  227. package/cli/src/components/blocks/tool-block-group.tsx +0 -72
  228. package/cli/src/components/blocks/tool-branch.tsx +0 -196
  229. package/cli/src/components/blocks/user-content-copy.tsx +0 -171
  230. package/cli/src/components/bottom-banner.tsx +0 -145
  231. package/cli/src/components/build-mode-buttons.tsx +0 -110
  232. package/cli/src/components/button.tsx +0 -75
  233. package/cli/src/components/chat-header.tsx +0 -11
  234. package/cli/src/components/chat-history-screen.tsx +0 -417
  235. package/cli/src/components/chat-input-bar.tsx +0 -535
  236. package/cli/src/components/chatgpt-connect-banner.tsx +0 -234
  237. package/cli/src/components/clickable.tsx +0 -149
  238. package/cli/src/components/collapse-button.tsx +0 -36
  239. package/cli/src/components/command-palette.tsx +0 -166
  240. package/cli/src/components/copy-button.tsx +0 -219
  241. package/cli/src/components/dialog.tsx +0 -111
  242. package/cli/src/components/elapsed-timer.tsx +0 -56
  243. package/cli/src/components/error-boundary.tsx +0 -63
  244. package/cli/src/components/feedback-container.tsx +0 -206
  245. package/cli/src/components/feedback-icon-button.tsx +0 -89
  246. package/cli/src/components/feedback-input-mode.tsx +0 -352
  247. package/cli/src/components/file-attachment-card.tsx +0 -89
  248. package/cli/src/components/grid-layout.tsx +0 -83
  249. package/cli/src/components/help-banner.tsx +0 -136
  250. package/cli/src/components/highlighted-text.tsx +0 -52
  251. package/cli/src/components/image-card.tsx +0 -167
  252. package/cli/src/components/image-thumbnail.tsx +0 -112
  253. package/cli/src/components/input-cursor.tsx +0 -77
  254. package/cli/src/components/input-mode-banner.tsx +0 -70
  255. package/cli/src/components/load-previous-button.tsx +0 -48
  256. package/cli/src/components/login-modal.tsx +0 -450
  257. package/cli/src/components/message-block.tsx +0 -337
  258. package/cli/src/components/message-footer.tsx +0 -269
  259. package/cli/src/components/message-with-agents.tsx +0 -594
  260. package/cli/src/components/mode-divider.tsx +0 -43
  261. package/cli/src/components/model-picker.tsx +0 -371
  262. package/cli/src/components/multiline-input.tsx +0 -1276
  263. package/cli/src/components/out-of-credits-banner.tsx +0 -155
  264. package/cli/src/components/pending-attachments-banner.tsx +0 -125
  265. package/cli/src/components/pending-bash-message.tsx +0 -57
  266. package/cli/src/components/progress-bar.tsx +0 -81
  267. package/cli/src/components/project-picker-screen.tsx +0 -469
  268. package/cli/src/components/provider-picker.tsx +0 -139
  269. package/cli/src/components/publish-confirmation.tsx +0 -514
  270. package/cli/src/components/publish-container.tsx +0 -737
  271. package/cli/src/components/raised-pill.tsx +0 -89
  272. package/cli/src/components/renderers/plan-box.tsx +0 -70
  273. package/cli/src/components/review-screen.tsx +0 -114
  274. package/cli/src/components/rewind-picker.tsx +0 -276
  275. package/cli/src/components/right-sidebar.tsx +0 -296
  276. package/cli/src/components/savant-free-active-session-summary.tsx +0 -63
  277. package/cli/src/components/savant-free-landing-screen.tsx +0 -756
  278. package/cli/src/components/savant-free-model-selector.tsx +0 -815
  279. package/cli/src/components/savant-free-referral-banner.tsx +0 -423
  280. package/cli/src/components/savant-free-superseded-screen.tsx +0 -62
  281. package/cli/src/components/savant-ui/animation/pulse.tsx +0 -26
  282. package/cli/src/components/savant-ui/animation/typewriter.tsx +0 -40
  283. package/cli/src/components/savant-ui/branding.tsx +0 -59
  284. package/cli/src/components/savant-ui/data-display/badge.tsx +0 -52
  285. package/cli/src/components/savant-ui/data-display/code-block.tsx +0 -55
  286. package/cli/src/components/savant-ui/data-display/key-value.tsx +0 -34
  287. package/cli/src/components/savant-ui/data-display/sparkline.tsx +0 -42
  288. package/cli/src/components/savant-ui/data-display/timeline.tsx +0 -44
  289. package/cli/src/components/savant-ui/data-display/tree-view.tsx +0 -55
  290. package/cli/src/components/savant-ui/echo/__tests__/sidebar-collapse.test.tsx +0 -90
  291. package/cli/src/components/savant-ui/echo/agent-stack.tsx +0 -72
  292. package/cli/src/components/savant-ui/echo/agent-status.tsx +0 -66
  293. package/cli/src/components/savant-ui/echo/fid-card.tsx +0 -89
  294. package/cli/src/components/savant-ui/echo/fid-list.tsx +0 -68
  295. package/cli/src/components/savant-ui/echo/loop-status-panel.tsx +0 -64
  296. package/cli/src/components/savant-ui/echo/perfection-loop.tsx +0 -118
  297. package/cli/src/components/savant-ui/echo/phase-indicator.tsx +0 -68
  298. package/cli/src/components/savant-ui/echo/phase-info.ts +0 -72
  299. package/cli/src/components/savant-ui/echo/token-meter.tsx +0 -39
  300. package/cli/src/components/savant-ui/feedback/alert.tsx +0 -45
  301. package/cli/src/components/savant-ui/feedback/cost-tracker.tsx +0 -54
  302. package/cli/src/components/savant-ui/feedback/progress-bar.tsx +0 -71
  303. package/cli/src/components/savant-ui/feedback/spinner.tsx +0 -40
  304. package/cli/src/components/savant-ui/icon-theme-keys.ts +0 -67
  305. package/cli/src/components/savant-ui/icon.tsx +0 -53
  306. package/cli/src/components/savant-ui/index.ts +0 -75
  307. package/cli/src/components/savant-ui/input/select.tsx +0 -26
  308. package/cli/src/components/savant-ui/input/toggle.tsx +0 -28
  309. package/cli/src/components/savant-ui/layout/grid.tsx +0 -52
  310. package/cli/src/components/savant-ui/layout/header.tsx +0 -28
  311. package/cli/src/components/savant-ui/navigation/stepper.tsx +0 -41
  312. package/cli/src/components/savant-ui/primitives/key-hint.tsx +0 -45
  313. package/cli/src/components/savant-ui/primitives/key-value-row.tsx +0 -41
  314. package/cli/src/components/savant-ui/primitives/panel.tsx +0 -42
  315. package/cli/src/components/savant-ui/primitives/separator.tsx +0 -34
  316. package/cli/src/components/savant-ui/primitives/sidebar-section.tsx +0 -64
  317. package/cli/src/components/savant-ui/primitives/spacer.tsx +0 -13
  318. package/cli/src/components/savant-ui/primitives/stack.tsx +0 -35
  319. package/cli/src/components/savant-ui/theme.ts +0 -45
  320. package/cli/src/components/scroll-to-bottom-button.tsx +0 -34
  321. package/cli/src/components/segmented-control.tsx +0 -199
  322. package/cli/src/components/selectable-list.tsx +0 -249
  323. package/cli/src/components/selected-chips.tsx +0 -86
  324. package/cli/src/components/separator.tsx +0 -40
  325. package/cli/src/components/session-ended-banner.tsx +0 -183
  326. package/cli/src/components/shimmer-text.tsx +0 -254
  327. package/cli/src/components/status-bar.tsx +0 -279
  328. package/cli/src/components/subscription-limit-banner.tsx +0 -269
  329. package/cli/src/components/suggested-prompts.tsx +0 -184
  330. package/cli/src/components/suggestion-menu.tsx +0 -219
  331. package/cli/src/components/terminal-command-display.tsx +0 -152
  332. package/cli/src/components/terminal-link.tsx +0 -97
  333. package/cli/src/components/text-attachment-card.tsx +0 -77
  334. package/cli/src/components/thinking.tsx +0 -108
  335. package/cli/src/components/toast.tsx +0 -109
  336. package/cli/src/components/tools/__tests__/apply-patch.test.tsx +0 -97
  337. package/cli/src/components/tools/__tests__/code-search.test.tsx +0 -45
  338. package/cli/src/components/tools/__tests__/gravity-index.test.ts +0 -76
  339. package/cli/src/components/tools/__tests__/render-ui.test.tsx +0 -556
  340. package/cli/src/components/tools/__tests__/run-terminal-command.test.ts +0 -274
  341. package/cli/src/components/tools/__tests__/tool-call-item.test.tsx +0 -73
  342. package/cli/src/components/tools/apply-patch.tsx +0 -101
  343. package/cli/src/components/tools/code-search.tsx +0 -50
  344. package/cli/src/components/tools/composio.tsx +0 -140
  345. package/cli/src/components/tools/diff-viewer.tsx +0 -21
  346. package/cli/src/components/tools/glob.tsx +0 -66
  347. package/cli/src/components/tools/gravity-index.tsx +0 -80
  348. package/cli/src/components/tools/list-directory.tsx +0 -66
  349. package/cli/src/components/tools/read-docs.tsx +0 -36
  350. package/cli/src/components/tools/read-files.tsx +0 -97
  351. package/cli/src/components/tools/read-subtree.tsx +0 -40
  352. package/cli/src/components/tools/read-url.tsx +0 -32
  353. package/cli/src/components/tools/registry.ts +0 -131
  354. package/cli/src/components/tools/render-ui.tsx +0 -466
  355. package/cli/src/components/tools/run-terminal-command.tsx +0 -86
  356. package/cli/src/components/tools/skill.tsx +0 -26
  357. package/cli/src/components/tools/str-replace.tsx +0 -77
  358. package/cli/src/components/tools/suggest-followups.tsx +0 -373
  359. package/cli/src/components/tools/task-completed.tsx +0 -16
  360. package/cli/src/components/tools/tool-call-item.tsx +0 -163
  361. package/cli/src/components/tools/types.ts +0 -100
  362. package/cli/src/components/tools/web-search.tsx +0 -32
  363. package/cli/src/components/tools/write-file.tsx +0 -20
  364. package/cli/src/components/tools/write-todos.tsx +0 -105
  365. package/cli/src/components/top-banner.tsx +0 -187
  366. package/cli/src/components/usage-banner.tsx +0 -296
  367. package/cli/src/components/user-error-banner.tsx +0 -54
  368. package/cli/src/components/validation-error-popover.tsx +0 -191
  369. package/cli/src/data/slash-commands.ts +0 -306
  370. package/cli/src/hooks/__tests__/holds-live-savant-free-slot.test.ts +0 -49
  371. package/cli/src/hooks/__tests__/run-outcome.test.ts +0 -178
  372. package/cli/src/hooks/__tests__/session-fetch-signal.test.ts +0 -45
  373. package/cli/src/hooks/__tests__/use-activity-query.test.ts +0 -810
  374. package/cli/src/hooks/__tests__/use-ask-user-bridge.test.ts +0 -175
  375. package/cli/src/hooks/__tests__/use-auth-query.test.ts +0 -21
  376. package/cli/src/hooks/__tests__/use-chat-messages-collapse.test.ts +0 -96
  377. package/cli/src/hooks/__tests__/use-connection-status.test.ts +0 -112
  378. package/cli/src/hooks/__tests__/use-directory-browser.test.ts +0 -215
  379. package/cli/src/hooks/__tests__/use-gravity-ad.test.ts +0 -73
  380. package/cli/src/hooks/__tests__/use-grid-layout.test.ts +0 -346
  381. package/cli/src/hooks/__tests__/use-input-history.test.ts +0 -704
  382. package/cli/src/hooks/__tests__/use-loop-scheduler.test.ts +0 -247
  383. package/cli/src/hooks/__tests__/use-path-tab-completion.test.ts +0 -324
  384. package/cli/src/hooks/__tests__/use-queue-controls.test.ts +0 -68
  385. package/cli/src/hooks/__tests__/use-searchable-list.test.ts +0 -364
  386. package/cli/src/hooks/__tests__/use-send-message-timer.test.ts +0 -146
  387. package/cli/src/hooks/__tests__/use-suggestion-engine-mention.test.ts +0 -364
  388. package/cli/src/hooks/__tests__/use-suggestion-engine.test.ts +0 -485
  389. package/cli/src/hooks/__tests__/use-terminal-focus.test.ts +0 -66
  390. package/cli/src/hooks/__tests__/use-terminal-layout.test.ts +0 -675
  391. package/cli/src/hooks/__tests__/use-timeout.test.ts +0 -330
  392. package/cli/src/hooks/__tests__/use-usage-query.test.ts +0 -526
  393. package/cli/src/hooks/__tests__/use-user-details-query.test.ts +0 -225
  394. package/cli/src/hooks/helpers/__tests__/send-message.test.ts +0 -1851
  395. package/cli/src/hooks/helpers/send-message.ts +0 -553
  396. package/cli/src/hooks/run-outcome.ts +0 -64
  397. package/cli/src/hooks/stream-state.ts +0 -106
  398. package/cli/src/hooks/use-activity-query.ts +0 -696
  399. package/cli/src/hooks/use-agent-validation.ts +0 -80
  400. package/cli/src/hooks/use-ask-user-bridge.ts +0 -102
  401. package/cli/src/hooks/use-auth-query.ts +0 -261
  402. package/cli/src/hooks/use-auth-state.ts +0 -155
  403. package/cli/src/hooks/use-chat-input.ts +0 -87
  404. package/cli/src/hooks/use-chat-keyboard.ts +0 -325
  405. package/cli/src/hooks/use-chat-messages.ts +0 -273
  406. package/cli/src/hooks/use-chat-state.ts +0 -219
  407. package/cli/src/hooks/use-chat-streaming.ts +0 -270
  408. package/cli/src/hooks/use-chat-ui.ts +0 -136
  409. package/cli/src/hooks/use-clipboard.ts +0 -154
  410. package/cli/src/hooks/use-connection-status.ts +0 -156
  411. package/cli/src/hooks/use-directory-browser.ts +0 -88
  412. package/cli/src/hooks/use-elapsed-time.ts +0 -116
  413. package/cli/src/hooks/use-event.ts +0 -36
  414. package/cli/src/hooks/use-exit-handler.ts +0 -108
  415. package/cli/src/hooks/use-fetch-login-url.ts +0 -65
  416. package/cli/src/hooks/use-fids.ts +0 -48
  417. package/cli/src/hooks/use-fingerprint.ts +0 -64
  418. package/cli/src/hooks/use-gravity-ad.ts +0 -688
  419. package/cli/src/hooks/use-grid-layout.ts +0 -78
  420. package/cli/src/hooks/use-input-history.ts +0 -173
  421. package/cli/src/hooks/use-login-keyboard-handlers.ts +0 -74
  422. package/cli/src/hooks/use-login-polling.ts +0 -120
  423. package/cli/src/hooks/use-logo.tsx +0 -178
  424. package/cli/src/hooks/use-loop-scheduler.ts +0 -481
  425. package/cli/src/hooks/use-message-queue.ts +0 -301
  426. package/cli/src/hooks/use-now.ts +0 -20
  427. package/cli/src/hooks/use-path-tab-completion.ts +0 -88
  428. package/cli/src/hooks/use-publish-mutation.ts +0 -60
  429. package/cli/src/hooks/use-queue-controls.ts +0 -70
  430. package/cli/src/hooks/use-queue-ui.ts +0 -55
  431. package/cli/src/hooks/use-savant-free-ctrl-c-exit.ts +0 -23
  432. package/cli/src/hooks/use-savant-free-session-progress.ts +0 -34
  433. package/cli/src/hooks/use-savant-free-session.ts +0 -679
  434. package/cli/src/hooks/use-savant-free-streak-query.ts +0 -72
  435. package/cli/src/hooks/use-scaffold-confirm.ts +0 -62
  436. package/cli/src/hooks/use-scaffold-revert-subscriber.ts +0 -66
  437. package/cli/src/hooks/use-scroll-management.ts +0 -182
  438. package/cli/src/hooks/use-searchable-list.ts +0 -99
  439. package/cli/src/hooks/use-send-message.ts +0 -1038
  440. package/cli/src/hooks/use-sheen-animation.tsx +0 -88
  441. package/cli/src/hooks/use-subscription-query.ts +0 -106
  442. package/cli/src/hooks/use-suggestion-engine.ts +0 -793
  443. package/cli/src/hooks/use-terminal-breakpoints.ts +0 -77
  444. package/cli/src/hooks/use-terminal-dimensions.ts +0 -50
  445. package/cli/src/hooks/use-terminal-focus.ts +0 -146
  446. package/cli/src/hooks/use-terminal-layout.ts +0 -189
  447. package/cli/src/hooks/use-theme.tsx +0 -140
  448. package/cli/src/hooks/use-timeout.ts +0 -88
  449. package/cli/src/hooks/use-toast.ts +0 -114
  450. package/cli/src/hooks/use-update-preference.ts +0 -77
  451. package/cli/src/hooks/use-usage-monitor.ts +0 -59
  452. package/cli/src/hooks/use-usage-query.ts +0 -138
  453. package/cli/src/hooks/use-user-details-query.ts +0 -104
  454. package/cli/src/hooks/use-why-did-you-update.ts +0 -178
  455. package/cli/src/index.tsx +0 -484
  456. package/cli/src/init/__tests__/init-direnv.test.ts +0 -597
  457. package/cli/src/init/init-app.ts +0 -54
  458. package/cli/src/init/init-direnv.ts +0 -133
  459. package/cli/src/login/constants.ts +0 -71
  460. package/cli/src/login/login-flow.ts +0 -224
  461. package/cli/src/login/plain-login.ts +0 -107
  462. package/cli/src/login/utils.ts +0 -183
  463. package/cli/src/native/ripgrep.ts +0 -82
  464. package/cli/src/polyfills/bun-strip-ansi.ts +0 -12
  465. package/cli/src/pre-init/load-dev-env.ts +0 -98
  466. package/cli/src/pre-init/tree-sitter-wasm.ts +0 -98
  467. package/cli/src/project-files.ts +0 -102
  468. package/cli/src/state/__tests__/chat-store-focus.test.ts +0 -22
  469. package/cli/src/state/__tests__/feedback-store.test.ts +0 -260
  470. package/cli/src/state/chat-history-store.ts +0 -27
  471. package/cli/src/state/chat-store.ts +0 -791
  472. package/cli/src/state/feedback-store.ts +0 -162
  473. package/cli/src/state/gateway-catalog-store.ts +0 -45
  474. package/cli/src/state/login-store.ts +0 -150
  475. package/cli/src/state/message-block-store.ts +0 -143
  476. package/cli/src/state/model-picker-store.ts +0 -67
  477. package/cli/src/state/provider-picker-store.ts +0 -53
  478. package/cli/src/state/publish-store.ts +0 -141
  479. package/cli/src/state/review-store.ts +0 -24
  480. package/cli/src/state/rewind-picker-store.ts +0 -74
  481. package/cli/src/state/savant-free-model-store.ts +0 -59
  482. package/cli/src/state/savant-free-session-store.ts +0 -32
  483. package/cli/src/test-setup.ts +0 -20
  484. package/cli/src/testing/env.ts +0 -46
  485. package/cli/src/types/chat-state.ts +0 -15
  486. package/cli/src/types/chat.ts +0 -242
  487. package/cli/src/types/contracts/send-message.ts +0 -16
  488. package/cli/src/types/env.ts +0 -107
  489. package/cli/src/types/function-params.ts +0 -35
  490. package/cli/src/types/opentui-augmentation.d.ts +0 -11
  491. package/cli/src/types/react19-compat.d.ts +0 -19
  492. package/cli/src/types/savant-free-session.ts +0 -17
  493. package/cli/src/types/store.ts +0 -112
  494. package/cli/src/types/theme-system.ts +0 -194
  495. package/cli/src/types/utils.ts +0 -3
  496. package/cli/src/utils/__tests__/activity-tracker.test.ts +0 -440
  497. package/cli/src/utils/__tests__/agent-display.test.ts +0 -139
  498. package/cli/src/utils/__tests__/analytics-client.test.ts +0 -311
  499. package/cli/src/utils/__tests__/anonymous-id.test.ts +0 -74
  500. package/cli/src/utils/__tests__/arrays.test.ts +0 -264
  501. package/cli/src/utils/__tests__/bash-context-processor.test.ts +0 -38
  502. package/cli/src/utils/__tests__/block-processor.test.ts +0 -690
  503. package/cli/src/utils/__tests__/chat-history.test.ts +0 -247
  504. package/cli/src/utils/__tests__/chat-input-key-intercept.test.ts +0 -40
  505. package/cli/src/utils/__tests__/chat-layout.test.ts +0 -32
  506. package/cli/src/utils/__tests__/chat-meta.test.ts +0 -160
  507. package/cli/src/utils/__tests__/chatgpt-oauth.test.ts +0 -50
  508. package/cli/src/utils/__tests__/clipboard.test.ts +0 -998
  509. package/cli/src/utils/__tests__/code-search-summary.test.ts +0 -84
  510. package/cli/src/utils/__tests__/collapse-helpers.test.ts +0 -1272
  511. package/cli/src/utils/__tests__/error-handling.test.ts +0 -611
  512. package/cli/src/utils/__tests__/feedback-helpers.test.ts +0 -452
  513. package/cli/src/utils/__tests__/feedback-submission.test.ts +0 -26
  514. package/cli/src/utils/__tests__/fetch-usage.test.ts +0 -355
  515. package/cli/src/utils/__tests__/fingerprint.test.ts +0 -147
  516. package/cli/src/utils/__tests__/format-elapsed-time.test.ts +0 -103
  517. package/cli/src/utils/__tests__/format-timeout.test.ts +0 -87
  518. package/cli/src/utils/__tests__/image-dimensions.test.ts +0 -243
  519. package/cli/src/utils/__tests__/image-processor.test.ts +0 -250
  520. package/cli/src/utils/__tests__/implementor-helpers.test.ts +0 -1457
  521. package/cli/src/utils/__tests__/keyboard-actions.test.ts +0 -686
  522. package/cli/src/utils/__tests__/layout-helpers.test.ts +0 -36
  523. package/cli/src/utils/__tests__/lazy-response-ads.test.ts +0 -167
  524. package/cli/src/utils/__tests__/logger-sanitize-secrets.test.ts +0 -80
  525. package/cli/src/utils/__tests__/markdown-renderer.test.tsx +0 -518
  526. package/cli/src/utils/__tests__/markdown-streaming.test.ts +0 -64
  527. package/cli/src/utils/__tests__/message-block-helpers.test.ts +0 -1197
  528. package/cli/src/utils/__tests__/message-updater.test.ts +0 -659
  529. package/cli/src/utils/__tests__/ollama-onboarding.test.ts +0 -239
  530. package/cli/src/utils/__tests__/openrouter-models.test.ts +0 -295
  531. package/cli/src/utils/__tests__/osc-timeout-scenarios.test.ts +0 -172
  532. package/cli/src/utils/__tests__/pending-attachments.test.ts +0 -278
  533. package/cli/src/utils/__tests__/provider-setup.test.ts +0 -183
  534. package/cli/src/utils/__tests__/run-state-storage.test.ts +0 -741
  535. package/cli/src/utils/__tests__/savant-code-api.test.ts +0 -634
  536. package/cli/src/utils/__tests__/savant-free-instance-owner.test.ts +0 -69
  537. package/cli/src/utils/__tests__/savant-free-model-navigation.test.ts +0 -104
  538. package/cli/src/utils/__tests__/savant-free-premium-reset.test.ts +0 -81
  539. package/cli/src/utils/__tests__/savant-free-referral-cache.test.ts +0 -67
  540. package/cli/src/utils/__tests__/savant-free-session-display.test.ts +0 -23
  541. package/cli/src/utils/__tests__/savant-free-streak-line.test.ts +0 -76
  542. package/cli/src/utils/__tests__/sdk-event-handlers.test.ts +0 -615
  543. package/cli/src/utils/__tests__/send-message-helpers.test.ts +0 -1875
  544. package/cli/src/utils/__tests__/send-message-timer.test.ts +0 -68
  545. package/cli/src/utils/__tests__/settings.test.ts +0 -138
  546. package/cli/src/utils/__tests__/strings.test.ts +0 -210
  547. package/cli/src/utils/__tests__/syntax-theme.test.ts +0 -91
  548. package/cli/src/utils/__tests__/terminal-color-detection.test.ts +0 -425
  549. package/cli/src/utils/__tests__/terminal-enter-detection.test.ts +0 -77
  550. package/cli/src/utils/__tests__/text-layout.test.ts +0 -82
  551. package/cli/src/utils/__tests__/think-tag-parser.test.ts +0 -159
  552. package/cli/src/utils/__tests__/trace-writer.test.ts +0 -193
  553. package/cli/src/utils/__tests__/trim-chat-logs.test.ts +0 -79
  554. package/cli/src/utils/__tests__/usage-banner-state.test.ts +0 -298
  555. package/cli/src/utils/__tests__/validation-error-formatting.test.ts +0 -126
  556. package/cli/src/utils/__tests__/write-file-atomic.test.ts +0 -130
  557. package/cli/src/utils/active-run.ts +0 -22
  558. package/cli/src/utils/activity-tracker.ts +0 -66
  559. package/cli/src/utils/agent-display.ts +0 -87
  560. package/cli/src/utils/agent-helpers.ts +0 -47
  561. package/cli/src/utils/ai-message-id.ts +0 -12
  562. package/cli/src/utils/analytics.ts +0 -407
  563. package/cli/src/utils/anonymous-id.ts +0 -87
  564. package/cli/src/utils/arrays.ts +0 -117
  565. package/cli/src/utils/auth.ts +0 -258
  566. package/cli/src/utils/bash-context-processor.ts +0 -47
  567. package/cli/src/utils/bash-messages.ts +0 -108
  568. package/cli/src/utils/block-margins.ts +0 -35
  569. package/cli/src/utils/block-operations.ts +0 -548
  570. package/cli/src/utils/block-processor.ts +0 -212
  571. package/cli/src/utils/chat-history.ts +0 -265
  572. package/cli/src/utils/chat-input-key-intercept.ts +0 -52
  573. package/cli/src/utils/chat-layout.ts +0 -44
  574. package/cli/src/utils/chat-meta.ts +0 -101
  575. package/cli/src/utils/chat-scroll-accel.ts +0 -151
  576. package/cli/src/utils/chatgpt-oauth.ts +0 -350
  577. package/cli/src/utils/clipboard-image.ts +0 -610
  578. package/cli/src/utils/clipboard.ts +0 -307
  579. package/cli/src/utils/code-search-summary.ts +0 -69
  580. package/cli/src/utils/collapse-helpers.ts +0 -265
  581. package/cli/src/utils/config-dir.ts +0 -30
  582. package/cli/src/utils/constants.ts +0 -159
  583. package/cli/src/utils/create-event-handler-state.ts +0 -79
  584. package/cli/src/utils/create-run-config.ts +0 -160
  585. package/cli/src/utils/db-storage.ts +0 -254
  586. package/cli/src/utils/detect-shell.ts +0 -112
  587. package/cli/src/utils/directory-browser.ts +0 -74
  588. package/cli/src/utils/engagement.ts +0 -55
  589. package/cli/src/utils/env.ts +0 -109
  590. package/cli/src/utils/error-handling.ts +0 -246
  591. package/cli/src/utils/error-messages.ts +0 -84
  592. package/cli/src/utils/feedback-helpers.ts +0 -115
  593. package/cli/src/utils/feedback-submission.ts +0 -24
  594. package/cli/src/utils/fetch-usage.ts +0 -75
  595. package/cli/src/utils/fid-loader.ts +0 -135
  596. package/cli/src/utils/fingerprint.ts +0 -263
  597. package/cli/src/utils/finish-logic.ts +0 -154
  598. package/cli/src/utils/format-elapsed-time.ts +0 -33
  599. package/cli/src/utils/format-session-units.ts +0 -6
  600. package/cli/src/utils/format-timeout.ts +0 -28
  601. package/cli/src/utils/format-validation-errors-for-message.ts +0 -85
  602. package/cli/src/utils/git.ts +0 -17
  603. package/cli/src/utils/glyphs.ts +0 -188
  604. package/cli/src/utils/helpers.ts +0 -47
  605. package/cli/src/utils/image-display.ts +0 -73
  606. package/cli/src/utils/image-handler.ts +0 -336
  607. package/cli/src/utils/image-processor.ts +0 -133
  608. package/cli/src/utils/image-thumbnail.ts +0 -83
  609. package/cli/src/utils/implementor-helpers.ts +0 -817
  610. package/cli/src/utils/input-modes.ts +0 -196
  611. package/cli/src/utils/keyboard-actions.ts +0 -394
  612. package/cli/src/utils/keypad-keys.ts +0 -47
  613. package/cli/src/utils/layout-helpers.ts +0 -36
  614. package/cli/src/utils/lazy-response-ads.ts +0 -1
  615. package/cli/src/utils/loading-phrases.ts +0 -68
  616. package/cli/src/utils/local-agent-registry.ts +0 -611
  617. package/cli/src/utils/log-shipper.ts +0 -116
  618. package/cli/src/utils/logger.ts +0 -435
  619. package/cli/src/utils/markdown-renderer.tsx +0 -1315
  620. package/cli/src/utils/math.ts +0 -3
  621. package/cli/src/utils/message-block-helpers.ts +0 -667
  622. package/cli/src/utils/message-history.ts +0 -153
  623. package/cli/src/utils/message-tree-utils.ts +0 -67
  624. package/cli/src/utils/message-updater.ts +0 -279
  625. package/cli/src/utils/ollama-onboarding.ts +0 -215
  626. package/cli/src/utils/open-file.ts +0 -144
  627. package/cli/src/utils/open-url.ts +0 -63
  628. package/cli/src/utils/openrouter-models.ts +0 -945
  629. package/cli/src/utils/path-completion.ts +0 -111
  630. package/cli/src/utils/path-helpers.ts +0 -38
  631. package/cli/src/utils/pending-attachments.ts +0 -363
  632. package/cli/src/utils/post-processing.ts +0 -99
  633. package/cli/src/utils/project-picker.ts +0 -12
  634. package/cli/src/utils/provider-setup.ts +0 -259
  635. package/cli/src/utils/recent-projects.ts +0 -156
  636. package/cli/src/utils/renderer-cleanup.ts +0 -142
  637. package/cli/src/utils/response-ad-positions.ts +0 -1
  638. package/cli/src/utils/rewind.ts +0 -175
  639. package/cli/src/utils/run-state-storage.ts +0 -480
  640. package/cli/src/utils/savant-code-api.ts +0 -686
  641. package/cli/src/utils/savant-code-client.ts +0 -217
  642. package/cli/src/utils/savant-free-agent-selection.ts +0 -12
  643. package/cli/src/utils/savant-free-exit.ts +0 -24
  644. package/cli/src/utils/savant-free-instance-owner.ts +0 -66
  645. package/cli/src/utils/savant-free-model-navigation.ts +0 -46
  646. package/cli/src/utils/savant-free-premium-reset.ts +0 -52
  647. package/cli/src/utils/savant-free-referral-cache.ts +0 -35
  648. package/cli/src/utils/savant-free-session-display.ts +0 -21
  649. package/cli/src/utils/savant-free-streak-line.ts +0 -67
  650. package/cli/src/utils/sdk-event-handlers.ts +0 -587
  651. package/cli/src/utils/send-message-helpers.ts +0 -199
  652. package/cli/src/utils/send-message-timer.ts +0 -110
  653. package/cli/src/utils/settings.ts +0 -388
  654. package/cli/src/utils/skill-registry.ts +0 -100
  655. package/cli/src/utils/spawn-agent-matcher.ts +0 -56
  656. package/cli/src/utils/status-indicator-state.ts +0 -100
  657. package/cli/src/utils/stream-chunk-processor.ts +0 -65
  658. package/cli/src/utils/strings.ts +0 -272
  659. package/cli/src/utils/subscription.ts +0 -31
  660. package/cli/src/utils/syntax-highlighter.tsx +0 -19
  661. package/cli/src/utils/syntax-theme.ts +0 -131
  662. package/cli/src/utils/terminal-color-detection.ts +0 -472
  663. package/cli/src/utils/terminal-enter-detection.ts +0 -63
  664. package/cli/src/utils/terminal-images.ts +0 -223
  665. package/cli/src/utils/terminal-reset-sequences.ts +0 -33
  666. package/cli/src/utils/terminal-title.ts +0 -113
  667. package/cli/src/utils/terminal-watchdog.ts +0 -246
  668. package/cli/src/utils/text-layout.ts +0 -153
  669. package/cli/src/utils/theme-config.ts +0 -143
  670. package/cli/src/utils/theme-system.ts +0 -1265
  671. package/cli/src/utils/think-tag-parser.ts +0 -105
  672. package/cli/src/utils/trace-writer.ts +0 -147
  673. package/cli/src/utils/ui-constants.ts +0 -69
  674. package/cli/src/utils/usage-banner-state.ts +0 -146
  675. package/cli/src/utils/validation-error-formatting.ts +0 -92
  676. package/cli/src/utils/validation-error-helpers.ts +0 -19
  677. package/cli/src/utils/version.ts +0 -23
  678. package/cli/src/utils/word-wrap-utils.ts +0 -53
  679. package/cli/src/utils/write-file-atomic.ts +0 -82
  680. package/cli/src/utils/yield-to-event-loop.ts +0 -9
  681. package/cli/tsconfig.json +0 -26
  682. package/coding-standards/csharp.md +0 -77
  683. package/coding-standards/go.md +0 -71
  684. package/coding-standards/java.md +0 -74
  685. package/coding-standards/python.md +0 -82
  686. package/coding-standards/rust.md +0 -78
  687. package/coding-standards/typescript.md +0 -85
  688. package/coding-standards/x402.md +0 -227
  689. package/common/README.md +0 -41
  690. package/common/common_exit +0 -1
  691. package/common/package.json +0 -45
  692. package/common/src/__tests__/agent-validation.test.ts +0 -861
  693. package/common/src/__tests__/agents.test.ts +0 -16
  694. package/common/src/__tests__/dynamic-agent-template-schema.test.ts +0 -420
  695. package/common/src/__tests__/env-ci.test.ts +0 -167
  696. package/common/src/__tests__/env-process.test.ts +0 -145
  697. package/common/src/__tests__/free-agents.test.ts +0 -269
  698. package/common/src/__tests__/handlesteps-parsing.test.ts +0 -247
  699. package/common/src/__tests__/model-config.test.ts +0 -41
  700. package/common/src/__tests__/project-file-tree.test.ts +0 -82
  701. package/common/src/__tests__/response-ad-positions.test.ts +0 -78
  702. package/common/src/__tests__/savant-free-models.test.ts +0 -460
  703. package/common/src/__tests__/savant-free-referral-tiers.test.ts +0 -122
  704. package/common/src/__tests__/user-state.test.ts +0 -30
  705. package/common/src/actions.ts +0 -215
  706. package/common/src/analytics-core.ts +0 -73
  707. package/common/src/analytics.ts +0 -96
  708. package/common/src/api-keys/constants.ts +0 -26
  709. package/common/src/browser-actions.ts +0 -414
  710. package/common/src/constants/agents.ts +0 -250
  711. package/common/src/constants/analytics-events.ts +0 -318
  712. package/common/src/constants/anthropic.ts +0 -72
  713. package/common/src/constants/byok.ts +0 -2
  714. package/common/src/constants/chatgpt-oauth.ts +0 -85
  715. package/common/src/constants/composio.ts +0 -34
  716. package/common/src/constants/feedback.ts +0 -18
  717. package/common/src/constants/free-agents.ts +0 -347
  718. package/common/src/constants/gemini.ts +0 -6
  719. package/common/src/constants/grant-priorities.ts +0 -13
  720. package/common/src/constants/hosts.ts +0 -6
  721. package/common/src/constants/images.ts +0 -53
  722. package/common/src/constants/index.ts +0 -8
  723. package/common/src/constants/knowledge.ts +0 -46
  724. package/common/src/constants/limits.ts +0 -23
  725. package/common/src/constants/model-config.ts +0 -469
  726. package/common/src/constants/paths.ts +0 -69
  727. package/common/src/constants/savant-code-config.ts +0 -12
  728. package/common/src/constants/savant-free-gemini-thinker.ts +0 -30
  729. package/common/src/constants/savant-free-models.ts +0 -855
  730. package/common/src/constants/savant-free-referral-tiers.ts +0 -169
  731. package/common/src/constants/skills.ts +0 -60
  732. package/common/src/constants/subscription-plans.ts +0 -54
  733. package/common/src/constants/ui.ts +0 -25
  734. package/common/src/env-ci.ts +0 -36
  735. package/common/src/env-process.ts +0 -95
  736. package/common/src/env-schema.ts +0 -42
  737. package/common/src/env.ts +0 -69
  738. package/common/src/mcp/client.ts +0 -308
  739. package/common/src/old-constants.ts +0 -10
  740. package/common/src/project-file-tree.ts +0 -361
  741. package/common/src/reddit-capi.ts +0 -175
  742. package/common/src/schemas/feedback.ts +0 -57
  743. package/common/src/schemas/logs.ts +0 -66
  744. package/common/src/templates/agent-validation.ts +0 -436
  745. package/common/src/templates/initial-agents-dir/LICENSE +0 -202
  746. package/common/src/templates/initial-agents-dir/README.md +0 -314
  747. package/common/src/templates/initial-agents-dir/examples/01-basic-diff-reviewer.ts +0 -17
  748. package/common/src/templates/initial-agents-dir/examples/02-intermediate-git-committer.ts +0 -78
  749. package/common/src/templates/initial-agents-dir/examples/03-advanced-file-explorer.ts +0 -76
  750. package/common/src/templates/initial-agents-dir/my-custom-agent.ts +0 -40
  751. package/common/src/templates/initial-agents-dir/package.json +0 -6
  752. package/common/src/templates/initial-agents-dir/skills/README.md +0 -66
  753. package/common/src/templates/initial-agents-dir/skills/example-skill/SKILL.md +0 -29
  754. package/common/src/templates/initial-agents-dir/types/agent-definition.ts +0 -484
  755. package/common/src/templates/initial-agents-dir/types/tools.ts +0 -452
  756. package/common/src/templates/initial-agents-dir/types/util-types.ts +0 -167
  757. package/common/src/testing/TESTING_PATTERNS.md +0 -353
  758. package/common/src/testing/errors.ts +0 -33
  759. package/common/src/testing/fixtures/agent-runtime.ts +0 -325
  760. package/common/src/testing/impl/agent-runtime.ts +0 -6
  761. package/common/src/testing/index.ts +0 -84
  762. package/common/src/testing/mock-modules.ts +0 -54
  763. package/common/src/testing/mock-types.ts +0 -123
  764. package/common/src/testing/mocks/analytics.ts +0 -262
  765. package/common/src/testing/mocks/child-process.ts +0 -93
  766. package/common/src/testing/mocks/crypto.ts +0 -218
  767. package/common/src/testing/mocks/database.ts +0 -337
  768. package/common/src/testing/mocks/filesystem.ts +0 -166
  769. package/common/src/testing/mocks/index.ts +0 -83
  770. package/common/src/testing/mocks/logger.ts +0 -136
  771. package/common/src/testing/mocks/stream.ts +0 -314
  772. package/common/src/testing/mocks/timers.ts +0 -132
  773. package/common/src/testing/mocks/tree-sitter.ts +0 -127
  774. package/common/src/testing/setup.ts +0 -282
  775. package/common/src/testing-env-ci.ts +0 -15
  776. package/common/src/testing-env-process.ts +0 -78
  777. package/common/src/tools/__tests__/compile-tool-definitions.test.ts +0 -34
  778. package/common/src/tools/__tests__/thought-session.test.ts +0 -256
  779. package/common/src/tools/compile-tool-definitions.ts +0 -194
  780. package/common/src/tools/constants.ts +0 -132
  781. package/common/src/tools/list.ts +0 -193
  782. package/common/src/tools/params/__tests__/coerce-to-array.test.ts +0 -237
  783. package/common/src/tools/params/__tests__/sequential-thinking-coercion.test.ts +0 -98
  784. package/common/src/tools/params/tool/add-message.ts +0 -36
  785. package/common/src/tools/params/tool/add-subgoal.ts +0 -57
  786. package/common/src/tools/params/tool/apply-patch.ts +0 -110
  787. package/common/src/tools/params/tool/ask-user.ts +0 -181
  788. package/common/src/tools/params/tool/browser-logs.ts +0 -85
  789. package/common/src/tools/params/tool/code-search.ts +0 -144
  790. package/common/src/tools/params/tool/composio.ts +0 -131
  791. package/common/src/tools/params/tool/create-plan.ts +0 -80
  792. package/common/src/tools/params/tool/end-turn.ts +0 -54
  793. package/common/src/tools/params/tool/find-files.ts +0 -60
  794. package/common/src/tools/params/tool/glob.ts +0 -74
  795. package/common/src/tools/params/tool/gravity-index.ts +0 -92
  796. package/common/src/tools/params/tool/list-directory.ts +0 -58
  797. package/common/src/tools/params/tool/lookup-agent-info.ts +0 -37
  798. package/common/src/tools/params/tool/propose-str-replace.ts +0 -103
  799. package/common/src/tools/params/tool/propose-write-file.ts +0 -71
  800. package/common/src/tools/params/tool/read-docs.ts +0 -85
  801. package/common/src/tools/params/tool/read-files.ts +0 -61
  802. package/common/src/tools/params/tool/read-subtree.ts +0 -83
  803. package/common/src/tools/params/tool/read-url.ts +0 -81
  804. package/common/src/tools/params/tool/render-ui.ts +0 -203
  805. package/common/src/tools/params/tool/run-file-change-hooks.ts +0 -57
  806. package/common/src/tools/params/tool/run-readonly-command.ts +0 -76
  807. package/common/src/tools/params/tool/run-terminal-command.ts +0 -185
  808. package/common/src/tools/params/tool/sequential-thinking.ts +0 -110
  809. package/common/src/tools/params/tool/set-messages.ts +0 -42
  810. package/common/src/tools/params/tool/set-output.ts +0 -62
  811. package/common/src/tools/params/tool/set-scaffold-complete.ts +0 -51
  812. package/common/src/tools/params/tool/skill.ts +0 -56
  813. package/common/src/tools/params/tool/spawn-agent-inline.ts +0 -57
  814. package/common/src/tools/params/tool/spawn-agents.ts +0 -154
  815. package/common/src/tools/params/tool/str-replace.ts +0 -107
  816. package/common/src/tools/params/tool/suggest-followups.ts +0 -94
  817. package/common/src/tools/params/tool/task-completed.ts +0 -58
  818. package/common/src/tools/params/tool/think-deeply.ts +0 -53
  819. package/common/src/tools/params/tool/transition-phase.ts +0 -57
  820. package/common/src/tools/params/tool/update-subgoal.ts +0 -89
  821. package/common/src/tools/params/tool/web-search.ts +0 -73
  822. package/common/src/tools/params/tool/write-file.ts +0 -71
  823. package/common/src/tools/params/tool/write-todos.ts +0 -67
  824. package/common/src/tools/params/utils.ts +0 -152
  825. package/common/src/tools/safety-registry.ts +0 -274
  826. package/common/src/tools/safety.ts +0 -42
  827. package/common/src/tools/sequential-thinking.ts +0 -340
  828. package/common/src/tools/utils.ts +0 -25
  829. package/common/src/types/__tests__/dynamic-agent-template.test.ts +0 -20
  830. package/common/src/types/agent-template.ts +0 -223
  831. package/common/src/types/api/agents/publish.ts +0 -63
  832. package/common/src/types/contracts/agent-runtime.ts +0 -84
  833. package/common/src/types/contracts/analytics.ts +0 -12
  834. package/common/src/types/contracts/bigquery.ts +0 -55
  835. package/common/src/types/contracts/billing.ts +0 -46
  836. package/common/src/types/contracts/client.ts +0 -52
  837. package/common/src/types/contracts/database.ts +0 -104
  838. package/common/src/types/contracts/env.ts +0 -203
  839. package/common/src/types/contracts/llm.ts +0 -183
  840. package/common/src/types/contracts/logger.ts +0 -29
  841. package/common/src/types/contracts/logs.ts +0 -34
  842. package/common/src/types/contracts/trace.ts +0 -21
  843. package/common/src/types/dynamic-agent-template.ts +0 -290
  844. package/common/src/types/filesystem.ts +0 -10
  845. package/common/src/types/function-params.ts +0 -35
  846. package/common/src/types/grant.ts +0 -20
  847. package/common/src/types/gravity-index.ts +0 -170
  848. package/common/src/types/json.ts +0 -26
  849. package/common/src/types/mcp.ts +0 -26
  850. package/common/src/types/messages/content-part.ts +0 -59
  851. package/common/src/types/messages/data-content.ts +0 -14
  852. package/common/src/types/messages/provider-metadata.ts +0 -10
  853. package/common/src/types/messages/savant-code-message.ts +0 -55
  854. package/common/src/types/organization.ts +0 -118
  855. package/common/src/types/print-mode.ts +0 -167
  856. package/common/src/types/publisher.ts +0 -67
  857. package/common/src/types/savant-free-session.ts +0 -295
  858. package/common/src/types/savant-free-streak.ts +0 -6
  859. package/common/src/types/session-state.ts +0 -237
  860. package/common/src/types/skill.ts +0 -56
  861. package/common/src/types/source.ts +0 -11
  862. package/common/src/types/spawn.ts +0 -13
  863. package/common/src/types/subscription.ts +0 -68
  864. package/common/src/types/usage.ts +0 -16
  865. package/common/src/types/util.ts +0 -3
  866. package/common/src/util/__tests__/analytics-dispatcher.test.ts +0 -145
  867. package/common/src/util/__tests__/analytics-log.test.ts +0 -110
  868. package/common/src/util/__tests__/analytics-sampling.test.ts +0 -131
  869. package/common/src/util/__tests__/axiom-only-log.test.ts +0 -64
  870. package/common/src/util/__tests__/engagement-tracker.test.ts +0 -115
  871. package/common/src/util/__tests__/error-abort.test.ts +0 -822
  872. package/common/src/util/__tests__/error-api-details.test.ts +0 -190
  873. package/common/src/util/__tests__/format-code-search.test.ts +0 -60
  874. package/common/src/util/__tests__/log-mirror.test.ts +0 -31
  875. package/common/src/util/__tests__/messages.test.ts +0 -1118
  876. package/common/src/util/__tests__/partial-json-delta.test.ts +0 -505
  877. package/common/src/util/__tests__/paths.test.ts +0 -289
  878. package/common/src/util/__tests__/promise.test.ts +0 -334
  879. package/common/src/util/__tests__/protocol-config.test.ts +0 -119
  880. package/common/src/util/__tests__/rate-limit.test.ts +0 -28
  881. package/common/src/util/__tests__/reddit-savant-free-retention.test.ts +0 -120
  882. package/common/src/util/__tests__/savant-free-streak.test.ts +0 -142
  883. package/common/src/util/__tests__/saxy.test.ts +0 -1008
  884. package/common/src/util/__tests__/string.test.ts +0 -238
  885. package/common/src/util/__tests__/zoned-time.test.ts +0 -88
  886. package/common/src/util/agent-file-utils.ts +0 -110
  887. package/common/src/util/agent-id-parsing.ts +0 -147
  888. package/common/src/util/agent-name-normalization.ts +0 -39
  889. package/common/src/util/analytics-dispatcher.ts +0 -81
  890. package/common/src/util/analytics-log.ts +0 -84
  891. package/common/src/util/analytics-sampling.ts +0 -225
  892. package/common/src/util/array.ts +0 -63
  893. package/common/src/util/axiom-only-log.ts +0 -79
  894. package/common/src/util/cache-debug.ts +0 -191
  895. package/common/src/util/credentials.ts +0 -12
  896. package/common/src/util/currency.ts +0 -25
  897. package/common/src/util/dates.ts +0 -81
  898. package/common/src/util/engagement-tracker.ts +0 -133
  899. package/common/src/util/error.ts +0 -580
  900. package/common/src/util/file.ts +0 -363
  901. package/common/src/util/format-code-search.ts +0 -115
  902. package/common/src/util/lazy-response-ads.ts +0 -93
  903. package/common/src/util/log-data.ts +0 -57
  904. package/common/src/util/log-mirror.ts +0 -34
  905. package/common/src/util/lru-cache.ts +0 -67
  906. package/common/src/util/messages.ts +0 -600
  907. package/common/src/util/model-utils.ts +0 -25
  908. package/common/src/util/object.ts +0 -137
  909. package/common/src/util/param-helpers.ts +0 -49
  910. package/common/src/util/partial-json-delta.ts +0 -100
  911. package/common/src/util/paths.ts +0 -194
  912. package/common/src/util/promise.ts +0 -87
  913. package/common/src/util/protocol-config.ts +0 -141
  914. package/common/src/util/random.ts +0 -15
  915. package/common/src/util/rate-limit.ts +0 -56
  916. package/common/src/util/reddit-capi-events.ts +0 -40
  917. package/common/src/util/reddit-savant-free-retention.ts +0 -69
  918. package/common/src/util/response-ad-positions.ts +0 -54
  919. package/common/src/util/savant-free-privacy.ts +0 -78
  920. package/common/src/util/savant-free-streak.ts +0 -153
  921. package/common/src/util/saxy.ts +0 -739
  922. package/common/src/util/skills.ts +0 -32
  923. package/common/src/util/stop-sequence.ts +0 -60
  924. package/common/src/util/string.ts +0 -419
  925. package/common/src/util/system-info.ts +0 -51
  926. package/common/src/util/type-narrowing.ts +0 -125
  927. package/common/src/util/xml.ts +0 -17
  928. package/common/src/util/zod-schema.ts +0 -80
  929. package/common/src/util/zoned-time.ts +0 -136
  930. package/common/src/utils/ask-user-bridge.ts +0 -47
  931. package/common/tsconfig.json +0 -8
  932. package/database.db +0 -0
  933. package/dev/LEARNINGS.md +0 -309
  934. package/dev/fids/.gitkeep +0 -0
  935. package/dev/fids/archive/.gitkeep +0 -0
  936. package/dev/fids/archive/FID-2026-0802-008-sdk-package-audit-client-run-run-state.md +0 -238
  937. package/dev/fids/archive/FID-2026-0803-001-echo-enforcement-layer-drift.md +0 -404
  938. package/dev/fids/archive/FID-2026-0803-002-llm-providers-database-audit.md +0 -348
  939. package/dev/fids/archive/FID-2026-0803-003-sdk-impl-common-util-audit.md +0 -277
  940. package/dev/fids/archive/FID-2026-0803-004-checkpoint-rewind.md +0 -181
  941. package/dev/fids/archive/FID-2026-0803-005-quality-scan-hygiene-fixes.md +0 -265
  942. package/dev/fids/archive/FID-2026-0803-006-code-map-audit-hygiene.md +0 -243
  943. package/dev/fids/archive/FID-2026-0803-007-evals-benchmark-audit-hygiene.md +0 -296
  944. package/dev/fids/archive/FID-2026-0803-009-echo-enforcement-doc-drift.md +0 -112
  945. package/dev/fids/archive/FID-2026-0803-010-database-llm-providers-low-fixes.md +0 -255
  946. package/dev/fids/archive/FID-2026-0803-011-build-artifact-hygiene.md +0 -169
  947. package/dev/fids/archive/FID-2026-0803-012-release-readiness-audit.md +0 -162
  948. package/dev/fids/archive/FID-2026-0803-013-agent-roster-over-reporting.md +0 -146
  949. package/dev/fids/archive/FID-2026-0803-014-freebuff-to-savant-rebrand-sweep.md +0 -185
  950. package/dev/nova/reports/2026-08-02-top-25-ai-inference-providers-competitive-intel.md +0 -213
  951. package/dev/nova/specs/echo-v0.1.2-freebuff.md +0 -391
  952. package/dev/nova/specs/goal-loop-feature-spec.md +0 -245
  953. package/dev/nova/specs/launch-strategy-research-prompt.md +0 -88
  954. package/dev/releases/README.md +0 -50
  955. package/dev/scratchpad/.gitkeep +0 -0
  956. package/dev/session-summaries/.gitkeep +0 -0
  957. package/dev/session-summaries/2026-07-16-1255.md +0 -128
  958. package/dev/session-summaries/2026-07-17-1000.md +0 -64
  959. package/dev/session-summaries/2026-07-19-eslint-zero-tolerance-cleanup.md +0 -145
  960. package/dev/session-summaries/2026-07-19-fid-026-debugging-and-rename.md +0 -79
  961. package/dev/session-summaries/2026-07-19-fid-026-phase-b-rebrand.md +0 -76
  962. package/dev/session-summaries/2026-07-19-fid-027-clean-break.md +0 -47
  963. package/dev/session-summaries/2026-07-19-pre-push-house-cleaning.md +0 -100
  964. package/dev/session-summaries/2026-07-19-v0.0.2-release-session.md +0 -229
  965. package/dev/session-summaries/2026-07-20-1805-fid-loop-closure.md +0 -95
  966. package/dev/session-summaries/2026-07-22-1800.md +0 -52
  967. package/dev/session-summaries/2026-07-23-fsm-optimization.md +0 -88
  968. package/dev/session-summaries/2026-07-25-0000.md +0 -80
  969. package/dev/session-summaries/2026-07-25-1200-context-compaction.md +0 -154
  970. package/dev/session-summaries/2026-07-25-1600-layer4-reactive-compact.md +0 -96
  971. package/dev/session-summaries/2026-07-25-1700-dev-folder-audit.md +0 -161
  972. package/dev/session-summaries/2026-07-25-2000-benchmark-v2-filters.md +0 -147
  973. package/dev/session-summaries/2026-07-25-2000.md +0 -77
  974. package/dev/session-summaries/2026-07-27-0000.md +0 -63
  975. package/dev/session-summaries/2026-07-28-history-capture-handoff.md +0 -206
  976. package/dev/session-summaries/2026-07-31-freebuff-echo-compliance-remediation.md +0 -156
  977. package/dev/session-summaries/2026-07-31-pre-launch-optimization-execution.md +0 -46
  978. package/dev/session-summaries/2026-0721-1800.md +0 -44
  979. package/dev/session-summaries/2026-08-01-sidebar-folded-startup.md +0 -159
  980. package/dev/session-summaries/2026-08-02-0.0.15-release-closeout.md +0 -32
  981. package/dev/session-summaries/2026-08-02-repository-hygiene.md +0 -51
  982. package/dev/session-summaries/2026-08-03-agent-roster-fix-and-ready-check-closeout.md +0 -73
  983. package/dev/session-summaries/2026-08-03-build-artifact-hygiene-closeout.md +0 -40
  984. package/dev/session-summaries/2026-08-03-code-map-audit-closeout.md +0 -44
  985. package/dev/session-summaries/2026-08-03-database-llm-providers-low-fixes-closeout.md +0 -47
  986. package/dev/session-summaries/2026-08-03-echo-enforcement-doc-drift-closeout.md +0 -43
  987. package/dev/session-summaries/2026-08-03-evals-benchmark-audit-closeout.md +0 -50
  988. package/dev/session-summaries/2026-08-03-quality-scan-hygiene-fixes-closeout.md +0 -57
  989. package/dev/session-summaries/2026-08-03-quality-session-checkpoint-rewind-closeout.md +0 -56
  990. package/dev/session-summaries/2026-08-03-release-readiness-audit-closeout.md +0 -60
  991. package/dev/test-prompts/archive/0.0.2-final-pass.md +0 -209
  992. package/dev/test-prompts/archive/agent-capabilities-full-test.md +0 -361
  993. package/dev/test-prompts/archive/agent-capabilities-test.md +0 -471
  994. package/dev/test-prompts/archive/comprehensive-az-system-test-v1.md +0 -441
  995. package/dev/test-prompts/archive/comprehensive-az-system-test-v2-report.md +0 -377
  996. package/dev/test-prompts/archive/comprehensive-az-system-test-v2.md +0 -544
  997. package/dev/test-prompts/archive/comprehensive-az-system-test.md +0 -396
  998. package/dev/test-prompts/archive/comprehensive-az-test-final.md +0 -900
  999. package/dev/test-prompts/archive/comprehensive-az-test-v11.md +0 -141
  1000. package/dev/test-prompts/archive/comprehensive-az-test-v12.md +0 -29
  1001. package/dev/test-prompts/archive/comprehensive-az-test-v6.md +0 -631
  1002. package/dev/test-prompts/archive/comprehensive-az-test-v7.md +0 -625
  1003. package/dev/test-prompts/archive/fid-007-ability-confirmation.md +0 -248
  1004. package/dev/test-prompts/archive/fid-2026-0801-006-thinker-tool-call-boundary.md +0 -86
  1005. package/dev/test-prompts/archive/fid-2026-0801-007-child-tool-set-fallback-cli.md +0 -101
  1006. package/dev/test-prompts/archive/fid-2026-0801-008-provider-tool-call-accumulation-cli.md +0 -111
  1007. package/dev/test-prompts/archive/fid-2026-0801-012-thinker-state-output-cli.md +0 -134
  1008. package/dev/test-prompts/archive/gemini-deep-research-sidebar-highlight.md +0 -598
  1009. package/dev/test-prompts/archive/goal-loop-cli-test.md +0 -142
  1010. package/dev/test-prompts/archive/rebrand-qa.md +0 -258
  1011. package/dev/test-prompts/archive/release-az-test-fid-085.md +0 -306
  1012. package/dev/test-prompts/archive/release-az-test-fid-087.md +0 -219
  1013. package/dev/test-prompts/archive/release-az-test-fid-2026-0726-001.md +0 -270
  1014. package/dev/test-prompts/archive/release-az-test-fid-2026-0728-008.md +0 -213
  1015. package/dev/test-prompts/archive/release-az-test-fid-2026-0728-launch-tracks.md +0 -253
  1016. package/dev/test-prompts/archive/release-az-test-fid-2026-0731-pre-launch.md +0 -102
  1017. package/docs/AI Coding Agents Market Research.md +0 -516
  1018. package/docs/Agent Harness Feature Pairing Research.md +0 -166
  1019. package/docs/CLI Agent Inference Backend Research.md +0 -446
  1020. package/docs/Codebuff Rebranding And Migration Plan.md +0 -418
  1021. package/docs/ECHO-EVOLUTION-ARCH.md +0 -77
  1022. package/docs/Harness Engineering for Coding Agents Research.md +0 -196
  1023. package/docs/Launch Plan Review and Optimization.md +0 -178
  1024. package/docs/OpenTUI Sidebar Bug Fix.md +0 -245
  1025. package/docs/SAVANT-VERSIONING.md +0 -31
  1026. package/docs/Savant Code Launch Strategy.md +0 -270
  1027. package/docs/Savant-Code Business And Backend Research.md +0 -222
  1028. package/docs/agents-and-tools.md +0 -217
  1029. package/docs/cloudflare-llms-full.md +0 -9623
  1030. package/docs/design/OpenTUI Terminal Visualization Guide.md +0 -471
  1031. package/docs/design/database-architecture.md +0 -217
  1032. package/docs/design/deep-research-report.md +0 -295
  1033. package/docs/design/thinker-sequentialthinking-regression-diagnostic.md +0 -366
  1034. package/docs/discord-server-design.md +0 -167
  1035. package/docs/gravity-integration-starter.md +0 -202
  1036. package/docs/launch/hn-first-comment.md +0 -44
  1037. package/docs/launch/hn-post.md +0 -35
  1038. package/docs/launch/incident-response.md +0 -88
  1039. package/docs/launch/landing/index.html +0 -233
  1040. package/docs/launch/mastodon-thread.md +0 -52
  1041. package/docs/launch/newsletter-pitch.md +0 -49
  1042. package/docs/launch/twitter-thread.md +0 -62
  1043. package/docs/privacy.md +0 -186
  1044. package/docs/reports/Savant-Code Benchmark Specification.md +0 -206
  1045. package/docs/reports/Thinker Agent Architecture Research.md +0 -284
  1046. package/docs/reports/adoptable-features-2026-07-25.md +0 -604
  1047. package/docs/reports/adoptable-features-master.md +0 -480
  1048. package/docs/reports/codebuff-discord-feedback.md +0 -43
  1049. package/docs/reports/feature-parity-report.md +0 -810
  1050. package/docs/reports/repos/AionUi.md +0 -75
  1051. package/docs/reports/repos/OpenHands.md +0 -76
  1052. package/docs/reports/repos/SWE-agent.md +0 -82
  1053. package/docs/reports/repos/agno.md +0 -89
  1054. package/docs/reports/repos/aider.md +0 -74
  1055. package/docs/reports/repos/cline.md +0 -83
  1056. package/docs/reports/repos/codex.md +0 -83
  1057. package/docs/reports/repos/gemini-cli.md +0 -92
  1058. package/docs/reports/repos/goose.md +0 -65
  1059. package/docs/reports/repos/gpt-pilot.md +0 -52
  1060. package/docs/reports/repos/hermes-agent.md +0 -101
  1061. package/docs/reports/repos/kilocode.md +0 -79
  1062. package/docs/reports/repos/openclaude.md +0 -99
  1063. package/docs/reports/repos/openclaw.md +0 -100
  1064. package/docs/reports/repos/opencode-dev.md +0 -78
  1065. package/docs/reports/repos/zero.md +0 -123
  1066. package/docs/reports/savant-code-benchmark-v2-2026-08-03.md +0 -76
  1067. package/docs/savant-code-modes.md +0 -338
  1068. package/docs/testing.md +0 -51
  1069. package/docs/visual-mockup-neon-slate.txt +0 -41
  1070. package/eslint.config.js +0 -211
  1071. package/evals/README.md +0 -45
  1072. package/evals/benchmark/README.md +0 -449
  1073. package/evals/benchmark/agent-runner.ts +0 -217
  1074. package/evals/benchmark/analyze-task-scores.ts +0 -496
  1075. package/evals/benchmark/eval-codebuff-hard.json +0 -3343
  1076. package/evals/benchmark/eval-codebuff.json +0 -3193
  1077. package/evals/benchmark/eval-codebuff2.json +0 -2494
  1078. package/evals/benchmark/eval-manifold-hard.json +0 -2525
  1079. package/evals/benchmark/eval-manifold.json +0 -1675
  1080. package/evals/benchmark/eval-manifold2.json +0 -1945
  1081. package/evals/benchmark/eval-plane-hard.json +0 -4372
  1082. package/evals/benchmark/eval-plane.json +0 -2028
  1083. package/evals/benchmark/eval-plane2.json +0 -3517
  1084. package/evals/benchmark/eval-saleor-hard.json +0 -6081
  1085. package/evals/benchmark/eval-saleor.json +0 -1829
  1086. package/evals/benchmark/eval-saleor2.json +0 -3273
  1087. package/evals/benchmark/eval-task-generator.ts +0 -158
  1088. package/evals/benchmark/filter-supplemental-files.ts +0 -225
  1089. package/evals/benchmark/format-output.ts +0 -215
  1090. package/evals/benchmark/gen-evals.ts +0 -294
  1091. package/evals/benchmark/gen-repo-eval.ts +0 -71
  1092. package/evals/benchmark/judge.ts +0 -308
  1093. package/evals/benchmark/lessons-extractor.ts +0 -247
  1094. package/evals/benchmark/main-hard-tasks.ts +0 -49
  1095. package/evals/benchmark/main-single-eval.ts +0 -23
  1096. package/evals/benchmark/main.ts +0 -29
  1097. package/evals/benchmark/meta-analyzer.ts +0 -329
  1098. package/evals/benchmark/pick-commits.ts +0 -627
  1099. package/evals/benchmark/run-benchmark.ts +0 -657
  1100. package/evals/benchmark/runners/claude.ts +0 -176
  1101. package/evals/benchmark/runners/codex.ts +0 -143
  1102. package/evals/benchmark/runners/index.ts +0 -4
  1103. package/evals/benchmark/runners/opencode.ts +0 -253
  1104. package/evals/benchmark/runners/runner.ts +0 -13
  1105. package/evals/benchmark/runners/savant.ts +0 -148
  1106. package/evals/benchmark/setup-test-repo.ts +0 -314
  1107. package/evals/benchmark/trace-analyzer.ts +0 -257
  1108. package/evals/benchmark/trace-utils.ts +0 -80
  1109. package/evals/benchmark/types.ts +0 -83
  1110. package/evals/bunfig.toml +0 -4
  1111. package/evals/logger.ts +0 -87
  1112. package/evals/package.json +0 -31
  1113. package/evals/subagents/test-repo-utils.ts +0 -131
  1114. package/evals/tsconfig.json +0 -13
  1115. package/evals/v2/README.md +0 -149
  1116. package/evals/v2/reports/report.json +0 -261
  1117. package/evals/v2/reports/report.md +0 -15
  1118. package/evals/v2/schema/task.schema.json +0 -172
  1119. package/evals/v2/src/cli.ts +0 -216
  1120. package/evals/v2/src/golden.ts +0 -73
  1121. package/evals/v2/src/harness.ts +0 -293
  1122. package/evals/v2/src/metrics.ts +0 -326
  1123. package/evals/v2/src/registry.ts +0 -179
  1124. package/evals/v2/src/reports.ts +0 -126
  1125. package/evals/v2/src/runner.ts +0 -143
  1126. package/evals/v2/src/runners/savant.ts +0 -105
  1127. package/evals/v2/src/sandbox.ts +0 -42
  1128. package/evals/v2/src/sandboxes/docker.ts +0 -49
  1129. package/evals/v2/src/sandboxes/tempdir.ts +0 -120
  1130. package/evals/v2/src/schema.ts +0 -83
  1131. package/evals/v2/src/trace.ts +0 -186
  1132. package/evals/v2/src/verify.ts +0 -199
  1133. package/evals/v2/tasks/error_recovery/env-fault/calculator.js +0 -11
  1134. package/evals/v2/tasks/error_recovery/env-fault/calculator.test.js +0 -15
  1135. package/evals/v2/tasks/error_recovery/env-fault/golden.patch +0 -15
  1136. package/evals/v2/tasks/error_recovery/env-fault/task.yaml +0 -20
  1137. package/evals/v2/tasks/multi_agent_orchestration/options-contract/app.js +0 -5
  1138. package/evals/v2/tasks/multi_agent_orchestration/options-contract/app.test.js +0 -7
  1139. package/evals/v2/tasks/multi_agent_orchestration/options-contract/golden.patch +0 -19
  1140. package/evals/v2/tasks/multi_agent_orchestration/options-contract/greet.js +0 -3
  1141. package/evals/v2/tasks/multi_agent_orchestration/options-contract/orchestration.test.js +0 -30
  1142. package/evals/v2/tasks/multi_agent_orchestration/options-contract/task.yaml +0 -29
  1143. package/evals/v2/tasks/pure_coding/add-fix/add.js +0 -3
  1144. package/evals/v2/tasks/pure_coding/add-fix/add.test.js +0 -11
  1145. package/evals/v2/tasks/pure_coding/add-fix/golden.patch +0 -7
  1146. package/evals/v2/tasks/pure_coding/add-fix/task.yaml +0 -20
  1147. package/evals/v2/tasks/pure_coding/rename-greet/app.js +0 -5
  1148. package/evals/v2/tasks/pure_coding/rename-greet/app.test.js +0 -32
  1149. package/evals/v2/tasks/pure_coding/rename-greet/golden.patch +0 -19
  1150. package/evals/v2/tasks/pure_coding/rename-greet/greet.js +0 -5
  1151. package/evals/v2/tasks/pure_coding/rename-greet/task.yaml +0 -21
  1152. package/evals/v2/tests/golden.test.ts +0 -104
  1153. package/evals/v2/tests/harness.test.ts +0 -204
  1154. package/evals/v2/tests/metrics.test.ts +0 -353
  1155. package/evals/v2/tests/registry.test.ts +0 -210
  1156. package/evals/v2/tests/reports.test.ts +0 -218
  1157. package/evals/v2/tests/savant-runner.test.ts +0 -218
  1158. package/evals/v2/tests/schema.test.ts +0 -127
  1159. package/evals/v2/tests/tempdir-sandbox.test.ts +0 -49
  1160. package/evals/v2/tests/trace.test.ts +0 -76
  1161. package/evals/v2/tests/verify.test.ts +0 -224
  1162. package/license +0 -202
  1163. package/packages/agent-runtime/README.md +0 -46
  1164. package/packages/agent-runtime/agent_exit +0 -1
  1165. package/packages/agent-runtime/bunfig.toml +0 -2
  1166. package/packages/agent-runtime/package.json +0 -34
  1167. package/packages/agent-runtime/src/__tests__/apply-patch-tool.test.ts +0 -202
  1168. package/packages/agent-runtime/src/__tests__/cost-aggregation.test.ts +0 -397
  1169. package/packages/agent-runtime/src/__tests__/generate-diffs-prompt.test.ts +0 -107
  1170. package/packages/agent-runtime/src/__tests__/get-file-reading-updates.test.ts +0 -59
  1171. package/packages/agent-runtime/src/__tests__/gravity-index-tool.test.ts +0 -501
  1172. package/packages/agent-runtime/src/__tests__/loop-agent-steps.test.ts +0 -1512
  1173. package/packages/agent-runtime/src/__tests__/main-prompt.test.ts +0 -452
  1174. package/packages/agent-runtime/src/__tests__/n-parameter.test.ts +0 -984
  1175. package/packages/agent-runtime/src/__tests__/process-file-block.test.ts +0 -196
  1176. package/packages/agent-runtime/src/__tests__/process-str-replace.test.ts +0 -512
  1177. package/packages/agent-runtime/src/__tests__/programmatic-tool-authorization.test.ts +0 -219
  1178. package/packages/agent-runtime/src/__tests__/prompt-caching-subagents.test.ts +0 -749
  1179. package/packages/agent-runtime/src/__tests__/prompts-schema-handling.test.ts +0 -454
  1180. package/packages/agent-runtime/src/__tests__/propose-tools.test.ts +0 -824
  1181. package/packages/agent-runtime/src/__tests__/read-docs-tool.test.ts +0 -394
  1182. package/packages/agent-runtime/src/__tests__/run-agent-step-prefill.test.ts +0 -161
  1183. package/packages/agent-runtime/src/__tests__/run-agent-step-tools.test.ts +0 -612
  1184. package/packages/agent-runtime/src/__tests__/run-programmatic-step.test.ts +0 -1743
  1185. package/packages/agent-runtime/src/__tests__/sandbox-generator.test.ts +0 -154
  1186. package/packages/agent-runtime/src/__tests__/spawn-agents-image-content.test.ts +0 -354
  1187. package/packages/agent-runtime/src/__tests__/spawn-agents-message-history.test.ts +0 -280
  1188. package/packages/agent-runtime/src/__tests__/spawn-agents-permissions.test.ts +0 -664
  1189. package/packages/agent-runtime/src/__tests__/stream-parser-abort.test.ts +0 -250
  1190. package/packages/agent-runtime/src/__tests__/stream-parser-reasoning.test.ts +0 -194
  1191. package/packages/agent-runtime/src/__tests__/subagent-streaming.test.ts +0 -230
  1192. package/packages/agent-runtime/src/__tests__/test-utils.ts +0 -96
  1193. package/packages/agent-runtime/src/__tests__/thinker-convergence-gate.test.ts +0 -242
  1194. package/packages/agent-runtime/src/__tests__/to-token-count-input-schema.test.ts +0 -81
  1195. package/packages/agent-runtime/src/__tests__/tool-executor-sandbox.test.ts +0 -167
  1196. package/packages/agent-runtime/src/__tests__/tool-stream-parser.test.ts +0 -682
  1197. package/packages/agent-runtime/src/__tests__/tool-validation-error.test.ts +0 -1380
  1198. package/packages/agent-runtime/src/__tests__/web-search-tool.test.ts +0 -402
  1199. package/packages/agent-runtime/src/__tests__/xml-tool-result-ordering.test.ts +0 -264
  1200. package/packages/agent-runtime/src/constants.ts +0 -12
  1201. package/packages/agent-runtime/src/context-compactor.ts +0 -425
  1202. package/packages/agent-runtime/src/find-files/__tests__/request-files-prompt.test.ts +0 -190
  1203. package/packages/agent-runtime/src/find-files/custom-file-picker-config.ts +0 -61
  1204. package/packages/agent-runtime/src/find-files/request-files-prompt.ts +0 -462
  1205. package/packages/agent-runtime/src/generate-diffs-prompt.ts +0 -38
  1206. package/packages/agent-runtime/src/get-file-reading-updates.ts +0 -27
  1207. package/packages/agent-runtime/src/llm-api/__tests__/gemini-with-fallbacks.test.ts +0 -267
  1208. package/packages/agent-runtime/src/llm-api/__tests__/serper-api.test.ts +0 -297
  1209. package/packages/agent-runtime/src/llm-api/claude.ts +0 -7
  1210. package/packages/agent-runtime/src/llm-api/context7-api.ts +0 -290
  1211. package/packages/agent-runtime/src/llm-api/gemini-with-fallbacks.ts +0 -104
  1212. package/packages/agent-runtime/src/llm-api/savant-code-web-api.ts +0 -370
  1213. package/packages/agent-runtime/src/llm-api/serper-api.ts +0 -193
  1214. package/packages/agent-runtime/src/main-prompt.ts +0 -251
  1215. package/packages/agent-runtime/src/mcp-constants.ts +0 -12
  1216. package/packages/agent-runtime/src/mcp.ts +0 -83
  1217. package/packages/agent-runtime/src/process-file-block.ts +0 -118
  1218. package/packages/agent-runtime/src/process-str-replace.ts +0 -213
  1219. package/packages/agent-runtime/src/prompt-agent-stream.ts +0 -119
  1220. package/packages/agent-runtime/src/run-agent-step.ts +0 -1632
  1221. package/packages/agent-runtime/src/run-programmatic-step.ts +0 -633
  1222. package/packages/agent-runtime/src/system-prompt/prompts.ts +0 -215
  1223. package/packages/agent-runtime/src/system-prompt/search-system-prompt.ts +0 -89
  1224. package/packages/agent-runtime/src/system-prompt/truncate-file-tree.ts +0 -414
  1225. package/packages/agent-runtime/src/templates/README.md +0 -160
  1226. package/packages/agent-runtime/src/templates/__tests__/agent-registry.test.ts +0 -489
  1227. package/packages/agent-runtime/src/templates/__tests__/strings.test.ts +0 -465
  1228. package/packages/agent-runtime/src/templates/agent-registry.ts +0 -122
  1229. package/packages/agent-runtime/src/templates/prompts.ts +0 -189
  1230. package/packages/agent-runtime/src/templates/strings.ts +0 -292
  1231. package/packages/agent-runtime/src/templates/types.ts +0 -61
  1232. package/packages/agent-runtime/src/tool-stream-parser.ts +0 -260
  1233. package/packages/agent-runtime/src/tools/filter-tool-set.ts +0 -18
  1234. package/packages/agent-runtime/src/tools/handlers/__tests__/glob.test.ts +0 -331
  1235. package/packages/agent-runtime/src/tools/handlers/__tests__/read-subtree.test.ts +0 -346
  1236. package/packages/agent-runtime/src/tools/handlers/__tests__/run-readonly-command.test.ts +0 -284
  1237. package/packages/agent-runtime/src/tools/handlers/handler-function-type.ts +0 -77
  1238. package/packages/agent-runtime/src/tools/handlers/list.ts +0 -105
  1239. package/packages/agent-runtime/src/tools/handlers/tool/__tests__/checkpoint-store.test.ts +0 -394
  1240. package/packages/agent-runtime/src/tools/handlers/tool/__tests__/skill.test.ts +0 -98
  1241. package/packages/agent-runtime/src/tools/handlers/tool/__tests__/write-file.test.ts +0 -24
  1242. package/packages/agent-runtime/src/tools/handlers/tool/add-message.ts +0 -37
  1243. package/packages/agent-runtime/src/tools/handlers/tool/add-subgoal.ts +0 -30
  1244. package/packages/agent-runtime/src/tools/handlers/tool/apply-patch.ts +0 -120
  1245. package/packages/agent-runtime/src/tools/handlers/tool/ask-user.ts +0 -25
  1246. package/packages/agent-runtime/src/tools/handlers/tool/browser-logs.ts +0 -21
  1247. package/packages/agent-runtime/src/tools/handlers/tool/checkpoint-store.ts +0 -378
  1248. package/packages/agent-runtime/src/tools/handlers/tool/code-search.ts +0 -21
  1249. package/packages/agent-runtime/src/tools/handlers/tool/composio.ts +0 -52
  1250. package/packages/agent-runtime/src/tools/handlers/tool/create-plan.ts +0 -63
  1251. package/packages/agent-runtime/src/tools/handlers/tool/end-turn.ts +0 -15
  1252. package/packages/agent-runtime/src/tools/handlers/tool/find-files.ts +0 -161
  1253. package/packages/agent-runtime/src/tools/handlers/tool/glob.ts +0 -22
  1254. package/packages/agent-runtime/src/tools/handlers/tool/gravity-index.ts +0 -230
  1255. package/packages/agent-runtime/src/tools/handlers/tool/list-directory.ts +0 -22
  1256. package/packages/agent-runtime/src/tools/handlers/tool/lookup-agent-info.ts +0 -105
  1257. package/packages/agent-runtime/src/tools/handlers/tool/propose-str-replace.ts +0 -111
  1258. package/packages/agent-runtime/src/tools/handlers/tool/propose-write-file.ts +0 -89
  1259. package/packages/agent-runtime/src/tools/handlers/tool/proposed-content-store.ts +0 -64
  1260. package/packages/agent-runtime/src/tools/handlers/tool/read-docs.ts +0 -160
  1261. package/packages/agent-runtime/src/tools/handlers/tool/read-files.ts +0 -43
  1262. package/packages/agent-runtime/src/tools/handlers/tool/read-subtree.ts +0 -198
  1263. package/packages/agent-runtime/src/tools/handlers/tool/read-url.ts +0 -21
  1264. package/packages/agent-runtime/src/tools/handlers/tool/render-ui.ts +0 -15
  1265. package/packages/agent-runtime/src/tools/handlers/tool/run-file-change-hooks.ts +0 -20
  1266. package/packages/agent-runtime/src/tools/handlers/tool/run-readonly-command.ts +0 -215
  1267. package/packages/agent-runtime/src/tools/handlers/tool/run-terminal-command.ts +0 -33
  1268. package/packages/agent-runtime/src/tools/handlers/tool/sequential-thinking.ts +0 -53
  1269. package/packages/agent-runtime/src/tools/handlers/tool/set-messages.ts +0 -19
  1270. package/packages/agent-runtime/src/tools/handlers/tool/set-output.ts +0 -104
  1271. package/packages/agent-runtime/src/tools/handlers/tool/set-scaffold-complete.ts +0 -32
  1272. package/packages/agent-runtime/src/tools/handlers/tool/skill.ts +0 -146
  1273. package/packages/agent-runtime/src/tools/handlers/tool/spawn-agent-inline.ts +0 -149
  1274. package/packages/agent-runtime/src/tools/handlers/tool/spawn-agent-utils.ts +0 -436
  1275. package/packages/agent-runtime/src/tools/handlers/tool/spawn-agents.ts +0 -286
  1276. package/packages/agent-runtime/src/tools/handlers/tool/str-replace.ts +0 -135
  1277. package/packages/agent-runtime/src/tools/handlers/tool/suggest-followups.ts +0 -20
  1278. package/packages/agent-runtime/src/tools/handlers/tool/task-completed.ts +0 -15
  1279. package/packages/agent-runtime/src/tools/handlers/tool/think-deeply.ts +0 -25
  1280. package/packages/agent-runtime/src/tools/handlers/tool/transition-phase.ts +0 -160
  1281. package/packages/agent-runtime/src/tools/handlers/tool/update-subgoal.ts +0 -48
  1282. package/packages/agent-runtime/src/tools/handlers/tool/web-search.ts +0 -151
  1283. package/packages/agent-runtime/src/tools/handlers/tool/write-file.ts +0 -281
  1284. package/packages/agent-runtime/src/tools/handlers/tool/write-todos.ts +0 -19
  1285. package/packages/agent-runtime/src/tools/prompts.ts +0 -233
  1286. package/packages/agent-runtime/src/tools/sandbox/__tests__/engine.test.ts +0 -169
  1287. package/packages/agent-runtime/src/tools/sandbox/__tests__/shell-denylist.test.ts +0 -104
  1288. package/packages/agent-runtime/src/tools/sandbox/engine.ts +0 -109
  1289. package/packages/agent-runtime/src/tools/sandbox/index.ts +0 -14
  1290. package/packages/agent-runtime/src/tools/sandbox/shell-denylist.ts +0 -119
  1291. package/packages/agent-runtime/src/tools/stream-parser.ts +0 -407
  1292. package/packages/agent-runtime/src/tools/thinker-convergence-gate.ts +0 -162
  1293. package/packages/agent-runtime/src/tools/thought-session-store.ts +0 -43
  1294. package/packages/agent-runtime/src/tools/tool-executor.ts +0 -1098
  1295. package/packages/agent-runtime/src/util/__tests__/messages.test.ts +0 -995
  1296. package/packages/agent-runtime/src/util/__tests__/parse-tool-calls-from-text.test.ts +0 -363
  1297. package/packages/agent-runtime/src/util/__tests__/simplify-tool-results.test.ts +0 -382
  1298. package/packages/agent-runtime/src/util/__tests__/stream-xml-parser.test.ts +0 -285
  1299. package/packages/agent-runtime/src/util/__tests__/think-tags.test.ts +0 -49
  1300. package/packages/agent-runtime/src/util/__tests__/token-counter.test.ts +0 -121
  1301. package/packages/agent-runtime/src/util/activity-tracking.ts +0 -252
  1302. package/packages/agent-runtime/src/util/agent-output.ts +0 -102
  1303. package/packages/agent-runtime/src/util/cache-debug.ts +0 -330
  1304. package/packages/agent-runtime/src/util/format-value.ts +0 -16
  1305. package/packages/agent-runtime/src/util/messages.ts +0 -461
  1306. package/packages/agent-runtime/src/util/parse-tool-calls-from-text.ts +0 -122
  1307. package/packages/agent-runtime/src/util/render-read-files-result.ts +0 -18
  1308. package/packages/agent-runtime/src/util/simplify-tool-results.ts +0 -61
  1309. package/packages/agent-runtime/src/util/stream-xml-parser.ts +0 -259
  1310. package/packages/agent-runtime/src/util/think-tags.ts +0 -33
  1311. package/packages/agent-runtime/src/util/token-counter.ts +0 -136
  1312. package/packages/agent-runtime/tsconfig.json +0 -8
  1313. package/packages/code-map/README.md +0 -43
  1314. package/packages/code-map/__tests__/integration.test.ts +0 -278
  1315. package/packages/code-map/__tests__/languages.test.ts +0 -240
  1316. package/packages/code-map/__tests__/parse.test.ts +0 -640
  1317. package/packages/code-map/__tests__/test-langs/test.c +0 -42
  1318. package/packages/code-map/__tests__/test-langs/test.cpp +0 -34
  1319. package/packages/code-map/__tests__/test-langs/test.cs +0 -34
  1320. package/packages/code-map/__tests__/test-langs/test.go +0 -27
  1321. package/packages/code-map/__tests__/test-langs/test.java +0 -31
  1322. package/packages/code-map/__tests__/test-langs/test.js +0 -50
  1323. package/packages/code-map/__tests__/test-langs/test.php +0 -34
  1324. package/packages/code-map/__tests__/test-langs/test.py +0 -25
  1325. package/packages/code-map/__tests__/test-langs/test.rb +0 -28
  1326. package/packages/code-map/__tests__/test-langs/test.rs +0 -28
  1327. package/packages/code-map/__tests__/test-langs/test.ts +0 -31
  1328. package/packages/code-map/package.json +0 -33
  1329. package/packages/code-map/src/index.ts +0 -4
  1330. package/packages/code-map/src/init-node.ts +0 -185
  1331. package/packages/code-map/src/languages.ts +0 -344
  1332. package/packages/code-map/src/parse.ts +0 -410
  1333. package/packages/code-map/src/tree-sitter-queries/readme.md +0 -24
  1334. package/packages/code-map/src/tree-sitter-queries/tree-sitter-c-tags.scm +0 -16
  1335. package/packages/code-map/src/tree-sitter-queries/tree-sitter-c_sharp-tags.scm +0 -23
  1336. package/packages/code-map/src/tree-sitter-queries/tree-sitter-cpp-tags.scm +0 -29
  1337. package/packages/code-map/src/tree-sitter-queries/tree-sitter-go-tags.scm +0 -26
  1338. package/packages/code-map/src/tree-sitter-queries/tree-sitter-java-tags.scm +0 -19
  1339. package/packages/code-map/src/tree-sitter-queries/tree-sitter-javascript-tags.scm +0 -16
  1340. package/packages/code-map/src/tree-sitter-queries/tree-sitter-php-tags.scm +0 -23
  1341. package/packages/code-map/src/tree-sitter-queries/tree-sitter-python-tags.scm +0 -12
  1342. package/packages/code-map/src/tree-sitter-queries/tree-sitter-ruby-tags.scm +0 -58
  1343. package/packages/code-map/src/tree-sitter-queries/tree-sitter-rust-tags.scm +0 -26
  1344. package/packages/code-map/src/tree-sitter-queries/tree-sitter-typescript-tags.scm +0 -22
  1345. package/packages/code-map/src/types.ts +0 -11
  1346. package/packages/code-map/src/utils.ts +0 -12
  1347. package/packages/code-map/tsconfig.json +0 -10
  1348. package/packages/database/README.md +0 -43
  1349. package/packages/database/package.json +0 -28
  1350. package/packages/database/src/__tests__/service.test.ts +0 -167
  1351. package/packages/database/src/index.ts +0 -146
  1352. package/packages/database/src/service.ts +0 -342
  1353. package/packages/database/tsconfig.json +0 -9
  1354. package/packages/llm-providers/README.md +0 -42
  1355. package/packages/llm-providers/package.json +0 -42
  1356. package/packages/llm-providers/src/ollama/__tests__/detect.test.ts +0 -59
  1357. package/packages/llm-providers/src/ollama/detect.ts +0 -113
  1358. package/packages/llm-providers/src/ollama/index.ts +0 -2
  1359. package/packages/llm-providers/src/openai-compatible/chat/convert-to-openai-compatible-chat-messages.test.ts +0 -855
  1360. package/packages/llm-providers/src/openai-compatible/chat/convert-to-openai-compatible-chat-messages.ts +0 -177
  1361. package/packages/llm-providers/src/openai-compatible/chat/get-response-metadata.ts +0 -15
  1362. package/packages/llm-providers/src/openai-compatible/chat/map-openai-compatible-finish-reason.ts +0 -19
  1363. package/packages/llm-providers/src/openai-compatible/chat/openai-compatible-api-types.ts +0 -60
  1364. package/packages/llm-providers/src/openai-compatible/chat/openai-compatible-chat-language-model.test.ts +0 -549
  1365. package/packages/llm-providers/src/openai-compatible/chat/openai-compatible-chat-language-model.ts +0 -474
  1366. package/packages/llm-providers/src/openai-compatible/chat/openai-compatible-chat-options.ts +0 -25
  1367. package/packages/llm-providers/src/openai-compatible/chat/openai-compatible-metadata-extractor.ts +0 -49
  1368. package/packages/llm-providers/src/openai-compatible/chat/openai-compatible-prepare-tools.ts +0 -162
  1369. package/packages/llm-providers/src/openai-compatible/chat/stream-transform.test.ts +0 -106
  1370. package/packages/llm-providers/src/openai-compatible/chat/stream-transform.ts +0 -585
  1371. package/packages/llm-providers/src/openai-compatible/completion/convert-to-openai-compatible-completion-prompt.ts +0 -98
  1372. package/packages/llm-providers/src/openai-compatible/completion/openai-compatible-completion-language-model.test.ts +0 -173
  1373. package/packages/llm-providers/src/openai-compatible/completion/openai-compatible-completion-language-model.ts +0 -414
  1374. package/packages/llm-providers/src/openai-compatible/completion/openai-compatible-completion-options.ts +0 -33
  1375. package/packages/llm-providers/src/openai-compatible/embedding/openai-compatible-embedding-model.ts +0 -143
  1376. package/packages/llm-providers/src/openai-compatible/embedding/openai-compatible-embedding-options.ts +0 -21
  1377. package/packages/llm-providers/src/openai-compatible/image/openai-compatible-image-model.ts +0 -129
  1378. package/packages/llm-providers/src/openai-compatible/image/openai-compatible-image-settings.ts +0 -1
  1379. package/packages/llm-providers/src/openai-compatible/index.ts +0 -27
  1380. package/packages/llm-providers/src/openai-compatible/openai-compatible-error.ts +0 -34
  1381. package/packages/llm-providers/src/openai-compatible/openai-compatible-provider.ts +0 -174
  1382. package/packages/llm-providers/src/openai-compatible/version.ts +0 -5
  1383. package/packages/llm-providers/tsconfig.json +0 -9
  1384. package/protocol.config.yaml +0 -113
  1385. package/savant-free/README.md +0 -73
  1386. package/savant-free/SPEC.md +0 -385
  1387. package/savant-free/cli/build.ts +0 -49
  1388. package/savant-free/cli/release/README.md +0 -55
  1389. package/savant-free/cli/release/index.js +0 -37
  1390. package/savant-free/cli/release/package.json +0 -43
  1391. package/savant-free/cli/release.ts +0 -128
  1392. package/savant-free/cli/smoke-test.test.ts +0 -257
  1393. package/savant-free/e2e/README.md +0 -173
  1394. package/savant-free/e2e/agent/savant-free-tester.ts +0 -52
  1395. package/savant-free/e2e/tests/ads-behavior.e2e.test.ts +0 -51
  1396. package/savant-free/e2e/tests/agent-startup.e2e.test.ts +0 -61
  1397. package/savant-free/e2e/tests/code-edit.e2e.test.ts +0 -78
  1398. package/savant-free/e2e/tests/help-command.e2e.test.ts +0 -97
  1399. package/savant-free/e2e/tests/knowledge-file.e2e.test.ts +0 -66
  1400. package/savant-free/e2e/tests/slash-commands.e2e.test.ts +0 -119
  1401. package/savant-free/e2e/tests/startup.e2e.test.ts +0 -56
  1402. package/savant-free/e2e/tests/terminal-command.e2e.test.ts +0 -71
  1403. package/savant-free/e2e/tests/version.e2e.test.ts +0 -50
  1404. package/savant-free/e2e/utils/binary-helpers.ts +0 -24
  1405. package/savant-free/e2e/utils/index.ts +0 -17
  1406. package/savant-free/e2e/utils/savant-free-session.ts +0 -229
  1407. package/savant-free/e2e/utils/tmux-custom-tools.ts +0 -156
  1408. package/savant-free/e2e/utils/tmux-helpers.ts +0 -79
  1409. package/savant-free/package.json +0 -20
  1410. package/scripts/eslint-rules/__fixtures__/debug-ast.mjs +0 -20
  1411. package/scripts/eslint-rules/__fixtures__/probe.mjs +0 -41
  1412. package/scripts/eslint-rules/__fixtures__/probe2.mjs +0 -43
  1413. package/scripts/eslint-rules/__fixtures__/rule-test.mjs +0 -44
  1414. package/scripts/eslint-rules/__fixtures__/rule-test2.mjs +0 -27
  1415. package/scripts/eslint-rules/__fixtures__/unknown-bad.ts +0 -21
  1416. package/scripts/eslint-rules/__fixtures__/unknown-good.ts +0 -35
  1417. package/scripts/eslint-rules/no-unknown-in-signatures.js +0 -141
  1418. package/scripts/release.py +0 -360
  1419. package/scripts/run-az-test.sh +0 -1150
  1420. package/scripts/sync-agents.py +0 -337
  1421. package/scripts/tmux/README.md +0 -359
  1422. package/scripts/tmux/package.json +0 -9
  1423. package/scripts/tmux/tmux-capture.sh +0 -231
  1424. package/scripts/tmux/tmux-cli.sh +0 -160
  1425. package/scripts/tmux/tmux-env.sh +0 -34
  1426. package/scripts/tmux/tmux-send.sh +0 -339
  1427. package/scripts/tmux/tmux-start.sh +0 -264
  1428. package/scripts/tmux/tmux-stop.sh +0 -157
  1429. package/scripts/tmux/tmux-viewer/README.md +0 -254
  1430. package/scripts/tmux/tmux-viewer/components/session-viewer.tsx +0 -556
  1431. package/scripts/tmux/tmux-viewer/components/theme.ts +0 -54
  1432. package/scripts/tmux/tmux-viewer/gif-encoder-2.d.ts +0 -28
  1433. package/scripts/tmux/tmux-viewer/gif-exporter.ts +0 -278
  1434. package/scripts/tmux/tmux-viewer/index.tsx +0 -237
  1435. package/scripts/tmux/tmux-viewer/package.json +0 -9
  1436. package/scripts/tmux/tmux-viewer/session-loader.ts +0 -234
  1437. package/scripts/tmux/tmux-viewer/tsconfig.json +0 -9
  1438. package/scripts/tmux/tmux-viewer/types.ts +0 -76
  1439. package/sdk/CHANGELOG.md +0 -126
  1440. package/sdk/PUBLISHING.md +0 -55
  1441. package/sdk/README.md +0 -334
  1442. package/sdk/bunfig.toml +0 -6
  1443. package/sdk/e2e/README.md +0 -158
  1444. package/sdk/e2e/custom-agents/api-integration-agent.e2e.test.ts +0 -145
  1445. package/sdk/e2e/custom-agents/apply-patch-tool.e2e.test.ts +0 -62
  1446. package/sdk/e2e/custom-agents/database-query-agent.e2e.test.ts +0 -135
  1447. package/sdk/e2e/custom-agents/weather-agent.e2e.test.ts +0 -120
  1448. package/sdk/e2e/examples/code-explainer.example.ts +0 -62
  1449. package/sdk/e2e/examples/code-reviewer.example.ts +0 -52
  1450. package/sdk/e2e/examples/commit-message-generator.example.ts +0 -61
  1451. package/sdk/e2e/examples/sdk-lint.example.ts +0 -65
  1452. package/sdk/e2e/examples/sdk-refactor.example.ts +0 -63
  1453. package/sdk/e2e/examples/sdk-test-gen.example.ts +0 -62
  1454. package/sdk/e2e/features/knowledge-files.e2e.test.ts +0 -82
  1455. package/sdk/e2e/features/max-agent-steps.e2e.test.ts +0 -65
  1456. package/sdk/e2e/features/project-files.e2e.test.ts +0 -80
  1457. package/sdk/e2e/integration/connection-check.integration.test.ts +0 -33
  1458. package/sdk/e2e/integration/event-ordering.integration.test.ts +0 -186
  1459. package/sdk/e2e/integration/event-types.integration.test.ts +0 -183
  1460. package/sdk/e2e/integration/stream-chunks.integration.test.ts +0 -191
  1461. package/sdk/e2e/streaming/concurrent-streams.e2e.test.ts +0 -164
  1462. package/sdk/e2e/streaming/subagent-streaming.e2e.test.ts +0 -158
  1463. package/sdk/e2e/utils/__tests__/event-collector.test.ts +0 -297
  1464. package/sdk/e2e/utils/e2e-mocks.ts +0 -458
  1465. package/sdk/e2e/utils/event-collector.ts +0 -145
  1466. package/sdk/e2e/utils/get-api-key.ts +0 -76
  1467. package/sdk/e2e/utils/index.ts +0 -3
  1468. package/sdk/e2e/utils/test-fixtures.ts +0 -196
  1469. package/sdk/e2e/workflows/error-recovery.e2e.test.ts +0 -112
  1470. package/sdk/e2e/workflows/multi-turn-conversation.e2e.test.ts +0 -132
  1471. package/sdk/examples/readme-example-1.ts +0 -34
  1472. package/sdk/examples/readme-example-2.ts +0 -76
  1473. package/sdk/package.json +0 -82
  1474. package/sdk/scripts/build.ts +0 -349
  1475. package/sdk/scripts/fetch-ripgrep.ts +0 -172
  1476. package/sdk/scripts/publish.ts +0 -51
  1477. package/sdk/scripts/release.js +0 -100
  1478. package/sdk/scripts/verify.ts +0 -204
  1479. package/sdk/sdk_exit +0 -1
  1480. package/sdk/smoke-test-dist.ts +0 -248
  1481. package/sdk/src/__tests__/apply-overrides-resume.test.ts +0 -83
  1482. package/sdk/src/__tests__/apply-patch.test.ts +0 -438
  1483. package/sdk/src/__tests__/build-file-tree.test.ts +0 -31
  1484. package/sdk/src/__tests__/change-file.test.ts +0 -212
  1485. package/sdk/src/__tests__/client.test.ts +0 -142
  1486. package/sdk/src/__tests__/clone-session-state.test.ts +0 -158
  1487. package/sdk/src/__tests__/code-search.test.ts +0 -896
  1488. package/sdk/src/__tests__/composio.test.ts +0 -86
  1489. package/sdk/src/__tests__/credentials.test.ts +0 -344
  1490. package/sdk/src/__tests__/database.test.ts +0 -153
  1491. package/sdk/src/__tests__/env.test.ts +0 -137
  1492. package/sdk/src/__tests__/error-utils.test.ts +0 -253
  1493. package/sdk/src/__tests__/fixtures/windows-stubborn-grandchild.ts +0 -26
  1494. package/sdk/src/__tests__/initial-session-state.test.ts +0 -447
  1495. package/sdk/src/__tests__/knowledge-file-selection.test.ts +0 -335
  1496. package/sdk/src/__tests__/load-agents.test.ts +0 -935
  1497. package/sdk/src/__tests__/load-mcp-config.test.ts +0 -285
  1498. package/sdk/src/__tests__/load-skills.test.ts +0 -325
  1499. package/sdk/src/__tests__/model-provider.test.ts +0 -44
  1500. package/sdk/src/__tests__/path-utils.test.ts +0 -66
  1501. package/sdk/src/__tests__/read-files.test.ts +0 -573
  1502. package/sdk/src/__tests__/read-url.test.ts +0 -371
  1503. package/sdk/src/__tests__/researcher-web.integration.test.ts +0 -130
  1504. package/sdk/src/__tests__/run-cancellation.test.ts +0 -1321
  1505. package/sdk/src/__tests__/run-error-preserves-history.test.ts +0 -335
  1506. package/sdk/src/__tests__/run-event-dispatch.test.ts +0 -80
  1507. package/sdk/src/__tests__/run-file-filter.test.ts +0 -530
  1508. package/sdk/src/__tests__/run-handle-event.test.ts +0 -142
  1509. package/sdk/src/__tests__/run-mcp-tool-filter.test.ts +0 -124
  1510. package/sdk/src/__tests__/run-state-child-process.test.ts +0 -72
  1511. package/sdk/src/__tests__/run-terminal-command.test.ts +0 -236
  1512. package/sdk/src/__tests__/run.integration.test.ts +0 -170
  1513. package/sdk/src/__tests__/user-knowledge-files.test.ts +0 -361
  1514. package/sdk/src/__tests__/validate-agents.test.ts +0 -943
  1515. package/sdk/src/agents/load-agents.ts +0 -339
  1516. package/sdk/src/agents/load-mcp-config.ts +0 -275
  1517. package/sdk/src/client.ts +0 -87
  1518. package/sdk/src/composio.ts +0 -78
  1519. package/sdk/src/constants.ts +0 -29
  1520. package/sdk/src/credentials.ts +0 -303
  1521. package/sdk/src/custom-tool.ts +0 -66
  1522. package/sdk/src/env.ts +0 -116
  1523. package/sdk/src/error-utils.ts +0 -127
  1524. package/sdk/src/impl/__tests__/llm-chatgpt-oauth-policy.test.ts +0 -67
  1525. package/sdk/src/impl/__tests__/llm-native-tool-call.test.ts +0 -38
  1526. package/sdk/src/impl/__tests__/llm-stream-yielded-content.test.ts +0 -118
  1527. package/sdk/src/impl/__tests__/model-provider-free-mode.test.ts +0 -166
  1528. package/sdk/src/impl/__tests__/prompt-result.test.ts +0 -210
  1529. package/sdk/src/impl/__tests__/provider-options-metadata.test.ts +0 -67
  1530. package/sdk/src/impl/agent-runtime.ts +0 -159
  1531. package/sdk/src/impl/chatgpt-backend-fetch.ts +0 -588
  1532. package/sdk/src/impl/database.ts +0 -516
  1533. package/sdk/src/impl/llm.ts +0 -852
  1534. package/sdk/src/impl/model-provider.ts +0 -638
  1535. package/sdk/src/impl/openrouter-key-resolver.ts +0 -78
  1536. package/sdk/src/index.ts +0 -133
  1537. package/sdk/src/native/ripgrep.ts +0 -141
  1538. package/sdk/src/retry-config.ts +0 -51
  1539. package/sdk/src/run-state.ts +0 -897
  1540. package/sdk/src/run.ts +0 -1222
  1541. package/sdk/src/skills/load-skills.ts +0 -253
  1542. package/sdk/src/testing/env.ts +0 -19
  1543. package/sdk/src/tools/apply-patch.ts +0 -690
  1544. package/sdk/src/tools/change-file.ts +0 -155
  1545. package/sdk/src/tools/code-search.ts +0 -547
  1546. package/sdk/src/tools/glob.ts +0 -58
  1547. package/sdk/src/tools/index.ts +0 -19
  1548. package/sdk/src/tools/list-directory.ts +0 -52
  1549. package/sdk/src/tools/path-utils.ts +0 -101
  1550. package/sdk/src/tools/read-files.ts +0 -110
  1551. package/sdk/src/tools/read-url.ts +0 -469
  1552. package/sdk/src/tools/run-file-change-hooks.ts +0 -22
  1553. package/sdk/src/tools/run-terminal-command.ts +0 -483
  1554. package/sdk/src/tools/ssrf.ts +0 -120
  1555. package/sdk/src/types/env.ts +0 -40
  1556. package/sdk/src/utils/logger.ts +0 -15
  1557. package/sdk/src/validate-agents.ts +0 -157
  1558. package/sdk/test/cjs-compatibility/package-lock.json +0 -423
  1559. package/sdk/test/cjs-compatibility/package.json +0 -21
  1560. package/sdk/test/cjs-compatibility/test-imports.js +0 -77
  1561. package/sdk/test/cjs-compatibility/test-types.ts +0 -54
  1562. package/sdk/test/cjs-compatibility/tsconfig.json +0 -17
  1563. package/sdk/test/esm-compatibility/package-lock.json +0 -423
  1564. package/sdk/test/esm-compatibility/package.json +0 -21
  1565. package/sdk/test/esm-compatibility/test-imports.js +0 -83
  1566. package/sdk/test/esm-compatibility/test-types.ts +0 -59
  1567. package/sdk/test/esm-compatibility/tsconfig.json +0 -17
  1568. package/sdk/test/ripgrep-bundling/package-lock.json +0 -423
  1569. package/sdk/test/ripgrep-bundling/package.json +0 -21
  1570. package/sdk/test/ripgrep-bundling/test-ripgrep-types.ts +0 -132
  1571. package/sdk/test/ripgrep-bundling/test-ripgrep.js +0 -257
  1572. package/sdk/test/ripgrep-bundling/tsconfig.json +0 -15
  1573. package/sdk/test/setup-env.ts +0 -54
  1574. package/sdk/test/test-sdk.ts +0 -25
  1575. package/sdk/test/tree-sitter-queries/package-lock.json +0 -47
  1576. package/sdk/test/tree-sitter-queries/package.json +0 -12
  1577. package/sdk/test/tree-sitter-queries/test-query-files.js +0 -256
  1578. package/sdk/tsconfig.build.json +0 -32
  1579. package/sdk/tsconfig.json +0 -27
  1580. package/sdk/vendor/ripgrep/arm64-darwin/rg +0 -0
  1581. package/sdk/vendor/ripgrep/arm64-linux/rg +0 -0
  1582. package/sdk/vendor/ripgrep/x64-darwin/rg +0 -0
  1583. package/sdk/vendor/ripgrep/x64-linux/rg +0 -0
  1584. package/sdk/vendor/ripgrep/x64-win32/rg.exe +0 -0
  1585. package/templates/FID-TEMPLATE.md +0 -125
  1586. package/templates/README-TEMPLATE.md +0 -87
  1587. package/templates/SESSION-SUMMARY.md +0 -135
  1588. package/tsconfig.base.json +0 -18
  1589. package/tsconfig.json +0 -27
  1590. /package/{cli/release-core/http.js → http.js} +0 -0
  1591. /package/{cli/release-core/launcher.js → launcher.js} +0 -0
@@ -1,166 +0,0 @@
1
- # Agent Harness Feature Pairing Research
2
-
3
- **Author:** Savant
4
- **Date:** 2026-08-03
5
- **Status:** research — no FIDs opened yet
6
- **Scope:** Full catalog scan of `resources/` (~120 repos, 0 unscanned), consolidating
7
- two prior scan reports plus four live sweeps, distilled into feature pairings
8
- relevant to Savant-Code.
9
-
10
- ---
11
-
12
- ## 1. Method
13
-
14
- - `resources/_SCAN_REPORT.md` and `resources/SCANNING-REPORT.md` cover 44 repos
15
- (Bernstein, Forge, Entroly, ctxlint, Cline, Zero, mini-swe-agent, Kimi Code,
16
- OpenCode, Aider, Codex, Goose, OpenHands, Hermes, Gemini CLI, and others).
17
- - Four additional sweeps covered the remaining ~76 repos, with deep dives on the
18
- high-signal candidates: DeepSeek-Reasonix, sourcebook, OpenSpec, agenttrace,
19
- ORCH, pi-steering-hooks, prpack, LoopTroop, IM.codes, TokenWise, codesight,
20
- iwe, brood-box, Shep, Spartan, onUI, Jctx, SwarmVault, GolemBot, and more.
21
- - Findings were relevance-filtered against Savant-Code's architecture (agent
22
- runtime, CLI, SDK, ECHO Protocol, checkpoints, permissions, sub-agents).
23
-
24
- The organizing principle is **feature pairing**: single features rarely move the
25
- needle; pairs that multiply each other's value are what ship.
26
-
27
- ---
28
-
29
- ## 2. The Pairing Map
30
-
31
- ### 2.1 Coding ↔ Coding pairs
32
-
33
- | Pair | Why they multiply | Proven by |
34
- | --- | --- | --- |
35
- | Guardrails ↔ Audited override | Deterministic blocking works because of a logged escape hatch; agent proceeds with `# steering-override: <rule>` but it is audited; `noOverride` rules stay absolute | pi-steering-hooks |
36
- | Checkpoints ↔ Per-file landing review | Snapshot before is half; reviewing each change before it lands (COW snapshot + accept/reject) is the other half | brood-box, Savant FID-2026-0803-004 |
37
- | Tier routing ↔ A/B verification | Routing to cheap models is faith without proof; run the same task on two tiers, diff outputs, then trust the router | TokenWise |
38
- | Spec artifacts ↔ Verify gates | Proposal/spec/design/tasks pay off only when implementation is checked against them (scored PASS/REWORK/BLOCKED) | OpenSpec, Spartan, IM.codes |
39
- | Memory ↔ Graph retrieval | Storing facts is useless without graph-structured recall (parent-context expansion, fuzzy find) | iwe, SwarmVault, Entroly |
40
- | Worktrees ↔ Parallel agents | One agent per isolated branch: zero conflicts, review diffs, merge wins | Shep, ORCH, parallel-code |
41
- | CI-watch ↔ Auto-fix loop | Agent opens PR, harness watches CI, failure logs loop back to the agent before merge | Shep |
42
- | Context isolation ↔ Sub-agents | Bead-level context (only active unit + its files) prevents rot the way sub-agent firewalls do | LoopTroop, OpenCode |
43
- | Evidence ledger ↔ Completion gates | Receipts per tool call + `complete_step` proof means no completion claim without evidence | DeepSeek-Reasonix, Bernstein |
44
- | Diff completeness ↔ Review | Detect files the agent forgot to change (co-change, siblings, missing tests) before review | sourcebook |
45
- | Full-file context ↔ Review | Reviewer gets full post-change file contents + sibling tests, not just diffs | prpack |
46
-
47
- ### 2.2 Coding ↔ General bridges
48
-
49
- | Pair | The bridge | Proven by |
50
- | --- | --- | --- |
51
- | Coding agent ↔ IM gateway | Coding agents get Slack/Telegram/Discord/Feishu/WeChat bodies — the agent you already have becomes a 24/7 teammate | GolemBot (13k+ OpenClaw skills) |
52
- | Coding agent ↔ UI annotation | Annotate any webpage (intent+severity markers, draw regions, export formats) → direct agent input | onUI |
53
- | Coding agent ↔ Knowledge wiki | Docs/code/transcripts → durable markdown wiki + queryable graph handed to agents | SwarmVault, iwe |
54
- | Coding agent ↔ OpenAPI→formats | One OpenAPI spec → MCP server + CLAUDE.md + AGENTS.md + .cursorrules + A2A card + CLI | agentify |
55
- | Coding agent ↔ Remote session | Mobile/web terminal access to running sessions, git views, localhost preview, pair invites | IM.codes |
56
- | Coding agent ↔ Asset registry | Typed-contract install of skills, prompts, MCP configs, workflows | TokRepo |
57
- | Coding agent ↔ Always-on scheduler | Heartbeats + cron + delegation → autonomous agents that keep working | SwarmClaw, Dorothy |
58
- | Coding agent ↔ Supervision board | Reviewer agent files ranked findings against task; nothing reaches Done until triaged | Kagan |
59
-
60
- ### 2.3 General ↔ General pairs
61
-
62
- | Pair | Why | Proven by |
63
- | --- | --- | --- |
64
- | Org chart ↔ Delegation | Role hierarchy visualized with live activity → natural delegation | SwarmClaw |
65
- | Conversation ↔ Skill learning | Reviewed conversations become reusable skills (user-reviewed, not silent) | SwarmClaw, Hermes |
66
- | Kanban ↔ Auto-assignment | Tasks auto-assigned to agents by capability; dependency chains | Dorothy, Cline |
67
- | Vault ↔ Audit | Hash-chained append-only ledger + atomic rollback on every change | os-moda, Bernstein |
68
-
69
- ---
70
-
71
- ## 3. Top 5 Adoptions for Savant-Code
72
-
73
- Each is a *pair*, not a single feature. Verified against the codebase.
74
-
75
- | # | Pair | Savant fit | Effort |
76
- | --- | --- | --- | --- |
77
- | 1 | Guardrails + audited override (pi-steering-hooks) | plugs into `/permissions` + `run-readonly-command.ts`; zero-token ECHO enforcement | S–M |
78
- | 2 | Checkpoints + per-file landing review (brood-box) | extends checkpoint-store (review diffs before accepting writes) | L–M |
79
- | 3 | Tier routing + A/B verification (TokenWise) | plugs into model picker + per-agent model config | M |
80
- | 4 | Spec artifacts + verify gates (OpenSpec/Spartan) | grafts onto FID lifecycle (scored PASS/REWORK/BLOCKED) | M |
81
- | 5 | Coding agent + IM gateway (GolemBot) | biggest product expansion: Savant as a team teammate | L |
82
-
83
- ### Detailed notes on the top 5
84
-
85
- **1. Guardrails + audited override.** Rule format `{ tool, field, pattern,
86
- requires?, unless?, reason, noOverride? }` intercepts tool calls before
87
- execution. The override comment (`# steering-override: <rule>`) lets the agent
88
- proceed with a logged reason; `noOverride: true` rules (e.g. `rm -rf /`) cannot
89
- be bypassed. Default rules block long-running commands and enforce conventional
90
- commits. Zero token cost, 100% reliability — the "ratchet rule" from harness
91
- engineering made literal.
92
-
93
- **2. Checkpoints + per-file landing review.** brood-box boots a COW workspace
94
- snapshot, lets the agent work, then requires interactive per-file diff review
95
- before anything lands. Savant already has checkpoint-store (per-turn snapshots,
96
- first-capture dedup, restore). Adding a pre-landing review gate (accept/reject
97
- each changed file with unified diffs) completes the edit-safety story.
98
-
99
- **3. Tier routing + A/B verification.** TokenWise cites Anthropic issue #27665:
100
- 93.8% of Max-subscriber tokens flow to Opus even when Haiku suffices. Three
101
- tiers (mechanical / scoped reasoning / synthesis) with safety caps: cheap tier
102
- never spawns subagents, max spawn depth 2, trivial tasks run inline, context
103
- >30k tokens escalates a tier. The `/ab` command runs a task on two tiers, diffs
104
- outputs, scores quality before trusting the router. Every routed call logs
105
- NDJSON with real token/cost.
106
-
107
- **4. Spec artifacts + verify gates.** OpenSpec's change directory
108
- (`proposal.md → specs/ → design.md → tasks.md → apply → verify → sync →
109
- archive`) with `/opsx:verify` checking three dimensions (completeness,
110
- correctness, coherence) and reporting CRITICAL/WARNING/SUGGESTION. IM.codes
111
- adds automatic module scoring (spec/tasks/implementation/tests/risk) with
112
- PASS/REWORK/BLOCKED verdicts and rework gates. Grafts onto the FID lifecycle.
113
-
114
- **5. Coding agent + IM gateway.** GolemBot connects existing coding agents
115
- (Claude Code, Codex, OpenCode) to Slack, Telegram, Discord, Feishu, DingTalk,
116
- WeCom, WeChat, or any HTTP client — "the agent you already have is the brain."
117
- One config block routes any provider; no framework, no prompt engineering.
118
-
119
- ---
120
-
121
- ## 4. Validated as already-correct in Savant-Code
122
-
123
- The catalog repeatedly validated Savant's existing machinery — no adoption
124
- needed:
125
-
126
- - Context isolation + sub-agent firewalls (FID-007 tool-set filtering)
127
- - Multi-tier compaction with stale-tool-result clearing and reactive compact
128
- - Checkpoints/rewind (matches Claude Code and DeepSeek-Reasonix designs)
129
- - Skills with progressive disclosure (matches the skills standard)
130
- - Permission modes + dangerous-command regex blocking
131
- - Phase-gated tool access (schema-level gating)
132
- - Forge/Verifier split (Generator-Evaluator separation)
133
- - Ratchet-rule loop (FID → LEARNINGS → eslint rules)
134
-
135
- ---
136
-
137
- ## 5. Notable ecosystem patterns observed (for context)
138
-
139
- - **Content-addressed everything** (Bernstein, Entroly, Forge): hash every
140
- artifact and journal entry; same inputs reproduce byte-identical outputs.
141
- - **Merkle-chained event journals** (Bernstein, os-moda): tamper detectable at
142
- the exact step.
143
- - **Disk-based state machines** (Forge, Bernstein): crash recovery from disk,
144
- not memory.
145
- - **Select-then-compress** (Entroly): choose highest-value evidence before
146
- compressing; keep originals recoverable.
147
- - **Fail-open hooks** (Kimi Code): hooks enhance, never block the agent.
148
- - **Steering accuracy beats prompts** (pi-steering-hooks, Strands Agents):
149
- deterministic before-tool rules over instruction-following.
150
-
151
- ---
152
-
153
- ## 6. Sources
154
-
155
- - HumanLayer — "Skill Issue: Harness Engineering for Coding Agents" (Mar 2026)
156
- - Anthropic Engineering — harness design for long-running agents
157
- - OpenAI Engineering — "Harness engineering: leveraging Codex in an agent-first
158
- world"
159
- - ETH Zürich — agentfile study (138 agentfiles)
160
- - Chroma — context rot research; LongCLI-Bench
161
- - Repos in `resources/` (see method above): pi-steering-hooks, brood-box,
162
- TokenWise, OpenSpec, Spartan, IM.codes, sourcebook, prpack, LoopTroop,
163
- GolemBot, SwarmVault, iwe, onUI, agentify, Shep, ORCH, agenttrace, tokscale,
164
- onwatch, WhereMyTokens, Kilo Code, Refact, codesight, Jctx, DeepSeek-Reasonix,
165
- os-moda, SwarmClaw, Dorothy, Kagan, and the repos covered by the two prior
166
- scan reports.
@@ -1,446 +0,0 @@
1
- <!-- markdownlint-disable MD041 -->
2
-
3
- > **Historical note:** This document uses the original product name *FreeBuff* in some sections because it references
4
- external research and third-party projects from that period. The product is now **Savant-Code / Savant-Free**.
5
-
6
- # **Architecting a Sustainable Free-Tier Inference Backend for a CLI Coding Agent**
7
-
8
- The evolution of autonomous AI coding agents is currently constrained by a rigid economic dichotomy: developers must
9
- either pay substantial monthly subscriptions for proprietary platforms (e.g., Cursor, GitHub Copilot, Claude Code) or
10
- rely on open-source frameworks (e.g., Cline, Aider, Continue.dev) that require high-end local GPUs or "Bring Your Own
11
- Key" (BYOK) API setups1. The emergence of tools like FreeBuff has proven the viability of a third path: a
12
- zero-configuration, free-to-use CLI agent subsidized by a combination of targeted developer advertising and strategic
13
- "data-for-compute" partnerships with major AI laboratories4.
14
- Building a proprietary fork, such as Savant-Code, necessitates a highly resilient backend capable of orchestrating
15
- thousands of concurrent agentic sessions. This infrastructure must proxy requests to diverse Large Language Model (LLM)
16
- providers, seamlessly integrate multiple AI-native ad networks (Gravity, ZeroClick, Carbon), and enforce cryptographic
17
- validation to prevent headless API exploitation4.
18
-
19
- ## **1\. Backend Architecture Deep Dive: Edge-Native Proxy Design**
20
-
21
- Serving free inference to a massive global user base requires a backend architecture that minimizes persistent compute
22
- costs while managing long-lived, stateful connections. Traditional containerized deployments (e.g., AWS ECS or
23
- Kubernetes) introduce idle costs that erode the margins of an ad-subsidized model. Cloudflare Workers provides the ideal
24
- serverless edge computing substrate, but standard HTTP proxying is insufficient for the continuous, bidirectional
25
- streaming required by multi-turn AI agents.
26
-
27
- ### **1.1 Managing WebSocket Streaming on Cloudflare Workers**
28
-
29
- CLI coding agents rely on real-time streaming to output planning, file scanning, and code generation steps9. Standard
30
- reverse proxies often buffer Server-Sent Events (SSE) or terminate connections prematurely. For instance, Nginx defaults
31
- to a 60-second read timeout, silently dropping connections during complex, long-running LLM reasoning phases10.
32
- Cloudflare's edge network natively supports WebSocket upgrades, but it enforces a strict 100-second idle timeout10.
33
- To maintain persistent connections for agentic loops without being disconnected by edge timeouts, the backend must
34
- utilize **Cloudflare Durable Objects (DO)** configured as WebSocket servers. A single Durable Object instance
35
- coordinates the state of a user's terminal session, maintaining the connection to the CLI client while waiting for
36
- upstream responses from models like DeepSeek V4 Pro or Kimi K2.7 Code4.
37
- However, running active Durable Objects continuously is cost-prohibitive. Billing accrues for the entire duration the
38
- object remains in memory12. The architectural solution is the **WebSocket Hibernation API**. This API allows the Durable
39
- Object to hibernate—removing it from active memory and halting billable duration (GB-s charges)—while keeping the
40
- client's WebSocket connection alive at the network edge14.
41
- When the upstream LLM provider returns a chunk of the response, the Durable Object is instantly re-initialized, its
42
- webSocketMessage handler executes, it forwards the payload to the CLI, and it immediately returns to hibernation14. This
43
- event-driven hibernation is the only mechanism that makes a free-tier WebSocket proxy economically viable at scale.
44
-
45
- ### **1.2 The Session Management State Machine**
46
-
47
- A robust session management approach requires a tiered state tracking system utilizing Cloudflare's entire storage
48
- ecosystem: KV, Durable Objects, and D1.
49
-
50
- | Storage Layer | Purpose in Proxy Architecture | Performance Characteristics |
51
- | :---- | :---- | :---- |
52
- | **Cloudflare KV** | Geographic routing, IP rate limiting, and global token blacklisting. | High-speed global reads, eventual consistency for writes. Ideal for checking cf.country against the Full/Limited tier lists4. |
53
- | **Durable Objects** | Active state machine for concurrent session tracking. | Strongly consistent, single-region execution. Ensures a user cannot exploit concurrency by opening multiple terminal instances simultaneously16. |
54
- | **Cloudflare D1** | Asynchronous audit logging, token consumption metrics, and streak rewards. | Serverless SQLite. Used for analytics and reporting to ad networks and AI providers without blocking the critical execution path16. |
55
-
56
- The Durable Object acts as a strict state machine, transitioning the session through specific phases:
57
-
58
- * Queued: The user is waiting for upstream capacity (polled until active)8.
59
- * Active: The session is currently provisioned and bound to a specific model.
60
- * Superseded: The user has issued a new prompt, aborting the previous generation to save compute8.
61
- * Ended: The session has expired or the task is complete.
62
- * Disabled: No active session is required.
63
-
64
- If a user attempts to request a model that violates their current state—for example, a session\_model\_mismatch where a
65
- user requests a premium model while assigned to a limited-tier session—the Durable Object automatically ends the session
66
- and attempts to recreate a valid one transparently8.
67
-
68
- ### **1.3 Upstream LLM Routing and Normalization**
69
-
70
- The proxy must act as a universal translator. The CLI issues standard OpenAI-compatible /v1/chat/completions or
71
- Anthropic-compatible /v1/messages requests. The proxy intercepts these payloads, resolves the requested model (e.g.,
72
- translating kimi-k2.6 to moonshotai/kimi-k2.6), and routes the traffic to the corresponding provider8.
73
- Critically, the proxy must perform real-time **Message Normalization**. Providers have distinct formatting rules; for
74
- example, some Chinese models reject the developer role, requiring the proxy to map it to the system role before
75
- forwarding8. The proxy must also resolve JSON schema definitions, normalizing $ref pointers within tool schemas for
76
- providers that do not natively support deeply nested function-calling structures8.
77
-
78
- ### **1.4 Minimal Viable Backend for 1,000+ Concurrent Users**
79
-
80
- To support 1,000+ concurrent users, the minimal viable backend must address Cloudflare's subrequest limits. The free
81
- tier of Cloudflare Workers allows 50 subrequests per request, while the paid tier allows 1,00018. Because a single
82
- multi-agent CLI loop (Planner, File Picker, Editor, Reviewer) can spawn dozens of LLM calls, the proxy must batch
83
- messages efficiently9.
84
- The minimal architecture requires:
85
-
86
- > 1. A standard Worker to validate GitHub OAuth tokens and upgrade the connection to a WebSocket14.
87
- > 2. A Hibernatable Durable Object to manage the WebSocket lifecycle and route requests to the LLM APIs14.
88
- > 3. A request debounce mechanism (e.g., a 1.3-second global lock) to prevent automated looping scripts from triggering
89
- 429 Too Many Requests errors from upstream providers8.
90
-
91
- ## **2\. Provider Partnership Playbook: The Data-for-Compute Exchange**
92
-
93
- The fundamental economic engine of the free-tier model relies on bartering developer workflow data for LLM inference
94
- compute. Subsidizing peak inference costs (which can exceed $7,800 daily at high scale) strictly via ad revenue is
95
- challenging4. The solution is negotiating partnerships with AI laboratories that are desperate for high-quality,
96
- domain-specific training data.
97
-
98
- ### **2.1 The Value of Developer Telemetry**
99
-
100
- Frontier model development is currently bottlenecked by a scarcity of high-quality reasoning data. While public
101
- repositories (GitHub, StackOverflow) have been exhausted, the next leap in coding AI requires execution
102
- traces—specifically, how humans and agents iteratively plan, edit, debug, and recover from compilation errors19. This
103
- concept, often referred to as "Harness Engineering," focuses on designing agent workspaces where models can learn from
104
- multi-turn interactions and environment feedback20.
105
- Chinese AI providers—such as DeepSeek, Moonshot (Kimi), Zhipu (GLM), and MiniMax—are uniquely positioned in this market.
106
- Facing geopolitical constraints on hardware accumulation, they rely on algorithmic efficiency, MoE (Mixture-of-Experts)
107
- architectures, and superior data pipelines to compete with Western frontier models21. Evidence suggests that some of
108
- these laboratories have aggressively distilled Western models (e.g., Claude) to capture reasoning pathways23. By
109
- partnering with a CLI coding agent, these providers gain legal, direct access to proprietary, multi-turn developer
110
- telemetry: bash execution traces, file edits, and error-correction loops.
111
-
112
- ### **2.2 Negotiating the Deal and Typical Terms**
113
-
114
- When negotiating a "data-for-compute" deal with providers like DeepSeek or MiniMax, the CLI developer must position the
115
- telemetry as a premium, exclusive asset.
116
- **What they want in return:** Providers seek deep visibility into the agentic loop. They want anonymized prompt logs,
117
- codebase context mapped by the File Picker agent, applied code diffs, and the terminal output of failed test runs4. They
118
- analyze this data to fine-tune their base models, improving their performance on complex benchmarks like SWE-bench and
119
- CursorBench20.
120
- **Typical Terms and Governance:**
121
-
122
- * **Perpetual Licensing:** Data policy surveys indicate that providers like Zhipu and Moonshot/Kimi often require
123
- "perpetual licenses" to utilize the submitted telemetry for ongoing model training25.
124
- * **Compute Subsidies:** In exchange for the data, the provider grants unrestricted, zero-cost API access for specific
125
- models, or sets a compute threshold that scales with user volume4.
126
- * **Minimum User Counts:** To provide statistically significant data volumes, providers typically look for a minimum
127
- threshold of active users. A platform with 10,000 Daily Active Users (DAU) running 3 sessions a day generates millions
128
- of structured coding tokens daily, which is highly attractive to data-hungry labs.
129
-
130
- ### **2.3 Western vs. Eastern Provider Programs**
131
-
132
- The "data-for-compute" model contrasts sharply with Western provider programs. OpenAI and Anthropic generally offer
133
- structured, time-limited startup credits (e.g., via Microsoft for Startups)4. While these credits bootstrap early
134
- development, they eventually expire, forcing the developer into a standard SaaS billing model that is incompatible with
135
- a permanently free consumer tool.
136
- Conversely, partnering with Chinese open-weight innovators provides a permanent subsidy mechanism. The tradeoff is
137
- stringent regulatory compliance. Transferring user data cross-border requires strict adherence to privacy frameworks.
138
- The proxy must implement robust sanitization, stripping Personally Identifiable Information (PII), API keys, and
139
- environment variables before routing payloads to subsidized providers. Explicit user opt-in is mandatory; users must
140
- understand that utilizing the free tier permits their prompts to be used for AI training4.
141
-
142
- ## **3\. Ad Network Integration: Monetizing the CLI**
143
-
144
- To cover infrastructural overhead and generate profit, the CLI must integrate context-aware advertising without
145
- disrupting the developer experience. Traditional ad networks rely on browser cookies and DOM manipulation, making them
146
- incompatible with terminal environments5. The backend must integrate specialized AI-native networks—Gravity, ZeroClick,
147
- and Carbon—using a hybrid of server-side fetching and cryptographic client-side validation.
148
-
149
- ### **3.1 Integrating Gravity Ads**
150
-
151
- Gravity Ads is an AI-native network designed to monetize LLM conversations by matching contextual intent to sponsored
152
- suggestions28. For example, if a developer asks the CLI to "set up a serverless database," Gravity might return a native
153
- text ad for PlanetScale or MongoDB6.
154
- **Integration Mechanics:** Gravity is integrated entirely server-side to ensure zero added latency for the user. The
155
- backend utilizes the @gravity-ai/api SDK (or standard REST calls)6. When the proxy receives a user prompt, it spawns an
156
- asynchronous fetch request to Gravity in parallel with the LLM inference call.
157
-
158
- JavaScript
159
- // Conceptual flow, executed within the Cloudflare Worker
160
- const adTask \= gravity.getAds(request, messages, \[{"placement": "cli\_terminal"}\]);
161
- const llmStream \= fetchUpstreamLLM(messages);
162
- const adResult \= await adTask;
163
- // The ad is injected into the initial SSE response before the LLM tokens stream
164
-
165
- Gravity requires the conversation context (the last 2-3 messages) to ensure high relevancy, filtering out
166
- non-conversational roles like tool or function. The network pays on a CPM or CPC basis, with high-intent developer
167
- audiences commanding premium CPMs.
168
-
169
- ### **3.2 Integrating ZeroClick**
170
-
171
- ZeroClick focuses on agentic commerce, turning API services into agent-purchasable storefronts32. For a CLI tool,
172
- ZeroClick functions as an offer marketplace, delivering contextual ads based on real-time user intent and continuously
173
- learned preferences34.
174
- **API Endpoints and Tracking Requirements:** Integrating ZeroClick requires a strict, two-step split architecture:
175
-
176
- > 1. **Offer Retrieval (Server-Side):** The Cloudflare proxy issues a POST request to
177
- https://zeroclick.dev/api/v2/offers. The request must include the Content-Type: application/json and x-zc-api-key
178
- headers, passing a JSON body containing the method ("server"), the client's ipAddress, and the user's query7.
179
- > 2. **Impression Tracking (Client-Side):** ZeroClick enforces rigorous tracking to prevent automated server scraping.
180
- After the CLI renders the ad, the CLI itself must issue a POST request to https://zeroclick.dev/api/v2/impressions.
181
- The JSON body must contain the ids of the rendered offers7.
182
-
183
- *Critical Constraint:* Impression requests must originate from the end user's device, not the proxy server, and are
184
- subject to IP-based rate limiting7. This split architecture introduces a massive vulnerability: if a user bypasses the
185
- official CLI, the impression endpoint is never pinged, and revenue collapses.
186
-
187
- ### **3.3 Integrating Carbon Ads**
188
-
189
- Carbon Ads is a veteran network (established in 2010 via BuySellAds) that curates native advertising for developers and
190
- designers5. Unlike typical display networks, Carbon provides a single, unobtrusive text ad and strictly refuses to use
191
- tracking cookies5.
192
- Carbon provides a CLI-specific SDK that handles fetching, local caching, and formatting5. Crucially, the SDK
193
- automatically suppresses ads in CI/CD pipelines or piped outputs (e.g., codebuff | grep) to avoid breaking developer
194
- automation5. Carbon's CPMs are heavily dependent on geography; Tier 1 countries (US, UK, CA, EU) yield excellent
195
- returns, while Tier 3 countries yield very little37. Therefore, Carbon should be prioritized for "Full Mode" tier users.
196
-
197
- ### **3.4 Realistic Fill Rates and CPMs**
198
-
199
- For a CLI coding tool with 10,000 to 50,000 DAU, the blended monetization strategy yields substantial revenue:
200
-
201
- * **Full Mode (Premium Geographies):** Combining Gravity's high-intent matching ($20-$30 CPM) with Carbon's established
202
- developer demand ($2-$5 CPM) and ZeroClick's CPC conversions results in an effective blended CPM of approximately
203
- $25.00 for Tier 1 users6.
204
- * **Limited Mode (Global Geographies):** Traffic outside core markets suffers from low advertiser demand and lower fill
205
- rates. The effective blended CPM for these regions typically drops to around $4.0037.
206
-
207
- ## **4\. Anti-Abuse and Validation: The Cryptographic Ad Chain**
208
-
209
- The greatest threat to a proxy-based free inference model is headless exploitation. Projects like "Freebuff2API" are
210
- explicitly designed to translate the backend's proprietary protocol back into standard OpenAI API endpoints38. These
211
- tools strip identifiers (like cost\_mode), rotate stolen authentication tokens, and allow users to run massive automated
212
- workloads (or connect local IDEs like Cursor) without ever rendering an ad in the terminal8.
213
- To prevent the total collapse of the business model, the backend must mathematically guarantee that LLM compute is only
214
- provisioned *after* an ad has been verifiably rendered to a human user. This requires a Cryptographic Ad Chain.
215
-
216
- ### **4.1 Implementing HMAC Signature Validation**
217
-
218
- The proxy leverages the Web Crypto API, which is natively supported on Cloudflare Workers, to create an unforgeable
219
- state machine39. The flow operates as follows:
220
-
221
- > 1. **Session Initiation & Ad Fetch:** The user initiates a CLI command. The proxy fetches an ad payload from Gravity
222
- or Carbon and generates a unique session\_id.
223
- > 2. **Token Minting:** The Cloudflare Worker imports a master secret key using crypto.subtle.importKey configured for
224
- HMAC and SHA-25639. The Worker creates a concatenated message payload: version:session\_id:ad\_id:expiresAt. It then
225
- signs this payload using crypto.subtle.sign, encodes the binary buffer using base64UrlEncode, and returns the ad copy
226
- and this cryptographic token to the CLI41.
227
- > 3. **Client-Side Verification:** The CLI renders the text ad in the terminal. If ZeroClick is used, the CLI executes
228
- the client-side impression tracking ping7.
229
- > 4. **Inference Request:** The CLI sends the user's prompt to the proxy, placing the base64UrlEncode HMAC token in the
230
- authorization header41.
231
- > 5. **Token Verification:** The Worker intercepts the prompt. It first checks the expiresAt timestamp to ensure the
232
- token hasn't timed out. It then decodes the token and validates the signature using crypto.subtle.verify41.
233
-
234
- *Security Imperative:* The validation must rely on crypto.subtle.verify rather than a standard JavaScript string
235
- comparison (token \=== expected). Standard string comparisons bail out on the first mismatched character, creating a
236
- timing side-channel attack that allows malicious actors to guess the HMAC secret byte by byte41.
237
- If the token is valid, the Worker opens the WebSocket and streams the LLM response. If invalid, the request is dropped.
238
- Because third-party headless proxies (like Freebuff2API) refuse to render ads, they cannot complete the ad-fetch step to
239
- acquire a valid HMAC token, effectively neutralizing the exploit8.
240
-
241
- ### **4.2 Defense-in-Depth Heuristics**
242
-
243
- Cryptography alone cannot stop sophisticated scrapers that attempt to simulate the ad chain. The proxy must enforce a
244
- minimal anti-abuse system:
245
-
246
- * **HAR-Style Fingerprinting:** The proxy must inspect incoming HTTP headers (Accept-Encoding, Connection, Host,
247
- User-Agent) to ensure they exactly match the signature of the official Node.js/Bun CLI fetch implementation8.
248
- * **SOCKS5 Proxy Blocking:** Attackers frequently use tools like Cloudflare WARP (Warp Plus Manager) or SOCKS5 proxies
249
- to bypass rate limits on limited-tier sessions8. The backend KV store should cross-reference incoming IPs against
250
- known VPN/proxy exit nodes and enforce aggressive CAPTCHA or token rotation penalties8.
251
- * **Streak and Rate Limiting:** Implement a global debounce (e.g., a 1.3-second minimum gap between requests) and track
252
- daily usage streaks in D1 to dynamically adjust rate limits for trusted vs. untrusted accounts8.
253
-
254
- ## **5\. Unit Economics at Scale**
255
-
256
- To determine the viability of the ad-subsidized, data-bartered model, we must model the monthly unit economics at
257
- 10,000, 50,000, and 170,000 registered users.
258
-
259
- ### **5.1 Cost and Revenue Assumptions**
260
-
261
- The financial modeling relies on several distinct behavioral and infrastructural assumptions characteristic of developer
262
- tools:
263
-
264
- * **User Engagement:** Monthly Active Users (MAU) typically represent 30% of registered users. Daily Active Users (DAU)
265
- represent 25% of MAU (effectively 7.5% of total registrations). The average DAU initiates 3 multi-turn sessions per
266
- day.
267
- * **Token Consumption and Prompt Caching:** An average agentic session requires significant context gathering, consuming
268
- roughly 150,000 input tokens and 10,000 output tokens.
269
- * *Flash Models (Limited Tier):* Baseline input cost is \~$0.15 per 1M tokens. Utilizing prompt caching yields an
270
- estimated 80% hit rate (cached tokens cost \~$0.015/1M). The effective blended input cost is $0.042 per 1M tokens.
271
- Total cost per session: \~$0.0093.
272
- * *Premium Models (Full Tier):* Baseline input cost is \~$1.00 per 1M tokens. With an 80% cache hit rate, the
273
- effective blended input cost is $0.28 per 1M tokens. Total cost per session: \~$0.062.
274
- * **Geographic Distribution:** 30% of traffic originates from high-CPM countries (Full Mode, using Premium models). 70%
275
- originates from the rest of the world (Limited Mode, using Flash models)4.
276
- * **Ad Impressions:** Each multi-turn session generates an average of 12 ad impressions (rendered between agentic
277
- reasoning steps).
278
- * **Blended CPMs:** Full Mode yields a blended $25.00 CPM (Gravity \+ Carbon \+ ZeroClick). Limited Mode yields a $4.00
279
- CPM6.
280
-
281
- ### **5.2 Break-Even Analysis**
282
-
283
- The break-even ad impression volume per inference session is highly favorable.
284
-
285
- * In **Full Mode**, the inference cost per session is $0.062. At a $25.00 CPM, each ad impression generates $0.025.
286
- Therefore, a session reaches break-even after just **2.5 ad impressions**.
287
- * In **Limited Mode**, the inference cost is $0.0093. At a $4.00 CPM, each impression generates $0.004. A session
288
- reaches break-even after **2.3 ad impressions**.
289
-
290
- Because the CLI renders an average of 12 impressions per session, the model is inherently profitable *even without* the
291
- data-for-compute subsidy.
292
-
293
- ### **5.3 Monthly Financial Projections**
294
-
295
- The following table calculates the monthly unit economics across the three scale points.
296
-
297
- * **Net Profit (No Subsidy):** Assumes the backend pays raw API costs out of pocket to the providers.
298
- * **Net Profit (With Subsidy):** Assumes a successful data-for-compute agreement where providers absorb 100% of LLM
299
- inference costs.
300
-
301
- | Metric | Startup Phase | Growth Phase | Scale Phase |
302
- | :---- | :---- | :---- | :---- |
303
- | **Registered Users** | 10,000 | 50,000 | 170,000 |
304
- | **Monthly Active Users (MAU)** | 3,000 | 15,000 | 51,000 |
305
- | **Daily Active Users (DAU)** | 750 | 3,750 | 12,750 |
306
- | **Daily Sessions** | 2,250 | 11,250 | 38,250 |
307
- | **Inference Cost / Month (Unsubsidized)** | $1,694.93 | $8,474.62 | $28,813.72 |
308
- | **Cloudflare Infra Cost / Month** | $5.08 | $5.41 | $6.38 |
309
- | **Gross Ad Revenue / Month (Gravity \+ ZeroClick \+ Carbon)** | $8,343.00 | $41,715.00 | $141,831.00 |
310
- | **Net Profit / Month (No Subsidy)** | **$6,642.99** | **$33,234.97** | **$113,010.90** |
311
- | **Net Profit / Month (With Subsidy)** | **$8,337.92** | **$41,709.60** | **$141,824.62** |
312
-
313
- At the 10,000 registered user mark, the system generates over 2.5 million structured coding tokens per day. This is the
314
- inflection point where the sheer volume of high-quality telemetry becomes statistically significant for LLM training,
315
- making the platform highly attractive to Chinese providers seeking to negotiate data-for-compute contracts.
316
-
317
- ## **6\. Competitive Landscape and Maturity**
318
-
319
- The AI developer tools ecosystem is currently divided between premium proprietary subscriptions and highly fragmented
320
- open-source frameworks.
321
-
322
- ### **6.1 The Open-Source vs. Proprietary Divide**
323
-
324
- Commercial platforms such as Cursor, GitHub Copilot, and Claude Code operate strictly on subscription models, typically
325
- ranging from $20 to $39 per month, or they meter usage heavily2. While they offer polished user experiences, they lock
326
- developers into specific proprietary ecosystems.
327
- Conversely, the open-source community has rallied around frameworks like Continue.dev, Aider, and Cline1. These tools
328
- are highly capable and model-agnostic, supporting advanced features like the Model Context Protocol (MCP)2. However,
329
- **none of these open-source alternatives provide a free, centralized inference backend**. Users are forced to either
330
- supply their own API keys (shifting the cost burden directly to the developer) or run local models via Ollama or LM
331
- Studio2. Local execution demands expensive GPU hardware (e.g., RTX 3090, Macs with massive Unified Memory), which
332
- isolates developers in emerging markets or those working on low-power machines44.
333
- Savant-Code, utilizing the FreeBuff architecture, occupies a unique position: it provides cloud-based,
334
- zero-configuration, frontier-level AI coding that is genuinely free to the end-user, subsidized seamlessly in the
335
- background4.
336
-
337
- ### **6.2 Maturity of AI-Native Ad Networks**
338
-
339
- The success of this model relies heavily on the maturity of the underlying ad networks.
340
-
341
- * **Carbon Ads:** Extremely mature. Backed by BuySellAds and operating since 2010, Carbon is the gold standard for
342
- developer advertising, offering reliable payouts, robust CLI SDKs, and deep advertiser demand5.
343
- * **Gravity Ads:** Emerging but highly capable. Gravity has successfully built SDKs specifically tailored for streaming
344
- LLM responses, allowing publishers to monetize conversational intent without introducing latency6.
345
- * **ZeroClick:** The newest entrant, focused exclusively on the burgeoning field of agentic commerce and
346
- machine-to-machine payments32. While their API endpoints and tracking requirements are strict, their focus on
347
- providing agents with purchasing power represents the next frontier of monetization32.
348
-
349
- ## **Conclusion**
350
-
351
- Architecting a sustainable free-tier inference backend for a CLI coding agent requires neutralizing the exorbitant costs
352
- of LLM inference through a synthesis of edge computing, cryptographic security, and hybrid monetization.
353
- By leveraging Cloudflare Workers and Hibernatable Durable Objects, the proxy can manage stateful, multi-turn WebSocket
354
- streams for thousands of concurrent users with negligible infrastructure costs. Integrating AI-native advertising
355
- networks (Gravity, ZeroClick, Carbon) directly into the agentic loop generates immediate positive unit economics.
356
- However, this revenue is only protected by enforcing a rigorous Cryptographic Ad Chain using HMAC-SHA256 signatures,
357
- mathematically guaranteeing that headless proxies cannot bleed compute without rendering ads.
358
- Ultimately, true scale is unlocked not just through advertising, but by weaponizing the platform's developer telemetry.
359
- By bartering execution traces, file edits, and debugging loops with data-hungry global AI providers, the platform
360
- transforms its largest expense—inference compute—into a perpetually subsidized asset, ensuring the CLI remains powerful,
361
- fast, and entirely free.
362
-
363
- ### **Works cited**
364
-
365
- > 1. Pricing \- Cline AI Coding Agent, [https://cline.bot/pricing](https://cline.bot/pricing)
366
- > 2. What Is Cline? The Open-Source AI Coding Tool That Runs in VS Code \- Developers Digest,
367
- [https://www.developersdigest.tech/blog/what-is-cline-open-source-ai-coding-tool](https://www.developersdigest.tech/blog/what-is-cline-open-source-ai-coding-tool)
368
- > 3. Continue.dev \+ Ollama Setup 2026: Free Copilot, Full config.yaml | Local AI Master,
369
- [https://localaimaster.com/blog/continue-dev-ollama-setup](https://localaimaster.com/blog/continue-dev-ollama-setup)
370
- > 4. CodebuffAI/codebuff: Generate code from the terminal\! \- GitHub,
371
- [https://github.com/CodebuffAI/codebuff](https://github.com/CodebuffAI/codebuff)
372
- > 5. Monetize Your CLI Tool with Carbon Ads, [https://www.carbonads.net/cli](https://www.carbonads.net/cli)
373
- > 6. For AI Platforms | Gravity, [https://www.trygravity.ai/ai-platforms](https://www.trygravity.ai/ai-platforms)
374
- > 7. Overview \- ZeroClick,
375
- [https://developer.zeroclick.ai/docs/integration-guide](https://developer.zeroclick.ai/docs/integration-guide)
376
- > 8. notBlubbll/free-buff-lol \- GitHub,
377
- [https://github.com/notBlubbll/free-buff-lol](https://github.com/notBlubbll/free-buff-lol)
378
- > 9. syntax-syndicate/codebuff-v0: Generate code from the terminal\! \- GitHub,
379
- [https://github.com/syntax-syndicate/codebuff-v0](https://github.com/syntax-syndicate/codebuff-v0)
380
- > 10. SSE vs WebSockets vs gRPC Streaming for LLM Apps: The Protocol Decision That Bites You Later \- TianPan.co,
381
- [https://tianpan.co/blog/2026-04-19-sse-websockets-grpc-streaming-llm-applications](https://tianpan.co/blog/2026-04-19-sse-websockets-grpc-streaming-llm-applications)
382
- > 11. Cloudflare WebSockets: CDN, Workers & Durable Objects,
383
- [https://websocket.org/guides/infrastructure/cloudflare/](https://websocket.org/guides/infrastructure/cloudflare/)
384
- > 12. A Workers optimization that reduces your bill | The Cloudflare Blog,
385
- [https://blog.cloudflare.com/workers-optimization-reduces-your-bill/](https://blog.cloudflare.com/workers-optimization-reduces-your-bill/)
386
- > 13. tRPC over websockets on Cloudflare Workers Durable Objects \#4400 \- GitHub,
387
- [https://github.com/trpc/trpc/discussions/4400](https://github.com/trpc/trpc/discussions/4400)
388
- > 14. Use WebSockets · Cloudflare Durable Objects docs,
389
- [https://developers.cloudflare.com/durable-objects/best-practices/websockets/](https://developers.cloudflare.com/durable-objects/best-practices/websockets/)
390
- > 15. Durable Object State \- Cloudflare Docs,
391
- [https://developers.cloudflare.com/durable-objects/api/state/](https://developers.cloudflare.com/durable-objects/api/state/)
392
- > 16. Cloudflare Durable Objects \- Stateful Serverless Functions,
393
- [https://www.cloudflare.com/products/durable-objects/](https://www.cloudflare.com/products/durable-objects/)
394
- > 17. Introducing WebSockets Support in Cloudflare Workers,
395
- [https://blog.cloudflare.com/introducing-websockets-in-workers/](https://blog.cloudflare.com/introducing-websockets-in-workers/)
396
- > 18. Transport modes \- Sandbox SDK \- Cloudflare Docs,
397
- [https://developers.cloudflare.com/sandbox/configuration/transport/](https://developers.cloudflare.com/sandbox/configuration/transport/)
398
- > 19. DeepSh\*t: Exposing the Security Risks of DeepSeek-R1 \- HiddenLayer,
399
- [https://www.hiddenlayer.com/research/deepsht-exposing-the-security-risks-of-deepseek-r1](https://www.hiddenlayer.com/research/deepsht-exposing-the-security-risks-of-deepseek-r1)
400
- > 20. Superlinear Academy · Deep News \- Computing Life,
401
- [https://yage.ai/share/?lang=all\&page=29](https://yage.ai/share/?lang=all&page=29)
402
- > 21. AI Models | NVIDIA Developer, [https://developer.nvidia.com/ai-models](https://developer.nvidia.com/ai-models)
403
- > 22. Deep News — Superlinear Academy \- AI Builders 2027, [https://grapeot.me/share/](https://grapeot.me/share/)
404
- > 23. Anthropic just dropped evidence that DeepSeek, Moonshot and MiniMax were mass-distilling Claude. 24K fake
405
- accounts, 16M+ exchanges. : r/ClaudeAI \- Reddit,
406
- [https://www.reddit.com/r/ClaudeAI/comments/1rd1j8u/anthropic\_just\_dropped\_evidence\_that\_deepseek/](https://www.reddit.com/r/ClaudeAI/comments/1rd1j8u/anthropic_just_dropped_evidence_that_deepseek/)
407
- > 24. codebuff — Commands, Examples & Usage Guide \- Skywork,
408
- [https://skywork.ai/clihub/keywords/codebuff.html](https://skywork.ai/clihub/keywords/codebuff.html)
409
- > 25. ai-coding-data-policy-survey-en-20260309,
410
- [https://yage.ai/share/ai-coding-data-policy-survey-en-20260309.html](https://yage.ai/share/ai-coding-data-policy-survey-en-20260309.html)
411
- > 26. DeepSeek Security, Privacy, and Governance: Hidden Risks in Open-Source AI \- Theori,
412
- [https://theori.io/blog/deepseek-security-privacy-and-governance-hidden-risks-in-open-source-ai](https://theori.io/blog/deepseek-security-privacy-and-governance-hidden-risks-in-open-source-ai)
413
- > 27. What Makes EthicalAds a Great Carbon Ads Alternative,
414
- [https://www.ethicalads.io/alternative-to-carbon-ads/](https://www.ethicalads.io/alternative-to-carbon-ads/)
415
- > 28. Gravity | The Ad Network for AI, [https://www.trygravity.ai/](https://www.trygravity.ai/)
416
- > 29. Publisher Spotlight: How Freebuff Funds Free AI Coding | Carbon Ads,
417
- [https://www.carbonads.net/blog/freebuff-publisher-spotlight](https://www.carbonads.net/blog/freebuff-publisher-spotlight)
418
- > 30. gravity-sdk \- PyPI, [https://pypi.org/project/gravity-sdk/](https://pypi.org/project/gravity-sdk/)
419
- > 31. AI Platform Monetization Help \- Gravity,
420
- [https://www.trygravity.ai/help/ai-platforms](https://www.trygravity.ai/help/ai-platforms)
421
- > 32. ZeroClick \- Sell Your Product to AI Agents, [https://www.zeroclick.ai/](https://www.zeroclick.ai/)
422
- > 33. It's time to sell to AI agents \- ZeroClick,
423
- [https://www.zeroclick.ai/its-time-to-sell-to-agents](https://www.zeroclick.ai/its-time-to-sell-to-agents)
424
- > 34. Overview \- ZeroClick, [https://developer.zeroclick.ai/docs](https://developer.zeroclick.ai/docs)
425
- > 35. Carbon Ads Media Kit \- Slides Design \- BuySellAds,
426
- [https://www.buysellads.com/hubfs/Carbon%20Ads%20Media%20Kit.pdf](https://www.buysellads.com/hubfs/Carbon%20Ads%20Media%20Kit.pdf)
427
- > 36. GitHub \- buysellads/carbon-sdk · GitHub,
428
- [https://github.com/buysellads/carbon-sdk](https://github.com/buysellads/carbon-sdk)
429
- > 37. What CTR Actually Looks Like for Developer Ads | Carbon Ads,
430
- [https://www.carbonads.net/blog/developer-ad-ctr-benchmarks](https://www.carbonads.net/blog/developer-ad-ctr-benchmarks)
431
- > 38. GitHub \- Quorinex/Freebuff2API: OpenAI-compatible Freebuff proxy with dynamic free-agent tracking, token
432
- rotation, and ready-to-use Docker deployment.,
433
- [https://github.com/Quorinex/Freebuff2API](https://github.com/Quorinex/Freebuff2API)
434
- > 39. Sign and Verify Messages with HMAC Using Web Crypto \- Brady Joslin,
435
- [https://bradyjoslin.com/posts/webcrypto-signing/](https://bradyjoslin.com/posts/webcrypto-signing/)
436
- > 40. Web Crypto · Cloudflare Workers docs,
437
- [https://developers.cloudflare.com/workers/runtime-apis/web-crypto/](https://developers.cloudflare.com/workers/runtime-apis/web-crypto/)
438
- > 41. HMAC-signed URLs on Cloudflare Workers \- Flavio Copes,
439
- [https://flaviocopes.com/hmac-signed-urls-cloudflare-workers/](https://flaviocopes.com/hmac-signed-urls-cloudflare-workers/)
440
- > 42. Workers Best Practices \- Cloudflare Docs,
441
- [https://developers.cloudflare.com/workers/best-practices/workers-best-practices/](https://developers.cloudflare.com/workers/best-practices/workers-best-practices/)
442
- > 43. Web Crypto \- Zuplo Docs,
443
- [https://zuplo.com/docs/programmable-api/web-crypto-apis](https://zuplo.com/docs/programmable-api/web-crypto-apis)
444
- > 44. Continue.dev AI Coding | Guides \- Clore.ai,
445
- [https://docs.clore.ai/guides/ai-platforms-and-agents/continue-dev](https://docs.clore.ai/guides/ai-platforms-and-agents/continue-dev)
446
- > 45. Freebuff — the free coding agent (free Claude Code, Codex, Cursor & Lovable alternative), [https://freebuff.com/](https://freebuff.com/)