@solana-epic/github-action 0.1.0-beta.2 → 0.2.0-beta.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/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@solana-epic/github-action",
3
- "version": "0.1.0-beta.2",
3
+ "version": "0.2.0-beta.0",
4
4
  "description": "Solana EPIC Upgrade Guard GitHub Action",
5
5
  "private": false,
6
6
  "publishConfig": {
@@ -16,8 +16,7 @@
16
16
  "dependencies": {
17
17
  "@actions/core": "^1.10.1",
18
18
  "@actions/github": "^6.0.0",
19
- "@solana-epic/diff-engine": "^0.1.0-beta.2",
20
- "@solana-epic/parser": "^0.1.0-beta.2"
19
+ "@solana-epic/cli": "^0.2.0-beta.0"
21
20
  },
22
21
  "devDependencies": {
23
22
  "esbuild": "^0.20.1",
package/dist/report.d.ts DELETED
@@ -1,4 +0,0 @@
1
- import type { DiffReport } from "@solana-epic/diff-engine";
2
- import type { config } from "@solana-epic/parser";
3
- export declare function generateCompactMarkdownReport(report: DiffReport, cfg: config.ResolvedEpicConfig, configChanged: boolean): string;
4
- //# sourceMappingURL=report.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../src/report.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAGlD,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,MAAM,CAAC,kBAAkB,EAC9B,aAAa,EAAE,OAAO,GACrB,MAAM,CAsIR"}
package/dist/report.js DELETED
@@ -1,133 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generateCompactMarkdownReport = generateCompactMarkdownReport;
4
- const diff_engine_1 = require("@solana-epic/diff-engine");
5
- function generateCompactMarkdownReport(report, cfg, configChanged) {
6
- const lines = [];
7
- // Determine Overall Status
8
- const failSeverity = cfg.failOnSeverity;
9
- const severityOrder = ["SAFE", "MINOR", "MAJOR", "CRITICAL"];
10
- const thresholdIndex = severityOrder.indexOf(failSeverity);
11
- const reportSeverityIndex = severityOrder.indexOf(report.severity);
12
- const blocked = thresholdIndex !== -1 && reportSeverityIndex !== -1 && reportSeverityIndex >= thresholdIndex;
13
- const hasOverrides = report.findings.some(f => {
14
- const original = f.kind === "FIELD_ADDED" ? "MAJOR" : "CRITICAL";
15
- return f.severity !== original;
16
- });
17
- // 1. Status Banner
18
- if (blocked) {
19
- lines.push("## 🔴 EPIC Guard: UPGRADE BLOCKED");
20
- lines.push("");
21
- lines.push(`Upgrade checks failed because layout changes exceed the **${failSeverity}** threshold.`);
22
- }
23
- else if (hasOverrides) {
24
- lines.push("## 🟡 EPIC Guard: APPROVED WITH OVERRIDES");
25
- lines.push("");
26
- lines.push("Upgrade checks passed with muted warnings. Custom overrides are active in `epic.toml`.");
27
- }
28
- else {
29
- lines.push("## 🟢 EPIC Guard: APPROVED");
30
- lines.push("");
31
- lines.push("Upgrade checks approved. No layout compatibility risks detected.");
32
- }
33
- lines.push("");
34
- // 2. Config Change Warning
35
- if (configChanged) {
36
- lines.push("> [!WARNING]");
37
- lines.push("> **UPGRADE CONFIGURATION GATE MODIFIED**");
38
- lines.push("> This Pull Request contains changes to `epic.toml` configuration rules.");
39
- lines.push("> Signers must audit the modifications below to ensure safety limits are not bypassed.");
40
- lines.push("");
41
- }
42
- // 3. Summary Table
43
- lines.push("### 📊 Upgrade Summary");
44
- lines.push("");
45
- lines.push("| Program | Account | Finding | Final Severity | Overridden? |");
46
- lines.push("| :--- | :--- | :--- | :--- | :--- |");
47
- if (report.findings.length === 0) {
48
- lines.push("| *N/A* | *All Accounts* | *No structural changes* | `SAFE` | No |");
49
- }
50
- else {
51
- for (const f of report.findings) {
52
- const original = f.kind === "FIELD_ADDED" ? "MAJOR" : "CRITICAL";
53
- const isOverridden = f.severity !== original;
54
- lines.push(`| \`marginfi\` | \`${f.account}\` | \`${f.kind}\` | \`${f.severity}\` | ${isOverridden ? "✅ Yes" : "No"} |`);
55
- }
56
- }
57
- lines.push("");
58
- // 4. Detailed Findings
59
- if (report.findings.length > 0) {
60
- lines.push("### 🔍 Layout Findings");
61
- lines.push("");
62
- for (const f of report.findings) {
63
- const intel = (0, diff_engine_1.createUpgradeIntelligenceItem)(f);
64
- lines.push(`#### Struct \`${f.account}\` — **${f.kind}**`);
65
- lines.push("");
66
- lines.push(`* **Finding Type**: ${f.kind}`);
67
- if (f.field) {
68
- lines.push(`* **Field**: \`${f.field.name}\` (${f.field.oldType || "new"} ──► ${f.field.newType || "removed"})`);
69
- }
70
- lines.push(`* **Size Impact**: \`${f.oldSize}B\` ──► \`${f.newSize}B\` (${f.newSize - f.oldSize >= 0 ? "+" : ""}${f.newSize - f.oldSize} bytes)`);
71
- lines.push(`* **Risk Class**: ${intel.riskCategory}`);
72
- lines.push(`* **Severity**: \`${f.severity}\``);
73
- lines.push("");
74
- }
75
- }
76
- // 5. Applied Overrides Section
77
- const appliedOverrides = [];
78
- for (const f of report.findings) {
79
- const original = f.kind === "FIELD_ADDED" ? "MAJOR" : "CRITICAL";
80
- if (f.severity !== original) {
81
- // Find override note
82
- let note = "No note provided.";
83
- for (const [name, program] of cfg.programs.entries()) {
84
- const match = program.overrides.find(o => {
85
- const accountMatch = o.account.toLowerCase() === f.account.toLowerCase();
86
- const findingMatch = o.finding.toUpperCase() === f.kind.toUpperCase();
87
- const fieldMatch = f.field && o.field && o.field.toLowerCase() === f.field.name.toLowerCase();
88
- return accountMatch && findingMatch && (fieldMatch || !o.field);
89
- });
90
- if (match) {
91
- note = match.note;
92
- break;
93
- }
94
- }
95
- appliedOverrides.push({
96
- account: f.account,
97
- finding: f.kind,
98
- field: f.field?.name,
99
- shift: `\`${original}\` ──► \`${f.severity}\``,
100
- note
101
- });
102
- }
103
- }
104
- if (appliedOverrides.length > 0) {
105
- lines.push("### 🔑 Applied Layout Overrides");
106
- lines.push("");
107
- lines.push("| Struct | Finding | Field | Severity Shift | Note / Safety Justification |");
108
- lines.push("| :--- | :--- | :--- | :--- | :--- |");
109
- for (const o of appliedOverrides) {
110
- lines.push(`| \`${o.account}\` | \`${o.finding}\` | \`${o.field || "global"}\` | ${o.shift} | ${o.note} |`);
111
- }
112
- lines.push("");
113
- }
114
- // 6. Recommended Actions
115
- lines.push("### 💡 Recommended Actions");
116
- lines.push("");
117
- if (report.findings.length === 0) {
118
- lines.push("* No action required. Layout upgrades are safe to proceed.");
119
- }
120
- else {
121
- const uniqueRecommendations = new Set();
122
- for (const f of report.findings) {
123
- const intel = (0, diff_engine_1.createUpgradeIntelligenceItem)(f);
124
- uniqueRecommendations.add(intel.recommendation);
125
- }
126
- for (const rec of uniqueRecommendations) {
127
- lines.push(`* ${rec}`);
128
- }
129
- }
130
- lines.push("");
131
- return lines.join("\n");
132
- }
133
- //# sourceMappingURL=report.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"report.js","sourceRoot":"","sources":["../src/report.ts"],"names":[],"mappings":"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"}