@shrkcrft/cli 0.1.0-alpha.2 → 0.1.0-alpha.21
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/audit/knowledge-audit-llm.d.ts +19 -0
- package/dist/audit/knowledge-audit-llm.d.ts.map +1 -0
- package/dist/audit/knowledge-audit-llm.js +164 -0
- package/dist/audit/knowledge-audit.d.ts +61 -0
- package/dist/audit/knowledge-audit.d.ts.map +1 -0
- package/dist/audit/knowledge-audit.js +203 -0
- package/dist/audit/knowledge-fix-plan-llm.d.ts +11 -0
- package/dist/audit/knowledge-fix-plan-llm.d.ts.map +1 -0
- package/dist/audit/knowledge-fix-plan-llm.js +141 -0
- package/dist/audit/knowledge-fix-plan.d.ts +41 -0
- package/dist/audit/knowledge-fix-plan.d.ts.map +1 -0
- package/dist/audit/knowledge-fix-plan.js +125 -0
- package/dist/audit/pipeline-audit-llm.d.ts +11 -0
- package/dist/audit/pipeline-audit-llm.d.ts.map +1 -0
- package/dist/audit/pipeline-audit-llm.js +134 -0
- package/dist/audit/pipeline-audit.d.ts +69 -0
- package/dist/audit/pipeline-audit.d.ts.map +1 -0
- package/dist/audit/pipeline-audit.js +166 -0
- package/dist/audit/templates-audit-llm.d.ts +19 -0
- package/dist/audit/templates-audit-llm.d.ts.map +1 -0
- package/dist/audit/templates-audit-llm.js +207 -0
- package/dist/audit/templates-audit.d.ts +63 -0
- package/dist/audit/templates-audit.d.ts.map +1 -0
- package/dist/audit/templates-audit.js +171 -0
- package/dist/audit/templates-fix-plan-llm.d.ts +19 -0
- package/dist/audit/templates-fix-plan-llm.d.ts.map +1 -0
- package/dist/audit/templates-fix-plan-llm.js +162 -0
- package/dist/audit/templates-fix-plan.d.ts +37 -0
- package/dist/audit/templates-fix-plan.d.ts.map +1 -0
- package/dist/audit/templates-fix-plan.js +174 -0
- package/dist/command-registry.d.ts +28 -0
- package/dist/command-registry.d.ts.map +1 -1
- package/dist/command-registry.js +91 -1
- package/dist/commands/ai-status.command.d.ts +19 -0
- package/dist/commands/ai-status.command.d.ts.map +1 -0
- package/dist/commands/ai-status.command.js +94 -0
- package/dist/commands/api-diff.command.d.ts +11 -0
- package/dist/commands/api-diff.command.d.ts.map +1 -0
- package/dist/commands/api-diff.command.js +144 -0
- package/dist/commands/apply.command.d.ts.map +1 -1
- package/dist/commands/apply.command.js +10 -2
- package/dist/commands/arch.command.d.ts +9 -0
- package/dist/commands/arch.command.d.ts.map +1 -0
- package/dist/commands/arch.command.js +186 -0
- package/dist/commands/ask.command.d.ts.map +1 -1
- package/dist/commands/ask.command.js +10 -9
- package/dist/commands/cache-align.command.d.ts +12 -0
- package/dist/commands/cache-align.command.d.ts.map +1 -0
- package/dist/commands/cache-align.command.js +78 -0
- package/dist/commands/check.command.d.ts.map +1 -1
- package/dist/commands/check.command.js +26 -2
- package/dist/commands/code-intel.command.d.ts +18 -0
- package/dist/commands/code-intel.command.d.ts.map +1 -0
- package/dist/commands/code-intel.command.js +146 -0
- package/dist/commands/codemod.command.d.ts.map +1 -1
- package/dist/commands/codemod.command.js +27 -6
- package/dist/commands/command-catalog.d.ts +15 -3
- package/dist/commands/command-catalog.d.ts.map +1 -1
- package/dist/commands/command-catalog.js +407 -34
- package/dist/commands/commands.command.d.ts.map +1 -1
- package/dist/commands/commands.command.js +4 -4
- package/dist/commands/completion.command.d.ts +10 -0
- package/dist/commands/completion.command.d.ts.map +1 -0
- package/dist/commands/completion.command.js +121 -0
- package/dist/commands/compress.command.d.ts +8 -0
- package/dist/commands/compress.command.d.ts.map +1 -0
- package/dist/commands/compress.command.js +147 -0
- package/dist/commands/constructs.command.d.ts.map +1 -1
- package/dist/commands/constructs.command.js +89 -23
- package/dist/commands/context.command.d.ts.map +1 -1
- package/dist/commands/context.command.js +121 -1
- package/dist/commands/contract-gate.command.d.ts.map +1 -1
- package/dist/commands/contract-gate.command.js +5 -1
- package/dist/commands/delegate.command.d.ts +65 -0
- package/dist/commands/delegate.command.d.ts.map +1 -0
- package/dist/commands/delegate.command.js +657 -0
- package/dist/commands/deps-audit.command.d.ts +23 -0
- package/dist/commands/deps-audit.command.d.ts.map +1 -0
- package/dist/commands/deps-audit.command.js +270 -0
- package/dist/commands/dev.command.d.ts.map +1 -1
- package/dist/commands/dev.command.js +5 -2
- package/dist/commands/diff-check.command.d.ts +30 -0
- package/dist/commands/diff-check.command.d.ts.map +1 -0
- package/dist/commands/diff-check.command.js +210 -0
- package/dist/commands/doctor.command.d.ts.map +1 -1
- package/dist/commands/doctor.command.js +162 -10
- package/dist/commands/export.command.d.ts.map +1 -1
- package/dist/commands/export.command.js +76 -3
- package/dist/commands/framework.command.d.ts +12 -0
- package/dist/commands/framework.command.d.ts.map +1 -0
- package/dist/commands/framework.command.js +180 -0
- package/dist/commands/gate.command.d.ts +15 -0
- package/dist/commands/gate.command.d.ts.map +1 -0
- package/dist/commands/gate.command.js +300 -0
- package/dist/commands/gen.command.d.ts.map +1 -1
- package/dist/commands/gen.command.js +13 -1
- package/dist/commands/graph-code-subverbs.d.ts +33 -0
- package/dist/commands/graph-code-subverbs.d.ts.map +1 -0
- package/dist/commands/graph-code-subverbs.js +1385 -0
- package/dist/commands/graph.command.d.ts.map +1 -1
- package/dist/commands/graph.command.js +31 -2
- package/dist/commands/help.command.d.ts +4 -3
- package/dist/commands/help.command.d.ts.map +1 -1
- package/dist/commands/help.command.js +86 -18
- package/dist/commands/helper.command.js +1 -1
- package/dist/commands/impact.command.d.ts.map +1 -1
- package/dist/commands/impact.command.js +171 -1
- package/dist/commands/import.command.d.ts.map +1 -1
- package/dist/commands/import.command.js +121 -5
- package/dist/commands/ingest.command.d.ts.map +1 -1
- package/dist/commands/ingest.command.js +5 -1
- package/dist/commands/init.command.d.ts.map +1 -1
- package/dist/commands/init.command.js +174 -7
- package/dist/commands/knowledge-author.command.d.ts.map +1 -1
- package/dist/commands/knowledge-author.command.js +9 -0
- package/dist/commands/knowledge-propose.command.d.ts.map +1 -1
- package/dist/commands/knowledge-propose.command.js +4 -2
- package/dist/commands/knowledge.command.d.ts.map +1 -1
- package/dist/commands/knowledge.command.js +26 -3
- package/dist/commands/migrate.command.d.ts +13 -0
- package/dist/commands/migrate.command.d.ts.map +1 -0
- package/dist/commands/migrate.command.js +152 -0
- package/dist/commands/move-plan.command.d.ts +23 -0
- package/dist/commands/move-plan.command.d.ts.map +1 -0
- package/dist/commands/move-plan.command.js +360 -0
- package/dist/commands/packs-new.d.ts +1 -1
- package/dist/commands/packs-new.d.ts.map +1 -1
- package/dist/commands/packs-new.js +5 -36
- package/dist/commands/packs.command.d.ts.map +1 -1
- package/dist/commands/packs.command.js +2 -10
- package/dist/commands/plan-context.command.d.ts +11 -0
- package/dist/commands/plan-context.command.d.ts.map +1 -0
- package/dist/commands/plan-context.command.js +85 -0
- package/dist/commands/preflight.command.d.ts.map +1 -1
- package/dist/commands/preflight.command.js +15 -0
- package/dist/commands/profiles.command.js +4 -4
- package/dist/commands/recommend.command.d.ts +6 -0
- package/dist/commands/recommend.command.d.ts.map +1 -1
- package/dist/commands/recommend.command.js +119 -5
- package/dist/commands/release.command.js +13 -13
- package/dist/commands/rule-graph-subverbs.d.ts +3 -0
- package/dist/commands/rule-graph-subverbs.d.ts.map +1 -0
- package/dist/commands/rule-graph-subverbs.js +132 -0
- package/dist/commands/rules.command.d.ts.map +1 -1
- package/dist/commands/rules.command.js +20 -3
- package/dist/commands/scaffold-validate.command.d.ts +22 -0
- package/dist/commands/scaffold-validate.command.d.ts.map +1 -0
- package/dist/commands/scaffold-validate.command.js +215 -0
- package/dist/commands/search-structural.command.d.ts +18 -0
- package/dist/commands/search-structural.command.d.ts.map +1 -0
- package/dist/commands/search-structural.command.js +376 -0
- package/dist/commands/search.command.js +1 -1
- package/dist/commands/smart-context.command.d.ts +67 -0
- package/dist/commands/smart-context.command.d.ts.map +1 -0
- package/dist/commands/smart-context.command.js +4728 -0
- package/dist/commands/spike.command.d.ts +22 -0
- package/dist/commands/spike.command.d.ts.map +1 -0
- package/dist/commands/spike.command.js +235 -0
- package/dist/commands/surface.command.d.ts +1 -0
- package/dist/commands/surface.command.d.ts.map +1 -1
- package/dist/commands/surface.command.js +10 -3
- package/dist/commands/task-context.command.d.ts.map +1 -1
- package/dist/commands/task-context.command.js +5 -17
- package/dist/commands/task.command.d.ts.map +1 -1
- package/dist/commands/task.command.js +8 -2
- package/dist/commands/template-quality.command.d.ts.map +1 -1
- package/dist/commands/template-quality.command.js +39 -3
- package/dist/commands/templates.command.d.ts.map +1 -1
- package/dist/commands/templates.command.js +37 -2
- package/dist/commands/tests.command.d.ts.map +1 -1
- package/dist/commands/tests.command.js +13 -2
- package/dist/commands/watch.command.d.ts +26 -0
- package/dist/commands/watch.command.d.ts.map +1 -0
- package/dist/commands/watch.command.js +456 -0
- package/dist/dashboard/code-intelligence-data.d.ts +33 -0
- package/dist/dashboard/code-intelligence-data.d.ts.map +1 -0
- package/dist/dashboard/code-intelligence-data.js +329 -0
- package/dist/dashboard/dashboard-api-server.d.ts.map +1 -1
- package/dist/dashboard/dashboard-api-server.js +256 -2
- package/dist/dashboard/knowledge-ask.d.ts +4 -0
- package/dist/dashboard/knowledge-ask.d.ts.map +1 -0
- package/dist/dashboard/knowledge-ask.js +112 -0
- package/dist/env/load-dotenv.d.ts +15 -0
- package/dist/env/load-dotenv.d.ts.map +1 -0
- package/dist/env/load-dotenv.js +70 -0
- package/dist/export/claude-commands-export.d.ts +60 -0
- package/dist/export/claude-commands-export.d.ts.map +1 -0
- package/dist/export/claude-commands-export.js +276 -0
- package/dist/export/export-formats.d.ts +1 -1
- package/dist/export/export-formats.d.ts.map +1 -1
- package/dist/export/export-formats.js +139 -12
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/init/init-templates.d.ts.map +1 -1
- package/dist/init/init-templates.js +133 -113
- package/dist/init/paths-advisory.d.ts +20 -0
- package/dist/init/paths-advisory.d.ts.map +1 -0
- package/dist/init/paths-advisory.js +88 -0
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +331 -17
- package/dist/output/ccr-store-config.d.ts +18 -0
- package/dist/output/ccr-store-config.d.ts.map +1 -0
- package/dist/output/ccr-store-config.js +41 -0
- package/dist/output/format-output.d.ts.map +1 -1
- package/dist/output/format-output.js +6 -1
- package/dist/output/output-compression.d.ts +15 -0
- package/dist/output/output-compression.d.ts.map +1 -0
- package/dist/output/output-compression.js +60 -0
- package/dist/output/resolve-compress-type.d.ts +22 -0
- package/dist/output/resolve-compress-type.d.ts.map +1 -0
- package/dist/output/resolve-compress-type.js +21 -0
- package/dist/output/watch-loop.d.ts +9 -1
- package/dist/output/watch-loop.d.ts.map +1 -1
- package/dist/output/watch-loop.js +13 -3
- package/dist/schemas/json-schemas.d.ts +384 -36
- package/dist/schemas/json-schemas.d.ts.map +1 -1
- package/dist/schemas/json-schemas.js +247 -36
- package/dist/surface/profiles.d.ts.map +1 -1
- package/dist/surface/profiles.js +54 -10
- package/dist/surface/surface-config-writer.d.ts.map +1 -1
- package/dist/surface/surface-config-writer.js +23 -11
- package/dist/validation/run-validation-loop.d.ts.map +1 -1
- package/dist/validation/run-validation-loop.js +5 -1
- package/package.json +35 -21
- package/dist/commands/plugin.command.d.ts +0 -11
- package/dist/commands/plugin.command.d.ts.map +0 -1
- package/dist/commands/plugin.command.js +0 -394
|
@@ -8,23 +8,41 @@
|
|
|
8
8
|
import { existsSync, mkdirSync, writeFileSync } from 'node:fs';
|
|
9
9
|
import * as nodePath from 'node:path';
|
|
10
10
|
import { affectedFromCheckReport, buildCodemodAssistReport, inspectSharkcraft, parseCustomCheckReportFromFile, renderCodemodAssistMarkdown, } from '@shrkcrft/inspector';
|
|
11
|
-
import {
|
|
11
|
+
import { formatRuleCompact } from '@shrkcrft/rules';
|
|
12
|
+
import { flagBool, flagNumber, flagString, flagList, resolveCwd, } from "../command-registry.js";
|
|
12
13
|
import { asJson, header } from "../output/format-output.js";
|
|
13
14
|
async function loadRule(args) {
|
|
14
15
|
const ruleId = flagString(args, 'rule');
|
|
15
16
|
if (!ruleId) {
|
|
16
|
-
process.stderr.write('Missing --rule <ruleId
|
|
17
|
+
process.stderr.write('Missing --rule <ruleId>. Run `shrk codemod list` to see available rule ids.\n');
|
|
17
18
|
return null;
|
|
18
19
|
}
|
|
19
20
|
const cwd = resolveCwd(args);
|
|
20
21
|
const inspection = await inspectSharkcraft({ cwd });
|
|
21
22
|
const rule = inspection.ruleService.get(ruleId);
|
|
22
23
|
if (!rule) {
|
|
23
|
-
process.stderr.write(`No rule with id "${ruleId}".\n`);
|
|
24
|
+
process.stderr.write(`No rule with id "${ruleId}". Run \`shrk codemod list\` to see available rule ids.\n`);
|
|
24
25
|
return null;
|
|
25
26
|
}
|
|
26
27
|
return { rule, cwd };
|
|
27
28
|
}
|
|
29
|
+
/** `shrk codemod list` — enumerate the rule ids codemod-assist accepts. */
|
|
30
|
+
async function listRules(args) {
|
|
31
|
+
const inspection = await inspectSharkcraft({ cwd: resolveCwd(args) });
|
|
32
|
+
let rules = inspection.ruleService.list();
|
|
33
|
+
const top = flagNumber(args, 'top');
|
|
34
|
+
if (top !== undefined && top > 0) {
|
|
35
|
+
rules = [...rules].sort((a, b) => a.id.localeCompare(b.id)).slice(0, top);
|
|
36
|
+
}
|
|
37
|
+
if (flagBool(args, 'json')) {
|
|
38
|
+
process.stdout.write(asJson(rules.map((r) => ({ id: r.id, type: r.type, priority: r.priority, title: r.title }))) + '\n');
|
|
39
|
+
return 0;
|
|
40
|
+
}
|
|
41
|
+
process.stdout.write(header(`Codemod rules (${rules.length})`));
|
|
42
|
+
for (const r of rules)
|
|
43
|
+
process.stdout.write(formatRuleCompact(r) + '\n');
|
|
44
|
+
return 0;
|
|
45
|
+
}
|
|
28
46
|
async function gatherAffected(args) {
|
|
29
47
|
const fromReport = flagString(args, 'from-report');
|
|
30
48
|
const out = [];
|
|
@@ -57,14 +75,17 @@ function writeAssistOutputs(cwd, ruleId, markdown, scriptTemplate) {
|
|
|
57
75
|
export const codemodCommand = {
|
|
58
76
|
name: 'codemod',
|
|
59
77
|
description: 'Codemod-assist (NOT a codemod engine). Inventory + risk grouping + checklist + project-script template. Never rewrites source.',
|
|
60
|
-
usage: 'shrk codemod <inventory|plan|checklist> --rule <ruleId> [--from-report <path>] [--targets a,b,c] [--write-preview] [--json]',
|
|
78
|
+
usage: 'shrk codemod <list|inventory|plan|checklist> --rule <ruleId> [--from-report <path>] [--targets a,b,c] [--write-preview] [--json]',
|
|
61
79
|
async run(args) {
|
|
62
80
|
const sub = args.positional[0] ?? 'plan';
|
|
63
|
-
if (!['inventory', 'plan', 'checklist'].includes(sub)) {
|
|
64
|
-
process.stderr.write('Usage: shrk codemod <inventory|plan|checklist> --rule <ruleId>\n');
|
|
81
|
+
if (!['list', 'inventory', 'plan', 'checklist'].includes(sub)) {
|
|
82
|
+
process.stderr.write('Usage: shrk codemod <list|inventory|plan|checklist> --rule <ruleId>\n');
|
|
65
83
|
return 2;
|
|
66
84
|
}
|
|
67
85
|
const inner = { ...args, positional: args.positional.slice(1) };
|
|
86
|
+
// `list` enumerates rule ids and needs no --rule.
|
|
87
|
+
if (sub === 'list')
|
|
88
|
+
return listRules(inner);
|
|
68
89
|
const loaded = await loadRule(inner);
|
|
69
90
|
if (!loaded)
|
|
70
91
|
return 1;
|
|
@@ -236,9 +236,13 @@ export declare function commandLifecycle(e: ICommandCatalogEntry): CommandLifecy
|
|
|
236
236
|
/**
|
|
237
237
|
* Default-help visibility rule. Honors an explicit
|
|
238
238
|
* {@link ICommandCatalogEntry.showInDefaultHelp} when set; otherwise
|
|
239
|
-
*
|
|
240
|
-
*
|
|
241
|
-
*
|
|
239
|
+
* the {@link PRIMARY_VERBS_ALLOWLIST} gates membership in the visible
|
|
240
|
+
* surface (primary + common entries whose top-level verb pays rent
|
|
241
|
+
* make the cut; everything else is hidden from `--full-help`).
|
|
242
|
+
*
|
|
243
|
+
* Deprecated, retired, aliased commands and anything in the
|
|
244
|
+
* {@link R46_OVERLAY} are always hidden regardless of allowlist
|
|
245
|
+
* membership.
|
|
242
246
|
*/
|
|
243
247
|
export declare function defaultShowInHelp(e: ICommandCatalogEntry): boolean;
|
|
244
248
|
/**
|
|
@@ -262,4 +266,12 @@ export interface ICommandSafetyMatrixRow {
|
|
|
262
266
|
}
|
|
263
267
|
export declare function buildCommandSafetyMatrix(): readonly ICommandSafetyMatrixRow[];
|
|
264
268
|
export declare function renderCommandSafetyMatrixMarkdown(rows: readonly ICommandSafetyMatrixRow[]): string;
|
|
269
|
+
/**
|
|
270
|
+
* The set of TOP-LEVEL command verbs in the catalogue (the first token of each
|
|
271
|
+
* entry's `command`). The single source of truth for "is `shrk <verb>` a real
|
|
272
|
+
* command" checks — e.g. the contradictions doc-vs-CLI scan, which lives in the
|
|
273
|
+
* inspector layer and so receives this set by injection rather than importing
|
|
274
|
+
* the CLI.
|
|
275
|
+
*/
|
|
276
|
+
export declare function cliCommandNameSet(): Set<string>;
|
|
265
277
|
//# sourceMappingURL=command-catalog.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-catalog.d.ts","sourceRoot":"","sources":["../../src/commands/command-catalog.ts"],"names":[],"mappings":"AAAA,oBAAY,WAAW;IACrB,QAAQ,cAAc;IACtB,iBAAiB,mBAAmB;IACpC,gBAAgB,kBAAkB;IAClC,YAAY,kBAAkB;IAC9B,SAAS,eAAe;IACxB,cAAc,oBAAoB;CACnC;AAED;;;;;;GAMG;AACH,oBAAY,cAAc;IACxB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,MAAM,WAAW;CAClB;AAED,8BAA8B;AAC9B,oBAAY,eAAe;IACzB,KAAK,UAAU;IACf,KAAK,UAAU;IACf,EAAE,OAAO;IACT,UAAU,gBAAgB;IAC1B,UAAU,eAAe;CAC1B;AAED;;;;;;GAMG;AACH,oBAAY,eAAe;IACzB,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,MAAM,WAAW;CAClB;AAED;;;;;;GAMG;AACH,oBAAY,gBAAgB;IAC1B,MAAM,WAAW;IACjB,SAAS,cAAc;IACvB,KAAK,UAAU;IACf,UAAU,eAAe;IACzB,OAAO,YAAY;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,oBAAY,WAAW;IACrB,IAAI,SAAS;IACb,QAAQ,aAAa;IACrB,YAAY,iBAAiB;CAC9B;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B;;;;OAIG;IACH,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,8DAA8D;IAC9D,gBAAgB,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;IAC9C,kCAAkC;IAClC,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,0DAA0D;IAC1D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;;;;;;;;OAWG;IACH,IAAI,CAAC,EAAE,WAAW,CAAC;CACpB;AAED;;;;;GAKG;AACH,eAAO,MAAM,eAAe,EAAE,SAAS,oBAAoB,
|
|
1
|
+
{"version":3,"file":"command-catalog.d.ts","sourceRoot":"","sources":["../../src/commands/command-catalog.ts"],"names":[],"mappings":"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"}
|
|
@@ -115,6 +115,16 @@ export const COMMAND_CATALOG = Object.freeze([
|
|
|
115
115
|
intendedAudience: [CommandAudience.Human, CommandAudience.Agent, CommandAudience.Ci],
|
|
116
116
|
taskRole: CommandTaskRole.Diagnose,
|
|
117
117
|
}),
|
|
118
|
+
entry({
|
|
119
|
+
command: 'ai-status',
|
|
120
|
+
description: 'Report which AI provider shrk would use right now, with setup or upgrade hints. `--ping` verifies the provider actually responds.',
|
|
121
|
+
category: 'core',
|
|
122
|
+
safetyLevel: SafetyLevel.ReadOnly,
|
|
123
|
+
mcpAvailable: false,
|
|
124
|
+
surface: CommandSurface.Common,
|
|
125
|
+
intendedAudience: [CommandAudience.Human, CommandAudience.Agent],
|
|
126
|
+
taskRole: CommandTaskRole.Diagnose,
|
|
127
|
+
}),
|
|
118
128
|
entry({
|
|
119
129
|
command: 'context',
|
|
120
130
|
description: 'Focused context for a task (rules / paths / templates). For "what should I do?" prefer `shrk recommend "<task>"`.',
|
|
@@ -256,13 +266,94 @@ export const COMMAND_CATALOG = Object.freeze([
|
|
|
256
266
|
}),
|
|
257
267
|
entry({
|
|
258
268
|
command: 'graph',
|
|
259
|
-
description: 'Knowledge graph
|
|
269
|
+
description: 'Knowledge graph plus code-intelligence subverbs (`index`, `status`, `search`, `context`, `impact`, `callers`, `cycles`, `unresolved`, `deps`, `why`, `export`).',
|
|
260
270
|
category: 'core',
|
|
261
271
|
safetyLevel: SafetyLevel.ReadOnly,
|
|
262
272
|
mcpAvailable: true,
|
|
263
273
|
surface: CommandSurface.Common,
|
|
264
274
|
taskRole: CommandTaskRole.Inspect,
|
|
265
275
|
}),
|
|
276
|
+
entry({
|
|
277
|
+
command: 'rule-graph',
|
|
278
|
+
description: 'Bridge the code graph to asset registries (boundary rules, path conventions, templates). Sub-verbs: index, status, for <file>.',
|
|
279
|
+
category: 'core',
|
|
280
|
+
safetyLevel: SafetyLevel.WritesSessionOnly,
|
|
281
|
+
mcpAvailable: true,
|
|
282
|
+
surface: CommandSurface.Common,
|
|
283
|
+
taskRole: CommandTaskRole.Inspect,
|
|
284
|
+
}),
|
|
285
|
+
entry({
|
|
286
|
+
command: 'search-structural',
|
|
287
|
+
description: 'Declarative AST pattern search over the project. Read-only; no rewrites in this round.',
|
|
288
|
+
category: 'core',
|
|
289
|
+
safetyLevel: SafetyLevel.ReadOnly,
|
|
290
|
+
mcpAvailable: true,
|
|
291
|
+
surface: CommandSurface.Common,
|
|
292
|
+
taskRole: CommandTaskRole.Inspect,
|
|
293
|
+
}),
|
|
294
|
+
entry({
|
|
295
|
+
command: 'plan-context',
|
|
296
|
+
description: 'Produce a deterministic, token-budgeted context pack (`sharkcraft.context-pack/v1`) for an AI coding agent.',
|
|
297
|
+
category: 'core',
|
|
298
|
+
safetyLevel: SafetyLevel.ReadOnly,
|
|
299
|
+
mcpAvailable: true,
|
|
300
|
+
surface: CommandSurface.Common,
|
|
301
|
+
taskRole: CommandTaskRole.Context,
|
|
302
|
+
}),
|
|
303
|
+
entry({
|
|
304
|
+
command: 'arch',
|
|
305
|
+
description: 'Architecture-guard checks (public-API misuse, barrel risks, cycle severity, project contracts).',
|
|
306
|
+
category: 'core',
|
|
307
|
+
safetyLevel: SafetyLevel.ReadOnly,
|
|
308
|
+
mcpAvailable: true,
|
|
309
|
+
surface: CommandSurface.Common,
|
|
310
|
+
taskRole: CommandTaskRole.Validate,
|
|
311
|
+
}),
|
|
312
|
+
entry({
|
|
313
|
+
command: 'framework',
|
|
314
|
+
description: 'Framework-aware extractors: NestJS controllers/modules/providers/routes, React components/hook usages. Sub-verbs: index, status, list, routes.',
|
|
315
|
+
category: 'core',
|
|
316
|
+
safetyLevel: SafetyLevel.WritesSessionOnly,
|
|
317
|
+
mcpAvailable: true,
|
|
318
|
+
surface: CommandSurface.Common,
|
|
319
|
+
taskRole: CommandTaskRole.Inspect,
|
|
320
|
+
}),
|
|
321
|
+
entry({
|
|
322
|
+
command: 'api-diff',
|
|
323
|
+
description: 'Compare the current public API surface to a baseline. Reports added / removed / kind-changed / moved symbols with breaking-change severity.',
|
|
324
|
+
category: 'core',
|
|
325
|
+
safetyLevel: SafetyLevel.ReadOnly,
|
|
326
|
+
mcpAvailable: true,
|
|
327
|
+
surface: CommandSurface.Common,
|
|
328
|
+
taskRole: CommandTaskRole.Validate,
|
|
329
|
+
}),
|
|
330
|
+
entry({
|
|
331
|
+
command: 'gate',
|
|
332
|
+
description: 'Aggregator quality-gate: graph freshness + architecture + impact-since-ref → one pass/fail. The pre-merge gate for AI-agent-authored changes.',
|
|
333
|
+
category: 'core',
|
|
334
|
+
safetyLevel: SafetyLevel.ReadOnly,
|
|
335
|
+
mcpAvailable: true,
|
|
336
|
+
surface: CommandSurface.Common,
|
|
337
|
+
taskRole: CommandTaskRole.Validate,
|
|
338
|
+
}),
|
|
339
|
+
entry({
|
|
340
|
+
command: 'migrate',
|
|
341
|
+
description: 'Run a multi-step migration: structural rewrites + shell + checks orchestrated as one replayable plan.',
|
|
342
|
+
category: 'core',
|
|
343
|
+
safetyLevel: SafetyLevel.WritesSource,
|
|
344
|
+
mcpAvailable: false,
|
|
345
|
+
surface: CommandSurface.Common,
|
|
346
|
+
taskRole: CommandTaskRole.Generate,
|
|
347
|
+
}),
|
|
348
|
+
entry({
|
|
349
|
+
command: 'code-intel',
|
|
350
|
+
description: 'One-shot view of code-intelligence doctor checks (graph, rule-graph, api-surface, quality-gate, migrations, architecture, impact, framework, structural-search, context-planner). Read-only.',
|
|
351
|
+
category: 'core',
|
|
352
|
+
safetyLevel: SafetyLevel.ReadOnly,
|
|
353
|
+
mcpAvailable: true,
|
|
354
|
+
surface: CommandSurface.Common,
|
|
355
|
+
taskRole: CommandTaskRole.Diagnose,
|
|
356
|
+
}),
|
|
266
357
|
entry({
|
|
267
358
|
command: 'check',
|
|
268
359
|
description: 'Run validation checks across registries / packs / boundaries.',
|
|
@@ -291,6 +382,15 @@ export const COMMAND_CATALOG = Object.freeze([
|
|
|
291
382
|
surface: CommandSurface.Common,
|
|
292
383
|
taskRole: CommandTaskRole.Validate,
|
|
293
384
|
}),
|
|
385
|
+
entry({
|
|
386
|
+
command: 'diff-check',
|
|
387
|
+
description: 'Self-check current git diff against boundary + import-hygiene rules. Single-call composite for agents to validate edits before declaring done. Read-only.',
|
|
388
|
+
category: 'core',
|
|
389
|
+
safetyLevel: SafetyLevel.ReadOnly,
|
|
390
|
+
mcpAvailable: true,
|
|
391
|
+
surface: CommandSurface.Common,
|
|
392
|
+
taskRole: CommandTaskRole.Validate,
|
|
393
|
+
}),
|
|
294
394
|
entry({
|
|
295
395
|
command: 'review',
|
|
296
396
|
description: 'PR-review packet — changed files, affected rules, missing tests heuristic.',
|
|
@@ -338,6 +438,18 @@ export const COMMAND_CATALOG = Object.freeze([
|
|
|
338
438
|
surface: CommandSurface.Common,
|
|
339
439
|
taskRole: CommandTaskRole.Apply,
|
|
340
440
|
}),
|
|
441
|
+
entry({
|
|
442
|
+
command: 'delegate',
|
|
443
|
+
description: 'Hand a mechanical edit to a local-LLM worker; the engine verifies the result and auto-reverts on failure (run|brief). Writes source only via --apply through the signed-plan + verify gate.',
|
|
444
|
+
category: 'core',
|
|
445
|
+
safetyLevel: SafetyLevel.WritesSource,
|
|
446
|
+
writesFiles: true,
|
|
447
|
+
writesSource: true,
|
|
448
|
+
requiresReview: true,
|
|
449
|
+
surface: CommandSurface.Advanced,
|
|
450
|
+
intendedAudience: [CommandAudience.Human, CommandAudience.Agent],
|
|
451
|
+
taskRole: CommandTaskRole.Apply,
|
|
452
|
+
}),
|
|
341
453
|
// `shrk spec` intent artifact over plan/review/apply.
|
|
342
454
|
entry({
|
|
343
455
|
command: 'spec',
|
|
@@ -464,6 +576,26 @@ export const COMMAND_CATALOG = Object.freeze([
|
|
|
464
576
|
safetyLevel: SafetyLevel.WritesSessionOnly,
|
|
465
577
|
writesFiles: true,
|
|
466
578
|
}),
|
|
579
|
+
entry({
|
|
580
|
+
command: 'dev status',
|
|
581
|
+
description: 'Show session phase, progress, and next action. Read-only.',
|
|
582
|
+
category: 'dev',
|
|
583
|
+
safetyLevel: SafetyLevel.ReadOnly,
|
|
584
|
+
}),
|
|
585
|
+
entry({
|
|
586
|
+
command: 'dev next',
|
|
587
|
+
description: 'Show (and persist) the next recommended action for a session.',
|
|
588
|
+
category: 'dev',
|
|
589
|
+
safetyLevel: SafetyLevel.WritesSessionOnly,
|
|
590
|
+
writesFiles: true,
|
|
591
|
+
}),
|
|
592
|
+
entry({
|
|
593
|
+
command: 'dev continue',
|
|
594
|
+
description: 'Alias of dev next — advance the session to its next action.',
|
|
595
|
+
category: 'dev',
|
|
596
|
+
safetyLevel: SafetyLevel.WritesSessionOnly,
|
|
597
|
+
writesFiles: true,
|
|
598
|
+
}),
|
|
467
599
|
entry({
|
|
468
600
|
command: 'dev mark-applied',
|
|
469
601
|
description: 'Metadata-only: mark a session plan applied. No source writes.',
|
|
@@ -634,6 +766,11 @@ export const COMMAND_CATALOG = Object.freeze([
|
|
|
634
766
|
category: 'task-context',
|
|
635
767
|
safetyLevel: SafetyLevel.ReadOnly,
|
|
636
768
|
mcpAvailable: true,
|
|
769
|
+
// Overlaps with `shrk task` (machine packet) and `shrk recommend`
|
|
770
|
+
// (human routing). Pointing at `task` as canonical so users who
|
|
771
|
+
// hit this via tab-complete see the canonical machine-pipe form.
|
|
772
|
+
overlapsWith: ['task', 'recommend'],
|
|
773
|
+
preferredCommand: 'shrk task "<task>"',
|
|
637
774
|
}),
|
|
638
775
|
entry({
|
|
639
776
|
command: 'validate-change',
|
|
@@ -943,6 +1080,13 @@ export const COMMAND_CATALOG = Object.freeze([
|
|
|
943
1080
|
safetyLevel: SafetyLevel.ReadOnly,
|
|
944
1081
|
surface: CommandSurface.Common,
|
|
945
1082
|
}),
|
|
1083
|
+
entry({
|
|
1084
|
+
command: 'completion',
|
|
1085
|
+
description: 'Print a sourcable shell-completion script for the `shrk` CLI (bash | zsh | fish). Pipe into your shell rc.',
|
|
1086
|
+
category: 'meta',
|
|
1087
|
+
safetyLevel: SafetyLevel.ReadOnly,
|
|
1088
|
+
surface: CommandSurface.Common,
|
|
1089
|
+
}),
|
|
946
1090
|
entry({
|
|
947
1091
|
command: 'explain',
|
|
948
1092
|
description: 'Universal explainer: knowledge entry, rule, template, command id, or stderr blob.',
|
|
@@ -1007,7 +1151,7 @@ export const COMMAND_CATALOG = Object.freeze([
|
|
|
1007
1151
|
// `commands doctor` is honest.
|
|
1008
1152
|
entry({
|
|
1009
1153
|
command: 'profiles',
|
|
1010
|
-
description: 'List / inspect pack-contributed profiles (
|
|
1154
|
+
description: 'List / inspect pack-contributed profiles (migration, conventions, …). Subcommands: list, get, doctor, search.',
|
|
1011
1155
|
category: 'core',
|
|
1012
1156
|
safetyLevel: SafetyLevel.ReadOnly,
|
|
1013
1157
|
mcpAvailable: true,
|
|
@@ -1080,6 +1224,104 @@ export const COMMAND_CATALOG = Object.freeze([
|
|
|
1080
1224
|
category: 'core',
|
|
1081
1225
|
safetyLevel: SafetyLevel.ReadOnly,
|
|
1082
1226
|
}),
|
|
1227
|
+
entry({
|
|
1228
|
+
command: 'smart-context',
|
|
1229
|
+
description: 'Build deterministic context and ask an AI provider to synthesise an enriched brief (default), structured plan (--plan), or two-stage development plan (--ai-plan). Opt-in; defaults to Gemini. CLAUDE.md is auto-included in the seed.',
|
|
1230
|
+
category: 'core',
|
|
1231
|
+
safetyLevel: SafetyLevel.ReadOnly,
|
|
1232
|
+
taskRole: CommandTaskRole.Context,
|
|
1233
|
+
}),
|
|
1234
|
+
entry({
|
|
1235
|
+
command: 'smart-context plan-ahead',
|
|
1236
|
+
description: 'Batch-generate AI-backed plans for a queue of upcoming tasks and save each under .sharkcraft/smart-context/.',
|
|
1237
|
+
category: 'core',
|
|
1238
|
+
safetyLevel: SafetyLevel.ReadOnly,
|
|
1239
|
+
taskRole: CommandTaskRole.Context,
|
|
1240
|
+
}),
|
|
1241
|
+
entry({
|
|
1242
|
+
command: 'smart-context list',
|
|
1243
|
+
description: 'List saved smart-context entries under .sharkcraft/smart-context/.',
|
|
1244
|
+
category: 'core',
|
|
1245
|
+
safetyLevel: SafetyLevel.ReadOnly,
|
|
1246
|
+
taskRole: CommandTaskRole.Inspect,
|
|
1247
|
+
}),
|
|
1248
|
+
entry({
|
|
1249
|
+
command: 'smart-context show',
|
|
1250
|
+
description: 'Print a saved smart-context entry by slug.',
|
|
1251
|
+
category: 'core',
|
|
1252
|
+
safetyLevel: SafetyLevel.ReadOnly,
|
|
1253
|
+
taskRole: CommandTaskRole.Inspect,
|
|
1254
|
+
}),
|
|
1255
|
+
entry({
|
|
1256
|
+
command: 'smart-context embeddings-build',
|
|
1257
|
+
description: 'Build or incrementally refresh the semantic file index used by smart-context. Downloads the embedding model on first run.',
|
|
1258
|
+
category: 'core',
|
|
1259
|
+
safetyLevel: SafetyLevel.WritesSessionOnly,
|
|
1260
|
+
taskRole: CommandTaskRole.Context,
|
|
1261
|
+
}),
|
|
1262
|
+
entry({
|
|
1263
|
+
command: 'smart-context embeddings-status',
|
|
1264
|
+
description: 'Report semantic index freshness without loading the embedding model.',
|
|
1265
|
+
category: 'core',
|
|
1266
|
+
safetyLevel: SafetyLevel.ReadOnly,
|
|
1267
|
+
taskRole: CommandTaskRole.Inspect,
|
|
1268
|
+
}),
|
|
1269
|
+
entry({
|
|
1270
|
+
command: 'spike',
|
|
1271
|
+
description: 'Scaffold starter files for a saved smart-context plan\'s recommended MVP. Reads .sharkcraft/smart-context/<slug>.plan.json.',
|
|
1272
|
+
category: 'core',
|
|
1273
|
+
safetyLevel: SafetyLevel.WritesSource,
|
|
1274
|
+
taskRole: CommandTaskRole.Generate,
|
|
1275
|
+
}),
|
|
1276
|
+
entry({
|
|
1277
|
+
command: 'deps-audit',
|
|
1278
|
+
description: 'Compare declared package dependencies (package.json) with actually imported specifiers (graph). Reports missing + unused deps. Read-only.',
|
|
1279
|
+
category: 'core',
|
|
1280
|
+
safetyLevel: SafetyLevel.ReadOnly,
|
|
1281
|
+
taskRole: CommandTaskRole.Inspect,
|
|
1282
|
+
}),
|
|
1283
|
+
entry({
|
|
1284
|
+
command: 'scaffold-validate',
|
|
1285
|
+
description: 'Validate that the files in a saved generation plan exist on disk and look intact (size envelope + type match). Read-only.',
|
|
1286
|
+
category: 'core',
|
|
1287
|
+
safetyLevel: SafetyLevel.ReadOnly,
|
|
1288
|
+
taskRole: CommandTaskRole.Validate,
|
|
1289
|
+
}),
|
|
1290
|
+
entry({
|
|
1291
|
+
command: 'move-plan',
|
|
1292
|
+
description: 'Plan a file move: graph-traced importer rewrites, export touch-ups, cross-package warnings, rollback steps. Read-only.',
|
|
1293
|
+
category: 'core',
|
|
1294
|
+
safetyLevel: SafetyLevel.ReadOnly,
|
|
1295
|
+
taskRole: CommandTaskRole.Generate,
|
|
1296
|
+
}),
|
|
1297
|
+
entry({
|
|
1298
|
+
command: 'watch',
|
|
1299
|
+
description: 'Emit a focused-context packet on stdout JSONL each time the workspace changes. Designed to feed a parallel Claude agent.',
|
|
1300
|
+
category: 'core',
|
|
1301
|
+
safetyLevel: SafetyLevel.WritesSessionOnly,
|
|
1302
|
+
taskRole: CommandTaskRole.Context,
|
|
1303
|
+
}),
|
|
1304
|
+
entry({
|
|
1305
|
+
command: 'watch list',
|
|
1306
|
+
description: 'List active shrk-watch daemons (one per task slug).',
|
|
1307
|
+
category: 'core',
|
|
1308
|
+
safetyLevel: SafetyLevel.ReadOnly,
|
|
1309
|
+
taskRole: CommandTaskRole.Inspect,
|
|
1310
|
+
}),
|
|
1311
|
+
entry({
|
|
1312
|
+
command: 'watch stop',
|
|
1313
|
+
description: 'Stop a running shrk-watch daemon by slug.',
|
|
1314
|
+
category: 'core',
|
|
1315
|
+
safetyLevel: SafetyLevel.WritesSessionOnly,
|
|
1316
|
+
taskRole: CommandTaskRole.Config,
|
|
1317
|
+
}),
|
|
1318
|
+
entry({
|
|
1319
|
+
command: 'watch prune',
|
|
1320
|
+
description: 'Remove stale shrk-watch manifests whose owning processes are no longer alive.',
|
|
1321
|
+
category: 'core',
|
|
1322
|
+
safetyLevel: SafetyLevel.WritesSessionOnly,
|
|
1323
|
+
taskRole: CommandTaskRole.Config,
|
|
1324
|
+
}),
|
|
1083
1325
|
entry({
|
|
1084
1326
|
command: 'safety audit',
|
|
1085
1327
|
description: 'Audit the SharkCraft safety model (commands, MCP, packs, plan signing).',
|
|
@@ -1285,6 +1527,48 @@ export const COMMAND_CATALOG = Object.freeze([
|
|
|
1285
1527
|
intendedAudience: [CommandAudience.Human, CommandAudience.Ci],
|
|
1286
1528
|
taskRole: CommandTaskRole.Inspect,
|
|
1287
1529
|
}),
|
|
1530
|
+
entry({
|
|
1531
|
+
command: 'compress',
|
|
1532
|
+
description: 'Deterministically compress a blob (file or stdin) to cut tokens — JSON→table, logs/search/diffs→signal. Reversible via `shrk expand`.',
|
|
1533
|
+
category: 'core',
|
|
1534
|
+
safetyLevel: SafetyLevel.WritesSessionOnly,
|
|
1535
|
+
writesFiles: true,
|
|
1536
|
+
mcpAvailable: true,
|
|
1537
|
+
surface: CommandSurface.Common,
|
|
1538
|
+
intendedAudience: [CommandAudience.Agent, CommandAudience.Human],
|
|
1539
|
+
taskRole: CommandTaskRole.Context,
|
|
1540
|
+
}),
|
|
1541
|
+
entry({
|
|
1542
|
+
command: 'expand',
|
|
1543
|
+
description: 'Retrieve the full original a `shrk compress` run cached, by its `<<ccr:KEY>>` key.',
|
|
1544
|
+
category: 'core',
|
|
1545
|
+
safetyLevel: SafetyLevel.ReadOnly,
|
|
1546
|
+
mcpAvailable: true,
|
|
1547
|
+
surface: CommandSurface.Common,
|
|
1548
|
+
intendedAudience: [CommandAudience.Agent, CommandAudience.Human],
|
|
1549
|
+
taskRole: CommandTaskRole.Context,
|
|
1550
|
+
}),
|
|
1551
|
+
entry({
|
|
1552
|
+
command: 'align',
|
|
1553
|
+
description: 'Replace volatile tokens (UUIDs/JWTs/timestamps/hashes) with stable placeholders for KV-cache prefix stability; reversible via `shrk unalign`.',
|
|
1554
|
+
category: 'core',
|
|
1555
|
+
safetyLevel: SafetyLevel.WritesSessionOnly,
|
|
1556
|
+
writesFiles: true,
|
|
1557
|
+
mcpAvailable: true,
|
|
1558
|
+
surface: CommandSurface.Advanced,
|
|
1559
|
+
intendedAudience: [CommandAudience.Agent, CommandAudience.Human],
|
|
1560
|
+
taskRole: CommandTaskRole.Context,
|
|
1561
|
+
}),
|
|
1562
|
+
entry({
|
|
1563
|
+
command: 'unalign',
|
|
1564
|
+
description: 'Restore the original volatile tokens in aligned text using its `--map`.',
|
|
1565
|
+
category: 'core',
|
|
1566
|
+
safetyLevel: SafetyLevel.ReadOnly,
|
|
1567
|
+
mcpAvailable: true,
|
|
1568
|
+
surface: CommandSurface.Advanced,
|
|
1569
|
+
intendedAudience: [CommandAudience.Agent, CommandAudience.Human],
|
|
1570
|
+
taskRole: CommandTaskRole.Context,
|
|
1571
|
+
}),
|
|
1288
1572
|
// ── Backend feature expansion ─────────────────────────────────────────
|
|
1289
1573
|
entry({
|
|
1290
1574
|
command: 'bundle create',
|
|
@@ -2316,7 +2600,7 @@ export const COMMAND_CATALOG = Object.freeze([
|
|
|
2316
2600
|
}),
|
|
2317
2601
|
entry({
|
|
2318
2602
|
command: 'release smoke --matrix',
|
|
2319
|
-
description: 'Run smoke scenarios across multiple repo targets (sharkcraft/dogfood/synthetic/
|
|
2603
|
+
description: 'Run smoke scenarios across multiple repo targets (sharkcraft/dogfood/synthetic/consumer).',
|
|
2320
2604
|
category: 'release',
|
|
2321
2605
|
safetyLevel: SafetyLevel.WritesDraftsOnly,
|
|
2322
2606
|
writesFiles: true,
|
|
@@ -2708,34 +2992,6 @@ export const COMMAND_CATALOG = Object.freeze([
|
|
|
2708
2992
|
safetyLevel: SafetyLevel.ReadOnly,
|
|
2709
2993
|
mcpAvailable: true,
|
|
2710
2994
|
}),
|
|
2711
|
-
entry({
|
|
2712
|
-
command: 'plugin rename',
|
|
2713
|
-
description: 'Plan-only plugin rename (profile-driven) — emits replace ops + manual folder rename checklist.',
|
|
2714
|
-
category: 'lifecycle',
|
|
2715
|
-
safetyLevel: SafetyLevel.WritesDraftsOnly,
|
|
2716
|
-
mcpAvailable: true,
|
|
2717
|
-
}),
|
|
2718
|
-
entry({
|
|
2719
|
-
command: 'plugin remove',
|
|
2720
|
-
description: 'Plan-only destructive plugin remove (profile-driven) — destructive; requires human approval.',
|
|
2721
|
-
category: 'lifecycle',
|
|
2722
|
-
safetyLevel: SafetyLevel.WritesDraftsOnly,
|
|
2723
|
-
mcpAvailable: true,
|
|
2724
|
-
}),
|
|
2725
|
-
entry({
|
|
2726
|
-
command: 'plugin lifecycle list',
|
|
2727
|
-
description: 'List plugins detected under the active profile roots and key-table. Read-only.',
|
|
2728
|
-
category: 'lifecycle',
|
|
2729
|
-
safetyLevel: SafetyLevel.ReadOnly,
|
|
2730
|
-
mcpAvailable: false,
|
|
2731
|
-
}),
|
|
2732
|
-
entry({
|
|
2733
|
-
command: 'plugin lifecycle inspect',
|
|
2734
|
-
description: 'Inspect references to a plugin across the profile layers + key-table. Read-only.',
|
|
2735
|
-
category: 'lifecycle',
|
|
2736
|
-
safetyLevel: SafetyLevel.ReadOnly,
|
|
2737
|
-
mcpAvailable: false,
|
|
2738
|
-
}),
|
|
2739
2995
|
entry({
|
|
2740
2996
|
command: 'helper list',
|
|
2741
2997
|
description: 'List available helper plan generators. Read-only.',
|
|
@@ -3137,12 +3393,102 @@ export function commandLifecycle(e) {
|
|
|
3137
3393
|
return CommandLifecycle.Deprecated;
|
|
3138
3394
|
return CommandLifecycle.Active;
|
|
3139
3395
|
}
|
|
3396
|
+
/**
|
|
3397
|
+
* The "Primary verbs" allowlist — top-level commands that pay rent in
|
|
3398
|
+
* the default help surface. Everything else stays callable but is
|
|
3399
|
+
* hidden from `--full-help` and from MCP tool advertising; users find
|
|
3400
|
+
* them via `shrk surface list`, `shrk help <cmd>`, or `--full-help`.
|
|
3401
|
+
*
|
|
3402
|
+
* Picked to cover the canonical agent-flow journeys:
|
|
3403
|
+
* - bootstrap a repo, verify it
|
|
3404
|
+
* - get a brief / context / task packet for an agent
|
|
3405
|
+
* - generate safely (plan → apply → check)
|
|
3406
|
+
* - browse what shrk knows (rules / paths / templates / presets)
|
|
3407
|
+
* - inline the rules into the agent's prompt (export, mcp, dashboard)
|
|
3408
|
+
* - daily operations (review, impact, search, explain, why, surface)
|
|
3409
|
+
*
|
|
3410
|
+
* Anything not in this set falls back to the legacy
|
|
3411
|
+
* surface-tier-based visibility, with deprecated / retired / aliased
|
|
3412
|
+
* commands hidden regardless. Adding a verb here is the explicit
|
|
3413
|
+
* "this is rent-paying" decision.
|
|
3414
|
+
*/
|
|
3415
|
+
const PRIMARY_VERBS_ALLOWLIST = new Set([
|
|
3416
|
+
// Bootstrap
|
|
3417
|
+
'init',
|
|
3418
|
+
'doctor',
|
|
3419
|
+
'inspect',
|
|
3420
|
+
'onboard',
|
|
3421
|
+
'version',
|
|
3422
|
+
'help',
|
|
3423
|
+
'preflight',
|
|
3424
|
+
'self-config',
|
|
3425
|
+
// Per-task
|
|
3426
|
+
'brief',
|
|
3427
|
+
'recommend',
|
|
3428
|
+
'context',
|
|
3429
|
+
'task',
|
|
3430
|
+
'coverage',
|
|
3431
|
+
'explain',
|
|
3432
|
+
'why',
|
|
3433
|
+
'search',
|
|
3434
|
+
'impact',
|
|
3435
|
+
'graph',
|
|
3436
|
+
'code-intel',
|
|
3437
|
+
'compress',
|
|
3438
|
+
'expand',
|
|
3439
|
+
// Generate code safely
|
|
3440
|
+
'gen',
|
|
3441
|
+
'apply',
|
|
3442
|
+
'check',
|
|
3443
|
+
'quality',
|
|
3444
|
+
'plan',
|
|
3445
|
+
'fix',
|
|
3446
|
+
// Browse / inline
|
|
3447
|
+
'knowledge',
|
|
3448
|
+
'rules',
|
|
3449
|
+
'templates',
|
|
3450
|
+
'paths',
|
|
3451
|
+
'import',
|
|
3452
|
+
'export',
|
|
3453
|
+
// Architecture & quality gates
|
|
3454
|
+
'drift',
|
|
3455
|
+
'safety',
|
|
3456
|
+
// Run for an agent
|
|
3457
|
+
'mcp',
|
|
3458
|
+
'dashboard',
|
|
3459
|
+
// Ops
|
|
3460
|
+
'surface',
|
|
3461
|
+
'presets',
|
|
3462
|
+
'review',
|
|
3463
|
+
'packs',
|
|
3464
|
+
'ci',
|
|
3465
|
+
'commands',
|
|
3466
|
+
]);
|
|
3467
|
+
function topLevelVerb(command) {
|
|
3468
|
+
// Strip leading `--cwd <dir>` / `--<flag>` tokens and angle-bracket
|
|
3469
|
+
// placeholders; the canonical first verb is whatever leads.
|
|
3470
|
+
const tokens = command.split(/\s+/);
|
|
3471
|
+
for (const t of tokens) {
|
|
3472
|
+
if (!t)
|
|
3473
|
+
continue;
|
|
3474
|
+
if (t.startsWith('--') || t.startsWith('-'))
|
|
3475
|
+
continue;
|
|
3476
|
+
if (t.startsWith('<') || t.startsWith('"'))
|
|
3477
|
+
continue;
|
|
3478
|
+
return t;
|
|
3479
|
+
}
|
|
3480
|
+
return command;
|
|
3481
|
+
}
|
|
3140
3482
|
/**
|
|
3141
3483
|
* Default-help visibility rule. Honors an explicit
|
|
3142
3484
|
* {@link ICommandCatalogEntry.showInDefaultHelp} when set; otherwise
|
|
3143
|
-
*
|
|
3144
|
-
*
|
|
3145
|
-
*
|
|
3485
|
+
* the {@link PRIMARY_VERBS_ALLOWLIST} gates membership in the visible
|
|
3486
|
+
* surface (primary + common entries whose top-level verb pays rent
|
|
3487
|
+
* make the cut; everything else is hidden from `--full-help`).
|
|
3488
|
+
*
|
|
3489
|
+
* Deprecated, retired, aliased commands and anything in the
|
|
3490
|
+
* {@link R46_OVERLAY} are always hidden regardless of allowlist
|
|
3491
|
+
* membership.
|
|
3146
3492
|
*/
|
|
3147
3493
|
export function defaultShowInHelp(e) {
|
|
3148
3494
|
if (e.showInDefaultHelp !== undefined)
|
|
@@ -3155,6 +3501,12 @@ export function defaultShowInHelp(e) {
|
|
|
3155
3501
|
return false;
|
|
3156
3502
|
if (lc === CommandLifecycle.Alias)
|
|
3157
3503
|
return false;
|
|
3504
|
+
// Allowlist gate — the top-level verb must be one of the ~30
|
|
3505
|
+
// rent-paying verbs. Subcommands of an allowlisted verb inherit
|
|
3506
|
+
// visibility (so `check boundaries` shows under `check`).
|
|
3507
|
+
const verb = topLevelVerb(e.command);
|
|
3508
|
+
if (!PRIMARY_VERBS_ALLOWLIST.has(verb))
|
|
3509
|
+
return false;
|
|
3158
3510
|
const surface = commandSurface(e);
|
|
3159
3511
|
return surface === CommandSurface.Primary || surface === CommandSurface.Common;
|
|
3160
3512
|
}
|
|
@@ -3240,3 +3592,24 @@ export function renderCommandSafetyMatrixMarkdown(rows) {
|
|
|
3240
3592
|
}
|
|
3241
3593
|
return lines.join('\n') + '\n';
|
|
3242
3594
|
}
|
|
3595
|
+
/**
|
|
3596
|
+
* The set of TOP-LEVEL command verbs in the catalogue (the first token of each
|
|
3597
|
+
* entry's `command`). The single source of truth for "is `shrk <verb>` a real
|
|
3598
|
+
* command" checks — e.g. the contradictions doc-vs-CLI scan, which lives in the
|
|
3599
|
+
* inspector layer and so receives this set by injection rather than importing
|
|
3600
|
+
* the CLI.
|
|
3601
|
+
*/
|
|
3602
|
+
export function cliCommandNameSet() {
|
|
3603
|
+
const out = new Set();
|
|
3604
|
+
for (const entry of COMMAND_CATALOG) {
|
|
3605
|
+
const top = entry.command.split(/\s+/)[0];
|
|
3606
|
+
if (top)
|
|
3607
|
+
out.add(top);
|
|
3608
|
+
for (const alias of entry.aliases) {
|
|
3609
|
+
const aliasTop = alias.split(/\s+/)[0];
|
|
3610
|
+
if (aliasTop)
|
|
3611
|
+
out.add(aliasTop);
|
|
3612
|
+
}
|
|
3613
|
+
}
|
|
3614
|
+
return out;
|
|
3615
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.command.d.ts","sourceRoot":"","sources":["../../src/commands/commands.command.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"commands.command.d.ts","sourceRoot":"","sources":["../../src/commands/commands.command.ts"],"names":[],"mappings":"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"}
|