@catladder/cli 0.0.0-next-23a53e9e → 0.0.0-next-50ef07e9
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/bundles/catenv/index.js +223 -1
- package/dist/bundles/cli/index.js +223 -1
- package/dist/bundles/skills/catladder-cli/SKILL.md +53 -0
- package/dist/bundles/skills/catladder-cli/references/commands.md +273 -0
- package/dist/bundles/skills/catladder-config/SKILL.md +82 -0
- package/dist/bundles/skills/catladder-pipelines/SKILL.md +72 -0
- package/dist/bundles/skills/catladder-secrets/SKILL.md +74 -0
- package/dist/cli/src/scripts/generateCliSkillReference.d.ts +1 -0
- package/dist/cli/src/scripts/generateCliSkillReference.js +87 -0
- package/dist/cli/src/scripts/generateCliSkillReference.js.map +1 -0
- package/dist/pipeline/src/agentSkills/generateAgentSkills.d.ts +22 -0
- package/dist/pipeline/src/agentSkills/generateAgentSkills.js +82 -0
- package/dist/pipeline/src/agentSkills/generateAgentSkills.js.map +1 -0
- package/dist/pipeline/src/agentSkills/index.d.ts +3 -0
- package/dist/pipeline/src/agentSkills/index.js +27 -0
- package/dist/pipeline/src/agentSkills/index.js.map +1 -0
- package/dist/pipeline/src/agentSkills/shippedSkills.d.ts +22 -0
- package/dist/pipeline/src/agentSkills/shippedSkills.js +56 -0
- package/dist/pipeline/src/agentSkills/shippedSkills.js.map +1 -0
- package/dist/pipeline/src/agentSkills/types.d.ts +22 -0
- package/dist/pipeline/src/agentSkills/types.js +25 -0
- package/dist/pipeline/src/agentSkills/types.js.map +1 -0
- package/dist/pipeline/src/constants.js +1 -1
- package/dist/pipeline/src/pipeline/generatePipelineFiles.js +4 -0
- package/dist/pipeline/src/pipeline/generatePipelineFiles.js.map +1 -1
- package/dist/pipeline/src/types/config.d.ts +15 -0
- package/dist/pipeline/src/types/config.js.map +1 -1
- package/dist/skills/catladder-cli/SKILL.md +53 -0
- package/dist/skills/catladder-cli/references/commands.md +273 -0
- package/dist/skills/catladder-config/SKILL.md +82 -0
- package/dist/skills/catladder-pipelines/SKILL.md +72 -0
- package/dist/skills/catladder-secrets/SKILL.md +74 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -2
- package/src/scripts/generateCliSkillReference.ts +102 -0
package/package.json
CHANGED
|
@@ -53,15 +53,17 @@
|
|
|
53
53
|
}
|
|
54
54
|
],
|
|
55
55
|
"license": "MIT",
|
|
56
|
-
"version": "0.0.0-next-
|
|
56
|
+
"version": "0.0.0-next-50ef07e9",
|
|
57
57
|
"scripts": {
|
|
58
58
|
"lint": "eslint \"src/**/*.ts\"",
|
|
59
59
|
"lint:fix": "eslint \"src/**/*.ts\" --fix",
|
|
60
60
|
"test": "yarn run lint",
|
|
61
|
-
"build": "yarn build:compile && yarn build:inline-variables && yarn build:bundle && yarn build:copy-images",
|
|
61
|
+
"build": "yarn build:compile && yarn build:inline-variables && yarn build:bundle && yarn build:copy-images && yarn build:skill-cli-reference && yarn build:copy-skills",
|
|
62
62
|
"build:inline-variables": "yarn babel --keep-file-extension --extensions \".ts,.js\" --config-file ./babel-inline.json dist --out-dir dist",
|
|
63
63
|
"build:bundle": "./scripts/bundle",
|
|
64
64
|
"build:copy-images": "rm -rf dist/runner-images dist/bundles/runner-images && cp -R ../runner-images dist/runner-images && cp -R ../runner-images dist/bundles/runner-images",
|
|
65
|
+
"build:copy-skills": "rm -rf dist/skills dist/bundles/skills && cp -R ../skills dist/skills && cp -R ../skills dist/bundles/skills",
|
|
66
|
+
"build:skill-cli-reference": "tsx src/scripts/generateCliSkillReference.ts",
|
|
65
67
|
"build:compile": "yarn tsc && yarn tsc-alias",
|
|
66
68
|
"dev:own-catenv": "cd ../ && node cli/bin/catenv-dev",
|
|
67
69
|
"build:watch": "tsc-watch --onSuccess \"yarn dev:own-catenv\""
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { existsSync, mkdirSync, writeFileSync } from "fs";
|
|
2
|
+
import { join } from "path";
|
|
3
|
+
import * as commands from "../commands";
|
|
4
|
+
import type { CommandDef, InputDef } from "../core/types";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* renders the CLI command reference of the catladder-cli agent skill
|
|
8
|
+
* from the command definitions, so the skill always documents the
|
|
9
|
+
* commands that actually exist. Runs as part of the cli build
|
|
10
|
+
* (`build:skill-cli-reference`) and writes into the repository's
|
|
11
|
+
* `skills/` directory — commit the result.
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
const kebab = (name: string) => name.replace(/([A-Z])/g, "-$1").toLowerCase();
|
|
15
|
+
|
|
16
|
+
const cleanMessage = (message: string) =>
|
|
17
|
+
message.replace(/\s*🤔\s*$/, "").trim();
|
|
18
|
+
|
|
19
|
+
const renderInput = ([name, def]: [string, InputDef]): string => {
|
|
20
|
+
const description = cleanMessage(def.message);
|
|
21
|
+
const details = [
|
|
22
|
+
def.required ? "required" : undefined,
|
|
23
|
+
"default" in def && def.default !== undefined
|
|
24
|
+
? `default: ${JSON.stringify(def.default)}`
|
|
25
|
+
: undefined,
|
|
26
|
+
]
|
|
27
|
+
.filter(Boolean)
|
|
28
|
+
.join(", ");
|
|
29
|
+
const usage = def.positional
|
|
30
|
+
? `\`${name}\` (positional)`
|
|
31
|
+
: def.type === "boolean"
|
|
32
|
+
? `\`--${kebab(name)}\``
|
|
33
|
+
: `\`--${kebab(name)} <value>\``;
|
|
34
|
+
return `- ${usage}: ${description}${details ? ` (${details})` : ""}`;
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
const renderCommand = (def: CommandDef): string => {
|
|
38
|
+
const positionals = Object.entries(def.inputs)
|
|
39
|
+
.filter(([, input]) => input.positional)
|
|
40
|
+
.map(([name]) => ` [${name}]`)
|
|
41
|
+
.join("");
|
|
42
|
+
const inputs = Object.entries(def.inputs);
|
|
43
|
+
return [
|
|
44
|
+
`## \`catladder ${def.name}${positionals}\``,
|
|
45
|
+
"",
|
|
46
|
+
def.description,
|
|
47
|
+
...(inputs.length > 0 ? ["", ...inputs.map(renderInput)] : []),
|
|
48
|
+
].join("\n");
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
const isCommandDef = (value: unknown): value is CommandDef =>
|
|
52
|
+
typeof value === "object" &&
|
|
53
|
+
value !== null &&
|
|
54
|
+
"name" in value &&
|
|
55
|
+
"execute" in value;
|
|
56
|
+
|
|
57
|
+
export const renderCliReference = (): string => {
|
|
58
|
+
const defs = Object.values(commands)
|
|
59
|
+
.filter(isCommandDef)
|
|
60
|
+
.sort((a, b) => a.name.localeCompare(b.name));
|
|
61
|
+
return [
|
|
62
|
+
"# catladder CLI command reference",
|
|
63
|
+
"",
|
|
64
|
+
"<!-- rendered from the command definitions by",
|
|
65
|
+
" cli/src/scripts/generateCliSkillReference.ts — do not edit -->",
|
|
66
|
+
"",
|
|
67
|
+
"All commands run non-interactively as `yarn catladder <command> ...`;",
|
|
68
|
+
"see SKILL.md for how to pass inputs.",
|
|
69
|
+
"",
|
|
70
|
+
defs.map(renderCommand).join("\n\n"),
|
|
71
|
+
"",
|
|
72
|
+
].join("\n");
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
// executed by the cli build via tsx (node itself cannot require the
|
|
76
|
+
// ESM-only deps of the command modules on older versions)
|
|
77
|
+
const main = () => {
|
|
78
|
+
const repoRootCandidates = [
|
|
79
|
+
join(__dirname, "../../.."), // source: cli/src/scripts
|
|
80
|
+
join(__dirname, "../../../../.."), // compiled: cli/dist/cli/src/scripts
|
|
81
|
+
];
|
|
82
|
+
const repoRoot = repoRootCandidates.find((candidate) =>
|
|
83
|
+
existsSync(join(candidate, "skills")),
|
|
84
|
+
);
|
|
85
|
+
if (!repoRoot) {
|
|
86
|
+
throw new Error("skills directory not found next to the cli workspace");
|
|
87
|
+
}
|
|
88
|
+
const target = join(
|
|
89
|
+
repoRoot,
|
|
90
|
+
"skills",
|
|
91
|
+
"catladder-cli",
|
|
92
|
+
"references",
|
|
93
|
+
"commands.md",
|
|
94
|
+
);
|
|
95
|
+
mkdirSync(join(target, ".."), { recursive: true });
|
|
96
|
+
writeFileSync(target, renderCliReference(), "utf-8");
|
|
97
|
+
console.log(`wrote ${target}`);
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
if (require.main === module) {
|
|
101
|
+
main();
|
|
102
|
+
}
|