git-impact 0.3.0 → 0.6.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/README.md +125 -78
- package/dist/cli/index.js +32 -211
- package/dist/cli/index.js.map +1 -1
- package/dist/init/installer.d.ts +6 -0
- package/dist/init/installer.d.ts.map +1 -1
- package/dist/init/installer.js +58 -5
- package/dist/init/installer.js.map +1 -1
- package/dist/init/installer.test.d.ts +2 -0
- package/dist/init/installer.test.d.ts.map +1 -0
- package/dist/init/installer.test.js +127 -0
- package/dist/init/installer.test.js.map +1 -0
- package/dist/init/templates.d.ts +8 -7
- package/dist/init/templates.d.ts.map +1 -1
- package/dist/init/templates.js +73 -371
- package/dist/init/templates.js.map +1 -1
- package/dist/mcp/repo.d.ts +8 -3
- package/dist/mcp/repo.d.ts.map +1 -1
- package/dist/mcp/repo.js +27 -9
- package/dist/mcp/repo.js.map +1 -1
- package/dist/mcp/repo.test.d.ts +2 -0
- package/dist/mcp/repo.test.d.ts.map +1 -0
- package/dist/mcp/repo.test.js +133 -0
- package/dist/mcp/repo.test.js.map +1 -0
- package/dist/mcp/resources.js +0 -1
- package/dist/mcp/resources.js.map +1 -1
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +100 -12
- package/dist/mcp/tools.js.map +1 -1
- package/dist/mcp/tools.test.d.ts +2 -0
- package/dist/mcp/tools.test.d.ts.map +1 -0
- package/dist/mcp/tools.test.js +123 -0
- package/dist/mcp/tools.test.js.map +1 -0
- package/dist/readers/git.d.ts +2 -1
- package/dist/readers/git.d.ts.map +1 -1
- package/dist/readers/git.js +12 -6
- package/dist/readers/git.js.map +1 -1
- package/dist/readers/redact.d.ts +29 -0
- package/dist/readers/redact.d.ts.map +1 -0
- package/dist/readers/redact.js +82 -0
- package/dist/readers/redact.js.map +1 -0
- package/dist/readers/redact.test.d.ts +2 -0
- package/dist/readers/redact.test.d.ts.map +1 -0
- package/dist/readers/redact.test.js +72 -0
- package/dist/readers/redact.test.js.map +1 -0
- package/dist/report/html.d.ts +2 -0
- package/dist/report/html.d.ts.map +1 -1
- package/dist/report/html.js +35 -1
- package/dist/report/html.js.map +1 -1
- package/dist/report/render.d.ts.map +1 -1
- package/dist/report/render.js +2 -0
- package/dist/report/render.js.map +1 -1
- package/dist/storage/db.d.ts +23 -2
- package/dist/storage/db.d.ts.map +1 -1
- package/dist/storage/db.js +12 -0
- package/dist/storage/db.js.map +1 -1
- package/dist/storage/db.test.d.ts +2 -0
- package/dist/storage/db.test.d.ts.map +1 -0
- package/dist/storage/db.test.js +152 -0
- package/dist/storage/db.test.js.map +1 -0
- package/package.json +7 -6
- package/skill/SKILL.md +142 -205
- package/skill/references/html-template.md +131 -0
- package/skill/references/translation-rules.md +87 -0
- package/dist/translator/prompt.d.ts +0 -21
- package/dist/translator/prompt.d.ts.map +0 -1
- package/dist/translator/prompt.js +0 -117
- package/dist/translator/prompt.js.map +0 -1
- package/dist/translator/translate.d.ts +0 -36
- package/dist/translator/translate.d.ts.map +0 -1
- package/dist/translator/translate.js +0 -73
- package/dist/translator/translate.js.map +0 -1
package/dist/mcp/repo.js
CHANGED
|
@@ -2,10 +2,13 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Repo path resolution — priority order:
|
|
4
4
|
*
|
|
5
|
-
* 1. Explicit arg passed by
|
|
6
|
-
* 2.
|
|
5
|
+
* 1. Explicit arg passed by the model ("~/code/my-app")
|
|
6
|
+
* 2. **Sticky cache** — the path we resolved last time on this process.
|
|
7
|
+
* The skill calls 3-5 MCP tools per standup; resolving once and
|
|
8
|
+
* reusing avoids the bug where get_git_activity finds a repo via
|
|
9
|
+
* cwd but save_impact_entry — called moments later — gets a
|
|
10
|
+
* different cwd and fails.
|
|
7
11
|
* 3. Walk up from process.cwd() until a .git folder is found
|
|
8
|
-
* → works in Claude Code CLI where cwd = open project
|
|
9
12
|
* 4. Fail with a clear message asking the user to set a default
|
|
10
13
|
*/
|
|
11
14
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
@@ -42,29 +45,44 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
42
45
|
};
|
|
43
46
|
})();
|
|
44
47
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
48
|
+
exports._resetStickyRepoForTests = _resetStickyRepoForTests;
|
|
45
49
|
exports.resolveRepoPath = resolveRepoPath;
|
|
46
50
|
const path = __importStar(require("path"));
|
|
47
51
|
const fs = __importStar(require("fs"));
|
|
48
52
|
const process = __importStar(require("process"));
|
|
49
53
|
const os = __importStar(require("os"));
|
|
54
|
+
let stickyRepo = null;
|
|
55
|
+
/** Reset the cached path. Used by tests; not part of the public API. */
|
|
56
|
+
function _resetStickyRepoForTests() {
|
|
57
|
+
stickyRepo = null;
|
|
58
|
+
}
|
|
50
59
|
function resolveRepoPath(explicitPath) {
|
|
51
60
|
// 1. Explicit arg — highest priority
|
|
52
61
|
if (explicitPath) {
|
|
53
62
|
const resolved = expandHome(explicitPath);
|
|
54
63
|
assertIsGitRepo(resolved);
|
|
64
|
+
stickyRepo = resolved;
|
|
55
65
|
return { path: resolved, source: "explicit" };
|
|
56
66
|
}
|
|
57
|
-
// 2.
|
|
67
|
+
// 2. Sticky cache — within a single MCP server process, reuse the path
|
|
68
|
+
// we successfully resolved earlier. Critical because cwd may shift
|
|
69
|
+
// between tool calls and we don't want save_impact_entry to fail just
|
|
70
|
+
// because get_git_activity already worked.
|
|
71
|
+
if (stickyRepo && isGitRepo(stickyRepo)) {
|
|
72
|
+
return { path: stickyRepo, source: "sticky" };
|
|
73
|
+
}
|
|
74
|
+
// 3. Walk up from cwd — works when Claude Code opens a project folder
|
|
58
75
|
const fromCwd = findGitRoot(process.cwd());
|
|
59
76
|
if (fromCwd) {
|
|
77
|
+
stickyRepo = fromCwd;
|
|
60
78
|
return { path: fromCwd, source: "cwd" };
|
|
61
79
|
}
|
|
62
|
-
//
|
|
80
|
+
// 4. Nothing found
|
|
63
81
|
throw new Error("No git repository found.\n\n" +
|
|
64
|
-
"
|
|
65
|
-
|
|
66
|
-
"
|
|
67
|
-
|
|
82
|
+
"The MCP server's cwd is not inside a git repo, and no path was given.\n" +
|
|
83
|
+
"Tell me the absolute path:\n" +
|
|
84
|
+
' "do my standup for ~/code/my-project"\n\n' +
|
|
85
|
+
"Once resolved, the path is cached for the rest of this MCP session.");
|
|
68
86
|
}
|
|
69
87
|
/** Walk up directory tree until a .git folder is found, or return null */
|
|
70
88
|
function findGitRoot(dir) {
|
package/dist/mcp/repo.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repo.js","sourceRoot":"","sources":["../../src/mcp/repo.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"repo.js","sourceRoot":"","sources":["../../src/mcp/repo.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repo.test.d.ts","sourceRoot":"","sources":["../../src/mcp/repo.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
const vitest_1 = require("vitest");
|
|
37
|
+
const fs = __importStar(require("fs"));
|
|
38
|
+
const os = __importStar(require("os"));
|
|
39
|
+
const path = __importStar(require("path"));
|
|
40
|
+
const child_process_1 = require("child_process");
|
|
41
|
+
const repo_1 = require("./repo");
|
|
42
|
+
let tmpA;
|
|
43
|
+
let tmpB;
|
|
44
|
+
let originalCwd;
|
|
45
|
+
(0, vitest_1.beforeEach)(() => {
|
|
46
|
+
originalCwd = process.cwd();
|
|
47
|
+
tmpA = fs.mkdtempSync(path.join(os.tmpdir(), "repo-A-"));
|
|
48
|
+
tmpB = fs.mkdtempSync(path.join(os.tmpdir(), "repo-B-"));
|
|
49
|
+
// Real fs.realpathSync to handle macOS /var → /private/var symlink.
|
|
50
|
+
tmpA = fs.realpathSync(tmpA);
|
|
51
|
+
tmpB = fs.realpathSync(tmpB);
|
|
52
|
+
(0, child_process_1.execSync)(`git -C ${tmpA} init -q`);
|
|
53
|
+
(0, child_process_1.execSync)(`git -C ${tmpB} init -q`);
|
|
54
|
+
(0, repo_1._resetStickyRepoForTests)();
|
|
55
|
+
});
|
|
56
|
+
(0, vitest_1.afterEach)(() => {
|
|
57
|
+
process.chdir(originalCwd);
|
|
58
|
+
fs.rmSync(tmpA, { recursive: true, force: true });
|
|
59
|
+
fs.rmSync(tmpB, { recursive: true, force: true });
|
|
60
|
+
});
|
|
61
|
+
(0, vitest_1.describe)("resolveRepoPath", () => {
|
|
62
|
+
(0, vitest_1.it)("uses an explicit path when provided", () => {
|
|
63
|
+
const r = (0, repo_1.resolveRepoPath)(tmpA);
|
|
64
|
+
(0, vitest_1.expect)(r.path).toBe(tmpA);
|
|
65
|
+
(0, vitest_1.expect)(r.source).toBe("explicit");
|
|
66
|
+
});
|
|
67
|
+
(0, vitest_1.it)("walks up from cwd", () => {
|
|
68
|
+
process.chdir(tmpA);
|
|
69
|
+
const r = (0, repo_1.resolveRepoPath)();
|
|
70
|
+
(0, vitest_1.expect)(r.path).toBe(tmpA);
|
|
71
|
+
(0, vitest_1.expect)(r.source).toBe("cwd");
|
|
72
|
+
});
|
|
73
|
+
(0, vitest_1.it)("caches the resolved path across calls (sticky)", () => {
|
|
74
|
+
// First call — resolved via cwd.
|
|
75
|
+
process.chdir(tmpA);
|
|
76
|
+
const first = (0, repo_1.resolveRepoPath)();
|
|
77
|
+
(0, vitest_1.expect)(first.source).toBe("cwd");
|
|
78
|
+
// Move cwd OUT of any git repo. Without sticky, this would throw.
|
|
79
|
+
const nowhere = fs.mkdtempSync(path.join(os.tmpdir(), "nowhere-"));
|
|
80
|
+
try {
|
|
81
|
+
process.chdir(nowhere);
|
|
82
|
+
const second = (0, repo_1.resolveRepoPath)();
|
|
83
|
+
(0, vitest_1.expect)(second.path).toBe(tmpA);
|
|
84
|
+
(0, vitest_1.expect)(second.source).toBe("sticky");
|
|
85
|
+
}
|
|
86
|
+
finally {
|
|
87
|
+
fs.rmSync(nowhere, { recursive: true, force: true });
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
(0, vitest_1.it)("explicit path beats sticky cache", () => {
|
|
91
|
+
// Prime the cache with tmpA.
|
|
92
|
+
(0, repo_1.resolveRepoPath)(tmpA);
|
|
93
|
+
// Explicit override → should pick tmpB.
|
|
94
|
+
const r = (0, repo_1.resolveRepoPath)(tmpB);
|
|
95
|
+
(0, vitest_1.expect)(r.path).toBe(tmpB);
|
|
96
|
+
(0, vitest_1.expect)(r.source).toBe("explicit");
|
|
97
|
+
});
|
|
98
|
+
(0, vitest_1.it)("subsequent calls without args use sticky after explicit", () => {
|
|
99
|
+
// Set sticky via explicit.
|
|
100
|
+
(0, repo_1.resolveRepoPath)(tmpA);
|
|
101
|
+
// Move cwd somewhere with no git.
|
|
102
|
+
const nowhere = fs.mkdtempSync(path.join(os.tmpdir(), "nowhere-"));
|
|
103
|
+
try {
|
|
104
|
+
process.chdir(nowhere);
|
|
105
|
+
const r = (0, repo_1.resolveRepoPath)();
|
|
106
|
+
(0, vitest_1.expect)(r.path).toBe(tmpA);
|
|
107
|
+
(0, vitest_1.expect)(r.source).toBe("sticky");
|
|
108
|
+
}
|
|
109
|
+
finally {
|
|
110
|
+
fs.rmSync(nowhere, { recursive: true, force: true });
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
(0, vitest_1.it)("throws a helpful error when nothing resolves", () => {
|
|
114
|
+
const nowhere = fs.mkdtempSync(path.join(os.tmpdir(), "nowhere-"));
|
|
115
|
+
try {
|
|
116
|
+
process.chdir(nowhere);
|
|
117
|
+
(0, vitest_1.expect)(() => (0, repo_1.resolveRepoPath)()).toThrow(/No git repository found/);
|
|
118
|
+
}
|
|
119
|
+
finally {
|
|
120
|
+
fs.rmSync(nowhere, { recursive: true, force: true });
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
(0, vitest_1.it)("rejects an explicit path that isn't a git repo", () => {
|
|
124
|
+
const notARepo = fs.mkdtempSync(path.join(os.tmpdir(), "notrepo-"));
|
|
125
|
+
try {
|
|
126
|
+
(0, vitest_1.expect)(() => (0, repo_1.resolveRepoPath)(notARepo)).toThrow(/Not a git repository/);
|
|
127
|
+
}
|
|
128
|
+
finally {
|
|
129
|
+
fs.rmSync(notARepo, { recursive: true, force: true });
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
});
|
|
133
|
+
//# sourceMappingURL=repo.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repo.test.js","sourceRoot":"","sources":["../../src/mcp/repo.test.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp/resources.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resources.js","sourceRoot":"","sources":["../../src/mcp/resources.ts"],"names":[],"mappings":";;;AA2BA,gDAiBC;AA3CD,sCAAkE;AAClE,iCAAyC;AAEzC,MAAM,WAAW,GAAQ,sBAAsB,CAAC;AAChD,MAAM,WAAW,GAAQ,+BAA+B,CAAC;AAE5C,QAAA,oBAAoB,GAAe;IAC9C;QACE,GAAG,EAAE,WAAW;QAChB,IAAI,EAAE,iBAAiB;QACvB,WAAW,EACT,sFAAsF;YACtF,uEAAuE;YACvE,2DAA2D;QAC7D,QAAQ,EAAE,kBAAkB;KAC7B;IACD;QACE,GAAG,EAAE,WAAW;QAChB,IAAI,EAAE,kBAAkB;QACxB,WAAW,EACT,kGAAkG;YAClG,gFAAgF;QAClF,QAAQ,EAAE,kBAAkB;KAC7B;CACF,CAAC;AAEF,SAAgB,kBAAkB,CAAC,GAAW;IAC5C,4DAA4D;IAC5D,IAAI,QAAQ,GAAkB,IAAI,CAAC;IACnC,IAAI,CAAC;QACH,QAAQ,GAAG,IAAA,sBAAe,GAAE,CAAC,IAAI,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,iEAAiE;IACnE,CAAC;IAED,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,WAAW;YACd,OAAO,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QACvC,KAAK,WAAW;YACd,OAAO,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QACvC;YACE,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,EAAE,CAAC,CAAC;IACpD,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAuB;IAClD,MAAM,OAAO,GAAG,QAAQ;QACtB,CAAC,CAAC,CAAC,GAAG,EAAE;YACJ,MAAM,GAAG,GAAG,IAAA,gBAAW,EAAC,QAAQ,CAAC,CAAC;YAClC,OAAO,GAAG;gBACR,CAAC,CAAC;oBACE,UAAU,EAAE,IAAI;oBAChB,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,GAAG,QAAQ,2BAA2B;oBAChD,mBAAmB,EAAE,GAAG,CAAC,kBAAkB;oBAC3C,kBAAkB,EAAG,GAAG,CAAC,iBAAiB;oBAC1C,QAAQ,EAAa,GAAG,CAAC,QAAQ;oBACjC,gBAAgB,EAAK,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"resources.js","sourceRoot":"","sources":["../../src/mcp/resources.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp/tools.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAkB1D,eAAO,MAAM,gBAAgB,EAAE,IAAI,EAgKlC,CAAC;AAIF,KAAK,UAAU,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAExF,wBAAsB,UAAU,CAC9B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,UAAU,CAAC,CAWrB"}
|
package/dist/mcp/tools.js
CHANGED
|
@@ -38,6 +38,7 @@ exports.handleTool = handleTool;
|
|
|
38
38
|
const git_1 = require("../readers/git");
|
|
39
39
|
const github_1 = require("../readers/github");
|
|
40
40
|
const db_1 = require("../storage/db");
|
|
41
|
+
const render_1 = require("../report/render");
|
|
41
42
|
const repo_1 = require("./repo");
|
|
42
43
|
// ─── Tool definitions ────────────────────────────────────────────────────────
|
|
43
44
|
exports.TOOL_DEFINITIONS = [
|
|
@@ -80,8 +81,11 @@ exports.TOOL_DEFINITIONS = [
|
|
|
80
81
|
},
|
|
81
82
|
{
|
|
82
83
|
name: "save_impact_entry",
|
|
83
|
-
description: "Persist a completed impact translation to this repo's local history
|
|
84
|
-
"
|
|
84
|
+
description: "Persist a completed impact translation to this repo's local history " +
|
|
85
|
+
"(.git-impact/history.db). Always call this after translating commits into " +
|
|
86
|
+
"business impact bullets — replaces any prior bash/sqlite3 invocations. " +
|
|
87
|
+
"Each item must include a `provenance` so the UI can mark inferred bullets " +
|
|
88
|
+
"differently from claims grounded in PRs or commit bodies.",
|
|
85
89
|
inputSchema: {
|
|
86
90
|
type: "object",
|
|
87
91
|
required: ["date", "repo_name", "items"],
|
|
@@ -97,18 +101,48 @@ exports.TOOL_DEFINITIONS = [
|
|
|
97
101
|
description: "The translated impact bullets.",
|
|
98
102
|
items: {
|
|
99
103
|
type: "object",
|
|
100
|
-
required: ["status", "summary", "
|
|
104
|
+
required: ["status", "summary", "provenance"],
|
|
101
105
|
properties: {
|
|
102
|
-
status: {
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
+
status: {
|
|
107
|
+
type: "string",
|
|
108
|
+
enum: ["done", "in_progress", "blocked"],
|
|
109
|
+
description: "Outcome state of the work item.",
|
|
110
|
+
},
|
|
111
|
+
summary: { type: "string", description: "Plain-English what." },
|
|
112
|
+
impact: { type: "string", description: "Why it matters — who/what it unblocks." },
|
|
113
|
+
technical_note: { type: "string", description: "Small grey aside (file refs, PR #s)." },
|
|
114
|
+
provenance: {
|
|
115
|
+
type: "string",
|
|
116
|
+
enum: ["pr", "commit_body", "commit_message", "ticket", "inferred"],
|
|
117
|
+
description: "Where the impact claim came from. Use 'pr' if quoted from a PR description, " +
|
|
118
|
+
"'commit_body' if from a multi-line commit body, 'commit_message' if only the " +
|
|
119
|
+
"subject line supported it, 'ticket' if pulled from a linked Linear/Jira ticket, " +
|
|
120
|
+
"'inferred' if you guessed without explicit text. NEVER invent a non-inferred provenance.",
|
|
121
|
+
},
|
|
122
|
+
refs: {
|
|
123
|
+
type: "array",
|
|
124
|
+
items: { type: "string" },
|
|
125
|
+
description: "Supporting refs e.g. ['PR #142', 'a1b2c3d', 'ENG-1234'].",
|
|
126
|
+
},
|
|
106
127
|
},
|
|
107
128
|
},
|
|
108
129
|
},
|
|
109
130
|
},
|
|
110
131
|
},
|
|
111
132
|
},
|
|
133
|
+
{
|
|
134
|
+
name: "get_last_standup_date",
|
|
135
|
+
description: "Return the date (YYYY-MM-DD) of the most recently saved standup entry, or null " +
|
|
136
|
+
"if none exists yet. Call this at the start of every standup to default the " +
|
|
137
|
+
"lookback window to 'since last standup' — so days off, weekends, and holidays " +
|
|
138
|
+
"don't drop work on the floor.",
|
|
139
|
+
inputSchema: {
|
|
140
|
+
type: "object",
|
|
141
|
+
properties: {
|
|
142
|
+
repo_path: { type: "string", description: "Override the repo path." },
|
|
143
|
+
},
|
|
144
|
+
},
|
|
145
|
+
},
|
|
112
146
|
{
|
|
113
147
|
name: "get_history",
|
|
114
148
|
description: "Retrieve saved impact entries from this repo's history. " +
|
|
@@ -123,6 +157,20 @@ exports.TOOL_DEFINITIONS = [
|
|
|
123
157
|
},
|
|
124
158
|
},
|
|
125
159
|
},
|
|
160
|
+
{
|
|
161
|
+
name: "render_dashboard",
|
|
162
|
+
description: "Regenerate the rolling HTML dashboard at .git-impact/result.html from the " +
|
|
163
|
+
"saved history. Call this AFTER save_impact_entry so today's entry shows up. " +
|
|
164
|
+
"Returns the file:// URL — print it on the last line of your reply so the " +
|
|
165
|
+
"user can ⌘-click to open. Don't try to open the browser yourself.",
|
|
166
|
+
inputSchema: {
|
|
167
|
+
type: "object",
|
|
168
|
+
properties: {
|
|
169
|
+
repo_path: { type: "string", description: "Override the repo path." },
|
|
170
|
+
date: { type: "string", description: "Optional ?date=YYYY-MM-DD focus to add to the URL." },
|
|
171
|
+
},
|
|
172
|
+
},
|
|
173
|
+
},
|
|
126
174
|
{
|
|
127
175
|
name: "update_context",
|
|
128
176
|
description: "Save personalization to this repo's .git-impact/context.json: " +
|
|
@@ -141,7 +189,6 @@ exports.TOOL_DEFINITIONS = [
|
|
|
141
189
|
additionalProperties: { type: "string" },
|
|
142
190
|
},
|
|
143
191
|
github_token: { type: "string" },
|
|
144
|
-
anthropic_api_key: { type: "string" },
|
|
145
192
|
},
|
|
146
193
|
},
|
|
147
194
|
},
|
|
@@ -151,7 +198,9 @@ async function handleTool(name, args) {
|
|
|
151
198
|
case "get_git_activity": return handleGetGitActivity(args);
|
|
152
199
|
case "get_github_activity": return handleGetGitHubActivity(args);
|
|
153
200
|
case "save_impact_entry": return handleSaveImpactEntry(args);
|
|
201
|
+
case "get_last_standup_date": return handleGetLastStandupDate(args);
|
|
154
202
|
case "get_history": return handleGetHistory(args);
|
|
203
|
+
case "render_dashboard": return handleRenderDashboard(args);
|
|
155
204
|
case "update_context": return handleUpdateContext(args);
|
|
156
205
|
default: return error(`Unknown tool: ${name}`);
|
|
157
206
|
}
|
|
@@ -163,9 +212,18 @@ async function handleGetGitActivity(args) {
|
|
|
163
212
|
return error(repo.error);
|
|
164
213
|
const since = args.since_iso ? new Date(args.since_iso) : (0, git_1.startOfDay)();
|
|
165
214
|
const until = args.until_iso ? new Date(args.until_iso) : new Date();
|
|
215
|
+
// Pull privacy config from context.json so filenames like .env / .aws/credentials
|
|
216
|
+
// and obvious-looking secrets in commit bodies are redacted before they reach
|
|
217
|
+
// the translator. Default-on; users can opt out via { privacy: { redact: false } }.
|
|
218
|
+
const ctx = (0, db_1.loadContext)(repo.path);
|
|
219
|
+
const redactCfg = {
|
|
220
|
+
enabled: ctx?.privacy?.redact !== false,
|
|
221
|
+
filePatterns: ctx?.privacy?.filePatterns,
|
|
222
|
+
valuePatterns: ctx?.privacy?.valuePatterns,
|
|
223
|
+
};
|
|
166
224
|
try {
|
|
167
|
-
const git = await (0, git_1.readGitActivity)(repo.path, since, until);
|
|
168
|
-
return ok(JSON.stringify({ ...git, _repo_root: repo.path }, null, 2));
|
|
225
|
+
const git = await (0, git_1.readGitActivity)(repo.path, since, until, redactCfg);
|
|
226
|
+
return ok(JSON.stringify({ ...git, _repo_root: repo.path, _redacted: redactCfg.enabled }, null, 2));
|
|
169
227
|
}
|
|
170
228
|
catch (err) {
|
|
171
229
|
return error(`Could not read git history: ${err.message}`);
|
|
@@ -219,6 +277,18 @@ function handleSaveImpactEntry(args) {
|
|
|
219
277
|
return error(`Failed to save entry: ${err.message}`);
|
|
220
278
|
}
|
|
221
279
|
}
|
|
280
|
+
function handleGetLastStandupDate(args) {
|
|
281
|
+
const repo = resolveRepo(args.repo_path);
|
|
282
|
+
if ("error" in repo)
|
|
283
|
+
return error(repo.error);
|
|
284
|
+
try {
|
|
285
|
+
const date = (0, db_1.getLastEntryDate)(repo.path);
|
|
286
|
+
return ok(JSON.stringify({ last_standup_date: date }));
|
|
287
|
+
}
|
|
288
|
+
catch (err) {
|
|
289
|
+
return error(`Failed to read last standup date: ${err.message}`);
|
|
290
|
+
}
|
|
291
|
+
}
|
|
222
292
|
function handleGetHistory(args) {
|
|
223
293
|
const repo = resolveRepo(args.repo_path);
|
|
224
294
|
if ("error" in repo)
|
|
@@ -233,6 +303,26 @@ function handleGetHistory(args) {
|
|
|
233
303
|
return error(`Failed to read history: ${err.message}`);
|
|
234
304
|
}
|
|
235
305
|
}
|
|
306
|
+
function handleRenderDashboard(args) {
|
|
307
|
+
const repo = resolveRepo(args.repo_path);
|
|
308
|
+
if ("error" in repo)
|
|
309
|
+
return error(repo.error);
|
|
310
|
+
try {
|
|
311
|
+
const result = (0, render_1.renderReport)({
|
|
312
|
+
repoRoot: repo.path,
|
|
313
|
+
open: false, // Never open the browser from inside MCP — just return the URL.
|
|
314
|
+
date: args.date,
|
|
315
|
+
});
|
|
316
|
+
return ok(JSON.stringify({
|
|
317
|
+
url: result.url,
|
|
318
|
+
html_path: result.htmlPath,
|
|
319
|
+
entry_count: result.entryCount,
|
|
320
|
+
}));
|
|
321
|
+
}
|
|
322
|
+
catch (err) {
|
|
323
|
+
return error(`Failed to render dashboard: ${err.message}`);
|
|
324
|
+
}
|
|
325
|
+
}
|
|
236
326
|
function handleUpdateContext(args) {
|
|
237
327
|
const repo = resolveRepo(args.repo_path);
|
|
238
328
|
if ("error" in repo)
|
|
@@ -247,7 +337,6 @@ function handleUpdateContext(args) {
|
|
|
247
337
|
managerPriorities: args.manager_priorities ?? existing.managerPriorities,
|
|
248
338
|
glossary: args.glossary ?? existing.glossary,
|
|
249
339
|
githubToken: args.github_token ?? existing.githubToken,
|
|
250
|
-
anthropicApiKey: args.anthropic_api_key ?? existing.anthropicApiKey,
|
|
251
340
|
};
|
|
252
341
|
try {
|
|
253
342
|
(0, db_1.saveContext)(updated, repo.path);
|
|
@@ -257,7 +346,6 @@ function handleUpdateContext(args) {
|
|
|
257
346
|
context: {
|
|
258
347
|
...updated,
|
|
259
348
|
githubToken: updated.githubToken ? "***" : undefined,
|
|
260
|
-
anthropicApiKey: updated.anthropicApiKey ? "***" : undefined,
|
|
261
349
|
},
|
|
262
350
|
}, null, 2));
|
|
263
351
|
}
|
package/dist/mcp/tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.test.d.ts","sourceRoot":"","sources":["../../src/mcp/tools.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
const vitest_1 = require("vitest");
|
|
37
|
+
const fs = __importStar(require("fs"));
|
|
38
|
+
const os = __importStar(require("os"));
|
|
39
|
+
const path = __importStar(require("path"));
|
|
40
|
+
const child_process_1 = require("child_process");
|
|
41
|
+
const tools_1 = require("./tools");
|
|
42
|
+
const repo_1 = require("./repo");
|
|
43
|
+
let tmp;
|
|
44
|
+
(0, vitest_1.beforeEach)(() => {
|
|
45
|
+
tmp = fs.realpathSync(fs.mkdtempSync(path.join(os.tmpdir(), "tools-")));
|
|
46
|
+
(0, child_process_1.execSync)(`git -C ${tmp} init -q`);
|
|
47
|
+
(0, child_process_1.execSync)(`git -C ${tmp} config user.email t@t`);
|
|
48
|
+
(0, child_process_1.execSync)(`git -C ${tmp} config user.name T`);
|
|
49
|
+
fs.writeFileSync(path.join(tmp, "README.md"), "x");
|
|
50
|
+
(0, child_process_1.execSync)(`git -C ${tmp} add . && git -C ${tmp} commit -q -m init`);
|
|
51
|
+
(0, repo_1._resetStickyRepoForTests)();
|
|
52
|
+
});
|
|
53
|
+
(0, vitest_1.afterEach)(() => {
|
|
54
|
+
fs.rmSync(tmp, { recursive: true, force: true });
|
|
55
|
+
});
|
|
56
|
+
(0, vitest_1.describe)("save → render_dashboard flow", () => {
|
|
57
|
+
(0, vitest_1.it)("save_impact_entry then render_dashboard produces a result.html", async () => {
|
|
58
|
+
// Save a row.
|
|
59
|
+
const save = await (0, tools_1.handleTool)("save_impact_entry", {
|
|
60
|
+
repo_path: tmp,
|
|
61
|
+
date: "2026-05-09",
|
|
62
|
+
repo_name: "test",
|
|
63
|
+
total_commits: 1,
|
|
64
|
+
total_files: 1,
|
|
65
|
+
items: [
|
|
66
|
+
{
|
|
67
|
+
status: "done",
|
|
68
|
+
summary: "Shipped X",
|
|
69
|
+
impact: "Unblocked Y",
|
|
70
|
+
provenance: "pr",
|
|
71
|
+
refs: ["PR #1"],
|
|
72
|
+
},
|
|
73
|
+
],
|
|
74
|
+
});
|
|
75
|
+
(0, vitest_1.expect)(save.isError).toBeFalsy();
|
|
76
|
+
// Render the dashboard.
|
|
77
|
+
const render = await (0, tools_1.handleTool)("render_dashboard", { repo_path: tmp });
|
|
78
|
+
(0, vitest_1.expect)(render.isError).toBeFalsy();
|
|
79
|
+
const result = JSON.parse(render.content[0].text);
|
|
80
|
+
(0, vitest_1.expect)(result.entry_count).toBe(1);
|
|
81
|
+
(0, vitest_1.expect)(result.url.startsWith("file://")).toBe(true);
|
|
82
|
+
(0, vitest_1.expect)(fs.existsSync(result.html_path)).toBe(true);
|
|
83
|
+
// The HTML should embed the saved item.
|
|
84
|
+
const html = fs.readFileSync(result.html_path, "utf-8");
|
|
85
|
+
(0, vitest_1.expect)(html).toContain("Shipped X");
|
|
86
|
+
});
|
|
87
|
+
(0, vitest_1.it)("render_dashboard works on a repo with no history (empty file)", async () => {
|
|
88
|
+
const render = await (0, tools_1.handleTool)("render_dashboard", { repo_path: tmp });
|
|
89
|
+
(0, vitest_1.expect)(render.isError).toBeFalsy();
|
|
90
|
+
const result = JSON.parse(render.content[0].text);
|
|
91
|
+
(0, vitest_1.expect)(result.entry_count).toBe(0);
|
|
92
|
+
(0, vitest_1.expect)(fs.existsSync(result.html_path)).toBe(true);
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
(0, vitest_1.describe)("sticky repo: tools chain without re-passing repo_path", () => {
|
|
96
|
+
(0, vitest_1.it)("save_impact_entry succeeds even after cwd moved away from the repo", async () => {
|
|
97
|
+
// First call resolves the repo via explicit path (and primes sticky).
|
|
98
|
+
const get = await (0, tools_1.handleTool)("get_git_activity", { repo_path: tmp });
|
|
99
|
+
(0, vitest_1.expect)(get.isError).toBeFalsy();
|
|
100
|
+
// Move cwd somewhere with no git repo to simulate the original bug.
|
|
101
|
+
const originalCwd = process.cwd();
|
|
102
|
+
const nowhere = fs.mkdtempSync(path.join(os.tmpdir(), "nowhere-"));
|
|
103
|
+
try {
|
|
104
|
+
process.chdir(nowhere);
|
|
105
|
+
// Save WITHOUT repo_path — used to throw before the sticky cache.
|
|
106
|
+
const save = await (0, tools_1.handleTool)("save_impact_entry", {
|
|
107
|
+
date: "2026-05-09",
|
|
108
|
+
repo_name: "test",
|
|
109
|
+
total_commits: 1,
|
|
110
|
+
total_files: 1,
|
|
111
|
+
items: [
|
|
112
|
+
{ status: "done", summary: "X", provenance: "inferred" },
|
|
113
|
+
],
|
|
114
|
+
});
|
|
115
|
+
(0, vitest_1.expect)(save.isError).toBeFalsy();
|
|
116
|
+
}
|
|
117
|
+
finally {
|
|
118
|
+
process.chdir(originalCwd);
|
|
119
|
+
fs.rmSync(nowhere, { recursive: true, force: true });
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
});
|
|
123
|
+
//# sourceMappingURL=tools.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.test.js","sourceRoot":"","sources":["../../src/mcp/tools.test.ts"],"names":[],"mappings":"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"}
|