infernoflow 0.12.0 → 0.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin/infernoflow.mjs +23 -0
- package/dist/lib/commands/dashboard.mjs +399 -0
- package/dist/lib/commands/prComment.mjs +361 -0
- package/dist/lib/commands/publish.mjs +25 -2
- package/dist/lib/commands/setup.mjs +1 -0
- package/dist/lib/commands/teamSync.mjs +388 -0
- package/dist/lib/commands/version.mjs +282 -0
- package/dist/templates/ci/github-pr-comment.yml +50 -0
- package/dist/templates/cursor/inferno-mcp-server.mjs +13 -0
- package/package.json +5 -4
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# infernoflow PR capability analysis
|
|
2
|
+
#
|
|
3
|
+
# Posts a comment on every PR showing:
|
|
4
|
+
# - which capabilities were added, removed, or changed
|
|
5
|
+
# - recommended semver bump (major / minor / patch)
|
|
6
|
+
# - direct link to the drift details
|
|
7
|
+
#
|
|
8
|
+
# Setup:
|
|
9
|
+
# 1. Copy this file to .github/workflows/infernoflow-pr.yml
|
|
10
|
+
# 2. Ensure GITHUB_TOKEN has write access to pull requests
|
|
11
|
+
# (default GitHub Actions token works if repo settings allow it)
|
|
12
|
+
#
|
|
13
|
+
# That's it — infernoflow does the rest automatically.
|
|
14
|
+
|
|
15
|
+
name: infernoflow PR Analysis
|
|
16
|
+
|
|
17
|
+
on:
|
|
18
|
+
pull_request:
|
|
19
|
+
types: [opened, synchronize, reopened]
|
|
20
|
+
|
|
21
|
+
permissions:
|
|
22
|
+
pull-requests: write # required to post comments
|
|
23
|
+
contents: read
|
|
24
|
+
|
|
25
|
+
jobs:
|
|
26
|
+
capability-analysis:
|
|
27
|
+
name: Capability drift check
|
|
28
|
+
runs-on: ubuntu-latest
|
|
29
|
+
|
|
30
|
+
steps:
|
|
31
|
+
- name: Checkout PR branch
|
|
32
|
+
uses: actions/checkout@v4
|
|
33
|
+
with:
|
|
34
|
+
fetch-depth: 0 # full history needed for git diff
|
|
35
|
+
|
|
36
|
+
- name: Setup Node.js
|
|
37
|
+
uses: actions/setup-node@v4
|
|
38
|
+
with:
|
|
39
|
+
node-version: '20'
|
|
40
|
+
|
|
41
|
+
- name: Install infernoflow
|
|
42
|
+
run: npm install -g infernoflow@latest
|
|
43
|
+
|
|
44
|
+
- name: Post capability analysis comment
|
|
45
|
+
env:
|
|
46
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
47
|
+
run: infernoflow pr-comment
|
|
48
|
+
# infernoflow auto-reads GITHUB_TOKEN, GITHUB_REPOSITORY,
|
|
49
|
+
# GITHUB_EVENT_PATH, and GITHUB_BASE_REF from the environment.
|
|
50
|
+
# No extra config needed.
|
|
@@ -68,6 +68,14 @@ const TOOLS = [
|
|
|
68
68
|
description: "Execute a saved workflow agent by name. Check infernoflow_agent_list first. Can replace multi-step manual workflows with one call.",
|
|
69
69
|
inputSchema: { type: "object", properties: { name: { type: "string", description: "Agent name to run" } }, required: ["name"] }
|
|
70
70
|
},
|
|
71
|
+
{
|
|
72
|
+
name: "infernoflow_version",
|
|
73
|
+
description: "Get the recommended semver bump (major/minor/patch) based on capability changes since the last git tag. CALL THIS AUTOMATICALLY when the developer asks about releasing, bumping version, or publishing. Returns bump type and next version number. Pass apply:true to write the bump to package.json.",
|
|
74
|
+
inputSchema: { type: "object", properties: {
|
|
75
|
+
apply: { type: "boolean", description: "If true, write the recommended version to package.json" },
|
|
76
|
+
ref: { type: "string", description: "Compare against a specific git ref (default: last tag)" }
|
|
77
|
+
}}
|
|
78
|
+
},
|
|
71
79
|
{
|
|
72
80
|
name: "infernoflow_run",
|
|
73
81
|
description: "Generate a full infernoflow task prompt. Use infernoflow_implement instead for most cases — it's simpler. Use this for complex multi-step flows.",
|
|
@@ -576,6 +584,11 @@ function handleTool(id, name, input) {
|
|
|
576
584
|
text = listAgents();
|
|
577
585
|
} else if (name === "infernoflow_agent_run") {
|
|
578
586
|
text = runAgent(input.name);
|
|
587
|
+
} else if (name === "infernoflow_version") {
|
|
588
|
+
const parts = ["version", "--json"];
|
|
589
|
+
if (input.ref) parts.push(`--ref "${input.ref}"`);
|
|
590
|
+
if (input.apply) parts.push("--apply");
|
|
591
|
+
text = runCmd(parts.join(" "));
|
|
579
592
|
} else { return sendError(id, -32601, `Unknown tool: ${name}`); }
|
|
580
593
|
sendResult(id, { content: [{ type: "text", text: text || "(no output)" }] });
|
|
581
594
|
} catch (err) { sendError(id, -32000, err.message); }
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "infernoflow",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "The forge for liquid code
|
|
3
|
+
"version": "0.14.0",
|
|
4
|
+
"description": "The forge for liquid code - keep capabilities, contracts, and docs in sync.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
7
|
"infernoflow": "dist/bin/infernoflow.mjs"
|
|
@@ -20,7 +20,8 @@
|
|
|
20
20
|
"test": "node scripts/smoke.mjs && node scripts/json-smoke.mjs && node scripts/json-negative-smoke.mjs && node scripts/implement-smoke.mjs && node scripts/adopt-smoke.mjs && node scripts/pr-impact-smoke.mjs && node scripts/sync-smoke.mjs && node scripts/run-smoke.mjs",
|
|
21
21
|
"test:help": "node bin/infernoflow.mjs --help",
|
|
22
22
|
"build": "node build.mjs",
|
|
23
|
-
"prepublishOnly": "node build.mjs"
|
|
23
|
+
"prepublishOnly": "node build.mjs",
|
|
24
|
+
"inferno:promote-draft": "node scripts/inferno-promote-draft.mjs"
|
|
24
25
|
},
|
|
25
26
|
"keywords": [
|
|
26
27
|
"cli",
|
|
@@ -45,4 +46,4 @@
|
|
|
45
46
|
"devDependencies": {
|
|
46
47
|
"esbuild": "^0.28.0"
|
|
47
48
|
}
|
|
48
|
-
}
|
|
49
|
+
}
|