@wrongstack/tools 0.292.1 → 0.295.0
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/dist/_env.d.ts +1 -1
- package/dist/_env.d.ts.map +1 -1
- package/dist/_fetch-guard.d.ts.map +1 -1
- package/dist/_spawn-stream.d.ts +1 -1
- package/dist/_spawn-stream.d.ts.map +1 -1
- package/dist/_util.d.ts +1 -1
- package/dist/_util.d.ts.map +1 -1
- package/dist/audit.d.ts +1 -1
- package/dist/audit.d.ts.map +1 -1
- package/dist/audit.js +81 -16
- package/dist/audit.js.map +2 -2
- package/dist/bash.d.ts +1 -1
- package/dist/bash.d.ts.map +1 -1
- package/dist/bash.js +66 -52
- package/dist/bash.js.map +3 -3
- package/dist/batch-tool-use.d.ts +1 -1
- package/dist/batch-tool-use.d.ts.map +1 -1
- package/dist/batch-tool-use.js +1 -1
- package/dist/batch-tool-use.js.map +1 -1
- package/dist/browser/index.js +10 -1
- package/dist/browser/index.js.map +2 -2
- package/dist/browser/manager.d.ts +2 -0
- package/dist/browser/manager.d.ts.map +1 -1
- package/dist/browser/tools.d.ts +1 -1
- package/dist/browser/tools.d.ts.map +1 -1
- package/dist/builtin.d.ts +1 -1
- package/dist/builtin.d.ts.map +1 -1
- package/dist/builtin.js +1394 -553
- package/dist/builtin.js.map +4 -4
- package/dist/codebase-index/background-indexer.d.ts +2 -2
- package/dist/codebase-index/background-indexer.d.ts.map +1 -1
- package/dist/codebase-index/bm25.d.ts +3 -1
- package/dist/codebase-index/bm25.d.ts.map +1 -1
- package/dist/codebase-index/codebase-index-tool.d.ts +1 -1
- package/dist/codebase-index/codebase-index-tool.d.ts.map +1 -1
- package/dist/codebase-index/codebase-search-tool.d.ts +1 -1
- package/dist/codebase-index/codebase-search-tool.d.ts.map +1 -1
- package/dist/codebase-index/codebase-stats-tool.d.ts +1 -1
- package/dist/codebase-index/codebase-stats-tool.d.ts.map +1 -1
- package/dist/codebase-index/generic-parser.d.ts +34 -0
- package/dist/codebase-index/generic-parser.d.ts.map +1 -0
- package/dist/codebase-index/go-parser.d.ts +1 -1
- package/dist/codebase-index/go-parser.d.ts.map +1 -1
- package/dist/codebase-index/index.d.ts +4 -2
- package/dist/codebase-index/index.d.ts.map +1 -1
- package/dist/codebase-index/index.js +1036 -341
- package/dist/codebase-index/index.js.map +4 -4
- package/dist/codebase-index/indexer.d.ts +6 -1
- package/dist/codebase-index/indexer.d.ts.map +1 -1
- package/dist/codebase-index/json-parser.d.ts +1 -1
- package/dist/codebase-index/languages.d.ts +25 -0
- package/dist/codebase-index/languages.d.ts.map +1 -0
- package/dist/codebase-index/py-parser.d.ts +9 -1
- package/dist/codebase-index/py-parser.d.ts.map +1 -1
- package/dist/codebase-index/refs-extractor.d.ts.map +1 -1
- package/dist/codebase-index/rs-parser.d.ts +1 -1
- package/dist/codebase-index/rs-parser.d.ts.map +1 -1
- package/dist/codebase-index/schema.d.ts +9 -2
- package/dist/codebase-index/schema.d.ts.map +1 -1
- package/dist/codebase-index/spawn-gate.d.ts +15 -0
- package/dist/codebase-index/spawn-gate.d.ts.map +1 -0
- package/dist/codebase-index/ts-parser.d.ts +2 -2
- package/dist/codebase-index/ts-parser.d.ts.map +1 -1
- package/dist/codebase-index/worker.js +961 -317
- package/dist/codebase-index/worker.js.map +4 -4
- package/dist/codebase-index/writer.d.ts +83 -4
- package/dist/codebase-index/writer.d.ts.map +1 -1
- package/dist/codebase-index/yaml-parser.d.ts +1 -1
- package/dist/design.d.ts +5 -2
- package/dist/design.d.ts.map +1 -1
- package/dist/design.js +36 -3
- package/dist/design.js.map +2 -2
- package/dist/diff.d.ts +1 -1
- package/dist/diff.d.ts.map +1 -1
- package/dist/diff.js +2 -2
- package/dist/diff.js.map +1 -1
- package/dist/document.d.ts +1 -1
- package/dist/document.d.ts.map +1 -1
- package/dist/document.js +1 -1
- package/dist/document.js.map +1 -1
- package/dist/e2e.d.ts +1 -1
- package/dist/e2e.d.ts.map +1 -1
- package/dist/e2e.js +1 -1
- package/dist/e2e.js.map +1 -1
- package/dist/edit.d.ts +1 -1
- package/dist/edit.d.ts.map +1 -1
- package/dist/edit.js +3 -3
- package/dist/edit.js.map +2 -2
- package/dist/exec.d.ts +1 -1
- package/dist/exec.d.ts.map +1 -1
- package/dist/exec.js +60 -21
- package/dist/exec.js.map +3 -3
- package/dist/fetch.d.ts +1 -1
- package/dist/fetch.d.ts.map +1 -1
- package/dist/fetch.js +4 -5
- package/dist/fetch.js.map +2 -2
- package/dist/format.d.ts +1 -1
- package/dist/format.d.ts.map +1 -1
- package/dist/format.js +81 -16
- package/dist/format.js.map +2 -2
- package/dist/git.d.ts +1 -1
- package/dist/git.d.ts.map +1 -1
- package/dist/git.js +3 -2
- package/dist/git.js.map +2 -2
- package/dist/glob.d.ts +1 -1
- package/dist/glob.d.ts.map +1 -1
- package/dist/glob.js +2 -2
- package/dist/glob.js.map +1 -1
- package/dist/grep.d.ts +1 -1
- package/dist/grep.d.ts.map +1 -1
- package/dist/grep.js +4 -3
- package/dist/grep.js.map +2 -2
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1657 -705
- package/dist/index.js.map +4 -4
- package/dist/install.d.ts +1 -1
- package/dist/install.d.ts.map +1 -1
- package/dist/install.js +85 -17
- package/dist/install.js.map +2 -2
- package/dist/json.d.ts +1 -1
- package/dist/json.d.ts.map +1 -1
- package/dist/json.js +2 -2
- package/dist/json.js.map +2 -2
- package/dist/kanban.d.ts +4 -3
- package/dist/kanban.d.ts.map +1 -1
- package/dist/kanban.js +94 -27
- package/dist/kanban.js.map +2 -2
- package/dist/languages/execute-tool.d.ts +1 -1
- package/dist/languages/execute-tool.d.ts.map +1 -1
- package/dist/languages/execute.d.ts +1 -1
- package/dist/languages/execute.d.ts.map +1 -1
- package/dist/languages/index.d.ts +1 -1
- package/dist/languages/index.d.ts.map +1 -1
- package/dist/languages/index.js +99 -17
- package/dist/languages/index.js.map +2 -2
- package/dist/languages/package-tool.d.ts +3 -4
- package/dist/languages/package-tool.d.ts.map +1 -1
- package/dist/languages/plan.d.ts.map +1 -1
- package/dist/languages/profiles/additional.d.ts.map +1 -1
- package/dist/languages/profiles/primary.d.ts.map +1 -1
- package/dist/languages/tool.d.ts +1 -1
- package/dist/languages/tool.d.ts.map +1 -1
- package/dist/lint.d.ts +1 -1
- package/dist/lint.d.ts.map +1 -1
- package/dist/lint.js +81 -16
- package/dist/lint.js.map +2 -2
- package/dist/logs.d.ts +1 -1
- package/dist/logs.d.ts.map +1 -1
- package/dist/logs.js +2 -2
- package/dist/logs.js.map +1 -1
- package/dist/memory.d.ts +1 -1
- package/dist/memory.d.ts.map +1 -1
- package/dist/memory.js +1 -1
- package/dist/memory.js.map +1 -1
- package/dist/mode.d.ts +1 -1
- package/dist/mode.d.ts.map +1 -1
- package/dist/mode.js.map +1 -1
- package/dist/outdated.d.ts +1 -1
- package/dist/outdated.d.ts.map +1 -1
- package/dist/outdated.js +101 -19
- package/dist/outdated.js.map +2 -2
- package/dist/pack.d.ts +1 -1
- package/dist/pack.js +1394 -553
- package/dist/pack.js.map +4 -4
- package/dist/patch.d.ts +1 -1
- package/dist/patch.d.ts.map +1 -1
- package/dist/patch.js +2 -2
- package/dist/patch.js.map +1 -1
- package/dist/plan.d.ts +1 -1
- package/dist/plan.d.ts.map +1 -1
- package/dist/plan.js +7 -7
- package/dist/plan.js.map +2 -2
- package/dist/process-guardian.d.ts +7 -0
- package/dist/process-guardian.d.ts.map +1 -1
- package/dist/process-registry-persistent.d.ts +5 -0
- package/dist/process-registry-persistent.d.ts.map +1 -1
- package/dist/process-registry.d.ts +9 -1
- package/dist/process-registry.d.ts.map +1 -1
- package/dist/process-registry.js +18 -3
- package/dist/process-registry.js.map +2 -2
- package/dist/ps-slash.js +54 -15
- package/dist/ps-slash.js.map +2 -2
- package/dist/read.d.ts +1 -1
- package/dist/read.d.ts.map +1 -1
- package/dist/read.js +3 -2
- package/dist/read.js.map +2 -2
- package/dist/replace.d.ts +1 -1
- package/dist/replace.d.ts.map +1 -1
- package/dist/replace.js +4 -4
- package/dist/replace.js.map +2 -2
- package/dist/scaffold.d.ts +1 -1
- package/dist/scaffold.d.ts.map +1 -1
- package/dist/scaffold.js +2 -2
- package/dist/scaffold.js.map +1 -1
- package/dist/search.d.ts +1 -1
- package/dist/search.d.ts.map +1 -1
- package/dist/search.js +4 -4
- package/dist/search.js.map +2 -2
- package/dist/session-kanban.d.ts +4 -1
- package/dist/session-kanban.d.ts.map +1 -1
- package/dist/session-kanban.js +23 -15
- package/dist/session-kanban.js.map +2 -2
- package/dist/set-working-dir.d.ts +1 -1
- package/dist/set-working-dir.d.ts.map +1 -1
- package/dist/skill.d.ts +1 -1
- package/dist/skill.d.ts.map +1 -1
- package/dist/skill.js +2 -5
- package/dist/skill.js.map +2 -2
- package/dist/spawn-background.d.ts.map +1 -1
- package/dist/task.d.ts +3 -2
- package/dist/task.d.ts.map +1 -1
- package/dist/task.js +6 -8
- package/dist/task.js.map +2 -2
- package/dist/test.d.ts +1 -1
- package/dist/test.d.ts.map +1 -1
- package/dist/test.js +81 -16
- package/dist/test.js.map +2 -2
- package/dist/todo.d.ts +2 -1
- package/dist/todo.d.ts.map +1 -1
- package/dist/todo.js +4 -4
- package/dist/todo.js.map +2 -2
- package/dist/tool-help.d.ts +1 -1
- package/dist/tool-help.d.ts.map +1 -1
- package/dist/tool-help.js.map +1 -1
- package/dist/tool-search.d.ts +1 -1
- package/dist/tool-search.d.ts.map +1 -1
- package/dist/tool-search.js.map +1 -1
- package/dist/tool-tier.d.ts +16 -0
- package/dist/tool-tier.d.ts.map +1 -0
- package/dist/tool-tier.js +22233 -0
- package/dist/tool-tier.js.map +7 -0
- package/dist/tool-use.d.ts +1 -1
- package/dist/tool-use.d.ts.map +1 -1
- package/dist/tool-use.js.map +1 -1
- package/dist/tree.d.ts +1 -1
- package/dist/tree.d.ts.map +1 -1
- package/dist/tree.js +2 -2
- package/dist/tree.js.map +1 -1
- package/dist/typecheck.d.ts +1 -1
- package/dist/typecheck.d.ts.map +1 -1
- package/dist/typecheck.js +81 -16
- package/dist/typecheck.js.map +2 -2
- package/dist/write.d.ts +1 -1
- package/dist/write.d.ts.map +1 -1
- package/dist/write.js +3 -2
- package/dist/write.js.map +2 -2
- package/package.json +7 -3
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Tool } from '@wrongstack/core';
|
|
1
|
+
import type { Tool } from '@wrongstack/core/types';
|
|
2
2
|
import type { LanguageDiagnostic, LanguageProfileId, LanguageRunResult } from './types.js';
|
|
3
3
|
interface LanguageToolInput {
|
|
4
4
|
action: 'check' | 'lint' | 'format' | 'test' | 'build' | 'debug';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute-tool.d.ts","sourceRoot":"","sources":["../../src/languages/execute-tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAmB,MAAM,
|
|
1
|
+
{"version":3,"file":"execute-tool.d.ts","sourceRoot":"","sources":["../../src/languages/execute-tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAmB,MAAM,wBAAwB,CAAC;AAIpE,OAAO,KAAK,EACV,kBAAkB,EAGlB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAEpB,UAAU,iBAAiB;IACzB,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;IACjE,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,QAAQ,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;IACpD,KAAK,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,KAAK,GAAG,SAAS,CAAC;IAClD,WAAW,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,KAAK,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;CAC7D;AAED,UAAU,kBAAkB;IAC1B,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,aAAa,GAAG,WAAW,GAAG,WAAW,CAAC;IACxE,QAAQ,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,IAAI,EAAE,iBAAiB,EAAE,CAAC;IAC1B,WAAW,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAC3C,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,MAAM,EAAE,MAAM,CAAC;CAChB;AAqBD,eAAO,MAAM,YAAY,EAAE,IAAI,CAAC,iBAAiB,EAAE,kBAAkB,CAoKpE,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ToolProgressEvent } from '@wrongstack/core';
|
|
1
|
+
import type { ToolProgressEvent } from '@wrongstack/core/types';
|
|
2
2
|
import type { CommandPlan, DetectedWorkspace, LanguagePackageOutcome, LanguageRunResult } from './types.js';
|
|
3
3
|
export interface ExecuteLanguagePlanOptions {
|
|
4
4
|
projectRoot: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../src/languages/execute.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../src/languages/execute.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAUhE,OAAO,KAAK,EACV,WAAW,EACX,iBAAiB,EAEjB,sBAAsB,EAEtB,iBAAiB,EAElB,MAAM,YAAY,CAAC;AAIpB,MAAM,WAAW,0BAA0B;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,iBAAiB,CAAC;IAC7B,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,wBAAuB,mBAAmB,CACxC,OAAO,EAAE,0BAA0B,GAClC,cAAc,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CA0HtD;AA8ID,MAAM,WAAW,yBAAyB;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,iBAAiB,CAAC;IAC7B,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,wBAAuB,kBAAkB,CACvC,OAAO,EAAE,yBAAyB,GACjC,cAAc,CAAC,iBAAiB,EAAE,sBAAsB,CAAC,CA4L3D"}
|
|
@@ -2,7 +2,7 @@ export { detectLanguageWorkspaces } from './detect.js';
|
|
|
2
2
|
export { diagnosticsForInternalSyntax, type ParsedPackageReports, parseLanguageDiagnostics, parsePackageReports, } from './diagnostics.js';
|
|
3
3
|
export { type ExecuteLanguagePlanOptions, type ExecutePackagePlanOptions, executeLanguagePlan, executePackagePlan, } from './execute.js';
|
|
4
4
|
export { languageTool } from './execute-tool.js';
|
|
5
|
-
export { languagePackageTool } from './package-tool.js';
|
|
5
|
+
export { type LanguagePackageInput, type LanguagePackageToolOutput, languagePackageTool, } from './package-tool.js';
|
|
6
6
|
export { planLanguageOperation, validateCommandPlan } from './plan.js';
|
|
7
7
|
export { ADDITIONAL_LANGUAGE_PROFILES } from './profiles/additional.js';
|
|
8
8
|
export { PRIMARY_LANGUAGE_PROFILES } from './profiles/primary.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/languages/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EACL,4BAA4B,EAC5B,KAAK,oBAAoB,EACzB,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,EAC9B,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/languages/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EACL,4BAA4B,EAC5B,KAAK,oBAAoB,EACzB,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,EAC9B,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,EAC9B,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AACvE,OAAO,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,YAAY,EACV,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,0BAA0B,EAC1B,gBAAgB,EAChB,iBAAiB,EACjB,wBAAwB,EACxB,uBAAuB,EACvB,sBAAsB,EACtB,4BAA4B,EAC5B,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,WAAW,EACX,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EACd,oBAAoB,GACrB,MAAM,YAAY,CAAC"}
|
package/dist/languages/index.js
CHANGED
|
@@ -87,7 +87,20 @@ function pythonProfile() {
|
|
|
87
87
|
]),
|
|
88
88
|
ignoredDirectories: IGNORES,
|
|
89
89
|
packageManagers: Object.freeze(["pip", "poetry", "pipenv", "uv"]),
|
|
90
|
-
executables: Object.freeze([
|
|
90
|
+
executables: Object.freeze([
|
|
91
|
+
"python",
|
|
92
|
+
"python3",
|
|
93
|
+
"pip",
|
|
94
|
+
"pip3",
|
|
95
|
+
"poetry",
|
|
96
|
+
"pipenv",
|
|
97
|
+
"uv",
|
|
98
|
+
"ruff",
|
|
99
|
+
"black",
|
|
100
|
+
"pytest",
|
|
101
|
+
"mypy",
|
|
102
|
+
"pyright"
|
|
103
|
+
]),
|
|
91
104
|
operations: Object.freeze({
|
|
92
105
|
syntax: async (ctx) => {
|
|
93
106
|
const py = ctx.options.target ? "python3" : "python3";
|
|
@@ -147,6 +160,14 @@ function pythonProfile() {
|
|
|
147
160
|
network: true
|
|
148
161
|
});
|
|
149
162
|
},
|
|
163
|
+
"package-remove": async (ctx) => {
|
|
164
|
+
const names = packageNames(ctx);
|
|
165
|
+
return names.length === 0 ? unavailable(ctx, "package-remove", "At least one package name is required.") : processPlan(ctx, "package-remove", "pip", ["uninstall", "--yes", ...names], {
|
|
166
|
+
parser: "package-text",
|
|
167
|
+
reason: "Remove validated Python packages.",
|
|
168
|
+
mutating: true
|
|
169
|
+
});
|
|
170
|
+
},
|
|
150
171
|
"package-audit": async (ctx) => processPlan(ctx, "package-audit", "pip", ["audit"], {
|
|
151
172
|
parser: "pip-audit",
|
|
152
173
|
reason: "Audit Python dependencies for vulnerabilities.",
|
|
@@ -754,6 +775,19 @@ function typescriptProfile() {
|
|
|
754
775
|
network: true
|
|
755
776
|
});
|
|
756
777
|
},
|
|
778
|
+
"package-remove": async (ctx) => {
|
|
779
|
+
const names = packageNames(ctx);
|
|
780
|
+
if (names.length === 0)
|
|
781
|
+
return unavailable(ctx, "package-remove", "At least one package name is required.");
|
|
782
|
+
const manager = ctx.workspace.packageManager ?? "npm";
|
|
783
|
+
const args = manager === "npm" ? ["uninstall", "--ignore-scripts", ...names] : ["remove", "--ignore-scripts", ...names];
|
|
784
|
+
return processPlan(ctx, "package-remove", manager, args, {
|
|
785
|
+
parser: "package-text",
|
|
786
|
+
reason: `Remove validated packages with ${manager} and lifecycle scripts disabled.`,
|
|
787
|
+
mutating: true,
|
|
788
|
+
network: true
|
|
789
|
+
});
|
|
790
|
+
},
|
|
757
791
|
"package-audit": async (ctx) => {
|
|
758
792
|
const manager = ctx.workspace.packageManager ?? "npm";
|
|
759
793
|
return processPlan(ctx, "package-audit", manager, ["audit", "--json"], {
|
|
@@ -1189,13 +1223,28 @@ var csharpProfile = {
|
|
|
1189
1223
|
}),
|
|
1190
1224
|
"package-add": async (ctx) => {
|
|
1191
1225
|
const names = packageNames(ctx);
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1226
|
+
const [spec] = names;
|
|
1227
|
+
const versionAt = spec?.lastIndexOf("@") ?? -1;
|
|
1228
|
+
const packageName = versionAt > 0 ? spec?.slice(0, versionAt) : spec;
|
|
1229
|
+
const packageVersion = versionAt > 0 ? spec?.slice(versionAt + 1) : void 0;
|
|
1230
|
+
return names.length === 0 ? unavailable(ctx, "package-add", "At least one NuGet package is required.") : names.length > 1 ? unavailable(ctx, "package-add", "NuGet package changes run one package at a time.") : processPlan(
|
|
1231
|
+
ctx,
|
|
1232
|
+
"package-add",
|
|
1233
|
+
"dotnet",
|
|
1234
|
+
[
|
|
1235
|
+
"add",
|
|
1236
|
+
"package",
|
|
1237
|
+
packageName ?? "",
|
|
1238
|
+
...packageVersion ? ["--version", packageVersion] : []
|
|
1239
|
+
],
|
|
1240
|
+
{
|
|
1241
|
+
parser: "dotnet-package",
|
|
1242
|
+
reason: "Add validated NuGet packages.",
|
|
1243
|
+
mutating: true,
|
|
1244
|
+
network: true,
|
|
1245
|
+
executesProjectCode: true
|
|
1246
|
+
}
|
|
1247
|
+
);
|
|
1199
1248
|
},
|
|
1200
1249
|
"package-remove": async (ctx) => {
|
|
1201
1250
|
const names = packageNames(ctx);
|
|
@@ -2080,17 +2129,17 @@ import * as path7 from "node:path";
|
|
|
2080
2129
|
// src/_spawn-stream.ts
|
|
2081
2130
|
import { spawn as spawn2 } from "node:child_process";
|
|
2082
2131
|
import {
|
|
2083
|
-
buildChildEnv,
|
|
2084
2132
|
emitProcessCompleted,
|
|
2085
2133
|
emitProcessOutput,
|
|
2086
2134
|
emitProcessStarted
|
|
2087
|
-
} from "@wrongstack/core";
|
|
2135
|
+
} from "@wrongstack/core/observability";
|
|
2136
|
+
import { buildChildEnv } from "@wrongstack/core/utils";
|
|
2088
2137
|
|
|
2089
2138
|
// src/_output-spool.ts
|
|
2090
2139
|
import { createWriteStream, mkdirSync } from "node:fs";
|
|
2091
2140
|
import * as fsp from "node:fs/promises";
|
|
2092
2141
|
import * as path3 from "node:path";
|
|
2093
|
-
import { wstackGlobalRoot } from "@wrongstack/core";
|
|
2142
|
+
import { wstackGlobalRoot } from "@wrongstack/core/utils";
|
|
2094
2143
|
var SPOOL_RETENTION_MS = 7 * 24 * 60 * 60 * 1e3;
|
|
2095
2144
|
var SPOOL_WRITE_HWM_BYTES = 4 * 1024 * 1024;
|
|
2096
2145
|
var sweepStarted = false;
|
|
@@ -2390,7 +2439,7 @@ var CircuitBreaker = class {
|
|
|
2390
2439
|
};
|
|
2391
2440
|
|
|
2392
2441
|
// src/_redact-command.ts
|
|
2393
|
-
import { expectDefined } from "@wrongstack/core";
|
|
2442
|
+
import { expectDefined } from "@wrongstack/core/utils";
|
|
2394
2443
|
var SENSITIVE_FLAG_PATTERNS = [
|
|
2395
2444
|
// --flag=value or --flag "value" (value captured up to next space or comma)
|
|
2396
2445
|
/--(?:token|password|passwd|pwd|secret|api[-_]?key|api[-_]?secret|auth|credential|private[-_]?key|access[-_]?key|github[-_]?token|gh[-_]?token|bearer|jwt|oauth|pin|pincode|passphrase|access[-_]?token)(?:[=\s,][^\s]*)?/gi,
|
|
@@ -2484,7 +2533,12 @@ var ProcessRegistryImpl = class {
|
|
|
2484
2533
|
this.breaker.setEnabled(false);
|
|
2485
2534
|
}
|
|
2486
2535
|
register(info) {
|
|
2487
|
-
this.processes.set(info.pid, {
|
|
2536
|
+
this.processes.set(info.pid, {
|
|
2537
|
+
...info,
|
|
2538
|
+
killed: false,
|
|
2539
|
+
protected: info.protected ?? false,
|
|
2540
|
+
background: info.background ?? false
|
|
2541
|
+
});
|
|
2488
2542
|
}
|
|
2489
2543
|
_isSafeSignalPid(pid) {
|
|
2490
2544
|
return Number.isInteger(pid) && pid > 1 && pid !== process.pid && pid !== process.ppid;
|
|
@@ -2537,12 +2591,21 @@ var ProcessRegistryImpl = class {
|
|
|
2537
2591
|
}
|
|
2538
2592
|
return n;
|
|
2539
2593
|
}
|
|
2594
|
+
/** Count of active jobs explicitly launched in background mode. */
|
|
2595
|
+
get activeBackgroundCount() {
|
|
2596
|
+
let n = 0;
|
|
2597
|
+
for (const p of this.processes.values()) {
|
|
2598
|
+
if (p.background && !p.killed) n++;
|
|
2599
|
+
}
|
|
2600
|
+
return n;
|
|
2601
|
+
}
|
|
2540
2602
|
/**
|
|
2541
2603
|
* Combined stats for observability — used by /ps and the TUI status bar.
|
|
2542
2604
|
*/
|
|
2543
2605
|
stats() {
|
|
2544
2606
|
return {
|
|
2545
2607
|
activeCount: this.activeCount,
|
|
2608
|
+
backgroundCount: this.activeBackgroundCount,
|
|
2546
2609
|
totalCount: this.processes.size,
|
|
2547
2610
|
breaker: this.breaker.snapshot()
|
|
2548
2611
|
};
|
|
@@ -2643,7 +2706,7 @@ var ProcessRegistryImpl = class {
|
|
|
2643
2706
|
this.autoKillTimer = setTimeout(() => {
|
|
2644
2707
|
this.autoKillTimer = null;
|
|
2645
2708
|
this.autoKillArmedAt = null;
|
|
2646
|
-
this.killAll({ force: false });
|
|
2709
|
+
this.killAll({ force: false, preserveBackground: true });
|
|
2647
2710
|
this.breaker.forceReset();
|
|
2648
2711
|
this._emitBreakerCountdown();
|
|
2649
2712
|
}, this.autoKillResetMs);
|
|
@@ -2683,6 +2746,7 @@ var ProcessRegistryImpl = class {
|
|
|
2683
2746
|
if (!p) return false;
|
|
2684
2747
|
if (p.killed) return true;
|
|
2685
2748
|
if (p.protected) return false;
|
|
2749
|
+
if (opts.preserveBackground && p.background) return false;
|
|
2686
2750
|
const { force = false, graceMs = DEFAULT_GRACE_MS } = opts;
|
|
2687
2751
|
const isWin2 = os.platform() === "win32";
|
|
2688
2752
|
if (isWin2) {
|
|
@@ -3035,7 +3099,7 @@ async function* spawnStream(opts) {
|
|
|
3035
3099
|
// src/_util.ts
|
|
3036
3100
|
import * as fsp2 from "node:fs/promises";
|
|
3037
3101
|
import * as path5 from "node:path";
|
|
3038
|
-
import * as Core from "@wrongstack/core";
|
|
3102
|
+
import * as Core from "@wrongstack/core/utils";
|
|
3039
3103
|
function resolvePath(input, ctx) {
|
|
3040
3104
|
return path5.isAbsolute(input) ? path5.normalize(input) : path5.resolve(ctx.workingDir ?? ctx.cwd, input);
|
|
3041
3105
|
}
|
|
@@ -3166,6 +3230,7 @@ var MAX_ARGUMENT_LENGTH = 4096;
|
|
|
3166
3230
|
var PACKAGE_NAME_RE = /^(?:@[a-z0-9._-]+\/)?[a-z0-9._-]+(?:@[a-z0-9*+._~^<>=|-]+)?$/i;
|
|
3167
3231
|
var COMPOSER_PACKAGE_RE = /^[a-z0-9_.-]+\/[a-z0-9_.-]+(?::[a-z0-9*+._~^<>=|-]+)?$/i;
|
|
3168
3232
|
var GO_MODULE_RE = /^(?:[a-z0-9.-]+\.)+[a-z0-9.-]+\/[a-z0-9._~+/@-]+$/i;
|
|
3233
|
+
var PYTHON_PACKAGE_RE = /^[a-z0-9._-]+(?:\[[a-z0-9._,-]+\])?==[a-z0-9*+._!~-]+$/i;
|
|
3169
3234
|
async function planLanguageOperation(options) {
|
|
3170
3235
|
validateOperationOptions(options.operation, options.operationOptions?.packages);
|
|
3171
3236
|
const detection = await detectLanguageWorkspaces(options);
|
|
@@ -3349,7 +3414,7 @@ function validateOperationOptions(operation, packages) {
|
|
|
3349
3414
|
if (value.startsWith(".") || value.startsWith("/") || /^[A-Za-z]:/.test(value) || value.includes("://")) {
|
|
3350
3415
|
throw new Error(`Package paths and URLs are not supported: "${value}"`);
|
|
3351
3416
|
}
|
|
3352
|
-
if (!PACKAGE_NAME_RE.test(value) && !COMPOSER_PACKAGE_RE.test(value) && !GO_MODULE_RE.test(value)) {
|
|
3417
|
+
if (!PACKAGE_NAME_RE.test(value) && !COMPOSER_PACKAGE_RE.test(value) && !GO_MODULE_RE.test(value) && !PYTHON_PACKAGE_RE.test(value)) {
|
|
3353
3418
|
throw new Error(`Invalid package identifier "${value}"`);
|
|
3354
3419
|
}
|
|
3355
3420
|
}
|
|
@@ -4207,7 +4272,6 @@ var languagePackageTool = {
|
|
|
4207
4272
|
const operationOptions2 = {
|
|
4208
4273
|
...input.names ? { packages: input.names } : {},
|
|
4209
4274
|
...input.scope ? { packageScope: input.scope } : {},
|
|
4210
|
-
...input.dryRun !== void 0 ? { allowScripts: input.dryRun } : { allowScripts: false },
|
|
4211
4275
|
...input.allowScripts !== void 0 ? { allowScripts: input.allowScripts } : {}
|
|
4212
4276
|
};
|
|
4213
4277
|
const planResult = await planLanguageOperation({
|
|
@@ -4236,6 +4300,24 @@ var languagePackageTool = {
|
|
|
4236
4300
|
};
|
|
4237
4301
|
return;
|
|
4238
4302
|
}
|
|
4303
|
+
if (input.dryRun) {
|
|
4304
|
+
yield {
|
|
4305
|
+
type: "final",
|
|
4306
|
+
output: {
|
|
4307
|
+
status: "passed",
|
|
4308
|
+
language: planResult.workspace.language,
|
|
4309
|
+
workspace: planResult.workspace.root,
|
|
4310
|
+
operation: planResult.plan.operation,
|
|
4311
|
+
mutations: [],
|
|
4312
|
+
vulnerabilities: [],
|
|
4313
|
+
outdated: [],
|
|
4314
|
+
manifestsChanged: [],
|
|
4315
|
+
lockfilesChanged: [],
|
|
4316
|
+
output: `Dry run: ${planResult.plan.command ?? "internal"} ${planResult.plan.args.join(" ")}`.trim()
|
|
4317
|
+
}
|
|
4318
|
+
};
|
|
4319
|
+
return;
|
|
4320
|
+
}
|
|
4239
4321
|
const runner = executePackagePlan({
|
|
4240
4322
|
projectRoot: ctx.projectRoot,
|
|
4241
4323
|
workspace: planResult.workspace,
|