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.
- package/README.md +381 -550
- package/{cli/release/index.js → index.js} +0 -0
- package/package.json +44 -71
- package/.agents/skills/coding-csharp/SKILL.md +0 -82
- package/.agents/skills/coding-go/SKILL.md +0 -76
- package/.agents/skills/coding-java/SKILL.md +0 -79
- package/.agents/skills/coding-python/SKILL.md +0 -87
- package/.agents/skills/coding-rust/SKILL.md +0 -83
- package/.agents/skills/coding-typescript/SKILL.md +0 -90
- package/.agents/skills/release-workflow/SKILL.md +0 -69
- package/.bun-version +0 -1
- package/.commandcode/settings.json +0 -11
- package/.commandcode/taste/workflow/taste.md +0 -6
- package/.env.example +0 -95
- package/.gitattributes +0 -43
- package/.githooks/pre-push +0 -35
- package/.github/workflows/build-release-binaries.yml +0 -163
- package/.markdownlint.json +0 -42
- package/.markdownlintignore +0 -21
- package/.prettierignore +0 -9
- package/.prettierrc +0 -23
- package/.savantignore +0 -3
- package/AGENTS.md +0 -97
- package/ARCHITECTURE.md +0 -241
- package/CHANGELOG.md +0 -2631
- package/CONTRIBUTING.md +0 -88
- package/ECHO-freebuff.md +0 -22
- package/ECHO.md +0 -722
- package/FREEREADME.md +0 -35
- package/LEARNINGS.md +0 -345
- package/NOTICE +0 -15
- package/README.zh-CN.md +0 -479
- package/SECURITY.md +0 -8
- package/VERSION +0 -1
- package/WINDOWS.md +0 -238
- package/agents/README.md +0 -41
- package/agents/base-chat.ts +0 -44
- package/agents/basher.ts +0 -107
- package/agents/browser-use/browser-use.test.ts +0 -211
- package/agents/browser-use/browser-use.ts +0 -259
- package/agents/constants.ts +0 -1
- package/agents/context-pruner.ts +0 -1076
- package/agents/detective/detective.ts +0 -168
- package/agents/editor/best-of-n/best-of-n-selector2.ts +0 -148
- package/agents/editor/best-of-n/editor-implementor-gpt-5.ts +0 -7
- package/agents/editor/best-of-n/editor-implementor-opus.ts +0 -7
- package/agents/editor/best-of-n/editor-implementor.ts +0 -196
- package/agents/editor/best-of-n/editor-multi-prompt.ts +0 -265
- package/agents/file-explorer/directory-lister.ts +0 -92
- package/agents/file-explorer/glob-matcher.ts +0 -96
- package/agents/forge/forge.ts +0 -146
- package/agents/librarian/librarian.test.ts +0 -289
- package/agents/librarian/librarian.ts +0 -158
- package/agents/package.json +0 -11
- package/agents/recorder/recorder.ts +0 -104
- package/agents/researcher/researcher-docs.ts +0 -32
- package/agents/researcher/researcher-web.ts +0 -40
- package/agents/savant/savant-analyze.ts +0 -11
- package/agents/savant/savant-free-deepseek-flash.ts +0 -13
- package/agents/savant/savant-free-deepseek.ts +0 -13
- package/agents/savant/savant-free-evals.ts +0 -9
- package/agents/savant/savant-free-glm.ts +0 -13
- package/agents/savant/savant-free-kimi.ts +0 -13
- package/agents/savant/savant-free-mimo-pro.ts +0 -13
- package/agents/savant/savant-free-mimo.ts +0 -13
- package/agents/savant/savant-free-minimax-m3.ts +0 -13
- package/agents/savant/savant-free.ts +0 -9
- package/agents/savant/savant-scaffold.ts +0 -15
- package/agents/savant/savant.ts +0 -706
- package/agents/scout/scout.ts +0 -305
- package/agents/scribe/scribe.ts +0 -54
- package/agents/thinker/thinker-gemini.ts +0 -26
- package/agents/thinker/thinker-gpt.ts +0 -21
- package/agents/thinker/thinker-with-files-gemini.ts +0 -66
- package/agents/thinker/thinker.ts +0 -99
- package/agents/tmux-cli.ts +0 -724
- package/agents/tsconfig.json +0 -12
- package/agents/types/agent-definition.ts +0 -1
- package/agents/types/secret-agent-definition.ts +0 -103
- package/agents/types/tools.ts +0 -465
- package/agents/types/util-types.ts +0 -167
- package/agents/verifier/verifier.ts +0 -80
- package/art/savant-redesign.md +0 -7
- package/art/savant-text-graf.md +0 -5
- package/art/savant_ascii.md +0 -88
- package/assets/banner.png +0 -0
- package/bun.lock +0 -1979
- package/bunfig.toml +0 -7
- package/cli/README.md +0 -111
- package/cli/bunfig.toml +0 -2
- package/cli/cli_exit +0 -1
- package/cli/package.json +0 -66
- package/cli/release/README.md +0 -348
- package/cli/release/package.json +0 -56
- package/cli/release-core/README.md +0 -20
- package/cli/release-core/package.json +0 -4
- package/cli/release-core/prepare-package.js +0 -31
- package/cli/release-staging/README.md +0 -70
- package/cli/release-staging/index.js +0 -42
- package/cli/release-staging/package.json +0 -43
- package/cli/scripts/build-binary.ts +0 -469
- package/cli/scripts/clean.ts +0 -16
- package/cli/scripts/prebuild-agents.ts +0 -250
- package/cli/scripts/release.ts +0 -103
- package/cli/scripts/smoke-binary.ts +0 -280
- package/cli/scripts/test-sdk-file-hooks.sh +0 -87
- package/cli/scripts/validate-cli-with-tmux.sh +0 -43
- package/cli/src/__tests__/README.md +0 -256
- package/cli/src/__tests__/bash-mode.test.ts +0 -442
- package/cli/src/__tests__/cli-args.test.ts +0 -241
- package/cli/src/__tests__/e2e/first-time-login.test.ts +0 -173
- package/cli/src/__tests__/e2e/logout-relogin-flow.test.ts +0 -110
- package/cli/src/__tests__/e2e/returning-user-auth.test.ts +0 -111
- package/cli/src/__tests__/e2e-cli.test.ts +0 -185
- package/cli/src/__tests__/helpers/mock-api-client.ts +0 -64
- package/cli/src/__tests__/helpers/terminal-watchdog-fixture.ts +0 -50
- package/cli/src/__tests__/home-directory-detection.test.ts +0 -213
- package/cli/src/__tests__/integration/agent-toolnames-validation.test.ts +0 -63
- package/cli/src/__tests__/integration/api-integration.test.ts +0 -289
- package/cli/src/__tests__/integration/credentials-storage.test.ts +0 -453
- package/cli/src/__tests__/integration/local-agents.test.ts +0 -1187
- package/cli/src/__tests__/integration/login-flow-instrumentation.test.ts +0 -146
- package/cli/src/__tests__/integration/login-polling-working.test.ts +0 -287
- package/cli/src/__tests__/integration/usage-refresh-on-completion.test.ts +0 -177
- package/cli/src/__tests__/integration-tmux.test.ts +0 -186
- package/cli/src/__tests__/mocks/hover-toggle-controller.ts +0 -71
- package/cli/src/__tests__/path-completion.test.ts +0 -243
- package/cli/src/__tests__/project-files-chat-id.test.ts +0 -34
- package/cli/src/__tests__/release/proxy-http-get.test.ts +0 -670
- package/cli/src/__tests__/release/wrapper-safety.test.ts +0 -177
- package/cli/src/__tests__/rerender-perf.integration.test.ts +0 -283
- package/cli/src/__tests__/terminal-reset-sequences.test.ts +0 -36
- package/cli/src/__tests__/terminal-watchdog.test.ts +0 -114
- package/cli/src/__tests__/test-utils.ts +0 -266
- package/cli/src/__tests__/tmux-poc.ts +0 -150
- package/cli/src/__tests__/unit/agent-mode-toggle.test.ts +0 -138
- package/cli/src/__tests__/unit/copy-button.test.tsx +0 -188
- package/cli/src/__tests__/unit/create-run-config.test.ts +0 -77
- package/cli/src/__tests__/unit/publish-confirmation.test.ts +0 -70
- package/cli/src/__tests__/unit/segmented-control.test.ts +0 -167
- package/cli/src/__tests__/utils/env.test.ts +0 -210
- package/cli/src/__tests__/utils/project-picker.test.ts +0 -39
- package/cli/src/agents/bundled-agents.generated.d.ts +0 -14
- package/cli/src/agents/bundled-agents.generated.ts +0 -1962
- package/cli/src/app.tsx +0 -383
- package/cli/src/chat.tsx +0 -2008
- package/cli/src/cli-args.ts +0 -183
- package/cli/src/commands/__tests__/bash-command.test.ts +0 -449
- package/cli/src/commands/__tests__/command-args.test.ts +0 -325
- package/cli/src/commands/__tests__/copy-conversation.test.ts +0 -240
- package/cli/src/commands/__tests__/dev-command.test.ts +0 -128
- package/cli/src/commands/__tests__/diagnostics-command.test.ts +0 -35
- package/cli/src/commands/__tests__/image.test.ts +0 -99
- package/cli/src/commands/__tests__/init.test.ts +0 -479
- package/cli/src/commands/__tests__/loop-command.test.ts +0 -89
- package/cli/src/commands/__tests__/new-command-rotates-chat.test.ts +0 -87
- package/cli/src/commands/__tests__/permissions-command.test.ts +0 -93
- package/cli/src/commands/__tests__/process-diagnostics.test.ts +0 -54
- package/cli/src/commands/__tests__/prompt-builders.test.ts +0 -69
- package/cli/src/commands/__tests__/registry-gating.test.ts +0 -125
- package/cli/src/commands/__tests__/rewind-command.test.ts +0 -227
- package/cli/src/commands/__tests__/router-connect-chatgpt.test.ts +0 -72
- package/cli/src/commands/__tests__/router-input.test.ts +0 -302
- package/cli/src/commands/__tests__/router-provider-setup.test.ts +0 -180
- package/cli/src/commands/__tests__/savant-free-command-aliases.test.ts +0 -56
- package/cli/src/commands/ads.ts +0 -45
- package/cli/src/commands/command-registry.ts +0 -1112
- package/cli/src/commands/copy-conversation.ts +0 -386
- package/cli/src/commands/goal.ts +0 -87
- package/cli/src/commands/health-command.ts +0 -61
- package/cli/src/commands/help.ts +0 -13
- package/cli/src/commands/image.ts +0 -20
- package/cli/src/commands/init.ts +0 -121
- package/cli/src/commands/loop.ts +0 -182
- package/cli/src/commands/process-diagnostics.ts +0 -120
- package/cli/src/commands/prompt-builders.ts +0 -140
- package/cli/src/commands/publish.ts +0 -261
- package/cli/src/commands/rewind.ts +0 -130
- package/cli/src/commands/router-utils.ts +0 -80
- package/cli/src/commands/router.ts +0 -589
- package/cli/src/commands/telemetry.ts +0 -68
- package/cli/src/commands/usage.ts +0 -26
- package/cli/src/components/__tests__/ad-banner.test.tsx +0 -84
- package/cli/src/components/__tests__/block-helpers.test.tsx +0 -139
- package/cli/src/components/__tests__/clickable.test.tsx +0 -39
- package/cli/src/components/__tests__/grid-layout.integration.test.tsx +0 -365
- package/cli/src/components/__tests__/grid-layout.test.tsx +0 -1033
- package/cli/src/components/__tests__/markdown-content.test.tsx +0 -163
- package/cli/src/components/__tests__/message-block.completion.test.tsx +0 -104
- package/cli/src/components/__tests__/message-block.streaming.test.tsx +0 -78
- package/cli/src/components/__tests__/message-with-agents.test.tsx +0 -571
- package/cli/src/components/__tests__/multiline-input.test.tsx +0 -1129
- package/cli/src/components/__tests__/selectable-list.test.ts +0 -232
- package/cli/src/components/__tests__/shimmer-text.test.tsx +0 -32
- package/cli/src/components/__tests__/status-indicator.test.tsx +0 -184
- package/cli/src/components/__tests__/user-error-banner.test.tsx +0 -100
- package/cli/src/components/ad-banner.tsx +0 -351
- package/cli/src/components/agent-checklist.tsx +0 -385
- package/cli/src/components/agent-mode-toggle.tsx +0 -294
- package/cli/src/components/ask-user/__tests__/multiple-choice-form.test.ts +0 -432
- package/cli/src/components/ask-user/__tests__/validation.test.ts +0 -213
- package/cli/src/components/ask-user/components/accordion-question.tsx +0 -153
- package/cli/src/components/ask-user/components/custom-answer-input.tsx +0 -66
- package/cli/src/components/ask-user/components/options-list.tsx +0 -139
- package/cli/src/components/ask-user/components/question-header.tsx +0 -80
- package/cli/src/components/ask-user/components/question-option.tsx +0 -94
- package/cli/src/components/ask-user/constants.ts +0 -35
- package/cli/src/components/ask-user/index.tsx +0 -660
- package/cli/src/components/ask-user/utils/validation.ts +0 -85
- package/cli/src/components/attachment-card.tsx +0 -67
- package/cli/src/components/blocks/agent-block-grid.tsx +0 -58
- package/cli/src/components/blocks/agent-branch-item.tsx +0 -230
- package/cli/src/components/blocks/agent-branch-wrapper.tsx +0 -524
- package/cli/src/components/blocks/agent-list-branch.tsx +0 -77
- package/cli/src/components/blocks/ask-user-branch.tsx +0 -98
- package/cli/src/components/blocks/block-helpers.tsx +0 -257
- package/cli/src/components/blocks/blocks-renderer.tsx +0 -296
- package/cli/src/components/blocks/content-with-markdown.tsx +0 -34
- package/cli/src/components/blocks/copy-button.tsx +0 -106
- package/cli/src/components/blocks/copyable-block.tsx +0 -47
- package/cli/src/components/blocks/image-block.tsx +0 -128
- package/cli/src/components/blocks/implementor-row.tsx +0 -453
- package/cli/src/components/blocks/markdown-content.tsx +0 -360
- package/cli/src/components/blocks/markdown-renderables.tsx +0 -347
- package/cli/src/components/blocks/single-block.tsx +0 -210
- package/cli/src/components/blocks/thinking-block.tsx +0 -77
- package/cli/src/components/blocks/tool-block-group.tsx +0 -72
- package/cli/src/components/blocks/tool-branch.tsx +0 -196
- package/cli/src/components/blocks/user-content-copy.tsx +0 -171
- package/cli/src/components/bottom-banner.tsx +0 -145
- package/cli/src/components/build-mode-buttons.tsx +0 -110
- package/cli/src/components/button.tsx +0 -75
- package/cli/src/components/chat-header.tsx +0 -11
- package/cli/src/components/chat-history-screen.tsx +0 -417
- package/cli/src/components/chat-input-bar.tsx +0 -535
- package/cli/src/components/chatgpt-connect-banner.tsx +0 -234
- package/cli/src/components/clickable.tsx +0 -149
- package/cli/src/components/collapse-button.tsx +0 -36
- package/cli/src/components/command-palette.tsx +0 -166
- package/cli/src/components/copy-button.tsx +0 -219
- package/cli/src/components/dialog.tsx +0 -111
- package/cli/src/components/elapsed-timer.tsx +0 -56
- package/cli/src/components/error-boundary.tsx +0 -63
- package/cli/src/components/feedback-container.tsx +0 -206
- package/cli/src/components/feedback-icon-button.tsx +0 -89
- package/cli/src/components/feedback-input-mode.tsx +0 -352
- package/cli/src/components/file-attachment-card.tsx +0 -89
- package/cli/src/components/grid-layout.tsx +0 -83
- package/cli/src/components/help-banner.tsx +0 -136
- package/cli/src/components/highlighted-text.tsx +0 -52
- package/cli/src/components/image-card.tsx +0 -167
- package/cli/src/components/image-thumbnail.tsx +0 -112
- package/cli/src/components/input-cursor.tsx +0 -77
- package/cli/src/components/input-mode-banner.tsx +0 -70
- package/cli/src/components/load-previous-button.tsx +0 -48
- package/cli/src/components/login-modal.tsx +0 -450
- package/cli/src/components/message-block.tsx +0 -337
- package/cli/src/components/message-footer.tsx +0 -269
- package/cli/src/components/message-with-agents.tsx +0 -594
- package/cli/src/components/mode-divider.tsx +0 -43
- package/cli/src/components/model-picker.tsx +0 -371
- package/cli/src/components/multiline-input.tsx +0 -1276
- package/cli/src/components/out-of-credits-banner.tsx +0 -155
- package/cli/src/components/pending-attachments-banner.tsx +0 -125
- package/cli/src/components/pending-bash-message.tsx +0 -57
- package/cli/src/components/progress-bar.tsx +0 -81
- package/cli/src/components/project-picker-screen.tsx +0 -469
- package/cli/src/components/provider-picker.tsx +0 -139
- package/cli/src/components/publish-confirmation.tsx +0 -514
- package/cli/src/components/publish-container.tsx +0 -737
- package/cli/src/components/raised-pill.tsx +0 -89
- package/cli/src/components/renderers/plan-box.tsx +0 -70
- package/cli/src/components/review-screen.tsx +0 -114
- package/cli/src/components/rewind-picker.tsx +0 -276
- package/cli/src/components/right-sidebar.tsx +0 -296
- package/cli/src/components/savant-free-active-session-summary.tsx +0 -63
- package/cli/src/components/savant-free-landing-screen.tsx +0 -756
- package/cli/src/components/savant-free-model-selector.tsx +0 -815
- package/cli/src/components/savant-free-referral-banner.tsx +0 -423
- package/cli/src/components/savant-free-superseded-screen.tsx +0 -62
- package/cli/src/components/savant-ui/animation/pulse.tsx +0 -26
- package/cli/src/components/savant-ui/animation/typewriter.tsx +0 -40
- package/cli/src/components/savant-ui/branding.tsx +0 -59
- package/cli/src/components/savant-ui/data-display/badge.tsx +0 -52
- package/cli/src/components/savant-ui/data-display/code-block.tsx +0 -55
- package/cli/src/components/savant-ui/data-display/key-value.tsx +0 -34
- package/cli/src/components/savant-ui/data-display/sparkline.tsx +0 -42
- package/cli/src/components/savant-ui/data-display/timeline.tsx +0 -44
- package/cli/src/components/savant-ui/data-display/tree-view.tsx +0 -55
- package/cli/src/components/savant-ui/echo/__tests__/sidebar-collapse.test.tsx +0 -90
- package/cli/src/components/savant-ui/echo/agent-stack.tsx +0 -72
- package/cli/src/components/savant-ui/echo/agent-status.tsx +0 -66
- package/cli/src/components/savant-ui/echo/fid-card.tsx +0 -89
- package/cli/src/components/savant-ui/echo/fid-list.tsx +0 -68
- package/cli/src/components/savant-ui/echo/loop-status-panel.tsx +0 -64
- package/cli/src/components/savant-ui/echo/perfection-loop.tsx +0 -118
- package/cli/src/components/savant-ui/echo/phase-indicator.tsx +0 -68
- package/cli/src/components/savant-ui/echo/phase-info.ts +0 -72
- package/cli/src/components/savant-ui/echo/token-meter.tsx +0 -39
- package/cli/src/components/savant-ui/feedback/alert.tsx +0 -45
- package/cli/src/components/savant-ui/feedback/cost-tracker.tsx +0 -54
- package/cli/src/components/savant-ui/feedback/progress-bar.tsx +0 -71
- package/cli/src/components/savant-ui/feedback/spinner.tsx +0 -40
- package/cli/src/components/savant-ui/icon-theme-keys.ts +0 -67
- package/cli/src/components/savant-ui/icon.tsx +0 -53
- package/cli/src/components/savant-ui/index.ts +0 -75
- package/cli/src/components/savant-ui/input/select.tsx +0 -26
- package/cli/src/components/savant-ui/input/toggle.tsx +0 -28
- package/cli/src/components/savant-ui/layout/grid.tsx +0 -52
- package/cli/src/components/savant-ui/layout/header.tsx +0 -28
- package/cli/src/components/savant-ui/navigation/stepper.tsx +0 -41
- package/cli/src/components/savant-ui/primitives/key-hint.tsx +0 -45
- package/cli/src/components/savant-ui/primitives/key-value-row.tsx +0 -41
- package/cli/src/components/savant-ui/primitives/panel.tsx +0 -42
- package/cli/src/components/savant-ui/primitives/separator.tsx +0 -34
- package/cli/src/components/savant-ui/primitives/sidebar-section.tsx +0 -64
- package/cli/src/components/savant-ui/primitives/spacer.tsx +0 -13
- package/cli/src/components/savant-ui/primitives/stack.tsx +0 -35
- package/cli/src/components/savant-ui/theme.ts +0 -45
- package/cli/src/components/scroll-to-bottom-button.tsx +0 -34
- package/cli/src/components/segmented-control.tsx +0 -199
- package/cli/src/components/selectable-list.tsx +0 -249
- package/cli/src/components/selected-chips.tsx +0 -86
- package/cli/src/components/separator.tsx +0 -40
- package/cli/src/components/session-ended-banner.tsx +0 -183
- package/cli/src/components/shimmer-text.tsx +0 -254
- package/cli/src/components/status-bar.tsx +0 -279
- package/cli/src/components/subscription-limit-banner.tsx +0 -269
- package/cli/src/components/suggested-prompts.tsx +0 -184
- package/cli/src/components/suggestion-menu.tsx +0 -219
- package/cli/src/components/terminal-command-display.tsx +0 -152
- package/cli/src/components/terminal-link.tsx +0 -97
- package/cli/src/components/text-attachment-card.tsx +0 -77
- package/cli/src/components/thinking.tsx +0 -108
- package/cli/src/components/toast.tsx +0 -109
- package/cli/src/components/tools/__tests__/apply-patch.test.tsx +0 -97
- package/cli/src/components/tools/__tests__/code-search.test.tsx +0 -45
- package/cli/src/components/tools/__tests__/gravity-index.test.ts +0 -76
- package/cli/src/components/tools/__tests__/render-ui.test.tsx +0 -556
- package/cli/src/components/tools/__tests__/run-terminal-command.test.ts +0 -274
- package/cli/src/components/tools/__tests__/tool-call-item.test.tsx +0 -73
- package/cli/src/components/tools/apply-patch.tsx +0 -101
- package/cli/src/components/tools/code-search.tsx +0 -50
- package/cli/src/components/tools/composio.tsx +0 -140
- package/cli/src/components/tools/diff-viewer.tsx +0 -21
- package/cli/src/components/tools/glob.tsx +0 -66
- package/cli/src/components/tools/gravity-index.tsx +0 -80
- package/cli/src/components/tools/list-directory.tsx +0 -66
- package/cli/src/components/tools/read-docs.tsx +0 -36
- package/cli/src/components/tools/read-files.tsx +0 -97
- package/cli/src/components/tools/read-subtree.tsx +0 -40
- package/cli/src/components/tools/read-url.tsx +0 -32
- package/cli/src/components/tools/registry.ts +0 -131
- package/cli/src/components/tools/render-ui.tsx +0 -466
- package/cli/src/components/tools/run-terminal-command.tsx +0 -86
- package/cli/src/components/tools/skill.tsx +0 -26
- package/cli/src/components/tools/str-replace.tsx +0 -77
- package/cli/src/components/tools/suggest-followups.tsx +0 -373
- package/cli/src/components/tools/task-completed.tsx +0 -16
- package/cli/src/components/tools/tool-call-item.tsx +0 -163
- package/cli/src/components/tools/types.ts +0 -100
- package/cli/src/components/tools/web-search.tsx +0 -32
- package/cli/src/components/tools/write-file.tsx +0 -20
- package/cli/src/components/tools/write-todos.tsx +0 -105
- package/cli/src/components/top-banner.tsx +0 -187
- package/cli/src/components/usage-banner.tsx +0 -296
- package/cli/src/components/user-error-banner.tsx +0 -54
- package/cli/src/components/validation-error-popover.tsx +0 -191
- package/cli/src/data/slash-commands.ts +0 -306
- package/cli/src/hooks/__tests__/holds-live-savant-free-slot.test.ts +0 -49
- package/cli/src/hooks/__tests__/run-outcome.test.ts +0 -178
- package/cli/src/hooks/__tests__/session-fetch-signal.test.ts +0 -45
- package/cli/src/hooks/__tests__/use-activity-query.test.ts +0 -810
- package/cli/src/hooks/__tests__/use-ask-user-bridge.test.ts +0 -175
- package/cli/src/hooks/__tests__/use-auth-query.test.ts +0 -21
- package/cli/src/hooks/__tests__/use-chat-messages-collapse.test.ts +0 -96
- package/cli/src/hooks/__tests__/use-connection-status.test.ts +0 -112
- package/cli/src/hooks/__tests__/use-directory-browser.test.ts +0 -215
- package/cli/src/hooks/__tests__/use-gravity-ad.test.ts +0 -73
- package/cli/src/hooks/__tests__/use-grid-layout.test.ts +0 -346
- package/cli/src/hooks/__tests__/use-input-history.test.ts +0 -704
- package/cli/src/hooks/__tests__/use-loop-scheduler.test.ts +0 -247
- package/cli/src/hooks/__tests__/use-path-tab-completion.test.ts +0 -324
- package/cli/src/hooks/__tests__/use-queue-controls.test.ts +0 -68
- package/cli/src/hooks/__tests__/use-searchable-list.test.ts +0 -364
- package/cli/src/hooks/__tests__/use-send-message-timer.test.ts +0 -146
- package/cli/src/hooks/__tests__/use-suggestion-engine-mention.test.ts +0 -364
- package/cli/src/hooks/__tests__/use-suggestion-engine.test.ts +0 -485
- package/cli/src/hooks/__tests__/use-terminal-focus.test.ts +0 -66
- package/cli/src/hooks/__tests__/use-terminal-layout.test.ts +0 -675
- package/cli/src/hooks/__tests__/use-timeout.test.ts +0 -330
- package/cli/src/hooks/__tests__/use-usage-query.test.ts +0 -526
- package/cli/src/hooks/__tests__/use-user-details-query.test.ts +0 -225
- package/cli/src/hooks/helpers/__tests__/send-message.test.ts +0 -1851
- package/cli/src/hooks/helpers/send-message.ts +0 -553
- package/cli/src/hooks/run-outcome.ts +0 -64
- package/cli/src/hooks/stream-state.ts +0 -106
- package/cli/src/hooks/use-activity-query.ts +0 -696
- package/cli/src/hooks/use-agent-validation.ts +0 -80
- package/cli/src/hooks/use-ask-user-bridge.ts +0 -102
- package/cli/src/hooks/use-auth-query.ts +0 -261
- package/cli/src/hooks/use-auth-state.ts +0 -155
- package/cli/src/hooks/use-chat-input.ts +0 -87
- package/cli/src/hooks/use-chat-keyboard.ts +0 -325
- package/cli/src/hooks/use-chat-messages.ts +0 -273
- package/cli/src/hooks/use-chat-state.ts +0 -219
- package/cli/src/hooks/use-chat-streaming.ts +0 -270
- package/cli/src/hooks/use-chat-ui.ts +0 -136
- package/cli/src/hooks/use-clipboard.ts +0 -154
- package/cli/src/hooks/use-connection-status.ts +0 -156
- package/cli/src/hooks/use-directory-browser.ts +0 -88
- package/cli/src/hooks/use-elapsed-time.ts +0 -116
- package/cli/src/hooks/use-event.ts +0 -36
- package/cli/src/hooks/use-exit-handler.ts +0 -108
- package/cli/src/hooks/use-fetch-login-url.ts +0 -65
- package/cli/src/hooks/use-fids.ts +0 -48
- package/cli/src/hooks/use-fingerprint.ts +0 -64
- package/cli/src/hooks/use-gravity-ad.ts +0 -688
- package/cli/src/hooks/use-grid-layout.ts +0 -78
- package/cli/src/hooks/use-input-history.ts +0 -173
- package/cli/src/hooks/use-login-keyboard-handlers.ts +0 -74
- package/cli/src/hooks/use-login-polling.ts +0 -120
- package/cli/src/hooks/use-logo.tsx +0 -178
- package/cli/src/hooks/use-loop-scheduler.ts +0 -481
- package/cli/src/hooks/use-message-queue.ts +0 -301
- package/cli/src/hooks/use-now.ts +0 -20
- package/cli/src/hooks/use-path-tab-completion.ts +0 -88
- package/cli/src/hooks/use-publish-mutation.ts +0 -60
- package/cli/src/hooks/use-queue-controls.ts +0 -70
- package/cli/src/hooks/use-queue-ui.ts +0 -55
- package/cli/src/hooks/use-savant-free-ctrl-c-exit.ts +0 -23
- package/cli/src/hooks/use-savant-free-session-progress.ts +0 -34
- package/cli/src/hooks/use-savant-free-session.ts +0 -679
- package/cli/src/hooks/use-savant-free-streak-query.ts +0 -72
- package/cli/src/hooks/use-scaffold-confirm.ts +0 -62
- package/cli/src/hooks/use-scaffold-revert-subscriber.ts +0 -66
- package/cli/src/hooks/use-scroll-management.ts +0 -182
- package/cli/src/hooks/use-searchable-list.ts +0 -99
- package/cli/src/hooks/use-send-message.ts +0 -1038
- package/cli/src/hooks/use-sheen-animation.tsx +0 -88
- package/cli/src/hooks/use-subscription-query.ts +0 -106
- package/cli/src/hooks/use-suggestion-engine.ts +0 -793
- package/cli/src/hooks/use-terminal-breakpoints.ts +0 -77
- package/cli/src/hooks/use-terminal-dimensions.ts +0 -50
- package/cli/src/hooks/use-terminal-focus.ts +0 -146
- package/cli/src/hooks/use-terminal-layout.ts +0 -189
- package/cli/src/hooks/use-theme.tsx +0 -140
- package/cli/src/hooks/use-timeout.ts +0 -88
- package/cli/src/hooks/use-toast.ts +0 -114
- package/cli/src/hooks/use-update-preference.ts +0 -77
- package/cli/src/hooks/use-usage-monitor.ts +0 -59
- package/cli/src/hooks/use-usage-query.ts +0 -138
- package/cli/src/hooks/use-user-details-query.ts +0 -104
- package/cli/src/hooks/use-why-did-you-update.ts +0 -178
- package/cli/src/index.tsx +0 -484
- package/cli/src/init/__tests__/init-direnv.test.ts +0 -597
- package/cli/src/init/init-app.ts +0 -54
- package/cli/src/init/init-direnv.ts +0 -133
- package/cli/src/login/constants.ts +0 -71
- package/cli/src/login/login-flow.ts +0 -224
- package/cli/src/login/plain-login.ts +0 -107
- package/cli/src/login/utils.ts +0 -183
- package/cli/src/native/ripgrep.ts +0 -82
- package/cli/src/polyfills/bun-strip-ansi.ts +0 -12
- package/cli/src/pre-init/load-dev-env.ts +0 -98
- package/cli/src/pre-init/tree-sitter-wasm.ts +0 -98
- package/cli/src/project-files.ts +0 -102
- package/cli/src/state/__tests__/chat-store-focus.test.ts +0 -22
- package/cli/src/state/__tests__/feedback-store.test.ts +0 -260
- package/cli/src/state/chat-history-store.ts +0 -27
- package/cli/src/state/chat-store.ts +0 -791
- package/cli/src/state/feedback-store.ts +0 -162
- package/cli/src/state/gateway-catalog-store.ts +0 -45
- package/cli/src/state/login-store.ts +0 -150
- package/cli/src/state/message-block-store.ts +0 -143
- package/cli/src/state/model-picker-store.ts +0 -67
- package/cli/src/state/provider-picker-store.ts +0 -53
- package/cli/src/state/publish-store.ts +0 -141
- package/cli/src/state/review-store.ts +0 -24
- package/cli/src/state/rewind-picker-store.ts +0 -74
- package/cli/src/state/savant-free-model-store.ts +0 -59
- package/cli/src/state/savant-free-session-store.ts +0 -32
- package/cli/src/test-setup.ts +0 -20
- package/cli/src/testing/env.ts +0 -46
- package/cli/src/types/chat-state.ts +0 -15
- package/cli/src/types/chat.ts +0 -242
- package/cli/src/types/contracts/send-message.ts +0 -16
- package/cli/src/types/env.ts +0 -107
- package/cli/src/types/function-params.ts +0 -35
- package/cli/src/types/opentui-augmentation.d.ts +0 -11
- package/cli/src/types/react19-compat.d.ts +0 -19
- package/cli/src/types/savant-free-session.ts +0 -17
- package/cli/src/types/store.ts +0 -112
- package/cli/src/types/theme-system.ts +0 -194
- package/cli/src/types/utils.ts +0 -3
- package/cli/src/utils/__tests__/activity-tracker.test.ts +0 -440
- package/cli/src/utils/__tests__/agent-display.test.ts +0 -139
- package/cli/src/utils/__tests__/analytics-client.test.ts +0 -311
- package/cli/src/utils/__tests__/anonymous-id.test.ts +0 -74
- package/cli/src/utils/__tests__/arrays.test.ts +0 -264
- package/cli/src/utils/__tests__/bash-context-processor.test.ts +0 -38
- package/cli/src/utils/__tests__/block-processor.test.ts +0 -690
- package/cli/src/utils/__tests__/chat-history.test.ts +0 -247
- package/cli/src/utils/__tests__/chat-input-key-intercept.test.ts +0 -40
- package/cli/src/utils/__tests__/chat-layout.test.ts +0 -32
- package/cli/src/utils/__tests__/chat-meta.test.ts +0 -160
- package/cli/src/utils/__tests__/chatgpt-oauth.test.ts +0 -50
- package/cli/src/utils/__tests__/clipboard.test.ts +0 -998
- package/cli/src/utils/__tests__/code-search-summary.test.ts +0 -84
- package/cli/src/utils/__tests__/collapse-helpers.test.ts +0 -1272
- package/cli/src/utils/__tests__/error-handling.test.ts +0 -611
- package/cli/src/utils/__tests__/feedback-helpers.test.ts +0 -452
- package/cli/src/utils/__tests__/feedback-submission.test.ts +0 -26
- package/cli/src/utils/__tests__/fetch-usage.test.ts +0 -355
- package/cli/src/utils/__tests__/fingerprint.test.ts +0 -147
- package/cli/src/utils/__tests__/format-elapsed-time.test.ts +0 -103
- package/cli/src/utils/__tests__/format-timeout.test.ts +0 -87
- package/cli/src/utils/__tests__/image-dimensions.test.ts +0 -243
- package/cli/src/utils/__tests__/image-processor.test.ts +0 -250
- package/cli/src/utils/__tests__/implementor-helpers.test.ts +0 -1457
- package/cli/src/utils/__tests__/keyboard-actions.test.ts +0 -686
- package/cli/src/utils/__tests__/layout-helpers.test.ts +0 -36
- package/cli/src/utils/__tests__/lazy-response-ads.test.ts +0 -167
- package/cli/src/utils/__tests__/logger-sanitize-secrets.test.ts +0 -80
- package/cli/src/utils/__tests__/markdown-renderer.test.tsx +0 -518
- package/cli/src/utils/__tests__/markdown-streaming.test.ts +0 -64
- package/cli/src/utils/__tests__/message-block-helpers.test.ts +0 -1197
- package/cli/src/utils/__tests__/message-updater.test.ts +0 -659
- package/cli/src/utils/__tests__/ollama-onboarding.test.ts +0 -239
- package/cli/src/utils/__tests__/openrouter-models.test.ts +0 -295
- package/cli/src/utils/__tests__/osc-timeout-scenarios.test.ts +0 -172
- package/cli/src/utils/__tests__/pending-attachments.test.ts +0 -278
- package/cli/src/utils/__tests__/provider-setup.test.ts +0 -183
- package/cli/src/utils/__tests__/run-state-storage.test.ts +0 -741
- package/cli/src/utils/__tests__/savant-code-api.test.ts +0 -634
- package/cli/src/utils/__tests__/savant-free-instance-owner.test.ts +0 -69
- package/cli/src/utils/__tests__/savant-free-model-navigation.test.ts +0 -104
- package/cli/src/utils/__tests__/savant-free-premium-reset.test.ts +0 -81
- package/cli/src/utils/__tests__/savant-free-referral-cache.test.ts +0 -67
- package/cli/src/utils/__tests__/savant-free-session-display.test.ts +0 -23
- package/cli/src/utils/__tests__/savant-free-streak-line.test.ts +0 -76
- package/cli/src/utils/__tests__/sdk-event-handlers.test.ts +0 -615
- package/cli/src/utils/__tests__/send-message-helpers.test.ts +0 -1875
- package/cli/src/utils/__tests__/send-message-timer.test.ts +0 -68
- package/cli/src/utils/__tests__/settings.test.ts +0 -138
- package/cli/src/utils/__tests__/strings.test.ts +0 -210
- package/cli/src/utils/__tests__/syntax-theme.test.ts +0 -91
- package/cli/src/utils/__tests__/terminal-color-detection.test.ts +0 -425
- package/cli/src/utils/__tests__/terminal-enter-detection.test.ts +0 -77
- package/cli/src/utils/__tests__/text-layout.test.ts +0 -82
- package/cli/src/utils/__tests__/think-tag-parser.test.ts +0 -159
- package/cli/src/utils/__tests__/trace-writer.test.ts +0 -193
- package/cli/src/utils/__tests__/trim-chat-logs.test.ts +0 -79
- package/cli/src/utils/__tests__/usage-banner-state.test.ts +0 -298
- package/cli/src/utils/__tests__/validation-error-formatting.test.ts +0 -126
- package/cli/src/utils/__tests__/write-file-atomic.test.ts +0 -130
- package/cli/src/utils/active-run.ts +0 -22
- package/cli/src/utils/activity-tracker.ts +0 -66
- package/cli/src/utils/agent-display.ts +0 -87
- package/cli/src/utils/agent-helpers.ts +0 -47
- package/cli/src/utils/ai-message-id.ts +0 -12
- package/cli/src/utils/analytics.ts +0 -407
- package/cli/src/utils/anonymous-id.ts +0 -87
- package/cli/src/utils/arrays.ts +0 -117
- package/cli/src/utils/auth.ts +0 -258
- package/cli/src/utils/bash-context-processor.ts +0 -47
- package/cli/src/utils/bash-messages.ts +0 -108
- package/cli/src/utils/block-margins.ts +0 -35
- package/cli/src/utils/block-operations.ts +0 -548
- package/cli/src/utils/block-processor.ts +0 -212
- package/cli/src/utils/chat-history.ts +0 -265
- package/cli/src/utils/chat-input-key-intercept.ts +0 -52
- package/cli/src/utils/chat-layout.ts +0 -44
- package/cli/src/utils/chat-meta.ts +0 -101
- package/cli/src/utils/chat-scroll-accel.ts +0 -151
- package/cli/src/utils/chatgpt-oauth.ts +0 -350
- package/cli/src/utils/clipboard-image.ts +0 -610
- package/cli/src/utils/clipboard.ts +0 -307
- package/cli/src/utils/code-search-summary.ts +0 -69
- package/cli/src/utils/collapse-helpers.ts +0 -265
- package/cli/src/utils/config-dir.ts +0 -30
- package/cli/src/utils/constants.ts +0 -159
- package/cli/src/utils/create-event-handler-state.ts +0 -79
- package/cli/src/utils/create-run-config.ts +0 -160
- package/cli/src/utils/db-storage.ts +0 -254
- package/cli/src/utils/detect-shell.ts +0 -112
- package/cli/src/utils/directory-browser.ts +0 -74
- package/cli/src/utils/engagement.ts +0 -55
- package/cli/src/utils/env.ts +0 -109
- package/cli/src/utils/error-handling.ts +0 -246
- package/cli/src/utils/error-messages.ts +0 -84
- package/cli/src/utils/feedback-helpers.ts +0 -115
- package/cli/src/utils/feedback-submission.ts +0 -24
- package/cli/src/utils/fetch-usage.ts +0 -75
- package/cli/src/utils/fid-loader.ts +0 -135
- package/cli/src/utils/fingerprint.ts +0 -263
- package/cli/src/utils/finish-logic.ts +0 -154
- package/cli/src/utils/format-elapsed-time.ts +0 -33
- package/cli/src/utils/format-session-units.ts +0 -6
- package/cli/src/utils/format-timeout.ts +0 -28
- package/cli/src/utils/format-validation-errors-for-message.ts +0 -85
- package/cli/src/utils/git.ts +0 -17
- package/cli/src/utils/glyphs.ts +0 -188
- package/cli/src/utils/helpers.ts +0 -47
- package/cli/src/utils/image-display.ts +0 -73
- package/cli/src/utils/image-handler.ts +0 -336
- package/cli/src/utils/image-processor.ts +0 -133
- package/cli/src/utils/image-thumbnail.ts +0 -83
- package/cli/src/utils/implementor-helpers.ts +0 -817
- package/cli/src/utils/input-modes.ts +0 -196
- package/cli/src/utils/keyboard-actions.ts +0 -394
- package/cli/src/utils/keypad-keys.ts +0 -47
- package/cli/src/utils/layout-helpers.ts +0 -36
- package/cli/src/utils/lazy-response-ads.ts +0 -1
- package/cli/src/utils/loading-phrases.ts +0 -68
- package/cli/src/utils/local-agent-registry.ts +0 -611
- package/cli/src/utils/log-shipper.ts +0 -116
- package/cli/src/utils/logger.ts +0 -435
- package/cli/src/utils/markdown-renderer.tsx +0 -1315
- package/cli/src/utils/math.ts +0 -3
- package/cli/src/utils/message-block-helpers.ts +0 -667
- package/cli/src/utils/message-history.ts +0 -153
- package/cli/src/utils/message-tree-utils.ts +0 -67
- package/cli/src/utils/message-updater.ts +0 -279
- package/cli/src/utils/ollama-onboarding.ts +0 -215
- package/cli/src/utils/open-file.ts +0 -144
- package/cli/src/utils/open-url.ts +0 -63
- package/cli/src/utils/openrouter-models.ts +0 -945
- package/cli/src/utils/path-completion.ts +0 -111
- package/cli/src/utils/path-helpers.ts +0 -38
- package/cli/src/utils/pending-attachments.ts +0 -363
- package/cli/src/utils/post-processing.ts +0 -99
- package/cli/src/utils/project-picker.ts +0 -12
- package/cli/src/utils/provider-setup.ts +0 -259
- package/cli/src/utils/recent-projects.ts +0 -156
- package/cli/src/utils/renderer-cleanup.ts +0 -142
- package/cli/src/utils/response-ad-positions.ts +0 -1
- package/cli/src/utils/rewind.ts +0 -175
- package/cli/src/utils/run-state-storage.ts +0 -480
- package/cli/src/utils/savant-code-api.ts +0 -686
- package/cli/src/utils/savant-code-client.ts +0 -217
- package/cli/src/utils/savant-free-agent-selection.ts +0 -12
- package/cli/src/utils/savant-free-exit.ts +0 -24
- package/cli/src/utils/savant-free-instance-owner.ts +0 -66
- package/cli/src/utils/savant-free-model-navigation.ts +0 -46
- package/cli/src/utils/savant-free-premium-reset.ts +0 -52
- package/cli/src/utils/savant-free-referral-cache.ts +0 -35
- package/cli/src/utils/savant-free-session-display.ts +0 -21
- package/cli/src/utils/savant-free-streak-line.ts +0 -67
- package/cli/src/utils/sdk-event-handlers.ts +0 -587
- package/cli/src/utils/send-message-helpers.ts +0 -199
- package/cli/src/utils/send-message-timer.ts +0 -110
- package/cli/src/utils/settings.ts +0 -388
- package/cli/src/utils/skill-registry.ts +0 -100
- package/cli/src/utils/spawn-agent-matcher.ts +0 -56
- package/cli/src/utils/status-indicator-state.ts +0 -100
- package/cli/src/utils/stream-chunk-processor.ts +0 -65
- package/cli/src/utils/strings.ts +0 -272
- package/cli/src/utils/subscription.ts +0 -31
- package/cli/src/utils/syntax-highlighter.tsx +0 -19
- package/cli/src/utils/syntax-theme.ts +0 -131
- package/cli/src/utils/terminal-color-detection.ts +0 -472
- package/cli/src/utils/terminal-enter-detection.ts +0 -63
- package/cli/src/utils/terminal-images.ts +0 -223
- package/cli/src/utils/terminal-reset-sequences.ts +0 -33
- package/cli/src/utils/terminal-title.ts +0 -113
- package/cli/src/utils/terminal-watchdog.ts +0 -246
- package/cli/src/utils/text-layout.ts +0 -153
- package/cli/src/utils/theme-config.ts +0 -143
- package/cli/src/utils/theme-system.ts +0 -1265
- package/cli/src/utils/think-tag-parser.ts +0 -105
- package/cli/src/utils/trace-writer.ts +0 -147
- package/cli/src/utils/ui-constants.ts +0 -69
- package/cli/src/utils/usage-banner-state.ts +0 -146
- package/cli/src/utils/validation-error-formatting.ts +0 -92
- package/cli/src/utils/validation-error-helpers.ts +0 -19
- package/cli/src/utils/version.ts +0 -23
- package/cli/src/utils/word-wrap-utils.ts +0 -53
- package/cli/src/utils/write-file-atomic.ts +0 -82
- package/cli/src/utils/yield-to-event-loop.ts +0 -9
- package/cli/tsconfig.json +0 -26
- package/coding-standards/csharp.md +0 -77
- package/coding-standards/go.md +0 -71
- package/coding-standards/java.md +0 -74
- package/coding-standards/python.md +0 -82
- package/coding-standards/rust.md +0 -78
- package/coding-standards/typescript.md +0 -85
- package/coding-standards/x402.md +0 -227
- package/common/README.md +0 -41
- package/common/common_exit +0 -1
- package/common/package.json +0 -45
- package/common/src/__tests__/agent-validation.test.ts +0 -861
- package/common/src/__tests__/agents.test.ts +0 -16
- package/common/src/__tests__/dynamic-agent-template-schema.test.ts +0 -420
- package/common/src/__tests__/env-ci.test.ts +0 -167
- package/common/src/__tests__/env-process.test.ts +0 -145
- package/common/src/__tests__/free-agents.test.ts +0 -269
- package/common/src/__tests__/handlesteps-parsing.test.ts +0 -247
- package/common/src/__tests__/model-config.test.ts +0 -41
- package/common/src/__tests__/project-file-tree.test.ts +0 -82
- package/common/src/__tests__/response-ad-positions.test.ts +0 -78
- package/common/src/__tests__/savant-free-models.test.ts +0 -460
- package/common/src/__tests__/savant-free-referral-tiers.test.ts +0 -122
- package/common/src/__tests__/user-state.test.ts +0 -30
- package/common/src/actions.ts +0 -215
- package/common/src/analytics-core.ts +0 -73
- package/common/src/analytics.ts +0 -96
- package/common/src/api-keys/constants.ts +0 -26
- package/common/src/browser-actions.ts +0 -414
- package/common/src/constants/agents.ts +0 -250
- package/common/src/constants/analytics-events.ts +0 -318
- package/common/src/constants/anthropic.ts +0 -72
- package/common/src/constants/byok.ts +0 -2
- package/common/src/constants/chatgpt-oauth.ts +0 -85
- package/common/src/constants/composio.ts +0 -34
- package/common/src/constants/feedback.ts +0 -18
- package/common/src/constants/free-agents.ts +0 -347
- package/common/src/constants/gemini.ts +0 -6
- package/common/src/constants/grant-priorities.ts +0 -13
- package/common/src/constants/hosts.ts +0 -6
- package/common/src/constants/images.ts +0 -53
- package/common/src/constants/index.ts +0 -8
- package/common/src/constants/knowledge.ts +0 -46
- package/common/src/constants/limits.ts +0 -23
- package/common/src/constants/model-config.ts +0 -469
- package/common/src/constants/paths.ts +0 -69
- package/common/src/constants/savant-code-config.ts +0 -12
- package/common/src/constants/savant-free-gemini-thinker.ts +0 -30
- package/common/src/constants/savant-free-models.ts +0 -855
- package/common/src/constants/savant-free-referral-tiers.ts +0 -169
- package/common/src/constants/skills.ts +0 -60
- package/common/src/constants/subscription-plans.ts +0 -54
- package/common/src/constants/ui.ts +0 -25
- package/common/src/env-ci.ts +0 -36
- package/common/src/env-process.ts +0 -95
- package/common/src/env-schema.ts +0 -42
- package/common/src/env.ts +0 -69
- package/common/src/mcp/client.ts +0 -308
- package/common/src/old-constants.ts +0 -10
- package/common/src/project-file-tree.ts +0 -361
- package/common/src/reddit-capi.ts +0 -175
- package/common/src/schemas/feedback.ts +0 -57
- package/common/src/schemas/logs.ts +0 -66
- package/common/src/templates/agent-validation.ts +0 -436
- package/common/src/templates/initial-agents-dir/LICENSE +0 -202
- package/common/src/templates/initial-agents-dir/README.md +0 -314
- package/common/src/templates/initial-agents-dir/examples/01-basic-diff-reviewer.ts +0 -17
- package/common/src/templates/initial-agents-dir/examples/02-intermediate-git-committer.ts +0 -78
- package/common/src/templates/initial-agents-dir/examples/03-advanced-file-explorer.ts +0 -76
- package/common/src/templates/initial-agents-dir/my-custom-agent.ts +0 -40
- package/common/src/templates/initial-agents-dir/package.json +0 -6
- package/common/src/templates/initial-agents-dir/skills/README.md +0 -66
- package/common/src/templates/initial-agents-dir/skills/example-skill/SKILL.md +0 -29
- package/common/src/templates/initial-agents-dir/types/agent-definition.ts +0 -484
- package/common/src/templates/initial-agents-dir/types/tools.ts +0 -452
- package/common/src/templates/initial-agents-dir/types/util-types.ts +0 -167
- package/common/src/testing/TESTING_PATTERNS.md +0 -353
- package/common/src/testing/errors.ts +0 -33
- package/common/src/testing/fixtures/agent-runtime.ts +0 -325
- package/common/src/testing/impl/agent-runtime.ts +0 -6
- package/common/src/testing/index.ts +0 -84
- package/common/src/testing/mock-modules.ts +0 -54
- package/common/src/testing/mock-types.ts +0 -123
- package/common/src/testing/mocks/analytics.ts +0 -262
- package/common/src/testing/mocks/child-process.ts +0 -93
- package/common/src/testing/mocks/crypto.ts +0 -218
- package/common/src/testing/mocks/database.ts +0 -337
- package/common/src/testing/mocks/filesystem.ts +0 -166
- package/common/src/testing/mocks/index.ts +0 -83
- package/common/src/testing/mocks/logger.ts +0 -136
- package/common/src/testing/mocks/stream.ts +0 -314
- package/common/src/testing/mocks/timers.ts +0 -132
- package/common/src/testing/mocks/tree-sitter.ts +0 -127
- package/common/src/testing/setup.ts +0 -282
- package/common/src/testing-env-ci.ts +0 -15
- package/common/src/testing-env-process.ts +0 -78
- package/common/src/tools/__tests__/compile-tool-definitions.test.ts +0 -34
- package/common/src/tools/__tests__/thought-session.test.ts +0 -256
- package/common/src/tools/compile-tool-definitions.ts +0 -194
- package/common/src/tools/constants.ts +0 -132
- package/common/src/tools/list.ts +0 -193
- package/common/src/tools/params/__tests__/coerce-to-array.test.ts +0 -237
- package/common/src/tools/params/__tests__/sequential-thinking-coercion.test.ts +0 -98
- package/common/src/tools/params/tool/add-message.ts +0 -36
- package/common/src/tools/params/tool/add-subgoal.ts +0 -57
- package/common/src/tools/params/tool/apply-patch.ts +0 -110
- package/common/src/tools/params/tool/ask-user.ts +0 -181
- package/common/src/tools/params/tool/browser-logs.ts +0 -85
- package/common/src/tools/params/tool/code-search.ts +0 -144
- package/common/src/tools/params/tool/composio.ts +0 -131
- package/common/src/tools/params/tool/create-plan.ts +0 -80
- package/common/src/tools/params/tool/end-turn.ts +0 -54
- package/common/src/tools/params/tool/find-files.ts +0 -60
- package/common/src/tools/params/tool/glob.ts +0 -74
- package/common/src/tools/params/tool/gravity-index.ts +0 -92
- package/common/src/tools/params/tool/list-directory.ts +0 -58
- package/common/src/tools/params/tool/lookup-agent-info.ts +0 -37
- package/common/src/tools/params/tool/propose-str-replace.ts +0 -103
- package/common/src/tools/params/tool/propose-write-file.ts +0 -71
- package/common/src/tools/params/tool/read-docs.ts +0 -85
- package/common/src/tools/params/tool/read-files.ts +0 -61
- package/common/src/tools/params/tool/read-subtree.ts +0 -83
- package/common/src/tools/params/tool/read-url.ts +0 -81
- package/common/src/tools/params/tool/render-ui.ts +0 -203
- package/common/src/tools/params/tool/run-file-change-hooks.ts +0 -57
- package/common/src/tools/params/tool/run-readonly-command.ts +0 -76
- package/common/src/tools/params/tool/run-terminal-command.ts +0 -185
- package/common/src/tools/params/tool/sequential-thinking.ts +0 -110
- package/common/src/tools/params/tool/set-messages.ts +0 -42
- package/common/src/tools/params/tool/set-output.ts +0 -62
- package/common/src/tools/params/tool/set-scaffold-complete.ts +0 -51
- package/common/src/tools/params/tool/skill.ts +0 -56
- package/common/src/tools/params/tool/spawn-agent-inline.ts +0 -57
- package/common/src/tools/params/tool/spawn-agents.ts +0 -154
- package/common/src/tools/params/tool/str-replace.ts +0 -107
- package/common/src/tools/params/tool/suggest-followups.ts +0 -94
- package/common/src/tools/params/tool/task-completed.ts +0 -58
- package/common/src/tools/params/tool/think-deeply.ts +0 -53
- package/common/src/tools/params/tool/transition-phase.ts +0 -57
- package/common/src/tools/params/tool/update-subgoal.ts +0 -89
- package/common/src/tools/params/tool/web-search.ts +0 -73
- package/common/src/tools/params/tool/write-file.ts +0 -71
- package/common/src/tools/params/tool/write-todos.ts +0 -67
- package/common/src/tools/params/utils.ts +0 -152
- package/common/src/tools/safety-registry.ts +0 -274
- package/common/src/tools/safety.ts +0 -42
- package/common/src/tools/sequential-thinking.ts +0 -340
- package/common/src/tools/utils.ts +0 -25
- package/common/src/types/__tests__/dynamic-agent-template.test.ts +0 -20
- package/common/src/types/agent-template.ts +0 -223
- package/common/src/types/api/agents/publish.ts +0 -63
- package/common/src/types/contracts/agent-runtime.ts +0 -84
- package/common/src/types/contracts/analytics.ts +0 -12
- package/common/src/types/contracts/bigquery.ts +0 -55
- package/common/src/types/contracts/billing.ts +0 -46
- package/common/src/types/contracts/client.ts +0 -52
- package/common/src/types/contracts/database.ts +0 -104
- package/common/src/types/contracts/env.ts +0 -203
- package/common/src/types/contracts/llm.ts +0 -183
- package/common/src/types/contracts/logger.ts +0 -29
- package/common/src/types/contracts/logs.ts +0 -34
- package/common/src/types/contracts/trace.ts +0 -21
- package/common/src/types/dynamic-agent-template.ts +0 -290
- package/common/src/types/filesystem.ts +0 -10
- package/common/src/types/function-params.ts +0 -35
- package/common/src/types/grant.ts +0 -20
- package/common/src/types/gravity-index.ts +0 -170
- package/common/src/types/json.ts +0 -26
- package/common/src/types/mcp.ts +0 -26
- package/common/src/types/messages/content-part.ts +0 -59
- package/common/src/types/messages/data-content.ts +0 -14
- package/common/src/types/messages/provider-metadata.ts +0 -10
- package/common/src/types/messages/savant-code-message.ts +0 -55
- package/common/src/types/organization.ts +0 -118
- package/common/src/types/print-mode.ts +0 -167
- package/common/src/types/publisher.ts +0 -67
- package/common/src/types/savant-free-session.ts +0 -295
- package/common/src/types/savant-free-streak.ts +0 -6
- package/common/src/types/session-state.ts +0 -237
- package/common/src/types/skill.ts +0 -56
- package/common/src/types/source.ts +0 -11
- package/common/src/types/spawn.ts +0 -13
- package/common/src/types/subscription.ts +0 -68
- package/common/src/types/usage.ts +0 -16
- package/common/src/types/util.ts +0 -3
- package/common/src/util/__tests__/analytics-dispatcher.test.ts +0 -145
- package/common/src/util/__tests__/analytics-log.test.ts +0 -110
- package/common/src/util/__tests__/analytics-sampling.test.ts +0 -131
- package/common/src/util/__tests__/axiom-only-log.test.ts +0 -64
- package/common/src/util/__tests__/engagement-tracker.test.ts +0 -115
- package/common/src/util/__tests__/error-abort.test.ts +0 -822
- package/common/src/util/__tests__/error-api-details.test.ts +0 -190
- package/common/src/util/__tests__/format-code-search.test.ts +0 -60
- package/common/src/util/__tests__/log-mirror.test.ts +0 -31
- package/common/src/util/__tests__/messages.test.ts +0 -1118
- package/common/src/util/__tests__/partial-json-delta.test.ts +0 -505
- package/common/src/util/__tests__/paths.test.ts +0 -289
- package/common/src/util/__tests__/promise.test.ts +0 -334
- package/common/src/util/__tests__/protocol-config.test.ts +0 -119
- package/common/src/util/__tests__/rate-limit.test.ts +0 -28
- package/common/src/util/__tests__/reddit-savant-free-retention.test.ts +0 -120
- package/common/src/util/__tests__/savant-free-streak.test.ts +0 -142
- package/common/src/util/__tests__/saxy.test.ts +0 -1008
- package/common/src/util/__tests__/string.test.ts +0 -238
- package/common/src/util/__tests__/zoned-time.test.ts +0 -88
- package/common/src/util/agent-file-utils.ts +0 -110
- package/common/src/util/agent-id-parsing.ts +0 -147
- package/common/src/util/agent-name-normalization.ts +0 -39
- package/common/src/util/analytics-dispatcher.ts +0 -81
- package/common/src/util/analytics-log.ts +0 -84
- package/common/src/util/analytics-sampling.ts +0 -225
- package/common/src/util/array.ts +0 -63
- package/common/src/util/axiom-only-log.ts +0 -79
- package/common/src/util/cache-debug.ts +0 -191
- package/common/src/util/credentials.ts +0 -12
- package/common/src/util/currency.ts +0 -25
- package/common/src/util/dates.ts +0 -81
- package/common/src/util/engagement-tracker.ts +0 -133
- package/common/src/util/error.ts +0 -580
- package/common/src/util/file.ts +0 -363
- package/common/src/util/format-code-search.ts +0 -115
- package/common/src/util/lazy-response-ads.ts +0 -93
- package/common/src/util/log-data.ts +0 -57
- package/common/src/util/log-mirror.ts +0 -34
- package/common/src/util/lru-cache.ts +0 -67
- package/common/src/util/messages.ts +0 -600
- package/common/src/util/model-utils.ts +0 -25
- package/common/src/util/object.ts +0 -137
- package/common/src/util/param-helpers.ts +0 -49
- package/common/src/util/partial-json-delta.ts +0 -100
- package/common/src/util/paths.ts +0 -194
- package/common/src/util/promise.ts +0 -87
- package/common/src/util/protocol-config.ts +0 -141
- package/common/src/util/random.ts +0 -15
- package/common/src/util/rate-limit.ts +0 -56
- package/common/src/util/reddit-capi-events.ts +0 -40
- package/common/src/util/reddit-savant-free-retention.ts +0 -69
- package/common/src/util/response-ad-positions.ts +0 -54
- package/common/src/util/savant-free-privacy.ts +0 -78
- package/common/src/util/savant-free-streak.ts +0 -153
- package/common/src/util/saxy.ts +0 -739
- package/common/src/util/skills.ts +0 -32
- package/common/src/util/stop-sequence.ts +0 -60
- package/common/src/util/string.ts +0 -419
- package/common/src/util/system-info.ts +0 -51
- package/common/src/util/type-narrowing.ts +0 -125
- package/common/src/util/xml.ts +0 -17
- package/common/src/util/zod-schema.ts +0 -80
- package/common/src/util/zoned-time.ts +0 -136
- package/common/src/utils/ask-user-bridge.ts +0 -47
- package/common/tsconfig.json +0 -8
- package/database.db +0 -0
- package/dev/LEARNINGS.md +0 -309
- package/dev/fids/.gitkeep +0 -0
- package/dev/fids/archive/.gitkeep +0 -0
- package/dev/fids/archive/FID-2026-0802-008-sdk-package-audit-client-run-run-state.md +0 -238
- package/dev/fids/archive/FID-2026-0803-001-echo-enforcement-layer-drift.md +0 -404
- package/dev/fids/archive/FID-2026-0803-002-llm-providers-database-audit.md +0 -348
- package/dev/fids/archive/FID-2026-0803-003-sdk-impl-common-util-audit.md +0 -277
- package/dev/fids/archive/FID-2026-0803-004-checkpoint-rewind.md +0 -181
- package/dev/fids/archive/FID-2026-0803-005-quality-scan-hygiene-fixes.md +0 -265
- package/dev/fids/archive/FID-2026-0803-006-code-map-audit-hygiene.md +0 -243
- package/dev/fids/archive/FID-2026-0803-007-evals-benchmark-audit-hygiene.md +0 -296
- package/dev/fids/archive/FID-2026-0803-009-echo-enforcement-doc-drift.md +0 -112
- package/dev/fids/archive/FID-2026-0803-010-database-llm-providers-low-fixes.md +0 -255
- package/dev/fids/archive/FID-2026-0803-011-build-artifact-hygiene.md +0 -169
- package/dev/fids/archive/FID-2026-0803-012-release-readiness-audit.md +0 -162
- package/dev/fids/archive/FID-2026-0803-013-agent-roster-over-reporting.md +0 -146
- package/dev/fids/archive/FID-2026-0803-014-freebuff-to-savant-rebrand-sweep.md +0 -185
- package/dev/nova/reports/2026-08-02-top-25-ai-inference-providers-competitive-intel.md +0 -213
- package/dev/nova/specs/echo-v0.1.2-freebuff.md +0 -391
- package/dev/nova/specs/goal-loop-feature-spec.md +0 -245
- package/dev/nova/specs/launch-strategy-research-prompt.md +0 -88
- package/dev/releases/README.md +0 -50
- package/dev/scratchpad/.gitkeep +0 -0
- package/dev/session-summaries/.gitkeep +0 -0
- package/dev/session-summaries/2026-07-16-1255.md +0 -128
- package/dev/session-summaries/2026-07-17-1000.md +0 -64
- package/dev/session-summaries/2026-07-19-eslint-zero-tolerance-cleanup.md +0 -145
- package/dev/session-summaries/2026-07-19-fid-026-debugging-and-rename.md +0 -79
- package/dev/session-summaries/2026-07-19-fid-026-phase-b-rebrand.md +0 -76
- package/dev/session-summaries/2026-07-19-fid-027-clean-break.md +0 -47
- package/dev/session-summaries/2026-07-19-pre-push-house-cleaning.md +0 -100
- package/dev/session-summaries/2026-07-19-v0.0.2-release-session.md +0 -229
- package/dev/session-summaries/2026-07-20-1805-fid-loop-closure.md +0 -95
- package/dev/session-summaries/2026-07-22-1800.md +0 -52
- package/dev/session-summaries/2026-07-23-fsm-optimization.md +0 -88
- package/dev/session-summaries/2026-07-25-0000.md +0 -80
- package/dev/session-summaries/2026-07-25-1200-context-compaction.md +0 -154
- package/dev/session-summaries/2026-07-25-1600-layer4-reactive-compact.md +0 -96
- package/dev/session-summaries/2026-07-25-1700-dev-folder-audit.md +0 -161
- package/dev/session-summaries/2026-07-25-2000-benchmark-v2-filters.md +0 -147
- package/dev/session-summaries/2026-07-25-2000.md +0 -77
- package/dev/session-summaries/2026-07-27-0000.md +0 -63
- package/dev/session-summaries/2026-07-28-history-capture-handoff.md +0 -206
- package/dev/session-summaries/2026-07-31-freebuff-echo-compliance-remediation.md +0 -156
- package/dev/session-summaries/2026-07-31-pre-launch-optimization-execution.md +0 -46
- package/dev/session-summaries/2026-0721-1800.md +0 -44
- package/dev/session-summaries/2026-08-01-sidebar-folded-startup.md +0 -159
- package/dev/session-summaries/2026-08-02-0.0.15-release-closeout.md +0 -32
- package/dev/session-summaries/2026-08-02-repository-hygiene.md +0 -51
- package/dev/session-summaries/2026-08-03-agent-roster-fix-and-ready-check-closeout.md +0 -73
- package/dev/session-summaries/2026-08-03-build-artifact-hygiene-closeout.md +0 -40
- package/dev/session-summaries/2026-08-03-code-map-audit-closeout.md +0 -44
- package/dev/session-summaries/2026-08-03-database-llm-providers-low-fixes-closeout.md +0 -47
- package/dev/session-summaries/2026-08-03-echo-enforcement-doc-drift-closeout.md +0 -43
- package/dev/session-summaries/2026-08-03-evals-benchmark-audit-closeout.md +0 -50
- package/dev/session-summaries/2026-08-03-quality-scan-hygiene-fixes-closeout.md +0 -57
- package/dev/session-summaries/2026-08-03-quality-session-checkpoint-rewind-closeout.md +0 -56
- package/dev/session-summaries/2026-08-03-release-readiness-audit-closeout.md +0 -60
- package/dev/test-prompts/archive/0.0.2-final-pass.md +0 -209
- package/dev/test-prompts/archive/agent-capabilities-full-test.md +0 -361
- package/dev/test-prompts/archive/agent-capabilities-test.md +0 -471
- package/dev/test-prompts/archive/comprehensive-az-system-test-v1.md +0 -441
- package/dev/test-prompts/archive/comprehensive-az-system-test-v2-report.md +0 -377
- package/dev/test-prompts/archive/comprehensive-az-system-test-v2.md +0 -544
- package/dev/test-prompts/archive/comprehensive-az-system-test.md +0 -396
- package/dev/test-prompts/archive/comprehensive-az-test-final.md +0 -900
- package/dev/test-prompts/archive/comprehensive-az-test-v11.md +0 -141
- package/dev/test-prompts/archive/comprehensive-az-test-v12.md +0 -29
- package/dev/test-prompts/archive/comprehensive-az-test-v6.md +0 -631
- package/dev/test-prompts/archive/comprehensive-az-test-v7.md +0 -625
- package/dev/test-prompts/archive/fid-007-ability-confirmation.md +0 -248
- package/dev/test-prompts/archive/fid-2026-0801-006-thinker-tool-call-boundary.md +0 -86
- package/dev/test-prompts/archive/fid-2026-0801-007-child-tool-set-fallback-cli.md +0 -101
- package/dev/test-prompts/archive/fid-2026-0801-008-provider-tool-call-accumulation-cli.md +0 -111
- package/dev/test-prompts/archive/fid-2026-0801-012-thinker-state-output-cli.md +0 -134
- package/dev/test-prompts/archive/gemini-deep-research-sidebar-highlight.md +0 -598
- package/dev/test-prompts/archive/goal-loop-cli-test.md +0 -142
- package/dev/test-prompts/archive/rebrand-qa.md +0 -258
- package/dev/test-prompts/archive/release-az-test-fid-085.md +0 -306
- package/dev/test-prompts/archive/release-az-test-fid-087.md +0 -219
- package/dev/test-prompts/archive/release-az-test-fid-2026-0726-001.md +0 -270
- package/dev/test-prompts/archive/release-az-test-fid-2026-0728-008.md +0 -213
- package/dev/test-prompts/archive/release-az-test-fid-2026-0728-launch-tracks.md +0 -253
- package/dev/test-prompts/archive/release-az-test-fid-2026-0731-pre-launch.md +0 -102
- package/docs/AI Coding Agents Market Research.md +0 -516
- package/docs/Agent Harness Feature Pairing Research.md +0 -166
- package/docs/CLI Agent Inference Backend Research.md +0 -446
- package/docs/Codebuff Rebranding And Migration Plan.md +0 -418
- package/docs/ECHO-EVOLUTION-ARCH.md +0 -77
- package/docs/Harness Engineering for Coding Agents Research.md +0 -196
- package/docs/Launch Plan Review and Optimization.md +0 -178
- package/docs/OpenTUI Sidebar Bug Fix.md +0 -245
- package/docs/SAVANT-VERSIONING.md +0 -31
- package/docs/Savant Code Launch Strategy.md +0 -270
- package/docs/Savant-Code Business And Backend Research.md +0 -222
- package/docs/agents-and-tools.md +0 -217
- package/docs/cloudflare-llms-full.md +0 -9623
- package/docs/design/OpenTUI Terminal Visualization Guide.md +0 -471
- package/docs/design/database-architecture.md +0 -217
- package/docs/design/deep-research-report.md +0 -295
- package/docs/design/thinker-sequentialthinking-regression-diagnostic.md +0 -366
- package/docs/discord-server-design.md +0 -167
- package/docs/gravity-integration-starter.md +0 -202
- package/docs/launch/hn-first-comment.md +0 -44
- package/docs/launch/hn-post.md +0 -35
- package/docs/launch/incident-response.md +0 -88
- package/docs/launch/landing/index.html +0 -233
- package/docs/launch/mastodon-thread.md +0 -52
- package/docs/launch/newsletter-pitch.md +0 -49
- package/docs/launch/twitter-thread.md +0 -62
- package/docs/privacy.md +0 -186
- package/docs/reports/Savant-Code Benchmark Specification.md +0 -206
- package/docs/reports/Thinker Agent Architecture Research.md +0 -284
- package/docs/reports/adoptable-features-2026-07-25.md +0 -604
- package/docs/reports/adoptable-features-master.md +0 -480
- package/docs/reports/codebuff-discord-feedback.md +0 -43
- package/docs/reports/feature-parity-report.md +0 -810
- package/docs/reports/repos/AionUi.md +0 -75
- package/docs/reports/repos/OpenHands.md +0 -76
- package/docs/reports/repos/SWE-agent.md +0 -82
- package/docs/reports/repos/agno.md +0 -89
- package/docs/reports/repos/aider.md +0 -74
- package/docs/reports/repos/cline.md +0 -83
- package/docs/reports/repos/codex.md +0 -83
- package/docs/reports/repos/gemini-cli.md +0 -92
- package/docs/reports/repos/goose.md +0 -65
- package/docs/reports/repos/gpt-pilot.md +0 -52
- package/docs/reports/repos/hermes-agent.md +0 -101
- package/docs/reports/repos/kilocode.md +0 -79
- package/docs/reports/repos/openclaude.md +0 -99
- package/docs/reports/repos/openclaw.md +0 -100
- package/docs/reports/repos/opencode-dev.md +0 -78
- package/docs/reports/repos/zero.md +0 -123
- package/docs/reports/savant-code-benchmark-v2-2026-08-03.md +0 -76
- package/docs/savant-code-modes.md +0 -338
- package/docs/testing.md +0 -51
- package/docs/visual-mockup-neon-slate.txt +0 -41
- package/eslint.config.js +0 -211
- package/evals/README.md +0 -45
- package/evals/benchmark/README.md +0 -449
- package/evals/benchmark/agent-runner.ts +0 -217
- package/evals/benchmark/analyze-task-scores.ts +0 -496
- package/evals/benchmark/eval-codebuff-hard.json +0 -3343
- package/evals/benchmark/eval-codebuff.json +0 -3193
- package/evals/benchmark/eval-codebuff2.json +0 -2494
- package/evals/benchmark/eval-manifold-hard.json +0 -2525
- package/evals/benchmark/eval-manifold.json +0 -1675
- package/evals/benchmark/eval-manifold2.json +0 -1945
- package/evals/benchmark/eval-plane-hard.json +0 -4372
- package/evals/benchmark/eval-plane.json +0 -2028
- package/evals/benchmark/eval-plane2.json +0 -3517
- package/evals/benchmark/eval-saleor-hard.json +0 -6081
- package/evals/benchmark/eval-saleor.json +0 -1829
- package/evals/benchmark/eval-saleor2.json +0 -3273
- package/evals/benchmark/eval-task-generator.ts +0 -158
- package/evals/benchmark/filter-supplemental-files.ts +0 -225
- package/evals/benchmark/format-output.ts +0 -215
- package/evals/benchmark/gen-evals.ts +0 -294
- package/evals/benchmark/gen-repo-eval.ts +0 -71
- package/evals/benchmark/judge.ts +0 -308
- package/evals/benchmark/lessons-extractor.ts +0 -247
- package/evals/benchmark/main-hard-tasks.ts +0 -49
- package/evals/benchmark/main-single-eval.ts +0 -23
- package/evals/benchmark/main.ts +0 -29
- package/evals/benchmark/meta-analyzer.ts +0 -329
- package/evals/benchmark/pick-commits.ts +0 -627
- package/evals/benchmark/run-benchmark.ts +0 -657
- package/evals/benchmark/runners/claude.ts +0 -176
- package/evals/benchmark/runners/codex.ts +0 -143
- package/evals/benchmark/runners/index.ts +0 -4
- package/evals/benchmark/runners/opencode.ts +0 -253
- package/evals/benchmark/runners/runner.ts +0 -13
- package/evals/benchmark/runners/savant.ts +0 -148
- package/evals/benchmark/setup-test-repo.ts +0 -314
- package/evals/benchmark/trace-analyzer.ts +0 -257
- package/evals/benchmark/trace-utils.ts +0 -80
- package/evals/benchmark/types.ts +0 -83
- package/evals/bunfig.toml +0 -4
- package/evals/logger.ts +0 -87
- package/evals/package.json +0 -31
- package/evals/subagents/test-repo-utils.ts +0 -131
- package/evals/tsconfig.json +0 -13
- package/evals/v2/README.md +0 -149
- package/evals/v2/reports/report.json +0 -261
- package/evals/v2/reports/report.md +0 -15
- package/evals/v2/schema/task.schema.json +0 -172
- package/evals/v2/src/cli.ts +0 -216
- package/evals/v2/src/golden.ts +0 -73
- package/evals/v2/src/harness.ts +0 -293
- package/evals/v2/src/metrics.ts +0 -326
- package/evals/v2/src/registry.ts +0 -179
- package/evals/v2/src/reports.ts +0 -126
- package/evals/v2/src/runner.ts +0 -143
- package/evals/v2/src/runners/savant.ts +0 -105
- package/evals/v2/src/sandbox.ts +0 -42
- package/evals/v2/src/sandboxes/docker.ts +0 -49
- package/evals/v2/src/sandboxes/tempdir.ts +0 -120
- package/evals/v2/src/schema.ts +0 -83
- package/evals/v2/src/trace.ts +0 -186
- package/evals/v2/src/verify.ts +0 -199
- package/evals/v2/tasks/error_recovery/env-fault/calculator.js +0 -11
- package/evals/v2/tasks/error_recovery/env-fault/calculator.test.js +0 -15
- package/evals/v2/tasks/error_recovery/env-fault/golden.patch +0 -15
- package/evals/v2/tasks/error_recovery/env-fault/task.yaml +0 -20
- package/evals/v2/tasks/multi_agent_orchestration/options-contract/app.js +0 -5
- package/evals/v2/tasks/multi_agent_orchestration/options-contract/app.test.js +0 -7
- package/evals/v2/tasks/multi_agent_orchestration/options-contract/golden.patch +0 -19
- package/evals/v2/tasks/multi_agent_orchestration/options-contract/greet.js +0 -3
- package/evals/v2/tasks/multi_agent_orchestration/options-contract/orchestration.test.js +0 -30
- package/evals/v2/tasks/multi_agent_orchestration/options-contract/task.yaml +0 -29
- package/evals/v2/tasks/pure_coding/add-fix/add.js +0 -3
- package/evals/v2/tasks/pure_coding/add-fix/add.test.js +0 -11
- package/evals/v2/tasks/pure_coding/add-fix/golden.patch +0 -7
- package/evals/v2/tasks/pure_coding/add-fix/task.yaml +0 -20
- package/evals/v2/tasks/pure_coding/rename-greet/app.js +0 -5
- package/evals/v2/tasks/pure_coding/rename-greet/app.test.js +0 -32
- package/evals/v2/tasks/pure_coding/rename-greet/golden.patch +0 -19
- package/evals/v2/tasks/pure_coding/rename-greet/greet.js +0 -5
- package/evals/v2/tasks/pure_coding/rename-greet/task.yaml +0 -21
- package/evals/v2/tests/golden.test.ts +0 -104
- package/evals/v2/tests/harness.test.ts +0 -204
- package/evals/v2/tests/metrics.test.ts +0 -353
- package/evals/v2/tests/registry.test.ts +0 -210
- package/evals/v2/tests/reports.test.ts +0 -218
- package/evals/v2/tests/savant-runner.test.ts +0 -218
- package/evals/v2/tests/schema.test.ts +0 -127
- package/evals/v2/tests/tempdir-sandbox.test.ts +0 -49
- package/evals/v2/tests/trace.test.ts +0 -76
- package/evals/v2/tests/verify.test.ts +0 -224
- package/license +0 -202
- package/packages/agent-runtime/README.md +0 -46
- package/packages/agent-runtime/agent_exit +0 -1
- package/packages/agent-runtime/bunfig.toml +0 -2
- package/packages/agent-runtime/package.json +0 -34
- package/packages/agent-runtime/src/__tests__/apply-patch-tool.test.ts +0 -202
- package/packages/agent-runtime/src/__tests__/cost-aggregation.test.ts +0 -397
- package/packages/agent-runtime/src/__tests__/generate-diffs-prompt.test.ts +0 -107
- package/packages/agent-runtime/src/__tests__/get-file-reading-updates.test.ts +0 -59
- package/packages/agent-runtime/src/__tests__/gravity-index-tool.test.ts +0 -501
- package/packages/agent-runtime/src/__tests__/loop-agent-steps.test.ts +0 -1512
- package/packages/agent-runtime/src/__tests__/main-prompt.test.ts +0 -452
- package/packages/agent-runtime/src/__tests__/n-parameter.test.ts +0 -984
- package/packages/agent-runtime/src/__tests__/process-file-block.test.ts +0 -196
- package/packages/agent-runtime/src/__tests__/process-str-replace.test.ts +0 -512
- package/packages/agent-runtime/src/__tests__/programmatic-tool-authorization.test.ts +0 -219
- package/packages/agent-runtime/src/__tests__/prompt-caching-subagents.test.ts +0 -749
- package/packages/agent-runtime/src/__tests__/prompts-schema-handling.test.ts +0 -454
- package/packages/agent-runtime/src/__tests__/propose-tools.test.ts +0 -824
- package/packages/agent-runtime/src/__tests__/read-docs-tool.test.ts +0 -394
- package/packages/agent-runtime/src/__tests__/run-agent-step-prefill.test.ts +0 -161
- package/packages/agent-runtime/src/__tests__/run-agent-step-tools.test.ts +0 -612
- package/packages/agent-runtime/src/__tests__/run-programmatic-step.test.ts +0 -1743
- package/packages/agent-runtime/src/__tests__/sandbox-generator.test.ts +0 -154
- package/packages/agent-runtime/src/__tests__/spawn-agents-image-content.test.ts +0 -354
- package/packages/agent-runtime/src/__tests__/spawn-agents-message-history.test.ts +0 -280
- package/packages/agent-runtime/src/__tests__/spawn-agents-permissions.test.ts +0 -664
- package/packages/agent-runtime/src/__tests__/stream-parser-abort.test.ts +0 -250
- package/packages/agent-runtime/src/__tests__/stream-parser-reasoning.test.ts +0 -194
- package/packages/agent-runtime/src/__tests__/subagent-streaming.test.ts +0 -230
- package/packages/agent-runtime/src/__tests__/test-utils.ts +0 -96
- package/packages/agent-runtime/src/__tests__/thinker-convergence-gate.test.ts +0 -242
- package/packages/agent-runtime/src/__tests__/to-token-count-input-schema.test.ts +0 -81
- package/packages/agent-runtime/src/__tests__/tool-executor-sandbox.test.ts +0 -167
- package/packages/agent-runtime/src/__tests__/tool-stream-parser.test.ts +0 -682
- package/packages/agent-runtime/src/__tests__/tool-validation-error.test.ts +0 -1380
- package/packages/agent-runtime/src/__tests__/web-search-tool.test.ts +0 -402
- package/packages/agent-runtime/src/__tests__/xml-tool-result-ordering.test.ts +0 -264
- package/packages/agent-runtime/src/constants.ts +0 -12
- package/packages/agent-runtime/src/context-compactor.ts +0 -425
- package/packages/agent-runtime/src/find-files/__tests__/request-files-prompt.test.ts +0 -190
- package/packages/agent-runtime/src/find-files/custom-file-picker-config.ts +0 -61
- package/packages/agent-runtime/src/find-files/request-files-prompt.ts +0 -462
- package/packages/agent-runtime/src/generate-diffs-prompt.ts +0 -38
- package/packages/agent-runtime/src/get-file-reading-updates.ts +0 -27
- package/packages/agent-runtime/src/llm-api/__tests__/gemini-with-fallbacks.test.ts +0 -267
- package/packages/agent-runtime/src/llm-api/__tests__/serper-api.test.ts +0 -297
- package/packages/agent-runtime/src/llm-api/claude.ts +0 -7
- package/packages/agent-runtime/src/llm-api/context7-api.ts +0 -290
- package/packages/agent-runtime/src/llm-api/gemini-with-fallbacks.ts +0 -104
- package/packages/agent-runtime/src/llm-api/savant-code-web-api.ts +0 -370
- package/packages/agent-runtime/src/llm-api/serper-api.ts +0 -193
- package/packages/agent-runtime/src/main-prompt.ts +0 -251
- package/packages/agent-runtime/src/mcp-constants.ts +0 -12
- package/packages/agent-runtime/src/mcp.ts +0 -83
- package/packages/agent-runtime/src/process-file-block.ts +0 -118
- package/packages/agent-runtime/src/process-str-replace.ts +0 -213
- package/packages/agent-runtime/src/prompt-agent-stream.ts +0 -119
- package/packages/agent-runtime/src/run-agent-step.ts +0 -1632
- package/packages/agent-runtime/src/run-programmatic-step.ts +0 -633
- package/packages/agent-runtime/src/system-prompt/prompts.ts +0 -215
- package/packages/agent-runtime/src/system-prompt/search-system-prompt.ts +0 -89
- package/packages/agent-runtime/src/system-prompt/truncate-file-tree.ts +0 -414
- package/packages/agent-runtime/src/templates/README.md +0 -160
- package/packages/agent-runtime/src/templates/__tests__/agent-registry.test.ts +0 -489
- package/packages/agent-runtime/src/templates/__tests__/strings.test.ts +0 -465
- package/packages/agent-runtime/src/templates/agent-registry.ts +0 -122
- package/packages/agent-runtime/src/templates/prompts.ts +0 -189
- package/packages/agent-runtime/src/templates/strings.ts +0 -292
- package/packages/agent-runtime/src/templates/types.ts +0 -61
- package/packages/agent-runtime/src/tool-stream-parser.ts +0 -260
- package/packages/agent-runtime/src/tools/filter-tool-set.ts +0 -18
- package/packages/agent-runtime/src/tools/handlers/__tests__/glob.test.ts +0 -331
- package/packages/agent-runtime/src/tools/handlers/__tests__/read-subtree.test.ts +0 -346
- package/packages/agent-runtime/src/tools/handlers/__tests__/run-readonly-command.test.ts +0 -284
- package/packages/agent-runtime/src/tools/handlers/handler-function-type.ts +0 -77
- package/packages/agent-runtime/src/tools/handlers/list.ts +0 -105
- package/packages/agent-runtime/src/tools/handlers/tool/__tests__/checkpoint-store.test.ts +0 -394
- package/packages/agent-runtime/src/tools/handlers/tool/__tests__/skill.test.ts +0 -98
- package/packages/agent-runtime/src/tools/handlers/tool/__tests__/write-file.test.ts +0 -24
- package/packages/agent-runtime/src/tools/handlers/tool/add-message.ts +0 -37
- package/packages/agent-runtime/src/tools/handlers/tool/add-subgoal.ts +0 -30
- package/packages/agent-runtime/src/tools/handlers/tool/apply-patch.ts +0 -120
- package/packages/agent-runtime/src/tools/handlers/tool/ask-user.ts +0 -25
- package/packages/agent-runtime/src/tools/handlers/tool/browser-logs.ts +0 -21
- package/packages/agent-runtime/src/tools/handlers/tool/checkpoint-store.ts +0 -378
- package/packages/agent-runtime/src/tools/handlers/tool/code-search.ts +0 -21
- package/packages/agent-runtime/src/tools/handlers/tool/composio.ts +0 -52
- package/packages/agent-runtime/src/tools/handlers/tool/create-plan.ts +0 -63
- package/packages/agent-runtime/src/tools/handlers/tool/end-turn.ts +0 -15
- package/packages/agent-runtime/src/tools/handlers/tool/find-files.ts +0 -161
- package/packages/agent-runtime/src/tools/handlers/tool/glob.ts +0 -22
- package/packages/agent-runtime/src/tools/handlers/tool/gravity-index.ts +0 -230
- package/packages/agent-runtime/src/tools/handlers/tool/list-directory.ts +0 -22
- package/packages/agent-runtime/src/tools/handlers/tool/lookup-agent-info.ts +0 -105
- package/packages/agent-runtime/src/tools/handlers/tool/propose-str-replace.ts +0 -111
- package/packages/agent-runtime/src/tools/handlers/tool/propose-write-file.ts +0 -89
- package/packages/agent-runtime/src/tools/handlers/tool/proposed-content-store.ts +0 -64
- package/packages/agent-runtime/src/tools/handlers/tool/read-docs.ts +0 -160
- package/packages/agent-runtime/src/tools/handlers/tool/read-files.ts +0 -43
- package/packages/agent-runtime/src/tools/handlers/tool/read-subtree.ts +0 -198
- package/packages/agent-runtime/src/tools/handlers/tool/read-url.ts +0 -21
- package/packages/agent-runtime/src/tools/handlers/tool/render-ui.ts +0 -15
- package/packages/agent-runtime/src/tools/handlers/tool/run-file-change-hooks.ts +0 -20
- package/packages/agent-runtime/src/tools/handlers/tool/run-readonly-command.ts +0 -215
- package/packages/agent-runtime/src/tools/handlers/tool/run-terminal-command.ts +0 -33
- package/packages/agent-runtime/src/tools/handlers/tool/sequential-thinking.ts +0 -53
- package/packages/agent-runtime/src/tools/handlers/tool/set-messages.ts +0 -19
- package/packages/agent-runtime/src/tools/handlers/tool/set-output.ts +0 -104
- package/packages/agent-runtime/src/tools/handlers/tool/set-scaffold-complete.ts +0 -32
- package/packages/agent-runtime/src/tools/handlers/tool/skill.ts +0 -146
- package/packages/agent-runtime/src/tools/handlers/tool/spawn-agent-inline.ts +0 -149
- package/packages/agent-runtime/src/tools/handlers/tool/spawn-agent-utils.ts +0 -436
- package/packages/agent-runtime/src/tools/handlers/tool/spawn-agents.ts +0 -286
- package/packages/agent-runtime/src/tools/handlers/tool/str-replace.ts +0 -135
- package/packages/agent-runtime/src/tools/handlers/tool/suggest-followups.ts +0 -20
- package/packages/agent-runtime/src/tools/handlers/tool/task-completed.ts +0 -15
- package/packages/agent-runtime/src/tools/handlers/tool/think-deeply.ts +0 -25
- package/packages/agent-runtime/src/tools/handlers/tool/transition-phase.ts +0 -160
- package/packages/agent-runtime/src/tools/handlers/tool/update-subgoal.ts +0 -48
- package/packages/agent-runtime/src/tools/handlers/tool/web-search.ts +0 -151
- package/packages/agent-runtime/src/tools/handlers/tool/write-file.ts +0 -281
- package/packages/agent-runtime/src/tools/handlers/tool/write-todos.ts +0 -19
- package/packages/agent-runtime/src/tools/prompts.ts +0 -233
- package/packages/agent-runtime/src/tools/sandbox/__tests__/engine.test.ts +0 -169
- package/packages/agent-runtime/src/tools/sandbox/__tests__/shell-denylist.test.ts +0 -104
- package/packages/agent-runtime/src/tools/sandbox/engine.ts +0 -109
- package/packages/agent-runtime/src/tools/sandbox/index.ts +0 -14
- package/packages/agent-runtime/src/tools/sandbox/shell-denylist.ts +0 -119
- package/packages/agent-runtime/src/tools/stream-parser.ts +0 -407
- package/packages/agent-runtime/src/tools/thinker-convergence-gate.ts +0 -162
- package/packages/agent-runtime/src/tools/thought-session-store.ts +0 -43
- package/packages/agent-runtime/src/tools/tool-executor.ts +0 -1098
- package/packages/agent-runtime/src/util/__tests__/messages.test.ts +0 -995
- package/packages/agent-runtime/src/util/__tests__/parse-tool-calls-from-text.test.ts +0 -363
- package/packages/agent-runtime/src/util/__tests__/simplify-tool-results.test.ts +0 -382
- package/packages/agent-runtime/src/util/__tests__/stream-xml-parser.test.ts +0 -285
- package/packages/agent-runtime/src/util/__tests__/think-tags.test.ts +0 -49
- package/packages/agent-runtime/src/util/__tests__/token-counter.test.ts +0 -121
- package/packages/agent-runtime/src/util/activity-tracking.ts +0 -252
- package/packages/agent-runtime/src/util/agent-output.ts +0 -102
- package/packages/agent-runtime/src/util/cache-debug.ts +0 -330
- package/packages/agent-runtime/src/util/format-value.ts +0 -16
- package/packages/agent-runtime/src/util/messages.ts +0 -461
- package/packages/agent-runtime/src/util/parse-tool-calls-from-text.ts +0 -122
- package/packages/agent-runtime/src/util/render-read-files-result.ts +0 -18
- package/packages/agent-runtime/src/util/simplify-tool-results.ts +0 -61
- package/packages/agent-runtime/src/util/stream-xml-parser.ts +0 -259
- package/packages/agent-runtime/src/util/think-tags.ts +0 -33
- package/packages/agent-runtime/src/util/token-counter.ts +0 -136
- package/packages/agent-runtime/tsconfig.json +0 -8
- package/packages/code-map/README.md +0 -43
- package/packages/code-map/__tests__/integration.test.ts +0 -278
- package/packages/code-map/__tests__/languages.test.ts +0 -240
- package/packages/code-map/__tests__/parse.test.ts +0 -640
- package/packages/code-map/__tests__/test-langs/test.c +0 -42
- package/packages/code-map/__tests__/test-langs/test.cpp +0 -34
- package/packages/code-map/__tests__/test-langs/test.cs +0 -34
- package/packages/code-map/__tests__/test-langs/test.go +0 -27
- package/packages/code-map/__tests__/test-langs/test.java +0 -31
- package/packages/code-map/__tests__/test-langs/test.js +0 -50
- package/packages/code-map/__tests__/test-langs/test.php +0 -34
- package/packages/code-map/__tests__/test-langs/test.py +0 -25
- package/packages/code-map/__tests__/test-langs/test.rb +0 -28
- package/packages/code-map/__tests__/test-langs/test.rs +0 -28
- package/packages/code-map/__tests__/test-langs/test.ts +0 -31
- package/packages/code-map/package.json +0 -33
- package/packages/code-map/src/index.ts +0 -4
- package/packages/code-map/src/init-node.ts +0 -185
- package/packages/code-map/src/languages.ts +0 -344
- package/packages/code-map/src/parse.ts +0 -410
- package/packages/code-map/src/tree-sitter-queries/readme.md +0 -24
- package/packages/code-map/src/tree-sitter-queries/tree-sitter-c-tags.scm +0 -16
- package/packages/code-map/src/tree-sitter-queries/tree-sitter-c_sharp-tags.scm +0 -23
- package/packages/code-map/src/tree-sitter-queries/tree-sitter-cpp-tags.scm +0 -29
- package/packages/code-map/src/tree-sitter-queries/tree-sitter-go-tags.scm +0 -26
- package/packages/code-map/src/tree-sitter-queries/tree-sitter-java-tags.scm +0 -19
- package/packages/code-map/src/tree-sitter-queries/tree-sitter-javascript-tags.scm +0 -16
- package/packages/code-map/src/tree-sitter-queries/tree-sitter-php-tags.scm +0 -23
- package/packages/code-map/src/tree-sitter-queries/tree-sitter-python-tags.scm +0 -12
- package/packages/code-map/src/tree-sitter-queries/tree-sitter-ruby-tags.scm +0 -58
- package/packages/code-map/src/tree-sitter-queries/tree-sitter-rust-tags.scm +0 -26
- package/packages/code-map/src/tree-sitter-queries/tree-sitter-typescript-tags.scm +0 -22
- package/packages/code-map/src/types.ts +0 -11
- package/packages/code-map/src/utils.ts +0 -12
- package/packages/code-map/tsconfig.json +0 -10
- package/packages/database/README.md +0 -43
- package/packages/database/package.json +0 -28
- package/packages/database/src/__tests__/service.test.ts +0 -167
- package/packages/database/src/index.ts +0 -146
- package/packages/database/src/service.ts +0 -342
- package/packages/database/tsconfig.json +0 -9
- package/packages/llm-providers/README.md +0 -42
- package/packages/llm-providers/package.json +0 -42
- package/packages/llm-providers/src/ollama/__tests__/detect.test.ts +0 -59
- package/packages/llm-providers/src/ollama/detect.ts +0 -113
- package/packages/llm-providers/src/ollama/index.ts +0 -2
- package/packages/llm-providers/src/openai-compatible/chat/convert-to-openai-compatible-chat-messages.test.ts +0 -855
- package/packages/llm-providers/src/openai-compatible/chat/convert-to-openai-compatible-chat-messages.ts +0 -177
- package/packages/llm-providers/src/openai-compatible/chat/get-response-metadata.ts +0 -15
- package/packages/llm-providers/src/openai-compatible/chat/map-openai-compatible-finish-reason.ts +0 -19
- package/packages/llm-providers/src/openai-compatible/chat/openai-compatible-api-types.ts +0 -60
- package/packages/llm-providers/src/openai-compatible/chat/openai-compatible-chat-language-model.test.ts +0 -549
- package/packages/llm-providers/src/openai-compatible/chat/openai-compatible-chat-language-model.ts +0 -474
- package/packages/llm-providers/src/openai-compatible/chat/openai-compatible-chat-options.ts +0 -25
- package/packages/llm-providers/src/openai-compatible/chat/openai-compatible-metadata-extractor.ts +0 -49
- package/packages/llm-providers/src/openai-compatible/chat/openai-compatible-prepare-tools.ts +0 -162
- package/packages/llm-providers/src/openai-compatible/chat/stream-transform.test.ts +0 -106
- package/packages/llm-providers/src/openai-compatible/chat/stream-transform.ts +0 -585
- package/packages/llm-providers/src/openai-compatible/completion/convert-to-openai-compatible-completion-prompt.ts +0 -98
- package/packages/llm-providers/src/openai-compatible/completion/openai-compatible-completion-language-model.test.ts +0 -173
- package/packages/llm-providers/src/openai-compatible/completion/openai-compatible-completion-language-model.ts +0 -414
- package/packages/llm-providers/src/openai-compatible/completion/openai-compatible-completion-options.ts +0 -33
- package/packages/llm-providers/src/openai-compatible/embedding/openai-compatible-embedding-model.ts +0 -143
- package/packages/llm-providers/src/openai-compatible/embedding/openai-compatible-embedding-options.ts +0 -21
- package/packages/llm-providers/src/openai-compatible/image/openai-compatible-image-model.ts +0 -129
- package/packages/llm-providers/src/openai-compatible/image/openai-compatible-image-settings.ts +0 -1
- package/packages/llm-providers/src/openai-compatible/index.ts +0 -27
- package/packages/llm-providers/src/openai-compatible/openai-compatible-error.ts +0 -34
- package/packages/llm-providers/src/openai-compatible/openai-compatible-provider.ts +0 -174
- package/packages/llm-providers/src/openai-compatible/version.ts +0 -5
- package/packages/llm-providers/tsconfig.json +0 -9
- package/protocol.config.yaml +0 -113
- package/savant-free/README.md +0 -73
- package/savant-free/SPEC.md +0 -385
- package/savant-free/cli/build.ts +0 -49
- package/savant-free/cli/release/README.md +0 -55
- package/savant-free/cli/release/index.js +0 -37
- package/savant-free/cli/release/package.json +0 -43
- package/savant-free/cli/release.ts +0 -128
- package/savant-free/cli/smoke-test.test.ts +0 -257
- package/savant-free/e2e/README.md +0 -173
- package/savant-free/e2e/agent/savant-free-tester.ts +0 -52
- package/savant-free/e2e/tests/ads-behavior.e2e.test.ts +0 -51
- package/savant-free/e2e/tests/agent-startup.e2e.test.ts +0 -61
- package/savant-free/e2e/tests/code-edit.e2e.test.ts +0 -78
- package/savant-free/e2e/tests/help-command.e2e.test.ts +0 -97
- package/savant-free/e2e/tests/knowledge-file.e2e.test.ts +0 -66
- package/savant-free/e2e/tests/slash-commands.e2e.test.ts +0 -119
- package/savant-free/e2e/tests/startup.e2e.test.ts +0 -56
- package/savant-free/e2e/tests/terminal-command.e2e.test.ts +0 -71
- package/savant-free/e2e/tests/version.e2e.test.ts +0 -50
- package/savant-free/e2e/utils/binary-helpers.ts +0 -24
- package/savant-free/e2e/utils/index.ts +0 -17
- package/savant-free/e2e/utils/savant-free-session.ts +0 -229
- package/savant-free/e2e/utils/tmux-custom-tools.ts +0 -156
- package/savant-free/e2e/utils/tmux-helpers.ts +0 -79
- package/savant-free/package.json +0 -20
- package/scripts/eslint-rules/__fixtures__/debug-ast.mjs +0 -20
- package/scripts/eslint-rules/__fixtures__/probe.mjs +0 -41
- package/scripts/eslint-rules/__fixtures__/probe2.mjs +0 -43
- package/scripts/eslint-rules/__fixtures__/rule-test.mjs +0 -44
- package/scripts/eslint-rules/__fixtures__/rule-test2.mjs +0 -27
- package/scripts/eslint-rules/__fixtures__/unknown-bad.ts +0 -21
- package/scripts/eslint-rules/__fixtures__/unknown-good.ts +0 -35
- package/scripts/eslint-rules/no-unknown-in-signatures.js +0 -141
- package/scripts/release.py +0 -360
- package/scripts/run-az-test.sh +0 -1150
- package/scripts/sync-agents.py +0 -337
- package/scripts/tmux/README.md +0 -359
- package/scripts/tmux/package.json +0 -9
- package/scripts/tmux/tmux-capture.sh +0 -231
- package/scripts/tmux/tmux-cli.sh +0 -160
- package/scripts/tmux/tmux-env.sh +0 -34
- package/scripts/tmux/tmux-send.sh +0 -339
- package/scripts/tmux/tmux-start.sh +0 -264
- package/scripts/tmux/tmux-stop.sh +0 -157
- package/scripts/tmux/tmux-viewer/README.md +0 -254
- package/scripts/tmux/tmux-viewer/components/session-viewer.tsx +0 -556
- package/scripts/tmux/tmux-viewer/components/theme.ts +0 -54
- package/scripts/tmux/tmux-viewer/gif-encoder-2.d.ts +0 -28
- package/scripts/tmux/tmux-viewer/gif-exporter.ts +0 -278
- package/scripts/tmux/tmux-viewer/index.tsx +0 -237
- package/scripts/tmux/tmux-viewer/package.json +0 -9
- package/scripts/tmux/tmux-viewer/session-loader.ts +0 -234
- package/scripts/tmux/tmux-viewer/tsconfig.json +0 -9
- package/scripts/tmux/tmux-viewer/types.ts +0 -76
- package/sdk/CHANGELOG.md +0 -126
- package/sdk/PUBLISHING.md +0 -55
- package/sdk/README.md +0 -334
- package/sdk/bunfig.toml +0 -6
- package/sdk/e2e/README.md +0 -158
- package/sdk/e2e/custom-agents/api-integration-agent.e2e.test.ts +0 -145
- package/sdk/e2e/custom-agents/apply-patch-tool.e2e.test.ts +0 -62
- package/sdk/e2e/custom-agents/database-query-agent.e2e.test.ts +0 -135
- package/sdk/e2e/custom-agents/weather-agent.e2e.test.ts +0 -120
- package/sdk/e2e/examples/code-explainer.example.ts +0 -62
- package/sdk/e2e/examples/code-reviewer.example.ts +0 -52
- package/sdk/e2e/examples/commit-message-generator.example.ts +0 -61
- package/sdk/e2e/examples/sdk-lint.example.ts +0 -65
- package/sdk/e2e/examples/sdk-refactor.example.ts +0 -63
- package/sdk/e2e/examples/sdk-test-gen.example.ts +0 -62
- package/sdk/e2e/features/knowledge-files.e2e.test.ts +0 -82
- package/sdk/e2e/features/max-agent-steps.e2e.test.ts +0 -65
- package/sdk/e2e/features/project-files.e2e.test.ts +0 -80
- package/sdk/e2e/integration/connection-check.integration.test.ts +0 -33
- package/sdk/e2e/integration/event-ordering.integration.test.ts +0 -186
- package/sdk/e2e/integration/event-types.integration.test.ts +0 -183
- package/sdk/e2e/integration/stream-chunks.integration.test.ts +0 -191
- package/sdk/e2e/streaming/concurrent-streams.e2e.test.ts +0 -164
- package/sdk/e2e/streaming/subagent-streaming.e2e.test.ts +0 -158
- package/sdk/e2e/utils/__tests__/event-collector.test.ts +0 -297
- package/sdk/e2e/utils/e2e-mocks.ts +0 -458
- package/sdk/e2e/utils/event-collector.ts +0 -145
- package/sdk/e2e/utils/get-api-key.ts +0 -76
- package/sdk/e2e/utils/index.ts +0 -3
- package/sdk/e2e/utils/test-fixtures.ts +0 -196
- package/sdk/e2e/workflows/error-recovery.e2e.test.ts +0 -112
- package/sdk/e2e/workflows/multi-turn-conversation.e2e.test.ts +0 -132
- package/sdk/examples/readme-example-1.ts +0 -34
- package/sdk/examples/readme-example-2.ts +0 -76
- package/sdk/package.json +0 -82
- package/sdk/scripts/build.ts +0 -349
- package/sdk/scripts/fetch-ripgrep.ts +0 -172
- package/sdk/scripts/publish.ts +0 -51
- package/sdk/scripts/release.js +0 -100
- package/sdk/scripts/verify.ts +0 -204
- package/sdk/sdk_exit +0 -1
- package/sdk/smoke-test-dist.ts +0 -248
- package/sdk/src/__tests__/apply-overrides-resume.test.ts +0 -83
- package/sdk/src/__tests__/apply-patch.test.ts +0 -438
- package/sdk/src/__tests__/build-file-tree.test.ts +0 -31
- package/sdk/src/__tests__/change-file.test.ts +0 -212
- package/sdk/src/__tests__/client.test.ts +0 -142
- package/sdk/src/__tests__/clone-session-state.test.ts +0 -158
- package/sdk/src/__tests__/code-search.test.ts +0 -896
- package/sdk/src/__tests__/composio.test.ts +0 -86
- package/sdk/src/__tests__/credentials.test.ts +0 -344
- package/sdk/src/__tests__/database.test.ts +0 -153
- package/sdk/src/__tests__/env.test.ts +0 -137
- package/sdk/src/__tests__/error-utils.test.ts +0 -253
- package/sdk/src/__tests__/fixtures/windows-stubborn-grandchild.ts +0 -26
- package/sdk/src/__tests__/initial-session-state.test.ts +0 -447
- package/sdk/src/__tests__/knowledge-file-selection.test.ts +0 -335
- package/sdk/src/__tests__/load-agents.test.ts +0 -935
- package/sdk/src/__tests__/load-mcp-config.test.ts +0 -285
- package/sdk/src/__tests__/load-skills.test.ts +0 -325
- package/sdk/src/__tests__/model-provider.test.ts +0 -44
- package/sdk/src/__tests__/path-utils.test.ts +0 -66
- package/sdk/src/__tests__/read-files.test.ts +0 -573
- package/sdk/src/__tests__/read-url.test.ts +0 -371
- package/sdk/src/__tests__/researcher-web.integration.test.ts +0 -130
- package/sdk/src/__tests__/run-cancellation.test.ts +0 -1321
- package/sdk/src/__tests__/run-error-preserves-history.test.ts +0 -335
- package/sdk/src/__tests__/run-event-dispatch.test.ts +0 -80
- package/sdk/src/__tests__/run-file-filter.test.ts +0 -530
- package/sdk/src/__tests__/run-handle-event.test.ts +0 -142
- package/sdk/src/__tests__/run-mcp-tool-filter.test.ts +0 -124
- package/sdk/src/__tests__/run-state-child-process.test.ts +0 -72
- package/sdk/src/__tests__/run-terminal-command.test.ts +0 -236
- package/sdk/src/__tests__/run.integration.test.ts +0 -170
- package/sdk/src/__tests__/user-knowledge-files.test.ts +0 -361
- package/sdk/src/__tests__/validate-agents.test.ts +0 -943
- package/sdk/src/agents/load-agents.ts +0 -339
- package/sdk/src/agents/load-mcp-config.ts +0 -275
- package/sdk/src/client.ts +0 -87
- package/sdk/src/composio.ts +0 -78
- package/sdk/src/constants.ts +0 -29
- package/sdk/src/credentials.ts +0 -303
- package/sdk/src/custom-tool.ts +0 -66
- package/sdk/src/env.ts +0 -116
- package/sdk/src/error-utils.ts +0 -127
- package/sdk/src/impl/__tests__/llm-chatgpt-oauth-policy.test.ts +0 -67
- package/sdk/src/impl/__tests__/llm-native-tool-call.test.ts +0 -38
- package/sdk/src/impl/__tests__/llm-stream-yielded-content.test.ts +0 -118
- package/sdk/src/impl/__tests__/model-provider-free-mode.test.ts +0 -166
- package/sdk/src/impl/__tests__/prompt-result.test.ts +0 -210
- package/sdk/src/impl/__tests__/provider-options-metadata.test.ts +0 -67
- package/sdk/src/impl/agent-runtime.ts +0 -159
- package/sdk/src/impl/chatgpt-backend-fetch.ts +0 -588
- package/sdk/src/impl/database.ts +0 -516
- package/sdk/src/impl/llm.ts +0 -852
- package/sdk/src/impl/model-provider.ts +0 -638
- package/sdk/src/impl/openrouter-key-resolver.ts +0 -78
- package/sdk/src/index.ts +0 -133
- package/sdk/src/native/ripgrep.ts +0 -141
- package/sdk/src/retry-config.ts +0 -51
- package/sdk/src/run-state.ts +0 -897
- package/sdk/src/run.ts +0 -1222
- package/sdk/src/skills/load-skills.ts +0 -253
- package/sdk/src/testing/env.ts +0 -19
- package/sdk/src/tools/apply-patch.ts +0 -690
- package/sdk/src/tools/change-file.ts +0 -155
- package/sdk/src/tools/code-search.ts +0 -547
- package/sdk/src/tools/glob.ts +0 -58
- package/sdk/src/tools/index.ts +0 -19
- package/sdk/src/tools/list-directory.ts +0 -52
- package/sdk/src/tools/path-utils.ts +0 -101
- package/sdk/src/tools/read-files.ts +0 -110
- package/sdk/src/tools/read-url.ts +0 -469
- package/sdk/src/tools/run-file-change-hooks.ts +0 -22
- package/sdk/src/tools/run-terminal-command.ts +0 -483
- package/sdk/src/tools/ssrf.ts +0 -120
- package/sdk/src/types/env.ts +0 -40
- package/sdk/src/utils/logger.ts +0 -15
- package/sdk/src/validate-agents.ts +0 -157
- package/sdk/test/cjs-compatibility/package-lock.json +0 -423
- package/sdk/test/cjs-compatibility/package.json +0 -21
- package/sdk/test/cjs-compatibility/test-imports.js +0 -77
- package/sdk/test/cjs-compatibility/test-types.ts +0 -54
- package/sdk/test/cjs-compatibility/tsconfig.json +0 -17
- package/sdk/test/esm-compatibility/package-lock.json +0 -423
- package/sdk/test/esm-compatibility/package.json +0 -21
- package/sdk/test/esm-compatibility/test-imports.js +0 -83
- package/sdk/test/esm-compatibility/test-types.ts +0 -59
- package/sdk/test/esm-compatibility/tsconfig.json +0 -17
- package/sdk/test/ripgrep-bundling/package-lock.json +0 -423
- package/sdk/test/ripgrep-bundling/package.json +0 -21
- package/sdk/test/ripgrep-bundling/test-ripgrep-types.ts +0 -132
- package/sdk/test/ripgrep-bundling/test-ripgrep.js +0 -257
- package/sdk/test/ripgrep-bundling/tsconfig.json +0 -15
- package/sdk/test/setup-env.ts +0 -54
- package/sdk/test/test-sdk.ts +0 -25
- package/sdk/test/tree-sitter-queries/package-lock.json +0 -47
- package/sdk/test/tree-sitter-queries/package.json +0 -12
- package/sdk/test/tree-sitter-queries/test-query-files.js +0 -256
- package/sdk/tsconfig.build.json +0 -32
- package/sdk/tsconfig.json +0 -27
- package/sdk/vendor/ripgrep/arm64-darwin/rg +0 -0
- package/sdk/vendor/ripgrep/arm64-linux/rg +0 -0
- package/sdk/vendor/ripgrep/x64-darwin/rg +0 -0
- package/sdk/vendor/ripgrep/x64-linux/rg +0 -0
- package/sdk/vendor/ripgrep/x64-win32/rg.exe +0 -0
- package/templates/FID-TEMPLATE.md +0 -125
- package/templates/README-TEMPLATE.md +0 -87
- package/templates/SESSION-SUMMARY.md +0 -135
- package/tsconfig.base.json +0 -18
- package/tsconfig.json +0 -27
- /package/{cli/release-core/http.js → http.js} +0 -0
- /package/{cli/release-core/launcher.js → launcher.js} +0 -0
|
@@ -1,196 +0,0 @@
|
|
|
1
|
-
# Harness Engineering for Coding Agents — Research & Savant-Code Opportunity Map
|
|
2
|
-
|
|
3
|
-
**Author:** Savant
|
|
4
|
-
**Date:** 2026-08-03
|
|
5
|
-
**Status:** research — no FIDs opened yet
|
|
6
|
-
**Primary source:** HumanLayer — "Skill Issue: Harness Engineering for Coding Agents"
|
|
7
|
-
[Read the post](https://www.humanlayer.dev/blog/skill-issue-harness-engineering-for-coding-agents)
|
|
8
|
-
**Scope:** blog review + expanded research into the discipline, mapped to the
|
|
9
|
-
Savant-Code runtime (verified against source, not assumed).
|
|
10
|
-
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
## 1. The Thesis
|
|
14
|
-
|
|
15
|
-
The industry consensus across HumanLayer, OpenAI, Anthropic, Augment Code, OpenDev, and the
|
|
16
|
-
terminal-agent literature is captured in one equation:
|
|
17
|
-
|
|
18
|
-
```text
|
|
19
|
-
coding agent = AI model(s) + harness
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
The harness is everything outside the model: agentfiles, tools/MCP servers, skills, sub-agents,
|
|
23
|
-
hooks, permission gates, context compaction, and verification loops. Harness engineering is the
|
|
24
|
-
practice of using these configuration points to improve output quality and reliability.
|
|
25
|
-
|
|
26
|
-
> A decent model with a great harness dramatically outperforms a frontier model with a bad
|
|
27
|
-
> harness. Most agent failures are configuration problems, not model problems.
|
|
28
|
-
|
|
29
|
-
Two strong corollaries from the sources:
|
|
30
|
-
|
|
31
|
-
1. **Post-training coupling cuts both ways.** Models are post-trained on their harness (e.g.
|
|
32
|
-
Codex + `apply_patch`; OpenCode had to add an `apply_patch` tool to mimic it). But models can
|
|
33
|
-
also be *over*-fitted: Terminal Bench 2.0 shows Opus 4.6 at #33 in Claude Code but ~#5 in an
|
|
34
|
-
unfamiliar harness. Harness choice matters, and mismatches are measurable.
|
|
35
|
-
2. **Harness engineering is a subset of context engineering.** The goal of nearly every lever is
|
|
36
|
-
managing the context window: keeping it small, relevant, and un-polluted (the "smart zone"),
|
|
37
|
-
and adding deterministic verification the model cannot talk its way out of.
|
|
38
|
-
|
|
39
|
-
---
|
|
40
|
-
|
|
41
|
-
## 2. Core Mechanisms (the expanded field guide)
|
|
42
|
-
|
|
43
|
-
### 2.1 Context rot / the "dumb zone"
|
|
44
|
-
|
|
45
|
-
Chroma's context-rot research and LongCLI-Bench both show model performance degrades as context
|
|
46
|
-
length grows, even on simple tasks, and degradation is steeper when the question has low semantic
|
|
47
|
-
similarity to the filler in context. Every irrelevant tool log, grep dump, or file read is a
|
|
48
|
-
distractor. Long-context models don't fix this — a bigger window just makes a bigger haystack.
|
|
49
|
-
|
|
50
|
-
**Tips:**
|
|
51
|
-
|
|
52
|
-
- Compact: summarize older history in place when a token threshold is crossed.
|
|
53
|
-
- Reset: tear down the session and pass state forward via structured artifacts (git log, JSON
|
|
54
|
-
checklists, progress files) when compaction is not enough.
|
|
55
|
-
- Isolate: push context-heavy work (searches, large reads, log dumps) into sub-agents whose
|
|
56
|
-
intermediate messages never enter the parent window.
|
|
57
|
-
- Progressive disclosure: don't inject everything up front; load instructions/tools on demand.
|
|
58
|
-
|
|
59
|
-
### 2.2 Back-pressure (the highest-leverage lever)
|
|
60
|
-
|
|
61
|
-
Task success correlates strongly with the agent's ability to verify its own work. Verification
|
|
62
|
-
mechanisms — typechecks, unit tests, coverage, UI/browser checks — act as back-pressure that
|
|
63
|
-
forces the agent to keep working until the environment agrees it is done.
|
|
64
|
-
|
|
65
|
-
**Tips:**
|
|
66
|
-
|
|
67
|
-
- Success must be **silent**; only failures produce output. (HumanLayer's 4,000-line passing-test
|
|
68
|
-
flood lesson: verbosity corrupts the parent context and induces hallucination.)
|
|
69
|
-
- Typecheck/build on every agent stop; if errors exist, re-engage the agent to fix them before it
|
|
70
|
-
finishes.
|
|
71
|
-
- Prefer a subset of tests over the full suite for the fast loop.
|
|
72
|
-
- Never rely on agent self-grading — use an independent evaluator (the Generator-Evaluator split).
|
|
73
|
-
|
|
74
|
-
### 2.3 Progressive disclosure
|
|
75
|
-
|
|
76
|
-
Stuffing every instruction and tool into the system prompt blows the instruction budget before the
|
|
77
|
-
agent starts. The ETH Zürich agentfile study (138 agentfiles): LLM-generated ones *hurt* performance
|
|
78
|
-
while costing 20%+ more tokens; human-written ones helped only ~4%; agents spent 14-22% more
|
|
79
|
-
reasoning tokens processing context-file instructions. Codebase overviews and directory listings
|
|
80
|
-
didn't help — agents discover structure on their own.
|
|
81
|
-
|
|
82
|
-
**Tips:**
|
|
83
|
-
|
|
84
|
-
- Agentfiles: concise (< 60 lines), universally applicable, no conditional rule soup. Never
|
|
85
|
-
auto-generate them.
|
|
86
|
-
- Skills: one SKILL.md per capability, loaded as a user message only when activated; the skill may
|
|
87
|
-
point at further bundled files (progressive disclosure *within* a skill).
|
|
88
|
-
- Tools: too many tool schemas push you into the dumb zone. Disable servers you aren't actively
|
|
89
|
-
using. Prefer CLIs well-represented in training data (GitHub, Docker, databases) over MCP
|
|
90
|
-
servers — the model already knows them, and output is more composable (grep/jq) and
|
|
91
|
-
context-efficient.
|
|
92
|
-
|
|
93
|
-
### 2.4 Error-as-prompt and failure taxonomy
|
|
94
|
-
|
|
95
|
-
- **Transient failures** (429, 502/504, drops) → exponential backoff with jitter; retry at the
|
|
96
|
-
transport layer.
|
|
97
|
-
- **Semantic failures** (linter errors, missing files, failed tests) → never blind-retry; feed the
|
|
98
|
-
exact failure back into the reasoning loop as an actionable prompt (e.g. "field 'path' is
|
|
99
|
-
required. Fix and retry.").
|
|
100
|
-
- **Double execution** → guard with idempotency keys / an execution ledger (a registry of
|
|
101
|
-
in-flight and completed tool calls; short-circuit duplicates and return cached results).
|
|
102
|
-
- **Doom loops** → detect repeated identical failed tool calls and surface a warning or plan
|
|
103
|
-
change instead of looping silently.
|
|
104
|
-
|
|
105
|
-
### 2.5 The ratchet rule
|
|
106
|
-
|
|
107
|
-
Every agent mistake becomes a permanent constraint: encode the negative rule in AGENTS.md, and/or
|
|
108
|
-
write a deterministic lint rule / pre-commit hook that blocks that exact mistake forever.
|
|
109
|
-
|
|
110
|
-
### 2.6 Permission tiers (HITL)
|
|
111
|
-
|
|
112
|
-
Tier actions: read-only (autonomous), destructive/irreversible (gated). Policy modes:
|
|
113
|
-
`always_allow` / `always_deny` / `ask_each_time` with a structured approval prompt and one-shot
|
|
114
|
-
grant. Defense in depth, not prompt-only "please be careful".
|
|
115
|
-
|
|
116
|
-
### 2.7 Hooks
|
|
117
|
-
|
|
118
|
-
User-defined scripts run on lifecycle events (like git hooks): run a tool call and inject context,
|
|
119
|
-
auto-approve/deny based on input values (e.g. deny `bash` calls running migrations), verify on
|
|
120
|
-
stop, notify on finish. Exit code 2 = "re-engage the agent"; success = silent.
|
|
121
|
-
|
|
122
|
-
---
|
|
123
|
-
|
|
124
|
-
## 3. Savant-Code Scorecard (verified against the runtime)
|
|
125
|
-
|
|
126
|
-
| Lever | Status | Evidence |
|
|
127
|
-
|---|---|---|
|
|
128
|
-
| Skills — progressive disclosure | Already have | `skill` tool with `AVAILABLE_SKILLS_PLACEHOLDER` swapped for descriptions only; content loaded on activation (`packages/agent-runtime/src/tools/prompts.ts`, `tools/handlers/tool/skill.ts`) |
|
|
129
|
-
| Sub-agents — context firewall | Already have | spawn-agents / spawn-agent-utils with tool-set filtering (FID-007) |
|
|
130
|
-
| Context compaction | Already have | `context-compactor.ts` + reactive Layer-4 compact (`run-agent-step.ts`), file-tree token budgeting, `format-value.ts` truncation |
|
|
131
|
-
| Permission modes | Partial | `/permissions safe\|prompt\|unsafe` + danger-regex in `run-readonly-command.ts` — but `prompt` mode currently **downgrades to deny** (interactive approvals not implemented) |
|
|
132
|
-
| Verification gates | Already have | pre-push eslint + lint:md hook, `protocol.config.yaml` build commands, Forge/Verifier split |
|
|
133
|
-
| Stop-hook verification | Gap | no automatic typecheck/build-on-stop that re-engages the agent |
|
|
134
|
-
| Checkpoint / undo | Already have | checkpoint-store + `/rewind` (FID-2026-0803-004) |
|
|
135
|
-
| Double-execution guard | Already have | `hasYieldedContent` re-stream guard (FID-2026-0803-003, SDK-2) |
|
|
136
|
-
| Ratchet rule | Already have | FID lifecycle → LEARNINGS.md → custom eslint rules |
|
|
137
|
-
| Sub-agent cost tiering | Gap | child agents inherit model selection; no explicit cheaper-tier default |
|
|
138
|
-
| Sub-agent output contract | Partial | agents return summaries with citations, but no enforced condensed-result contract |
|
|
139
|
-
| Doom-loop detection | Gap | live runtime guard not present (evals trace-analyzer exists) |
|
|
140
|
-
| Tool budget audit | Gap | no metric for tokens spent on injected tool definitions |
|
|
141
|
-
| AGENTS.md hygiene | Partial | comprehensive but table-heavy; ETH study suggests slimming |
|
|
142
|
-
| Eval trace promotion | Gap | no "promote a real trace into an eval case" command |
|
|
143
|
-
| MCP + skill security guidance | Partial | install warnings exist; no repo doc |
|
|
144
|
-
|
|
145
|
-
---
|
|
146
|
-
|
|
147
|
-
## 4. Ranked FID Candidates
|
|
148
|
-
|
|
149
|
-
### HIGH value / medium effort
|
|
150
|
-
|
|
151
|
-
1. **Interactive approval prompts** — complete `/permissions prompt`: structured yes/no approval
|
|
152
|
-
UI for risky tool calls with one-shot grant, reusing the picker pattern (RewindPicker /
|
|
153
|
-
ModelPicker). Closes the one real gap in our defense-in-depth.
|
|
154
|
-
2. **Stop-hook verification** — on run settle, run `protocol.config.yaml` build commands;
|
|
155
|
-
silent on success, surface only errors, re-engage the agent on failure. Reuses the existing
|
|
156
|
-
file-write hook seam (`cli/src/utils/create-run-config.ts`).
|
|
157
|
-
|
|
158
|
-
### MEDIUM value / low-medium effort
|
|
159
|
-
|
|
160
|
-
3. **Sub-agent cost tiering** — default child agents (Scout/Researcher/Detective) to a cheaper
|
|
161
|
-
model tier; reserve the expensive model for orchestrator/Thinker.
|
|
162
|
-
4. **Sub-agent condensed-result contract** — enforce "answer + filepath:line citations only, no
|
|
163
|
-
raw tool spam" for sub-agent outputs (HumanLayer cite-sources pattern).
|
|
164
|
-
5. **Doom-loop detection** — runtime guard: same tool + same args failing N consecutive times →
|
|
165
|
-
warn / suggest plan change.
|
|
166
|
-
|
|
167
|
-
### LOW effort
|
|
168
|
-
|
|
169
|
-
6. **Instruction-budget audit** — measure tokens spent on injected tool definitions
|
|
170
|
-
(`common/src/tools/compile-tool-definitions.ts`); trim rarely-used tools.
|
|
171
|
-
7. **AGENTS.md slimming** — trim toward ~60 lines + progressive disclosure pointers (dogfood the
|
|
172
|
-
ETH findings on our own repo).
|
|
173
|
-
8. **Eval trace promotion** — CLI command to promote a real failing session trace into an eval
|
|
174
|
-
case (trace-utils already exist in `evals/`).
|
|
175
|
-
9. **MCP hygiene + skill-registry security note** — docs-level: prefer CLIs over MCP for
|
|
176
|
-
well-trained tools; treat skill installs like `npm i` (malware in registries is documented).
|
|
177
|
-
|
|
178
|
-
---
|
|
179
|
-
|
|
180
|
-
## 5. What NOT to change (validated as already-correct)
|
|
181
|
-
|
|
182
|
-
- Progressive skills, sub-agent context firewall, compaction + truncation, checkpoint/rewind,
|
|
183
|
-
Forge/Verifier split, ratchet-rule loop, phase-gated tool access (schema-level gating).
|
|
184
|
-
|
|
185
|
-
---
|
|
186
|
-
|
|
187
|
-
## 6. Sources
|
|
188
|
-
|
|
189
|
-
- HumanLayer — "Skill Issue: Harness Engineering for Coding Agents" (Mar 2026)
|
|
190
|
-
- Anthropic Engineering — harness design for long-running agents
|
|
191
|
-
- OpenAI Engineering — "Harness engineering: leveraging Codex in an agent-first world"
|
|
192
|
-
- Augment Code — "Harness Engineering for AI Coding Agents: Constraints That Ship Reliable Code"
|
|
193
|
-
- ETH Zürich — agentfile study (138 agentfiles)
|
|
194
|
-
- Chroma — context rot research; LongCLI-Bench
|
|
195
|
-
- OpenDev — "Building AI Coding Agents for the Terminal" (arXiv)
|
|
196
|
-
- Agent libOS — capability-controlled runtime for long-running agents (arXiv)
|
|
@@ -1,178 +0,0 @@
|
|
|
1
|
-
# **Strategic Review and Optimization of the Savant Code Product Launch Plan**
|
|
2
|
-
|
|
3
|
-
## **Executive Overview and Market Context**
|
|
4
|
-
|
|
5
|
-
The deployment, commercialization, and subsequent market penetration of software tools—particularly those operating within the artificial intelligence (AI), developer operations (DevOps), and high-performance computing sectors—require a launch strategy that is meticulously aligned with the technical sensibilities of the target market. The product in question, designated "Savant Code," enters an extremely congested and complex digital landscape. A comprehensive review of the strategic parameters surrounding this launch reveals several critical vectors that must be radically optimized to ensure successful market entry, user adoption, and long-term commercial viability. This exhaustive analysis deconstructs the go-to-market dynamics, severe brand positioning and search engine optimization (SEO) challenges, architectural framing, community engagement mechanics, and open-source monetization models necessary to elevate the launch plan from a basic release schedule to a dominant market entry strategy.
|
|
6
|
-
The developer tool and AI agent market is currently characterized by a remarkably low tolerance for marketing hyperbole and an uncompromising demand for transparency, performance, and immediate, verifiable utility. Furthermore, the modern landscape of AI-assisted coding and high-performance framework deployment dictates that any product bearing the nomenclature "Savant" must navigate a highly precarious ecosystem of existing intellectual property, overlapping nomenclature, and extremely discerning end-users. The optimization of this launch plan requires a sophisticated synthesis of community-driven adoption mechanisms, primarily leveraging platforms such as Hacker News, alongside a rigorous technical positioning strategy that emphasizes token efficiency, agentic model routing, frictionless onboarding, and a highly defensible commercialization architecture. Without these optimizations, a product launch in this category is virtually guaranteed to be overshadowed by established incumbents or dismissed by the developer community as merely another superficial wrapper over existing Large Language Model (LLM) application programming interfaces (APIs).
|
|
7
|
-
|
|
8
|
-
> **Product sequencing boundary:** The immediate plan is to release and grow Savant-Code as a local/BYOK product. After user adoption, our team may evaluate, design, build, and operate its own backend for a future free product. Managed hosting, hosted inference, Savant-Free hosting, partnerships, and external hosted-service dependencies are not part of the initial release plan.
|
|
9
|
-
|
|
10
|
-
## **Comprehensive Brand Disambiguation and SEO Vulnerability Analysis**
|
|
11
|
-
|
|
12
|
-
The most immediate, foundational, and critical issue identified within the launch parameters involves profound brand collision. The nomenclature "Savant," "Savant Code," and closely related permutations currently exist in multiple, highly disparate domains across the digital landscape. A successful product launch strategy must address this search engine optimization fragmentation to prevent severe brand dilution and ensure that the target user base can effortlessly locate the correct product documentation, source code repositories, and community forums. Failure to address this will result in massive top-of-funnel leakage, where interested developers are routed to entirely unrelated consumer products, academic papers, or competitive frameworks.
|
|
13
|
-
The digital footprint for the term "Savant" is unusually broad and deeply indexed by search engines. An exhaustive analysis of the current SEO environment reveals nine distinct entities operating under this or similar names, creating a highly hostile environment for a new product launch. The most problematic collision for consumer-facing SEO is the "Savant Activation Code," a heavily marketed, heavily affiliated consumer audio manifestation program.1 This product claims to utilize Tibetan monk frequencies, purportedly dating back 40,000 years, to unlock a "secret chest box" of financial abundance and restructure the user's mind.1 This self-help audio program has a massive digital marketing footprint, with affiliate reviews polluting the search engine results pages (SERPs) for the exact term "Savant Code".2 Any developer searching for the product without specific technical modifiers will be inundated with manifestation program reviews rather than GitHub repositories.
|
|
14
|
-
In the enterprise and high-performance computing sector, there is an open-source, high-performance computer vision framework named Savant, built on the Nvidia DeepStream stack.3 This framework is designed for real-time video analytics on edge and data center hardware, utilizing TensorRT and Docker containers to build dynamic, fault-tolerant inference pipelines.3 Because this is a legitimate, highly starred GitHub project specifically targeting developers and engineers, it represents the most direct SEO threat to a new developer tool named "Savant Code".3
|
|
15
|
-
Further complicating the enterprise software space is Savant Labs, an AI automation platform specifically designed for the finance sector.5 This platform allows users to describe financial tasks in plain language using Claude, Copilot, or Savant Chat, generating automated, no-code/low-code workflows integrating with Salesforce, AWS, and Google Analytics.5 In the wealth management sector, the Savant Wealth Management firm operates under strict regulatory frameworks, issuing ADV documents and maintaining a "Savant Code of Ethics" for its employees and Zero Alpha Group (ZAG) members.7
|
|
16
|
-
In the scientific and aerospace domains, the acronym SAVANT (Solar Array Verification and ANalysis Tool) refers to a computer code co-produced by the Naval Research Laboratory (NRL), NASA, and the Ohio Aerospace Institute.8 This legacy Fortran/C code calculates displacement damage dose for spacecraft operating in severe radiation environments, such as the Jovian system, utilizing iterative integration over defined time intervals.8 Additionally, in the field of computational electromagnetics, the Savant code refers to a shooting-and-bouncing-ray (SBR) asymptotic method used to predict the bistatic radar cross-section (RCS) of electrically large vehicles, often compared against Method of Moments (MoM) solvers like WIPL-D.10 Furthermore, in legacy hardware description language (HDL) environments, the SAVANT technology refers to a VHDL Code Generator utilized in conjunction with TyVIS simulation environments.11
|
|
17
|
-
Finally, the brand collision extends into entirely unrelated consumer markets. The term "Savant Code" is actively used in the context of the KATA\*K9 app, a platform offering survivalist dog training, self-defense tactics, and off-grid preparedness guides.12 In the automated smart home sector, Savant operates a ubiquitous app used for routing cable and satellite TV services, managing unique user identifiers (UIDs), and controlling audiovisual home environments.13 Even in the realm of performance art, "Savant Code" is referenced in academic literature regarding the subversive, self-sabotaging performances of the 1970s group the Kipper Kids.14
|
|
18
|
-
To optimize the launch plan against this unprecedented level of brand collision, the product's positioning must pivot toward hyper-specific technical modifiers. The following table illustrates the required SEO mitigation strategy.
|
|
19
|
-
|
|
20
|
-
| Existing Entity | Domain / Industry | SEO Impact Level | Mitigation Strategy for Launch |
|
|
21
|
-
| :---- | :---- | :---- | :---- |
|
|
22
|
-
| **Savant Activation Code** | Consumer / Self-Help Audio | Critical | Avoid generic terms like "activation" or "manifest." Enforce strict developer-centric long-tail keywords (e.g., "Savant Code CLI," "Savant Agent"). |
|
|
23
|
-
| **Savant CV Framework** | Enterprise / Computer Vision | High | Differentiate repository naming conventions. Ensure GitHub meta-tags heavily index "LLM," "Agent," and "Coding" to separate from Nvidia/DeepStream tags. |
|
|
24
|
-
| **Savant Labs / Wealth** | Enterprise Finance AI | Medium | Ensure brand visual identity and domain authority clearly signal developer/engineering tooling rather than financial SaaS or wealth management services. |
|
|
25
|
-
| **NASA / EM Solvers** | Aerospace / Physics | Low | Largely academic indexing. Will not compete for developer tool mindshare but may appear in Google Scholar results. Avoid legacy terms like "Fortran." |
|
|
26
|
-
| **KATA\*K9 / Smart Home** | Consumer Niche | Low | Exclude all lifestyle, home automation, and generic app terminology from the primary domain and documentation. |
|
|
27
|
-
|
|
28
|
-
The brand should be referred to uniformly as "Savant Code Agent," "Savant Code Framework," or "Savant Code CLI" in all primary documentation, press releases, and repository descriptions. This structural adjustment forces search engines to index the product alongside coding terminology rather than self-help audio tracks or aerospace engineering literature. The launch team must ensure that the exact string "Savant Code" is rarely used in isolation on the product's marketing pages; it must always be anchored by technical descriptors.
|
|
29
|
-
|
|
30
|
-
## **Architectural Positioning: Navigating the Agentic Paradigm**
|
|
31
|
-
|
|
32
|
-
Assuming the product operates within the rapidly expanding and highly competitive domain of AI coding agents or high-performance inference pipelines, the launch plan must explicitly address the architectural dichotomies currently defining the market. The developer community evaluates new tools based on their integration into existing workflows, not just their standalone capabilities. The analysis of prevailing market leaders—specifically comparing terminal-native tools like Aider against IDE-integrated tools like Cline (formerly Claude Dev)—provides a definitive blueprint for how "Savant Code" must be positioned technically to drive immediate user adoption.15
|
|
33
|
-
The market is currently bifurcated between terminal-first implementations and Integrated Development Environment (IDE) plugins. The launch documentation must clearly articulate where "Savant Code" resides on this spectrum, as the target demographics for each approach differ significantly in their operational preferences and risk tolerance.15
|
|
34
|
-
The terminal-native paradigm, heavily popularized by open-source CLI tools, operates independently of the IDE, modifying files directly on the local disk and committing changes via a git-native architecture.15 The strategic advantage of this approach is absolute editor agnosticism; it functions identically whether a developer is utilizing standard VS Code, JetBrains, Emacs, Vim over SSH, or a highly customized tmux split on a remote, headless build server.17 Furthermore, terminal-based tools excel in automation and Continuous Integration/Continuous Deployment (CI/CD) pipelines, where visual interfaces are entirely obsolete.15 In this paradigm, the AI acts as a true pair programmer, accepting a prompt, editing the file, and automatically generating an atomic git commit with a context-aware message, thereby ensuring the git log reads like a human-written changelog rather than a sequence of chaotic "work-in-progress" snapshots.17
|
|
35
|
-
Conversely, the IDE-integrated paradigm operates as a visual sidebar panel natively within environments like VS Code, JetBrains, Cursor, or Windsurf.15 This model prioritizes visual control, allowing developers to utilize a distinct "Plan/Act" mode.16 In this workflow, the agent first proposes a comprehensive plan across the project's architecture, and the user must explicitly approve or modify each step before execution.15 Visual diffs appear inline with syntax highlighting, and terminal commands show their output directly in the extension panel.15 This visual, step-by-step approval mechanism is highly attractive to developers who are naturally risk-averse, those who are newer to AI-assisted coding, or those working in sensitive production codebases where unverified autonomous changes could trigger catastrophic failures.15
|
|
36
|
-
To optimize the launch plan, the positioning of "Savant Code" must explicitly state its operational paradigm. If it is a terminal CLI, the marketing collateral must emphasize speed, CI/CD automation, git-native discipline, and editor independence. If it is a GUI-based tool, the focus must immediately shift to visual diffs, step-by-step human-in-the-loop approval, and the provision of session-level rollback checkpoints to alleviate the fear of an AI rewriting half the project incorrectly.15
|
|
37
|
-
|
|
38
|
-
### **Token Economics, Diff-Based Editing, and the BYOK Mandate**
|
|
39
|
-
|
|
40
|
-
A highly critical vector of technical positioning that is frequently overlooked in initial product launch plans involves the precise management of Large Language Model context windows and token consumption. Professional developers are acutely aware of the API costs associated with querying frontier models (e.g., Anthropic's Claude 3.5 Sonnet, OpenAI's GPT-4o, or Google's Gemini 1.5 Pro).16 A flawed launch plan often focuses solely on the "magic" of the AI agent, aggressively ignoring the unit economics of operating it at scale across a massive enterprise codebase.
|
|
41
|
-
The launch strategy must highlight the product's token efficiency architecture. For example, systems that utilize sophisticated diff-based editing—where the LLM generates a localized diff and applies it, sending only the changed portions of a file rather than rewriting entire 1,000-line scripts—drastically reduce API costs per task.15 The ability to apply structural diffs rather than full-file replacements is a massive competitive advantage.15 If "Savant Code" utilizes such a highly token-efficient mechanism, it must be featured prominently in the technical whitepapers and launch announcements as a primary differentiator against more wasteful context-window approaches.15
|
|
42
|
-
Furthermore, the integration of the Model Context Protocol (MCP) and Bring Your Own Key (BYOK) architectures is no longer a luxury; it is a baseline expectation for any credible open-source AI developer tool.16 The launch collateral must aggressively assure the community that they are not subject to restrictive vendor lock-in. The product must demonstrate that developers can freely toggle between proprietary frontier models, specialized coding models, or completely local, air-gapped models via Ollama or LM Studio (such as Llama 3 or Qwen3).16 This flexibility allows users to route trivial, low-complexity tasks to cheaper, faster models (like Haiku or local instances) while reserving expensive, high-reasoning frontier calls for complex, multi-file refactoring.17
|
|
43
|
-
|
|
44
|
-
| Architectural Feature | IDE-Integrated Paradigm (e.g., Cline) | Terminal-Native Paradigm (e.g., Aider) | Recommended Optimization for Savant Code |
|
|
45
|
-
| :---- | :---- | :---- | :---- |
|
|
46
|
-
| **Primary Interface** | Visual Sidebar Panel (VS Code, JetBrains) | Command Line Interface (CLI) | Clearly define the UI/UX boundary in all launch messaging to set accurate expectations. |
|
|
47
|
-
| **Execution Control** | Step-by-step "Plan/Act" human approval | Uninterrupted autonomous file editing | Implement a toggle for both: visual planning for complex tasks, headless autonomy for CI/CD. |
|
|
48
|
-
| **Context Management** | Manual file inclusion or semantic search | Automatic repository maps via structural indexing | Emphasize automatic repository mapping to reduce the manual burden of context window management. |
|
|
49
|
-
| **Version Control** | Checkpoint snapshots (session-level rollback) | Git-native atomic commits per change | Adopt git-native commits. Checkpoints vanish after sessions; git history is permanent and auditable. |
|
|
50
|
-
| **Token Efficiency** | Often higher due to visual workflow overhead | Highly efficient due to strict diff-based application | Highlight diff-based editing explicitly to appeal to cost-conscious engineering managers. |
|
|
51
|
-
|
|
52
|
-
## **Implementing the Agent-as-a-Router Framework**
|
|
53
|
-
|
|
54
|
-
A truly sophisticated product launch strategy must directly address the inherent limitations of modern Large Language Models: no single model universally dominates all coding and reasoning domains. Real-world engineering teams have access to multiple LLMs from different providers, yet these models exhibit varied proficiencies across specific programming languages, logic puzzles, and architectural designs.19 The current state-of-the-art involves dynamic, intelligent model routing. If "Savant Code" incorporates routing capabilities, the launch must be radically optimized to highlight how it overcomes the "information deficit" inherent in legacy static routers.19
|
|
55
|
-
Recent academic advancements and practical deployments in agentic programming have formalized model selection as a continuous, self-optimizing loop of Context, Action, and Feedback—referred to as the C-A-F loop.20 Traditional routing mechanisms deployed by early AI wrappers treat model selection as a static, one-off classification problem based on fixed credentials or dimension-level priors.19 While this static design may be reasonable from an LLM provider's serving perspective—where the priority is maximizing in-house model usage and predicting compute costs—it fundamentally overlooks the actual needs of user-centric scenarios.20 For developers, the priority is task-level quality and cost-efficiency.20 Static routers suffer from an information deficit because their decision-making state is entirely frozen, unable to adapt to execution-grounded experience.20
|
|
56
|
-
By implementing an advanced Agent-as-a-Router architecture, a system actively closes this performance gap. The launch documentation must elevate the discourse from simple API aggregation to sophisticated, autonomous orchestration. It should detail how "Savant Code" observes a specific Context (the user's prompt combined with accumulated historical experience), selects an Action (determining which specific model from the available suite to invoke), receives verification Feedback (regarding the accuracy of the generated code and the cost-efficiency of the API call), and dynamically merges this feedback back into the Context for all future decisions.20
|
|
57
|
-
To resonate with senior engineers and data scientists, the launch collateral should delve into the specific modules that enable this dynamic routing. For instance, the system architecture should highlight an Orchestrator that manages the flow of the task, a Verifier that evaluates the outcome of the LLM's response, and a robust Memory module that stores these evaluations.19 By leveraging these components, the router learns over the task stream, verifying each decision and conditioning future routing choices on accumulated expertise rather than static rules.20
|
|
58
|
-
The optimization of the launch plan must include quantitative benchmarking to prove these claims. Presenting data derived from standardized evaluation environments, similar to the CodeRouterBench (which comprises tens of thousands of task instances with verified scores from frontier LLMs), is essential.19 The marketing messaging should focus on the minimization of "cumulative regret"—a metric that demonstrates the router's ability to consistently choose the optimal model over time, balancing exploration (testing new or updated models) with exploitation (relying on proven models for specific tasks).20 Furthermore, demonstrating that the routing framework can successfully generalize to out-of-distribution (OOD) agentic-programming tasks will prove that the system is genuinely learning rather than merely memorizing in-distribution datasets.19 Explicitly demonstrating this level of architectural rigor in the launch materials will instantly validate the product among the most skeptical engineering cohorts.
|
|
59
|
-
|
|
60
|
-
## **High-Performance Execution, CI/CD Integration, and Cloud Readiness**
|
|
61
|
-
|
|
62
|
-
In the event that "Savant Code" is structurally aligned with high-performance execution frameworks—drawing strategic parallels to the Savant open-source computer vision framework built on Nvidia DeepStream—the launch optimization requires a profound emphasis on low-level system optimization, fault tolerance, and absolute cloud readiness.3
|
|
63
|
-
The developer community heavily values frameworks that successfully abstract complex, low-level programming without sacrificing bare-metal performance.3 If the product processes massive amounts of data (such as executing real-time video analytics, running complex inference pipelines, or compiling massive codebases), the launch should emphasize the utilization of highly efficient low-level software stacks, analogous to TensorRT, to optimize inference operations on both edge devices and core data center accelerators.3 The ability to dynamically attach and detach sources and sinks to the pipeline without requiring full application reloads, alongside resilient handling of source outages, highlights a mature, production-ready architecture.4
|
|
64
|
-
|
|
65
|
-
### **Observability and Cloud-Native Deployment Metrics**
|
|
66
|
-
|
|
67
|
-
A catastrophic gap in many open-source product launch plans is the failure to address Day 2 operations: observability, monitoring, alerting, and deployment at scale. The optimization of the "Savant Code" launch must include a highly robust narrative regarding its cloud-native architecture. This involves highlighting comprehensive containerization (e.g., providing ready-to-deploy Docker images for x86 architectures, dGPUs, and edge hardware like Jetson) and the ability to execute pipelines in real-time, skipping data when running out of capacity or entering a high-capacity mode to guarantee processing fidelity.3
|
|
68
|
-
Crucially, the integration of standardized observability tooling must be front and center in the launch plan. The documentation must detail the product's native support for industry standards like OpenTelemetry and Prometheus.3 Enterprise developers and Site Reliability Engineers (SREs) need absolute assurance that they can instrument pipelines precisely, utilizing either sampled or complete distributed traces to monitor network latency, storage bottlenecks, and business logic execution.3 A framework that provides this level of granular insight out-of-the-box is vastly more attractive for enterprise adoption than a closed, black-box AI solution. Furthermore, the inclusion of a local Development Server tool that enables dynamic reloading of changed code without necessitating pipeline restarts will significantly appeal to the Developer Experience (DX) by drastically accelerating the debugging and iteration cycle.4
|
|
69
|
-
|
|
70
|
-
### **Seamless Integration with Deployment Architectures**
|
|
71
|
-
|
|
72
|
-
The deployment of new developer tools often introduces severe friction into existing continuous integration and continuous deployment pipelines. The launch strategy must include explicit, copy-pasteable documentation and real-world examples of how "Savant Code" integrates flawlessly into standard environments such as GitHub Actions, GitLab CI, or platforms like DeployHQ.16
|
|
73
|
-
The narrative should walk the user through a tangible workflow: the AI agent accepts a prompt, modifies the local files, and executes an atomic git commit with a context-aware message.17 The developer then executes a git push to a configured branch, which triggers a webhook to the deployment platform.17 The platform subsequently runs the build pipeline (e.g., npm ci && npm run build or pip install \-r requirements.txt), utilizing atomic file transfers to ensure zero-downtime cutovers.17 If an error occurs, the documentation should explain how the AI agent can be configured to read the stderr logs, debug the failure autonomously, and iterate until the test suite passes.16 Demonstrating this end-to-end integration shifts the product's perception from a simple code autocompleter to an indispensable piece of continuous delivery infrastructure.
|
|
74
|
-
|
|
75
|
-
## **Community Engagement and Market Penetration: The Hacker News Vector**
|
|
76
|
-
|
|
77
|
-
The most critical, high-leverage channel for launching a deeply technical, developer-centric product is Hacker News (HN). A flawed, overly corporatized approach to an HN launch can result in a product being flagged as spam, algorithmically suppressed, or publicly disparaged by highly influential engineers. The absolute optimization of the launch plan requires strict, uncompromising adherence to the cultural idiosyncrasies and mechanical norms of the Hacker News "Show HN" format.22
|
|
78
|
-
|
|
79
|
-
### **The Strict Mechanics of "Show HN"**
|
|
80
|
-
|
|
81
|
-
The "Show HN" designation is a privileged category reserved exclusively for projects that the community can interact with immediately.22 The guidelines explicitly dictate that the product must be something users can run on their computers or interact with via a browser; blog posts, newsletters, landing pages without products, and mere sign-up waitlists are strictly off-topic for this format and will be swiftly flagged.22
|
|
82
|
-
To optimize the launch, the friction required to experience the core value of "Savant Code" must be reduced to absolute zero. Requiring a mandatory email signup, demanding a credit card prior to accessing the tool, or gating the software behind a sales discovery call is a fatal error that will result in immediate community backlash and downvotes.22 The launch plan must include a robust provision for a sandbox environment, a one-click web demo, or an easily installable local binary (e.g., a simple curl | bash command or npm install \-g script).24 If backend LLM API processing costs are a concern during a massive HN traffic spike, the system must be aggressively load-tested beforehand, and identical requests should be cached where possible to ensure stability under immense load.24
|
|
83
|
-
|
|
84
|
-
### **Titling, Timing, and Navigating Algorithmic Dynamics**
|
|
85
|
-
|
|
86
|
-
The HN algorithm and its user base possess a highly tuned, almost allergic aversion to marketing jargon. Titles that utilize capitalization for emphasis, exclamation points, or hyperbolic adjectives (e.g., "Amazing," "Revolutionary," "Game-Changing," "10x") will be heavily penalized both by human voters and algorithmic moderators.23 The optimization requires a purely factual, highly descriptive title format. The standard structure Show HN: \[Product Name\] – \[Factual description of what it does\] is mandatory.23 For example, replacing a proposed title like Show HN: Revolutionize your CI/CD pipelines with Savant Code\!\!\! with a culturally aligned title such as Show HN: Savant Code – An open-source, agentic LLM router for continuous deployment.
|
|
87
|
-
Timing is also a critical, data-driven variable in the launch plan. Historical community data suggests that the optimal window for posting to maximize initial visibility on the /newest page is between 9:00 AM and 12:00 PM Pacific Time, strictly from Monday through Thursday.23 Posting on weekends or late nights Pacific Time results in a massive drop in baseline engagement, heavily handicapping the post's ability to achieve the initial velocity required to hit the front page.23
|
|
88
|
-
|
|
89
|
-
### **Mitigating Algorithmic Penalties and Managing Discourse**
|
|
90
|
-
|
|
91
|
-
A pervasive and devastating flaw in modern startup launch plans is the attempt to artificially manufacture early traction. Sharing the direct HN link in private Discord servers, corporate Slack channels, or on social media and soliciting friends to upvote the post (forming "vote rings") will trigger Hacker News' highly sophisticated vote-ring detection algorithms.23 Votes originating from direct links or from accounts that do not regularly participate in the community are heavily discounted or entirely nullified, and the post itself may be shadow-banned, permanently stripping it of its ranking potential.23 The launch team must be explicitly instructed to let organic discovery take its course. If colleagues genuinely wish to support the launch, they must manually navigate to the /newest or /show page to locate the post organically.23
|
|
92
|
-
Furthermore, it is a closely guarded fact that comments are a significantly stronger ranking signal to the HN algorithm than pure upvotes.23 The launch strategy must dedicate significant engineering and founder time to monitoring the thread intensely for the first 12 to 24 hours after posting. The team must thoughtfully respond to every single comment, particularly negative, hyper-critical, or skeptical ones.23 Responses must be constructed with data, rigorous architectural reasoning, and profound technical depth rather than defensiveness or PR-speak.23 The HN community deeply respects developers who can engage in rigorous, civil technical debate and who are willing to admit limitations in their current architecture.
|
|
93
|
-
|
|
94
|
-
| Launch Variable | Sub-Optimal Approach (High Risk of Failure) | Optimized Approach (Aligned with HN Culture) |
|
|
95
|
-
| :---- | :---- | :---- |
|
|
96
|
-
| **Title Format** | "Amazing new AI tool to 10x your coding\!" | "Show HN: Savant Code – Open-source agentic model routing CLI" |
|
|
97
|
-
| **User Onboarding** | Mandatory account creation & email verification. | No-login web demo; clear, one-line local install script. |
|
|
98
|
-
| **Promotion Mechanics** | Sharing direct link in Slack asking for upvotes. | Relying entirely on organic HN discovery; no direct linking. |
|
|
99
|
-
| **Timing Execution** | Friday at 11:00 PM PT. | Tuesday at 10:00 AM PT. |
|
|
100
|
-
| **Community Engagement** | Ignoring criticism; arguing defensively. | Responding to all comments with technical depth, data, and humility. |
|
|
101
|
-
|
|
102
|
-
If the initial launch fails to gain traction due to bad timing or a slow news cycle, the plan should account for the HN "second-chance pool." Human moderators occasionally rescue high-quality posts that fell off the /newest page too quickly and place them back in the pool for another chance at visibility.23 Alternatively, waiting several weeks and attempting a carefully revised repost with a new angle and substantial product updates is a viable fallback strategy, provided the exact same content is not merely spammed repeatedly.23
|
|
103
|
-
|
|
104
|
-
## **Open-Source Commercialization and Revenue Architecture**
|
|
105
|
-
|
|
106
|
-
If "Savant Code" is distributed as an open-source tool, the launch plan must delineate a perfectly clear, sustainable commercialization strategy from day one. The history of developer tools is littered with beloved open-source projects that ultimately collapsed due to the lack of a viable business model, or worse, permanently alienated their communities through sudden, predatory monetization shifts post-adoption.26 The launch must preemptively answer the community's inevitable question: "How does this company plan to survive without compromising the open-source ethos?"
|
|
107
|
-
|
|
108
|
-
### **Evaluating Sub-Optimal Monetization Archetypes**
|
|
109
|
-
|
|
110
|
-
The strategic optimization of the business model requires rigorously evaluating several established paradigms: Donations, Support Plans, Managed Hosting (SaaS), and Dual Licensing.
|
|
111
|
-
Relying primarily on donations (via platforms like GitHub Sponsors, Buy Me a Coffee, or Open Collective) is generally wholly insufficient for sustaining a full-time engineering team.28 While it provides some supplementary income and early validation, it is notoriously unpredictable and operates essentially as a "tax on the kind-hearted".29 Unless the project achieves the massive global scale and decades of historical goodwill of foundational tools like cURL (which sustains itself via structured corporate sponsorships) 28, donations cannot form the bedrock of a venture-backed or growth-oriented commercial strategy.
|
|
112
|
-
Dual licensing presents a compelling, albeit aggressive, alternative, particularly for deep infrastructural libraries, frameworks, or databases. Under this model, the software is offered for free under a highly restrictive copyleft license (e.g., GPL or AGPL).28 This requires anyone who modifies or integrates the code into their software to release their derivative work under the exact same open-source terms.28 For enterprise entities that flatly refuse to open-source their proprietary commercial applications, a commercial license is sold, granting them the right to use the software without the viral copyleft obligations.27 However, the launch plan must recognize that this model generates immense friction in initial enterprise adoption, as corporate legal departments routinely flag and reject AGPL dependencies during routine compliance audits.
|
|
113
|
-
Another possible later-stage model is OpenSaaS (managed hosting), where the core software remains open-source and the commercial entity operates its own cloud infrastructure. This is not an initial-launch recommendation or a current hosting commitment. Only after Savant-Code gains users should the team decide whether to build and operate such a first-party service. It would require substantial security, uptime, database, SRE, billing, and compliance work; if the product routes large LLM contexts, browser automation, or real-time telemetry, cloud costs would scale with usage and require separate economics and governance. There is no Savant-Free hosting or partnership assumption.
|
|
114
|
-
|
|
115
|
-
### **The Superiority and Implementation of the Open Core Model**
|
|
116
|
-
|
|
117
|
-
For a modern developer tool or AI agent like "Savant Code," the Open Core model represents the most strategically sound, balanced, and highly recommended approach.26 This framework involves maintaining two distinct, clearly demarcated editions of the product: a core version that is free and fully open-source (typically under a permissive MIT or Apache 2.0 license), and a commercial, source-available, or proprietary tier that includes advanced features designed explicitly for large-scale enterprise deployment.26
|
|
118
|
-
The Open Core model acts as a permanent, non-expiring trial mechanism. The free version drives massive top-of-funnel adoption, generating invaluable community contributions, edge-case bug reports, and organic word-of-mouth marketing.29 The critical strategic decision for the launch plan lies in determining the exact demarcation line—deciding precisely what remains free and what is gated behind the paywall.27
|
|
119
|
-
A highly effective methodology for determining this demarcation is the buyer-based gating strategy, successfully pioneered by companies like GitLab.27 Under this framework, features are gated based strictly on the organizational role of the user who requires them. If a feature is primarily utilized by an individual contributor (e.g., basic code generation, local terminal integration, syntax highlighting, basic git commits), it remains unequivocally open-source.27 This ensures the developer experience remains stellar. However, if a feature is demanded by management, executives, or a Chief Information Security Officer (CISO)—such as Single Sign-On (SAML/SSO), advanced audit logs, custom Service Level Agreements (SLAs), Role-Based Access Control (RBAC), and enterprise compliance reporting—it is relegated to the paid proprietary tier.27 Executives and enterprise procurement departments are vastly less price-sensitive and possess the budgetary authority required to procure these features.27
|
|
120
|
-
|
|
121
|
-
| Monetization Model | Primary Revenue Mechanism | Best Suited For | Relative Cost of Operations |
|
|
122
|
-
| :---- | :---- | :---- | :---- |
|
|
123
|
-
| **Donations / Sponsorships** | GitHub Sponsors, Open Collective | Solo maintainers, small utility libraries. | Low (Minimal ops, high community effort) |
|
|
124
|
-
| **Dual Licensing** | AGPL for OSS, Paid for Commercial terms. | Deep infrastructural dependencies, databases. | Medium (Requires legal enforcement) |
|
|
125
|
-
| **Open SaaS (Managed)** | Possible later first-party service; not an initial-launch commitment. | Products requiring heavy infrastructure/uptime after adoption. | High (SRE, Billing, Ops, SLAs) |
|
|
126
|
-
| **Open Core (Enterprise)** | MIT for core, Paid for Enterprise-gated features. | Broad developer tools, CLI agents, IDE plugins. | Medium-High (Feature gating, sales team) |
|
|
127
|
-
|
|
128
|
-
### **Ethical Considerations and Avoiding Monetization Antipatterns**
|
|
129
|
-
|
|
130
|
-
The execution of any open-source monetization strategy requires profound transparency. Alienating the community by obfuscating what is free versus what is paid, or suddenly changing the license of a previously open project (a phenomenon increasingly common in the industry), will immediately destroy developer trust.27 The launch documentation must explicitly state the long-term licensing commitment of the project.
|
|
131
|
-
Furthermore, the launch plan must strictly prohibit aggressive, consumer-style monetization tactics within the developer environment. A cautionary example of a catastrophic monetization failure occurred when a popular open-source npm JavaScript library implemented a massive banner advertisement directly in the developer's command-line terminal upon installation.30 While arguably an innovative method of funding open-source work, terminal ads are viewed by the engineering community as deeply intrusive and a gross violation of the sanctity of the developer workspace.30 This resulted in an immediate community revolt, harsh backlash, and rapid forks of the project to remove the adware.30 Monetization in the developer space must exclusively add value (e.g., enterprise features, managed hosting, dedicated support) rather than extracting attention through spam or intrusive advertising.
|
|
132
|
-
|
|
133
|
-
## **Enhancing the Product Narrative: Transparency, Auditability, and Reproducibility**
|
|
134
|
-
|
|
135
|
-
A highly optimized launch will lean heavily into the core open-source philosophy of auditability and reproducibility. In an era where proprietary, black-box AI tools dominate the landscape, the positioning of "Savant Code" as a transparent, inspectable entity is a massive competitive advantage.
|
|
136
|
-
If the product is fully open-source under a permissive license like Apache 2.0, the marketing collateral should heavily emphasize that the entire development toolchain can be audited, forked, and reproduced by contributors or third-party security auditors.16 For enterprise adoption, particularly in highly regulated industries such as finance, healthcare, and defense, the absolute absence of a proprietary component secretly mediating code changes or exfiltrating data is not merely a luxury; it is a strict, non-negotiable procurement requirement.18
|
|
137
|
-
Furthermore, the launch should address the critical need for offline and air-gapped operations. Security-sensitive organizations, government contractors, and developers operating in environments with strict data exfiltration policies require tools that can function without transmitting proprietary source code to external APIs (like OpenAI or Anthropic). If "Savant Code" can seamlessly interface with locally served models via Ollama or LM Studio, this capability must be central to the launch narrative, as it immediately differentiates the product from cloud-locked competitors.17 Pointing the tool at a locally-served model ensures that the code never leaves the developer's machine, effectively solving the deepest security concerns of enterprise adoption.18
|
|
138
|
-
|
|
139
|
-
## **Strategic Conclusions and Actionable Launch Roadmap**
|
|
140
|
-
|
|
141
|
-
The successful launch of a highly sophisticated technical product like "Savant Code" relies entirely on the precise calibration of its market positioning, community engagement tactics, and the clarity of its underlying architecture. The developer ecosystem is uniquely immune to traditional marketing tactics; long-term adoption is driven exclusively by demonstrable technical superiority, frictionless workflow integration, and a deep, authentic respect for open-source community norms.
|
|
142
|
-
To transition this product launch plan from a conceptual framework to an optimized, execution-ready strategy, the following sequential roadmap must be rigorously implemented prior to market entry.
|
|
143
|
-
First, the team must execute a comprehensive pre-launch asset hardening phase. This requires auditing all public-facing copy to ensure the absolute exclusion of generic terms associated with the "Savant Activation Code" and other brand collisions, standardizing the nomenclature to strict technical variants. The documentation must clearly articulate the operational paradigm (IDE versus Terminal native) and highlight the advanced model routing architecture (Context-Action-Feedback loops) to establish technical authority. Furthermore, the friction to onboarding must be eradicated by deploying a zero-login web sandbox or a highly optimized local installation script.
|
|
144
|
-
Following asset preparation, the team must validate the telemetry and benchmarking claims. If utilizing an Open Core model, the demarcation between the MIT-licensed components and the enterprise-gated features (SSO, SLAs, Audit Logs) must be finalized and transparently communicated. The native integrations with OpenTelemetry, Prometheus, and continuous deployment environments must be tested extensively, as these will be highly scrutinized by enterprise evaluators. Objective, reproducible polyglot benchmarks must be published, comparing the token efficiency, diff-based editing latency, and routing accuracy of "Savant Code" against existing static routers and market leaders.
|
|
145
|
-
Finally, the execution of the Hacker News launch must be treated as a highly sensitive operational maneuver. The submission must utilize a factual, descriptive title, deployed organically during the optimal Pacific Time morning window. The engineering team must commit to rigorous, polite, and data-driven engagement with all commenters, while strictly enforcing a ban on artificial vote ring mechanics. By aggressively addressing brand vulnerabilities, defining a superior architectural stance, executing a flawless community launch, and establishing a transparent monetization strategy, "Savant Code" can successfully bypass the noise of the market and establish itself as a foundational piece of modern development infrastructure.
|
|
146
|
-
|
|
147
|
-
### **Works cited**
|
|
148
|
-
|
|
149
|
-
> 1. The Savant Activation Code Review \- Real User Experiences & Results \- Issuewire, accessed July 28, 2026, [https://www.issuewire.com/the-savant-activation-code-review-real-user-experiences-results-1700535729617368](https://www.issuewire.com/the-savant-activation-code-review-real-user-experiences-results-1700535729617368)
|
|
150
|
-
> 2. The Savant Code Review: Legit Activation Program That Works? \- Courier-Herald, accessed July 28, 2026, [https://www.courierherald.com/2021/05/23/the-savant-code-review-legit-activation-program-that-works/](https://www.courierherald.com/2021/05/23/the-savant-code-review-legit-activation-program-that-works/)
|
|
151
|
-
> 3. charithmadhuranga/ai-video-analytics: Python Computer Vision & Video Analytics Framework With Batteries Included \- GitHub, accessed July 28, 2026, [https://github.com/charithmadhuranga/ai-video-analytics](https://github.com/charithmadhuranga/ai-video-analytics)
|
|
152
|
-
> 4. Savant Framework | Savant, accessed July 28, 2026, [https://savant-ai.io/](https://savant-ai.io/)
|
|
153
|
-
> 5. Savant Labs | Agentic AI Platform for Business Analytics, accessed July 28, 2026, [https://savantlabs.io/](https://savantlabs.io/)
|
|
154
|
-
> 6. Savant Labs Launch Event \- Continuum, accessed July 28, 2026, [https://www.continuum.je/events/savant-labs-launch-event](https://www.continuum.je/events/savant-labs-launch-event)
|
|
155
|
-
> 7. ADV Part 2A Firm Brochure Savant Wealth Management April 30, 2026, accessed July 28, 2026, [https://savantwealth.com/wp-content/uploads/2026/05/Savant-ADV-Part-2A-April-2026.pdf](https://savantwealth.com/wp-content/uploads/2026/05/Savant-ADV-Part-2A-April-2026.pdf)
|
|
156
|
-
> 8. Use of Displacement Damage Dose in an Engineering Model of GaAs Solar Cell Radiation Damage | Request PDF \- ResearchGate, accessed July 28, 2026, [https://www.researchgate.net/publication/24285174\_Use\_of\_Displacement\_Damage\_Dose\_in\_an\_Engineering\_Model\_of\_GaAs\_Solar\_Cell\_Radiation\_Damage](https://www.researchgate.net/publication/24285174_Use_of_Displacement_Damage_Dose_in_an_Engineering_Model_of_GaAs_Solar_Cell_Radiation_Damage)
|
|
157
|
-
> 9. 18th Space Photovoltaic Research and Technology Conference, accessed July 28, 2026, [https://ntrs.nasa.gov/api/citations/20050206360/downloads/20050206360.pdf](https://ntrs.nasa.gov/api/citations/20050206360/downloads/20050206360.pdf)
|
|
158
|
-
> 10. Comparison of Ray-tracing and MoM RCS Solution for Large Realistic Vehicle \- The Applied Computational Electromagnetics Society, accessed July 28, 2026, [https://aces-society.org/includes/downloadpaper.php?of=ACES\_Conference\_2009\_-\_Advances\_in\_Electromagnetic\_Modeling\_by\_WIPL-D\_software\_I\_9025\&nf=e71060a3ee8a56f78eabbcdfba11acc1](https://aces-society.org/includes/downloadpaper.php?of=ACES_Conference_2009_-_Advances_in_Electromagnetic_Modeling_by_WIPL-D_software_I_9025&nf=e71060a3ee8a56f78eabbcdfba11acc1)
|
|
159
|
-
> 11. Standard Analyzer of VHDL Applications for Next Generation Technology (SAVANT) \- DTIC, accessed July 28, 2026, [https://apps.dtic.mil/sti/tr/pdf/ADA364310.pdf](https://apps.dtic.mil/sti/tr/pdf/ADA364310.pdf)
|
|
160
|
-
> 12. THE "KATA-LOGUE" STORE for HUMAN & CANINE EQUILIBRIUM & ENRICHMENT, accessed July 28, 2026, [https://kata-k9.com/explore-the-store-1](https://kata-k9.com/explore-the-store-1)
|
|
161
|
-
> 13. Savant App User Guide \- Frequently Asked Questions \- Knowledge, accessed July 28, 2026, [https://support.savant.com/pro/articles/en\_US/Support\_Article/Savant-App-User-Guide---Frequently-Asked-Questions](https://support.savant.com/pro/articles/en_US/Support_Article/Savant-App-User-Guide---Frequently-Asked-Questions)
|
|
162
|
-
> 14. Unlimited action \- Manchester Hive, accessed July 28, 2026, [https://www.manchesterhive.com/downloadpdf/9781526135506/9781526135506.pdf](https://www.manchesterhive.com/downloadpdf/9781526135506/9781526135506.pdf)
|
|
163
|
-
> 15. Cline vs Aider (2026): Which Free Open-Source Agent Wins? \- Cursor-Alternatives.com, accessed July 28, 2026, [https://cursor-alternatives.com/blog/cline-vs-aider/](https://cursor-alternatives.com/blog/cline-vs-aider/)
|
|
164
|
-
> 16. Cline for VS Code: Free AI Coding Agent Setup Guide (2026) \- DeployHQ, accessed July 28, 2026, [https://www.deployhq.com/guides/cline](https://www.deployhq.com/guides/cline)
|
|
165
|
-
> 17. How to Use Aider: Atomic Git Commits & Architect Mode (2026 Guide) \- DeployHQ, accessed July 28, 2026, [https://www.deployhq.com/guides/aider](https://www.deployhq.com/guides/aider)
|
|
166
|
-
> 18. Aider vs Claude Code 2026: Which CLI Agent Wins? \- Kunal Ganglani, accessed July 28, 2026, [https://www.kunalganglani.com/blog/aider-vs-claude-code](https://www.kunalganglani.com/blog/aider-vs-claude-code)
|
|
167
|
-
> 19. \[2606.22902\] Agent-as-a-Router: Agentic Model Routing for Coding Tasks \- arXiv, accessed July 28, 2026, [https://arxiv.org/abs/2606.22902](https://arxiv.org/abs/2606.22902)
|
|
168
|
-
> 20. Agent-as-a-Router: Agentic Model Routing for Coding Tasks \- arXiv, accessed July 28, 2026, [https://arxiv.org/html/2606.22902v1](https://arxiv.org/html/2606.22902v1)
|
|
169
|
-
> 21. Agent-as-a-Router: Agentic Model Routing for Coding Tasks (Jun 2026\) \- YouTube, accessed July 28, 2026, [https://www.youtube.com/watch?v=4GWTkR0qp3k](https://www.youtube.com/watch?v=4GWTkR0qp3k)
|
|
170
|
-
> 22. Show HN Guidelines, accessed July 28, 2026, [https://news.ycombinator.com/showhn.html](https://news.ycombinator.com/showhn.html)
|
|
171
|
-
> 23. How to Post on Hacker News Without Getting Flagged or Ignored \- DEV Community, accessed July 28, 2026, [https://dev.to/developuls/how-to-post-on-hacker-news-without-getting-flagged-or-ignored-2eaf](https://dev.to/developuls/how-to-post-on-hacker-news-without-getting-flagged-or-ignored-2eaf)
|
|
172
|
-
> 24. My Show HN reached Hacker News front page. Here is how you can do it., accessed July 28, 2026, [https://www.indiehackers.com/post/my-show-hn-reached-hacker-news-front-page-here-is-how-you-can-do-it-44c73fbdc6](https://www.indiehackers.com/post/my-show-hn-reached-hacker-news-front-page-here-is-how-you-can-do-it-44c73fbdc6)
|
|
173
|
-
> 25. Hacker News Guidelines, accessed July 28, 2026, [https://news.ycombinator.com/newsguidelines.html](https://news.ycombinator.com/newsguidelines.html)
|
|
174
|
-
> 26. Open source monetization: project income support \- TinyMCE, accessed July 28, 2026, [https://www.tiny.cloud/blog/open-source-monetization/](https://www.tiny.cloud/blog/open-source-monetization/)
|
|
175
|
-
> 27. How to Monetize Open Source Software: 7 Proven Strategies \- Reo.Dev, accessed July 28, 2026, [https://www.reo.dev/blog/monetize-open-source-software](https://www.reo.dev/blog/monetize-open-source-software)
|
|
176
|
-
> 28. How to monetize your open source project (and pay your developers) | Scaleway Blog, accessed July 28, 2026, [https://www.scaleway.com/en/blog/how-to-monetize-your-open-source-project/](https://www.scaleway.com/en/blog/how-to-monetize-your-open-source-project/)
|
|
177
|
-
> 29. How to Monetize an Open Source Project with a Pro Tier | Dodo Payments, accessed July 28, 2026, [https://dodopayments.com/blogs/monetize-open-source-pro-tier](https://dodopayments.com/blogs/monetize-open-source-pro-tier)
|
|
178
|
-
> 30. Popular JavaScript library starts showing ads in its terminal \- ZDNET, accessed July 28, 2026, [https://www.zdnet.com/article/popular-javascript-library-starts-showing-ads-in-its-terminal/](https://www.zdnet.com/article/popular-javascript-library-starts-showing-ads-in-its-terminal/)
|