wabachi 0.1.0 → 0.2.1
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/.codex-plugin/plugin.json +6 -0
- package/LICENSE +1 -1
- package/README.md +13 -22
- package/dist/architecture/canon/codec.js +26 -2
- package/dist/architecture/canon/codec.js.map +1 -1
- package/dist/architecture/canon/elements.d.ts +8 -1
- package/dist/architecture/canon/elements.js +56 -1
- package/dist/architecture/canon/elements.js.map +1 -1
- package/dist/architecture/canon/validate.d.ts +1 -1
- package/dist/architecture/canon/validate.js +37 -1
- package/dist/architecture/canon/validate.js.map +1 -1
- package/dist/architecture/canon/views.d.ts +5 -0
- package/dist/architecture/canon/views.js +4 -0
- package/dist/architecture/canon/views.js.map +1 -1
- package/dist/architecture/cli.js +5 -5
- package/dist/architecture/cli.js.map +1 -1
- package/dist/architecture/documentation/project.js +1 -1
- package/dist/architecture/documentation/project.js.map +1 -1
- package/dist/architecture/projection/structurizr-export.js +5 -4
- package/dist/architecture/projection/structurizr-export.js.map +1 -1
- package/dist/architecture/projection/structurizr.d.ts +1 -1
- package/dist/architecture/projection/structurizr.js +156 -54
- package/dist/architecture/projection/structurizr.js.map +1 -1
- package/dist/cli.js +53 -14
- package/dist/cli.js.map +1 -1
- package/dist/command-contract.d.ts +77 -0
- package/dist/command-contract.js +193 -0
- package/dist/command-contract.js.map +1 -0
- package/dist/skill.d.ts +47 -0
- package/dist/skill.js +160 -0
- package/dist/skill.js.map +1 -0
- package/docs/USAGE.md +110 -0
- package/package.json +21 -21
- package/skills/wabachi/SKILL.md +30 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"structurizr.js","sourceRoot":"","sources":["../../../src/architecture/projection/structurizr.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"structurizr.js","sourceRoot":"","sources":["../../../src/architecture/projection/structurizr.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -8,8 +8,23 @@ import { createScipTypescriptProvider } from "./runtime/scipProvider.js";
|
|
|
8
8
|
import { createTypeScriptProvider } from "./runtime/typescriptProvider.js";
|
|
9
9
|
import { runProviderMatrix } from "./runtime/workflow.js";
|
|
10
10
|
import { runArchitectureCli } from "./architecture/cli.js";
|
|
11
|
+
import { commandUsage, parseHelpRequest, projectCommandHelp, renderCommandHelp } from "./command-contract.js";
|
|
12
|
+
import { boundText, findSkillScenario, projectSkillIndexToJson, projectSkillIndexToText, projectSkillScenarioToJson, projectSkillScenarioToText, serializeSkillJson, } from "./skill.js";
|
|
11
13
|
export async function runCli(argv) {
|
|
12
14
|
const command = argv[0];
|
|
15
|
+
const helpRequest = parseHelpRequest(argv);
|
|
16
|
+
if (helpRequest !== undefined) {
|
|
17
|
+
const projection = projectCommandHelp(helpRequest.positionals, helpRequest.mode);
|
|
18
|
+
if (projection === undefined) {
|
|
19
|
+
console.error(boundText(`unknown command: ${helpRequest.positionals[0] ?? ""}`));
|
|
20
|
+
return 1;
|
|
21
|
+
}
|
|
22
|
+
if (helpRequest.mode === "json")
|
|
23
|
+
console.log(JSON.stringify(projection));
|
|
24
|
+
else
|
|
25
|
+
console.log(renderCommandHelp(projection));
|
|
26
|
+
return 0;
|
|
27
|
+
}
|
|
13
28
|
if (command === undefined || command === "--help" || command === "-h") {
|
|
14
29
|
printHelp();
|
|
15
30
|
return command === undefined ? 1 : 0;
|
|
@@ -27,6 +42,9 @@ export async function runCli(argv) {
|
|
|
27
42
|
if (command === "architecture") {
|
|
28
43
|
return runArchitectureCli(argv.slice(1));
|
|
29
44
|
}
|
|
45
|
+
if (command === "skill") {
|
|
46
|
+
return runSkillCommand(argv.slice(1));
|
|
47
|
+
}
|
|
30
48
|
console.error(`unknown command: ${command}`);
|
|
31
49
|
printHelp();
|
|
32
50
|
return 1;
|
|
@@ -56,7 +74,7 @@ async function runMatrixCommand(args) {
|
|
|
56
74
|
configuredAdditionOrder = config.additionOrder;
|
|
57
75
|
}
|
|
58
76
|
if (source === undefined)
|
|
59
|
-
throw new Error("
|
|
77
|
+
throw new Error(commandUsage("matrix.execute"));
|
|
60
78
|
if (revision === undefined)
|
|
61
79
|
throw new Error("matrix requires --revision <40-character commit SHA>");
|
|
62
80
|
const runRoot = outIndex === -1 ? undefined : args[outIndex + 1];
|
|
@@ -97,7 +115,7 @@ function sameStrings(left, right) {
|
|
|
97
115
|
async function runRunCommand(args) {
|
|
98
116
|
const source = args[0];
|
|
99
117
|
if (source === undefined) {
|
|
100
|
-
console.error("
|
|
118
|
+
console.error(commandUsage("run.execute"));
|
|
101
119
|
return 1;
|
|
102
120
|
}
|
|
103
121
|
const revisionIndex = args.indexOf("--revision");
|
|
@@ -125,19 +143,40 @@ async function runRunCommand(args) {
|
|
|
125
143
|
}
|
|
126
144
|
}
|
|
127
145
|
function printHelp() {
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
146
|
+
const projection = projectCommandHelp([], "summary");
|
|
147
|
+
if (projection !== undefined)
|
|
148
|
+
console.log(renderCommandHelp(projection));
|
|
149
|
+
}
|
|
150
|
+
function runSkillCommand(args) {
|
|
151
|
+
const json = args.includes("--json");
|
|
152
|
+
const scenarioId = args.find((argument) => !argument.startsWith("-"));
|
|
153
|
+
if (scenarioId === undefined) {
|
|
154
|
+
if (json)
|
|
155
|
+
console.log(serializeSkillJson(projectSkillIndexToJson()));
|
|
156
|
+
else
|
|
157
|
+
console.log(projectSkillIndexToText());
|
|
158
|
+
return 0;
|
|
159
|
+
}
|
|
160
|
+
const scenario = findSkillScenario(scenarioId);
|
|
161
|
+
if (scenario === undefined) {
|
|
162
|
+
const message = boundText(`unknown skill scenario: ${scenarioId}`);
|
|
163
|
+
if (json) {
|
|
164
|
+
console.log(serializeSkillJson({ ok: false, command: "skill", diagnostics: [{ code: "unknown-scenario", message }] }));
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
console.error(message);
|
|
168
|
+
}
|
|
169
|
+
return 1;
|
|
170
|
+
}
|
|
171
|
+
if (json) {
|
|
172
|
+
console.log(serializeSkillJson(projectSkillScenarioToJson(scenario)));
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
console.log(projectSkillScenarioToText(scenario));
|
|
176
|
+
}
|
|
177
|
+
return 0;
|
|
139
178
|
}
|
|
140
179
|
function getVersion() {
|
|
141
|
-
return "0.1
|
|
180
|
+
return "0.2.1";
|
|
142
181
|
}
|
|
143
182
|
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The versioned authority for Wabachi's public command surface.
|
|
3
|
+
*
|
|
4
|
+
* Runtime execution remains in the existing CLI modules. Syntax, options,
|
|
5
|
+
* examples, and discovery projections are derived from this model so help,
|
|
6
|
+
* skills, and the manual's routing guidance cannot grow separate contracts.
|
|
7
|
+
*/
|
|
8
|
+
export declare const COMMAND_CONTRACT_VERSION: "1.0.0";
|
|
9
|
+
export declare const COMMAND_CONTRACT_ID: "urn:wabachi:command-contract:1.0.0";
|
|
10
|
+
export declare const CLI_NAME: "wabachi";
|
|
11
|
+
export type CommandDomain = "root" | "run" | "matrix" | "architecture" | "skill";
|
|
12
|
+
export type OptionValueType = "boolean" | "string";
|
|
13
|
+
export type OptionArity = "none" | "required" | "optional";
|
|
14
|
+
export type CommandId = "root.help" | "root.version" | "run.execute" | "matrix.execute" | "architecture.help" | "architecture.validate" | "architecture.render" | "skill.index" | "skill.scenario";
|
|
15
|
+
export type OptionId = "help" | "version" | "json" | "revision" | "out" | "config" | "structurizrCommand";
|
|
16
|
+
export interface CommandOptionDefinition {
|
|
17
|
+
readonly id: OptionId;
|
|
18
|
+
readonly key: string;
|
|
19
|
+
readonly aliases: readonly string[];
|
|
20
|
+
readonly valueType: OptionValueType;
|
|
21
|
+
readonly arity: OptionArity;
|
|
22
|
+
readonly placeholder?: string;
|
|
23
|
+
readonly description: string;
|
|
24
|
+
}
|
|
25
|
+
export interface CommandDefinition {
|
|
26
|
+
readonly id: CommandId;
|
|
27
|
+
readonly domain: CommandDomain;
|
|
28
|
+
readonly operation: string;
|
|
29
|
+
readonly path: readonly string[];
|
|
30
|
+
readonly positionalSyntax?: string;
|
|
31
|
+
readonly optionIds: readonly OptionId[];
|
|
32
|
+
readonly requiredOptionIds?: readonly OptionId[];
|
|
33
|
+
readonly summary: string;
|
|
34
|
+
readonly examples: readonly string[];
|
|
35
|
+
}
|
|
36
|
+
export declare const COMMAND_OPTIONS: Readonly<Record<OptionId, CommandOptionDefinition>>;
|
|
37
|
+
export declare const COMMANDS: readonly CommandDefinition[];
|
|
38
|
+
export declare function getCommand(id: CommandId): CommandDefinition;
|
|
39
|
+
export declare function getOption(id: OptionId): CommandOptionDefinition;
|
|
40
|
+
export declare function getOptionForToken(token: string): CommandOptionDefinition | undefined;
|
|
41
|
+
export declare function getDomainCommands(domain: Exclude<CommandDomain, "root">): readonly CommandDefinition[];
|
|
42
|
+
export declare function commandInvocation(id: CommandId): string;
|
|
43
|
+
export declare function commandHelpPointer(id: CommandId): string;
|
|
44
|
+
export declare function optionSyntax(definition: CommandOptionDefinition): string;
|
|
45
|
+
export declare function commandUsage(id: CommandId): string;
|
|
46
|
+
export declare function commandExample(id: CommandId): string;
|
|
47
|
+
/** Extract positional tokens while ignoring contract-owned option values. */
|
|
48
|
+
export declare function positionalTokens(argv: readonly string[]): readonly string[];
|
|
49
|
+
export declare function getCommandForPositionals(positionals: readonly string[]): CommandDefinition | undefined;
|
|
50
|
+
export type HelpMode = "summary" | "full" | "json";
|
|
51
|
+
export interface HelpCommandEntry {
|
|
52
|
+
readonly id: CommandId;
|
|
53
|
+
readonly usage: string;
|
|
54
|
+
readonly summary: string;
|
|
55
|
+
}
|
|
56
|
+
export interface HelpOptionEntry {
|
|
57
|
+
readonly id: OptionId;
|
|
58
|
+
readonly syntax: string;
|
|
59
|
+
readonly description: string;
|
|
60
|
+
}
|
|
61
|
+
export interface CommandHelpProjection {
|
|
62
|
+
readonly contract: typeof COMMAND_CONTRACT_ID;
|
|
63
|
+
readonly kind: "root" | "domain" | "leaf";
|
|
64
|
+
readonly commandId: CommandId;
|
|
65
|
+
readonly usage: string;
|
|
66
|
+
readonly summary: string;
|
|
67
|
+
readonly commands: readonly HelpCommandEntry[];
|
|
68
|
+
readonly options: readonly HelpOptionEntry[];
|
|
69
|
+
readonly examples: readonly string[];
|
|
70
|
+
}
|
|
71
|
+
export declare function projectCommandHelp(positionals: readonly string[], mode?: HelpMode): CommandHelpProjection | undefined;
|
|
72
|
+
export declare function renderCommandHelp(projection: CommandHelpProjection): string;
|
|
73
|
+
export interface HelpRequest {
|
|
74
|
+
readonly positionals: readonly string[];
|
|
75
|
+
readonly mode: HelpMode;
|
|
76
|
+
}
|
|
77
|
+
export declare function parseHelpRequest(argv: readonly string[]): HelpRequest | undefined;
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The versioned authority for Wabachi's public command surface.
|
|
3
|
+
*
|
|
4
|
+
* Runtime execution remains in the existing CLI modules. Syntax, options,
|
|
5
|
+
* examples, and discovery projections are derived from this model so help,
|
|
6
|
+
* skills, and the manual's routing guidance cannot grow separate contracts.
|
|
7
|
+
*/
|
|
8
|
+
export const COMMAND_CONTRACT_VERSION = "1.0.0";
|
|
9
|
+
export const COMMAND_CONTRACT_ID = `urn:wabachi:command-contract:${COMMAND_CONTRACT_VERSION}`;
|
|
10
|
+
export const CLI_NAME = "wabachi";
|
|
11
|
+
const option = (id, aliases, valueType, arity, description, placeholder) => ({
|
|
12
|
+
id,
|
|
13
|
+
key: aliases[0]?.replace(/^--/u, "") ?? id,
|
|
14
|
+
aliases,
|
|
15
|
+
valueType,
|
|
16
|
+
arity,
|
|
17
|
+
...(placeholder === undefined ? {} : { placeholder }),
|
|
18
|
+
description,
|
|
19
|
+
});
|
|
20
|
+
export const COMMAND_OPTIONS = {
|
|
21
|
+
help: option("help", ["--help"], "string", "optional", "Show progressive help; use --help=full for the complete command reference or --help=json for discovery.", "full|json"),
|
|
22
|
+
version: option("version", ["--version"], "boolean", "none", "Print the installed Wabachi version."),
|
|
23
|
+
json: option("json", ["--json"], "boolean", "none", "Emit machine-readable JSON where supported."),
|
|
24
|
+
revision: option("revision", ["--revision"], "string", "required", "Repository revision or commit SHA to analyze.", "ref"),
|
|
25
|
+
out: option("out", ["--out"], "string", "required", "Directory in which retained artifacts are written.", "dir"),
|
|
26
|
+
config: option("config", ["--config"], "string", "required", "JSON workflow configuration for the provider matrix.", "path"),
|
|
27
|
+
structurizrCommand: option("structurizrCommand", ["--structurizr-command"], "string", "required", "Structurizr CLI executable used for static export.", "executable-path"),
|
|
28
|
+
};
|
|
29
|
+
const command = (id, domain, operation, path, summary, optionIds, examples, positionalSyntax, requiredOptionIds) => ({
|
|
30
|
+
id,
|
|
31
|
+
domain,
|
|
32
|
+
operation,
|
|
33
|
+
path,
|
|
34
|
+
summary,
|
|
35
|
+
optionIds,
|
|
36
|
+
examples,
|
|
37
|
+
...(positionalSyntax === undefined ? {} : { positionalSyntax }),
|
|
38
|
+
...(requiredOptionIds === undefined ? {} : { requiredOptionIds }),
|
|
39
|
+
});
|
|
40
|
+
export const COMMANDS = [
|
|
41
|
+
command("root.help", "root", "help", [], "Discover supported commands and resolve exact syntax progressively.", ["help"], ["wabachi --help", "wabachi --help=full"], "[command]"),
|
|
42
|
+
command("root.version", "root", "version", [], "Print the installed version.", ["version"], ["wabachi --version"], undefined, ["version"]),
|
|
43
|
+
command("run.execute", "run", "execute", ["run"], "Resolve a repository and execute the registered analysis providers.", ["help", "revision", "out"], ["wabachi run <repository> --revision <ref> --out <dir>", "wabachi run <repository>"], "<repository>"),
|
|
44
|
+
command("matrix.execute", "matrix", "execute", ["matrix"], "Run providers and retain auditable facts, correlations, matrices, and reports.", ["help", "revision", "out", "config"], ["wabachi matrix <repository> --revision <sha> --out <dir>", "wabachi matrix --config <path>"], "<repository>"),
|
|
45
|
+
command("architecture.help", "architecture", "help", ["architecture"], "Discover Architecture Canon validation and rendering commands.", ["help"], ["wabachi architecture --help"]),
|
|
46
|
+
command("architecture.validate", "architecture", "validate", ["architecture", "validate"], "Validate one explicit Architecture Canon document.", ["help", "json"], ["wabachi architecture validate <file> --json"], "<file>"),
|
|
47
|
+
command("architecture.render", "architecture", "render", ["architecture", "render"], "Render one explicit Architecture Canon document as a site.", ["help", "out", "structurizrCommand", "json"], ["wabachi architecture render <file> --out <dir>", "wabachi architecture render <file> --out <dir> --json"], "<file>"),
|
|
48
|
+
command("skill.index", "skill", "index", ["skill"], "List bounded intent-oriented Wabachi playbooks.", ["help", "json"], ["wabachi skill", "wabachi skill --json"]),
|
|
49
|
+
command("skill.scenario", "skill", "scenario", ["skill"], "Print one bounded playbook for a named intent.", ["help", "json"], ["wabachi skill <scenario>", "wabachi skill <scenario> --json"], "<scenario>"),
|
|
50
|
+
];
|
|
51
|
+
const commandsById = new Map(COMMANDS.map((entry) => [entry.id, entry]));
|
|
52
|
+
const optionsByAlias = new Map();
|
|
53
|
+
for (const definition of Object.values(COMMAND_OPTIONS)) {
|
|
54
|
+
for (const alias of definition.aliases)
|
|
55
|
+
optionsByAlias.set(alias, definition);
|
|
56
|
+
}
|
|
57
|
+
export function getCommand(id) {
|
|
58
|
+
const definition = commandsById.get(id);
|
|
59
|
+
if (definition === undefined)
|
|
60
|
+
throw new Error(`Unknown Wabachi command contract id: ${id}`);
|
|
61
|
+
return definition;
|
|
62
|
+
}
|
|
63
|
+
export function getOption(id) {
|
|
64
|
+
return COMMAND_OPTIONS[id];
|
|
65
|
+
}
|
|
66
|
+
export function getOptionForToken(token) {
|
|
67
|
+
return optionsByAlias.get(token.split("=", 1)[0]);
|
|
68
|
+
}
|
|
69
|
+
export function getDomainCommands(domain) {
|
|
70
|
+
return COMMANDS.filter((entry) => entry.domain === domain);
|
|
71
|
+
}
|
|
72
|
+
export function commandInvocation(id) {
|
|
73
|
+
const definition = getCommand(id);
|
|
74
|
+
return [CLI_NAME, ...definition.path].join(" ");
|
|
75
|
+
}
|
|
76
|
+
export function commandHelpPointer(id) {
|
|
77
|
+
const definition = getCommand(id);
|
|
78
|
+
return definition.path.length === 0 ? `${CLI_NAME} --help` : `${commandInvocation(id)} --help`;
|
|
79
|
+
}
|
|
80
|
+
export function optionSyntax(definition) {
|
|
81
|
+
const name = definition.aliases[0] ?? `--${definition.id}`;
|
|
82
|
+
if (definition.arity === "none")
|
|
83
|
+
return name;
|
|
84
|
+
if (definition.arity === "optional")
|
|
85
|
+
return `${name}[=${definition.placeholder ?? "value"}]`;
|
|
86
|
+
return `${name} <${definition.placeholder ?? "value"}>`;
|
|
87
|
+
}
|
|
88
|
+
export function commandUsage(id) {
|
|
89
|
+
const definition = getCommand(id);
|
|
90
|
+
const pathText = [CLI_NAME, ...definition.path].join(" ");
|
|
91
|
+
const positional = definition.positionalSyntax === undefined ? "" : ` ${definition.positionalSyntax}`;
|
|
92
|
+
const options = definition.optionIds
|
|
93
|
+
.map((optionId) => definition.requiredOptionIds?.includes(optionId) === true
|
|
94
|
+
? ` ${optionSyntax(getOption(optionId))}`
|
|
95
|
+
: ` [${optionSyntax(getOption(optionId))}]`)
|
|
96
|
+
.join("");
|
|
97
|
+
return `usage: ${pathText}${positional}${options}`;
|
|
98
|
+
}
|
|
99
|
+
export function commandExample(id) {
|
|
100
|
+
return getCommand(id).examples[0] ?? commandInvocation(id);
|
|
101
|
+
}
|
|
102
|
+
/** Extract positional tokens while ignoring contract-owned option values. */
|
|
103
|
+
export function positionalTokens(argv) {
|
|
104
|
+
const positionals = [];
|
|
105
|
+
for (let index = 0; index < argv.length; index += 1) {
|
|
106
|
+
const token = argv[index];
|
|
107
|
+
if (token.startsWith("--")) {
|
|
108
|
+
const definition = getOptionForToken(token);
|
|
109
|
+
if (definition?.arity === "required" && !token.includes("="))
|
|
110
|
+
index += 1;
|
|
111
|
+
continue;
|
|
112
|
+
}
|
|
113
|
+
if (token.startsWith("-"))
|
|
114
|
+
continue;
|
|
115
|
+
positionals.push(token);
|
|
116
|
+
}
|
|
117
|
+
return positionals;
|
|
118
|
+
}
|
|
119
|
+
export function getCommandForPositionals(positionals) {
|
|
120
|
+
if (positionals.length === 0)
|
|
121
|
+
return getCommand("root.help");
|
|
122
|
+
return COMMANDS.find((entry) => {
|
|
123
|
+
if (entry.domain === "root" || positionals.length < entry.path.length)
|
|
124
|
+
return false;
|
|
125
|
+
if (!entry.path.every((part, index) => positionals[index] === part))
|
|
126
|
+
return false;
|
|
127
|
+
const maximumPositionals = entry.positionalSyntax === undefined ? entry.path.length : entry.path.length + 1;
|
|
128
|
+
return positionals.length <= maximumPositionals;
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
function helpEntries(commands) {
|
|
132
|
+
return commands.map((entry) => ({ id: entry.id, usage: commandUsage(entry.id), summary: entry.summary }));
|
|
133
|
+
}
|
|
134
|
+
export function projectCommandHelp(positionals, mode = "summary") {
|
|
135
|
+
const commandDefinition = getCommandForPositionals(positionals);
|
|
136
|
+
if (commandDefinition === undefined)
|
|
137
|
+
return undefined;
|
|
138
|
+
const isRoot = commandDefinition.id === "root.help";
|
|
139
|
+
const isDomain = commandDefinition.id === "architecture.help" || commandDefinition.id === "skill.index";
|
|
140
|
+
const children = isRoot
|
|
141
|
+
? COMMANDS.filter((entry) => ["root.version", "run.execute", "matrix.execute", "architecture.help", "skill.index"].includes(entry.id))
|
|
142
|
+
: isDomain
|
|
143
|
+
? COMMANDS.filter((entry) => entry.domain === commandDefinition.domain && entry.id !== commandDefinition.id)
|
|
144
|
+
: [];
|
|
145
|
+
const listedCommands = mode === "full" && isRoot ? COMMANDS.filter((entry) => entry.id !== "root.help") : children;
|
|
146
|
+
const optionEntries = commandDefinition.optionIds.map((optionId) => {
|
|
147
|
+
const definition = getOption(optionId);
|
|
148
|
+
return { id: optionId, syntax: optionSyntax(definition), description: definition.description };
|
|
149
|
+
});
|
|
150
|
+
return {
|
|
151
|
+
contract: COMMAND_CONTRACT_ID,
|
|
152
|
+
kind: isRoot ? "root" : isDomain ? "domain" : "leaf",
|
|
153
|
+
commandId: commandDefinition.id,
|
|
154
|
+
usage: commandUsage(commandDefinition.id),
|
|
155
|
+
summary: commandDefinition.summary,
|
|
156
|
+
commands: helpEntries(listedCommands),
|
|
157
|
+
options: optionEntries,
|
|
158
|
+
examples: commandDefinition.examples,
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
export function renderCommandHelp(projection) {
|
|
162
|
+
const lines = [
|
|
163
|
+
`Wabachi help (${projection.contract})`,
|
|
164
|
+
"",
|
|
165
|
+
`Usage: ${projection.usage.replace(/^usage: /u, "")}`,
|
|
166
|
+
projection.summary,
|
|
167
|
+
];
|
|
168
|
+
if (projection.commands.length > 0) {
|
|
169
|
+
lines.push("", "Commands:");
|
|
170
|
+
for (const entry of projection.commands)
|
|
171
|
+
lines.push(` ${entry.usage.replace(/^usage: /u, "")} ${entry.summary}`);
|
|
172
|
+
}
|
|
173
|
+
if (projection.options.length > 0) {
|
|
174
|
+
lines.push("", "Options:");
|
|
175
|
+
for (const optionEntry of projection.options)
|
|
176
|
+
lines.push(` ${optionEntry.syntax} ${optionEntry.description}`);
|
|
177
|
+
}
|
|
178
|
+
if (projection.examples.length > 0) {
|
|
179
|
+
lines.push("", "Examples:");
|
|
180
|
+
for (const example of projection.examples)
|
|
181
|
+
lines.push(` ${example}`);
|
|
182
|
+
}
|
|
183
|
+
return lines.join("\n");
|
|
184
|
+
}
|
|
185
|
+
export function parseHelpRequest(argv) {
|
|
186
|
+
const helpToken = argv.find((token) => token === "--help" || token.startsWith("--help="));
|
|
187
|
+
if (helpToken === undefined)
|
|
188
|
+
return undefined;
|
|
189
|
+
const value = helpToken.includes("=") ? helpToken.slice(helpToken.indexOf("=") + 1) : "summary";
|
|
190
|
+
const mode = value === "full" || value === "json" ? value : "summary";
|
|
191
|
+
return { positionals: positionalTokens(argv), mode };
|
|
192
|
+
}
|
|
193
|
+
//# sourceMappingURL=command-contract.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command-contract.js","sourceRoot":"","sources":["../src/command-contract.ts"],"names":[],"mappings":"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"}
|