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,243 +0,0 @@
|
|
|
1
|
-
# FID: Code-Map Package Audit — Guard Fix, Loader Resilience, Hygiene (CM-1…CM-9)
|
|
2
|
-
|
|
3
|
-
**Filename:** `FID-2026-0803-006-code-map-audit-hygiene.md`
|
|
4
|
-
**ID:** FID-2026-0803-006
|
|
5
|
-
**Severity:** medium
|
|
6
|
-
**Status:** verified
|
|
7
|
-
**Created:** 2026-08-03
|
|
8
|
-
**Author:** Savant
|
|
9
|
-
|
|
10
|
-
**Summary:**
|
|
11
|
-
Audit of `packages/code-map` (tree-sitter indexing + language detection; ~900 lines read 0-EOF). Two
|
|
12
|
-
MEDIUM findings — (CM-1) a dead `call in {}` prototype-key guard in `buildTokenCallers` that lets a
|
|
13
|
-
real-world `toString`/`valueOf`/`hasOwnProperty` token collision crash the whole code map (SDK
|
|
14
|
-
degrades to empty scores with only a warning), and (CM-2) the module-level `UnifiedLanguageLoader`
|
|
15
|
-
caches a `Parser.init` rejection forever, silently disabling tree-sitter for the process lifetime with
|
|
16
|
-
no surfaced diagnostic — plus seven LOW hygiene/robustness findings (CM-3 dead wasm-path fallback loop,
|
|
17
|
-
CM-4 pointless rethrow, CM-5 lazy-init race, CM-6 language-table gaps, CM-7 TOCTOU + misclassified read
|
|
18
|
-
errors, CM-8 unnecessary cast, CM-9 eval-style `new Function` shim). Baseline: 50/50 tests, typecheck
|
|
19
|
-
clean, reachable via `sdk/src/run-state.ts` (Law 4 verified).
|
|
20
|
-
|
|
21
|
-
---
|
|
22
|
-
|
|
23
|
-
## Environment (RED — findings with evidence)
|
|
24
|
-
|
|
25
|
-
All in `packages/code-map/src/`; baseline verified: `bun test` 50 pass / 0 fail, `bun run typecheck`
|
|
26
|
-
exit 0, reachability `getFileTokenScores` → `sdk/src/run-state.ts:167` (dynamic import, wrapped in
|
|
27
|
-
try/catch at `:171-174`) + SDK index re-export + `sdk/smoke-test-dist.ts:126`.
|
|
28
|
-
|
|
29
|
-
### CM-1 — MEDIUM — dead `call in {}` guard can crash the code map
|
|
30
|
-
|
|
31
|
-
`parse.ts:311` — `if (!definingFile || callingFile === definingFile || call in {}) continue`. The guard
|
|
32
|
-
was meant to skip Object.prototype-colliding tokens, but `'toString' in {}` is **false** (only
|
|
33
|
-
inherited `__proto__` is caught). Trigger path: a project where `toString`/`valueOf`/`hasOwnProperty`
|
|
34
|
-
appears as both a defined identifier (a class overriding `toString` — common) and a call
|
|
35
|
-
(`obj.toString()`). Then `callersByToken[call]` returns the *truthy* `Object.prototype.toString`
|
|
36
|
-
function → `callerFiles.length (1) < 25` passes → `callerFiles.includes(...)` → **TypeError:
|
|
37
|
-
callerFiles.includes is not a function** → `getFileTokenScores` rejects → SDK catches
|
|
38
|
-
(`run-state.ts:171-174`) → entire code map silently empty with a warning. `constructor` is only
|
|
39
|
-
shielded incidentally because `IGNORE_TOKENS` excludes it from scoring.
|
|
40
|
-
|
|
41
|
-
### CM-2 — MEDIUM — loader caches a rejection; tree-sitter silently disabled forever
|
|
42
|
-
|
|
43
|
-
`languages.ts:209-216,294` — `unifiedLoader.parserReady` is created eagerly at module scope
|
|
44
|
-
(`this.parserReady = initTreeSitterForNode()`). If `Parser.init` rejects (wasm missing/unreadable —
|
|
45
|
-
including the self-heal download failing once), every subsequent `getLanguageConfig` rejects forever,
|
|
46
|
-
even if the wasm becomes available, and `getLanguageConfig`'s catch (`:301-308`) returns `undefined`
|
|
47
|
-
logging only under `DEBUG_PARSING`. Net: symbol scoring silently disabled for the process lifetime with
|
|
48
|
-
no surfaced cause; plus a possible unhandled-rejection race at module scope.
|
|
49
|
-
|
|
50
|
-
### CM-3 — LOW — dead fallback loop in `resolveWasmPath`
|
|
51
|
-
|
|
52
|
-
`languages.ts:174-181` — `for (const wasmPath of possiblePaths) { try { return wasmPath } catch {
|
|
53
|
-
continue } }`: `return` can never throw, so the loop always returns `possiblePaths[0]` and the
|
|
54
|
-
"try each path" intent never runs (the `catch` is dead scaffolding).
|
|
55
|
-
|
|
56
|
-
### CM-4 — LOW — pointless rethrow
|
|
57
|
-
|
|
58
|
-
`languages.ts:227` — `catch (err) { throw err }` around the entire `createLanguageConfig` init body is
|
|
59
|
-
a no-op; remove the wrapper.
|
|
60
|
-
|
|
61
|
-
### CM-5 — LOW — lazy-init race in `createLanguageConfig`
|
|
62
|
-
|
|
63
|
-
`languages.ts:243-258` — concurrent calls both observe `!cfg.parser` and double-run
|
|
64
|
-
`Language.load` + `new Parser()` + `new Query()`. Currently serial inside `getFileTokenScores`'s loop,
|
|
65
|
-
but `getLanguageConfig` is public API (hosts could `Promise.all` files). Dedupe with a per-config
|
|
66
|
-
in-flight promise.
|
|
67
|
-
|
|
68
|
-
### CM-6 — LOW — language-table gaps
|
|
69
|
-
|
|
70
|
-
`languages.ts` `languageTable` — `.mjs`/`.cjs` (ESM/CJS modules — ubiquitous in modern TS/JS projects)
|
|
71
|
-
and `.mts`/`.cts` are unmapped, so those files are silently unindexed. `.c`/`.cc`/`.cxx`/`.h`, Kotlin,
|
|
72
|
-
Swift, PHP, Scala, CSS etc. are absent — but `@vscode/tree-sitter-wasm/wasm/` (verified) ships only
|
|
73
|
-
cpp/c-sharp/css/javascript/typescript, and the repo has no C/CSS queries, so those are correctly
|
|
74
|
-
documented as out of scope rather than half-added.
|
|
75
|
-
|
|
76
|
-
### CM-7 — LOW — TOCTOU + misclassified read errors
|
|
77
|
-
|
|
78
|
-
`parse.ts:255-262` — `fs.statSync(filePath).size` then `fs.readFileSync(filePath, 'utf8')`: the file can
|
|
79
|
-
change or vanish between the two calls (uncaught ENOENT lands in `parseTokensWithLimits`'s catch →
|
|
80
|
-
`emptyParsedTokens(false)` at `:243`). The readFile-provider rejection path returns
|
|
81
|
-
`emptyParsedTokens(false)` at `:183` too — a failed read is classified as *parsed*, consuming a
|
|
82
|
-
`MAX_PARSE_FILES` slot with zero tokens. Should be `skipped: true`.
|
|
83
|
-
|
|
84
|
-
### CM-8 — LOW — unnecessary cast
|
|
85
|
-
|
|
86
|
-
`parse.ts:387` — `(tree as { delete?: () => void }).delete?.()`. `Tree.delete(): void` exists in
|
|
87
|
-
web-tree-sitter 0.25.10 types (verified `node_modules/web-tree-sitter/tree-sitter.d.ts:338`). Use
|
|
88
|
-
`tree.delete()` directly; keep the `finally` (memory hygiene is correct).
|
|
89
|
-
|
|
90
|
-
### CM-9 — LOW — eval-style `__dirname` shim
|
|
91
|
-
|
|
92
|
-
`utils.ts:2` — `new Function('try { return __dirname; } ...')`. Works in the private runtime but is
|
|
93
|
-
CSP/sandbox-hostile and unwrapped at the call site (`resolveWasmPath` calls it outside any try).
|
|
94
|
-
Add an outer try/catch and keep the documented eslint-disable.
|
|
95
|
-
|
|
96
|
-
---
|
|
97
|
-
|
|
98
|
-
## Root Cause
|
|
99
|
-
|
|
100
|
-
Two classes: (1) a broken guard expression (`call in {}` — always-false except `__proto__`) that was
|
|
101
|
-
never exercised by the test corpus (no test uses Object.prototype-colliding tokens), and (2) a
|
|
102
|
-
module-level singleton that treats an init failure as terminal state without surfacing it. The rest are
|
|
103
|
-
accumulated small dead-code/robustness warts in a package that predates the current quality program.
|
|
104
|
-
|
|
105
|
-
## Proposed Solution (after approval — audit-only now)
|
|
106
|
-
|
|
107
|
-
1. **CM-1** — `parse.ts:311`: `call in {}` → `call in Object.prototype` (one token; covers
|
|
108
|
-
`constructor`/`toString`/`valueOf`/`hasOwnProperty`/`isPrototypeOf`/`propertyIsEnumerable`/
|
|
109
|
-
`toLocaleString`/`__proto__`).
|
|
110
|
-
2. **CM-2** — `languages.ts`: rework `UnifiedLanguageLoader` — lazy `initParser` that stores the
|
|
111
|
-
in-flight promise (concurrent callers share it) but clears it on rejection so a later call retries;
|
|
112
|
-
no eager module-scope promise (removes the unhandled-rejection risk). Add a one-time `console.warn`
|
|
113
|
-
in `getLanguageConfig`'s catch (with eslint-disable) so a silently-degrading subsystem surfaces
|
|
114
|
-
its cause once per process.
|
|
115
|
-
3. **CM-3** — `languages.ts:174-181`: collapse the dead loop to `return possiblePaths[0]` with a
|
|
116
|
-
comment (behavior-identical — the loop always returned the first path).
|
|
117
|
-
4. **CM-4** — `languages.ts`: remove the `try { … } catch (err) { throw err }` wrapper in
|
|
118
|
-
`createLanguageConfig`.
|
|
119
|
-
5. **CM-5** — `languages.ts`: add optional `initPromise?: Promise<void>` to `LanguageConfig`; in
|
|
120
|
-
`createLanguageConfig`, `cfg.initPromise ??= (async () => { …init… })()` then `await` it, clearing
|
|
121
|
-
it in a catch so a failed init can retry.
|
|
122
|
-
6. **CM-6** — `languages.ts` `languageTable`: add `.mjs`/`.cjs` → javascript wasm/query and
|
|
123
|
-
`.mts`/`.cts` → typescript wasm/query. Document the out-of-scope boundary (C-family, Kotlin, Swift,
|
|
124
|
-
PHP, CSS) in a table comment.
|
|
125
|
-
7. **CM-7** — `parse.ts`: readFile-provider rejection → `emptyParsedTokens(true)`; wrap the stat-path
|
|
126
|
-
`readFileSync` in try/catch → `null` (skipped) on failure, closing the TOCTOU window.
|
|
127
|
-
8. **CM-8** — `parse.ts:387`: `tree.delete()` directly.
|
|
128
|
-
9. **CM-9** — `utils.ts`: wrap the `new Function` invocation in try/catch returning `undefined` on
|
|
129
|
-
failure (callers already fall back to `process.cwd()`).
|
|
130
|
-
|
|
131
|
-
**Non-goals:** adding C/Kotlin/Swift/PHP/CSS grammars (wasm/query authoring is a separate feature
|
|
132
|
-
track); worker-thread parallel parsing (design note, larger change); changing the SDK's degraded-mode
|
|
133
|
-
handling of empty scores.
|
|
134
|
-
|
|
135
|
-
## Files To Be Changed (implementation stage)
|
|
136
|
-
|
|
137
|
-
- `packages/code-map/src/parse.ts` (CM-1, CM-7, CM-8)
|
|
138
|
-
- `packages/code-map/src/languages.ts` (CM-2, CM-3, CM-4, CM-5, CM-6)
|
|
139
|
-
- `packages/code-map/src/utils.ts` (CM-9)
|
|
140
|
-
- Tests: `packages/code-map/__tests__/parse.test.ts` or `integration.test.ts` (CM-1 regression —
|
|
141
|
-
`toString`-collision corpus must not throw), `__tests__/languages.test.ts` (CM-6 — new extensions
|
|
142
|
-
resolve), optional concurrent-init identity test (CM-5)
|
|
143
|
-
|
|
144
|
-
## Verification
|
|
145
|
-
|
|
146
|
-
- [x] Recon: 5 source files read 0-EOF; tests 50/50; typecheck clean; reachability verified
|
|
147
|
-
(`run-state.ts:167`, SDK index export, smoke-test asserts `getFileTokenScores`)
|
|
148
|
-
- [x] `call in {}` semantics confirmed (`'toString' in {}` === false); `Tree.delete(): void` confirmed
|
|
149
|
-
in web-tree-sitter types (d.ts:338); wasm manifest confirmed (`@vscode/tree-sitter-wasm/wasm/`)
|
|
150
|
-
- [x] No implementation files modified during this audit (audit-only)
|
|
151
|
-
- [x] Implementation: code-map 51 pass / 0 fail (incl. 1 new CM-1 regression), `bun run typecheck` clean,
|
|
152
|
-
zero-warning ESLint (full-repo `--max-warnings 0` exit 0), Prettier clean on changed files,
|
|
153
|
-
`bun run lint:md` exit 0
|
|
154
|
-
- [x] Implementation: SDK smoke caveat noted (smoke-test-dist requires a built dist absent from the
|
|
155
|
-
tree; CJS tree-sitter harness failure pre-existing/environmental — `getFileTokenScores` export
|
|
156
|
-
verified at source level via typecheck); independent AUDIT via code-reviewer (clean); CHANGELOG
|
|
157
|
-
entry added; FID archived
|
|
158
|
-
|
|
159
|
-
## Perfection Loop
|
|
160
|
-
|
|
161
|
-
### Loop 1
|
|
162
|
-
|
|
163
|
-
- **RED:** Completed 2026-08-03 — findings CM-1…CM-9 catalogued with file:line evidence and runtime
|
|
164
|
-
verification (50/50 tests, clean typecheck, `Tree.delete` exists, wasm manifest inspected, SDK
|
|
165
|
-
caller + degradation path confirmed at `run-state.ts:171-174`).
|
|
166
|
-
- **GREEN:** Sequential thinking over each finding (see Summary). Missed-question check ("What
|
|
167
|
-
questions should I have asked when this FID was created, but failed to?"):
|
|
168
|
-
1. *Is the `call in {}` crash actually reachable with real tokens?* — Yes: `toString`/`valueOf`/
|
|
169
|
-
`hasOwnProperty` are both ordinary identifiers and Object.prototype keys; `constructor` is only
|
|
170
|
-
shielded by `IGNORE_TOKENS` scoring exclusion. The `callersByToken[call]` truthy-function path is
|
|
171
|
-
confirmed (`length 1 < 25` then missing `.includes` → TypeError).
|
|
172
|
-
2. *Does the crash surface loudly?* — No: the SDK catches it and continues with empty scores
|
|
173
|
-
(warning only). So CM-1 is feature-loss, not a hard crash — severity MEDIUM, not CRITICAL.
|
|
174
|
-
3. *Is the CM-2 retry safe against double-init?* — Yes: concurrent callers share one in-flight
|
|
175
|
-
promise (stored before await); only a rejection clears it for retry.
|
|
176
|
-
4. *Does collapsing `resolveWasmPath` change behavior?* — No: the loop always returned
|
|
177
|
-
`possiblePaths[0]` (its try/catch could never throw); collapse is behavior-identical.
|
|
178
|
-
- **AUDIT:** Document-audit before implementation: CM-1 fix is a one-token expression change
|
|
179
|
-
verified against `Object.prototype` member semantics; CM-2/CM-5 fixes follow the loader's existing
|
|
180
|
-
promise-dedup pattern (`parserReady`) and are race-checked (single in-flight promise, clear-on-
|
|
181
|
-
rejection); CM-6 additions reuse existing wasm/query pairs (no new grammars); CM-7's `skipped: true`
|
|
182
|
-
classification is consistent with `getFileTokenScores`'s `if (parsed.skipped) continue` guard;
|
|
183
|
-
CM-8 verified against the shipped type declarations. Call-graph evidence in Verification. Zero new
|
|
184
|
-
public exports beyond the optional `LanguageConfig.initPromise` field (backward-compatible).
|
|
185
|
-
- **SELF-CORRECT:** Initial scan flagged CM-6 as "language coverage gaps" broadly; corrected during
|
|
186
|
-
GREEN: the wasm manifest inspection bounded the fix to the four free JS/TS-family extensions and
|
|
187
|
-
moved C-family/Kotlin/Swift/etc. to documented non-goals (writing new grammars is a feature track,
|
|
188
|
-
not hygiene). CM-1 severity held at MEDIUM after confirming the SDK's catch-and-degrade path.
|
|
189
|
-
- **SELF-CORRECT (implementation):** CM-8 deviated from the FID's literal "use `tree.delete()`
|
|
190
|
-
directly" — the optional call was retained (`tree.delete?.()`): web-tree-sitter's Tree declares
|
|
191
|
-
`delete()`, but structurally-compatible test mocks omit it (8 mock tests failed on the direct call),
|
|
192
|
-
and the cast (the actual Law-6 violation) is gone. An editing slip during CM-8 briefly dropped the
|
|
193
|
-
call entirely (leaving only a comment — a production memory-leak regression); caught and restored in
|
|
194
|
-
the immediate follow-up edit. CM-7 was completed in response to the independent AUDIT: the TOCTOU
|
|
195
|
-
try/catch now wraps `statSync` as well as `readFileSync`, so a file that vanishes before the stat
|
|
196
|
-
also classifies as skipped rather than parsed. SDK `smoke-test-dist` was found to require a built
|
|
197
|
-
dist absent from the working tree — its CJS tree-sitter failure (`import_code_map is not defined`)
|
|
198
|
-
is pre-existing/environmental, not caused by this FID.
|
|
199
|
-
|
|
200
|
-
## Lessons Learned
|
|
201
|
-
|
|
202
|
-
1. A guard expression that is always-false (`call in {}`) is indistinguishable from no guard at all —
|
|
203
|
-
prototype-key collisions (`toString`, `valueOf`) are a real, common-input crash class. When
|
|
204
|
-
writing "skip Object.prototype keys" logic, verify with `Object.prototype` explicitly.
|
|
205
|
-
2. Module-level singletons that cache a rejected init promise turn a transient failure into permanent
|
|
206
|
-
silent disablement; clear-on-rejection + a one-time warn turns it into a retryable, diagnosable
|
|
207
|
-
condition.
|
|
208
|
-
|
|
209
|
-
## Resolution
|
|
210
|
-
|
|
211
|
-
- **Fixed By:** Savant (operator-approved implementation — FID presented for approval, approved, then
|
|
212
|
-
implemented)
|
|
213
|
-
- **Fixed Date:** 2026-08-03
|
|
214
|
-
- **Fix Description:** CM-1 — `parse.ts` `buildTokenCallers` guard `call in {}` → `call in
|
|
215
|
-
Object.prototype` (covers constructor/toString/valueOf/hasOwnProperty/etc.; the old guard only
|
|
216
|
-
caught `__proto__` and let a real `toString` collision crash the code map). CM-2 —
|
|
217
|
-
`UnifiedLanguageLoader` rewritten: lazy `initParser` sharing one in-flight promise across concurrent
|
|
218
|
-
callers, clearing it on rejection so a later call retries (no more permanent silent disablement),
|
|
219
|
-
plus a one-time `console.warn` in `getLanguageConfig` surfacing the cause; no eager module-scope
|
|
220
|
-
promise (removes the unhandled-rejection risk). CM-3 — dead wasm-path fallback loop collapsed to
|
|
221
|
-
`return possiblePaths[0]` (behavior-identical). CM-4 — no-op `catch (err) { throw err }` removed.
|
|
222
|
-
CM-5 — `LanguageConfig.initPromise` dedupes concurrent `createLanguageConfig` inits, cleared on
|
|
223
|
-
failure for retry. CM-6 — `.mjs`/`.cjs` → javascript and `.mts`/`.cts` → typescript rows added to
|
|
224
|
-
`languageTable` (same grammars; C-family/Kotlin/Swift/CSS documented out-of-scope). CM-7 — read
|
|
225
|
-
failures (provider-reject and fs paths) classify as `skipped: true` instead of consuming a parse
|
|
226
|
-
slot; the fs path now does stat+read in one try/catch window (TOCTOU closed, including a vanished-
|
|
227
|
-
before-stat file). CM-8 — the `as { delete?: … }` cast removed; `tree.delete?.()` retained (the
|
|
228
|
-
declared type has `delete()`, the optional call guards structurally-compatible mocks). CM-9 —
|
|
229
|
-
`getDirnameDynamically` wrapped in an outer try/catch (CSP/sandbox-safe, callers already fall back
|
|
230
|
-
to `process.cwd()`).
|
|
231
|
-
- **Tests Added:** `integration.test.ts` +1 — CM-1 regression: a `toString`-defined + `toString`-
|
|
232
|
-
called corpus must resolve without throwing and produce no `toString` caller entry (fails on the old
|
|
233
|
-
code). `languages.test.ts` — `languageTable.length` 10→12 and the `expectedLanguages` list extended
|
|
234
|
-
for `.mjs`/`.cjs`/`.mts`/`.cts`. Existing 8 mock parse tests exercised the CM-8 guard (they fail on
|
|
235
|
-
a direct `tree.delete()`), confirming the retained `?.`.
|
|
236
|
-
- **Verified By:** Savant — independent AUDIT via code-reviewer (clean — no CRITICAL/HIGH/MEDIUM;
|
|
237
|
-
CM-7 statSync window completed in response; CM-8 `?.` deviation documented). Gate suite: code-map
|
|
238
|
-
51 pass / 0 fail, code-map typecheck clean, full-repo `bun x eslint . --max-warnings 0` exit 0,
|
|
239
|
-
`bun run lint:md` exit 0, Prettier clean. SDK smoke caveat: `smoke-test-dist` requires a built dist
|
|
240
|
-
(absent in the tree); the CJS tree-sitter failure is pre-existing/environmental; the
|
|
241
|
-
`getFileTokenScores` export assertion holds at source level (typecheck).
|
|
242
|
-
- **Commit/PR:** None (working tree)
|
|
243
|
-
- **Archived:** Yes
|
|
@@ -1,296 +0,0 @@
|
|
|
1
|
-
# FID: Evals Benchmark Runner Audit (EV-1…EV-11)
|
|
2
|
-
|
|
3
|
-
**Filename:** `FID-2026-0803-007-evals-benchmark-audit-hygiene.md`
|
|
4
|
-
**ID:** FID-2026-0803-007
|
|
5
|
-
**Severity:** high
|
|
6
|
-
**Status:** verified
|
|
7
|
-
**Created:** 2026-08-03
|
|
8
|
-
**Author:** Savant
|
|
9
|
-
|
|
10
|
-
**Summary:**
|
|
11
|
-
Audit of the evals benchmark harness (`evals/benchmark/*` + `evals/logger.ts`) for
|
|
12
|
-
correctness, error handling, and type safety. Headline: **the evals package fails
|
|
13
|
-
typecheck** (`tsc --noEmit` exits 2) with two errors that are invisible to the
|
|
14
|
-
CI hard gate (AGENTS.md gates only sdk/common/agent-runtime/cli). Both broken
|
|
15
|
-
lines are botched "fixes" from a prior audit that were never verified to compile.
|
|
16
|
-
|
|
17
|
-
---
|
|
18
|
-
|
|
19
|
-
## Findings
|
|
20
|
-
|
|
21
|
-
### EV-1 (HIGH) — evals package typecheck is broken, invisible to CI
|
|
22
|
-
|
|
23
|
-
`bun run typecheck` exits **2** with two errors. Neither surfaced because evals is
|
|
24
|
-
not in the AGENTS.md hard gate, and both were introduced by the
|
|
25
|
-
FID-2026-0802-006 "fix" pass without a compile check.
|
|
26
|
-
|
|
27
|
-
### EV-1a (HIGH) — lying cast in trace-analyzer that fails tsc
|
|
28
|
-
|
|
29
|
-
`evals/benchmark/trace-analyzer.ts:222`:
|
|
30
|
-
|
|
31
|
-
```ts
|
|
32
|
-
return output.value as unknown as {
|
|
33
|
-
overallAnalysis: string
|
|
34
|
-
agentFeedback: unknown[]
|
|
35
|
-
}
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
The cast target `agentFeedback: unknown[]` **does not satisfy the declared return
|
|
39
|
-
type** (`Array<{ agentId; strengths; weaknesses; recommendations }>`) → TS2322.
|
|
40
|
-
The FID-0802-006 DEBT1 comment claims this was the "concrete cast instead of
|
|
41
|
-
`any`" fix, but it both weakens the type and does not compile. Downstream,
|
|
42
|
-
`format-output.ts:159-193` (`formatTraceAnalysis`) reads `feedback.agentId` and
|
|
43
|
-
`feedback.strengths.length` directly — malformed output would TypeError.
|
|
44
|
-
|
|
45
|
-
**Fix:** define `TraceAnalyzerResultSchema` with zod (mirroring `JudgingResultSchema`
|
|
46
|
-
in judge.ts) and `safeParse` the value; on failure fall through to the existing
|
|
47
|
-
error branch (which already returns the correct fallback shape).
|
|
48
|
-
|
|
49
|
-
### EV-1b (HIGH) — pino "fix" that never compiled
|
|
50
|
-
|
|
51
|
-
`evals/logger.ts:21`:
|
|
52
|
-
|
|
53
|
-
```ts
|
|
54
|
-
}) => ReturnType<(typeof pino)['destination']>
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
`destination` does not exist on `typeof pino` in the installed pino 9.6 types →
|
|
58
|
-
TS2339:21:34. pino 9 removed static `destination`/`transport` from its type
|
|
59
|
-
declarations (they exist at runtime). The `PinoWithStaticDestination` intersection
|
|
60
|
-
references the missing member in its own return type.
|
|
61
|
-
|
|
62
|
-
**Fix:** import `DestinationStream` (exported — verified `pino.d.ts:282`) and type
|
|
63
|
-
the return as `DestinationStream`:
|
|
64
|
-
|
|
65
|
-
```ts
|
|
66
|
-
type PinoWithStaticDestination = typeof pino & {
|
|
67
|
-
destination: (opts: {
|
|
68
|
-
dest: string
|
|
69
|
-
mkdir: boolean
|
|
70
|
-
sync: boolean
|
|
71
|
-
}) => DestinationStream
|
|
72
|
-
}
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
### EV-2 (MEDIUM) — JudgingResultSchema defined but never used
|
|
76
|
-
|
|
77
|
-
`evals/benchmark/judge.ts:12` defines and exports `JudgingResultSchema`; the zod
|
|
78
|
-
schema is **dead code** — `runSingleJudge` at `:203` does
|
|
79
|
-
`judgeResult.output.value as JudgingResult` with zero runtime validation.
|
|
80
|
-
Malformed model output (missing `analysis`, string `overallScore`) flows straight
|
|
81
|
-
into score averaging → NaN aggregates, or a TypeError in
|
|
82
|
-
`format-output.ts:183-187`. The schema was clearly built for this purpose.
|
|
83
|
-
|
|
84
|
-
**Fix:** `const parsed = JudgingResultSchema.safeParse(judgeResult.output.value)`;
|
|
85
|
-
on failure log + `return null` (falls into the existing all-failed branch).
|
|
86
|
-
|
|
87
|
-
### EV-3 (MEDIUM) — timeouts don't abort the underlying work
|
|
88
|
-
|
|
89
|
-
`withTimeout` (`common/src/util/promise.ts:68`) races and rejects on timeout, but
|
|
90
|
-
the inner `client.run` promise **keeps executing** — a timed-out 20-min judge
|
|
91
|
-
keeps burning API dollars and keeps the event loop alive (process won't exit).
|
|
92
|
-
Call sites: `judge.ts:160` (20 min), `trace-analyzer.ts:187` (20 min),
|
|
93
|
-
`meta-analyzer.ts:198` (30 min), `agent-runner.ts:64` (60 min, wraps repo setup +
|
|
94
|
-
runner).
|
|
95
|
-
|
|
96
|
-
The SDK already supports abort: `sdk/src/run.ts:181` (`signal?: AbortSignal`),
|
|
97
|
-
`:294` and `:546` check `signal?.aborted`.
|
|
98
|
-
|
|
99
|
-
**Fix:**
|
|
100
|
-
|
|
101
|
-
- `judge.ts`, `trace-analyzer.ts`, `meta-analyzer.ts`: drop the `withTimeout`
|
|
102
|
-
wrapper; pass `signal: AbortSignal.timeout(<ms>)` in the `client.run` options.
|
|
103
|
-
On abort, `run()` rejects with an AbortError → existing catch branches handle it.
|
|
104
|
-
- `agent-runner.ts`: keep the outer `withTimeout` as the overall budget, and
|
|
105
|
-
additionally thread an `AbortSignal` into `SavantCodeRunner` (new optional
|
|
106
|
-
constructor opt) → its `client.run` call, so the inner LLM loop actually stops.
|
|
107
|
-
- **Out of scope (documented):** external CLI runners (claude/codex/opencode) —
|
|
108
|
-
those spawn child processes; kill semantics are a separate mechanism.
|
|
109
|
-
|
|
110
|
-
### EV-4 (MEDIUM) — dead, mislabeled judge agent
|
|
111
|
-
|
|
112
|
-
`judge.ts:134-136`: `judgeAgents['judge-sonnet']` has `id: 'judge-claude'`
|
|
113
|
-
(key/id mismatch), and only gpt+gemini are ever invoked (`:211-215`). The
|
|
114
|
-
"2 judges in parallel" comment is accurate — the sonnet entry is unreachable dead
|
|
115
|
-
code with a confusing name. `Object.values(judgeAgents)` also passes it as an
|
|
116
|
-
available definition on every run.
|
|
117
|
-
|
|
118
|
-
**Fix:** delete the `'judge-sonnet'` entry.
|
|
119
|
-
|
|
120
|
-
### EV-5 (MEDIUM) — median picker always favors the higher scorer
|
|
121
|
-
|
|
122
|
-
`judge.ts:276-277`: with 2 valid results sorted ascending,
|
|
123
|
-
`medianIndex = floor(2/2) = 1` → the analysis text always comes from the
|
|
124
|
-
*higher*-scoring judge, never the lower — a systematic bias when judges disagree.
|
|
125
|
-
|
|
126
|
-
**Fix:** `const medianIndex = Math.floor((sortedResults.length - 1) / 2)` — true
|
|
127
|
-
lower median (identical for odd n, conservative for even n; text cannot be
|
|
128
|
-
averaged).
|
|
129
|
-
|
|
130
|
-
### EV-6 (LOW) — `catch (error: any)` on exec failure
|
|
131
|
-
|
|
132
|
-
`agent-runner.ts:185`: the caught error from `execAsync` has
|
|
133
|
-
`code/stdout/stderr`. `any` bypasses the error contract.
|
|
134
|
-
|
|
135
|
-
**Fix:** `catch (error)` + narrow:
|
|
136
|
-
`const execError = error as { code?: number; stdout?: string; stderr?: string }`.
|
|
137
|
-
|
|
138
|
-
### EV-7 (LOW) — 9× `any[]` where `AgentDefinition[]` fits
|
|
139
|
-
|
|
140
|
-
`run-benchmark.ts:55,59`, `trace-analyzer.ts:118`, `agent-runner.ts:40`,
|
|
141
|
-
`lessons-extractor.ts:21`, `meta-analyzer.ts:151`, `eval-task-generator.ts:107`,
|
|
142
|
-
`runners/savant.ts:15,25` — all just pass agent definitions into `client.run`,
|
|
143
|
-
which already types them as `AgentDefinition[]` (SDK export, already imported in
|
|
144
|
-
every one of these files). Also `setup-test-repo.ts:44` (`options: any`) and
|
|
145
|
-
`gen-repo-eval.ts:30` (`(c: any)`).
|
|
146
|
-
|
|
147
|
-
**Fix:** replace with `AgentDefinition[]` / `{ sha: string }` / typed options.
|
|
148
|
-
Compiler-arbitrated (typecheck fails if any site needs more than the import).
|
|
149
|
-
|
|
150
|
-
### EV-8 (LOW) — untyped map callbacks in truncateTrace
|
|
151
|
-
|
|
152
|
-
`trace-utils.ts:14,18,38`: `(item: any)` / `(file: any)` in `truncateTrace` map
|
|
153
|
-
callbacks. The tool-result output union exists in the codebase.
|
|
154
|
-
|
|
155
|
-
**Fix:** type as the tool-result output item shape (narrowed local type) with the
|
|
156
|
-
`?.` access already present.
|
|
157
|
-
|
|
158
|
-
### EV-9 (LOW) — meta-analyzer cast feeds manual validation (downgraded)
|
|
159
|
-
|
|
160
|
-
`meta-analyzer.ts:278`: `output.value as unknown as Record<string, unknown>`.
|
|
161
|
-
0-EOF read shows the downstream code **already defensively validates** (typeof /
|
|
162
|
-
Array.isArray guards, string filters) — so this is NOT a crash path like EV-2.
|
|
163
|
-
|
|
164
|
-
**Fix:** for consistency with EV-1a/EV-2, define `MetaAnalyzerResultSchema` (zod)
|
|
165
|
-
and parse; or document the manual validation as intentional. Implement the zod
|
|
166
|
-
variant only if it lands cleanly with the EV-1a schema work; otherwise leave with
|
|
167
|
-
a confirming comment.
|
|
168
|
-
|
|
169
|
-
### EV-10 (LOW) — bare `catch {` swallows diagnostics
|
|
170
|
-
|
|
171
|
-
`analyze-task-scores.ts:98,165`, `filter-supplemental-files.ts:23,70`:
|
|
172
|
-
`catch {` with no error binding.
|
|
173
|
-
|
|
174
|
-
**Fix:** `catch (error)` + `console.warn`/`getErrorObject` (pattern already used
|
|
175
|
-
elsewhere in these files).
|
|
176
|
-
|
|
177
|
-
### EV-11 (LOW) — partial agent trace lost on timeout/error
|
|
178
|
-
|
|
179
|
-
`agent-runner.ts:141-149`: on abort/exception, `trace` stays empty and `cost`
|
|
180
|
-
stays 0 — up to 60 min of work discarded with no record of what the agent did
|
|
181
|
-
before dying. `SavantCodeRunner` collects `steps` locally and only returns them
|
|
182
|
-
on success.
|
|
183
|
-
|
|
184
|
-
**Fix:** add optional `traceSink?: AgentStep[]` constructor opt to
|
|
185
|
-
`SavantCodeRunner`; push each event to both local `steps` and the sink.
|
|
186
|
-
`agent-runner` passes its `trace` array → partial trace survives an abort, and
|
|
187
|
-
the existing error string is recorded.
|
|
188
|
-
|
|
189
|
-
---
|
|
190
|
-
|
|
191
|
-
## Perfection Loop trace (Loop 1)
|
|
192
|
-
|
|
193
|
-
- **RED** — Four-pass scan. All findings verified against live code: `tsc` run
|
|
194
|
-
twice (exit 2, both errors reproduced); `JudgingResultSchema` usage grep (only
|
|
195
|
-
definition + type-infer); `AbortSignal` support verified in `sdk/src/run.ts`
|
|
196
|
-
(181/294/546); pino `DestinationStream` export verified in `pino.d.ts:282`;
|
|
197
|
-
`Runner` interface + `SavantCodeRunner.run()` read 0-EOF; `localAgentDefinitions`
|
|
198
|
-
dataflow traced main.ts → run-benchmark → agent-runner → savant.ts (all `any[]`,
|
|
199
|
-
all feeding `client.run`'s typed param); `format-output.ts:159-193` consumer
|
|
200
|
-
confirmed. Zero CRITICAL; nothing data-destroying.
|
|
201
|
-
- **GREEN** — Missed-questions answered: *is the typecheck failure real or a
|
|
202
|
-
harness artifact?* (real — plain `tsc --noEmit -p .` exits 2); *would EV-2
|
|
203
|
-
crash or just produce NaN?* (both possible — NaN averages or a TypeError in
|
|
204
|
-
format-output); *is EV-3 worth SDK surgery?* (no — SDK already supports
|
|
205
|
-
`signal`); *does removing judge-sonnet change the 2-judge ensemble?* (no —
|
|
206
|
-
only gpt+gemini are ever invoked); *is EV-5's lower-median unbiased?* (no
|
|
207
|
-
selection scheme is unbiased for n=2; lower-median is deterministic and
|
|
208
|
-
conservative, and identical to current behavior for odd n).
|
|
209
|
-
- **AUDIT** — EV-1a/1b are compiler-arbitrated (typecheck fails if the fix is
|
|
210
|
-
wrong); EV-2 mirrors the already-present fallback branch (all-failed → zeroed
|
|
211
|
-
result); EV-3 abort path lands in existing catch branches (no new control
|
|
212
|
-
flow); EV-11's `traceSink` is a backward-compatible optional constructor opt
|
|
213
|
-
(existing callers unaffected); zod schemas follow the judge.ts pattern already
|
|
214
|
-
in the file. Zero new public SDK/config surface.
|
|
215
|
-
- **SELF-CORRECT** — EV-9 downgraded from "lying cast" to "defensive-validated,
|
|
216
|
-
optional schema" after the 0-EOF read of meta-analyzer.ts; EV-3 scoped to the
|
|
217
|
-
three direct `client.run` sites + SavantCodeRunner (external CLI runners
|
|
218
|
-
documented out of scope); EV-5 fix chosen as lower-median index rather than
|
|
219
|
-
"average the two analyses" (text cannot be averaged); EV-11 fix shaped as a
|
|
220
|
-
trace sink rather than restructuring `RunnerResult`.
|
|
221
|
-
|
|
222
|
-
**Files touched on approval:** 10 files — `judge.ts`, `trace-analyzer.ts`,
|
|
223
|
-
`meta-analyzer.ts`, `agent-runner.ts`, `trace-utils.ts`, `logger.ts`,
|
|
224
|
-
`run-benchmark.ts`, `eval-task-generator.ts`, `lessons-extractor.ts`,
|
|
225
|
-
`runners/savant.ts` (+ `setup-test-repo.ts`/`gen-repo-eval.ts` if EV-7's one-off
|
|
226
|
-
anys are in scope).
|
|
227
|
-
|
|
228
|
-
**Verification on approval:** evals typecheck (must be exit 0 — the headline),
|
|
229
|
-
evals tests (67 v2 tests), sdk/common typechecks (touched files import from
|
|
230
|
-
them), full-repo ESLint `--max-warnings 0`, Prettier, markdownlint, independent
|
|
231
|
-
code-reviewer pass, CHANGELOG entry + LEARNINGS + session summary, archive.
|
|
232
|
-
|
|
233
|
-
---
|
|
234
|
-
|
|
235
|
-
## Resolution
|
|
236
|
-
|
|
237
|
-
**Implemented:** 2026-08-03, all EV-1…EV-11 as specified.
|
|
238
|
-
|
|
239
|
-
- **EV-1a** — `trace-analyzer.ts`: added `TraceAnalyzerResultSchema` (zod,
|
|
240
|
-
mirroring `JudgingResultSchema`) and `safeParse`; malformed output falls
|
|
241
|
-
through to the existing error branch. Replaces the `unknown[]` cast that
|
|
242
|
-
failed TS2322.
|
|
243
|
-
- **EV-1b** — `logger.ts`: `PinoWithStaticDestination.destination` now returns
|
|
244
|
-
the exported `DestinationStream` type (verified `pino.d.ts:861`; `pino()
|
|
245
|
-
accepts it at :828`). Fixes TS2339:21:34.
|
|
246
|
-
- **EV-2** — `judge.ts`: `JudgingResultSchema.safeParse` in `runSingleJudge`;
|
|
247
|
-
failure → `return null` → existing all-failed branch.
|
|
248
|
-
- **EV-3** — `judge.ts`/`trace-analyzer.ts`/`meta-analyzer.ts`/`lessons-extractor.ts`:
|
|
249
|
-
`withTimeout(client.run(...))` replaced with `signal: AbortSignal.timeout(...)`
|
|
250
|
-
(SDK already supports abort — `sdk/src/run.ts:181/294/546`); `agent-runner.ts`
|
|
251
|
-
keeps the outer `withTimeout` and additionally threads a 60-min
|
|
252
|
-
`AbortSignal.timeout` + `traceSink` into `SavantCodeRunner` → its `client.run`.
|
|
253
|
-
**Recorded extension:** `lessons-extractor.ts:197` had the identical
|
|
254
|
-
`withTimeout` pattern (missed in the scan) and was fixed for consistency.
|
|
255
|
-
**Recorded nuance:** the abort error message replaces the descriptive
|
|
256
|
-
"timed out after N minutes" text in logs — acceptable.
|
|
257
|
-
- **EV-4** — `judge.ts`: `'judge-sonnet'` entry deleted (`Object.values` now
|
|
258
|
-
yields the 2 used judges).
|
|
259
|
-
- **EV-5** — `judge.ts`: `Math.floor((n-1)/2)` (true lower median).
|
|
260
|
-
**Recorded behavior change:** for n=2 the analysis text now comes from the
|
|
261
|
-
lower scorer — deliberate per the approved spec.
|
|
262
|
-
- **EV-6** — `agent-runner.ts`: `catch (error: any)` → narrowed
|
|
263
|
-
`{ code?; stdout?; stderr?; message? }`.
|
|
264
|
-
- **EV-7** — `any[]` → `AgentDefinition[]` at 9 sites + `options: any` →
|
|
265
|
-
`ExecFileSyncOptions` + `(c: any)` → `{ sha: string }`. Boundary verified:
|
|
266
|
-
`LoadedAgentDefinition extends AgentDefinition`.
|
|
267
|
-
- **EV-8** — `trace-utils.ts`: typed with `ToolResultOutput` +
|
|
268
|
-
`isJsonObject` guard; truncation semantics preserved.
|
|
269
|
-
- **EV-9** — `meta-analyzer.ts`: confirming comment only (manual defensive
|
|
270
|
-
validation is intentional — the FID's documented fallback branch).
|
|
271
|
-
- **EV-10** — `analyze-task-scores.ts:98,165`: `catch (error)` +
|
|
272
|
-
`console.warn`. **Recorded deviation:** the two `filter-supplemental-files.ts`
|
|
273
|
-
sites are expected-failure probes (file-not-at-commit / commit-may-already-
|
|
274
|
-
exist) — a warn per missing file would spam, so bare `catch {` retained with
|
|
275
|
-
intent comments instead of the FID's blanket `catch (error) + warn`.
|
|
276
|
-
- **EV-11** — `SavantCodeRunner` gains optional `traceSink?: AgentStep[]`;
|
|
277
|
-
`agent-runner.ts` passes its `trace` so partial steps survive an abort, and
|
|
278
|
-
skips the success-path push for savant (no double-push — keyed on
|
|
279
|
-
`externalAgentType`).
|
|
280
|
-
|
|
281
|
-
**Verification (all green):**
|
|
282
|
-
|
|
283
|
-
- **evals typecheck: exit 0** (was 2 — the headline fix)
|
|
284
|
-
- evals tests: 67 pass / 0 fail · sdk + common typechecks: 0 errors
|
|
285
|
-
- full-repo ESLint `--max-warnings 0`: exit 0 · Prettier: clean · markdownlint: exit 0
|
|
286
|
-
- Independent code review (code-reviewer-deepseek-flash): clean — no
|
|
287
|
-
CRITICAL/HIGH/MEDIUM; three recorded notes above all captured in this Resolution.
|
|
288
|
-
|
|
289
|
-
**SELF-CORRECT during implementation:**
|
|
290
|
-
- EV-10 `filter-supplemental-files.ts` narrowed from "add warn everywhere" to
|
|
291
|
-
"diagnostics for real failures, intent comments for expected-failure probes".
|
|
292
|
-
- EV-3 scope extended to `lessons-extractor.ts` (identical pattern discovered).
|
|
293
|
-
- EV-11 shaped as a `traceSink` (backward-compatible optional ctor opt) with a
|
|
294
|
-
double-push guard instead of restructuring `RunnerResult`.
|
|
295
|
-
|
|
296
|
-
**Fixed Date:** 2026-08-03 · **Author:** Savant
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
# FID: ECHO Enforcement Layer Documentation Drift (EC-1..EC-4)
|
|
2
|
-
|
|
3
|
-
**Filename:** `FID-2026-0803-009-echo-enforcement-doc-drift.md`
|
|
4
|
-
**ID:** FID-2026-0803-009
|
|
5
|
-
**Severity:** low
|
|
6
|
-
**Status:** analyzed
|
|
7
|
-
**Created:** 2026-08-03
|
|
8
|
-
**Author:** Savant
|
|
9
|
-
|
|
10
|
-
**Summary:**
|
|
11
|
-
Audit of the ECHO Protocol enforcement layer (`agents/savant/savant.ts`, `protocol.config.yaml`,
|
|
12
|
-
`ARCHITECTURE.md`, `ECHO.md` v0.2.0) found the *runtime* enforcement fully ECHO-compliant (FSM gating in
|
|
13
|
-
`tool-executor.ts:386-467`, SoD holds — Forge has no bash, Detective has no write tools, Verifier is zero-tool) with
|
|
14
|
-
**4 LOW documentation-drift items** in the bootstrap doc `ECHO.md` and one config comment. No CRITICAL/HIGH/MEDIUM.
|
|
15
|
-
|
|
16
|
-
---
|
|
17
|
-
|
|
18
|
-
## RED — Findings
|
|
19
|
-
|
|
20
|
-
### EC-1 (LOW) — ECHO.md Researcher row is stale
|
|
21
|
-
|
|
22
|
-
`ECHO.md:64` lists the Researcher tools as `web_search, read_url` only. There are **two** researcher agents:
|
|
23
|
-
`researcher-web` (`toolNames: ['web_search', 'read_url']`, researcher-web.ts:21) and `researcher-docs`
|
|
24
|
-
(`toolNames: ['read_docs']`, researcher-docs.ts:22). Since ECHO.md is the bootstrap doc the Orchestrator reads, it
|
|
25
|
-
never learns `read_docs` exists. `ARCHITECTURE.md:33` already documents this correctly
|
|
26
|
-
(`web_search, read_url (web); read_docs (docs)`).
|
|
27
|
-
|
|
28
|
-
### EC-2 (LOW) — ECHO.md "9 specialized agents" omits the 4 infra spawnables
|
|
29
|
-
|
|
30
|
-
`ECHO.md:49-51` states the harness "enforces the Perfection Loop through 9 specialized agents", but `savant.ts:123-137`
|
|
31
|
-
`spawnableAgents` actually lists **13**: the 9 canonical + `basher`, `tmux-cli`, `browser-use`, `context-pruner`
|
|
32
|
-
(infrastructure helpers). `ARCHITECTURE.md:212-238` covers this ("Helper Tool Libraries (Filesystem-Only)") and
|
|
33
|
-
explicitly warns "Future checklists/audits should not confuse them." ECHO.md is silent on the distinction.
|
|
34
|
-
|
|
35
|
-
### EC-3 (LOW) — ECHO.md Forge "Restricted Tools" cell lists bash it never has
|
|
36
|
-
|
|
37
|
-
`ECHO.md:59` Forge restricted cell reads `spawn_agents, bash (destructive), ask_user`. `forge.ts:33` is
|
|
38
|
-
`toolNames: ['write_file', 'str_replace', 'set_output']` with **zero** `bash` references in the file — bash is never
|
|
39
|
-
granted, so listing it as "restricted" is misleading for a bootstrap doc. The SoD table (ECHO.md:72) correctly says
|
|
40
|
-
"No bash (test) access".
|
|
41
|
-
|
|
42
|
-
### EC-4 (LOW) — protocol.config.yaml `commands.build` is a partial build
|
|
43
|
-
|
|
44
|
-
`protocol.config.yaml:28` `build: 'bun run ci'` compiles only SDK + Savant-Free (`package.json:29`:
|
|
45
|
-
`ci: "bun run build:sdk && bun run build:savant-free"`) — the CLI, agent-runtime, code-map, database, and
|
|
46
|
-
llm-providers are not compiled. The inline comment acknowledges this ("use type_check + lint_md for quality gates"),
|
|
47
|
-
but ECHO Law 1 defines `commands.build` as "your compile/build command". Verified: **no code reads `commands.build`**
|
|
48
|
-
— it is a pure documentation surface for agents, so a comment fix is safe and sufficient.
|
|
49
|
-
|
|
50
|
-
---
|
|
51
|
-
|
|
52
|
-
## GREEN — Proposed Fixes (minimal, docs/config only)
|
|
53
|
-
|
|
54
|
-
| # | File | Change |
|
|
55
|
-
|---|---|---|
|
|
56
|
-
| **EC-1** | `ECHO.md:64` | Researcher tools cell: `web_search, read_url` → `web_search, read_url (web); read_docs (docs)` (match ARCHITECTURE.md:33) |
|
|
57
|
-
| **EC-2** | `ECHO.md:49-51` | Add footnote after roster intro: 4 infra spawnables (`basher`, `tmux-cli`, `browser-use`, `context-pruner`) are helper/infra agents not in the 9-agent roster — see ARCHITECTURE.md → Helper Tool Libraries |
|
|
58
|
-
| **EC-3** | `ECHO.md:59` | Forge restricted cell: `spawn_agents, bash (destructive), ask_user` → `spawn_agents, ask_user` (bash never granted) |
|
|
59
|
-
| **EC-4** | `protocol.config.yaml:28` | Rewrite comment: build = release-artifact build (SDK + Savant-Free); full 9-workspace compile gate is `type_check` |
|
|
60
|
-
|
|
61
|
-
**Rejected alternatives (recorded):**
|
|
62
|
-
|
|
63
|
-
- Changing `commands.build` value to the full `type_check` chain — rejected: `bun run ci` is the release-pipeline
|
|
64
|
-
entrypoint used by CI; the semantic split (build artifacts vs compile gate) is the correct model, it only needed
|
|
65
|
-
documentation. Comment-only fix, zero runtime risk.
|
|
66
|
-
- Deleting/rewriting the ECHO.md roster table wholesale — rejected: 7/9 rows are accurate; only Researcher (EC-1) and
|
|
67
|
-
Forge restricted cell (EC-3) need edits. Minimal-change principle (Law: MINIMAL changes).
|
|
68
|
-
|
|
69
|
-
---
|
|
70
|
-
|
|
71
|
-
## AUDIT — Verification Plan
|
|
72
|
-
|
|
73
|
-
1. **markdownlint** on `ECHO.md` (`bun run lint:md`) — table edits must not break MD tables (MD055/MD056).
|
|
74
|
-
2. **YAML parse** of `protocol.config.yaml` (`bun -e` with `yaml` pkg) — comment rewrite must not break the file.
|
|
75
|
-
3. **Table alignment** — re-grep the roster table: Researcher row contains `read_docs`, Forge cell no longer lists
|
|
76
|
-
`bash`, footnote present after intro.
|
|
77
|
-
4. **No stale refs** — confirm no other tracked `.md` repeats the stale `web_search, read_url` Researcher cell
|
|
78
|
-
(known: only ECHO.md:64; ARCHITECTURE.md:33 is already correct).
|
|
79
|
-
5. **No code change** — this FID touches docs/config only; typecheck not required (comment-only + markdown edits).
|
|
80
|
-
|
|
81
|
-
**Double-audit requirement:** static (grep verification) + runtime (markdownlint + YAML parse) — two independent
|
|
82
|
-
methods per AUDIT phase.
|
|
83
|
-
|
|
84
|
-
---
|
|
85
|
-
|
|
86
|
-
## Resolution
|
|
87
|
-
|
|
88
|
-
**Status:** verified — **Fixed Date:** 2026-08-03 · **Verified By:** Savant
|
|
89
|
-
(double audit: static grep + markdownlint/YAML parse)
|
|
90
|
-
|
|
91
|
-
**Changes applied (all 4, per approved GREEN section):**
|
|
92
|
-
|
|
93
|
-
- **EC-1** — `ECHO.md:69` Researcher row tools cell → `web_search, read_url (web); read_docs (docs)`
|
|
94
|
-
(matches ARCHITECTURE.md:33 and the two real researcher agents).
|
|
95
|
-
- **EC-2** — `ECHO.md:55-58` added roster-intro footnote: 4 infra spawnables (`basher`, `tmux-cli`,
|
|
96
|
-
`browser-use`, `context-pruner`) are NOT independent ECHO conversation roles → ARCHITECTURE.md →
|
|
97
|
-
"Helper Tool Libraries".
|
|
98
|
-
- **EC-3** — `ECHO.md:64` Forge restricted cell → `spawn_agents, ask_user` (bash never granted;
|
|
99
|
-
forge.ts:33 has zero bash). SoD table row (ECHO.md:77 "No bash (test) access") now consistent with the roster.
|
|
100
|
-
- **EC-4** — `protocol.config.yaml:28` build comment rewritten: release-artifact build (SDK + Savant-Free)
|
|
101
|
-
vs. full 9-workspace compile gate (`type_check`).
|
|
102
|
-
|
|
103
|
-
**Verification (double audit — two independent methods):**
|
|
104
|
-
|
|
105
|
-
1. **Static grep** — each edit verified in place: Researcher row carries `read_docs (docs)`, Forge cell no
|
|
106
|
-
longer lists `bash`, footnote present after roster intro, `commands.build` comment rewritten. No other
|
|
107
|
-
tracked `.md` carries the stale Researcher cell (only ARCHITECTURE.md:33, already correct).
|
|
108
|
-
2. **Runtime** — `bun run lint:md` exits 0 after FID spacing fixes; `protocol.config.yaml` parses via `yaml`
|
|
109
|
-
pkg (`YAML_OK commands.build = bun run ci`).
|
|
110
|
-
|
|
111
|
-
**Scope guard:** doc/config only — no TypeScript touched, so typecheck not required (per AUDIT plan item 5).
|
|
112
|
-
No code changed; nothing to call-graph verify (Law 4 N/A).
|