@entelligentsia/forgecli 1.0.2 → 1.0.3
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 +23 -0
- package/dist/CHANGELOG-forge-plugin.md +24 -0
- package/dist/extensions/forgecli/audience-gate.js +1 -1
- package/dist/extensions/forgecli/audience-gate.js.map +1 -1
- package/dist/extensions/forgecli/fix-bug.d.ts +1 -2
- package/dist/extensions/forgecli/fix-bug.js +678 -609
- package/dist/extensions/forgecli/fix-bug.js.map +1 -1
- package/dist/extensions/forgecli/forge-artifact-tool.js +15 -3
- package/dist/extensions/forgecli/forge-artifact-tool.js.map +1 -1
- package/dist/extensions/forgecli/forge-subagent.d.ts +17 -0
- package/dist/extensions/forgecli/forge-subagent.js +31 -12
- package/dist/extensions/forgecli/forge-subagent.js.map +1 -1
- package/dist/extensions/forgecli/forge-tools.d.ts +6 -0
- package/dist/extensions/forgecli/forge-tools.js +69 -6
- package/dist/extensions/forgecli/forge-tools.js.map +1 -1
- package/dist/extensions/forgecli/run-task.js +461 -391
- package/dist/extensions/forgecli/run-task.js.map +1 -1
- package/dist/extensions/forgecli/session-registry.d.ts +12 -0
- package/dist/extensions/forgecli/session-registry.js +23 -0
- package/dist/extensions/forgecli/session-registry.js.map +1 -1
- package/dist/extensions/forgecli/subagent/caller-context.d.ts +35 -11
- package/dist/extensions/forgecli/subagent/caller-context.js +49 -21
- package/dist/extensions/forgecli/subagent/caller-context.js.map +1 -1
- package/dist/extensions/forgecli/subagent/orchestrator-transcript.d.ts +66 -0
- package/dist/extensions/forgecli/subagent/orchestrator-transcript.js +66 -0
- package/dist/extensions/forgecli/subagent/orchestrator-transcript.js.map +1 -0
- package/dist/extensions/forgecli/subagent/phase-guard.d.ts +34 -0
- package/dist/extensions/forgecli/subagent/phase-guard.js +139 -0
- package/dist/extensions/forgecli/subagent/phase-guard.js.map +1 -0
- package/dist/extensions/forgecli/subagent/phase-summary-map.d.ts +1 -0
- package/dist/extensions/forgecli/subagent/phase-summary-map.js +22 -0
- package/dist/extensions/forgecli/subagent/phase-summary-map.js.map +1 -0
- package/dist/extensions/forgecli/thread-switcher.js +2 -2
- package/dist/extensions/forgecli/thread-switcher.js.map +1 -1
- package/dist/extensions/forgecli/viewport-events.d.ts +4 -0
- package/dist/extensions/forgecli/viewport-events.js +18 -1
- package/dist/extensions/forgecli/viewport-events.js.map +1 -1
- package/dist/extensions/forgecli/viewport-renderer.d.ts +12 -2
- package/dist/extensions/forgecli/viewport-renderer.js +8 -6
- package/dist/extensions/forgecli/viewport-renderer.js.map +1 -1
- package/dist/forge-payload/.base-pack/workflows/fix_bug.md +10 -28
- package/dist/forge-payload/.base-pack/workflows/triage.md +190 -0
- package/dist/forge-payload/.claude-plugin/plugin.json +1 -1
- package/dist/forge-payload/.schemas/enum-catalog.json +1 -1
- package/dist/forge-payload/.schemas/migrations.json +9 -0
- package/dist/forge-payload/integrity.json +3 -3
- package/dist/forge-payload/meta/fragments/tool-discipline.md +21 -2
- package/dist/forge-payload/meta/workflows/meta-bug-triage.md +210 -0
- package/dist/forge-payload/meta/workflows/meta-fix-bug.md +10 -28
- package/dist/forge-payload/schemas/enum-catalog.json +1 -1
- package/dist/forge-payload/schemas/structure-manifest.json +20 -1
- package/dist/forge-payload/tools/artifact.cjs +34 -5
- package/node_modules/@entelligentsia/forge-compress/dist/compressor.d.ts +6 -0
- package/node_modules/@entelligentsia/forge-compress/dist/compressor.js +137 -0
- package/node_modules/@entelligentsia/forge-compress/dist/entropy.d.ts +3 -0
- package/node_modules/@entelligentsia/forge-compress/dist/entropy.js +99 -0
- package/node_modules/@entelligentsia/forge-compress/dist/forge/entity.d.ts +8 -0
- package/node_modules/@entelligentsia/forge-compress/dist/forge/entity.js +149 -0
- package/node_modules/@entelligentsia/forge-compress/dist/forge/index.d.ts +7 -0
- package/node_modules/@entelligentsia/forge-compress/dist/forge/index.js +4 -0
- package/node_modules/@entelligentsia/forge-compress/dist/forge/markdown.d.ts +5 -0
- package/node_modules/@entelligentsia/forge-compress/dist/forge/markdown.js +92 -0
- package/node_modules/@entelligentsia/forge-compress/dist/forge/query.d.ts +7 -0
- package/node_modules/@entelligentsia/forge-compress/dist/forge/query.js +60 -0
- package/node_modules/@entelligentsia/forge-compress/dist/forge/validate.d.ts +1 -0
- package/node_modules/@entelligentsia/forge-compress/dist/forge/validate.js +82 -0
- package/node_modules/@entelligentsia/forge-compress/dist/index.d.ts +6 -0
- package/node_modules/@entelligentsia/forge-compress/dist/index.js +5 -0
- package/node_modules/@entelligentsia/forge-compress/dist/progressive.d.ts +1 -0
- package/node_modules/@entelligentsia/forge-compress/dist/progressive.js +108 -0
- package/node_modules/@entelligentsia/forge-compress/dist/strip.d.ts +4 -0
- package/node_modules/@entelligentsia/forge-compress/dist/strip.js +55 -0
- package/node_modules/@entelligentsia/forge-compress/dist/tokens.d.ts +2 -0
- package/node_modules/@entelligentsia/forge-compress/dist/tokens.js +17 -0
- package/node_modules/@entelligentsia/forge-compress/package.json +45 -0
- package/node_modules/@entelligentsia/forge-compress/src/__tests__/compress.test.ts +409 -0
- package/node_modules/@entelligentsia/forge-compress/src/compressor.ts +147 -0
- package/node_modules/@entelligentsia/forge-compress/src/entropy.ts +105 -0
- package/node_modules/@entelligentsia/forge-compress/src/forge/entity.ts +184 -0
- package/node_modules/@entelligentsia/forge-compress/src/forge/index.ts +10 -0
- package/node_modules/@entelligentsia/forge-compress/src/forge/markdown.ts +122 -0
- package/node_modules/@entelligentsia/forge-compress/src/forge/query.ts +105 -0
- package/node_modules/@entelligentsia/forge-compress/src/forge/validate.ts +86 -0
- package/node_modules/@entelligentsia/forge-compress/src/index.ts +22 -0
- package/node_modules/@entelligentsia/forge-compress/src/progressive.ts +123 -0
- package/node_modules/@entelligentsia/forge-compress/src/strip.ts +58 -0
- package/node_modules/@entelligentsia/forge-compress/src/tokens.ts +19 -0
- package/package.json +5 -10
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
const ANSI_RE = /\x1b\[[0-9;]*[a-zA-Z]/g;
|
|
2
|
+
|
|
3
|
+
export function stripAnsi(s: string): string {
|
|
4
|
+
if (!s.includes("\x1b")) return s;
|
|
5
|
+
return s.replace(ANSI_RE, "");
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
const TS_RE =
|
|
9
|
+
/\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:?\d{2})?/g;
|
|
10
|
+
const HASH_RE = /\b[0-9a-f]{32,64}\b/g;
|
|
11
|
+
|
|
12
|
+
export function stripTimestampsAndHashes(line: string): string {
|
|
13
|
+
return line.replace(TS_RE, "[TS]").replace(HASH_RE, "[HASH]");
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export function normalizeWhitespace(line: string): string {
|
|
17
|
+
let result = "";
|
|
18
|
+
let prevSpace = false;
|
|
19
|
+
for (const ch of line) {
|
|
20
|
+
if (ch === " " || ch === "\t") {
|
|
21
|
+
if (!prevSpace) {
|
|
22
|
+
result += " ";
|
|
23
|
+
prevSpace = true;
|
|
24
|
+
}
|
|
25
|
+
} else {
|
|
26
|
+
result += ch;
|
|
27
|
+
prevSpace = false;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return result;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
const BOILERPLATE_PREFIXES = [
|
|
34
|
+
"copyright",
|
|
35
|
+
"licensed under",
|
|
36
|
+
"license:",
|
|
37
|
+
"all rights reserved",
|
|
38
|
+
"generated by",
|
|
39
|
+
"auto-generated",
|
|
40
|
+
];
|
|
41
|
+
|
|
42
|
+
const SEPARATOR_CHARS = new Set(["=", "-", "*", "─", "━"]);
|
|
43
|
+
|
|
44
|
+
export function isBoilerplate(line: string): boolean {
|
|
45
|
+
const lower = line.toLowerCase();
|
|
46
|
+
if (BOILERPLATE_PREFIXES.some((p) => lower.startsWith(p))) return true;
|
|
47
|
+
if (line.length >= 4) {
|
|
48
|
+
const first = line[0];
|
|
49
|
+
if (SEPARATOR_CHARS.has(first)) {
|
|
50
|
+
let same = 0;
|
|
51
|
+
for (const c of line) {
|
|
52
|
+
if (c === first) same++;
|
|
53
|
+
}
|
|
54
|
+
if (same / line.length > 0.8) return true;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
const CHARS_PER_TOKEN = 3.7;
|
|
2
|
+
|
|
3
|
+
export function countTokens(text: string): number {
|
|
4
|
+
if (!text) return 0;
|
|
5
|
+
return Math.ceil(text.length / CHARS_PER_TOKEN);
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export function truncateToTokenBudget(
|
|
9
|
+
text: string,
|
|
10
|
+
maxTokens: number,
|
|
11
|
+
): string {
|
|
12
|
+
if (maxTokens <= 0) return "";
|
|
13
|
+
if (countTokens(text) <= maxTokens) return text;
|
|
14
|
+
const charBudget = Math.floor(maxTokens * CHARS_PER_TOKEN);
|
|
15
|
+
const truncated = text.slice(0, charBudget);
|
|
16
|
+
const lastNewline = truncated.lastIndexOf("\n");
|
|
17
|
+
const clean = lastNewline > 0 ? truncated.slice(0, lastNewline) : truncated;
|
|
18
|
+
return `${clean} …`;
|
|
19
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@entelligentsia/forgecli",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.3",
|
|
4
4
|
"description": "Forge SDLC ported onto @earendil-works/pi-coding-agent \u2014 production launcher with three bin aliases (forge/forgecli/4ge). Bundles a curated fork of pi-coding-agent vendored under earendil-works names.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Entelligentsia",
|
|
@@ -71,6 +71,7 @@
|
|
|
71
71
|
"@earendil-works/pi-agent-core",
|
|
72
72
|
"@earendil-works/pi-ai",
|
|
73
73
|
"@earendil-works/pi-tui",
|
|
74
|
+
"@entelligentsia/forge-compress",
|
|
74
75
|
"js-yaml"
|
|
75
76
|
],
|
|
76
77
|
"dependencies": {
|
|
@@ -80,6 +81,7 @@
|
|
|
80
81
|
"@earendil-works/pi-tui": "file:./vendor-pi/earendil-works-pi-tui-0.75.5.tgz",
|
|
81
82
|
"ajv": "^8.20.0",
|
|
82
83
|
"js-yaml": "^4.1.0",
|
|
84
|
+
"@entelligentsia/forge-compress": "file:../forge-compress",
|
|
83
85
|
"lunr": "2.3.9",
|
|
84
86
|
"typebox": "^1.1.24"
|
|
85
87
|
},
|
|
@@ -97,12 +99,5 @@
|
|
|
97
99
|
},
|
|
98
100
|
"engines": {
|
|
99
101
|
"node": ">=20.6.0"
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
"@earendil-works/pi-coding-agent",
|
|
103
|
-
"@earendil-works/pi-agent-core",
|
|
104
|
-
"@earendil-works/pi-ai",
|
|
105
|
-
"@earendil-works/pi-tui",
|
|
106
|
-
"js-yaml"
|
|
107
|
-
]
|
|
108
|
-
}
|
|
102
|
+
}
|
|
103
|
+
}
|