@massu/core 1.10.8 → 1.12.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/CHANGELOG.md +1303 -0
- package/dist/adapter.js +6 -4
- package/dist/cli.js +517 -397
- package/dist/detect/adapters/.bundle-shasums.json +4 -7
- package/dist/detect/adapters/rails.js +6 -4
- package/dist/detect/adapters/spring.js +6 -4
- package/dist/detect/adapters/tree-sitter-loader.js +6 -4
- package/dist/hooks/auto-learning-pipeline.js +24 -1
- package/dist/hooks/classify-failure.js +32 -3
- package/dist/hooks/cost-tracker.js +24 -0
- package/dist/hooks/fix-detector.js +97 -1
- package/dist/hooks/incident-pipeline.js +30 -1
- package/dist/hooks/intent-suggester.js +6 -3
- package/dist/hooks/post-edit-context.js +24 -1
- package/dist/hooks/post-tool-use.js +66 -18
- package/dist/hooks/pre-compact.js +27 -2
- package/dist/hooks/pre-delete-check.js +48 -22
- package/dist/hooks/pre-tool-use-gate.js +962 -0
- package/dist/hooks/quality-event.js +24 -0
- package/dist/hooks/rule-enforcement-pipeline.js +24 -1
- package/dist/hooks/security-gate.js +29 -16
- package/dist/hooks/session-end.js +24 -0
- package/dist/hooks/session-start.js +8710 -8460
- package/dist/hooks/user-prompt.js +24 -0
- package/package.json +15 -18
- package/commands/README.md +0 -134
- package/src/adapter.ts +0 -121
- package/src/adr-generator.ts +0 -292
- package/src/analytics.ts +0 -373
- package/src/audit-trail.ts +0 -450
- package/src/backfill-sessions.ts +0 -182
- package/src/changelog-generator.ts +0 -178
- package/src/cli.ts +0 -246
- package/src/cloud-sync.ts +0 -234
- package/src/commands/adapters.ts +0 -824
- package/src/commands/changelog.ts +0 -165
- package/src/commands/config-check-drift.ts +0 -133
- package/src/commands/config-refresh.ts +0 -396
- package/src/commands/config-upgrade.ts +0 -127
- package/src/commands/doctor.ts +0 -485
- package/src/commands/hook-runner.ts +0 -145
- package/src/commands/init.ts +0 -1823
- package/src/commands/install-commands.ts +0 -692
- package/src/commands/install-hooks.ts +0 -27
- package/src/commands/permissions.ts +0 -150
- package/src/commands/refresh-log.ts +0 -37
- package/src/commands/show-template.ts +0 -65
- package/src/commands/template-engine.ts +0 -301
- package/src/commands/watch.ts +0 -430
- package/src/config.ts +0 -765
- package/src/cost-tracker.ts +0 -355
- package/src/db.ts +0 -370
- package/src/dependency-scorer.ts +0 -337
- package/src/detect/adapters/aspnet.ts +0 -4
- package/src/detect/adapters/discover.ts +0 -469
- package/src/detect/adapters/file-sampler.ts +0 -225
- package/src/detect/adapters/go-chi.ts +0 -4
- package/src/detect/adapters/index.ts +0 -51
- package/src/detect/adapters/nextjs-trpc.ts +0 -166
- package/src/detect/adapters/parse-guard.ts +0 -133
- package/src/detect/adapters/phoenix.ts +0 -4
- package/src/detect/adapters/python-django.ts +0 -208
- package/src/detect/adapters/python-fastapi.ts +0 -223
- package/src/detect/adapters/python-flask.ts +0 -235
- package/src/detect/adapters/query-helpers.ts +0 -170
- package/src/detect/adapters/rails.ts +0 -4
- package/src/detect/adapters/runner.ts +0 -284
- package/src/detect/adapters/spring.ts +0 -4
- package/src/detect/adapters/swift-swiftui.ts +0 -171
- package/src/detect/adapters/tree-sitter-loader.ts +0 -517
- package/src/detect/adapters/types.ts +0 -191
- package/src/detect/codebase-introspector.ts +0 -210
- package/src/detect/domain-inferrer.ts +0 -197
- package/src/detect/drift.ts +0 -199
- package/src/detect/framework-detector.ts +0 -307
- package/src/detect/index.ts +0 -209
- package/src/detect/manifest-registry.ts +0 -261
- package/src/detect/migrate.ts +0 -362
- package/src/detect/monorepo-detector.ts +0 -348
- package/src/detect/package-detector.ts +0 -828
- package/src/detect/passthrough.ts +0 -108
- package/src/detect/regex-fallback.ts +0 -449
- package/src/detect/source-dir-detector.ts +0 -297
- package/src/detect/vr-command-map.ts +0 -167
- package/src/docs-map.json +0 -100
- package/src/docs-tools.ts +0 -519
- package/src/domains.ts +0 -182
- package/src/hooks/auto-learning-pipeline.ts +0 -228
- package/src/hooks/classify-failure.ts +0 -259
- package/src/hooks/cost-tracker.ts +0 -66
- package/src/hooks/fix-detector.ts +0 -186
- package/src/hooks/incident-pipeline.ts +0 -190
- package/src/hooks/intent-suggester.ts +0 -131
- package/src/hooks/post-edit-context.ts +0 -91
- package/src/hooks/post-tool-use.ts +0 -413
- package/src/hooks/pre-compact.ts +0 -168
- package/src/hooks/pre-delete-check.ts +0 -243
- package/src/hooks/quality-event.ts +0 -127
- package/src/hooks/rule-enforcement-pipeline.ts +0 -159
- package/src/hooks/security-gate.ts +0 -153
- package/src/hooks/session-end.ts +0 -467
- package/src/hooks/session-start.ts +0 -436
- package/src/hooks/user-prompt.ts +0 -157
- package/src/import-resolver.ts +0 -226
- package/src/knowledge-db.ts +0 -176
- package/src/knowledge-indexer.ts +0 -708
- package/src/knowledge-tools.ts +0 -1414
- package/src/lib/fileLock.ts +0 -203
- package/src/lib/framework-supports.ts +0 -85
- package/src/lib/gitToplevel.ts +0 -22
- package/src/lib/hook-registry.ts +0 -43
- package/src/lib/installLock.ts +0 -66
- package/src/lib/memory-path.ts +0 -49
- package/src/lib/pidLiveness.ts +0 -67
- package/src/lib/settings-local.ts +0 -110
- package/src/lib/sql-table-names.ts +0 -71
- package/src/license.ts +0 -547
- package/src/lsp/auto-detect.ts +0 -98
- package/src/lsp/client.ts +0 -776
- package/src/lsp/enrich.ts +0 -127
- package/src/lsp/types.ts +0 -221
- package/src/memory-db.ts +0 -1614
- package/src/memory-file-ingest.ts +0 -128
- package/src/memory-tools.ts +0 -424
- package/src/middleware-tree.ts +0 -71
- package/src/observability-tools.ts +0 -343
- package/src/observation-extractor.ts +0 -418
- package/src/page-deps.ts +0 -285
- package/src/permissions.ts +0 -422
- package/src/prompt-analyzer.ts +0 -332
- package/src/python/coupling-detector.ts +0 -125
- package/src/python/domain-enforcer.ts +0 -84
- package/src/python/impact-analyzer.ts +0 -96
- package/src/python/import-parser.ts +0 -244
- package/src/python/import-resolver.ts +0 -136
- package/src/python/migration-indexer.ts +0 -116
- package/src/python/migration-parser.ts +0 -332
- package/src/python/model-indexer.ts +0 -71
- package/src/python/model-parser.ts +0 -279
- package/src/python/route-indexer.ts +0 -59
- package/src/python/route-parser.ts +0 -317
- package/src/python-tools.ts +0 -630
- package/src/regression-detector.ts +0 -319
- package/src/rules.ts +0 -57
- package/src/schema-mapper.ts +0 -232
- package/src/security/adapter-origin.ts +0 -130
- package/src/security/adapter-verifier.ts +0 -319
- package/src/security/atomic-write.ts +0 -164
- package/src/security/fetcher.ts +0 -200
- package/src/security/install-tracking.ts +0 -319
- package/src/security/license-pubkey.generated.ts +0 -30
- package/src/security/license-response-verifier.ts +0 -149
- package/src/security/local-fingerprint.ts +0 -225
- package/src/security/manifest-cache.ts +0 -333
- package/src/security/manifest-schema.ts +0 -129
- package/src/security/registry-pubkey.generated.ts +0 -35
- package/src/security/telemetry.ts +0 -320
- package/src/security-scorer.ts +0 -405
- package/src/security-utils.ts +0 -133
- package/src/sentinel-db.ts +0 -580
- package/src/sentinel-scanner.ts +0 -406
- package/src/sentinel-tools.ts +0 -513
- package/src/sentinel-types.ts +0 -140
- package/src/server-dispatch.ts +0 -225
- package/src/server.ts +0 -107
- package/src/session-archiver.ts +0 -111
- package/src/session-state-generator.ts +0 -174
- package/src/team-knowledge.ts +0 -407
- package/src/tool-db-needs.ts +0 -232
- package/src/tools.ts +0 -1206
- package/src/transcript-parser.ts +0 -458
- package/src/trpc-index.ts +0 -215
- package/src/validate-features-runner.ts +0 -107
- package/src/validation-engine.ts +0 -358
- package/src/watch/daemon.ts +0 -385
- package/src/watch/lockfile-detector.ts +0 -65
- package/src/watch/paths.ts +0 -279
- package/src/watch/state.ts +0 -178
package/src/lsp/auto-detect.ts
DELETED
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
// Copyright (c) 2026 Massu. All rights reserved.
|
|
2
|
-
// Licensed under BSL 1.1 - see LICENSE file for details.
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Plan 3b — Phase 4: LSP server discovery.
|
|
6
|
-
*
|
|
7
|
-
* Per audit-iter-1 fix G4: this module's discovery is **explicit-only by
|
|
8
|
-
* default**. The optional `lsof` port-scan path is GATED behind
|
|
9
|
-
* `lsp.autoDetect.viaPortScan: true` and defaults to `false` (port-scanning
|
|
10
|
-
* local processes is a security-sensitive default — opt-in only at v1).
|
|
11
|
-
*
|
|
12
|
-
* Empty-servers edge case (audit-iter-3 fix Z): when `lsp.enabled: true` AND
|
|
13
|
-
* `lsp.servers` is empty AND `viaPortScan: false`, we log ONE informational
|
|
14
|
-
* stderr line and return an empty list — the caller (`enrich.ts`) then
|
|
15
|
-
* proceeds AST-only without throwing.
|
|
16
|
-
*
|
|
17
|
-
* VR-LSP-AUTODETECT-OFF-BY-DEFAULT: `viaPortScan` MUST be checked BEFORE any
|
|
18
|
-
* `lsof` invocation. The grep `grep -nE 'viaPortScan' auto-detect.ts` MUST
|
|
19
|
-
* show that boolean check ahead of any `lsof` call.
|
|
20
|
-
*/
|
|
21
|
-
|
|
22
|
-
import type { LSPConfig } from '../config.ts';
|
|
23
|
-
import type { LSPServerSpec } from './client.ts';
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Find LSP servers to launch / connect to. Pure config-driven by default.
|
|
27
|
-
*
|
|
28
|
-
* @param config - The `lsp` block from `massu.config.yaml`. May be undefined
|
|
29
|
-
* when LSP is not configured at all (returns empty list silently).
|
|
30
|
-
* @returns A list of `LSPServerSpec` ready to feed `LSPClient.fromCommand()`.
|
|
31
|
-
* Empty list is a valid, non-error outcome — callers MUST proceed AST-only.
|
|
32
|
-
*/
|
|
33
|
-
export async function findRunningLSPs(
|
|
34
|
-
config: LSPConfig | undefined
|
|
35
|
-
): Promise<LSPServerSpec[]> {
|
|
36
|
-
// Disabled or absent: silently no-op (no log).
|
|
37
|
-
if (!config || !config.enabled) {
|
|
38
|
-
return [];
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
const explicit = (config.servers ?? []).map((s) => splitCommand(s));
|
|
42
|
-
|
|
43
|
-
// VR-LSP-AUTODETECT-OFF-BY-DEFAULT: this boolean check happens BEFORE any
|
|
44
|
-
// `lsof`/port-scan invocation. Default is false — explicit-only path.
|
|
45
|
-
const viaPortScan = config.autoDetect?.viaPortScan === true;
|
|
46
|
-
|
|
47
|
-
if (explicit.length === 0 && !viaPortScan) {
|
|
48
|
-
// Empty-servers edge case: enabled but nothing configured AND auto-detect
|
|
49
|
-
// is off. Log once, proceed AST-only.
|
|
50
|
-
process.stderr.write(
|
|
51
|
-
'[massu/lsp] INFO: LSP enabled but no servers configured and auto-detect off — skipping LSP enrichment.\n'
|
|
52
|
-
);
|
|
53
|
-
return [];
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
// Port-scan path is opt-in via `viaPortScan: true`. Implementation
|
|
57
|
-
// intentionally minimal at v1 — emits an INFO stderr line and returns
|
|
58
|
-
// explicit servers only. Plan 3d will flesh out actual `lsof` discovery
|
|
59
|
-
// once the threat model is reviewed.
|
|
60
|
-
if (viaPortScan) {
|
|
61
|
-
process.stderr.write(
|
|
62
|
-
'[massu/lsp] INFO: lsp.autoDetect.viaPortScan is enabled but port-scan auto-detect is reserved for Plan 3d — using explicit servers only.\n'
|
|
63
|
-
);
|
|
64
|
-
// (No `lsof` invocation yet. The viaPortScan gate exists so future
|
|
65
|
-
// implementations slot in here without changing the default surface.)
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
return explicit;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
/**
|
|
72
|
-
* Parse a config-string `command` into an `LSPServerSpec`. Splits on
|
|
73
|
-
* whitespace (no shell evaluation, no globbing). Strict path validation
|
|
74
|
-
* happens later in `LSPClient.fromCommand()` — this just parses the shape.
|
|
75
|
-
*
|
|
76
|
-
* Note: callers passing untrusted commands MUST review the result before
|
|
77
|
-
* passing it to `LSPClient.fromCommand`. The factory rejects relative paths
|
|
78
|
-
* and `..`-containing argv elements.
|
|
79
|
-
*/
|
|
80
|
-
function splitCommand(server: {
|
|
81
|
-
language: string;
|
|
82
|
-
command: string;
|
|
83
|
-
allow_setuid?: boolean;
|
|
84
|
-
max_rss_mb?: number;
|
|
85
|
-
}): LSPServerSpec {
|
|
86
|
-
const cmd = (server.command ?? '').trim();
|
|
87
|
-
// Whitespace split — not a full shell parser. Quoted args with spaces are
|
|
88
|
-
// not supported at v1; users with such commands should run a wrapper script.
|
|
89
|
-
const argv = cmd.length === 0 ? [] : cmd.split(/\s+/);
|
|
90
|
-
return {
|
|
91
|
-
language: server.language,
|
|
92
|
-
argv,
|
|
93
|
-
// F-014 / F-015 (closed 2026-05-06): pass through the security knobs
|
|
94
|
-
// from config so the spawn surface enforces them.
|
|
95
|
-
allowSetuid: server.allow_setuid ?? false,
|
|
96
|
-
maxRssMb: server.max_rss_mb ?? undefined,
|
|
97
|
-
};
|
|
98
|
-
}
|