@nerviq/cli 1.18.0 → 1.20.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/LICENSE +23 -23
- package/README.md +2 -2
- package/bin/cli.js +131 -130
- package/package.json +2 -1
- package/src/activity.js +1039 -1039
- package/src/adoption-advisor.js +299 -299
- package/src/aider/config-parser.js +166 -166
- package/src/aider/context.js +158 -158
- package/src/aider/deep-review.js +316 -316
- package/src/aider/domain-packs.js +303 -303
- package/src/aider/freshness.js +93 -93
- package/src/aider/governance.js +253 -253
- package/src/aider/interactive.js +334 -334
- package/src/aider/mcp-packs.js +329 -329
- package/src/aider/patch.js +214 -214
- package/src/aider/plans.js +186 -186
- package/src/aider/premium.js +360 -360
- package/src/aider/setup.js +404 -404
- package/src/aider/techniques.js +16 -16
- package/src/analyze.js +951 -951
- package/src/anti-patterns.js +485 -485
- package/src/audit/instruction-files.js +180 -180
- package/src/audit/recommendations.js +577 -577
- package/src/auto-suggest.js +154 -154
- package/src/badge.js +13 -13
- package/src/behavioral-drift.js +801 -801
- package/src/benchmark.js +67 -67
- package/src/catalog.js +103 -103
- package/src/certification.js +128 -128
- package/src/codex/config-parser.js +183 -183
- package/src/codex/context.js +223 -223
- package/src/codex/deep-review.js +493 -493
- package/src/codex/domain-packs.js +394 -394
- package/src/codex/freshness.js +84 -84
- package/src/codex/governance.js +192 -192
- package/src/codex/interactive.js +618 -618
- package/src/codex/mcp-packs.js +914 -914
- package/src/codex/patch.js +209 -209
- package/src/codex/plans.js +251 -251
- package/src/codex/premium.js +614 -614
- package/src/codex/setup.js +591 -591
- package/src/context.js +320 -320
- package/src/continuous-ops.js +681 -681
- package/src/copilot/activity.js +309 -309
- package/src/copilot/deep-review.js +346 -346
- package/src/copilot/domain-packs.js +372 -372
- package/src/copilot/freshness.js +57 -57
- package/src/copilot/governance.js +222 -222
- package/src/copilot/interactive.js +406 -406
- package/src/copilot/mcp-packs.js +826 -826
- package/src/copilot/plans.js +253 -253
- package/src/copilot/premium.js +451 -451
- package/src/copilot/setup.js +488 -488
- package/src/cost-tracking.js +61 -61
- package/src/cursor/activity.js +301 -301
- package/src/cursor/config-parser.js +265 -265
- package/src/cursor/context.js +256 -256
- package/src/cursor/deep-review.js +334 -334
- package/src/cursor/domain-packs.js +368 -368
- package/src/cursor/freshness.js +65 -65
- package/src/cursor/governance.js +229 -229
- package/src/cursor/interactive.js +391 -391
- package/src/cursor/mcp-packs.js +828 -828
- package/src/cursor/plans.js +254 -254
- package/src/cursor/premium.js +469 -469
- package/src/cursor/setup.js +488 -488
- package/src/dashboard.js +493 -493
- package/src/deep-review.js +428 -428
- package/src/deprecation.js +98 -98
- package/src/diff-only.js +280 -280
- package/src/doctor.js +119 -119
- package/src/domain-pack-expansion.js +1033 -1033
- package/src/domain-packs.js +387 -387
- package/src/feedback.js +178 -178
- package/src/fix-engine.js +783 -783
- package/src/fix-prompts.js +122 -122
- package/src/formatters/sarif.js +115 -115
- package/src/freshness.js +74 -74
- package/src/gemini/config-parser.js +275 -275
- package/src/gemini/context.js +290 -221
- package/src/gemini/deep-review.js +559 -559
- package/src/gemini/domain-packs.js +393 -393
- package/src/gemini/freshness.js +66 -66
- package/src/gemini/governance.js +201 -201
- package/src/gemini/interactive.js +860 -860
- package/src/gemini/mcp-packs.js +915 -915
- package/src/gemini/plans.js +269 -269
- package/src/gemini/premium.js +760 -760
- package/src/gemini/setup.js +692 -692
- package/src/gemini/techniques.js +105 -33
- package/src/governance.js +72 -72
- package/src/harmony/add.js +68 -68
- package/src/harmony/advisor.js +333 -333
- package/src/harmony/canon.js +565 -565
- package/src/harmony/cli.js +591 -591
- package/src/harmony/drift.js +401 -401
- package/src/harmony/governance.js +313 -313
- package/src/harmony/memory.js +239 -239
- package/src/harmony/sync.js +475 -475
- package/src/harmony/watch.js +370 -370
- package/src/hook-validation.js +342 -342
- package/src/index.js +271 -271
- package/src/init.js +184 -184
- package/src/instruction-surfaces.js +185 -185
- package/src/integrations.js +144 -144
- package/src/interactive.js +118 -118
- package/src/locales/en.json +1 -1
- package/src/locales/es.json +1 -1
- package/src/mcp-packs.js +830 -830
- package/src/mcp-server.js +726 -726
- package/src/mcp-validation.js +337 -337
- package/src/nerviq-sync.json +7 -7
- package/src/opencode/config-parser.js +109 -109
- package/src/opencode/context.js +247 -247
- package/src/opencode/deep-review.js +313 -313
- package/src/opencode/domain-packs.js +262 -262
- package/src/opencode/freshness.js +66 -66
- package/src/opencode/governance.js +159 -159
- package/src/opencode/interactive.js +392 -392
- package/src/opencode/mcp-packs.js +705 -705
- package/src/opencode/patch.js +184 -184
- package/src/opencode/plans.js +231 -231
- package/src/opencode/premium.js +413 -413
- package/src/opencode/setup.js +449 -449
- package/src/opencode/techniques.js +27 -27
- package/src/operating-profile.js +574 -574
- package/src/org.js +152 -152
- package/src/permission-rules.js +218 -218
- package/src/plans.js +839 -839
- package/src/platform-change-manifest.js +86 -86
- package/src/plugins.js +110 -110
- package/src/policy-layers.js +210 -210
- package/src/profiles.js +124 -124
- package/src/prompt-injection.js +74 -74
- package/src/public-api.js +173 -173
- package/src/recommendation-rules.js +84 -84
- package/src/repo-archetype.js +386 -386
- package/src/secret-patterns.js +39 -39
- package/src/server.js +527 -527
- package/src/setup/analysis.js +607 -607
- package/src/setup/runtime.js +172 -172
- package/src/setup.js +677 -677
- package/src/shared/capabilities.js +194 -194
- package/src/source-urls.js +132 -132
- package/src/stack-checks.js +565 -565
- package/src/supplemental-checks.js +13 -13
- package/src/synergy/adaptive.js +261 -261
- package/src/synergy/compensation.js +137 -137
- package/src/synergy/evidence.js +193 -193
- package/src/synergy/learning.js +199 -199
- package/src/synergy/patterns.js +227 -227
- package/src/synergy/ranking.js +83 -83
- package/src/synergy/report.js +165 -165
- package/src/synergy/routing.js +146 -146
- package/src/techniques/api.js +407 -407
- package/src/techniques/automation.js +316 -316
- package/src/techniques/compliance.js +257 -257
- package/src/techniques/hygiene.js +294 -294
- package/src/techniques/instructions.js +243 -243
- package/src/techniques/observability.js +226 -226
- package/src/techniques/optimization.js +142 -142
- package/src/techniques/quality.js +318 -318
- package/src/techniques/security.js +237 -237
- package/src/techniques/shared.js +443 -443
- package/src/techniques/stacks.js +2294 -2294
- package/src/techniques/tools.js +106 -106
- package/src/techniques/workflow.js +413 -413
- package/src/techniques.js +81 -81
- package/src/terminology.js +73 -73
- package/src/token-estimate.js +35 -35
- package/src/usage-patterns.js +99 -99
- package/src/verification-metadata.js +145 -145
- package/src/watch.js +247 -247
- package/src/windsurf/activity.js +302 -302
- package/src/windsurf/config-parser.js +267 -267
- package/src/windsurf/context.js +249 -249
- package/src/windsurf/deep-review.js +337 -337
- package/src/windsurf/domain-packs.js +370 -370
- package/src/windsurf/freshness.js +36 -36
- package/src/windsurf/governance.js +231 -231
- package/src/windsurf/interactive.js +388 -388
- package/src/windsurf/mcp-packs.js +792 -792
- package/src/windsurf/plans.js +247 -247
- package/src/windsurf/premium.js +468 -468
- package/src/windsurf/setup.js +471 -471
- package/src/windsurf/techniques.js +17 -17
- package/src/workspace.js +375 -375
package/src/deprecation.js
CHANGED
|
@@ -1,98 +1,98 @@
|
|
|
1
|
-
const DEPRECATION_NOTICE_CATALOG = [
|
|
2
|
-
{
|
|
3
|
-
feature: 'legacy-claude-api-patterns',
|
|
4
|
-
message: 'Legacy Claude prompt patterns are deprecated in v1.x audits.',
|
|
5
|
-
removedIn: '2.0.0',
|
|
6
|
-
alternative: 'Use current Messages API conventions and modern CLAUDE.md patterns.',
|
|
7
|
-
match: /human_prompt|assistant_prompt|deprecated api patterns/i,
|
|
8
|
-
},
|
|
9
|
-
{
|
|
10
|
-
feature: 'legacy-codex-config',
|
|
11
|
-
message: 'Deprecated Codex config and workflow patterns are flagged in v1.x.',
|
|
12
|
-
removedIn: '2.0.0',
|
|
13
|
-
alternative: 'Use the current Codex config schema and current workflow notes.',
|
|
14
|
-
match: /deprecated codex|approval_policy|full_auto_error_mode|send_to_server|removed from the official codex config schema/i,
|
|
15
|
-
},
|
|
16
|
-
{
|
|
17
|
-
feature: 'legacy-gemini-flags',
|
|
18
|
-
message: 'Deprecated Gemini flags and config keys are flagged in v1.x.',
|
|
19
|
-
removedIn: '2.0.0',
|
|
20
|
-
alternative: 'Use current Gemini CLI settings, policy files, and output flags.',
|
|
21
|
-
match: /deprecated gemini|--json|--allowed-tools|sandbox_mode|max_tokens|mcp_servers/i,
|
|
22
|
-
},
|
|
23
|
-
{
|
|
24
|
-
feature: 'legacy-cursor-rule-surface',
|
|
25
|
-
message: 'Legacy Cursor rule surfaces are deprecated in agent-mode audits.',
|
|
26
|
-
removedIn: '2.0.0',
|
|
27
|
-
alternative: 'Use `.cursor/rules/*.mdc` instead of `.cursorrules` for modern Cursor flows.',
|
|
28
|
-
match: /\.cursorrules|legacy cursor/i,
|
|
29
|
-
},
|
|
30
|
-
{
|
|
31
|
-
feature: 'legacy-windsurf-rule-surface',
|
|
32
|
-
message: 'Legacy Windsurf rule surfaces are deprecated in modern Cascade flows.',
|
|
33
|
-
removedIn: '2.0.0',
|
|
34
|
-
alternative: 'Use `.windsurf/rules/*.md` instead of `.windsurfrules` for modern Windsurf flows.',
|
|
35
|
-
match: /\.windsurfrules|legacy windsurf/i,
|
|
36
|
-
},
|
|
37
|
-
];
|
|
38
|
-
|
|
39
|
-
function parseVersion(version) {
|
|
40
|
-
const match = String(version || '0.0.0').match(/^(\d+)\.(\d+)\.(\d+)/);
|
|
41
|
-
return match ? match.slice(1).map(Number) : [0, 0, 0];
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
function compareVersions(left, right) {
|
|
45
|
-
const a = parseVersion(left);
|
|
46
|
-
const b = parseVersion(right);
|
|
47
|
-
for (let index = 0; index < 3; index++) {
|
|
48
|
-
if (a[index] > b[index]) return 1;
|
|
49
|
-
if (a[index] < b[index]) return -1;
|
|
50
|
-
}
|
|
51
|
-
return 0;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
function deprecationWarnings(version) {
|
|
55
|
-
return DEPRECATION_NOTICE_CATALOG.filter((notice) => compareVersions(version, '1.0.0') >= 0 && compareVersions(version, notice.removedIn) < 0)
|
|
56
|
-
.map(({ match, ...notice }) => ({ ...notice }));
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
function detectDeprecationWarnings(results, version) {
|
|
60
|
-
const notices = deprecationWarnings(version);
|
|
61
|
-
const haystack = Array.isArray(results) ? results.filter((item) => item && item.passed === false) : [];
|
|
62
|
-
const matched = [];
|
|
63
|
-
|
|
64
|
-
for (const notice of DEPRECATION_NOTICE_CATALOG) {
|
|
65
|
-
if (compareVersions(version, '1.0.0') < 0 || compareVersions(version, notice.removedIn) >= 0) {
|
|
66
|
-
continue;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
const hit = haystack.find((item) => notice.match.test(`${item.key || ''}\n${item.name || ''}\n${item.fix || ''}`));
|
|
70
|
-
if (hit) {
|
|
71
|
-
matched.push({
|
|
72
|
-
feature: notice.feature,
|
|
73
|
-
message: notice.message,
|
|
74
|
-
removedIn: notice.removedIn,
|
|
75
|
-
alternative: hit.fix || notice.alternative,
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
if (matched.length > 0) {
|
|
81
|
-
return matched;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
return haystack
|
|
85
|
-
.filter((item) => /deprecated|legacy|removed/i.test(`${item.name || ''}\n${item.fix || ''}`))
|
|
86
|
-
.slice(0, 5)
|
|
87
|
-
.map((item) => ({
|
|
88
|
-
feature: item.key,
|
|
89
|
-
message: item.name,
|
|
90
|
-
removedIn: '2.0.0',
|
|
91
|
-
alternative: item.fix,
|
|
92
|
-
}));
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
module.exports = {
|
|
96
|
-
deprecationWarnings,
|
|
97
|
-
detectDeprecationWarnings,
|
|
98
|
-
};
|
|
1
|
+
const DEPRECATION_NOTICE_CATALOG = [
|
|
2
|
+
{
|
|
3
|
+
feature: 'legacy-claude-api-patterns',
|
|
4
|
+
message: 'Legacy Claude prompt patterns are deprecated in v1.x audits.',
|
|
5
|
+
removedIn: '2.0.0',
|
|
6
|
+
alternative: 'Use current Messages API conventions and modern CLAUDE.md patterns.',
|
|
7
|
+
match: /human_prompt|assistant_prompt|deprecated api patterns/i,
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
feature: 'legacy-codex-config',
|
|
11
|
+
message: 'Deprecated Codex config and workflow patterns are flagged in v1.x.',
|
|
12
|
+
removedIn: '2.0.0',
|
|
13
|
+
alternative: 'Use the current Codex config schema and current workflow notes.',
|
|
14
|
+
match: /deprecated codex|approval_policy|full_auto_error_mode|send_to_server|removed from the official codex config schema/i,
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
feature: 'legacy-gemini-flags',
|
|
18
|
+
message: 'Deprecated Gemini flags and config keys are flagged in v1.x.',
|
|
19
|
+
removedIn: '2.0.0',
|
|
20
|
+
alternative: 'Use current Gemini CLI settings, policy files, and output flags.',
|
|
21
|
+
match: /deprecated gemini|--json|--allowed-tools|sandbox_mode|max_tokens|mcp_servers/i,
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
feature: 'legacy-cursor-rule-surface',
|
|
25
|
+
message: 'Legacy Cursor rule surfaces are deprecated in agent-mode audits.',
|
|
26
|
+
removedIn: '2.0.0',
|
|
27
|
+
alternative: 'Use `.cursor/rules/*.mdc` instead of `.cursorrules` for modern Cursor flows.',
|
|
28
|
+
match: /\.cursorrules|legacy cursor/i,
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
feature: 'legacy-windsurf-rule-surface',
|
|
32
|
+
message: 'Legacy Windsurf rule surfaces are deprecated in modern Cascade flows.',
|
|
33
|
+
removedIn: '2.0.0',
|
|
34
|
+
alternative: 'Use `.windsurf/rules/*.md` instead of `.windsurfrules` for modern Windsurf flows.',
|
|
35
|
+
match: /\.windsurfrules|legacy windsurf/i,
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
function parseVersion(version) {
|
|
40
|
+
const match = String(version || '0.0.0').match(/^(\d+)\.(\d+)\.(\d+)/);
|
|
41
|
+
return match ? match.slice(1).map(Number) : [0, 0, 0];
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
function compareVersions(left, right) {
|
|
45
|
+
const a = parseVersion(left);
|
|
46
|
+
const b = parseVersion(right);
|
|
47
|
+
for (let index = 0; index < 3; index++) {
|
|
48
|
+
if (a[index] > b[index]) return 1;
|
|
49
|
+
if (a[index] < b[index]) return -1;
|
|
50
|
+
}
|
|
51
|
+
return 0;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
function deprecationWarnings(version) {
|
|
55
|
+
return DEPRECATION_NOTICE_CATALOG.filter((notice) => compareVersions(version, '1.0.0') >= 0 && compareVersions(version, notice.removedIn) < 0)
|
|
56
|
+
.map(({ match, ...notice }) => ({ ...notice }));
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
function detectDeprecationWarnings(results, version) {
|
|
60
|
+
const notices = deprecationWarnings(version);
|
|
61
|
+
const haystack = Array.isArray(results) ? results.filter((item) => item && item.passed === false) : [];
|
|
62
|
+
const matched = [];
|
|
63
|
+
|
|
64
|
+
for (const notice of DEPRECATION_NOTICE_CATALOG) {
|
|
65
|
+
if (compareVersions(version, '1.0.0') < 0 || compareVersions(version, notice.removedIn) >= 0) {
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
const hit = haystack.find((item) => notice.match.test(`${item.key || ''}\n${item.name || ''}\n${item.fix || ''}`));
|
|
70
|
+
if (hit) {
|
|
71
|
+
matched.push({
|
|
72
|
+
feature: notice.feature,
|
|
73
|
+
message: notice.message,
|
|
74
|
+
removedIn: notice.removedIn,
|
|
75
|
+
alternative: hit.fix || notice.alternative,
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
if (matched.length > 0) {
|
|
81
|
+
return matched;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
return haystack
|
|
85
|
+
.filter((item) => /deprecated|legacy|removed/i.test(`${item.name || ''}\n${item.fix || ''}`))
|
|
86
|
+
.slice(0, 5)
|
|
87
|
+
.map((item) => ({
|
|
88
|
+
feature: item.key,
|
|
89
|
+
message: item.name,
|
|
90
|
+
removedIn: '2.0.0',
|
|
91
|
+
alternative: item.fix,
|
|
92
|
+
}));
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
module.exports = {
|
|
96
|
+
deprecationWarnings,
|
|
97
|
+
detectDeprecationWarnings,
|
|
98
|
+
};
|