micro-models-agent 2.16.1 → 2.17.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +34 -0
- package/README.md +8 -3
- package/dist/assets/app.js +1 -314
- package/dist/assets/hljs.js +5 -1244
- package/dist/assets/index.html +11 -0
- package/dist/assets/js/api.js +1 -28
- package/dist/assets/js/core/menus.js +1 -0
- package/dist/assets/js/core/store/feed.js +1 -0
- package/dist/assets/js/core/store/index.js +1 -0
- package/dist/assets/js/core/store/session.js +1 -0
- package/dist/assets/js/core/store/settings.js +1 -0
- package/dist/assets/js/core/store/tabs.js +1 -0
- package/dist/assets/js/dialog.js +1 -105
- package/dist/assets/js/dom.js +1 -178
- package/dist/assets/js/feed/core.js +1 -0
- package/dist/assets/js/feed/history.js +1 -0
- package/dist/assets/js/feed/plan.js +1 -0
- package/dist/assets/js/feed/question.js +3 -0
- package/dist/assets/js/feed/sidebar.js +1 -0
- package/dist/assets/js/feed/stream.js +1 -0
- package/dist/assets/js/feed/turn.js +5 -0
- package/dist/assets/js/feed.js +1 -1250
- package/dist/assets/js/format.js +2 -122
- package/dist/assets/js/i18n.js +1 -46
- package/dist/assets/js/rail.js +1 -114
- package/dist/assets/js/session/cmdk.js +1 -0
- package/dist/assets/js/session/composer.js +1 -0
- package/dist/assets/js/session/sessions-menu.js +1 -0
- package/dist/assets/js/session/tabs.js +1 -0
- package/dist/assets/js/settings/controls.js +1 -0
- package/dist/assets/js/settings/editors.js +1 -0
- package/dist/assets/js/settings/form.js +1 -0
- package/dist/assets/js/settings/modal.js +1 -0
- package/dist/assets/js/settings/panels.js +1 -0
- package/dist/assets/js/settings/providers.js +1 -0
- package/dist/assets/js/settings/search.js +1 -0
- package/dist/assets/js/settings/subdialog.js +1 -0
- package/dist/assets/js/settings/write.js +1 -0
- package/dist/assets/js/settings.js +1 -1914
- package/dist/assets/js/sidebar/core.js +1 -0
- package/dist/assets/js/sidebar/lsp.js +2 -0
- package/dist/assets/js/sidebar/map.js +1 -0
- package/dist/assets/js/sidebar/state.js +1 -0
- package/dist/assets/js/sidebar/trace.js +5 -0
- package/dist/assets/js/sidebar.js +1 -705
- package/dist/assets/js/store.js +1 -82
- package/dist/assets/js/subdialog.js +1 -0
- package/dist/assets/md.js +1 -291
- package/dist/assets/setup.js +3 -816
- package/dist/assets/smd.js +29 -1665
- package/dist/assets/styles.css +1 -1598
- package/dist/certification/certifications.json +1 -494
- package/dist/i18n/en.json +1 -1851
- package/dist/i18n/ru.json +1 -1854
- package/dist/main.js +815 -55797
- package/dist/modules/browser/bridge-server.mjs +2 -252
- package/package.json +10 -5
- package/dist/assets/js/settings-controls.js +0 -452
- package/dist/assets/js/tabs.js +0 -867
- package/dist/cli/cache-line.js +0 -31
- package/dist/cli/command-suggest.js +0 -39
- package/dist/cli/commands.js +0 -781
- package/dist/cli/completer.js +0 -268
- package/dist/cli/index.js +0 -3
- package/dist/cli/json-payload.js +0 -32
- package/dist/cli/main.js +0 -346
- package/dist/cli/onboarding-commands.js +0 -126
- package/dist/cli/plugin-commands.js +0 -38
- package/dist/cli/relaunch.js +0 -40
- package/dist/cli/repl-commands-lsp.js +0 -75
- package/dist/cli/repl-commands-skills.js +0 -105
- package/dist/cli/repl-commands.js +0 -1218
- package/dist/cli/repl.js +0 -1238
- package/dist/cli/run-result.js +0 -38
- package/dist/cli/security-commands.js +0 -177
- package/dist/cli/setup-order.js +0 -6
- package/dist/cli/setup-prompt.js +0 -50
- package/dist/cli/setup.js +0 -161
- package/dist/cli/web-command.js +0 -98
- package/dist/config/budget.js +0 -48
- package/dist/config/config.js +0 -345
- package/dist/config/defaults.js +0 -197
- package/dist/config/domains.js +0 -135
- package/dist/config/env.js +0 -46
- package/dist/config/experts.js +0 -17
- package/dist/config/index.js +0 -5
- package/dist/config/paths.js +0 -56
- package/dist/config/redact.js +0 -44
- package/dist/config/registry-extra.js +0 -334
- package/dist/config/registry.js +0 -584
- package/dist/config/security.js +0 -212
- package/dist/config/timeouts.js +0 -74
- package/dist/config/types.js +0 -1
- package/dist/config/utils.js +0 -57
- package/dist/core/agent/artifact-progress.js +0 -59
- package/dist/core/agent/artifact-resolve.js +0 -79
- package/dist/core/agent/audit-gate.js +0 -53
- package/dist/core/agent/compaction.js +0 -89
- package/dist/core/agent/constants.js +0 -90
- package/dist/core/agent/context-log.js +0 -454
- package/dist/core/agent/context-renderer.js +0 -45
- package/dist/core/agent/critic-gate.js +0 -132
- package/dist/core/agent/hallucination-gate.js +0 -197
- package/dist/core/agent/loop-state.js +0 -68
- package/dist/core/agent/prefix-monitor.js +0 -101
- package/dist/core/agent/reasoning-resolver.js +0 -65
- package/dist/core/agent/token-tracker.js +0 -99
- package/dist/core/agent/tool-batch.js +0 -312
- package/dist/core/agent/tool-images.js +0 -18
- package/dist/core/agent/tool-output.js +0 -116
- package/dist/core/agent/tool-pairing.js +0 -60
- package/dist/core/agent-moe.js +0 -248
- package/dist/core/agent.js +0 -1299
- package/dist/core/bootstrap/agent-phase.js +0 -66
- package/dist/core/bootstrap/config-phase.js +0 -86
- package/dist/core/bootstrap/modules-phase.js +0 -269
- package/dist/core/bootstrap/provider-phase.js +0 -183
- package/dist/core/bootstrap/session-phase.js +0 -204
- package/dist/core/bootstrap/state.js +0 -94
- package/dist/core/bootstrap/workspace-phase.js +0 -115
- package/dist/core/bootstrap.js +0 -112
- package/dist/core/crash-handler.js +0 -62
- package/dist/core/environment.js +0 -224
- package/dist/core/host-plan.js +0 -43
- package/dist/core/host.js +0 -23
- package/dist/core/index.js +0 -3
- package/dist/core/prompt-builder.js +0 -95
- package/dist/core/prompt-overflow.js +0 -306
- package/dist/core/session-logger.js +0 -375
- package/dist/core/system-prompt.js +0 -117
- package/dist/core/types.js +0 -1
- package/dist/core/version.js +0 -28
- package/dist/core/web-host.js +0 -34
- package/dist/core/workspace.js +0 -80
- package/dist/i18n/index.js +0 -80
- package/dist/index.js +0 -30
- package/dist/llm/cache-usage.js +0 -76
- package/dist/llm/image-utils.js +0 -138
- package/dist/llm/index.js +0 -4
- package/dist/llm/llm-errors.js +0 -50
- package/dist/llm/model-loader.js +0 -86
- package/dist/llm/models-dev.js +0 -121
- package/dist/llm/openai-compat.js +0 -756
- package/dist/llm/orchestrator.js +0 -294
- package/dist/llm/provider-budget.js +0 -68
- package/dist/llm/provider-context.js +0 -233
- package/dist/llm/provider.js +0 -9
- package/dist/llm/response.js +0 -44
- package/dist/llm/stream-state.js +0 -26
- package/dist/llm/token-counter.js +0 -83
- package/dist/llm/types.js +0 -1
- package/dist/logger/app-logger.js +0 -212
- package/dist/logger/file-log.js +0 -160
- package/dist/logger/index.js +0 -2
- package/dist/migration/backup.js +0 -56
- package/dist/migration/detect.js +0 -61
- package/dist/migration/index.js +0 -3
- package/dist/modules/artifacts/store.js +0 -62
- package/dist/modules/browser/actions.js +0 -79
- package/dist/modules/browser/bridge-client.js +0 -203
- package/dist/modules/browser/bridge-path.js +0 -10
- package/dist/modules/browser/console-buffer.js +0 -37
- package/dist/modules/browser/cookie-store.js +0 -29
- package/dist/modules/browser/driver-types.js +0 -1
- package/dist/modules/browser/driver.js +0 -186
- package/dist/modules/browser/index.js +0 -9
- package/dist/modules/browser/module.js +0 -30
- package/dist/modules/browser/session.js +0 -322
- package/dist/modules/browser/snapshot.js +0 -154
- package/dist/modules/browser/types.js +0 -13
- package/dist/modules/certification/cli.js +0 -264
- package/dist/modules/certification/fact-checker.js +0 -90
- package/dist/modules/certification/loader.js +0 -127
- package/dist/modules/certification/manifest.js +0 -231
- package/dist/modules/certification/runner.js +0 -233
- package/dist/modules/certification/scenarios.js +0 -586
- package/dist/modules/certification/syntax-scenarios.js +0 -50
- package/dist/modules/certification/types.js +0 -1
- package/dist/modules/context/chunk-query.js +0 -122
- package/dist/modules/context/fact-extractor.js +0 -170
- package/dist/modules/context/history.js +0 -15
- package/dist/modules/context/index.js +0 -2
- package/dist/modules/context/manager.js +0 -482
- package/dist/modules/critic/client.js +0 -176
- package/dist/modules/critic/evidence.js +0 -81
- package/dist/modules/critic/provider.js +0 -45
- package/dist/modules/critic/tools.js +0 -78
- package/dist/modules/critic/types.js +0 -1
- package/dist/modules/execution/audit-runners.js +0 -206
- package/dist/modules/execution/auditor.js +0 -222
- package/dist/modules/execution/execution-plugin.js +0 -478
- package/dist/modules/execution/index.js +0 -8
- package/dist/modules/execution/input-from.js +0 -70
- package/dist/modules/execution/module.js +0 -891
- package/dist/modules/execution/moe-executor.js +0 -443
- package/dist/modules/execution/plan-actions.js +0 -642
- package/dist/modules/execution/plan-checks.js +0 -35
- package/dist/modules/execution/plan-coverage.js +0 -71
- package/dist/modules/execution/plan-persister.js +0 -46
- package/dist/modules/execution/plan-steps.js +0 -31
- package/dist/modules/execution/plan-store.js +0 -274
- package/dist/modules/execution/plan-tool.js +0 -249
- package/dist/modules/execution/plan-validator.js +0 -197
- package/dist/modules/execution/planner.js +0 -103
- package/dist/modules/execution/stuck-detector.js +0 -834
- package/dist/modules/execution/tracker.js +0 -92
- package/dist/modules/execution/transient-error.js +0 -30
- package/dist/modules/execution/types.js +0 -1
- package/dist/modules/execution/verifier.js +0 -343
- package/dist/modules/execution/windows-commands.js +0 -52
- package/dist/modules/hallucination/artifact-claim.js +0 -93
- package/dist/modules/hallucination/confidence.js +0 -81
- package/dist/modules/hallucination/consistency.js +0 -37
- package/dist/modules/hallucination/detector.js +0 -57
- package/dist/modules/hallucination/factual.js +0 -205
- package/dist/modules/hallucination/index.js +0 -6
- package/dist/modules/hallucination/js-identifiers.js +0 -261
- package/dist/modules/hallucination/llm-judge.js +0 -116
- package/dist/modules/hallucination/success-claim.js +0 -59
- package/dist/modules/index.js +0 -5
- package/dist/modules/indexer/cache.js +0 -88
- package/dist/modules/indexer/index.js +0 -4
- package/dist/modules/indexer/map-command.js +0 -33
- package/dist/modules/indexer/map-select.js +0 -87
- package/dist/modules/indexer/module.js +0 -293
- package/dist/modules/indexer/project-profile.js +0 -184
- package/dist/modules/indexer/symbols.js +0 -189
- package/dist/modules/indexer/walker.js +0 -285
- package/dist/modules/lsp/check-tool.js +0 -61
- package/dist/modules/lsp/client.js +0 -406
- package/dist/modules/lsp/command.js +0 -53
- package/dist/modules/lsp/config.js +0 -189
- package/dist/modules/lsp/index.js +0 -4
- package/dist/modules/lsp/module.js +0 -295
- package/dist/modules/lsp/probe.js +0 -86
- package/dist/modules/lsp/project-root.js +0 -69
- package/dist/modules/lsp/startup-check.js +0 -154
- package/dist/modules/lsp/types.js +0 -1
- package/dist/modules/mcp/client.js +0 -445
- package/dist/modules/mcp/index.js +0 -4
- package/dist/modules/mcp/module.js +0 -295
- package/dist/modules/mcp/registry.js +0 -20
- package/dist/modules/memory/index.js +0 -2
- package/dist/modules/memory/module.js +0 -101
- package/dist/modules/memory/search.js +0 -45
- package/dist/modules/memory/store.js +0 -107
- package/dist/modules/onboarding/init.js +0 -47
- package/dist/modules/onboarding/meet.js +0 -30
- package/dist/modules/onboarding/mode.js +0 -30
- package/dist/modules/onboarding/prompts.js +0 -43
- package/dist/modules/pipelines/engine.js +0 -70
- package/dist/modules/pipelines/index.js +0 -4
- package/dist/modules/pipelines/parser.js +0 -59
- package/dist/modules/pipelines/template.js +0 -18
- package/dist/modules/plugins/builtin/lint-on-write.js +0 -377
- package/dist/modules/plugins/builtin/notify.js +0 -11
- package/dist/modules/plugins/index.js +0 -2
- package/dist/modules/plugins/loader.js +0 -85
- package/dist/modules/plugins/manager.js +0 -244
- package/dist/modules/plugins/types.js +0 -1
- package/dist/modules/pricing/index.js +0 -70
- package/dist/modules/pricing/prices.js +0 -147
- package/dist/modules/processes/detect.js +0 -34
- package/dist/modules/processes/index.js +0 -4
- package/dist/modules/processes/kill-tree.js +0 -52
- package/dist/modules/processes/registry.js +0 -294
- package/dist/modules/processes/runner.js +0 -23
- package/dist/modules/providers/cache.js +0 -23
- package/dist/modules/providers/capabilities.js +0 -28
- package/dist/modules/providers/create.js +0 -21
- package/dist/modules/providers/factory.js +0 -28
- package/dist/modules/providers/fallback.js +0 -81
- package/dist/modules/providers/health.js +0 -47
- package/dist/modules/providers/index.js +0 -6
- package/dist/modules/providers/manager.js +0 -207
- package/dist/modules/providers/naming.js +0 -15
- package/dist/modules/providers/preflight.js +0 -71
- package/dist/modules/providers/presets.js +0 -232
- package/dist/modules/providers/registry.js +0 -27
- package/dist/modules/providers/types.js +0 -1
- package/dist/modules/reasoning/policy.js +0 -42
- package/dist/modules/reasoning/probe.js +0 -116
- package/dist/modules/registry.js +0 -48
- package/dist/modules/security/audit-log.js +0 -119
- package/dist/modules/security/audit-notifier.js +0 -267
- package/dist/modules/security/command-validator.js +0 -272
- package/dist/modules/security/content-scanner.js +0 -53
- package/dist/modules/security/data-sanitizer.js +0 -82
- package/dist/modules/security/encryption.js +0 -216
- package/dist/modules/security/index.js +0 -15
- package/dist/modules/security/network-validator.js +0 -236
- package/dist/modules/security/path-validator.js +0 -261
- package/dist/modules/security/protected-paths.js +0 -73
- package/dist/modules/security/rate-limiter.js +0 -98
- package/dist/modules/security/security-policies.js +0 -499
- package/dist/modules/security/session-encryption.js +0 -182
- package/dist/modules/security/session-isolation.js +0 -75
- package/dist/modules/session/auto-name.js +0 -63
- package/dist/modules/session/export.js +0 -98
- package/dist/modules/session/index.js +0 -4
- package/dist/modules/session/manager.js +0 -234
- package/dist/modules/session/module.js +0 -33
- package/dist/modules/session/store.js +0 -295
- package/dist/modules/session/types.js +0 -1
- package/dist/modules/setup/answers.js +0 -35
- package/dist/modules/setup/apply.js +0 -79
- package/dist/modules/setup/discovery.js +0 -72
- package/dist/modules/skills/index.js +0 -3
- package/dist/modules/skills/loader.js +0 -86
- package/dist/modules/skills/matcher.js +0 -27
- package/dist/modules/skills/module.js +0 -141
- package/dist/modules/types.js +0 -1
- package/dist/modules/updater/changelog-reader.js +0 -93
- package/dist/modules/updater/checker.js +0 -101
- package/dist/modules/updater/dev-detect.js +0 -18
- package/dist/modules/updater/index.js +0 -4
- package/dist/modules/updater/module.js +0 -129
- package/dist/modules/user-profile/compressor.js +0 -18
- package/dist/modules/user-profile/index.js +0 -2
- package/dist/modules/user-profile/profile.js +0 -77
- package/dist/modules/webui/answer-api.js +0 -29
- package/dist/modules/webui/assets.js +0 -50
- package/dist/modules/webui/body.js +0 -21
- package/dist/modules/webui/commands-settings.js +0 -209
- package/dist/modules/webui/commands-shared.js +0 -60
- package/dist/modules/webui/commands.js +0 -174
- package/dist/modules/webui/config-api.js +0 -134
- package/dist/modules/webui/file-api.js +0 -202
- package/dist/modules/webui/forward.js +0 -159
- package/dist/modules/webui/history-api.js +0 -112
- package/dist/modules/webui/host-state.js +0 -60
- package/dist/modules/webui/i18n-api.js +0 -9
- package/dist/modules/webui/limits.js +0 -6
- package/dist/modules/webui/log-forward.js +0 -20
- package/dist/modules/webui/memory-commands.js +0 -64
- package/dist/modules/webui/model-cache.js +0 -18
- package/dist/modules/webui/module.js +0 -148
- package/dist/modules/webui/persist.js +0 -24
- package/dist/modules/webui/prompt-io.js +0 -97
- package/dist/modules/webui/providers-api.js +0 -337
- package/dist/modules/webui/providers-view.js +0 -56
- package/dist/modules/webui/reasoning-view.js +0 -15
- package/dist/modules/webui/run-agent.js +0 -81
- package/dist/modules/webui/server.js +0 -284
- package/dist/modules/webui/sessions-api.js +0 -178
- package/dist/modules/webui/settings-api.js +0 -561
- package/dist/modules/webui/setup-api.js +0 -201
- package/dist/modules/webui/state.js +0 -74
- package/dist/modules/webui/util.js +0 -261
- package/dist/output/bus.js +0 -37
- package/dist/output/channel.js +0 -285
- package/dist/output/format.js +0 -15
- package/dist/output/index.js +0 -8
- package/dist/output/json-sink.js +0 -24
- package/dist/output/machine.js +0 -9
- package/dist/output/session-sink.js +0 -27
- package/dist/output/types.js +0 -1
- package/dist/tools/approve.js +0 -41
- package/dist/tools/attach-image.js +0 -102
- package/dist/tools/auto-fixer.js +0 -180
- package/dist/tools/auto-tags.js +0 -83
- package/dist/tools/bash.js +0 -649
- package/dist/tools/browser.js +0 -160
- package/dist/tools/chunk-query.js +0 -112
- package/dist/tools/create-dir.js +0 -60
- package/dist/tools/delete-file.js +0 -67
- package/dist/tools/download-file.js +0 -142
- package/dist/tools/edit-file.js +0 -136
- package/dist/tools/enable-tools.js +0 -59
- package/dist/tools/executor.js +0 -304
- package/dist/tools/file-info.js +0 -49
- package/dist/tools/filter-tools.js +0 -17
- package/dist/tools/glob-tool.js +0 -37
- package/dist/tools/grep-tool.js +0 -142
- package/dist/tools/hidden-tools-block.js +0 -37
- package/dist/tools/index.js +0 -88
- package/dist/tools/list-dir.js +0 -53
- package/dist/tools/load-skill.js +0 -51
- package/dist/tools/mcp-call.js +0 -80
- package/dist/tools/meet-done.js +0 -14
- package/dist/tools/move-file.js +0 -94
- package/dist/tools/path-utils.js +0 -108
- package/dist/tools/pipeline-run.js +0 -167
- package/dist/tools/preview.js +0 -2
- package/dist/tools/process-ids.js +0 -31
- package/dist/tools/process-kill.js +0 -33
- package/dist/tools/process-list.js +0 -38
- package/dist/tools/process-log.js +0 -49
- package/dist/tools/process-wait.js +0 -63
- package/dist/tools/prompt-io.js +0 -29
- package/dist/tools/question.js +0 -288
- package/dist/tools/read-file.js +0 -200
- package/dist/tools/recall.js +0 -124
- package/dist/tools/registry.js +0 -48
- package/dist/tools/remember.js +0 -72
- package/dist/tools/scope-check.js +0 -32
- package/dist/tools/scope-request.js +0 -96
- package/dist/tools/search-history.js +0 -88
- package/dist/tools/session-info.js +0 -46
- package/dist/tools/set-thinking.js +0 -75
- package/dist/tools/subagent.js +0 -257
- package/dist/tools/syntax-validator.js +0 -379
- package/dist/tools/types.js +0 -1
- package/dist/tools/user-input.js +0 -134
- package/dist/tools/web-browse.js +0 -93
- package/dist/tools/web-fetch.js +0 -108
- package/dist/tools/web-search.js +0 -107
- package/dist/tools/write-file.js +0 -128
- package/dist/ui/action-log.js +0 -13
- package/dist/ui/box.js +0 -78
- package/dist/ui/colors.js +0 -6
- package/dist/ui/diff.js +0 -189
- package/dist/ui/index.js +0 -7
- package/dist/ui/line-editor.js +0 -1083
- package/dist/ui/line-math.js +0 -98
- package/dist/ui/md-formatter.js +0 -322
- package/dist/ui/output.js +0 -19
- package/dist/ui/plan-view.js +0 -109
- package/dist/ui/renderer.js +0 -589
- package/dist/ui/spinner.js +0 -91
- package/dist/ui/table.js +0 -142
- package/dist/ui/theme.js +0 -143
- package/dist/utils/child-run.js +0 -20
- package/dist/utils/error.js +0 -4
- package/dist/utils/index.js +0 -6
- package/dist/utils/retry.js +0 -17
- package/dist/utils/sleep.js +0 -23
- package/dist/utils/truncate.js +0 -9
package/dist/tools/auto-fixer.js
DELETED
|
@@ -1,180 +0,0 @@
|
|
|
1
|
-
/** Автофиксы LSP-ошибок tsc (конфликты импортов, неиспользуемые). */
|
|
2
|
-
import { extname } from "path";
|
|
3
|
-
/** Коды LSP-ошибок, поддающиеся автофиксу. */
|
|
4
|
-
const AUTO_FIXABLE_CODES = new Set([
|
|
5
|
-
2307, // Cannot find module (import missing)
|
|
6
|
-
2440, // Import declaration conflicts with local declaration
|
|
7
|
-
6133, // Variable is declared but its value is never read
|
|
8
|
-
2769, // No overload matches this call (simple type mismatches)
|
|
9
|
-
]);
|
|
10
|
-
/**
|
|
11
|
-
* Извлекает LSP-ошибки из вывода tsc.
|
|
12
|
-
* Формат: file(line,col): error TSxxxx: message. Возврат: список ошибок.
|
|
13
|
-
*/
|
|
14
|
-
export function parseTscOutput(output) {
|
|
15
|
-
const errors = [];
|
|
16
|
-
const regex = /(.+?)\((\d+),(\d+)\): error TS(\d+): (.+)/g;
|
|
17
|
-
let match;
|
|
18
|
-
while ((match = regex.exec(output))) {
|
|
19
|
-
errors.push({
|
|
20
|
-
file: match[1],
|
|
21
|
-
line: parseInt(match[2], 10),
|
|
22
|
-
column: parseInt(match[3], 10),
|
|
23
|
-
length: 0, // tsc doesn't provide length
|
|
24
|
-
code: parseInt(match[4], 10),
|
|
25
|
-
message: match[5],
|
|
26
|
-
severity: "error",
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
return errors;
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Пробует автофиксить LSP-ошибки в TS/JS. Только частые безопасные паттерны:
|
|
33
|
-
* - TS2440: конфликт импорта → переименование через `as`;
|
|
34
|
-
* - TS6133: неиспользуемый импорт → удаление из списка.
|
|
35
|
-
*/
|
|
36
|
-
export function autoFixErrors(filePath, content, errors) {
|
|
37
|
-
const ext = extname(filePath).toLowerCase();
|
|
38
|
-
const isTsFile = [".ts", ".tsx", ".mts", ".cts"].includes(ext);
|
|
39
|
-
const isJsFile = [".js", ".jsx", ".mjs", ".cjs"].includes(ext);
|
|
40
|
-
if (!isTsFile && !isJsFile) {
|
|
41
|
-
return { fixed: false, newContent: content, applied: [], remaining: errors };
|
|
42
|
-
}
|
|
43
|
-
let newContent = content;
|
|
44
|
-
const applied = [];
|
|
45
|
-
const remaining = [];
|
|
46
|
-
for (const error of errors) {
|
|
47
|
-
if (!AUTO_FIXABLE_CODES.has(error.code)) {
|
|
48
|
-
remaining.push(error);
|
|
49
|
-
continue;
|
|
50
|
-
}
|
|
51
|
-
try {
|
|
52
|
-
const result = fixError(newContent, error);
|
|
53
|
-
if (result.fixed) {
|
|
54
|
-
newContent = result.newContent;
|
|
55
|
-
applied.push(`TS${error.code}: ${error.message.slice(0, 50)}`);
|
|
56
|
-
}
|
|
57
|
-
else {
|
|
58
|
-
remaining.push(error);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
catch {
|
|
62
|
-
remaining.push(error);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
return {
|
|
66
|
-
fixed: applied.length > 0,
|
|
67
|
-
newContent,
|
|
68
|
-
applied,
|
|
69
|
-
remaining,
|
|
70
|
-
};
|
|
71
|
-
}
|
|
72
|
-
/** Пробует починить одну LSP-ошибку. */
|
|
73
|
-
function fixError(content, error) {
|
|
74
|
-
const lines = content.split("\n");
|
|
75
|
-
const lineIndex = error.line - 1;
|
|
76
|
-
if (lineIndex < 0 || lineIndex >= lines.length) {
|
|
77
|
-
return { fixed: false, newContent: content };
|
|
78
|
-
}
|
|
79
|
-
const _line = lines[lineIndex];
|
|
80
|
-
switch (error.code) {
|
|
81
|
-
case 2440: // Import declaration conflicts with local declaration
|
|
82
|
-
return fixImportConflict(lines, lineIndex, error);
|
|
83
|
-
case 6133: // Variable is declared but its value is never read
|
|
84
|
-
return fixUnusedImport(lines, lineIndex, error);
|
|
85
|
-
default:
|
|
86
|
-
return { fixed: false, newContent: content };
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* Фикс TS2440: конфликт импорта с локальной декларацией.
|
|
91
|
-
* Стратегия: добавить `as LocalName` к импорту (`foo` → `foo as fooImport`).
|
|
92
|
-
*/
|
|
93
|
-
function fixImportConflict(lines, lineIndex, error) {
|
|
94
|
-
const _line = lines[lineIndex];
|
|
95
|
-
// Конфликтное имя — из текста ошибки.
|
|
96
|
-
const nameMatch = error.message.match(/Import declaration conflicts with local declaration of '(\w+)'/);
|
|
97
|
-
if (!nameMatch) {
|
|
98
|
-
return { fixed: false, newContent: lines.join("\n") };
|
|
99
|
-
}
|
|
100
|
-
const conflictingName = nameMatch[1];
|
|
101
|
-
// Строка импорта (может быть выше текущей) — для TS2440-фикса.
|
|
102
|
-
let importLineIndex = lineIndex;
|
|
103
|
-
while (importLineIndex >= 0 && !lines[importLineIndex].includes("import")) {
|
|
104
|
-
importLineIndex--;
|
|
105
|
-
}
|
|
106
|
-
if (importLineIndex < 0) {
|
|
107
|
-
return { fixed: false, newContent: lines.join("\n") };
|
|
108
|
-
}
|
|
109
|
-
const importLine = lines[importLineIndex];
|
|
110
|
-
// Только именованный импорт вида import { ... } from '...'.
|
|
111
|
-
const namedImportMatch = importLine.match(/import\s+(?:type\s+)?\{([^}]+)\}\s+from/);
|
|
112
|
-
if (!namedImportMatch) {
|
|
113
|
-
return { fixed: false, newContent: lines.join("\n") };
|
|
114
|
-
}
|
|
115
|
-
const imports = namedImportMatch[1];
|
|
116
|
-
const importParts = imports.split(",").map((s) => s.trim());
|
|
117
|
-
// Конфликтное имя — в списке импортов?
|
|
118
|
-
const nameIndex = importParts.findIndex((part) => {
|
|
119
|
-
const baseName = part.split(/\s+as\s+/)[0].trim();
|
|
120
|
-
return baseName === conflictingName;
|
|
121
|
-
});
|
|
122
|
-
if (nameIndex === -1) {
|
|
123
|
-
return { fixed: false, newContent: lines.join("\n") };
|
|
124
|
-
}
|
|
125
|
-
// Алиас уже есть — не трогаем.
|
|
126
|
-
const currentImport = importParts[nameIndex];
|
|
127
|
-
if (currentImport.includes(" as ")) {
|
|
128
|
-
return { fixed: false, newContent: lines.join("\n") };
|
|
129
|
-
}
|
|
130
|
-
// Добавить алиас.
|
|
131
|
-
importParts[nameIndex] = `${conflictingName} as ${conflictingName}Import`;
|
|
132
|
-
lines[importLineIndex] = importLine.replace(namedImportMatch[1], importParts.join(", "));
|
|
133
|
-
return { fixed: true, newContent: lines.join("\n") };
|
|
134
|
-
}
|
|
135
|
-
/**
|
|
136
|
-
* Фикс TS6133: объявлена, но не читается. Стратегия: выкинуть неиспользуемый
|
|
137
|
-
* импорт из списка (`{ foo, bar }` → `{ bar }`); пустой импорт — строкой целиком.
|
|
138
|
-
*/
|
|
139
|
-
function fixUnusedImport(lines, lineIndex, error) {
|
|
140
|
-
const _line = lines[lineIndex];
|
|
141
|
-
// Неиспользуемое имя — из текста ошибки.
|
|
142
|
-
const nameMatch = error.message.match(/'(\w+)' is declared but its value is never read/);
|
|
143
|
-
if (!nameMatch) {
|
|
144
|
-
return { fixed: false, newContent: lines.join("\n") };
|
|
145
|
-
}
|
|
146
|
-
const unusedName = nameMatch[1];
|
|
147
|
-
// Строка импорта (может быть выше текущей) — для TS6133-фикса.
|
|
148
|
-
let importLineIndex = lineIndex;
|
|
149
|
-
while (importLineIndex >= 0 && !lines[importLineIndex].includes("import")) {
|
|
150
|
-
importLineIndex--;
|
|
151
|
-
}
|
|
152
|
-
if (importLineIndex < 0) {
|
|
153
|
-
return { fixed: false, newContent: lines.join("\n") };
|
|
154
|
-
}
|
|
155
|
-
const importLine = lines[importLineIndex];
|
|
156
|
-
// Только именованный импорт вида import { ... } from '...' (TS6133).
|
|
157
|
-
const namedImportMatch = importLine.match(/import\s+(?:type\s+)?\{([^}]+)\}\s+from/);
|
|
158
|
-
if (!namedImportMatch) {
|
|
159
|
-
return { fixed: false, newContent: lines.join("\n") };
|
|
160
|
-
}
|
|
161
|
-
const imports = namedImportMatch[1];
|
|
162
|
-
const importParts = imports.split(",").map((s) => s.trim());
|
|
163
|
-
// Найти и выкинуть неиспользуемый импорт.
|
|
164
|
-
const nameIndex = importParts.findIndex((part) => {
|
|
165
|
-
const baseName = part.split(/\s+as\s+/)[0].trim();
|
|
166
|
-
return baseName === unusedName;
|
|
167
|
-
});
|
|
168
|
-
if (nameIndex === -1) {
|
|
169
|
-
return { fixed: false, newContent: lines.join("\n") };
|
|
170
|
-
}
|
|
171
|
-
importParts.splice(nameIndex, 1);
|
|
172
|
-
// Импортов не осталось — снести строку целиком.
|
|
173
|
-
if (importParts.length === 0) {
|
|
174
|
-
lines.splice(importLineIndex, 1);
|
|
175
|
-
}
|
|
176
|
-
else {
|
|
177
|
-
lines[importLineIndex] = importLine.replace(namedImportMatch[1], importParts.join(", "));
|
|
178
|
-
}
|
|
179
|
-
return { fixed: true, newContent: lines.join("\n") };
|
|
180
|
-
}
|
package/dist/tools/auto-tags.js
DELETED
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Детерминированный вывод tool-тегов по типу задачи (P5 auto-narrowing).
|
|
3
|
-
*
|
|
4
|
-
* Главный цикл показывает LLM только `defaultTags` (+ структурные `alwaysOn`);
|
|
5
|
-
* остальное скрыто за `enable_tools`. Без preseed веб-задача тратит первый ход
|
|
6
|
-
* на поиск `enable_tools`, а 9B-модель иногда уходит в shell/MCP (из-за этого
|
|
7
|
-
* сужение и откатывали к `enableOnDemand: false`).
|
|
8
|
-
*
|
|
9
|
-
* Классификатор работает ДО первого LLM-вызова на сыром сообщении и только
|
|
10
|
-
* ДОБАВЛЯЕТ теги (дефолты не снимает): простой чат остаётся узким (file/code +
|
|
11
|
-
* alwaysOn), а research/browser/memory-задача сразу видит нужные тулы.
|
|
12
|
-
* Без LLM-вызова и затрат контекста.
|
|
13
|
-
*
|
|
14
|
-
* Правила — keyword-эвристики (en+ru): `research` со сдвигом в recall
|
|
15
|
-
* (пропуск веб-намерения стоит лишний enable_tools round-trip), `browser`/
|
|
16
|
-
* `shell`/`memory`/`vision` — в precision (простые ходы остаются узкими).
|
|
17
|
-
* Неизвестный текст — дефолты без изменений.
|
|
18
|
-
*/
|
|
19
|
-
/** Известные теги тулов. */
|
|
20
|
-
export const KNOWN_TOOL_TAGS = [
|
|
21
|
-
"file",
|
|
22
|
-
"code",
|
|
23
|
-
"shell",
|
|
24
|
-
"research",
|
|
25
|
-
"browser",
|
|
26
|
-
"vision",
|
|
27
|
-
"image",
|
|
28
|
-
"memory",
|
|
29
|
-
"core",
|
|
30
|
-
];
|
|
31
|
-
const RESEARCH_RE = /search|google|найди|найти|поиск|погод|новост|интернет|сайт|документ|стать|цен|стоим|курс|билет|рейтинг|обзор|рецепт|http|www\.|url|\bsite\b|\bweb\b|fetch|download|скача|загруз|stackoverflow|github\.com|wikipedia|википеди/i;
|
|
32
|
-
const BROWSER_RE = /screenshot|скриншот|playwright|browser|браузер|кликни|click\b|открой.*стран|automation|автоматизац.*браузер|селектор|selector/i;
|
|
33
|
-
const SHELL_RE = /process_|фонов|background|dev.?server|docker|deploy|депло|pipeline|пайплайн|контейнер|процесс/i;
|
|
34
|
-
const MEMORY_RE = /запомни|remember|recall|вспомни|память|\bmemory\b|мой день рождения|my birthday|мой рост|обо мне|preferences|предпочтени/i;
|
|
35
|
-
const VISION_RE = /image|картинк|фото|изображен|скрин|attach|vision|png|\bjpg\b|jpeg|сфотографируй|разбери.*фото/i;
|
|
36
|
-
const CODE_RE = /код|code|typescript|python|javascript|bun|npm|git|коммит|тест|lint|build|сборк|баг|ошибк.*код|файл|file|папк|директори|рефактор|refactor/i;
|
|
37
|
-
/**
|
|
38
|
-
* Дополнительные теги из сообщения пользователя. Всегда подмножество
|
|
39
|
-
* KNOWN_TOOL_TAGS, без `file`/`code` (это дефолты). Чистая функция —
|
|
40
|
-
* безопасно вызывать на каждом ходе.
|
|
41
|
-
*/
|
|
42
|
-
export function inferExtraToolTags(input) {
|
|
43
|
-
if (!input || !input.trim())
|
|
44
|
-
return [];
|
|
45
|
-
const extra = new Set();
|
|
46
|
-
if (RESEARCH_RE.test(input))
|
|
47
|
-
extra.add("research");
|
|
48
|
-
if (BROWSER_RE.test(input)) {
|
|
49
|
-
extra.add("browser");
|
|
50
|
-
extra.add("vision");
|
|
51
|
-
}
|
|
52
|
-
if (SHELL_RE.test(input))
|
|
53
|
-
extra.add("shell");
|
|
54
|
-
if (MEMORY_RE.test(input))
|
|
55
|
-
extra.add("memory");
|
|
56
|
-
if (VISION_RE.test(input)) {
|
|
57
|
-
extra.add("vision");
|
|
58
|
-
extra.add("image");
|
|
59
|
-
}
|
|
60
|
-
// Явное code/shell-намерение возвращает `shell` (bash виден и через `code`,
|
|
61
|
-
// но process_*/pipeline нужен именно shell-тег).
|
|
62
|
-
if (CODE_RE.test(input) && /process|фонов|background|pipeline|docker/i.test(input)) {
|
|
63
|
-
extra.add("shell");
|
|
64
|
-
}
|
|
65
|
-
return [...extra];
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Аддитивный preseed: дописывает выведенные теги в `activeTags`, возвращает
|
|
69
|
-
* добавленные. Ничего не удаляет (гранты `enable_tools` сохраняются).
|
|
70
|
-
* No-op при выключенном сужении (`activeTags` undefined = legacy-режим).
|
|
71
|
-
*/
|
|
72
|
-
export function seedToolTags(activeTags, input) {
|
|
73
|
-
if (!activeTags)
|
|
74
|
-
return [];
|
|
75
|
-
const added = [];
|
|
76
|
-
for (const tag of inferExtraToolTags(input)) {
|
|
77
|
-
if (!activeTags.includes(tag)) {
|
|
78
|
-
activeTags.push(tag);
|
|
79
|
-
added.push(tag);
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
return added;
|
|
83
|
-
}
|