micro-models-agent 2.16.1 → 2.17.1
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 +28 -0
- 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/ui/table.js
DELETED
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
// Таблицы чата: парсинг markdown-строк, выравнивание колонок (без рамок, см. STYLE.md).
|
|
2
|
-
import stringWidth from "string-width";
|
|
3
|
-
import { pc } from "./colors";
|
|
4
|
-
const ELLIPSIS = "…";
|
|
5
|
-
function pad(text, width, align) {
|
|
6
|
-
const visible = stringWidth(text);
|
|
7
|
-
const gap = Math.max(0, width - visible);
|
|
8
|
-
if (align === "right")
|
|
9
|
-
return " ".repeat(gap) + text;
|
|
10
|
-
if (align === "center") {
|
|
11
|
-
const left = Math.floor(gap / 2);
|
|
12
|
-
return " ".repeat(left) + text + " ".repeat(gap - left);
|
|
13
|
-
}
|
|
14
|
-
return text + " ".repeat(gap);
|
|
15
|
-
}
|
|
16
|
-
function truncate(text, width) {
|
|
17
|
-
if (stringWidth(text) <= width)
|
|
18
|
-
return text;
|
|
19
|
-
let acc = "";
|
|
20
|
-
for (const ch of text) {
|
|
21
|
-
if (stringWidth(acc + ch) > width - 1)
|
|
22
|
-
break;
|
|
23
|
-
acc += ch;
|
|
24
|
-
}
|
|
25
|
-
return acc + ELLIPSIS;
|
|
26
|
-
}
|
|
27
|
-
/** Режет строку `| a | b |` на ячейки. */
|
|
28
|
-
export function splitRow(line) {
|
|
29
|
-
const trimmed = line.trim();
|
|
30
|
-
let body = trimmed;
|
|
31
|
-
if (body.startsWith("|"))
|
|
32
|
-
body = body.slice(1);
|
|
33
|
-
if (body.endsWith("|") && !body.endsWith("\\|"))
|
|
34
|
-
body = body.slice(0, -1);
|
|
35
|
-
return body.split("|").map((c) => c.trim());
|
|
36
|
-
}
|
|
37
|
-
/** Детект строки-разделителя вида `|---|---|` / `:---:` / `---:`. */
|
|
38
|
-
export function isSeparatorRow(line) {
|
|
39
|
-
const trimmed = line.trim();
|
|
40
|
-
if (!trimmed.includes("-"))
|
|
41
|
-
return false;
|
|
42
|
-
const cells = splitRow(trimmed);
|
|
43
|
-
if (cells.length === 0)
|
|
44
|
-
return false;
|
|
45
|
-
return cells.every((c) => /^:?-{3,}:?$/.test(c));
|
|
46
|
-
}
|
|
47
|
-
/** Выравнивания из строки-разделителя, по индексу колонки. */
|
|
48
|
-
export function parseAlignments(separator) {
|
|
49
|
-
const out = {};
|
|
50
|
-
splitRow(separator).forEach((cell, i) => {
|
|
51
|
-
const left = cell.startsWith(":");
|
|
52
|
-
const right = cell.endsWith(":");
|
|
53
|
-
if (left && right)
|
|
54
|
-
out[i] = "center";
|
|
55
|
-
else if (right)
|
|
56
|
-
out[i] = "right";
|
|
57
|
-
});
|
|
58
|
-
return out;
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Рендерит markdown-блок таблицы в выровненные строки без рамок.
|
|
62
|
-
* `tableLines` включает строку шапки и опц. строку-разделитель.
|
|
63
|
-
*/
|
|
64
|
-
export function formatTable(tableLines, opts = {}) {
|
|
65
|
-
const align = opts.align ?? {};
|
|
66
|
-
let dataStart = 1;
|
|
67
|
-
if (tableLines.length > 1 && isSeparatorRow(tableLines[1])) {
|
|
68
|
-
dataStart = 2;
|
|
69
|
-
Object.assign(align, parseAlignments(tableLines[1]));
|
|
70
|
-
}
|
|
71
|
-
const rows = tableLines.map(splitRow);
|
|
72
|
-
const headerRow = rows[0] ?? [];
|
|
73
|
-
const dataRows = rows.slice(dataStart);
|
|
74
|
-
let columnCount = Math.max(headerRow.length, ...dataRows.map((r) => r.length));
|
|
75
|
-
if (opts.maxColumns && columnCount > opts.maxColumns) {
|
|
76
|
-
columnCount = opts.maxColumns;
|
|
77
|
-
}
|
|
78
|
-
const widths = [];
|
|
79
|
-
for (let c = 0; c < columnCount; c++) {
|
|
80
|
-
let w = 3;
|
|
81
|
-
for (const row of rows) {
|
|
82
|
-
const cell = row[c];
|
|
83
|
-
if (cell !== undefined)
|
|
84
|
-
w = Math.max(w, stringWidth(cell));
|
|
85
|
-
}
|
|
86
|
-
widths.push(w);
|
|
87
|
-
}
|
|
88
|
-
const maxWidth = opts.maxWidth ?? getTerminalWidth();
|
|
89
|
-
const GAP = " ";
|
|
90
|
-
const contentWidth = widths.reduce((a, b) => a + b, 0);
|
|
91
|
-
const totalWidth = contentWidth + GAP.length * Math.max(0, columnCount - 1);
|
|
92
|
-
if (totalWidth > maxWidth) {
|
|
93
|
-
const over = totalWidth - maxWidth;
|
|
94
|
-
let remaining = over;
|
|
95
|
-
let i = widths.length - 1;
|
|
96
|
-
while (remaining > 0 && i >= 0) {
|
|
97
|
-
if (widths[i] > 3) {
|
|
98
|
-
const cut = Math.min(widths[i] - 3, remaining);
|
|
99
|
-
widths[i] -= cut;
|
|
100
|
-
remaining -= cut;
|
|
101
|
-
}
|
|
102
|
-
i--;
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
const renderRow = (row, isHeader) => {
|
|
106
|
-
const cells = [];
|
|
107
|
-
for (let c = 0; c < columnCount; c++) {
|
|
108
|
-
const raw = row[c] ?? "";
|
|
109
|
-
const cell = truncate(raw, widths[c]);
|
|
110
|
-
const a = isHeader && align[c] === undefined ? "left" : (align[c] ?? "left");
|
|
111
|
-
cells.push(pad(cell, widths[c], a));
|
|
112
|
-
}
|
|
113
|
-
const content = cells.join(GAP);
|
|
114
|
-
return isHeader ? pc.bold(content) : content;
|
|
115
|
-
};
|
|
116
|
-
// Без box-рамок: жирная шапка, dim-линейка, выровненные колонки.
|
|
117
|
-
const out = [];
|
|
118
|
-
out.push(renderRow(headerRow, true));
|
|
119
|
-
const ruleWidth = widths.reduce((a, b) => a + b, 0) + GAP.length * Math.max(0, columnCount - 1);
|
|
120
|
-
out.push(pc.dim("─".repeat(Math.max(3, Math.min(ruleWidth, maxWidth - 1)))));
|
|
121
|
-
for (const row of dataRows) {
|
|
122
|
-
out.push(renderRow(row, false));
|
|
123
|
-
}
|
|
124
|
-
return out;
|
|
125
|
-
}
|
|
126
|
-
/** Ширина терминала; вне TTY — 80. */
|
|
127
|
-
export function getTerminalWidth() {
|
|
128
|
-
if (process.stdout.isTTY && process.stdout.columns) {
|
|
129
|
-
return process.stdout.columns;
|
|
130
|
-
}
|
|
131
|
-
return 80;
|
|
132
|
-
}
|
|
133
|
-
/** Строит pipe-строки из структурных данных и рендерит таблицей. */
|
|
134
|
-
export function renderTable(headers, rows, opts = {}) {
|
|
135
|
-
const lines = [];
|
|
136
|
-
lines.push(`| ${headers.join(" | ")} |`);
|
|
137
|
-
lines.push(`|${headers.map(() => "---").join("|")}|`);
|
|
138
|
-
for (const row of rows) {
|
|
139
|
-
lines.push(`| ${row.join(" | ")} |`);
|
|
140
|
-
}
|
|
141
|
-
return formatTable(lines, opts);
|
|
142
|
-
}
|
package/dist/ui/theme.js
DELETED
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
// Тема чата: глифы, болтливость, акцентные цвета категорий тулов (см. STYLE.md).
|
|
2
|
-
import { pc } from "./colors";
|
|
3
|
-
/**
|
|
4
|
-
* Канонические глифы чата — единственный источник правды.
|
|
5
|
-
* См. `docs/design/ui/STYLE.md`. Свои маркеры по модулям не выдумывать.
|
|
6
|
-
*/
|
|
7
|
-
export const glyph = {
|
|
8
|
-
/** Действие (дальше — локализованный ярлык тула). */
|
|
9
|
-
action: "◇",
|
|
10
|
-
success: "✓",
|
|
11
|
-
failure: "✗",
|
|
12
|
-
warning: "⚠",
|
|
13
|
-
/** Рассуждение / обдумывание. */
|
|
14
|
-
thinking: "✦",
|
|
15
|
-
question: "?",
|
|
16
|
-
/** Эхо ввода пользователя в транскрипте. */
|
|
17
|
-
user: "↵",
|
|
18
|
-
/** Деталь или хинт восстановления. */
|
|
19
|
-
detail: "↳",
|
|
20
|
-
/** Продолжение сгруппированного прогона. */
|
|
21
|
-
group: "│",
|
|
22
|
-
/** Строка сводных метрик. */
|
|
23
|
-
metric: "⟡",
|
|
24
|
-
/** Компакция / обновление. */
|
|
25
|
-
compact: "⟳",
|
|
26
|
-
};
|
|
27
|
-
/** Тайпгард болтливости. */
|
|
28
|
-
export function isVerbosity(value) {
|
|
29
|
-
return value === "quiet" || value === "normal" || value === "verbose";
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Резолвит итоговую болтливость из конфига. Явный `verbosity` побеждает;
|
|
33
|
-
* иначе legacy-bool `verbose` маппится в `verbose`/`quiet`.
|
|
34
|
-
*/
|
|
35
|
-
export function resolveVerbosity(ui) {
|
|
36
|
-
if (ui?.verbosity)
|
|
37
|
-
return ui.verbosity;
|
|
38
|
-
return ui?.verbose ? "verbose" : "quiet";
|
|
39
|
-
}
|
|
40
|
-
/** Акцентная метка действия (cyan). */
|
|
41
|
-
export function actionMark() {
|
|
42
|
-
return pc.cyan(glyph.action);
|
|
43
|
-
}
|
|
44
|
-
const CATEGORY_TOOLS = {
|
|
45
|
-
recon: new Set([
|
|
46
|
-
"read_file",
|
|
47
|
-
"list_dir",
|
|
48
|
-
"glob",
|
|
49
|
-
"grep",
|
|
50
|
-
"file_info",
|
|
51
|
-
"project_map",
|
|
52
|
-
"chunk_query",
|
|
53
|
-
"web_search",
|
|
54
|
-
"web_fetch",
|
|
55
|
-
"web_browse",
|
|
56
|
-
"search_history",
|
|
57
|
-
"recall",
|
|
58
|
-
"session_info",
|
|
59
|
-
"process_list",
|
|
60
|
-
"process_log",
|
|
61
|
-
"process_wait",
|
|
62
|
-
]),
|
|
63
|
-
mutate: new Set([
|
|
64
|
-
"write_file",
|
|
65
|
-
"edit_file",
|
|
66
|
-
"create_dir",
|
|
67
|
-
"delete_file",
|
|
68
|
-
"move_file",
|
|
69
|
-
"attach_image",
|
|
70
|
-
]),
|
|
71
|
-
execute: new Set([
|
|
72
|
-
"bash",
|
|
73
|
-
"process_kill",
|
|
74
|
-
"pipeline_run",
|
|
75
|
-
"browser",
|
|
76
|
-
"download_file",
|
|
77
|
-
"subagent",
|
|
78
|
-
"mcp_call",
|
|
79
|
-
]),
|
|
80
|
-
meta: new Set([
|
|
81
|
-
"plan",
|
|
82
|
-
"plan_step",
|
|
83
|
-
"todo",
|
|
84
|
-
"verify",
|
|
85
|
-
"lsp_check",
|
|
86
|
-
"enable_tools",
|
|
87
|
-
"set_thinking",
|
|
88
|
-
"load_skill",
|
|
89
|
-
"remember",
|
|
90
|
-
]),
|
|
91
|
-
};
|
|
92
|
-
/** Категория тула по имени. Неизвестные — meta. */
|
|
93
|
-
export function toolCategory(tool) {
|
|
94
|
-
for (const [category, tools] of Object.entries(CATEGORY_TOOLS)) {
|
|
95
|
-
if (tools.has(tool))
|
|
96
|
-
return category;
|
|
97
|
-
}
|
|
98
|
-
return "meta";
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* Акцентный цвет категории тула. Один цвет красит И глиф действия, И
|
|
102
|
-
* локализованный ярлык — они читаются как единое целое
|
|
103
|
-
* (см. `docs/design/ui/STYLE.md`). Цвета не пересекаются с семантическими
|
|
104
|
-
* success/warning/error, чтобы цветной ярлык не читался как исход.
|
|
105
|
-
*/
|
|
106
|
-
export function toolAccent(tool) {
|
|
107
|
-
switch (toolCategory(tool)) {
|
|
108
|
-
case "recon":
|
|
109
|
-
return pc.cyan;
|
|
110
|
-
case "mutate":
|
|
111
|
-
return pc.magenta;
|
|
112
|
-
case "execute":
|
|
113
|
-
return pc.blue;
|
|
114
|
-
default:
|
|
115
|
-
return pc.dim;
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
/** Метка действия в цвете категории тула. */
|
|
119
|
-
export function actionMarkFor(tool) {
|
|
120
|
-
return toolAccent(tool)(glyph.action);
|
|
121
|
-
}
|
|
122
|
-
/** Зелёная метка успеха. */
|
|
123
|
-
export function successMark() {
|
|
124
|
-
return pc.green(glyph.success);
|
|
125
|
-
}
|
|
126
|
-
/** Красная метка провала — только реальные сбои, не мягкие гарды. */
|
|
127
|
-
export function failureMark() {
|
|
128
|
-
return pc.red(glyph.failure);
|
|
129
|
-
}
|
|
130
|
-
/** Жёлтая метка предупреждения — мягкие блоки, защищённые пути, нефатальное. */
|
|
131
|
-
export function warningMark() {
|
|
132
|
-
return pc.yellow(glyph.warning);
|
|
133
|
-
}
|
|
134
|
-
/** Dim-метка детали/хинта. */
|
|
135
|
-
export function detailMark() {
|
|
136
|
-
return pc.dim(glyph.detail);
|
|
137
|
-
}
|
|
138
|
-
/** Человеческая длительность: `ms` до секунды, `s` выше (как в мокапе). */
|
|
139
|
-
export function formatDuration(ms) {
|
|
140
|
-
if (ms < 1000)
|
|
141
|
-
return `${ms}ms`;
|
|
142
|
-
return `${(ms / 1000).toFixed(1)}s`;
|
|
143
|
-
}
|
package/dist/utils/child-run.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Общий финал ожидания child-процесса: закрывает дублированный `close`-хендлер
|
|
3
|
-
* в verifier / syntax-validator / lint-on-write (один клон на троих по fallow).
|
|
4
|
-
*/
|
|
5
|
-
/**
|
|
6
|
-
* Резолвит промис раннера на `code === 0`, иначе реджектит обогащённой
|
|
7
|
-
* ошибкой (сообщение + `stdout`/`stderr`/`status` полями). Поведение 1:1
|
|
8
|
-
* с инлайн-версиями: текст сообщения формирует вызывающий.
|
|
9
|
-
*/
|
|
10
|
-
export function settleChildClose(code, stdout, stderr, message, resolve, reject) {
|
|
11
|
-
if (code === 0) {
|
|
12
|
-
resolve({ stdout, stderr });
|
|
13
|
-
return;
|
|
14
|
-
}
|
|
15
|
-
const err = new Error(message);
|
|
16
|
-
err.stdout = stdout;
|
|
17
|
-
err.stderr = stderr;
|
|
18
|
-
err.status = code;
|
|
19
|
-
reject(err);
|
|
20
|
-
}
|
package/dist/utils/error.js
DELETED
package/dist/utils/index.js
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
// Общие утилиты без зависимостей: сон, обрезка строк, бэкофф, ошибки, child-процессы.
|
|
2
|
-
export { sleep } from "./sleep";
|
|
3
|
-
export { truncate } from "./truncate";
|
|
4
|
-
export { backoffDelay } from "./retry";
|
|
5
|
-
export { errMsg } from "./error";
|
|
6
|
-
export { settleChildClose } from "./child-run";
|
package/dist/utils/retry.js
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Экспоненциальная задержка повтора с опциональным джиттером.
|
|
3
|
-
*
|
|
4
|
-
* Единая реализация вместо четырёх расходящихся копий:
|
|
5
|
-
* - openai-compat (стрим и fetchWithRetry): `min(base*2^attempt, max)` + jitter;
|
|
6
|
-
* - moe-executor: `min(1000*2^(attempt-1), 8000)` без jitter;
|
|
7
|
-
* - audit-notifier: `2^retries * 1000` без потолка.
|
|
8
|
-
*
|
|
9
|
-
* `maxDelay === undefined` — без потолка (копия audit-notifier).
|
|
10
|
-
* `jitterFactor === 0` — без джиттера (копии moe/audit-notifier).
|
|
11
|
-
*/
|
|
12
|
-
export function backoffDelay(attempt, baseDelay, maxDelay, jitterFactor = 0) {
|
|
13
|
-
const base = maxDelay !== undefined
|
|
14
|
-
? Math.min(baseDelay * 2 ** attempt, maxDelay)
|
|
15
|
-
: baseDelay * 2 ** attempt;
|
|
16
|
-
return base + Math.random() * baseDelay * jitterFactor;
|
|
17
|
-
}
|
package/dist/utils/sleep.js
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Сон с поддержкой отмены. При abort сигнала отклоняет DOMException
|
|
3
|
-
* "AbortError" — тот же контракт, что у fetch/AbortController, чтобы
|
|
4
|
-
* вызывающий код обрабатывал прерывание единообразно.
|
|
5
|
-
*/
|
|
6
|
-
export function sleep(ms, signal) {
|
|
7
|
-
return new Promise((resolve, reject) => {
|
|
8
|
-
if (signal?.aborted) {
|
|
9
|
-
reject(new DOMException("Aborted", "AbortError"));
|
|
10
|
-
return;
|
|
11
|
-
}
|
|
12
|
-
let timer;
|
|
13
|
-
const onAbort = () => {
|
|
14
|
-
clearTimeout(timer);
|
|
15
|
-
reject(new DOMException("Aborted", "AbortError"));
|
|
16
|
-
};
|
|
17
|
-
timer = setTimeout(() => {
|
|
18
|
-
signal?.removeEventListener("abort", onAbort);
|
|
19
|
-
resolve();
|
|
20
|
-
}, ms);
|
|
21
|
-
signal?.addEventListener("abort", onAbort, { once: true });
|
|
22
|
-
});
|
|
23
|
-
}
|
package/dist/utils/truncate.js
DELETED