@cubis/foundry 0.3.53 → 0.3.55
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +60 -0
- package/README.md +109 -3
- package/bin/cubis.js +5 -10286
- package/dist/cli/commands/register.js +88 -0
- package/dist/cli/commands/register.js.map +1 -0
- package/dist/cli/config/index.js +2 -0
- package/dist/cli/config/index.js.map +1 -0
- package/dist/cli/constants.js +4 -0
- package/dist/cli/constants.js.map +1 -0
- package/dist/cli/core.js +9173 -0
- package/dist/cli/core.js.map +1 -0
- package/dist/cli/index.js +3 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/init/banner.js +21 -0
- package/dist/cli/init/banner.js.map +1 -0
- package/dist/cli/init/execute.js +65 -0
- package/dist/cli/init/execute.js.map +1 -0
- package/dist/cli/init/index.js +5 -0
- package/dist/cli/init/index.js.map +1 -0
- package/dist/cli/init/prompts.js +122 -0
- package/dist/cli/init/prompts.js.map +1 -0
- package/dist/cli/init/types.js +2 -0
- package/dist/cli/init/types.js.map +1 -0
- package/dist/cli/io.js +2 -0
- package/dist/cli/io.js.map +1 -0
- package/dist/cli/mcp/commands.js +67 -0
- package/dist/cli/mcp/commands.js.map +1 -0
- package/dist/cli/mcp/index.js +2 -0
- package/dist/cli/mcp/index.js.map +1 -0
- package/dist/cli/pathing.js +51 -0
- package/dist/cli/pathing.js.map +1 -0
- package/dist/cli/platforms.js +2 -0
- package/dist/cli/platforms.js.map +1 -0
- package/dist/cli/rules/commands.js +26 -0
- package/dist/cli/rules/commands.js.map +1 -0
- package/dist/cli/rules/index.js +2 -0
- package/dist/cli/rules/index.js.map +1 -0
- package/dist/cli/tech/index.js +2 -0
- package/dist/cli/tech/index.js.map +1 -0
- package/dist/cli/types.js +2 -0
- package/dist/cli/types.js.map +1 -0
- package/dist/cli/workflows/commands.js +74 -0
- package/dist/cli/workflows/commands.js.map +1 -0
- package/dist/cli/workflows/index.js +2 -0
- package/dist/cli/workflows/index.js.map +1 -0
- package/package.json +17 -6
- package/src/cli/commands/register.ts +163 -0
- package/src/cli/config/index.ts +1 -0
- package/src/cli/constants.ts +3 -0
- package/src/cli/core.ts +11325 -0
- package/src/cli/index.ts +3 -0
- package/src/cli/init/banner.ts +20 -0
- package/src/cli/init/execute.ts +88 -0
- package/src/cli/init/index.ts +4 -0
- package/src/cli/init/prompts.ts +163 -0
- package/src/cli/init/types.ts +43 -0
- package/src/cli/io.ts +1 -0
- package/src/cli/mcp/commands.ts +131 -0
- package/src/cli/mcp/index.ts +1 -0
- package/src/cli/pathing.ts +50 -0
- package/src/cli/platforms.ts +1 -0
- package/src/cli/rules/commands.ts +40 -0
- package/src/cli/rules/index.ts +1 -0
- package/src/cli/tech/index.ts +1 -0
- package/src/cli/types.ts +15 -0
- package/src/cli/workflows/commands.ts +163 -0
- package/src/cli/workflows/index.ts +1 -0
- package/tsconfig.cli.json +19 -0
- package/workflows/workflows/agent-environment-setup/platforms/antigravity/rules/GEMINI.md +18 -40
- package/workflows/workflows/agent-environment-setup/platforms/codex/rules/AGENTS.md +18 -41
- package/workflows/workflows/agent-environment-setup/platforms/copilot/rules/AGENTS.md +18 -40
- package/workflows/workflows/agent-environment-setup/platforms/copilot/rules/copilot-instructions.md +18 -40
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,KAAK,MAAM,EAAE,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export function renderInitWelcome({ version }) {
|
|
2
|
+
const safeVersion = String(version || "").trim() || "dev";
|
|
3
|
+
const lines = [
|
|
4
|
+
"╔══════════════════════════════════════════════════════════════╗",
|
|
5
|
+
"║ Cubis Foundry CLI ║",
|
|
6
|
+
"║ Interactive Init ║",
|
|
7
|
+
"╚══════════════════════════════════════════════════════════════╝",
|
|
8
|
+
"",
|
|
9
|
+
" ██████╗",
|
|
10
|
+
" ██╔════╝",
|
|
11
|
+
" ██║ Cubis Foundry",
|
|
12
|
+
" ██║ C icon",
|
|
13
|
+
" ╚██████╗",
|
|
14
|
+
" ╚═════╝",
|
|
15
|
+
"",
|
|
16
|
+
`CLI Version ${safeVersion}`,
|
|
17
|
+
"",
|
|
18
|
+
];
|
|
19
|
+
return lines.join("\n");
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=banner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"banner.js","sourceRoot":"","sources":["../../../src/cli/init/banner.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,iBAAiB,CAAC,EAAE,OAAO,EAAuB;IAChE,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC;IAC1D,MAAM,KAAK,GAAG;QACZ,kEAAkE;QAClE,gEAAgE;QAChE,gEAAgE;QAChE,kEAAkE;QAClE,EAAE;QACF,eAAe;QACf,eAAe;QACf,6BAA6B;QAC7B,sBAAsB;QACtB,eAAe;QACf,eAAe;QACf,EAAE;QACF,eAAe,WAAW,EAAE;QAC5B,EAAE;KACH,CAAC;IACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
function hasMcpSelection(selectedMcps, mcpId) {
|
|
2
|
+
return selectedMcps.includes(mcpId);
|
|
3
|
+
}
|
|
4
|
+
export function buildInitExecutionPlan({ selections, dryRun, target, }) {
|
|
5
|
+
const planItems = [];
|
|
6
|
+
const wantsPostman = hasMcpSelection(selections.selectedMcps, "postman");
|
|
7
|
+
const wantsStitch = hasMcpSelection(selections.selectedMcps, "stitch");
|
|
8
|
+
const wantsFoundry = hasMcpSelection(selections.selectedMcps, "cubis-foundry");
|
|
9
|
+
for (const platform of selections.platforms) {
|
|
10
|
+
const stitchSupported = platform === "antigravity";
|
|
11
|
+
const stitchEnabled = wantsStitch && stitchSupported;
|
|
12
|
+
const warnings = [];
|
|
13
|
+
if (wantsStitch && !stitchSupported) {
|
|
14
|
+
warnings.push(`Stitch is not supported on '${platform}'. It will be skipped for this platform.`);
|
|
15
|
+
}
|
|
16
|
+
const installOptions = {
|
|
17
|
+
platform,
|
|
18
|
+
scope: selections.skillsScope,
|
|
19
|
+
bundle: selections.bundleId,
|
|
20
|
+
skillProfile: selections.skillProfile,
|
|
21
|
+
allSkills: selections.skillProfile === "full",
|
|
22
|
+
dryRun,
|
|
23
|
+
yes: true,
|
|
24
|
+
target,
|
|
25
|
+
postman: wantsPostman,
|
|
26
|
+
stitch: stitchEnabled,
|
|
27
|
+
stitchDefaultForAntigravity: false,
|
|
28
|
+
mcpScope: selections.mcpScope,
|
|
29
|
+
foundryMcp: wantsFoundry,
|
|
30
|
+
mcpToolSync: wantsPostman || stitchEnabled,
|
|
31
|
+
mcpRuntime: wantsPostman || stitchEnabled ? selections.mcpRuntime : "local",
|
|
32
|
+
mcpFallback: "local",
|
|
33
|
+
mcpBuildLocal: wantsPostman || stitchEnabled ? selections.mcpBuildLocal : false,
|
|
34
|
+
postmanMode: wantsPostman ? selections.postmanMode : undefined,
|
|
35
|
+
postmanWorkspaceId: wantsPostman
|
|
36
|
+
? selections.postmanWorkspaceId
|
|
37
|
+
: undefined,
|
|
38
|
+
initWizardMode: true,
|
|
39
|
+
};
|
|
40
|
+
planItems.push({
|
|
41
|
+
platform,
|
|
42
|
+
installOptions,
|
|
43
|
+
warnings,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
return {
|
|
47
|
+
items: planItems,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
export function formatInitSummary(selections) {
|
|
51
|
+
const postmanSelected = selections.selectedMcps.includes("postman");
|
|
52
|
+
return [
|
|
53
|
+
"Init plan summary:",
|
|
54
|
+
`- Bundle: ${selections.bundleId}`,
|
|
55
|
+
`- Platforms: ${selections.platforms.join(", ")}`,
|
|
56
|
+
`- Skill profile: ${selections.skillProfile}`,
|
|
57
|
+
`- Skills scope: ${selections.skillsScope}`,
|
|
58
|
+
`- MCP scope: ${selections.mcpScope}`,
|
|
59
|
+
`- MCP runtime: ${selections.mcpRuntime}${selections.mcpRuntime === "docker" ? selections.mcpBuildLocal ? " (build local image)" : " (pull image)" : ""}`,
|
|
60
|
+
`- MCP selections: ${selections.selectedMcps.length > 0 ? selections.selectedMcps.join(", ") : "(none)"}`,
|
|
61
|
+
`- Postman mode: ${postmanSelected ? selections.postmanMode : "(not selected)"}`,
|
|
62
|
+
`- Postman workspace: ${postmanSelected ? selections.postmanWorkspaceId === null ? "null" : selections.postmanWorkspaceId : "(not selected)"}`,
|
|
63
|
+
].join("\n");
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=execute.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execute.js","sourceRoot":"","sources":["../../../src/cli/init/execute.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/init/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { checkbox, confirm, password, select } from "@inquirer/prompts";
|
|
2
|
+
export async function promptInitBundle({ bundleIds, defaultBundle, }) {
|
|
3
|
+
return select({
|
|
4
|
+
message: "Select workflow bundle:",
|
|
5
|
+
default: defaultBundle,
|
|
6
|
+
choices: bundleIds.map((bundleId) => ({
|
|
7
|
+
name: bundleId,
|
|
8
|
+
value: bundleId,
|
|
9
|
+
})),
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
export async function promptInitPlatforms({ defaultPlatforms, }) {
|
|
13
|
+
return checkbox({
|
|
14
|
+
message: "Select target platform(s):",
|
|
15
|
+
required: true,
|
|
16
|
+
choices: [
|
|
17
|
+
{ name: "Codex", value: "codex", checked: defaultPlatforms.includes("codex") },
|
|
18
|
+
{
|
|
19
|
+
name: "Antigravity",
|
|
20
|
+
value: "antigravity",
|
|
21
|
+
checked: defaultPlatforms.includes("antigravity"),
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
name: "GitHub Copilot",
|
|
25
|
+
value: "copilot",
|
|
26
|
+
checked: defaultPlatforms.includes("copilot"),
|
|
27
|
+
},
|
|
28
|
+
],
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
export async function promptInitSkillProfile(defaultSkillProfile) {
|
|
32
|
+
return select({
|
|
33
|
+
message: "Select skills install profile:",
|
|
34
|
+
default: defaultSkillProfile,
|
|
35
|
+
choices: [
|
|
36
|
+
{ name: "core", value: "core" },
|
|
37
|
+
{ name: "web-backend", value: "web-backend" },
|
|
38
|
+
{ name: "full", value: "full" },
|
|
39
|
+
],
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
export async function promptInitMcpSelection(defaultMcps) {
|
|
43
|
+
return checkbox({
|
|
44
|
+
message: "Select which MCP integrations to configure:",
|
|
45
|
+
choices: [
|
|
46
|
+
{
|
|
47
|
+
name: "Cubis Foundry",
|
|
48
|
+
value: "cubis-foundry",
|
|
49
|
+
checked: defaultMcps.includes("cubis-foundry"),
|
|
50
|
+
},
|
|
51
|
+
{ name: "Postman", value: "postman", checked: defaultMcps.includes("postman") },
|
|
52
|
+
{ name: "Stitch", value: "stitch", checked: defaultMcps.includes("stitch") },
|
|
53
|
+
],
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
export async function promptInitScope({ message, defaultScope, }) {
|
|
57
|
+
return select({
|
|
58
|
+
message,
|
|
59
|
+
default: defaultScope,
|
|
60
|
+
choices: [
|
|
61
|
+
{ name: defaultScope === "global" ? "Global (recommended)" : "Global", value: "global" },
|
|
62
|
+
{
|
|
63
|
+
name: defaultScope === "project" ? "Project (recommended)" : "Project",
|
|
64
|
+
value: "project",
|
|
65
|
+
},
|
|
66
|
+
],
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
export async function promptInitPostmanMode(defaultMode) {
|
|
70
|
+
return select({
|
|
71
|
+
message: "Select Postman installation mode:",
|
|
72
|
+
default: defaultMode,
|
|
73
|
+
choices: [
|
|
74
|
+
{ name: "full", value: "full" },
|
|
75
|
+
{ name: "minimal", value: "minimal" },
|
|
76
|
+
],
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
export async function promptInitMcpRuntime({ defaultRuntime, defaultBuildLocal, }) {
|
|
80
|
+
const defaultChoice = defaultRuntime === "docker"
|
|
81
|
+
? defaultBuildLocal
|
|
82
|
+
? "docker-build-local"
|
|
83
|
+
: "docker-pull"
|
|
84
|
+
: "local";
|
|
85
|
+
const choice = await select({
|
|
86
|
+
message: "Select MCP runtime mode:",
|
|
87
|
+
default: defaultChoice,
|
|
88
|
+
choices: [
|
|
89
|
+
{
|
|
90
|
+
name: "Local command server (cbx mcp serve)",
|
|
91
|
+
value: "local",
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
name: "Docker runtime (pull image)",
|
|
95
|
+
value: "docker-pull",
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
name: "Docker runtime (build image locally)",
|
|
99
|
+
value: "docker-build-local",
|
|
100
|
+
},
|
|
101
|
+
],
|
|
102
|
+
});
|
|
103
|
+
return {
|
|
104
|
+
mcpRuntime: choice === "local" ? "local" : "docker",
|
|
105
|
+
mcpBuildLocal: choice === "docker-build-local",
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
export async function promptOptionalSecret(message) {
|
|
109
|
+
const value = await password({
|
|
110
|
+
message,
|
|
111
|
+
mask: "*",
|
|
112
|
+
});
|
|
113
|
+
const normalized = String(value || "").trim();
|
|
114
|
+
return normalized || null;
|
|
115
|
+
}
|
|
116
|
+
export async function promptInitApplyConfirmation(summary) {
|
|
117
|
+
return confirm({
|
|
118
|
+
message: `${summary}\n\nApply this installation plan?`,
|
|
119
|
+
default: true,
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=prompts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../src/cli/init/prompts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/cli/init/types.ts"],"names":[],"mappings":""}
|
package/dist/cli/io.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"io.js","sourceRoot":"","sources":["../../src/cli/io.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
export function registerMcpCommands(program, deps) {
|
|
2
|
+
const mcpCommand = program
|
|
3
|
+
.command("mcp")
|
|
4
|
+
.description("Manage Cubis MCP runtime catalogs and tool discovery");
|
|
5
|
+
mcpCommand
|
|
6
|
+
.command("serve")
|
|
7
|
+
.description("Launch bundled Cubis Foundry MCP server (canonical local entrypoint)")
|
|
8
|
+
.option("--transport <transport>", "stdio|http", "stdio")
|
|
9
|
+
.option("--scope <scope>", "auto|global|project", "auto")
|
|
10
|
+
.option("--port <port>", "HTTP port override")
|
|
11
|
+
.option("--host <host>", "HTTP host override")
|
|
12
|
+
.option("--scan-only", "scan vault and exit")
|
|
13
|
+
.option("--config <path>", "explicit MCP server config file path")
|
|
14
|
+
.option("--debug", "enable debug logging in MCP server")
|
|
15
|
+
.action(deps.runMcpServe);
|
|
16
|
+
const mcpToolsCommand = mcpCommand
|
|
17
|
+
.command("tools")
|
|
18
|
+
.description("Discover and inspect upstream MCP tool catalogs");
|
|
19
|
+
mcpToolsCommand
|
|
20
|
+
.command("sync")
|
|
21
|
+
.description("Discover upstream tools and persist local non-secret catalogs")
|
|
22
|
+
.option("--service <service>", "postman|stitch|all", "all")
|
|
23
|
+
.option("--scope <scope>", "config scope: project|workspace|global|user", "global")
|
|
24
|
+
.option("--dry-run", "preview sync without writing catalog files")
|
|
25
|
+
.action(deps.runMcpToolsSync);
|
|
26
|
+
mcpToolsCommand
|
|
27
|
+
.command("list")
|
|
28
|
+
.description("List cached tool names from local MCP catalog")
|
|
29
|
+
.requiredOption("--service <service>", "postman|stitch")
|
|
30
|
+
.option("--scope <scope>", "config scope: project|workspace|global|user", "global")
|
|
31
|
+
.action(deps.runMcpToolsList);
|
|
32
|
+
const mcpRuntimeCommand = mcpCommand
|
|
33
|
+
.command("runtime")
|
|
34
|
+
.description("Manage local Docker runtime container for Cubis MCP gateway");
|
|
35
|
+
mcpRuntimeCommand
|
|
36
|
+
.command("status")
|
|
37
|
+
.description("Show Docker runtime status and configured MCP runtime defaults")
|
|
38
|
+
.option("--scope <scope>", "config scope: project|workspace|global|user", "global")
|
|
39
|
+
.option("--name <name>", "container name", deps.defaultMcpDockerContainerName)
|
|
40
|
+
.option("--skills-root <path>", "host skills directory to resolve/mount (default: auto-detect)")
|
|
41
|
+
.action(deps.runMcpRuntimeStatus);
|
|
42
|
+
mcpRuntimeCommand
|
|
43
|
+
.command("up")
|
|
44
|
+
.description("Start Docker runtime container for Cubis MCP gateway")
|
|
45
|
+
.option("--scope <scope>", "config scope: project|workspace|global|user", "global")
|
|
46
|
+
.option("--name <name>", "container name", deps.defaultMcpDockerContainerName)
|
|
47
|
+
.option("--image <image:tag>", "docker image to run")
|
|
48
|
+
.option("--update-policy <policy>", "pinned|latest")
|
|
49
|
+
.option("--fallback <fallback>", "when endpoint is unreachable: local|fail|skip")
|
|
50
|
+
.option("--build-local", "build MCP Docker image from local package mcp/ directory instead of pulling")
|
|
51
|
+
.option("--port <port>", "host port to map to container :3100")
|
|
52
|
+
.option("--skills-root <path>", "host skills directory to mount into /workflows/skills (default: auto-detect)")
|
|
53
|
+
.option("--replace", "remove existing container with same name before start")
|
|
54
|
+
.action(deps.runMcpRuntimeUp);
|
|
55
|
+
mcpRuntimeCommand
|
|
56
|
+
.command("down")
|
|
57
|
+
.description("Stop and remove Docker runtime container")
|
|
58
|
+
.option("--name <name>", "container name", deps.defaultMcpDockerContainerName)
|
|
59
|
+
.action(deps.runMcpRuntimeDown);
|
|
60
|
+
mcpRuntimeCommand.action(() => {
|
|
61
|
+
mcpRuntimeCommand.help();
|
|
62
|
+
});
|
|
63
|
+
mcpCommand.action(() => {
|
|
64
|
+
mcpCommand.help();
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../../src/cli/mcp/commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/mcp/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { existsSync } from "node:fs";
|
|
2
|
+
import os from "node:os";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import process from "node:process";
|
|
5
|
+
import { fileURLToPath } from "node:url";
|
|
6
|
+
import { AGENT_ASSETS_SUBDIR } from "./constants.js";
|
|
7
|
+
export function packageRoot() {
|
|
8
|
+
let currentDir = path.dirname(fileURLToPath(import.meta.url));
|
|
9
|
+
for (let i = 0; i < 5; i += 1) {
|
|
10
|
+
const candidatePackageJson = path.join(currentDir, "package.json");
|
|
11
|
+
if (existsSync(candidatePackageJson)) {
|
|
12
|
+
return currentDir;
|
|
13
|
+
}
|
|
14
|
+
const parentDir = path.resolve(currentDir, "..");
|
|
15
|
+
if (parentDir === currentDir) {
|
|
16
|
+
break;
|
|
17
|
+
}
|
|
18
|
+
currentDir = parentDir;
|
|
19
|
+
}
|
|
20
|
+
return process.cwd();
|
|
21
|
+
}
|
|
22
|
+
export function agentAssetsRoot() {
|
|
23
|
+
const preferred = path.join(packageRoot(), AGENT_ASSETS_SUBDIR);
|
|
24
|
+
return existsSync(preferred) ? preferred : packageRoot();
|
|
25
|
+
}
|
|
26
|
+
export function workflowSkillsRoot() {
|
|
27
|
+
return path.join(agentAssetsRoot(), "skills");
|
|
28
|
+
}
|
|
29
|
+
export function expandPath(inputPath, cwd = process.cwd()) {
|
|
30
|
+
if (!inputPath)
|
|
31
|
+
return cwd;
|
|
32
|
+
if (inputPath === "~")
|
|
33
|
+
return os.homedir();
|
|
34
|
+
if (inputPath.startsWith("~/"))
|
|
35
|
+
return path.join(os.homedir(), inputPath.slice(2));
|
|
36
|
+
if (path.isAbsolute(inputPath))
|
|
37
|
+
return inputPath;
|
|
38
|
+
return path.resolve(cwd, inputPath);
|
|
39
|
+
}
|
|
40
|
+
export function findWorkspaceRoot(startDir = process.cwd()) {
|
|
41
|
+
let current = path.resolve(startDir);
|
|
42
|
+
while (true) {
|
|
43
|
+
if (existsSync(path.join(current, ".git")))
|
|
44
|
+
return current;
|
|
45
|
+
const parent = path.dirname(current);
|
|
46
|
+
if (parent === current)
|
|
47
|
+
return path.resolve(startDir);
|
|
48
|
+
current = parent;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=pathing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pathing.js","sourceRoot":"","sources":["../../src/cli/pathing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAErD,MAAM,UAAU,WAAW;IACzB,IAAI,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,MAAM,oBAAoB,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QACnE,IAAI,UAAU,CAAC,oBAAoB,CAAC,EAAE,CAAC;YACrC,OAAO,UAAU,CAAC;QACpB,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QACjD,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;YAC7B,MAAM;QACR,CAAC;QACD,UAAU,GAAG,SAAS,CAAC;IACzB,CAAC;IACD,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,mBAAmB,CAAC,CAAC;IAChE,OAAO,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,QAAQ,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,SAAiB,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE;IAC/D,IAAI,CAAC,SAAS;QAAE,OAAO,GAAG,CAAC;IAC3B,IAAI,SAAS,KAAK,GAAG;QAAE,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC;IAC3C,IAAI,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACrD,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC;IACjD,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE;IACxD,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACrC,OAAO,IAAI,EAAE,CAAC;QACZ,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAAE,OAAO,OAAO,CAAC;QAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,MAAM,KAAK,OAAO;YAAE,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACtD,OAAO,GAAG,MAAM,CAAC;IACnB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platforms.js","sourceRoot":"","sources":["../../src/cli/platforms.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export function registerRulesCommands(program, deps) {
|
|
2
|
+
const rulesCommand = program
|
|
3
|
+
.command("rules")
|
|
4
|
+
.description("Create and sync strict engineering rules and generated TECH.md");
|
|
5
|
+
rulesCommand
|
|
6
|
+
.command("init")
|
|
7
|
+
.description("Create/update ENGINEERING_RULES.md, patch active platform rule file with managed guardrail block, and generate TECH.md")
|
|
8
|
+
.option("-p, --platform <platform>", "target platform id")
|
|
9
|
+
.option("--scope <scope>", "target scope: project|global", "project")
|
|
10
|
+
.option("--overwrite", "overwrite existing ENGINEERING_RULES.md and TECH.md")
|
|
11
|
+
.option("--skip-tech", "skip TECH.md generation")
|
|
12
|
+
.option("--dry-run", "preview changes without writing files")
|
|
13
|
+
.action(deps.runRulesInit);
|
|
14
|
+
rulesCommand
|
|
15
|
+
.command("tech-md")
|
|
16
|
+
.description("Scan the codebase and generate/update TECH.md")
|
|
17
|
+
.option("--output <path>", "output path (default: <workspace-root>/TECH.md)")
|
|
18
|
+
.option("--overwrite", "overwrite existing TECH.md")
|
|
19
|
+
.option("--compact", "generate compact TECH.md (stack + context budget only)")
|
|
20
|
+
.option("--dry-run", "preview generation without writing files")
|
|
21
|
+
.action(deps.runRulesTechMd);
|
|
22
|
+
rulesCommand.action(() => {
|
|
23
|
+
rulesCommand.help();
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../../src/cli/rules/commands.ts"],"names":[],"mappings":"AAQA,MAAM,UAAU,qBAAqB,CAAC,OAAgB,EAAE,IAAsB;IAC5E,MAAM,YAAY,GAAG,OAAO;SACzB,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CACV,gEAAgE,CACjE,CAAC;IAEJ,YAAY;SACT,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CACV,wHAAwH,CACzH;SACA,MAAM,CAAC,2BAA2B,EAAE,oBAAoB,CAAC;SACzD,MAAM,CAAC,iBAAiB,EAAE,8BAA8B,EAAE,SAAS,CAAC;SACpE,MAAM,CAAC,aAAa,EAAE,qDAAqD,CAAC;SAC5E,MAAM,CAAC,aAAa,EAAE,yBAAyB,CAAC;SAChD,MAAM,CAAC,WAAW,EAAE,uCAAuC,CAAC;SAC5D,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAE7B,YAAY;SACT,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,+CAA+C,CAAC;SAC5D,MAAM,CAAC,iBAAiB,EAAE,iDAAiD,CAAC;SAC5E,MAAM,CAAC,aAAa,EAAE,4BAA4B,CAAC;SACnD,MAAM,CAAC,WAAW,EAAE,wDAAwD,CAAC;SAC7E,MAAM,CAAC,WAAW,EAAE,0CAA0C,CAAC;SAC/D,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAE/B,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE;QACvB,YAAY,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/rules/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/tech/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/cli/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
export function registerWorkflowCommands(program, deps) {
|
|
2
|
+
const workflowsCommand = program
|
|
3
|
+
.command("workflows")
|
|
4
|
+
.description("Install and manage workflow bundles for Antigravity, Codex, and Copilot");
|
|
5
|
+
workflowsCommand
|
|
6
|
+
.command("platforms")
|
|
7
|
+
.description("List workflow platform ids and defaults")
|
|
8
|
+
.action(deps.printPlatforms);
|
|
9
|
+
deps
|
|
10
|
+
.withInstallOptions(workflowsCommand
|
|
11
|
+
.command("install")
|
|
12
|
+
.description("Install a workflow bundle into the selected platform"))
|
|
13
|
+
.action(deps.runWorkflowInstall);
|
|
14
|
+
deps
|
|
15
|
+
.withWorkflowBaseOptions(workflowsCommand
|
|
16
|
+
.command("remove <bundle-or-workflow>")
|
|
17
|
+
.description("Remove an installed bundle or workflow and sync rules")
|
|
18
|
+
.option("--dry-run", "preview remove and sync without writing files")
|
|
19
|
+
.option("-y, --yes", "skip interactive confirmation"))
|
|
20
|
+
.action(deps.runWorkflowRemove);
|
|
21
|
+
workflowsCommand
|
|
22
|
+
.command("remove-all")
|
|
23
|
+
.description("Remove all CBX-managed generated artifacts (workflows/agents/skills/rules/MCP config)")
|
|
24
|
+
.option("-p, --platform <platform>", "target platform id or 'all' (default: all)", "all")
|
|
25
|
+
.option("--scope <scope>", "target scope: project|global|all (default: all)", "all")
|
|
26
|
+
.option("--target <path>", "remove project-scope artifacts from target project directory")
|
|
27
|
+
.option("--include-credentials", "also remove ~/.cbx/credentials.env when scope includes global")
|
|
28
|
+
.option("--dry-run", "preview remove operations without writing files")
|
|
29
|
+
.option("-y, --yes", "skip interactive confirmation")
|
|
30
|
+
.action(deps.runWorkflowRemoveAll);
|
|
31
|
+
deps
|
|
32
|
+
.withWorkflowBaseOptions(workflowsCommand
|
|
33
|
+
.command("prune-skills")
|
|
34
|
+
.description("Prune nested duplicates and out-of-profile installed skills")
|
|
35
|
+
.option("-b, --bundle <bundle>", "bundle id (default: agent-environment-setup)")
|
|
36
|
+
.option("--skill-profile <profile>", "skill prune profile: core|web-backend|full (default: core)", deps.defaultSkillProfile)
|
|
37
|
+
.option("--all-skills", "alias for --skill-profile full")
|
|
38
|
+
.option("--dry-run", "preview prune operations without deleting files")
|
|
39
|
+
.option("-y, --yes", "skip interactive confirmation"))
|
|
40
|
+
.action(deps.runWorkflowPruneSkills);
|
|
41
|
+
deps
|
|
42
|
+
.withWorkflowBaseOptions(workflowsCommand
|
|
43
|
+
.command("sync-rules")
|
|
44
|
+
.description("Rebuild the managed workflow routing block for the selected platform")
|
|
45
|
+
.option("--dry-run", "preview managed rule sync without writing files")
|
|
46
|
+
.option("--json", "output JSON"))
|
|
47
|
+
.action(deps.runWorkflowSyncRules);
|
|
48
|
+
deps
|
|
49
|
+
.withWorkflowBaseOptions(workflowsCommand
|
|
50
|
+
.command("doctor [platform]")
|
|
51
|
+
.description("Validate workflow paths, rule file status, and managed block health")
|
|
52
|
+
.option("--json", "output JSON"))
|
|
53
|
+
.action(deps.runWorkflowDoctor);
|
|
54
|
+
const workflowsConfigCommand = workflowsCommand
|
|
55
|
+
.command("config")
|
|
56
|
+
.description("View or edit cbx_config.json from terminal")
|
|
57
|
+
.option("-p, --platform <platform>", "target platform id for MCP target patch")
|
|
58
|
+
.option("--scope <scope>", "config scope: project|workspace|global|user", "global")
|
|
59
|
+
.option("--show", "show current config (default when no edit flags)")
|
|
60
|
+
.option("--edit", "edit Postman default workspace ID interactively")
|
|
61
|
+
.option("--workspace-id <id|null>", "set postman.defaultWorkspaceId")
|
|
62
|
+
.option("--clear-workspace-id", "set postman.defaultWorkspaceId to null")
|
|
63
|
+
.option("--postman-mode <mode>", "set postman.mcpUrl via mode: minimal|code|full")
|
|
64
|
+
.option("--mcp-runtime <runtime>", "set mcp.runtime: docker|local")
|
|
65
|
+
.option("--mcp-fallback <fallback>", "set mcp.fallback: local|fail|skip")
|
|
66
|
+
.option("--show-after", "print JSON after update")
|
|
67
|
+
.option("--dry-run", "preview changes without writing files")
|
|
68
|
+
.action(deps.runWorkflowConfig);
|
|
69
|
+
deps.registerConfigKeysSubcommands(workflowsConfigCommand);
|
|
70
|
+
workflowsCommand.action(() => {
|
|
71
|
+
workflowsCommand.help();
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../../src/cli/workflows/commands.ts"],"names":[],"mappings":"AAuBA,MAAM,UAAU,wBAAwB,CACtC,OAAgB,EAChB,IAAyB;IAEzB,MAAM,gBAAgB,GAAG,OAAO;SAC7B,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CACV,yEAAyE,CAC1E,CAAC;IAEJ,gBAAgB;SACb,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,yCAAyC,CAAC;SACtD,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAE/B,IAAI;SACD,kBAAkB,CACjB,gBAAgB;SACb,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,sDAAsD,CAAC,CACvE;SACA,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAEnC,IAAI;SACD,uBAAuB,CACtB,gBAAgB;SACb,OAAO,CAAC,6BAA6B,CAAC;SACtC,WAAW,CAAC,uDAAuD,CAAC;SACpE,MAAM,CAAC,WAAW,EAAE,+CAA+C,CAAC;SACpE,MAAM,CAAC,WAAW,EAAE,+BAA+B,CAAC,CACxD;SACA,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAElC,gBAAgB;SACb,OAAO,CAAC,YAAY,CAAC;SACrB,WAAW,CACV,uFAAuF,CACxF;SACA,MAAM,CACL,2BAA2B,EAC3B,4CAA4C,EAC5C,KAAK,CACN;SACA,MAAM,CACL,iBAAiB,EACjB,iDAAiD,EACjD,KAAK,CACN;SACA,MAAM,CACL,iBAAiB,EACjB,8DAA8D,CAC/D;SACA,MAAM,CACL,uBAAuB,EACvB,+DAA+D,CAChE;SACA,MAAM,CAAC,WAAW,EAAE,iDAAiD,CAAC;SACtE,MAAM,CAAC,WAAW,EAAE,+BAA+B,CAAC;SACpD,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAErC,IAAI;SACD,uBAAuB,CACtB,gBAAgB;SACb,OAAO,CAAC,cAAc,CAAC;SACvB,WAAW,CACV,6DAA6D,CAC9D;SACA,MAAM,CACL,uBAAuB,EACvB,8CAA8C,CAC/C;SACA,MAAM,CACL,2BAA2B,EAC3B,4DAA4D,EAC5D,IAAI,CAAC,mBAAmB,CACzB;SACA,MAAM,CAAC,cAAc,EAAE,gCAAgC,CAAC;SACxD,MAAM,CACL,WAAW,EACX,iDAAiD,CAClD;SACA,MAAM,CAAC,WAAW,EAAE,+BAA+B,CAAC,CACxD;SACA,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAEvC,IAAI;SACD,uBAAuB,CACtB,gBAAgB;SACb,OAAO,CAAC,YAAY,CAAC;SACrB,WAAW,CACV,sEAAsE,CACvE;SACA,MAAM,CAAC,WAAW,EAAE,iDAAiD,CAAC;SACtE,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC,CACnC;SACA,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAErC,IAAI;SACD,uBAAuB,CACtB,gBAAgB;SACb,OAAO,CAAC,mBAAmB,CAAC;SAC5B,WAAW,CACV,qEAAqE,CACtE;SACA,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC,CACnC;SACA,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAElC,MAAM,sBAAsB,GAAG,gBAAgB;SAC5C,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,4CAA4C,CAAC;SACzD,MAAM,CACL,2BAA2B,EAC3B,yCAAyC,CAC1C;SACA,MAAM,CACL,iBAAiB,EACjB,6CAA6C,EAC7C,QAAQ,CACT;SACA,MAAM,CAAC,QAAQ,EAAE,kDAAkD,CAAC;SACpE,MAAM,CAAC,QAAQ,EAAE,iDAAiD,CAAC;SACnE,MAAM,CAAC,0BAA0B,EAAE,gCAAgC,CAAC;SACpE,MAAM,CAAC,sBAAsB,EAAE,wCAAwC,CAAC;SACxE,MAAM,CACL,uBAAuB,EACvB,gDAAgD,CACjD;SACA,MAAM,CAAC,yBAAyB,EAAE,+BAA+B,CAAC;SAClE,MAAM,CAAC,2BAA2B,EAAE,mCAAmC,CAAC;SACxE,MAAM,CAAC,cAAc,EAAE,yBAAyB,CAAC;SACjD,MAAM,CAAC,WAAW,EAAE,uCAAuC,CAAC;SAC5D,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAElC,IAAI,CAAC,6BAA6B,CAAC,sBAAsB,CAAC,CAAC;IAE3D,gBAAgB,CAAC,MAAM,CAAC,GAAG,EAAE;QAC3B,gBAAgB,CAAC,IAAI,EAAE,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/workflows/index.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cubis/foundry",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.55",
|
|
4
4
|
"description": "Cubis Foundry CLI for workflow-first AI agent environments",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -21,15 +21,19 @@
|
|
|
21
21
|
"mcp/tsconfig.json",
|
|
22
22
|
"mcp/src",
|
|
23
23
|
"README.md",
|
|
24
|
-
"CHANGELOG.md"
|
|
24
|
+
"CHANGELOG.md",
|
|
25
|
+
"dist/cli",
|
|
26
|
+
"src/cli",
|
|
27
|
+
"tsconfig.cli.json"
|
|
25
28
|
],
|
|
26
29
|
"scripts": {
|
|
27
|
-
"start": "node bin/cubis.js",
|
|
28
|
-
"check": "node bin/cubis.js --help",
|
|
30
|
+
"start": "npm run build:cli && node bin/cubis.js",
|
|
31
|
+
"check": "npm run build:cli && node bin/cubis.js --help",
|
|
29
32
|
"test:attributes": "node scripts/validate-platform-attributes.mjs",
|
|
30
33
|
"test:attributes:strict": "node scripts/validate-platform-attributes.mjs --strict",
|
|
31
34
|
"test:tech-md": "node scripts/test-tech-md-scanner.mjs",
|
|
32
|
-
"test:smoke": "bash scripts/smoke-workflows.sh",
|
|
35
|
+
"test:smoke": "npm run build:cli && bash scripts/smoke-workflows.sh",
|
|
36
|
+
"test:init:tty": "npm run build:cli && expect scripts/test-init-tty.exp bin/cubis.js",
|
|
33
37
|
"test:mcp:docker": "bash scripts/test-mcp-docker.sh",
|
|
34
38
|
"test:all": "npm run test:attributes && npm run test:smoke",
|
|
35
39
|
"test:all:strict": "npm run test:attributes:strict && npm run test:smoke",
|
|
@@ -55,7 +59,10 @@
|
|
|
55
59
|
"generate:powers": "node \"workflows/scripts/generate-powers.mjs\"",
|
|
56
60
|
"generate:powers:force": "node \"workflows/scripts/generate-powers.mjs\" --force",
|
|
57
61
|
"generate:powers:from-skills": "node \"workflows/scripts/generate-powers.mjs\" --from-skills",
|
|
58
|
-
"generate:powers:sync": "node \"workflows/scripts/generate-powers.mjs\" --sync-skills --force"
|
|
62
|
+
"generate:powers:sync": "node \"workflows/scripts/generate-powers.mjs\" --sync-skills --force",
|
|
63
|
+
"build:cli": "tsc -p tsconfig.cli.json",
|
|
64
|
+
"clean:cli": "rm -rf dist/cli",
|
|
65
|
+
"prepack": "npm run build:cli"
|
|
59
66
|
},
|
|
60
67
|
"engines": {
|
|
61
68
|
"node": ">=18.17"
|
|
@@ -77,5 +84,9 @@
|
|
|
77
84
|
"@inquirer/prompts": "^7.8.6",
|
|
78
85
|
"commander": "^14.0.1",
|
|
79
86
|
"jsonc-parser": "^3.3.1"
|
|
87
|
+
},
|
|
88
|
+
"devDependencies": {
|
|
89
|
+
"@types/node": "^20.14.0",
|
|
90
|
+
"typescript": "^5.5.4"
|
|
80
91
|
}
|
|
81
92
|
}
|