@duckmind/dm-linux-x64 0.66.0 → 0.66.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.
Files changed (546) hide show
  1. package/dm +2 -2
  2. package/extensions/.dm-extensions.json +12 -546
  3. package/extensions/dm-lens/clients/dispatch/runners/utils/runner-helpers.js +1 -1
  4. package/extensions/dm-mcp-adapter/mcp-keyring-helper.cjs +1 -1
  5. package/extensions/dm-ponytail/hooks/ponytail-activate.js +1 -1
  6. package/extensions/dm-ponytail/hooks/ponytail-instructions.js +1 -1
  7. package/extensions/dm-subagents/src/runs/background/runner-aliases.js +2 -2
  8. package/extensions/dm-subagents/src/runs/foreground/prompt-audit.js +4 -1
  9. package/extensions/dm-subagents/src/runs/shared/child-session.js +8 -6
  10. package/extensions/dm-subagents/src/watchdog/permission-arbiter.js +9 -1
  11. package/extensions/dm-subagents/src/watchdog/review.js +4 -1
  12. package/package.json +1 -1
  13. package/extensions/dm-lens/dist/clients/actionable-warnings-logger.js +0 -24
  14. package/extensions/dm-lens/dist/clients/actionable-warnings.js +0 -1014
  15. package/extensions/dm-lens/dist/clients/advisory-provenance.js +0 -385
  16. package/extensions/dm-lens/dist/clients/agent-behavior-client.js +0 -94
  17. package/extensions/dm-lens/dist/clients/agent-nudge.js +0 -151
  18. package/extensions/dm-lens/dist/clients/analysed-root.js +0 -1
  19. package/extensions/dm-lens/dist/clients/ast-grep-client.js +0 -576
  20. package/extensions/dm-lens/dist/clients/ast-grep-rule-manager.js +0 -114
  21. package/extensions/dm-lens/dist/clients/ast-grep-tool-logger.js +0 -85
  22. package/extensions/dm-lens/dist/clients/ast-grep-types.js +0 -1
  23. package/extensions/dm-lens/dist/clients/ast-grep-yaml-synth.js +0 -109
  24. package/extensions/dm-lens/dist/clients/atomic-write-staging.js +0 -66
  25. package/extensions/dm-lens/dist/clients/atomic-write.js +0 -37
  26. package/extensions/dm-lens/dist/clients/availability-probe-flight.js +0 -11
  27. package/extensions/dm-lens/dist/clients/bash-file-access.js +0 -830
  28. package/extensions/dm-lens/dist/clients/biome-client.js +0 -221
  29. package/extensions/dm-lens/dist/clients/blocker-freshness.js +0 -385
  30. package/extensions/dm-lens/dist/clients/blocker-past-eof.js +0 -49
  31. package/extensions/dm-lens/dist/clients/bootstrap.js +0 -246
  32. package/extensions/dm-lens/dist/clients/bounded-cache.js +0 -105
  33. package/extensions/dm-lens/dist/clients/bounded-pid-file-lock.js +0 -173
  34. package/extensions/dm-lens/dist/clients/bounded-telemetry.js +0 -104
  35. package/extensions/dm-lens/dist/clients/build-identity.js +0 -45
  36. package/extensions/dm-lens/dist/clients/bundled-resource-health.js +0 -41
  37. package/extensions/dm-lens/dist/clients/bus-events-logger.js +0 -48
  38. package/extensions/dm-lens/dist/clients/bus-publish.js +0 -117
  39. package/extensions/dm-lens/dist/clients/cache/rule-cache.js +0 -103
  40. package/extensions/dm-lens/dist/clients/cache-manager.js +0 -340
  41. package/extensions/dm-lens/dist/clients/cache-observability.js +0 -847
  42. package/extensions/dm-lens/dist/clients/call-graph.js +0 -628
  43. package/extensions/dm-lens/dist/clients/cargo-manifest.js +0 -151
  44. package/extensions/dm-lens/dist/clients/cascade-budget.js +0 -52
  45. package/extensions/dm-lens/dist/clients/cascade-format.js +0 -160
  46. package/extensions/dm-lens/dist/clients/cascade-logger.js +0 -22
  47. package/extensions/dm-lens/dist/clients/cascade-types.js +0 -1
  48. package/extensions/dm-lens/dist/clients/child-unref.js +0 -59
  49. package/extensions/dm-lens/dist/clients/code-quality-warnings.js +0 -192
  50. package/extensions/dm-lens/dist/clients/codebase-model.js +0 -110
  51. package/extensions/dm-lens/dist/clients/collateral-test-role.js +0 -8
  52. package/extensions/dm-lens/dist/clients/complexity-client.js +0 -398
  53. package/extensions/dm-lens/dist/clients/config-core/deny.js +0 -117
  54. package/extensions/dm-lens/dist/clients/config-core/index.js +0 -2
  55. package/extensions/dm-lens/dist/clients/config-core/merge.js +0 -228
  56. package/extensions/dm-lens/dist/clients/config-core/normalize.js +0 -217
  57. package/extensions/dm-lens/dist/clients/config-core/process-spec.js +0 -147
  58. package/extensions/dm-lens/dist/clients/config-core/provenance.js +0 -54
  59. package/extensions/dm-lens/dist/clients/config-core/records.js +0 -79
  60. package/extensions/dm-lens/dist/clients/config-core/resolve.js +0 -48
  61. package/extensions/dm-lens/dist/clients/config-core/safe-object.js +0 -22
  62. package/extensions/dm-lens/dist/clients/config-core/schema.js +0 -90
  63. package/extensions/dm-lens/dist/clients/config-diagnostic-codes.js +0 -90
  64. package/extensions/dm-lens/dist/clients/config-locations.js +0 -175
  65. package/extensions/dm-lens/dist/clients/config-resolve.js +0 -359
  66. package/extensions/dm-lens/dist/clients/config-schema.js +0 -128
  67. package/extensions/dm-lens/dist/clients/config-warn.js +0 -146
  68. package/extensions/dm-lens/dist/clients/console-guard-install.js +0 -4
  69. package/extensions/dm-lens/dist/clients/cooperative-budget.js +0 -36
  70. package/extensions/dm-lens/dist/clients/dead-code-client.js +0 -342
  71. package/extensions/dm-lens/dist/clients/dead-code-logger.js +0 -18
  72. package/extensions/dm-lens/dist/clients/deadline-utils.js +0 -117
  73. package/extensions/dm-lens/dist/clients/debug-handles.js +0 -121
  74. package/extensions/dm-lens/dist/clients/debug-heap.js +0 -80
  75. package/extensions/dm-lens/dist/clients/deferred-lsp-work.js +0 -33
  76. package/extensions/dm-lens/dist/clients/degradation-ledger.js +0 -272
  77. package/extensions/dm-lens/dist/clients/demoted-finding-render.js +0 -61
  78. package/extensions/dm-lens/dist/clients/dependency-checker.js +0 -525
  79. package/extensions/dm-lens/dist/clients/deps/ast-grep-napi.js +0 -17
  80. package/extensions/dm-lens/dist/clients/deps/dm-host-deps.js +0 -10
  81. package/extensions/dm-lens/dist/clients/deps/dm-tui-compat.js +0 -58
  82. package/extensions/dm-lens/dist/clients/deps/js-yaml.js +0 -7
  83. package/extensions/dm-lens/dist/clients/deps/minimatch.js +0 -6
  84. package/extensions/dm-lens/dist/clients/deps/pidusage.js +0 -5
  85. package/extensions/dm-lens/dist/clients/deps/typebox.js +0 -5
  86. package/extensions/dm-lens/dist/clients/deps/vscode-jsonrpc.js +0 -8
  87. package/extensions/dm-lens/dist/clients/deps/web-tree-sitter.js +0 -11
  88. package/extensions/dm-lens/dist/clients/diagnostic-dispositions.js +0 -318
  89. package/extensions/dm-lens/dist/clients/diagnostic-line-freshness.js +0 -144
  90. package/extensions/dm-lens/dist/clients/diagnostic-logger.js +0 -60
  91. package/extensions/dm-lens/dist/clients/diagnostic-tracker.js +0 -89
  92. package/extensions/dm-lens/dist/clients/diagnostics-publish.js +0 -134
  93. package/extensions/dm-lens/dist/clients/dispatch/ast-grep-catalog.js +0 -16
  94. package/extensions/dm-lens/dist/clients/dispatch/auxiliary-lsp.js +0 -158
  95. package/extensions/dm-lens/dist/clients/dispatch/collect-later-tier.js +0 -25
  96. package/extensions/dm-lens/dist/clients/dispatch/diagnostic-taxonomy.js +0 -58
  97. package/extensions/dm-lens/dist/clients/dispatch/dispatcher.js +0 -953
  98. package/extensions/dm-lens/dist/clients/dispatch/fact-provider-types.js +0 -1
  99. package/extensions/dm-lens/dist/clients/dispatch/fact-rule-runner.js +0 -17
  100. package/extensions/dm-lens/dist/clients/dispatch/fact-runner.js +0 -18
  101. package/extensions/dm-lens/dist/clients/dispatch/fact-scheduler.js +0 -52
  102. package/extensions/dm-lens/dist/clients/dispatch/fact-store.js +0 -199
  103. package/extensions/dm-lens/dist/clients/dispatch/facts/comment-facts.js +0 -20
  104. package/extensions/dm-lens/dist/clients/dispatch/facts/file-content.js +0 -18
  105. package/extensions/dm-lens/dist/clients/dispatch/facts/function-facts.js +0 -281
  106. package/extensions/dm-lens/dist/clients/dispatch/facts/import-facts.js +0 -169
  107. package/extensions/dm-lens/dist/clients/dispatch/facts/tree-sitter-facts.js +0 -19
  108. package/extensions/dm-lens/dist/clients/dispatch/facts/try-catch-facts.js +0 -95
  109. package/extensions/dm-lens/dist/clients/dispatch/finding-policy.js +0 -159
  110. package/extensions/dm-lens/dist/clients/dispatch/indent-detect.js +0 -227
  111. package/extensions/dm-lens/dist/clients/dispatch/inline-suppressions.js +0 -52
  112. package/extensions/dm-lens/dist/clients/dispatch/integration.js +0 -1463
  113. package/extensions/dm-lens/dist/clients/dispatch/lazy.js +0 -8
  114. package/extensions/dm-lens/dist/clients/dispatch/pending-runner-findings.js +0 -75
  115. package/extensions/dm-lens/dist/clients/dispatch/plan.js +0 -278
  116. package/extensions/dm-lens/dist/clients/dispatch/priorities.js +0 -14
  117. package/extensions/dm-lens/dist/clients/dispatch/rule-id-normalize.js +0 -42
  118. package/extensions/dm-lens/dist/clients/dispatch/rule-ignores.js +0 -21
  119. package/extensions/dm-lens/dist/clients/dispatch/rule-policy.js +0 -73
  120. package/extensions/dm-lens/dist/clients/dispatch/rules/async-noise.js +0 -31
  121. package/extensions/dm-lens/dist/clients/dispatch/rules/async-unnecessary-wrapper.js +0 -27
  122. package/extensions/dm-lens/dist/clients/dispatch/rules/cors-wildcard.js +0 -35
  123. package/extensions/dm-lens/dist/clients/dispatch/rules/error-obscuring.js +0 -29
  124. package/extensions/dm-lens/dist/clients/dispatch/rules/error-swallowing.js +0 -29
  125. package/extensions/dm-lens/dist/clients/dispatch/rules/framework-call-noise.js +0 -31
  126. package/extensions/dm-lens/dist/clients/dispatch/rules/high-complexity.js +0 -56
  127. package/extensions/dm-lens/dist/clients/dispatch/rules/high-fan-out.js +0 -45
  128. package/extensions/dm-lens/dist/clients/dispatch/rules/high-import-coupling.js +0 -31
  129. package/extensions/dm-lens/dist/clients/dispatch/rules/missing-error-propagation.js +0 -45
  130. package/extensions/dm-lens/dist/clients/dispatch/rules/no-commented-credentials.js +0 -46
  131. package/extensions/dm-lens/dist/clients/dispatch/rules/pass-through-wrappers.js +0 -38
  132. package/extensions/dm-lens/dist/clients/dispatch/rules/placeholder-comments.js +0 -40
  133. package/extensions/dm-lens/dist/clients/dispatch/rules/unsafe-boundary.js +0 -101
  134. package/extensions/dm-lens/dist/clients/dispatch/runner-context.js +0 -46
  135. package/extensions/dm-lens/dist/clients/dispatch/runners/actionlint.js +0 -98
  136. package/extensions/dm-lens/dist/clients/dispatch/runners/ast-grep-napi.js +0 -690
  137. package/extensions/dm-lens/dist/clients/dispatch/runners/biome-check.js +0 -202
  138. package/extensions/dm-lens/dist/clients/dispatch/runners/cpp-check.js +0 -190
  139. package/extensions/dm-lens/dist/clients/dispatch/runners/credo.js +0 -66
  140. package/extensions/dm-lens/dist/clients/dispatch/runners/cue-vet.js +0 -167
  141. package/extensions/dm-lens/dist/clients/dispatch/runners/dart-analyze.js +0 -151
  142. package/extensions/dm-lens/dist/clients/dispatch/runners/detekt.js +0 -157
  143. package/extensions/dm-lens/dist/clients/dispatch/runners/dotnet-build.js +0 -157
  144. package/extensions/dm-lens/dist/clients/dispatch/runners/elixir-check.js +0 -153
  145. package/extensions/dm-lens/dist/clients/dispatch/runners/eslint.js +0 -99
  146. package/extensions/dm-lens/dist/clients/dispatch/runners/fact-rules.js +0 -20
  147. package/extensions/dm-lens/dist/clients/dispatch/runners/fish-indent.js +0 -65
  148. package/extensions/dm-lens/dist/clients/dispatch/runners/gleam-check.js +0 -107
  149. package/extensions/dm-lens/dist/clients/dispatch/runners/go-vet.js +0 -51
  150. package/extensions/dm-lens/dist/clients/dispatch/runners/golangci-lint.js +0 -89
  151. package/extensions/dm-lens/dist/clients/dispatch/runners/hadolint.js +0 -83
  152. package/extensions/dm-lens/dist/clients/dispatch/runners/helm-lint.js +0 -144
  153. package/extensions/dm-lens/dist/clients/dispatch/runners/helm-render.js +0 -593
  154. package/extensions/dm-lens/dist/clients/dispatch/runners/htmlhint.js +0 -103
  155. package/extensions/dm-lens/dist/clients/dispatch/runners/index.js +0 -100
  156. package/extensions/dm-lens/dist/clients/dispatch/runners/javac.js +0 -82
  157. package/extensions/dm-lens/dist/clients/dispatch/runners/ktlint.js +0 -93
  158. package/extensions/dm-lens/dist/clients/dispatch/runners/lsp.js +0 -206
  159. package/extensions/dm-lens/dist/clients/dispatch/runners/markdownlint.js +0 -129
  160. package/extensions/dm-lens/dist/clients/dispatch/runners/mypy.js +0 -70
  161. package/extensions/dm-lens/dist/clients/dispatch/runners/oxlint.js +0 -305
  162. package/extensions/dm-lens/dist/clients/dispatch/runners/php-lint.js +0 -70
  163. package/extensions/dm-lens/dist/clients/dispatch/runners/phpstan.js +0 -90
  164. package/extensions/dm-lens/dist/clients/dispatch/runners/prisma-validate.js +0 -56
  165. package/extensions/dm-lens/dist/clients/dispatch/runners/psscriptanalyzer.js +0 -307
  166. package/extensions/dm-lens/dist/clients/dispatch/runners/pyright.js +0 -118
  167. package/extensions/dm-lens/dist/clients/dispatch/runners/rubocop.js +0 -79
  168. package/extensions/dm-lens/dist/clients/dispatch/runners/ruff.js +0 -69
  169. package/extensions/dm-lens/dist/clients/dispatch/runners/rust-clippy.js +0 -147
  170. package/extensions/dm-lens/dist/clients/dispatch/runners/shellcheck.js +0 -111
  171. package/extensions/dm-lens/dist/clients/dispatch/runners/shfmt.js +0 -81
  172. package/extensions/dm-lens/dist/clients/dispatch/runners/spellcheck.js +0 -74
  173. package/extensions/dm-lens/dist/clients/dispatch/runners/spotbugs.js +0 -208
  174. package/extensions/dm-lens/dist/clients/dispatch/runners/sqlfluff.js +0 -136
  175. package/extensions/dm-lens/dist/clients/dispatch/runners/stylelint.js +0 -118
  176. package/extensions/dm-lens/dist/clients/dispatch/runners/swiftlint.js +0 -143
  177. package/extensions/dm-lens/dist/clients/dispatch/runners/taplo.js +0 -97
  178. package/extensions/dm-lens/dist/clients/dispatch/runners/terragrunt.js +0 -110
  179. package/extensions/dm-lens/dist/clients/dispatch/runners/tflint.js +0 -104
  180. package/extensions/dm-lens/dist/clients/dispatch/runners/tree-sitter.js +0 -516
  181. package/extensions/dm-lens/dist/clients/dispatch/runners/trivy-config.js +0 -155
  182. package/extensions/dm-lens/dist/clients/dispatch/runners/utils/availability-policy.js +0 -285
  183. package/extensions/dm-lens/dist/clients/dispatch/runners/utils/candidate-probe.js +0 -61
  184. package/extensions/dm-lens/dist/clients/dispatch/runners/utils/diagnostic-parsers.js +0 -61
  185. package/extensions/dm-lens/dist/clients/dispatch/runners/utils/lazy-installer.js +0 -130
  186. package/extensions/dm-lens/dist/clients/dispatch/runners/utils/runner-helpers.js +0 -1067
  187. package/extensions/dm-lens/dist/clients/dispatch/runners/utils/spawn-outcome.js +0 -40
  188. package/extensions/dm-lens/dist/clients/dispatch/runners/utils/tool-failure.js +0 -117
  189. package/extensions/dm-lens/dist/clients/dispatch/runners/utils/toolchain-availability.js +0 -88
  190. package/extensions/dm-lens/dist/clients/dispatch/runners/utils.js +0 -8
  191. package/extensions/dm-lens/dist/clients/dispatch/runners/vale.js +0 -106
  192. package/extensions/dm-lens/dist/clients/dispatch/runners/yaml-rule-parser.js +0 -163
  193. package/extensions/dm-lens/dist/clients/dispatch/runners/yamllint.js +0 -83
  194. package/extensions/dm-lens/dist/clients/dispatch/runners/zig-check.js +0 -72
  195. package/extensions/dm-lens/dist/clients/dispatch/suppress-writer.js +0 -57
  196. package/extensions/dm-lens/dist/clients/dispatch/tool-profile.js +0 -30
  197. package/extensions/dm-lens/dist/clients/dispatch/types.js +0 -7
  198. package/extensions/dm-lens/dist/clients/dispatch/utils/format-utils.js +0 -45
  199. package/extensions/dm-lens/dist/clients/dispatch/utils/lsp-diagnostics.js +0 -31
  200. package/extensions/dm-lens/dist/clients/disposition-logger.js +0 -19
  201. package/extensions/dm-lens/dist/clients/disposition-publish.js +0 -88
  202. package/extensions/dm-lens/dist/clients/durable-store.js +0 -77
  203. package/extensions/dm-lens/dist/clients/effective-config.js +0 -160
  204. package/extensions/dm-lens/dist/clients/env-utils.js +0 -26
  205. package/extensions/dm-lens/dist/clients/error-class.js +0 -3
  206. package/extensions/dm-lens/dist/clients/eval-timestamp.js +0 -2
  207. package/extensions/dm-lens/dist/clients/event-loop-hold.js +0 -119
  208. package/extensions/dm-lens/dist/clients/event-loop-monitor.js +0 -84
  209. package/extensions/dm-lens/dist/clients/extension-log.js +0 -230
  210. package/extensions/dm-lens/dist/clients/extension-mode.js +0 -20
  211. package/extensions/dm-lens/dist/clients/feature-hints.js +0 -88
  212. package/extensions/dm-lens/dist/clients/file-kinds.js +0 -304
  213. package/extensions/dm-lens/dist/clients/file-role.js +0 -50
  214. package/extensions/dm-lens/dist/clients/file-time.js +0 -112
  215. package/extensions/dm-lens/dist/clients/file-utils.js +0 -630
  216. package/extensions/dm-lens/dist/clients/finding-delivery-gate.js +0 -129
  217. package/extensions/dm-lens/dist/clients/finding-identity.js +0 -23
  218. package/extensions/dm-lens/dist/clients/fix-worklog.js +0 -75
  219. package/extensions/dm-lens/dist/clients/format-events-publish.js +0 -230
  220. package/extensions/dm-lens/dist/clients/format-service.js +0 -154
  221. package/extensions/dm-lens/dist/clients/formatters-lazy.js +0 -8
  222. package/extensions/dm-lens/dist/clients/formatters.js +0 -1351
  223. package/extensions/dm-lens/dist/clients/freshness-cadence.js +0 -1
  224. package/extensions/dm-lens/dist/clients/freshness.js +0 -8
  225. package/extensions/dm-lens/dist/clients/generated-artifacts.js +0 -209
  226. package/extensions/dm-lens/dist/clients/generation-guard.js +0 -105
  227. package/extensions/dm-lens/dist/clients/git-guard.js +0 -770
  228. package/extensions/dm-lens/dist/clients/git-tracked-ignore.js +0 -120
  229. package/extensions/dm-lens/dist/clients/gitleaks-client.js +0 -282
  230. package/extensions/dm-lens/dist/clients/go-client.js +0 -47
  231. package/extensions/dm-lens/dist/clients/govulncheck-client.js +0 -411
  232. package/extensions/dm-lens/dist/clients/gradle-ktfmt-style.js +0 -177
  233. package/extensions/dm-lens/dist/clients/grammar-source.js +0 -224
  234. package/extensions/dm-lens/dist/clients/gzip-stage-write.js +0 -85
  235. package/extensions/dm-lens/dist/clients/hashline-anchor.js +0 -222
  236. package/extensions/dm-lens/dist/clients/hook-budgets.js +0 -16
  237. package/extensions/dm-lens/dist/clients/host-edit-normalize.js +0 -87
  238. package/extensions/dm-lens/dist/clients/host-ports.js +0 -35
  239. package/extensions/dm-lens/dist/clients/indent-retarget.js +0 -102
  240. package/extensions/dm-lens/dist/clients/inline-blocker-dispositions.js +0 -103
  241. package/extensions/dm-lens/dist/clients/install-diagnostics.js +0 -123
  242. package/extensions/dm-lens/dist/clients/installer/index.js +0 -3770
  243. package/extensions/dm-lens/dist/clients/installer/managed-tool-refresh-session.js +0 -17
  244. package/extensions/dm-lens/dist/clients/installer/managed-tool-refresh.js +0 -522
  245. package/extensions/dm-lens/dist/clients/instance-reaper-state.js +0 -3
  246. package/extensions/dm-lens/dist/clients/instance-reaper.js +0 -577
  247. package/extensions/dm-lens/dist/clients/instance-registry-lock.js +0 -131
  248. package/extensions/dm-lens/dist/clients/instance-registry.js +0 -452
  249. package/extensions/dm-lens/dist/clients/jscpd-client.js +0 -252
  250. package/extensions/dm-lens/dist/clients/json-cache-read.js +0 -25
  251. package/extensions/dm-lens/dist/clients/knip-client.js +0 -472
  252. package/extensions/dm-lens/dist/clients/language-policy.js +0 -242
  253. package/extensions/dm-lens/dist/clients/language-profile.js +0 -261
  254. package/extensions/dm-lens/dist/clients/language-registry.js +0 -424
  255. package/extensions/dm-lens/dist/clients/latency-logger.js +0 -192
  256. package/extensions/dm-lens/dist/clients/lazy-import.js +0 -14
  257. package/extensions/dm-lens/dist/clients/ledger-bounds.js +0 -21
  258. package/extensions/dm-lens/dist/clients/lens-config.js +0 -237
  259. package/extensions/dm-lens/dist/clients/lens-engine.js +0 -181
  260. package/extensions/dm-lens/dist/clients/lens-events.js +0 -105
  261. package/extensions/dm-lens/dist/clients/lens-flag-registry.js +0 -302
  262. package/extensions/dm-lens/dist/clients/lens-map.js +0 -980
  263. package/extensions/dm-lens/dist/clients/live-bus-emitter.js +0 -53
  264. package/extensions/dm-lens/dist/clients/log-cleanup.js +0 -138
  265. package/extensions/dm-lens/dist/clients/lsp/aggregation.js +0 -88
  266. package/extensions/dm-lens/dist/clients/lsp/cascade-tier.js +0 -203
  267. package/extensions/dm-lens/dist/clients/lsp/client.js +0 -2709
  268. package/extensions/dm-lens/dist/clients/lsp/config.js +0 -252
  269. package/extensions/dm-lens/dist/clients/lsp/content-limits.js +0 -21
  270. package/extensions/dm-lens/dist/clients/lsp/diagnostic-binding.js +0 -79
  271. package/extensions/dm-lens/dist/clients/lsp/document-drift.js +0 -312
  272. package/extensions/dm-lens/dist/clients/lsp/edits.js +0 -930
  273. package/extensions/dm-lens/dist/clients/lsp/index.js +0 -4448
  274. package/extensions/dm-lens/dist/clients/lsp/inferred-project.js +0 -121
  275. package/extensions/dm-lens/dist/clients/lsp/jvm-runtime.js +0 -194
  276. package/extensions/dm-lens/dist/clients/lsp/language.js +0 -23
  277. package/extensions/dm-lens/dist/clients/lsp/launch.js +0 -468
  278. package/extensions/dm-lens/dist/clients/lsp/lombok.js +0 -146
  279. package/extensions/dm-lens/dist/clients/lsp/path-utils.js +0 -1
  280. package/extensions/dm-lens/dist/clients/lsp/pending-aux-coverage.js +0 -90
  281. package/extensions/dm-lens/dist/clients/lsp/position-encoding.js +0 -28
  282. package/extensions/dm-lens/dist/clients/lsp/ruby-drive-dirs.js +0 -42
  283. package/extensions/dm-lens/dist/clients/lsp/server.js +0 -2422
  284. package/extensions/dm-lens/dist/clients/lsp/session-roots.js +0 -52
  285. package/extensions/dm-lens/dist/clients/lsp/spawn-history.js +0 -15
  286. package/extensions/dm-lens/dist/clients/lsp/sync-kind.js +0 -30
  287. package/extensions/dm-lens/dist/clients/lsp/tsserver-sync.js +0 -156
  288. package/extensions/dm-lens/dist/clients/lsp/wait-policy/capability-snapshot.js +0 -1
  289. package/extensions/dm-lens/dist/clients/lsp/wait-policy/classification.js +0 -36
  290. package/extensions/dm-lens/dist/clients/lsp/wait-policy/index.js +0 -3
  291. package/extensions/dm-lens/dist/clients/lsp/wait-policy/strategies.js +0 -175
  292. package/extensions/dm-lens/dist/clients/lsp/watch-queue.js +0 -40
  293. package/extensions/dm-lens/dist/clients/lsp/workspace-diagnostics-cache.js +0 -267
  294. package/extensions/dm-lens/dist/clients/lsp/workspace-diagnostics-session.js +0 -7
  295. package/extensions/dm-lens/dist/clients/lsp/workspace-sweep-hold.js +0 -93
  296. package/extensions/dm-lens/dist/clients/lsp-budget.js +0 -83
  297. package/extensions/dm-lens/dist/clients/lsp-document-symbols.js +0 -93
  298. package/extensions/dm-lens/dist/clients/lsp-lazy.js +0 -8
  299. package/extensions/dm-lens/dist/clients/lsp-mutation.js +0 -273
  300. package/extensions/dm-lens/dist/clients/lsp-status.js +0 -37
  301. package/extensions/dm-lens/dist/clients/map-with-concurrency.js +0 -20
  302. package/extensions/dm-lens/dist/clients/mcp/analyze.js +0 -251
  303. package/extensions/dm-lens/dist/clients/mcp/host-shim.js +0 -14
  304. package/extensions/dm-lens/dist/clients/mcp/ipc.js +0 -302
  305. package/extensions/dm-lens/dist/clients/mcp/review.js +0 -137
  306. package/extensions/dm-lens/dist/clients/mcp/session.js +0 -305
  307. package/extensions/dm-lens/dist/clients/memory-sampler.js +0 -107
  308. package/extensions/dm-lens/dist/clients/message-end-attribution.js +0 -18
  309. package/extensions/dm-lens/dist/clients/metrics-client.js +0 -80
  310. package/extensions/dm-lens/dist/clients/metrics-history.js +0 -255
  311. package/extensions/dm-lens/dist/clients/middle-man-analysis.js +0 -161
  312. package/extensions/dm-lens/dist/clients/model-provider.js +0 -31
  313. package/extensions/dm-lens/dist/clients/module-report-lsp.js +0 -140
  314. package/extensions/dm-lens/dist/clients/module-report.js +0 -1642
  315. package/extensions/dm-lens/dist/clients/mutating-tool.js +0 -377
  316. package/extensions/dm-lens/dist/clients/mutation-attribution.js +0 -168
  317. package/extensions/dm-lens/dist/clients/mutation-bridge.js +0 -102
  318. package/extensions/dm-lens/dist/clients/ndjson-logger.js +0 -471
  319. package/extensions/dm-lens/dist/clients/observed-mutation-sources.js +0 -43
  320. package/extensions/dm-lens/dist/clients/observed-mutation.js +0 -709
  321. package/extensions/dm-lens/dist/clients/oldtext-autopatch.js +0 -100
  322. package/extensions/dm-lens/dist/clients/opaque-mutation-scan.js +0 -313
  323. package/extensions/dm-lens/dist/clients/opengrep-client.js +0 -216
  324. package/extensions/dm-lens/dist/clients/opengrep-config.js +0 -52
  325. package/extensions/dm-lens/dist/clients/package-manager.js +0 -303
  326. package/extensions/dm-lens/dist/clients/package-root.js +0 -25
  327. package/extensions/dm-lens/dist/clients/partial-edit-apply.js +0 -337
  328. package/extensions/dm-lens/dist/clients/path-attribution-telemetry.js +0 -31
  329. package/extensions/dm-lens/dist/clients/path-keyed-map.js +0 -57
  330. package/extensions/dm-lens/dist/clients/path-utils.js +0 -476
  331. package/extensions/dm-lens/dist/clients/performance-report.js +0 -291
  332. package/extensions/dm-lens/dist/clients/persist-debounce.js +0 -37
  333. package/extensions/dm-lens/dist/clients/persistent-reverify.js +0 -165
  334. package/extensions/dm-lens/dist/clients/php-cs-fixer-config.js +0 -15
  335. package/extensions/dm-lens/dist/clients/pipeline.js +0 -1091
  336. package/extensions/dm-lens/dist/clients/post-autofix-notice.js +0 -19
  337. package/extensions/dm-lens/dist/clients/print-mode.js +0 -3
  338. package/extensions/dm-lens/dist/clients/probe-home-state.js +0 -62
  339. package/extensions/dm-lens/dist/clients/process-bridge.js +0 -20
  340. package/extensions/dm-lens/dist/clients/process-singletons.js +0 -69
  341. package/extensions/dm-lens/dist/clients/process-snapshot.js +0 -22
  342. package/extensions/dm-lens/dist/clients/project-changes.js +0 -112
  343. package/extensions/dm-lens/dist/clients/project-conventions.js +0 -152
  344. package/extensions/dm-lens/dist/clients/project-diagnostics/cache.js +0 -91
  345. package/extensions/dm-lens/dist/clients/project-diagnostics/extractors.js +0 -53
  346. package/extensions/dm-lens/dist/clients/project-diagnostics/fresh-fetch.js +0 -408
  347. package/extensions/dm-lens/dist/clients/project-diagnostics/runner-adapters/call-graph-impact.js +0 -64
  348. package/extensions/dm-lens/dist/clients/project-diagnostics/runner-adapters/dead-code.js +0 -38
  349. package/extensions/dm-lens/dist/clients/project-diagnostics/runner-adapters/gitleaks.js +0 -21
  350. package/extensions/dm-lens/dist/clients/project-diagnostics/runner-adapters/govulncheck.js +0 -23
  351. package/extensions/dm-lens/dist/clients/project-diagnostics/runner-adapters/jscpd.js +0 -28
  352. package/extensions/dm-lens/dist/clients/project-diagnostics/runner-adapters/knip.js +0 -45
  353. package/extensions/dm-lens/dist/clients/project-diagnostics/runner-adapters/madge.js +0 -34
  354. package/extensions/dm-lens/dist/clients/project-diagnostics/runner-adapters/opengrep.js +0 -32
  355. package/extensions/dm-lens/dist/clients/project-diagnostics/runner-adapters/runner-findings.js +0 -79
  356. package/extensions/dm-lens/dist/clients/project-diagnostics/runner-adapters/trivy.js +0 -41
  357. package/extensions/dm-lens/dist/clients/project-diagnostics/scanner.js +0 -349
  358. package/extensions/dm-lens/dist/clients/project-diagnostics/types.js +0 -1
  359. package/extensions/dm-lens/dist/clients/project-lens-config.js +0 -437
  360. package/extensions/dm-lens/dist/clients/project-report.js +0 -527
  361. package/extensions/dm-lens/dist/clients/project-scale.js +0 -60
  362. package/extensions/dm-lens/dist/clients/project-scan-policy.js +0 -4
  363. package/extensions/dm-lens/dist/clients/project-snapshot-fingerprint.js +0 -39
  364. package/extensions/dm-lens/dist/clients/project-snapshot-persist-worker.js +0 -14
  365. package/extensions/dm-lens/dist/clients/project-snapshot.js +0 -1178
  366. package/extensions/dm-lens/dist/clients/project-trust.js +0 -104
  367. package/extensions/dm-lens/dist/clients/python-environment.js +0 -120
  368. package/extensions/dm-lens/dist/clients/python-provenance.js +0 -551
  369. package/extensions/dm-lens/dist/clients/quiet-window-config.js +0 -16
  370. package/extensions/dm-lens/dist/clients/quiet-window.js +0 -126
  371. package/extensions/dm-lens/dist/clients/read-bridge.js +0 -46
  372. package/extensions/dm-lens/dist/clients/read-expansion.js +0 -218
  373. package/extensions/dm-lens/dist/clients/read-guard-logger.js +0 -178
  374. package/extensions/dm-lens/dist/clients/read-guard-tool-lines.js +0 -1042
  375. package/extensions/dm-lens/dist/clients/read-guard.js +0 -1096
  376. package/extensions/dm-lens/dist/clients/recent-touches.js +0 -126
  377. package/extensions/dm-lens/dist/clients/redact/secrets.js +0 -386
  378. package/extensions/dm-lens/dist/clients/resource-sampler.js +0 -344
  379. package/extensions/dm-lens/dist/clients/reverse-deps.js +0 -227
  380. package/extensions/dm-lens/dist/clients/review-graph/builder.js +0 -3635
  381. package/extensions/dm-lens/dist/clients/review-graph/format.js +0 -30
  382. package/extensions/dm-lens/dist/clients/review-graph/git-identity.js +0 -115
  383. package/extensions/dm-lens/dist/clients/review-graph/import-resolvers.js +0 -325
  384. package/extensions/dm-lens/dist/clients/review-graph/persist-worker.js +0 -8
  385. package/extensions/dm-lens/dist/clients/review-graph/query.js +0 -195
  386. package/extensions/dm-lens/dist/clients/review-graph/revision-drift.js +0 -3
  387. package/extensions/dm-lens/dist/clients/review-graph/service.js +0 -60
  388. package/extensions/dm-lens/dist/clients/review-graph/shared-extraction-ir.js +0 -54
  389. package/extensions/dm-lens/dist/clients/review-graph/symbol-id.js +0 -29
  390. package/extensions/dm-lens/dist/clients/review-graph/tsconfig-paths.js +0 -253
  391. package/extensions/dm-lens/dist/clients/review-graph/types.js +0 -1
  392. package/extensions/dm-lens/dist/clients/review-graph/workspace-modules.js +0 -374
  393. package/extensions/dm-lens/dist/clients/review-graph-logger.js +0 -51
  394. package/extensions/dm-lens/dist/clients/ruff-client.js +0 -109
  395. package/extensions/dm-lens/dist/clients/rules-scanner.js +0 -113
  396. package/extensions/dm-lens/dist/clients/run-duration.js +0 -9
  397. package/extensions/dm-lens/dist/clients/runtime-agent-end.js +0 -608
  398. package/extensions/dm-lens/dist/clients/runtime-config.js +0 -39
  399. package/extensions/dm-lens/dist/clients/runtime-context.js +0 -155
  400. package/extensions/dm-lens/dist/clients/runtime-coordinator.js +0 -817
  401. package/extensions/dm-lens/dist/clients/runtime-session.js +0 -1625
  402. package/extensions/dm-lens/dist/clients/runtime-tool-call.js +0 -868
  403. package/extensions/dm-lens/dist/clients/runtime-tool-result.js +0 -1317
  404. package/extensions/dm-lens/dist/clients/runtime-turn.js +0 -2333
  405. package/extensions/dm-lens/dist/clients/rust-client.js +0 -48
  406. package/extensions/dm-lens/dist/clients/safe-spawn.js +0 -1267
  407. package/extensions/dm-lens/dist/clients/sanitize.js +0 -174
  408. package/extensions/dm-lens/dist/clients/scan-utils.js +0 -7
  409. package/extensions/dm-lens/dist/clients/scratch-tree-policy.js +0 -57
  410. package/extensions/dm-lens/dist/clients/search-read-registration.js +0 -59
  411. package/extensions/dm-lens/dist/clients/secret-findings.js +0 -69
  412. package/extensions/dm-lens/dist/clients/security-scan-client.js +0 -208
  413. package/extensions/dm-lens/dist/clients/session-event-guard.js +0 -111
  414. package/extensions/dm-lens/dist/clients/session-lifecycle.js +0 -173
  415. package/extensions/dm-lens/dist/clients/session-start-observability.js +0 -47
  416. package/extensions/dm-lens/dist/clients/session-state-store.js +0 -63
  417. package/extensions/dm-lens/dist/clients/session-summary.js +0 -8
  418. package/extensions/dm-lens/dist/clients/sessionstart-logger.js +0 -22
  419. package/extensions/dm-lens/dist/clients/sg-runner.js +0 -627
  420. package/extensions/dm-lens/dist/clients/sgconfig.js +0 -280
  421. package/extensions/dm-lens/dist/clients/shared-checkout-guard.js +0 -177
  422. package/extensions/dm-lens/dist/clients/single-flight.js +0 -52
  423. package/extensions/dm-lens/dist/clients/situational-tool-telemetry.js +0 -85
  424. package/extensions/dm-lens/dist/clients/skills-resolver.js +0 -38
  425. package/extensions/dm-lens/dist/clients/slow-fs.js +0 -77
  426. package/extensions/dm-lens/dist/clients/smells-rollup.js +0 -118
  427. package/extensions/dm-lens/dist/clients/source-filter.js +0 -320
  428. package/extensions/dm-lens/dist/clients/source-walker.js +0 -96
  429. package/extensions/dm-lens/dist/clients/spawn-output-cap.js +0 -35
  430. package/extensions/dm-lens/dist/clients/spawn-timeout-cooldown.js +0 -51
  431. package/extensions/dm-lens/dist/clients/stale-marker.js +0 -1
  432. package/extensions/dm-lens/dist/clients/startup-scan.js +0 -222
  433. package/extensions/dm-lens/dist/clients/startup-timing.js +0 -67
  434. package/extensions/dm-lens/dist/clients/string-utils.js +0 -6
  435. package/extensions/dm-lens/dist/clients/subagent-mode.js +0 -40
  436. package/extensions/dm-lens/dist/clients/symbol-containment.js +0 -16
  437. package/extensions/dm-lens/dist/clients/symbol-types.js +0 -1
  438. package/extensions/dm-lens/dist/clients/test-runner-client.js +0 -1504
  439. package/extensions/dm-lens/dist/clients/test-runner-delivery.js +0 -260
  440. package/extensions/dm-lens/dist/clients/todo-scanner.js +0 -164
  441. package/extensions/dm-lens/dist/clients/tool-agreement.js +0 -377
  442. package/extensions/dm-lens/dist/clients/tool-config.js +0 -218
  443. package/extensions/dm-lens/dist/clients/tool-cwd.js +0 -235
  444. package/extensions/dm-lens/dist/clients/tool-definition.js +0 -22
  445. package/extensions/dm-lens/dist/clients/tool-event.js +0 -18
  446. package/extensions/dm-lens/dist/clients/tool-policy.js +0 -2393
  447. package/extensions/dm-lens/dist/clients/tool-probe.js +0 -5
  448. package/extensions/dm-lens/dist/clients/tool-render.js +0 -79
  449. package/extensions/dm-lens/dist/clients/tool-set-policy.js +0 -70
  450. package/extensions/dm-lens/dist/clients/tree-sitter-cache.js +0 -206
  451. package/extensions/dm-lens/dist/clients/tree-sitter-client.js +0 -2787
  452. package/extensions/dm-lens/dist/clients/tree-sitter-logger.js +0 -77
  453. package/extensions/dm-lens/dist/clients/tree-sitter-navigator.js +0 -198
  454. package/extensions/dm-lens/dist/clients/tree-sitter-query-loader.js +0 -318
  455. package/extensions/dm-lens/dist/clients/tree-sitter-shared.js +0 -87
  456. package/extensions/dm-lens/dist/clients/tree-sitter-symbol-extractor.js +0 -957
  457. package/extensions/dm-lens/dist/clients/trivy-client.js +0 -305
  458. package/extensions/dm-lens/dist/clients/tui-fit.js +0 -26
  459. package/extensions/dm-lens/dist/clients/turn-context.js +0 -48
  460. package/extensions/dm-lens/dist/clients/turn-end/lane.js +0 -1
  461. package/extensions/dm-lens/dist/clients/turn-end/lanes/govulncheck.js +0 -54
  462. package/extensions/dm-lens/dist/clients/turn-end/lanes/secrets.js +0 -131
  463. package/extensions/dm-lens/dist/clients/turn-summary-render.js +0 -56
  464. package/extensions/dm-lens/dist/clients/turn-summary.js +0 -84
  465. package/extensions/dm-lens/dist/clients/typos-config.js +0 -9
  466. package/extensions/dm-lens/dist/clients/user-notify.js +0 -15
  467. package/extensions/dm-lens/dist/clients/vanished-instance-marker.js +0 -18
  468. package/extensions/dm-lens/dist/clients/warm-attach.js +0 -210
  469. package/extensions/dm-lens/dist/clients/widget-state.js +0 -963
  470. package/extensions/dm-lens/dist/clients/word-index-logger.js +0 -21
  471. package/extensions/dm-lens/dist/clients/word-index-store.js +0 -222
  472. package/extensions/dm-lens/dist/clients/word-index.js +0 -1426
  473. package/extensions/dm-lens/dist/clients/workspace-topology.js +0 -261
  474. package/extensions/dm-lens/dist/clients/write-ordering-guard.js +0 -24
  475. package/extensions/dm-lens/dist/clients/zizmor-config.js +0 -160
  476. package/extensions/dm-lens/dist/i18n.js +0 -67
  477. package/extensions/dm-lens/dist/index.js +0 -1782
  478. package/extensions/dm-lens/dist/mcp/analyze-cli.js +0 -178
  479. package/extensions/dm-lens/dist/mcp/build-staleness.js +0 -55
  480. package/extensions/dm-lens/dist/mcp/cli.js +0 -78
  481. package/extensions/dm-lens/dist/mcp/server.js +0 -1208
  482. package/extensions/dm-lens/dist/mcp/worker.js +0 -33
  483. package/extensions/dm-lens/dist/scripts/lib/process-scan.mjs +0 -256
  484. package/extensions/dm-lens/dist/scripts/lib/skills-predicate.mjs +0 -53
  485. package/extensions/dm-lens/dist/scripts/lib/web-tree-sitter-dir.mjs +0 -45
  486. package/extensions/dm-lens/dist/tools/activate-tools.js +0 -61
  487. package/extensions/dm-lens/dist/tools/ast-grep-outline.js +0 -127
  488. package/extensions/dm-lens/dist/tools/ast-grep-replace.js +0 -226
  489. package/extensions/dm-lens/dist/tools/ast-grep-search.js +0 -687
  490. package/extensions/dm-lens/dist/tools/effective-config.js +0 -59
  491. package/extensions/dm-lens/dist/tools/lens-diagnostic-mark.js +0 -240
  492. package/extensions/dm-lens/dist/tools/lens-diagnostics.js +0 -1484
  493. package/extensions/dm-lens/dist/tools/lsp-diagnostics.js +0 -1088
  494. package/extensions/dm-lens/dist/tools/lsp-navigation.js +0 -1194
  495. package/extensions/dm-lens/dist/tools/lsp-structured-output.js +0 -277
  496. package/extensions/dm-lens/dist/tools/module-report.js +0 -332
  497. package/extensions/dm-lens/dist/tools/project-report.js +0 -72
  498. package/extensions/dm-lens/dist/tools/render-compact.js +0 -272
  499. package/extensions/dm-lens/dist/tools/scan-progress.js +0 -31
  500. package/extensions/dm-lens/dist/tools/shared.js +0 -26
  501. package/extensions/dm-lens/dist/tools/symbol-search.js +0 -133
  502. package/extensions/dm-mcp-adapter/dist/abort.js +0 -35
  503. package/extensions/dm-mcp-adapter/dist/agent-dir.js +0 -45
  504. package/extensions/dm-mcp-adapter/dist/agent-plugin-loader.js +0 -392
  505. package/extensions/dm-mcp-adapter/dist/agent-plugin-provenance.js +0 -26
  506. package/extensions/dm-mcp-adapter/dist/bearer-command-resolver.js +0 -182
  507. package/extensions/dm-mcp-adapter/dist/claude-plugin-loader.js +0 -350
  508. package/extensions/dm-mcp-adapter/dist/config.js +0 -1310
  509. package/extensions/dm-mcp-adapter/dist/consent-manager.js +0 -84
  510. package/extensions/dm-mcp-adapter/dist/elicitation-handler.js +0 -308
  511. package/extensions/dm-mcp-adapter/dist/errors.js +0 -225
  512. package/extensions/dm-mcp-adapter/dist/http-ca.js +0 -71
  513. package/extensions/dm-mcp-adapter/dist/jev-client.js +0 -359
  514. package/extensions/dm-mcp-adapter/dist/jev-contracts.js +0 -1
  515. package/extensions/dm-mcp-adapter/dist/jev-key-store.js +0 -176
  516. package/extensions/dm-mcp-adapter/dist/json-schema-validator.js +0 -70
  517. package/extensions/dm-mcp-adapter/dist/lifecycle.js +0 -387
  518. package/extensions/dm-mcp-adapter/dist/logger.js +0 -115
  519. package/extensions/dm-mcp-adapter/dist/mcp-auth-fetch.js +0 -86
  520. package/extensions/dm-mcp-adapter/dist/mcp-auth-flow.js +0 -949
  521. package/extensions/dm-mcp-adapter/dist/mcp-auth.js +0 -997
  522. package/extensions/dm-mcp-adapter/dist/mcp-bearer-store.js +0 -182
  523. package/extensions/dm-mcp-adapter/dist/mcp-callback-server.js +0 -381
  524. package/extensions/dm-mcp-adapter/dist/mcp-oauth-provider.js +0 -524
  525. package/extensions/dm-mcp-adapter/dist/mcp-probe.js +0 -151
  526. package/extensions/dm-mcp-adapter/dist/mcp-tasks.js +0 -300
  527. package/extensions/dm-mcp-adapter/dist/mcp-trace.js +0 -215
  528. package/extensions/dm-mcp-adapter/dist/metadata-cache.js +0 -267
  529. package/extensions/dm-mcp-adapter/dist/npx-resolver.js +0 -465
  530. package/extensions/dm-mcp-adapter/dist/package-mcp-loader.js +0 -135
  531. package/extensions/dm-mcp-adapter/dist/request-headers-command.js +0 -294
  532. package/extensions/dm-mcp-adapter/dist/resource-tools.js +0 -7
  533. package/extensions/dm-mcp-adapter/dist/runtime-owner.js +0 -94
  534. package/extensions/dm-mcp-adapter/dist/sampling-handler.js +0 -213
  535. package/extensions/dm-mcp-adapter/dist/secure-keyring.js +0 -191
  536. package/extensions/dm-mcp-adapter/dist/server-manager.js +0 -1514
  537. package/extensions/dm-mcp-adapter/dist/session-approvals.js +0 -127
  538. package/extensions/dm-mcp-adapter/dist/session-recovery.js +0 -82
  539. package/extensions/dm-mcp-adapter/dist/state.js +0 -1
  540. package/extensions/dm-mcp-adapter/dist/types.js +0 -286
  541. package/extensions/dm-mcp-adapter/dist/ui-app-bridge-helpers.js +0 -36
  542. package/extensions/dm-mcp-adapter/dist/ui-resource-handler.js +0 -204
  543. package/extensions/dm-mcp-adapter/dist/ui-stream-types.js +0 -58
  544. package/extensions/dm-mcp-adapter/dist/ui-tool-visibility.js +0 -26
  545. package/extensions/dm-mcp-adapter/dist/unix-socket-transport.js +0 -83
  546. package/extensions/dm-mcp-adapter/dist/utils.js +0 -382
@@ -1,608 +0,0 @@
1
- import * as nodeFs from "node:fs";
2
- import * as path from "node:path";
3
- import { applyConservativeActionableWarningFixes, checkActionableWarningsReportFresh } from "./actionable-warnings.js";
4
- import { publishFilesTouched } from "./bus-publish.js";
5
- import { publishAutofixStart, publishFormatStart } from "./format-events-publish.js";
6
- import { logLatency } from "./latency-logger.js";
7
- import { isPathIgnoredByProject } from "./file-utils.js";
8
- import { admitBounded, emitBounded } from "./bounded-telemetry.js";
9
- import { bounded } from "./deadline-utils.js";
10
- import { HOOK_WALL_BUDGET_MS } from "./hook-budgets.js";
11
- import { newLspMutationCorrelationId } from "./lsp-mutation.js";
12
- import { getGlobalActionableWarningMaxFixes } from "./lens-config.js";
13
- import { resyncLspFile, runAutofix, runFormatPhase } from "./pipeline.js";
14
- import { getAmbientAbortSignal } from "./safe-spawn.js";
15
- import { getAutofixPolicyForFile, hasBiomeConfig, hasDetektConfig, hasEslintConfig, hasGolangciConfig, hasKtfmtConfig, hasKtlintConfig, hasOxlintConfig, hasRubocopConfig, hasSqlfluffConfig, hasStylelintConfig } from "./tool-policy.js";
16
- const DEFERRED_FORMAT_STALE_AFTER_MS = 10 * 60000;
17
- const DEFERRED_FORMAT_CONCURRENCY = 3;
18
- function recordProjectChange(args) {
19
- args.runtime.recordProjectMutation?.({
20
- filePath: args.filePath,
21
- source: args.source,
22
- cwd: args.cwd,
23
- onAppendError: (err) => args.dbg(`project change log append failed for ${args.filePath}: ${err}`)
24
- });
25
- }
26
- export async function handleAgentEnd({ signal, ctxCwd, getFlag, getFlagSource, notify, dbg, runtime, cacheManager, getFormatService, biomeClient, ruffClient, getAutofixClients, currentSessionId, staleAfterMs = DEFERRED_FORMAT_STALE_AFTER_MS }) {
27
- const { claimed, staleClaimed, deferredToOwner, droppedOrphans } = runtime.claimDeferredMutations(currentSessionId, Date.now(), staleAfterMs, ctxCwd ?? runtime.projectRoot);
28
- const records = [...claimed, ...staleClaimed];
29
- const scheduledTurnId = records[0]?.queuedTurnId;
30
- const requeuedKinds = new Set;
31
- const requeue = (pending, reason) => {
32
- if (pending.length === 0)
33
- return;
34
- const kinds = new Set;
35
- const toolNames = new Set;
36
- for (const record of pending) {
37
- for (const kind of record.kinds) {
38
- requeuedKinds.add(kind);
39
- kinds.add(kind);
40
- }
41
- for (const toolName of record.toolNames)
42
- toolNames.add(toolName);
43
- }
44
- logLatency({
45
- type: "phase",
46
- toolName: "agent_end",
47
- filePath: ctxCwd ?? runtime.projectRoot,
48
- phase: "agent_end_deferred_mutation_requeue",
49
- turnId: pending[0]?.queuedTurnId,
50
- durationMs: 0,
51
- metadata: {
52
- reason,
53
- kinds: [...kinds].sort((a, b) => a < b ? -1 : a > b ? 1 : 0),
54
- fileCount: pending.length,
55
- toolNames: [...toolNames].sort((a, b) => a < b ? -1 : a > b ? 1 : 0)
56
- }
57
- });
58
- runtime.requeueDeferredMutations(pending);
59
- };
60
- const rootActionableAutofixEnabled = !!getFlag("lens-actionable-warning-autofix");
61
- const actionableWarningsWriterEnabled = !!getFlag("lens-actionable-warnings");
62
- const inspectActionableReport = actionableWarningsWriterEnabled && typeof cacheManager.readCache === "function" && (rootActionableAutofixEnabled || getFlagSource !== undefined);
63
- if (droppedOrphans.length > 0) {
64
- dbg(`agent_end deferred_format: left ${droppedOrphans.length} orphaned file(s) queued due to a mismatched origin (unclaimed >${staleAfterMs}ms, not formatted by this flush): ${droppedOrphans.map((r) => `${r.filePath} origin=${r.originCwd}`).join(", ")}`);
65
- const firstSeenOrphans = [];
66
- for (const record of droppedOrphans) {
67
- const isFirstOccurrence = admitBounded("agent_end_deferred_format_orphan_origin_mismatch", record.filePath, {
68
- ledgerKind: "path-attribution-orphan-unresolved",
69
- risingEdgePer: "identity",
70
- reason: `origin=${record.originCwd} unclaimed >${staleAfterMs}ms`
71
- });
72
- if (isFirstOccurrence)
73
- firstSeenOrphans.push(record);
74
- }
75
- if (firstSeenOrphans.length > 0) {
76
- emitBounded("agent_end_deferred_format_orphan_origin_mismatch", ctxCwd ?? runtime.projectRoot, {
77
- type: "phase",
78
- toolName: "agent_end",
79
- durationMs: 0,
80
- metadata: {
81
- fileCount: firstSeenOrphans.length,
82
- staleAfterMs,
83
- currentOriginCwd: ctxCwd ?? runtime.projectRoot,
84
- files: firstSeenOrphans.map((r) => ({
85
- filePath: r.filePath,
86
- originCwd: r.originCwd,
87
- ownerSessionId: r.ownerSessionId,
88
- queuedTurnIndex: r.queuedTurnIndex,
89
- ageMs: Date.now() - r.lastTouchedAt
90
- }))
91
- }
92
- });
93
- }
94
- }
95
- if (records.length === 0 && !inspectActionableReport)
96
- return;
97
- if (deferredToOwner.length > 0) {
98
- dbg(`agent_end deferred_format: leaving ${deferredToOwner.length} file(s) queued for their owning session (${deferredToOwner.map((r) => `${r.filePath} owner=${r.ownerSessionId}`).join(", ")})`);
99
- }
100
- if (staleClaimed.length > 0) {
101
- dbg(`agent_end deferred_format: staleness fallback claimed ${staleClaimed.length} orphaned file(s) (unclaimed >${staleAfterMs}ms): ${staleClaimed.map((r) => r.filePath).join(", ")}`);
102
- logLatency({
103
- type: "phase",
104
- toolName: "agent_end",
105
- filePath: ctxCwd ?? runtime.projectRoot,
106
- phase: "agent_end_deferred_format_stale_claim",
107
- turnId: scheduledTurnId,
108
- durationMs: 0,
109
- metadata: {
110
- fileCount: staleClaimed.length,
111
- staleAfterMs,
112
- files: staleClaimed.map((r) => ({
113
- filePath: r.filePath,
114
- ownerSessionId: r.ownerSessionId,
115
- queuedTurnIndex: r.queuedTurnIndex,
116
- ageMs: Date.now() - r.lastTouchedAt
117
- }))
118
- }
119
- });
120
- }
121
- const startedAt = Date.now();
122
- const summary = {
123
- queued: records.length,
124
- formatted: 0,
125
- changed: [],
126
- failed: [],
127
- skipped: [],
128
- unavailable: []
129
- };
130
- const deferredFormatFixes = [];
131
- const deferredAutofixFixes = [];
132
- const deferredAutofixChanged = new Set;
133
- const ambientSignal = signal ?? getAmbientAbortSignal();
134
- const executedAutofixScopes = new Set;
135
- const autofixRecords = records.filter((candidate) => candidate.kinds.has("autofix"));
136
- if (autofixRecords.length > 0 && (!biomeClient || !ruffClient) && getAutofixClients) {
137
- ({ biomeClient, ruffClient } = await getAutofixClients());
138
- }
139
- for (let autofixIndex = 0;autofixIndex < autofixRecords.length; autofixIndex++) {
140
- const record = autofixRecords[autofixIndex];
141
- if (ambientSignal?.aborted) {
142
- requeue(autofixRecords.slice(autofixIndex).map((pending) => ({
143
- ...pending,
144
- kinds: new Set(["autofix"]),
145
- toolNames: new Set(pending.toolNames)
146
- })), "abort");
147
- break;
148
- }
149
- const filePath = path.resolve(record.filePath);
150
- if (!nodeFs.existsSync(filePath)) {
151
- summary.skipped.push({ filePath, reason: "missing" });
152
- continue;
153
- }
154
- if (!biomeClient || !ruffClient) {
155
- dbg(`agent_end deferred_autofix: clients unavailable for ${filePath}`);
156
- requeue([
157
- {
158
- ...record,
159
- kinds: new Set(["autofix"]),
160
- toolNames: new Set(record.toolNames)
161
- }
162
- ], "clients-unavailable");
163
- continue;
164
- }
165
- const policy = getAutofixPolicyForFile(filePath, {
166
- hasEslintConfig: hasEslintConfig(record.cwd),
167
- hasStylelintConfig: hasStylelintConfig(record.cwd),
168
- hasSqlfluffConfig: hasSqlfluffConfig(record.cwd),
169
- hasRubocopConfig: hasRubocopConfig(record.cwd),
170
- hasBiomeConfig: hasBiomeConfig(record.cwd),
171
- hasGolangciConfig: hasGolangciConfig(record.cwd),
172
- hasDetektConfig: hasDetektConfig(record.cwd),
173
- hasOxlintConfig: hasOxlintConfig(record.cwd),
174
- hasKtfmtConfig: hasKtfmtConfig(record.cwd),
175
- hasKtlintConfig: hasKtlintConfig(record.cwd)
176
- });
177
- const scopeKey = policy?.scope && policy.scope !== "file" ? `${policy.defaultTool ?? "unknown"}:${path.resolve(record.cwd)}` : `${policy?.defaultTool ?? "unknown"}:${filePath}`;
178
- if (executedAutofixScopes.has(scopeKey))
179
- continue;
180
- executedAutofixScopes.add(scopeKey);
181
- try {
182
- const result = await runAutofix(filePath, record.cwd, getFlag, dbg, { biomeClient, ruffClient, fixedThisTurn: runtime.fixedThisTurn }, getFlagSource);
183
- const tools = result.autofixTools.map((label) => label.split(":")[0]);
184
- for (const changed of result.changedFiles) {
185
- const changedPath = path.resolve(changed);
186
- deferredAutofixChanged.add(changedPath);
187
- for (const tool of tools)
188
- deferredAutofixFixes.push({
189
- path: changedPath,
190
- tool,
191
- kind: "autofix"
192
- });
193
- if (!nodeFs.existsSync(changedPath))
194
- continue;
195
- recordProjectChange({
196
- runtime,
197
- cwd: record.turnStateCwd,
198
- filePath: changedPath,
199
- source: "autofix",
200
- dbg
201
- });
202
- if (!getFlag("no-read-guard"))
203
- runtime.readGuard.recordWritten(changedPath);
204
- const content = nodeFs.readFileSync(changedPath, "utf-8");
205
- cacheManager.addModifiedRange(changedPath, { start: 1, end: content.split(`
206
- `).length }, /^import\s/m.test(content), record.turnStateCwd, currentSessionId ?? runtime.telemetrySessionId, "pi");
207
- }
208
- } catch (err) {
209
- const message = err instanceof Error ? err.message : String(err);
210
- summary.failed.push({ filePath, errors: [message] });
211
- requeue([
212
- {
213
- ...record,
214
- kinds: new Set(["autofix"]),
215
- toolNames: new Set(record.toolNames)
216
- }
217
- ], "autofix-failed");
218
- }
219
- }
220
- if (deferredAutofixFixes.length > 0) {
221
- publishFilesTouched({
222
- reason: "autofix",
223
- paths: [...new Set(deferredAutofixFixes.map((fix) => fix.path))],
224
- cwd: ctxCwd ?? runtime.projectRoot,
225
- dbg,
226
- fixes: deferredAutofixFixes
227
- });
228
- }
229
- dbg(`agent_end deferred_format: ${records.length} file(s)`);
230
- logLatency({
231
- type: "phase",
232
- toolName: "agent_end",
233
- filePath: ctxCwd ?? runtime.projectRoot,
234
- phase: "agent_end_deferred_format_start",
235
- turnId: scheduledTurnId,
236
- durationMs: 0,
237
- metadata: {
238
- fileCount: records.length,
239
- currentSessionId,
240
- records: records.map((r) => ({
241
- filePath: r.filePath,
242
- queuedTurnIndex: r.queuedTurnIndex,
243
- ownerSessionId: r.ownerSessionId,
244
- staleClaim: staleClaimed.includes(r)
245
- })),
246
- deferredToOwnerCount: deferredToOwner.length
247
- }
248
- });
249
- if (records.length > 0) {
250
- publishFormatStart({
251
- cwd: ctxCwd ?? runtime.projectRoot,
252
- paths: records.map((r) => r.filePath),
253
- dbg,
254
- kinds: [...new Set(records.flatMap((record) => [...record.kinds]))]
255
- });
256
- }
257
- const formatRecords = records.filter((record) => record.kinds.has("format")).filter((record) => {
258
- const disabled = !!getFlag("no-autoformat", record.filePath);
259
- if (disabled) {
260
- const source = getFlagSource?.("no-autoformat", record.filePath);
261
- dbg(`agent_end deferred_format: skipping ${record.filePath} (--no-autoformat${source ? `, source=${source}` : ""})`);
262
- summary.skipped.push({
263
- filePath: record.filePath,
264
- reason: "no-autoformat"
265
- });
266
- }
267
- return !disabled;
268
- });
269
- if (formatRecords.length > 0) {
270
- const work = [];
271
- work.length = formatRecords.length;
272
- const started = new Set;
273
- let nextIndex = 0;
274
- const worker = async () => {
275
- while (nextIndex < formatRecords.length) {
276
- const index = nextIndex++;
277
- if (ambientSignal?.aborted)
278
- return;
279
- const record = formatRecords[index];
280
- const fileStart = Date.now();
281
- const filePath = path.resolve(record.filePath);
282
- started.add(index);
283
- if (!nodeFs.existsSync(filePath)) {
284
- work[index] = {
285
- record,
286
- filePath,
287
- fileStart,
288
- result: undefined,
289
- missing: true
290
- };
291
- continue;
292
- }
293
- try {
294
- work[index] = {
295
- record,
296
- filePath,
297
- fileStart,
298
- result: await bounded(runFormatPhase(filePath, getFormatService, dbg, ambientSignal, 30000, "agent_settled"), {
299
- ms: HOOK_WALL_BUDGET_MS.agent_settled,
300
- signal: ambientSignal,
301
- hook: "agent_settled",
302
- label: "deferred-format"
303
- })
304
- };
305
- } catch (err) {
306
- work[index] = {
307
- record,
308
- filePath,
309
- fileStart,
310
- result: undefined,
311
- error: err instanceof Error ? err.message : String(err)
312
- };
313
- }
314
- }
315
- };
316
- await Promise.all(Array.from({ length: Math.min(DEFERRED_FORMAT_CONCURRENCY, formatRecords.length) }, () => worker()));
317
- if (ambientSignal?.aborted) {
318
- requeue(formatRecords.filter((_, index) => !started.has(index)).map((record) => ({
319
- ...record,
320
- kinds: new Set(["format"]),
321
- toolNames: new Set(record.toolNames)
322
- })), "abort");
323
- }
324
- for (const entry of work) {
325
- if (!entry)
326
- continue;
327
- await new Promise((resolve) => setImmediate(resolve));
328
- const { record, filePath, fileStart } = entry;
329
- if (entry.missing) {
330
- dbg(`agent_end deferred_format skipped missing file: ${filePath}`);
331
- if (!summary.skipped.some((item) => item.filePath === filePath && item.reason === "missing")) {
332
- summary.skipped.push({ filePath, reason: "missing" });
333
- }
334
- continue;
335
- }
336
- if (entry.error) {
337
- dbg(`agent_end deferred_format failed for ${filePath}: ${entry.error}`);
338
- summary.failed.push({ filePath, errors: [entry.error] });
339
- requeue([
340
- {
341
- ...record,
342
- kinds: new Set(["format"]),
343
- toolNames: new Set(record.toolNames)
344
- }
345
- ], "format-failed");
346
- continue;
347
- }
348
- const result = entry.result;
349
- if (!result) {
350
- if (ambientSignal?.aborted)
351
- continue;
352
- const reason = entry.error ?? "deferred formatter exceeded agent_settled budget";
353
- summary.failed.push({ filePath, errors: [reason] });
354
- requeue([
355
- {
356
- ...record,
357
- kinds: new Set(["format"]),
358
- toolNames: new Set(record.toolNames)
359
- }
360
- ], "format-failed");
361
- continue;
362
- }
363
- summary.formatted++;
364
- if (result.formatFailures.length > 0) {
365
- summary.failed.push({ filePath, errors: result.formatFailures });
366
- requeue([
367
- {
368
- ...record,
369
- kinds: new Set(["format"]),
370
- toolNames: new Set(record.toolNames)
371
- }
372
- ], "format-failed");
373
- }
374
- if (result.formatUnavailable.length > 0) {
375
- for (const u of result.formatUnavailable) {
376
- summary.unavailable.push({
377
- filePath,
378
- formatter: u.formatter,
379
- reason: u.reason
380
- });
381
- }
382
- }
383
- if (result.formatChanged) {
384
- summary.changed.push(filePath);
385
- for (const tool of result.formattersUsed) {
386
- deferredFormatFixes.push({ path: filePath, tool, kind: "format" });
387
- }
388
- const bookkeepingCwd = record.turnStateCwd;
389
- recordProjectChange({
390
- runtime,
391
- cwd: bookkeepingCwd,
392
- filePath,
393
- source: "format",
394
- dbg
395
- });
396
- if (!getFlag("no-read-guard")) {
397
- runtime.readGuard.recordWritten(filePath);
398
- }
399
- try {
400
- const content = nodeFs.readFileSync(filePath, "utf-8");
401
- const lineCount = content.split(`
402
- `).length;
403
- const hasImports = /^import\s/m.test(content);
404
- cacheManager.addModifiedRange(filePath, { start: 1, end: lineCount }, hasImports, bookkeepingCwd, currentSessionId ?? runtime.telemetrySessionId, "pi");
405
- } catch (err) {
406
- dbg(`agent_end deferred_format modified-range tracking failed for ${filePath}: ${err}`);
407
- }
408
- if (getFlag("lens-turn-summary")) {
409
- for (const tool of result.formattersUsed) {
410
- runtime.turnSummary.recordFormat(filePath, { tool });
411
- }
412
- }
413
- }
414
- if (result.fileContent) {
415
- await resyncLspFile(filePath, result.fileContent, true, false, getFlag, dbg);
416
- }
417
- dbg(`agent_end deferred_format file ${filePath}: changed=${result.formatChanged} duration=${Date.now() - fileStart}ms`);
418
- logLatency({
419
- type: "phase",
420
- toolName: "agent_end",
421
- filePath,
422
- phase: "deferred_format_file",
423
- turnId: record.queuedTurnId,
424
- durationMs: Date.now() - fileStart,
425
- metadata: {
426
- changed: result.formatChanged,
427
- formattersUsed: result.formattersUsed,
428
- failureCount: result.formatFailures.length
429
- }
430
- });
431
- }
432
- if (summary.changed.length > 0) {
433
- publishFilesTouched({
434
- reason: "format",
435
- paths: summary.changed,
436
- cwd: ctxCwd ?? runtime.projectRoot,
437
- dbg,
438
- fixes: deferredFormatFixes
439
- });
440
- }
441
- }
442
- for (const changedPath of deferredAutofixChanged) {
443
- if (!nodeFs.existsSync(changedPath))
444
- continue;
445
- const content = nodeFs.readFileSync(changedPath, "utf-8");
446
- await resyncLspFile(changedPath, content, true, false, getFlag, dbg);
447
- }
448
- if (inspectActionableReport) {
449
- const actionCwd = ctxCwd ?? runtime.projectRoot;
450
- const actionableWarningsMaxAgeMs = 10 * 60000;
451
- const actionReport = cacheManager.readCache("actionable-warnings", actionCwd, actionableWarningsMaxAgeMs);
452
- if (!actionReport?.data) {
453
- const inspection = typeof cacheManager.inspectCache === "function" ? cacheManager.inspectCache("actionable-warnings", actionCwd, actionableWarningsMaxAgeMs) : undefined;
454
- if (inspection === "missing") {
455
- dbg("agent_end actionable_warnings_autofix: cache absent, skipping fixes");
456
- } else if (inspection === "stale") {
457
- dbg("agent_end actionable_warnings_autofix: cache expired, skipping fixes");
458
- } else {
459
- dbg(`agent_end actionable_warnings_autofix: cache missing or expired${inspection ? ` (${inspection})` : ""}, skipping fixes`);
460
- }
461
- } else {
462
- const enabledFiles = actionReport.data.files.filter((file) => {
463
- if (isPathIgnoredByProject(file.filePath, ctxCwd ?? runtime.projectRoot)) {
464
- dbg(`agent_end actionable_warnings_autofix: skipped ${file.filePath} (ignored by project)`);
465
- return false;
466
- }
467
- const enabled = !!getFlag("lens-actionable-warning-autofix", file.filePath);
468
- if (!enabled) {
469
- const source = getFlagSource?.("lens-actionable-warning-autofix", file.filePath);
470
- dbg(`agent_end actionable_warnings_autofix: skipped ${file.filePath} (disabled${source ? `, source=${source}` : ""})`);
471
- }
472
- return enabled;
473
- });
474
- const eligibleCount = enabledFiles.reduce((total, file) => total + file.warnings.reduce((count, warning) => count + (warning.suppressed ? 0 : warning.actions.filter((action) => action.autoFixEligible).length), 0), 0);
475
- const eligibleReport = {
476
- ...actionReport.data,
477
- files: enabledFiles,
478
- summary: {
479
- ...actionReport.data.summary,
480
- files: enabledFiles.length,
481
- autoFixEligible: eligibleCount
482
- }
483
- };
484
- const freshness = checkActionableWarningsReportFresh({
485
- report: eligibleReport,
486
- currentProjectSeq: runtime.projectSeq,
487
- getFileSeq: (filePath) => runtime.getFileSeq(filePath)
488
- });
489
- if (!freshness.fresh) {
490
- dbg(`agent_end actionable_warnings_autofix: stale report (${freshness.reason}; reportProjectSeqEnd=${freshness.reportProjectSeqEnd ?? "missing"}; currentProjectSeq=${freshness.currentProjectSeq}${freshness.filePath ? `; file=${freshness.filePath}; reportFileSeq=${freshness.reportFileSeq}; currentFileSeq=${freshness.currentFileSeq}` : ""}), skipping fixes`);
491
- } else if (eligibleReport.summary.autoFixEligible > 0) {
492
- publishAutofixStart({
493
- cwd: ctxCwd ?? runtime.projectRoot,
494
- paths: eligibleReport.files.filter((file) => file.warnings.some((warning) => !warning.suppressed && warning.actions.some((action) => action.autoFixEligible))).map((file) => file.filePath),
495
- eligibleCount: eligibleReport.summary.autoFixEligible,
496
- dbg
497
- });
498
- const fixStart = Date.now();
499
- const fixCwd = ctxCwd ?? runtime.projectRoot;
500
- const mutationContext = {
501
- cwd: fixCwd,
502
- correlationId: newLspMutationCorrelationId(),
503
- tool: "lsp-quickfix",
504
- source: "autofix",
505
- runtime,
506
- cacheManager,
507
- readGuard: getFlag("no-read-guard") ? undefined : runtime.readGuard,
508
- recordAutofix: getFlag("lens-turn-summary") ? (filePath) => runtime.turnSummary.recordAutofix(filePath, {
509
- tool: "lsp-quickfix"
510
- }) : undefined,
511
- dbg
512
- };
513
- const fixSummary = await applyConservativeActionableWarningFixes({
514
- cwd: fixCwd,
515
- report: eligibleReport,
516
- maxFixes: getGlobalActionableWarningMaxFixes(),
517
- dbg,
518
- mutationContext
519
- });
520
- if (fixSummary.changedFiles.length > 0) {
521
- publishFilesTouched({
522
- reason: "autofix",
523
- paths: fixSummary.changedFiles,
524
- cwd: ctxCwd ?? runtime.projectRoot,
525
- dbg,
526
- fixes: fixSummary.changedFiles.map((changedFile) => ({
527
- path: changedFile,
528
- tool: "lsp-quickfix",
529
- kind: "autofix"
530
- }))
531
- });
532
- }
533
- logLatency({
534
- type: "phase",
535
- toolName: "agent_end",
536
- filePath: ctxCwd ?? runtime.projectRoot,
537
- phase: "actionable_warnings_autofix",
538
- turnId: scheduledTurnId,
539
- durationMs: Date.now() - fixStart,
540
- metadata: {
541
- considered: fixSummary.considered,
542
- applied: fixSummary.applied,
543
- changedFiles: fixSummary.changedFiles.length,
544
- skipped: fixSummary.skipped.length
545
- }
546
- });
547
- if (fixSummary.applied > 0) {
548
- notify(`dm-lens applied ${fixSummary.applied} conservative LSP warning quickfix(es)`, "info");
549
- }
550
- } else {
551
- dbg("agent_end actionable_warnings_autofix: fresh report, 0 autofix-eligible warnings, skipping");
552
- }
553
- }
554
- }
555
- logLatency({
556
- type: "phase",
557
- toolName: "agent_end",
558
- filePath: ctxCwd ?? runtime.projectRoot,
559
- phase: "agent_end_deferred_mutation_drain",
560
- turnId: scheduledTurnId,
561
- durationMs: Date.now() - startedAt,
562
- metadata: {
563
- autofixRecords: autofixRecords.length,
564
- formatRecords: formatRecords.length,
565
- coalescedPaths: records.length,
566
- requeuedKinds: [...requeuedKinds].sort((a, b) => a < b ? -1 : a > b ? 1 : 0)
567
- }
568
- });
569
- logLatency({
570
- type: "tool_result",
571
- toolName: "agent_end",
572
- filePath: ctxCwd ?? runtime.projectRoot,
573
- durationMs: Date.now() - startedAt,
574
- result: "deferred_format_complete",
575
- turnId: scheduledTurnId,
576
- metadata: {
577
- queued: summary.queued,
578
- formatted: summary.formatted,
579
- changed: summary.changed.length,
580
- failed: summary.failed.length,
581
- skipped: summary.skipped.length,
582
- unavailable: summary.unavailable.length
583
- }
584
- });
585
- logLatency({
586
- type: "phase",
587
- toolName: "agent_end",
588
- filePath: ctxCwd ?? runtime.projectRoot,
589
- phase: "agent_end_deferred_format_done",
590
- turnId: scheduledTurnId,
591
- durationMs: Date.now() - startedAt,
592
- metadata: {
593
- formatted: summary.formatted,
594
- changed: summary.changed.length,
595
- failed: summary.failed.length,
596
- skipped: summary.skipped.length,
597
- unavailable: summary.unavailable.length
598
- }
599
- });
600
- dbg(`agent_end deferred_format complete: formatted=${summary.formatted} changed=${summary.changed.length} failed=${summary.failed.length} skipped=${summary.skipped.length} unavailable=${summary.unavailable.length}`);
601
- if (summary.failed.length > 0) {
602
- notify(`dm-lens deferred format: ${summary.changed.length} changed, ${summary.failed.length} failed`, "warning");
603
- } else if (summary.changed.length > 0 && !getFlag("lens-turn-summary")) {
604
- const names = summary.changed.map((f) => path.basename(f)).join(", ");
605
- notify(`dm-lens deferred format applied to ${summary.changed.length} file(s): ${names}`, "info");
606
- }
607
- return summary;
608
- }
@@ -1,39 +0,0 @@
1
- import { toPositiveFinite } from "./env-utils.js";
2
- import { loadDmLensGlobalConfig } from "./lens-config.js";
3
- let _runnerTimeoutFloorCache;
4
- export function getRunnerTimeoutFloorMs() {
5
- if (_runnerTimeoutFloorCache !== undefined)
6
- return _runnerTimeoutFloorCache;
7
- const config = loadDmLensGlobalConfig();
8
- const configFloor = toPositiveFinite(config?.dispatch?.runnerTimeoutFloorMs);
9
- const envFloor = toPositiveFinite(process.env.DM_LENS_RUNNER_TIMEOUT_FLOOR_MS);
10
- _runnerTimeoutFloorCache = Math.max(configFloor, envFloor, 0);
11
- return _runnerTimeoutFloorCache;
12
- }
13
- export function _resetRunnerTimeoutFloorCacheForTests() {
14
- _runnerTimeoutFloorCache = undefined;
15
- }
16
- export const RUNTIME_CONFIG = {
17
- pipeline: {
18
- lspMaxFileBytes: 2 * 1024 * 1024,
19
- lspMaxFileLines: 5000,
20
- cascadeMaxFiles: 5,
21
- cascadeMaxDiagnosticsPerFile: 20,
22
- lspSpawnBudgetMs: 5000
23
- },
24
- dispatch: {
25
- runnerTimeoutMs: 30000
26
- },
27
- crashNotice: {
28
- alwaysShowFirstN: 2,
29
- showEveryNth: 5
30
- },
31
- reviewGraph: {
32
- maxFiles: 1000,
33
- maxFileBytes: 1 * 1024 * 1024
34
- },
35
- turnEnd: {
36
- maxLines: 20,
37
- maxChars: 1000
38
- }
39
- };